anxiao_web/pages/cmddispatch/js/sos-sdk-latest/public/sos-v1.0.15.js

4149 lines
1.3 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var __b_release_mode=true;var OrgRTCPeerConnection=window.RTCPeerConnection;var RTCPeerConnection=null;
var getUserMedia=null;var attachMediaStream=null;var drawImage=null;var reattachMediaStream=null;var webrtcDetectedBrowser=null;
var webrtcDetectedVersion=null;window.performance=window.performance||{};window.performance.now=window.performance.now||(function(){var a=Date.now();
return function(){return Date.now()-a}})();window.URL=window.URL||window.webkitURL;function trace(a){if(a[a.length-1]=="\n"){a=a.substring(0,a.length-1)
}}function maybeFixConfiguration(b){if(!b){return}for(var a=0;a<b.iceServers.length;a++){if(b.iceServers[a].hasOwnProperty("urls")){b.iceServers[a]["url"]=b.iceServers[a]["urls"];
delete b.iceServers[a]["urls"]}}}drawImage=function(c,e,b,f,d,a){c.drawImage(e,b,f,d,a)};attachEventListener=function(c,b,d,a){c.addEventListener(b,d,a)
};if(navigator.mozGetUserMedia){tsk_utils_log_debug("This appears to be Firefox");webrtcDetectedBrowser="firefox";
webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10);var RTCPeerConnection=function(a,b){maybeFixConfiguration(a);
return new mozRTCPeerConnection(a,b)};RTCSessionDescription=mozRTCSessionDescription;RTCIceCandidate=mozRTCIceCandidate;
getUserMedia=navigator.mozGetUserMedia.bind(navigator);navigator.getUserMedia=getUserMedia;createIceServer=function(b,f,a){var d=null;
var e=b.split(":");if(e[0].indexOf("stun")===0){d={url:b}}else{if(e[0].indexOf("turn")===0){if(webrtcDetectedVersion<27){var c=b.split("?");
if(c.length===1||c[1].indexOf("transport=udp")===0){d={url:c[0],credential:a,username:f}}}else{d={url:b,credential:a,username:f}
}}}return d};createIceServers=function(c,e,a){var d=[];for(i=0;i<c.length;i++){var b=createIceServer(c[i],e,a);
if(b!==null){d.push(b)}}return d};attachMediaStream=function(a,b){if(typeof a.srcObject!=="undefined"){a.srcObject=b
}else{a.mozSrcObject=b}a.play();return a};reattachMediaStream=function(b,a){if(typeof b.srcObject!=="undefined"){b.srcObject=a.srcObject
}else{b.mozSrcObject=a.mozSrcObject}b.play()}}else{if(navigator.webkitGetUserMedia){tsk_utils_log_debug("This appears to be Chrome");
webrtcDetectedBrowser="chrome";var result=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(result!==null){webrtcDetectedVersion=parseInt(result[2],10)
}else{webrtcDetectedVersion=999}createIceServer=function(b,e,a){var c=null;var d=b.split(":");if(d[0].indexOf("stun")===0){c={url:b}
}else{if(d[0].indexOf("turn")===0){c={url:b,credential:a,username:e}}}return c};createIceServers=function(c,e,a){var d=[];
if(webrtcDetectedVersion>=34){d={urls:c,credential:a,username:e}}else{for(i=0;i<c.length;i++){var b=createIceServer(c[i],e,a);
if(b!==null){d.push(b)}}}return d};var RTCPeerConnection=function(a,b){if(webrtcDetectedVersion<34){maybeFixConfiguration(a)
}return new webkitRTCPeerConnection(a,b)};if(navigator.getUserMedia){getUserMedia=navigator.getUserMedia.bind(navigator)
}else{if(navigator.webkitGetUserMedia){getUserMedia=navigator.webkitGetUserMedia.bind(navigator)}else{if(navigator.mozGetUserMedia){getUserMedia=navigator.mozGetUserMedia.bind(navigator)
}}}navigator.getUserMedia=getUserMedia;attachMediaStream=function(a,b){if(typeof a.srcObject!=="undefined"){if(!b||!a.srcObject||a.srcObject.id!==b.id){a.srcObject=b
}}else{if(typeof a.mozSrcObject!=="undefined"){a.mozSrcObject=b}else{if(typeof a.src!=="undefined"){if(b){a.src=URL.createObjectURL(b)
}else{if(a.src&&typeof URL.revokeObjectURL!=="undefined"){URL.revokeObjectURL(a.src);a.src=null}}}else{tsk_utils_log_error("Error attaching stream to element.")
}}}return a};reattachMediaStream=function(b,a){b.src=a.src}}else{if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){tsk_utils_log_debug("This appears to be XXX");
webrtcDetectedBrowser="XXX";var isSafari=!!navigator.userAgent.indexOf("Safari");if(isSafari){tsk_utils_log_debug("This appears to be Safari");
webrtcDetectedBrowser="Safari";var result=navigator.userAgent.match(/Safari\/([0-9]+)\./);if(result!==null){webrtcDetectedVersion=parseInt(result[2],10)
}else{webrtcDetectedVersion=999}}createIceServer=function(b,e,a){var c=null;var d=b.split(":");if(d[0].indexOf("stun")===0){c={url:b}
}else{if(d[0].indexOf("turn")===0){c={url:b,credential:a,username:e}}}return c};createIceServers=function(c,e,a){var d=[];
if(webrtcDetectedVersion>=34){d={urls:c,credential:a,username:e}}else{for(i=0;i<c.length;i++){var b=createIceServer(c[i],e,a);
if(b!==null){d.push(b)}}}return d};var RTCPeerConnection=function(a,b){if(webrtcDetectedVersion<34){maybeFixConfiguration(a)
}return new OrgRTCPeerConnection(a,b)};navigator.getUserMedia=function(c,a,b){navigator.mediaDevices.getUserMedia(c).then(a).error(b)
};attachMediaStream=function(a,b){if(typeof a.srcObject!=="undefined"){if(!b||!a.srcObject||a.srcObject.id!==b.id){a.srcObject=b
}}else{if(typeof a.mozSrcObject!=="undefined"){a.mozSrcObject=b}else{if(typeof a.src!=="undefined"){if(b){a.src=URL.createObjectURL(b)
}else{if(a.src&&typeof URL.revokeObjectURL!=="undefined"){URL.revokeObjectURL(a.src);a.src=null}}}else{tsk_utils_log_error("Error attaching stream to element.")
}}}return a};reattachMediaStream=function(b,a){b.src=a.src}}else{var console=console||{log:function(a){}};
var createIceServer=function(b,d,a){var c=b.split(":");if(c[0].indexOf("stun")===0){return{url:b}}else{if(c[0].indexOf("turn")===0){return{url:b,credential:a,username:d}
}}return null};var extractPluginObj=function(a){return a.isWebRtcPlugin?a:a.pluginObj};var attachEventListener=function(b,c,d,a){var e=extractPluginObj(b);
if(e){e.bindEventListener(c,d,a)}else{if(typeof b.addEventListener!=="undefined"){b.addEventListener(c,d,a)
}else{if(typeof b.addEvent!=="undefined"){b.addEventListener("on"+c,d,a)}}}};function getPlugin(){return document.getElementById("WebrtcEverywherePluginId")
}var installPlugin=function(){if(document.getElementById("WebrtcEverywherePluginId")){return}tsk_utils_log_debug("installPlugin() called");
var c=!!((Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(window,"ActiveXObject"))||("ActiveXObject" in window));
var a=!!navigator.userAgent.indexOf("Safari");var b=document.createElement("object");if(c){b.setAttribute("classid","CLSID:7FD49E23-C8D7-4C4F-93A1-F7EACFA1EC53");
c=true}else{b.setAttribute("type","application/webrtc-everywhere")}b.setAttribute("id","WebrtcEverywherePluginId");
document.body.appendChild(b);b.setAttribute("width","0");b.setAttribute("height","0");if(b.isWebRtcPlugin||(typeof navigator.plugins!=="undefined"&&(!!navigator.plugins["WebRTC Everywhere"]||navigator.plugins["WebRTC Everywhere Plug-in for Safari"]))){tsk_utils_log_debug("Plugin version: "+b.versionName+", adapter version: 1.3.1");
if(c){tsk_utils_log_debug("This appears to be Internet Explorer");webrtcDetectedBrowser="Internet Explorer"
}else{if(a){tsk_utils_log_debug("This appears to be Safari");webrtcDetectedBrowser="Safari"}else{}}}else{tsk_utils_log_debug("Browser does not appear to be WebRTC-capable")
}};if(document.body){installPlugin()}else{attachEventListener(window,"load",function(){installPlugin()
});attachEventListener(document,"readystatechange",function(){if(document.readyState=="complete"){installPlugin()
}})}var getUserMediaDelayed;getUserMedia=navigator.getUserMedia=function(c,a,b){if(document.readyState!=="complete"){if(!getUserMediaDelayed){getUserMediaDelayed=true;
attachEventListener(document,"readystatechange",function(){if(getUserMediaDelayed&&document.readyState=="complete"){getUserMediaDelayed=false;
getPlugin().getUserMedia(c,a,b)}})}}else{getPlugin().getUserMedia(c,a,b)}};attachMediaStream=function(c,g){if(!c){return null
}if(c.isWebRtcPlugin){c.src=g;return c}else{if(c.nodeName.toLowerCase()==="video"){if(!c.pluginObj&&g){var f=document.createElement("object");
var j=(Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(window,"ActiveXObject"))||("ActiveXObject" in window);
if(j){var d=document.createElement("param");d.setAttribute("name","windowless");d.setAttribute("value",true);
f.appendChild(d);f.setAttribute("classid","CLSID:7FD49E23-C8D7-4C4F-93A1-F7EACFA1EC53")}else{f.setAttribute("type","application/webrtc-everywhere")
}c.pluginObj=f;f.setAttribute("className",c.className);f.setAttribute("innerHTML",c.innerHTML);var b=c.getAttribute("width");
var h=c.getAttribute("height");var a=c.getBoundingClientRect();if(!b){b=a.right-a.left}if(!h){h=a.bottom-a.top
}if("getComputedStyle" in window){var e=window.getComputedStyle(c,null);if(!b&&e.width!="auto"&&e.width!="0px"){b=e.width
}if(!h&&e.height!="auto"&&e.height!="0px"){h=e.height}}if(b){f.setAttribute("width",b)}else{f.setAttribute("autowidth",true)
}if(h){f.setAttribute("height",h)}else{f.setAttribute("autoheight",true)}document.body.appendChild(f);
if(c.parentNode){c.parentNode.replaceChild(f,c);document.body.appendChild(c);c.style.visibility="hidden"
}}if(c.pluginObj){c.pluginObj.bindEventListener("play",function(k){if(c.pluginObj){if(c.pluginObj.getAttribute("autowidth")&&k.videoWidth){c.pluginObj.setAttribute("width",k.videoWidth)
}if(c.pluginObj.getAttribute("autoheight")&&k.videoHeight){c.pluginObj.setAttribute("height",k.videoHeight)
}}});c.pluginObj.src=g}return c.pluginObj}else{if(c.nodeName.toLowerCase()==="audio"){return c}}}};drawImage=function(d,b,h,g,c,k){var j=extractPluginObj(b);
if(j&&j.isWebRtcPlugin&&j.videoWidth>0&&j.videoHeight>0){if(typeof j.getScreenShot!=="undefined"){var f=j.getScreenShot();
if(f){var e=new Image();e.onload=function(){d.drawImage(e,0,0,c,k)};e.src="data:image/png;base64,"+f}}else{var a=d.createImageData(j.videoWidth,j.videoHeight);
if(a){j.fillImageData(a);d.putImageData(a,h,g)}}}};MediaStreamTrack={};var getSourcesDelayed;MediaStreamTrack.getSources=function(a){if(document.readyState!=="complete"){tsk_utils_log_debug("readyState = "+document.readyState+", delaying getSources...");
if(!getSourcesDelayed){getSourcesDelayed=true;attachEventListener(document,"readystatechange",function(){if(getSourcesDelayed&&document.readyState=="complete"){getSourcesDelayed=false;
getPlugin().getSources(a)}})}}else{getPlugin().getSources(a)}};RTCPeerConnection=function(b,a){return getPlugin().createPeerConnection(b,a)
};RTCIceCandidate=function(a){return getPlugin().createIceCandidate(a)};RTCSessionDescription=function(a){return getPlugin().createSessionDescription(a)
}}}}var Base64=(function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var b={encode:function(e){var c="";var m,k,h;var l,j,g,f;var d=0;do{m=e.charCodeAt(d++);k=e.charCodeAt(d++);
h=e.charCodeAt(d++);l=m>>2;j=((m&3)<<4)|(k>>4);g=((k&15)<<2)|(h>>6);f=h&63;if(isNaN(k)){g=f=64}else{if(isNaN(h)){f=64
}}c=c+a.charAt(l)+a.charAt(j)+a.charAt(g)+a.charAt(f)}while(d<e.length);return c},decode:function(e){var c="";
var m,k,h;var l,j,g,f;var d=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{l=a.indexOf(e.charAt(d++));j=a.indexOf(e.charAt(d++));
g=a.indexOf(e.charAt(d++));f=a.indexOf(e.charAt(d++));m=(l<<2)|(j>>4);k=((j&15)<<4)|(g>>2);h=((g&3)<<6)|f;
c=c+String.fromCharCode(m);if(g!=64){c=c+String.fromCharCode(k)}if(f!=64){c=c+String.fromCharCode(h)}}while(d<e.length);
return c}};return b})();function tsk_buff_str2ib(d){if(!d){tsk_utils_log_error("Invalid argument");return -1
}var a=d.length;var b=new Array(a);for(var c=0;c<a;++c){b[c]=d.charCodeAt(c)}return b}function tsk_buff_ab2str(a){return tsk_buff_u8b2ascii(new Uint8Array(a))
}function tsk_buff_u8b2ascii(c){var d=new String();var a=c.byteLength==undefined?c.length:c.byteLength;
for(var b=0;b<a;++b){d+=String.fromCharCode(c[b]&255)}return d}function tsk_buff_u8b2utf8(d){try{var g=new String();
var c;var a=d.byteLength==undefined?d.length:d.byteLength;for(var b=0;b<a;){c=d[b];if(c<128){g+=String.fromCharCode(c);
++b}else{if((c>191)&&(c<224)){g+=String.fromCharCode(((c&31)<<6)|(d[b+1]&63));b+=2}else{g+=String.fromCharCode(((c&15)<<12)|((d[b+1]&63)<<6)|(d[b+2]&63));
b+=3}}}return g}catch(f){tsk_utils_log_error(f);return tsk_buff_u8b2ascii(d)}}function tsk_buff_str2u8b(b){var c=new Uint8Array(b.length);
for(var a=0;a<b.length;++a){c[a]=b[a].charCodeAt(0)&255}return c}tsk_fsm.prototype.__i_state_any=-65535;
tsk_fsm.prototype.__i_state_default=-65520;tsk_fsm.prototype.__i_state_none=-65280;tsk_fsm.prototype.__i_state_final=-61440;
tsk_fsm.prototype.__i_action_any=-65535;function tsk_fsm(c,a,d,b){this.i_state_curr=c;this.i_state_term=a;
this.fn_onterm=d;this.o_usr_data=b;this.ao_entries=new Array();this.b_debug=false}tsk_fsm.prototype.is_terminated=function(){return this.i_state_curr==this.i_state_term
};tsk_fsm.prototype.is_debug_enabled=function(){return this.b_debug};tsk_fsm.prototype.set_debug_enabled=function(a){this.b_debug=a
};tsk_fsm.prototype.set_onterm_callback=function(b,a){this.fn_onterm=b;this.o_usr_data=a};tsk_fsm.prototype.get_usr_data=function(){return this.o_usr_data
};tsk_fsm.prototype.set=function(){for(var a=0;a<arguments.length;++a){if(arguments[a]){this.ao_entries.push(arguments[a])
}}this.ao_entries.sort(tsk_fsm_entry_compare);return 0};tsk_fsm.prototype.act=function(k,g,f){var a=false;
var b=false;var d=0;var c;if(this.is_terminated()){tsk_utils_log_warn("The FSM is in the final state");
return -2}this.b_locked=true;for(var h=0;h<this.ao_entries.length;++h){if(!(c=this.ao_entries[h])){continue
}if((c.i_state_from!=tsk_fsm.prototype.__i_state_any)&&(c.i_state_from!=this.i_state_curr)){continue}if((c.i_action!=tsk_fsm.prototype.__i_action_any)&&(c.i_action!=k)){continue
}if(!c.fn_condition||c.fn_condition(g,f)){if(this.is_debug_enabled()){tsk_utils_log_debug("State machine: "+c.s_description)
}if(c.i_state_to!=tsk_fsm.prototype.__i_state_any){this.i_state_curr=c.i_state_to}if(c.fn_execute){try{if((d=c.fn_execute(Array.prototype.slice.call(arguments,3)))){tsk_utils_log_warn("State machine: Exec function failed. Moving to the termnial state")
}}catch(j){tsk_utils_log_error(j);d=-3}}else{d=0}b=(d!=0||(this.i_state_curr==this.i_state_term));a=true;
break}}if(b){this.i_state_curr=this.i_state_term;if(this.fn_onterm){this.fn_onterm(this.o_usr_data)}}this.b_locked=false;
return d};function tsk_fsm_entry(f,d,c,b,a,e){this.i_state_from=f;this.i_action=d;this.fn_condition=c;
this.i_state_to=b;this.fn_execute=a;this.s_description=e}tsk_fsm_entry.prototype.Create=function(f,d,c,b,a,e){return new tsk_fsm_entry(f,d,c,b,a,e)
};tsk_fsm_entry.prototype.CreateAlways=function(e,c,b,a,d){return new tsk_fsm_entry(e,c,null,b,a,d)};
tsk_fsm_entry.prototype.CreateNothing=function(d,b,a,c){return new tsk_fsm_entry(d,b,a,d,null,c)};tsk_fsm_entry.prototype.CreateAlwaysNothing=function(b,a){return new tsk_fsm_entry(b,tsk_fsm.prototype.__i_action_any,null,b,null,a)
};function tsk_fsm_entry_compare(b,a){if(b&&a){if(b.i_state_from==tsk_fsm.prototype.__i_state_any){return +20
}else{if(a.i_state_from==tsk_fsm.prototype.__i_state_any){return -20}}if(b.i_action==tsk_fsm.prototype.__i_action_any){return +10
}else{if(a.i_action==tsk_fsm.prototype.__i_action_any){return -10}}return b.fn_condition?-1:(a.fn_condition?1:0)
}return 0}var MD5=(function(){var p=0;var a="";var m=8;var k=function(s,v){var u=(s&65535)+(v&65535);
var t=(s>>16)+(v>>16)+(u>>16);return(t<<16)|(u&65535)};var o=function(s,t){return(s<<t)|(s>>>(32-t))};
var b=function(v){var u=[];var s=(1<<m)-1;for(var t=0;t<v.length*m;t+=m){u[t>>5]|=(v.charCodeAt(t/m)&s)<<(t%32)
}return u};var g=function(u){var v="";var s=(1<<m)-1;for(var t=0;t<u.length*32;t+=m){v+=String.fromCharCode((u[t>>5]>>>(t%32))&s)
}return v};var r=function(u){var t=p?"0123456789ABCDEF":"0123456789abcdef";var v="";for(var s=0;s<u.length*4;
s++){v+=t.charAt((u[s>>2]>>((s%4)*8+4))&15)+t.charAt((u[s>>2]>>((s%4)*8))&15)}return v};var q=function(v){var u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var x="";var w,s;for(var t=0;t<v.length*4;t+=3){w=(((v[t>>2]>>8*(t%4))&255)<<16)|(((v[t+1>>2]>>8*((t+1)%4))&255)<<8)|((v[t+2>>2]>>8*((t+2)%4))&255);
for(s=0;s<4;s++){if(t*8+s*6>v.length*32){x+=a}else{x+=u.charAt((w>>6*(3-s))&63)}}}return x};var d=function(A,w,v,u,z,y){return k(o(k(k(w,A),k(u,y)),z),v)
};var l=function(w,v,B,A,u,z,y){return d((v&B)|((~v)&A),w,v,u,z,y)};var c=function(w,v,B,A,u,z,y){return d((v&A)|(B&(~A)),w,v,u,z,y)
};var n=function(w,v,B,A,u,z,y){return d(v^B^A,w,v,u,z,y)};var j=function(w,v,B,A,u,z,y){return d(B^(v|(~A)),w,v,u,z,y)
};var f=function(D,y){D[y>>5]|=128<<((y)%32);D[(((y+64)>>>9)<<4)+14]=y;var C=1732584193;var B=-271733879;
var A=-1732584194;var z=271733878;var w,v,u,s;for(var t=0;t<D.length;t+=16){w=C;v=B;u=A;s=z;C=l(C,B,A,z,D[t+0],7,-680876936);
z=l(z,C,B,A,D[t+1],12,-389564586);A=l(A,z,C,B,D[t+2],17,606105819);B=l(B,A,z,C,D[t+3],22,-1044525330);
C=l(C,B,A,z,D[t+4],7,-176418897);z=l(z,C,B,A,D[t+5],12,1200080426);A=l(A,z,C,B,D[t+6],17,-1473231341);
B=l(B,A,z,C,D[t+7],22,-45705983);C=l(C,B,A,z,D[t+8],7,1770035416);z=l(z,C,B,A,D[t+9],12,-1958414417);
A=l(A,z,C,B,D[t+10],17,-42063);B=l(B,A,z,C,D[t+11],22,-1990404162);C=l(C,B,A,z,D[t+12],7,1804603682);
z=l(z,C,B,A,D[t+13],12,-40341101);A=l(A,z,C,B,D[t+14],17,-1502002290);B=l(B,A,z,C,D[t+15],22,1236535329);
C=c(C,B,A,z,D[t+1],5,-165796510);z=c(z,C,B,A,D[t+6],9,-1069501632);A=c(A,z,C,B,D[t+11],14,643717713);
B=c(B,A,z,C,D[t+0],20,-373897302);C=c(C,B,A,z,D[t+5],5,-701558691);z=c(z,C,B,A,D[t+10],9,38016083);A=c(A,z,C,B,D[t+15],14,-660478335);
B=c(B,A,z,C,D[t+4],20,-405537848);C=c(C,B,A,z,D[t+9],5,568446438);z=c(z,C,B,A,D[t+14],9,-1019803690);
A=c(A,z,C,B,D[t+3],14,-187363961);B=c(B,A,z,C,D[t+8],20,1163531501);C=c(C,B,A,z,D[t+13],5,-1444681467);
z=c(z,C,B,A,D[t+2],9,-51403784);A=c(A,z,C,B,D[t+7],14,1735328473);B=c(B,A,z,C,D[t+12],20,-1926607734);
C=n(C,B,A,z,D[t+5],4,-378558);z=n(z,C,B,A,D[t+8],11,-2022574463);A=n(A,z,C,B,D[t+11],16,1839030562);B=n(B,A,z,C,D[t+14],23,-35309556);
C=n(C,B,A,z,D[t+1],4,-1530992060);z=n(z,C,B,A,D[t+4],11,1272893353);A=n(A,z,C,B,D[t+7],16,-155497632);
B=n(B,A,z,C,D[t+10],23,-1094730640);C=n(C,B,A,z,D[t+13],4,681279174);z=n(z,C,B,A,D[t+0],11,-358537222);
A=n(A,z,C,B,D[t+3],16,-722521979);B=n(B,A,z,C,D[t+6],23,76029189);C=n(C,B,A,z,D[t+9],4,-640364487);z=n(z,C,B,A,D[t+12],11,-421815835);
A=n(A,z,C,B,D[t+15],16,530742520);B=n(B,A,z,C,D[t+2],23,-995338651);C=j(C,B,A,z,D[t+0],6,-198630844);
z=j(z,C,B,A,D[t+7],10,1126891415);A=j(A,z,C,B,D[t+14],15,-1416354905);B=j(B,A,z,C,D[t+5],21,-57434055);
C=j(C,B,A,z,D[t+12],6,1700485571);z=j(z,C,B,A,D[t+3],10,-1894986606);A=j(A,z,C,B,D[t+10],15,-1051523);
B=j(B,A,z,C,D[t+1],21,-2054922799);C=j(C,B,A,z,D[t+8],6,1873313359);z=j(z,C,B,A,D[t+15],10,-30611744);
A=j(A,z,C,B,D[t+6],15,-1560198380);B=j(B,A,z,C,D[t+13],21,1309151649);C=j(C,B,A,z,D[t+4],6,-145523070);
z=j(z,C,B,A,D[t+11],10,-1120210379);A=j(A,z,C,B,D[t+2],15,718787259);B=j(B,A,z,C,D[t+9],21,-343485551);
C=k(C,w);B=k(B,v);A=k(A,u);z=k(z,s)}return[C,B,A,z]};var e=function(u,x){var w=b(u);if(w.length>16){w=f(w,u.length*m)
}var s=new Array(16),v=new Array(16);for(var t=0;t<16;t++){s[t]=w[t]^909522486;v[t]=w[t]^1549556828}var y=f(s.concat(b(x)),512+x.length*m);
return f(v.concat(y),512+128)};var h={hexdigest:function(t){return r(f(b(t),t.length*m))},b64digest:function(t){return q(f(b(t),t.length*m))
},hash:function(t){return g(f(b(t),t.length*m))},hmac_hexdigest:function(s,t){return r(e(s,t))},hmac_b64digest:function(s,t){return q(e(s,t))
},hmac_hash:function(s,t){return g(e(s,t))},test:function(){return MD5.hexdigest("abc")==="900150983cd24fb0d6963f7d28e17f72"
}};return h})();function tsk_param_create(c,b){var a=new Object();a.s_name=c;a.s_value=b;a.b_tag=false;
return a}function tsk_param_create_null(){return tsk_param_create(null,null)}function tsk_param_parse(d){if(!tsk_string_is_null_or_empty(d)){var a=0;
var b=d.length;var f=tsk_string_index_of(d,b,"=");var e=null;var c=null;if(f>=0&&f<b){e=d.substring(a,a+(f-a));
c=d.substring(f+1,f+(b-f))}else{e=d}return tsk_param_create(e,c)}return null}function tsk_param_get_index_by_name(b,d){if(b&&!tsk_string_is_null_or_empty(d)){var c=d.toLowerCase();
for(var a=0;a<b.length;++a){if(b[a].s_name.toLowerCase()==c){return a}}}return -1}function tsk_param_get_by_name(a,c){var b=tsk_param_get_index_by_name(a,c);
if(b!=-1){return a[b]}return null}function tsk_param_get_value_by_name(a,b){var c=tsk_param_get_by_name(a,b);
if(c){return c.s_value}return null}function tsk_params_have_param(a,b){return tsk_param_get_by_name(a,b)!=null
}function tsk_params_add(a,d,b){if(a&&!tsk_string_is_null_or_empty(d)){var c=tsk_param_get_index_by_name(a,d);
if(c!=-1){a[c].s_value=b}else{a.push(tsk_param_create(d,b))}}}function tsk_params_add_param(a,b){if(a&&b){tsk_params_add(a,b.s_name,b.s_value)
}}function tsk_params_remove_by_name(a,c){if(a&&!tsk_string_is_null_or_empty(c)){var b=tsk_param_get_index_by_name(a,c);
if(b!=-1){a.splice(b,1)}}}function tsk_param_tostring(a){if(a&&a.s_name){return !tsk_string_is_null_or_empty(a.s_value)?(a.s_name+"="+a.s_value):a.s_name
}return""}function tsk_params_tostring(c,d){var a="";if(c){for(var b=0;b<c.length;++b){if(!tsk_string_is_null_or_empty(a)){a+=d
}a+=tsk_param_tostring(c[b])}}return a}function tsk_ragel_state_create(){var a=new Object();tsk_ragel_state_init(a,null,0);
return a}function tsk_ragel_state_init(a,b,c){a.i_cs=0;a.i_p=0;a.i_pe=c;a.o_data=b;a.s_data=null;a.i_eof=0;
a.i_tag_start=0;a.i_tag_end=c}function tsk_ragel_state_init_ai(b,a){return tsk_ragel_state_init_str(b,tsk_buff_ab2str(a))
}function tsk_ragel_state_init_str(a,b){tsk_ragel_state_init(a,tsk_buff_str2ib(b),b.length);a.s_data=b
}function tsk_ragel_parser_get_string(d,e,b){var c=(e-b);var a=null;if(c>0){a=d.substring(b,(b+c))}return a
}function tsk_ragel_parser_get_int(d,e,a){var c=0;var b=tsk_ragel_parser_get_string(d,e,a);if(!tsk_string_is_null_or_empty(b)){c=parseInt(b)
}return c}function tsk_ragel_parser_get_param(c,d,a){if(!tsk_string_is_null_or_empty(c)){var b=(d-a);
return tsk_param_parse(c.substring(a,a+b))}return null}function tsk_ragel_add_param(c,d,a,b){var e=tsk_ragel_parser_get_param(c,d,a);
if(e){b.push(e)}}function tsk_ragel_parser_add_string(d,e,a,c){var b=tsk_ragel_parser_get_string(d,e,a);
if(!tsk_string_is_null_or_empty(b)){c.push(b)}return c}function tsk_ragel_scanner_get_string(e,c,d){var b=(d-c);
var a=null;if(b>0){a=e.substring(c,(c+b))}return a}function tsk_ragel_scanner_get_int(d,b,c){var a=tsk_ragel_scanner_get_string(d,b,c);
if(a){return parseInt(a)}return 0}function tsk_tagel_scanner_add_param(d,a,c){if(c&&!tsk_string_is_null_or_empty(d)){var b=(te-ts);
var e=tsk_param_parse(d.substring(i_ts,i_ts+b));c.push(e)}}function tsk_string_is_null_or_empty(a){return !a||a==""
}function tsk_string_is_string(a){return(a instanceof String||typeof a=="string")}function tsk_string_index_of(d,b,a){var c=-1;
if(d&&a){c=d.indexOf(a)}return c<b?c:-1}function tsk_string_contains(c,b,a){return tsk_string_index_of(c,b,a)>=0
}function tsk_string_unquote(e,d,b){var a=e;if(a){var c=a.length;if(c>=2&&a[0]==d&&a[c-1]==b){a=e.substring(1,c-1)
}}return a}function tsk_string_unquote_2(a){return tsk_string_unquote(a,'"','"')}function tsk_strdup(a){if(a){return new String(a).toString()
}return a}function tsk_string_format(c){for(var a=1;a<arguments.length;a++){var b=new RegExp("\\{"+(a-1)+"\\}","gi");
c=c.replace(b,arguments[a])}return c}function tsk_string_equals(b,a){return(b==a)}function tsk_string_iequals(b,a){if(b&&a){return b.toLowerCase()==a.toLowerCase()
}return(b==a)}function tsk_string_random_from_dict(b,d){var a="";for(var c=0;c<b;c++){a+=d[Math.floor(Math.random()*d.length)]
}return a}function tsk_string_random(a){var b="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
return tsk_string_random_from_dict(a,b)}function tsk_string_random_uuid(){var a="0123456789abcdef";return tsk_string_format("{0}-{1}-{2}-{3}-{4}",tsk_string_random_from_dict(8,a),tsk_string_random_from_dict(4,a),tsk_string_random_from_dict(4,a),tsk_string_random_from_dict(4,a),tsk_string_random_from_dict(12,a))
}function tsk_string_to_int(b,a){try{return parseInt(b)}catch(c){return a}}function tsk_string_to_object(s_str){if(!tsk_string_is_null_or_empty(s_str)){try{eval("var obj = "+s_str+";");
return obj}catch(e){}}}function tsk_string_parse_url(a){if(!a){tsk_utils_log_error("Invalid argument");
return null}var f=a.indexOf("://");var d=a.lastIndexOf(":");if(f==-1||d==-1){tsk_utils_log_error(a+" not valid as url");
return null}var c=new Array();c.push(a.substring(0,f));c.push(a.substring((f+3),d));try{var b=a.substring(f+3).indexOf("/");
if(b==-1){c.push(parseInt(a.substring(d+1),10))}else{c.push(parseInt(a.substring(d+1,b+f+3),10));c.push(a.substring(b+f+3+1))
}}catch(g){tsk_utils_log_error(g);return null}return c}function tsk_utils_init_webrtc(){WebRtc4all_Init()
}function tsk_utils_have_websocket(){try{return !!window.WebSocket}catch(a){return false}}function tsk_utils_have_webrtc(){return(WebRtc4all_GetType()!=WebRtcType_e.NONE)
}function tsk_utils_have_webrtc4all(){return(tsk_utils_have_webrtc4npapi()||tsk_utils_have_webrtc4ie())
}function tsk_utils_have_webrtc4npapi(){return(WebRtc4all_GetType()==WebRtcType_e.NPAPI)}function tsk_utils_have_webrtc4ie(){return(WebRtc4all_GetType()==WebRtcType_e.IE)
}function tsk_utils_have_webrtc4native(){return(WebRtc4all_GetType()==WebRtcType_e.NATIVE)}function tsk_utils_have_webrtc4ericsson(){return(WebRtc4all_GetType()==WebRtcType_e.ERICSSON)
}function tsk_utils_webrtc4all_get_version(){return WebRtc4all_GetVersion()}function tsk_utils_have_stream(){try{return(tsk_utils_have_webrtc4all()||!!navigator.getUserMedia)
}catch(a){}return false}var __s_navigator_friendly_name=undefined;function tsk_utils_get_navigator_friendly_name(){if(!__s_navigator_friendly_name){__s_navigator_friendly_name="unknown";
if(navigator.userAgent||navigator.appName){var c=[{s_id:"chrome",s_name:"chrome"},{s_id:"firefox",s_name:"firefox"},{s_id:"safari",s_name:"safari"},{s_id:"opera",s_name:"opera"},{s_id:"microsoft internet explorer",s_name:"ie"},{s_id:"netscape",s_name:"netscape"}];
var a=navigator.userAgent?navigator.userAgent.toLowerCase():"null";var b=navigator.appName?navigator.appName.toLowerCase():"null";
for(var d=0;d<c.length;++d){if(a.indexOf(c[d].s_id)!=-1||b.indexOf(c[d].s_id)!=-1){__s_navigator_friendly_name=c[d].s_name;
break}}}}return __s_navigator_friendly_name}var __s_system_friendly_name=undefined;function tsk_utils_get_system_friendly_name(){if(!__s_system_friendly_name){__s_system_friendly_name="unknown";
if(navigator.appVersion){var b=[{s_id:"mac",s_name:"mac"},{s_id:"powerpc",s_name:"powerpc"},{s_id:"win",s_name:"windows"},{s_id:"sunos",s_name:"sunos"},{s_id:"linux",s_name:"linux"}];
var a=navigator.appVersion.toLowerCase();for(var c=0;c<b.length;++c){if(a.indexOf(b[c].s_id)!=-1){__s_system_friendly_name=b[c].s_name;
break}}}}return __s_system_friendly_name}var __i_debug_level=5;var __f_print=null;function tsk_utils_log_set_level(a){__i_debug_level=a
}function tsk_utils_log_set_print(a){__f_print=a}function tsk_utils_log_trace(a){if(__i_debug_level>=6){if(__f_print){__f_print(6,arguments)
}else{window.console&&window.console.debug&&window.console.debug.apply(window.console,arguments)}}}function tsk_utils_log_debug(a){if(__i_debug_level>=5){if(__f_print){__f_print(5,arguments)
}else{window.console&&window.console.debug&&window.console.debug.apply(window.console,arguments)}}}function tsk_utils_log_info(a){if(__i_debug_level>=4){if(__f_print){__f_print(4,arguments)
}else{window.console&&window.console.info&&window.console.info.apply(window.console,arguments)}}}function tsk_utils_log_warn(a){if(__i_debug_level>=3){if(__f_print){__f_print(3,arguments)
}else{window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}}}function tsk_utils_log_error(a){if(__i_debug_level>=2){if(__f_print){__f_print(2,arguments)
}else{window.console&&window.console.error&&window.console.error.apply(window.console,arguments)}}}function tsk_utils_log_fatal(a){if(__i_debug_level>=1){if(__f_print){__f_print(1,arguments)
}else{window.console&&window.console.error&&window.console.error.apply(window.console,arguments)}}}var tmedia_type_e={NONE:{i_id:0,s_name:null},GHOST:{i_id:(1<<0),s_name:null},AUDIO:{i_id:(1<<1),s_name:"audio"},VIDEO:{i_id:(1<<2),s_name:"video"},CHAT:{i_id:(1<<3),s_name:"message"},FILE:{i_id:(1<<4),s_name:"message"},T38:{i_id:(1<<5),s_name:"t38"},SCREEN_SHARE:{i_id:(1<<2)|(1<<6),s_name:"video/screen"},BFCP:{i_id:(1<<7),s_name:"bfcp"},BFCPAUDIO:{i_id:(1<<8)|(1<<7),s_name:"bfcpaudio"},BFCPVIDEO:{i_id:(1<<9)|(1<<7),s_name:"bfcpvideo"},MSRP:{i_id:(1<<3)|(1<<4),s_name:"message"},AUDIO_VIDEO:{i_id:(1<<1)|(1<<2),s_name:"audio/video"},AUDIO_BFCPVIDEO:{i_id:(1<<1)|(1<<9)|(1<<7),s_name:"audio/bfcpvideo"},VIDEO_BFCPVIDEO:{i_id:(1<<2)|(1<<9)|(1<<7),s_name:"video/bfcpvideo"},AUDIO_VIDEO_BFCPVIDEO:{i_id:(1<<1)|(1<<2)|(1<<9)|(1<<7),s_name:"audio/video/bfcpvideo"},HIGH_VIDEO:{i_id:(1<<2)|(1<<10),s_name:"video/high"},LOW_VIDEO:{i_id:(1<<2)|(1<<11),s_name:"video/low"},ALL:{i_id:255,s_name:"all"}};
function tmedia_cmp(b,a){return b.i_id===a.i_id}function tmedia_include(a,b){return !!(a.i_id&b.i_id)
}function tmedia_type_from_id(b){for(var a in tmedia_type_e){if(tmedia_type_e[a].i_id==b){return tmedia_type_e[a]
}}return tmedia_type_e.NONE}if(!window.__b_release_mode){tmedia_api_add_js_scripts("head","src/tinyMEDIA/src/tmedia_webrtc4all.js","src/tinyMEDIA/src/tmedia_defaults.js","src/tinyMEDIA/src/tmedia_session.js")
}w4aPeerConnection.prototype.s_configuration=null;w4aPeerConnection.prototype.f_IceCallback=null;w4aPeerConnection.prototype.f_Rfc5168Callback;
w4aPeerConnection.prototype.o_peer=null;w4aPeerConnection.prototype.localDescription=null;w4aPeerConnection.prototype.remoteDescription=null;
w4aSessionDescription.prototype.o_sdp=null;w4aIceCandidate.prototype.media=null;w4aIceCandidate.prototype.label=null;
var __o_roap_stream=null;var __o_jsep_stream_audio=null;var __o_jsep_stream_audiovideo=null;var WebRtcType_e={NONE:-1,NATIVE:0,IE:1,NPAPI:2,W4A:3,ERICSSON:4};
var __webrtc_type=WebRtcType_e.NONE;var __b_webrtc4all_initialized=false;function WebRtc4all_Init(){if(!__b_webrtc4all_initialized){try{if(__webrtc_type==WebRtcType_e.NONE){window.nativeURL=(window.webkitURL||window.URL);
if((navigator.getUserMedia&&window.RTCPeerConnection)){__webrtc_type=WebRtcType_e.NATIVE}}}catch(a){}if(__webrtc_type==WebRtcType_e.NONE||__webrtc_type==WebRtcType_e.W4A){var b=document.createElement("div");
b.id="__webrtc4ie.pluginInstance.id";try{new ActiveXObject("webrtc4ie.PluginInstance");b.innerHTML='<object id="__webrtc_plugin" classid="clsid:69E4A9D1-824C-40DA-9680-C7424A27B6A0" width="0px%" height="0px%" style="visibility:visible;"> </object>';
__webrtc_type=WebRtcType_e.IE}catch(a){try{b.innerHTML='<embed id="__webrtc_plugin" type="application/w4a" width="0px" height="0px" style="visibility:visible;"> </embed>';
__webrtc_type=WebRtcType_e.NPAPI}catch(a){}}b.style="visibility:visible; width:0px; height:0px";document.body.appendChild(b)
}__b_webrtc4all_initialized=true}}function WebRtc4all_GetPlugin(){return document.getElementById("__webrtc_plugin")
}function WebRtc4all_GetDisplayLocal(){return document.getElementById("__o_display_local")}function WebRtc4all_GetDisplayLocalScreencast(){return document.getElementById("__o_display_local_screencast")
}function WebRtc4all_GetDisplayRemote(){return document.getElementById("__o_display_remote")}function WebRtc4all_GetVersion(){try{return WebRtc4all_GetPlugin().version
}catch(a){}return"0.0.0.0"}function WebRtc4all_SetType(a){if(__webrtc_type!=WebRtcType_e.NONE){tsk_utils_log_error("Trying not set default webrtc type after init() is not allowed");
return false}switch(a){case"w4a":__webrtc_type=WebRtcType_e.W4A;break;case"ericsson":__webrtc_type=WebRtcType_e.ERICSSON;
break;case"native":__webrtc_type=WebRtcType_e.NATIVE;break;default:tsk_utils_log_error("["+a+"] not valid as default webrtc type");
return false}return true}function WebRtc4all_GetType(){return __webrtc_type}var __looper=undefined;function WebRtc4all_GetLooper(){if(__looper==undefined&&tsk_utils_have_webrtc4ie()){try{__looper=WebRtc4all_GetPlugin().windowHandle;
if(!__looper){tsk_utils_log_error("Failed to create looper. Your app may crash on IE11")}}catch(a){tsk_utils_log_error(a);
__looper=null}}return __looper}function WebRtc4all_SetDisplays(a,b,c){if(__webrtc_type==WebRtcType_e.IE){if(a){a.innerHTML='<object id="__o_display_local" classid="clsid:69E4A9D1-824C-40DA-9680-C7424A27B6A0" width="100%" height="100%" style="visibility:visible;"> </object>';
__o_display_local.style.visibility="hidden"}if(c){c.innerHTML='<object id="__o_display_local_screencast" classid="clsid:69E4A9D1-824C-40DA-9680-C7424A27B6A0" width="100%" height="100%" style="visibility:visible;"> </object>';
__o_display_local_screencast.style.visibility="hidden"}if(b){b.innerHTML='<object id="__o_display_remote" classid="clsid:69E4A9D1-824C-40DA-9680-C7424A27B6A0" width="100%" height="100%" style="visibility:visible;"> </object>';
__o_display_remote.style.visibility="hidden"}}else{if(__webrtc_type==WebRtcType_e.NPAPI){if(a){a.innerHTML='<object id="__o_display_local" type="application/w4a" width="100%" height="100%" style="visibility:visible; border:1px solid #000;"> </object>';
__o_display_local.style.visibility="hidden"}if(c){c.innerHTML='<object id="__o_display_local_screencast" type="application/w4a" width="100%" height="100%" style="visibility:visible; border:1px solid #000;"> </object>';
__o_display_local_screencast.style.visibility="hidden"}if(b){b.innerHTML="<object id='__o_display_remote' type='application/w4a' width='100%' height='100%' style='visibility:visible; border:1px solid #000;'> </object>";
__o_display_remote.style.visibility="hidden"}}}}function w4aSessionDescription(a){if(!__b_webrtc4all_initialized){WebRtc4all_Init()
}this.o_sdp=WebRtc4all_GetPlugin().createSessionDescription();this.o_sdp.Init(a?(a+""):null)}w4aSessionDescription.prototype.toSdp=function(){return this.o_sdp.toSdp()
};w4aSessionDescription.prototype.toString=w4aSessionDescription.prototype.toSdp;w4aSessionDescription.prototype.addCandidate=function(a){if(a&&a.media&&a.label){this.o_sdp.addCandidate(a.media,a.label)
}};function w4aIceCandidate(b,a){this.media=b;this.label=a}w4aIceCandidate.prototype.toSdp=function(){return this.label
};function w4aPeerConnection(s_configuration,f_IceCallback){if(!__b_webrtc4all_initialized){WebRtc4all_Init()
}var This=this;var b_isInternetExplorer=(__webrtc_type==WebRtcType_e.IE);this.s_configuration=s_configuration;
this.f_IceCallback=f_IceCallback;this.o_peer=WebRtc4all_GetPlugin().createPeerConnection();this.o_peer.Init(s_configuration);
This.attachDisplays();if(b_isInternetExplorer){eval("function This.o_peer::IceCallback(media, label, bMoreToFollow) { return This.onIceCallback (media, label, bMoreToFollow); }");
eval("function This.o_peer::Rfc5168Callback(command) { return This.onRfc5168Callback(command); }");eval("function This.o_peer::BfcpCallback(description) { return This.onBfcpCallback(description); }")
}else{this.o_peer.opaque=This;this.o_peer.setCallbackFuncName("w4aPeerConnection_NPAPI_OnEvent");this.o_peer.setRfc5168CallbackFuncName("w4aPeerConnection_NPAPI_OnRfc5168Event");
this.o_peer.setBfcpCallbackFuncName("w4aPeerConnection_NPAPI_OnBfcpEvent")}}w4aPeerConnection.SDP_OFFER=256;
w4aPeerConnection.SDP_PRANSWER=512;w4aPeerConnection.SDP_ANSWER=768;w4aPeerConnection.NEW=0;w4aPeerConnection.OPENING=1;
w4aPeerConnection.ACTIVE=2;w4aPeerConnection.CLOSED=3;w4aPeerConnection.ICE_GATHERING=256;w4aPeerConnection.ICE_WAITING=512;
w4aPeerConnection.ICE_CHECKING=768;w4aPeerConnection.ICE_CONNECTED=1024;w4aPeerConnection.ICE_COMPLETED=1280;
w4aPeerConnection.ICE_FAILED=1536;w4aPeerConnection.ICE_CLOSED=1792;w4aPeerConnection.prototype.createOffer=function(c){var a;
try{a=this.o_peer.createOfferEx(c.has_audio,c.has_video,c.has_bfcpvideo)}catch(b){a=this.o_peer.createOffer(c.has_audio,c.has_video)
}return a?((__webrtc_type==WebRtcType_e.IE)?new w4aSessionDescription(a):new w4aSessionDescription(a.toSdp())):null
};w4aPeerConnection.prototype.createAnswer=function(b,d){var a;try{a=this.o_peer.createAnswerEx(d.has_audio,d.has_video,d.has_bfcpvideo)
}catch(c){a=this.o_peer.createAnswer(d.has_audio,d.has_video)}return a?((__webrtc_type==WebRtcType_e.IE)?new w4aSessionDescription(a):new w4aSessionDescription(a.toSdp())):null
};w4aPeerConnection.prototype.setLocalDescription=function(a,b){this.o_peer.setLocalDescription(a,(__webrtc_type==WebRtcType_e.IE)?b.toSdp():b.o_sdp);
this.localDescription=new w4aSessionDescription(this.o_peer.localDescription)};w4aPeerConnection.prototype.setRemoteDescription=function(a,b){this.o_peer.setRemoteDescription(a,(__webrtc_type==WebRtcType_e.IE)?b.toSdp():b.o_sdp);
this.remoteDescription=new w4aSessionDescription(this.o_peer.remoteDescription)};w4aPeerConnection.prototype.startIce=function(a){this.o_peer.startIce(0,WebRtc4all_GetLooper())
};w4aPeerConnection.prototype.startMedia=function(a){if(this.o_peer){try{this.o_peer.startMedia()}catch(b){}}};
w4aPeerConnection.prototype.processIceMessage=function(a){tsk_utils_log_error("Not implemented")};w4aPeerConnection.prototype.addStream=function(a,b){};
w4aPeerConnection.prototype.removeStream=function(a){};w4aPeerConnection.prototype.processContent=function(d,a,b,f){if(this.o_peer){try{this.o_peer.processContent(d,a,b,f)
}catch(c){}}};w4aPeerConnection.prototype.setScreencastSrcWindowId=function(a){if(this.o_peer){this.o_peer.srcScreencast=a
}};w4aPeerConnection.prototype.sendDTMF=function(c){if(this.o_peer){var a=-1,b=c.charCodeAt(0);if(b>="0".charCodeAt(0)&&b<="9".charCodeAt(0)){a=b-"0".charCodeAt(0)
}else{if(b=="*".charCodeAt(0)){a=10}else{if(b=="#".charCodeAt(0)){a=11}else{if(b>="A".charCodeAt(0)&&b<="D".charCodeAt(0)){a=b-"A".charCodeAt(0)
}}}}if(a!=-1){this.o_peer.sendDTMF(a)}else{tsk_utils_log_error("Invalid DTMF code:"+c)}}};w4aPeerConnection.prototype.attachDisplays=function(){if(this.o_peer){try{this.o_peer.localVideo=WebRtc4all_GetDisplayLocal().windowHandle
}catch(a){}try{this.o_peer.localScreencast=WebRtc4all_GetDisplayLocalScreencast().windowHandle}catch(a){}try{this.o_peer.remoteVideo=WebRtc4all_GetDisplayRemote().windowHandle
}catch(a){}}};w4aPeerConnection.prototype.close=function(){if(this.o_peer){this.o_peer.close()}};w4aPeerConnection.prototype.mute=function(b,a){if(this.o_peer){if(b==="audio"){this.o_peer.muteAudio=!!a
}else{if(b==="video"){this.o_peer.muteVideo=!!a}}}};w4aPeerConnection.prototype.onIceCallback=function(b,a,c){tsk_utils_log_info("w4aPeerConnection::onIceCallback("+b+","+a+","+c+")");
this.iceState=this.o_peer.iceState;if(this.f_IceCallback){this.f_IceCallback(new w4aIceCandidate(b,a),c)
}};function w4aPeerConnection_NPAPI_OnEvent(c,a,b,d){c.onIceCallback(a,b,d)}w4aPeerConnection.prototype.onRfc5168Callback=function(a){tsk_utils_log_info("w4aPeerConnection::onRfc5168Callback("+a+")");
if(this.o_mgr&&this.o_mgr.callback){if(a==="picture_fast_update"){this.o_mgr.callback(tmedia_session_events_e.RFC5168_REQUEST_IDR,this.o_mgr.e_type)
}}else{tsk_utils_log_error("No manager associated to this peerconnection")}};function w4aPeerConnection_NPAPI_OnRfc5168Event(a,b){a.onRfc5168Callback(b)
}w4aPeerConnection.prototype.onBfcpCallback=function(a){tsk_utils_log_info("w4aPeerConnection::onBfcpCallback("+a+")");
if(this.o_mgr&&this.o_mgr.callback){this.o_mgr.callback(tmedia_session_events_e.BFCP_INFO,this.o_mgr.e_type,a)
}else{tsk_utils_log_error("No manager associated to this peerconnection")}};function w4aPeerConnection_NPAPI_OnBfcpEvent(a,b){a.onBfcpCallback(b)
}var __tmedia_defaults_e_media_type=tmedia_type_e.AUDIO_VIDEO;function tmedia_defaults_get_media_type(){return __tmedia_defaults_e_media_type
}var __o_peerconnection_class=undefined;var __o_sessiondescription_class=undefined;var __o_iceCandidate_class=undefined;
var tmedia_session_events_e={GET_LO_SUCCESS:0,GET_LO_FAILED:1,SET_RO_SUCCESS:10,SET_RO_FAILED:11,SET_ACK_SUCCESS:20,SET_ACK_FAILED:21,STREAM_LOCAL_REQUESTED:30,STREAM_LOCAL_ACCEPTED:31,STREAM_LOCAL_REFUSED:32,STREAM_LOCAL_ADDED:33,STREAM_LOCAL_REMOVED:34,STREAM_REMOTE_ADDED:35,STREAM_REMOTE_REMOVED:36,ICE_CANDIDATE:38,RFC5168_REQUEST_IDR:40,BFCP_INFO:50,TRACK_LOCAL_REQUESTED:300,TRACK_LOCAL_ACCEPTED:301,TRACK_LOCAL_REFUSED:302,TRACK_LOCAL_ENDED:303,SWITCH_SOURCE_REQUESTED:400,SWITCH_SOURCE_ACCEPTED:401,SWITCH_SOURCE_REFUSED:402};
tmedia_session_mgr.prototype.__ao_supported_media=[tmedia_type_e.AUDIO,tmedia_type_e.VIDEO];function tmedia_session_mgr(d,e,c,f,b,a){this.s_addr=e;
this.s_public_addr=null;this.b_ipv6=c;this.fn_callback=b;this.o_usr_data=a;this.sdp={};this.sdp.i_lo_ver=-1;
this.sdp.o_lo=null;this.sdp.i_ro_ver=-1;this.sdp.o_ro=null;this.o_stream_local=null;this.o_stream_local_audio=null;
this.o_stream_local_video=null;this.o_stream_locals={};this.add_stream_locals_timeout=null;this.s_ice_status="";
this.o_ice_description=null;this.o_stream_remote=null;this.o_stream_remotes={};this.add_stream_remotes_timeout=null;
this.b_started=false;this.b_ro_changed=false;this.b_lo_changed=false;this.b_state_changed=false;this.b_media_type_changed=false;
this.e_type=d;this.ao_sessions=new Array();this.ao_params=new Array();if(f){this.load_sessions()}}tmedia_session_mgr.prototype.is_roap=function(){return(WebRtc4all_GetType()==WebRtcType_e.ERICSSON)
};tmedia_session_mgr.prototype.is_jsep=function(){return !this.is_roap()};tmedia_session_mgr.prototype.get_stream_local=function(){return this.o_stream_local
};tmedia_session_mgr.prototype.get_stream_local_audio=function(){return this.o_stream_local_audio};tmedia_session_mgr.prototype.get_stream_local_video=function(){return this.o_stream_local_video
};tmedia_session_mgr.prototype.get_stream_locals=function(){return this.o_stream_locals};tmedia_session_mgr.prototype.get_stream_remote=function(){return this.o_stream_remote
};tmedia_session_mgr.prototype.get_stream_remotes=function(){return this.o_stream_remotes};tmedia_session_mgr.prototype.get_ice_status=function(){return this.s_ice_status
};tmedia_session_mgr.prototype.set_ice_status=function(a){this.s_ice_status=a};tmedia_session_mgr.prototype.get_ice_description=function(){return this.o_ice_description
};tmedia_session_mgr.prototype.set_ice_description=function(a){this.o_ice_description=a};tmedia_session_mgr.prototype.set_stream_local=function(a){this.o_stream_local=a;
this.callback(a?tmedia_session_events_e.STREAM_LOCAL_ADDED:tmedia_session_events_e.STREAM_LOCAL_REMOVED,tmedia_type_e.VIDEO)
};tmedia_session_mgr.prototype.add_stream_locals=function(a){var b=this;this.o_stream_locals[a.id]=a;
if(this.add_stream_locals_timeout){clearTimeout(this.add_stream_locals_timeout)}this.add_stream_locals_timeout=setTimeout(function(){b.callback(tmedia_session_events_e.STREAM_LOCAL_ADDED,tmedia_type_e.AUDIO_VIDEO);
b.add_stream_locals_timeout=null},1000)};tmedia_session_mgr.prototype.remove_stream_locals=function(a){var b=this;
if(this.o_stream_locals[a.id]){delete this.o_stream_locals[a.id]}if(this.remove_stream_locals_timeout){clearTimeout(this.remove_stream_locals_timeout)
}this.remove_stream_locals_timeout=setTimeout(function(){b.callback(tmedia_session_events_e.STREAM_LOCAL_REMOVED,tmedia_type_e.AUDIO_VIDEO);
b.remove_stream_locals_timeout=null},1000)};tmedia_session_mgr.prototype.track_ended=function(b,a){this.callback(tmedia_session_events_e.TRACK_LOCAL_ENDED,a)
};tmedia_session_mgr.prototype.clear_stream_locals=function(){this.callback(tmedia_session_events_e.STREAM_LOCAL_REMOVED,tmedia_type_e.AUDIO_VIDEO);
this.o_stream_locals={}};tmedia_session_mgr.prototype.set_stream_remote=function(a){this.o_stream_remote=a;
this.callback(a?tmedia_session_events_e.STREAM_REMOTE_ADDED:tmedia_session_events_e.STREAM_REMOTE_REMOVED,tmedia_type_e.VIDEO)
};tmedia_session_mgr.prototype.add_stream_remotes=function(a){var b=this;this.o_stream_remotes[a.id]=a;
if(this.add_stream_remotes_timeout){clearTimeout(this.add_stream_remotes_timeout)}this.add_stream_remotes_timeout=setTimeout(function(){b.callback(tmedia_session_events_e.STREAM_REMOTE_ADDED,tmedia_type_e.AUDIO_VIDEO);
b.add_stream_remotes_timeout=null},1000)};tmedia_session_mgr.prototype.remove_stream_remotes=function(a){delete this.o_stream_remotes[a.id]
};tmedia_session_mgr.prototype.clear_stream_remotes=function(){this.callback(tmedia_session_events_e.STREAM_REMOTE_REMOVED,tmedia_type_e.AUDIO_VIDEO);
this.o_stream_remotes={}};tmedia_session_mgr.prototype.set_fn_callback=function(b,a){this.fn_callback=b;
this.o_usr_data=a};tmedia_session_mgr.prototype.callback=function(c,b,a){if(this.fn_callback){if(c==tmedia_session_events_e.GET_LO_SUCCESS){this.b_lo_changed=true;
if(this.ao_sessions.length>0){this.sdp.o_lo=this.ao_sessions[0].o_sdp_lo}}this.fn_callback(this.o_usr_data,c,b,a)
}};tmedia_session_mgr.prototype.set_media_type=function(a){if(this.e_type!=a){this.b_media_type_changed=true;
this.e_type=a;for(var b=0;b<this.ao_sessions.length;++b){this.ao_sessions[b].set_media_type(a)}}return 0
};tmedia_session_mgr.prototype.get_media_type=function(){return this.e_type};tmedia_session_mgr.prototype.has_media=function(a){for(var b=0;
b<this.ao_sessions.length;++b){if(this.ao_sessions[b].e_type==a){return true}}return false};tmedia_session_mgr.prototype.has_ro_changed=function(){return this.b_ro_changed
};tmedia_session_mgr.prototype.has_state_changed=function(){return this.b_state_changed};tmedia_session_mgr.prototype.has_active_session=function(){for(var a=0;
a<this.ao_sessions.length;++a){if(this.ao_sessions[a].o_sdp_lo){return true}}return false};tmedia_session_mgr.prototype.is_started=function(){return this.b_started
};tmedia_session_mgr.prototype.has_lo=function(){return this.sdp.o_lo!=null};tmedia_session_mgr.prototype.has_ro=function(){return this.sdp.o_ro!=null
};tmedia_session_mgr.prototype.candidate_rtcp=function(b){for(var a=0;a<this.ao_sessions.length;++a){this.ao_sessions[a].candidate_rtcp(b)
}};tmedia_session_mgr.prototype.remove_media=function(a){for(var b=0;b<this.ao_sessions.length;++b){if(this.ao_sessions[b].e_type==a){this.ao_sessions[b].stop();
this.ao_sessions.splice(b,1);break}}};tmedia_session_mgr.prototype.send_dtmf=function(b){for(var a=0;
a<this.ao_sessions.length;++a){if((this.ao_sessions[a].e_type.i_id&tmedia_type_e.AUDIO.i_id)==tmedia_type_e.AUDIO.i_id){return this.ao_sessions[a].send_dtmf(b)
}}return -1};tmedia_session_mgr.prototype.apply_params=function(){var c;for(var b=0;b<this.ao_params.length;
++b){if(!(c=this.ao_params[b])){continue}switch(c.e_type){case tmedia_param_type_e.CODEC:break;case tmedia_param_type_e.MANAGER:break;
case tmedia_param_type_e.SESSION:for(var a=0;a<this.ao_sessions.length;++a){if(this.ao_sessions[a].e_type.i_id&c.e_media_type.i_id){this.ao_sessions[a].set(c)
}}break}}this.ao_params.splice(0,this.ao_params.length)};tmedia_session_mgr.prototype.load_sessions=function(){var c=null;
if(this.ao_sessions.length==0||this.b_media_type_changed){for(var b=0;b<tmedia_session_mgr.prototype.__ao_supported_media.length;
++b){var a=tmedia_session_mgr.prototype.__ao_supported_media[b];if((a.i_id&this.e_type.i_id)&&!this.has_media(a)){if((c=tmedia_session.prototype.Create(a,this))){this.ao_sessions.push(c)
}}else{if(!(a.i_id&this.e_type.i_id)&&this.has_media(a)){this.remove_media(a)}}}this.set(tmedia_session_mgr.prototype.SetParamSession(this.e_type,"local-ip",this.s_addr),tmedia_session_mgr.prototype.SetParamSession(this.e_type,"local-ipver",this.b_ipv6?"ipv6":"ipv4"));
this.apply_params(self)}return 0};tmedia_session_mgr.prototype.__update_ro=function(e){this.sdp.o_ro=e;
var b=true;var d=0;var a;while((a=e.get_header_at(tsdp_header_type_e.M,d++))){if(!a.is_held(false)){b=false;
break}}for(var c=0;c<this.ao_sessions.length;++c){this.ao_sessions[c].b_ro_held=b}return 0};tmedia_session_mgr.prototype.get_lo=function(){if(this.ao_sessions.length==0){if(this.load_sessions()!=0){tsk_utils_log_error("Failed to prepare the session manager");
return null}}if((this.b_ro_changed||this.b_lo_changed||this.b_state_changed||this.b_mediaType_changed)&&this.sdp.o_lo){this.sdp.o_lo=null;
if(this.b_mediaType_changed){this.load_sessions()}this.b_lo_changed=false;this.b_ro_changed=false;this.b_state_changed=false;
this.b_mediaType_changed=false}if(this.ao_sessions.length>0){this.sdp.o_lo=this.ao_sessions[0].get_lo()
}return this.sdp.o_lo};tmedia_session_mgr.prototype.set_ro=function(m,n){if(!m){tsk_utils_log_error("Invalid parameter");
return -1}var k=0;var h=false;var d=false;var c=false;var e=tmedia_type_e.NONE;var f=false;var b=(this.sdp.o_ro!=null);
var j;var a;if((j=m.get_header(tsdp_header_type_e.O))){if(this.sdp.i_ro_ver==j.i_sess_version){tsk_utils_log_warn("Remote offer has not changed");
return 0}this.sdp.i_ro_ver=j.i_sess_version}else{tsk_utils_log_error("o= line is missing");return -2}if((a=m.get_header(tsdp_header_type_e.C))&&a.s_addr){f=(tsk_string_iequals("IP4",a.s_addrtype)&&tsk_string_iequals("127.0.0.1",a.s_addr))||(tsk_string_iequals("IP6",a.s_addrtype)&&tsk_string_iequals("::1",a.s_addr))
}if(this.sdp.o_lo){e=m.get_media_type();if(n){var l=e.i_id;if(!(this.e_type.i_id&tmedia_type_e.BFCPVIDEO.i_id)){l&=~tmedia_type_e.BFCPVIDEO.i_id
}if(!(this.e_type.i_id&tmedia_type_e.BFCPAUDIO.i_id)){l&=~tmedia_type_e.BFCPAUDIO.i_id}if(!(this.e_type.i_id&tmedia_type_e.BFCP.i_id)){l&=~tmedia_type_e.BFCP.i_id
}e=tmedia_type_from_id(l)}if(e==tmedia_type_e.VIDEO&&this.e_type==tmedia_type_e.SCREEN_SHARE){e=this.e_type
}if((c=(e!=this.e_type))){this.set_media_type(e);tsk_utils_log_info("media type has changed")}}if(this.b_started&&!(this.is_roap()||this.is_jsep())&&((!d&&!f)||c)){if((k=this.stop())){tsk_utils_log_error("Failed to stop session manager");
return k}h=true}this.__update_ro(m);if((k=this.load_sessions())){tsk_utils_log_error("Failed to prepare the session manager");
return k}if(a&&a.s_addr){this.set(tmedia_session_mgr.prototype.SetParamSession(this.e_type,"remote-ip",a.s_addr))
}for(var g=0;g<this.ao_sessions.length;++g){this.ao_sessions[g].set_ro(m,n)}this.b_ro_changed=b;(this.get_lo(self));
if(h){if((k=this.start())){tsk_utils_log_warn("Failed to re-start session manager");return k}}return 0
};tmedia_session_mgr.prototype.processContent=function(d,b,c,e){for(var a=0;a<this.ao_sessions.length;
++a){this.ao_sessions[a].processContent(d,b,c,e)}};tmedia_session_mgr.prototype.start=function(){var b=0;
for(var a=0;a<this.ao_sessions.length;++a){if((b=this.ao_sessions[a].start())){return b}}this.b_started=true;
return 0};tmedia_session_mgr.prototype.stop=function(){var b=0;for(var a=0;a<this.ao_sessions.length;
++a){if((b=this.ao_sessions[a].stop())){return b}}this.b_started=false;return 0};tmedia_session_mgr.prototype.acked=function(){var b=0;
for(var a=0;a<this.ao_sessions.length;++a){if((b=this.ao_sessions[a].acked())){return b}}return 0};tmedia_session_mgr.prototype.is_held=function(d,a){var c=false;
var h;var b;var g;for(var e=0;e<this.ao_sessions.length;++e){var f=this.ao_sessions[e];if(!d||(f.e_type.i_id&d.i_id)){if(a&&f.o_sdp_lo){g=f.o_sdp_lo
}else{if(!a&&f.o_sdp_ro){g=f.o_sdp_ro}else{continue}}c=true;h=0;while((b=g.get_header_at(tsdp_header_type_e.M,h++))){if(!b.is_held(a)){return false
}}}}return c?true:false};tmedia_session_mgr.prototype.hold=function(a){var c;for(var b=0;b<this.ao_sessions.length;
++b){if(!a||(this.ao_sessions[b].e_type.i_id&a.i_id)){this.b_state_changed=true;if(c=this.ao_sessions[b].hold()){return c
}this.ao_sessions[b].b_lo_held=true}}return 0};tmedia_session_mgr.prototype.get_pc=function(a){var c;
for(var b=0;b<this.ao_sessions.length;++b){if(!a||(this.ao_sessions[b].e_type.i_id&a.i_id)){if(c=this.ao_sessions[b].get_pc()){return c
}}}return 0};tmedia_session_mgr.prototype.resume=function(a){var c;for(var b=0;b<this.ao_sessions.length;
++b){if(!a||(this.ao_sessions[b].e_type.i_id&a.i_id)){this.b_state_changed=true;if(c=this.ao_sessions[b].resume()){return c
}this.ao_sessions[b].b_lo_held=false}}return 0};tmedia_session_mgr.prototype.set=function(){for(var a=0;
a<arguments.length;++a){if(arguments[a]){this.ao_params.push(arguments[a])}}if(this.ao_sessions.length>0){this.apply_params()
}};tmedia_session_mgr.prototype.switch_to_high_video=function(){var b;for(var a=0;a<this.ao_sessions.length;
++a){if(b=this.ao_sessions[a].switch_to_high_video()){return b}}return 0};tmedia_session_mgr.prototype.switch_to_screen_video=function(){var b;
for(var a=0;a<this.ao_sessions.length;++a){if(b=this.ao_sessions[a].switch_to_screen_video()){return b
}}return 0};tmedia_session_mgr.prototype.SetParamSession=function(b,a,c){return new tmedia_param(tmedia_param_type_e.SESSION,b,a,c)
};tmedia_session_mgr.prototype.SetParamCodec=function(b,a,c){return new tmedia_param(tmedia_param_type_e.CODEC,b,a,c)
};tmedia_session_mgr.prototype.SetParam=function(b,a,c){return new tmedia_param(tmedia_param_type_e.MANAGER,b,a,c)
};function tmedia_session(b,a){this.e_type=b;this.b_ro_changed=false;this.b_initialized=false;this.b_prepared=false;
this.b_lo_held=false;this.b_ro_held=false;this.o_sdp=null;this.o_mgr=a}tmedia_session.prototype.set=function(a){return this.__set(a)
};tmedia_session.prototype.prepare=function(){return this.__prepare()};tmedia_session.prototype.set_media_type=function(a){return this.__set_media_type?this.__set_media_type(a):-1
};tmedia_session.prototype.start=function(){return this.__start()};tmedia_session.prototype.pause=function(){return this.__pause()
};tmedia_session.prototype.stop=function(){return this.__stop()};tmedia_session.prototype.get_lo=function(){return this.__get_lo()
};tmedia_session.prototype.set_ro=function(b,a){return this.__set_ro(b,a)};tmedia_session.prototype.processContent=function(c,a,b,d){return this.__processContent?this.__processContent(c,a,b,d):-1
};tmedia_session.prototype.acked=function(){return this.__acked()};tmedia_session.prototype.hold=function(){return this.__hold()
};tmedia_session.prototype.resume=function(){return this.__resume()};tmedia_session.prototype.switch_to_screen_video=function(){return this.__switch_to_screen_video()
};tmedia_session.prototype.switch_to_high_video=function(){return this.__switch_to_high_video()};tmedia_session.prototype.send_dtmf=function(a){return this.__send_dtmf?this.__send_dtmf(a):-1
};tmedia_session.prototype.get_pc=function(){return this.__get_pc()};tmedia_session.prototype.Create=function(b,a){switch(b){case tmedia_type_e.AUDIO:case tmedia_type_e.VIDEO:case tmedia_type_e.SCREEN_SHARE:case tmedia_type_e.BFCPVIDEO:case tmedia_type_e.AUDIO_BFCPVIDEO:case tmedia_type_e.VIDEO_BFCPVIDEO:case tmedia_type_e.AUDIO_VIDEO_BFCPVIDEO:case tmedia_type_e.HIGH_VIDEO:case tmedia_type_e.LOW_VIDEO:if(a.ao_sessions.length==0){if(a.is_jsep()){return tmedia_session_jsep.prototype.CreateInstance(a)
}else{return new tmedia_session_roap(a)}}return null;case tmedia_type_e.GHOST:return new tmedia_session_ghost(a);
default:tsk_utils_log_error(b+" not supported as media type");return null}};if(!window.__b_release_mode){tmedia_api_add_js_scripts("head","src/tinyMEDIA/src/tmedia_session_jsep.js","src/tinyMEDIA/src/tmedia_session_roap.js","src/tinyMEDIA/src/tmedia_session_ghost.js")
}tmedia_session_jsep.prototype=Object.create(tmedia_session.prototype);tmedia_session_jsep01.prototype=Object.create(tmedia_session_jsep.prototype);
tmedia_session_jsep.prototype.o_pc=null;tmedia_session_jsep.prototype.b_negotiation_needed=false;tmedia_session_jsep.prototype.b_cache_stream=false;
tmedia_session_jsep.prototype.b_pure=false;tmedia_session_jsep.prototype.o_local_stream_audio=null;tmedia_session_jsep.prototype.o_local_stream_low_video=null;
tmedia_session_jsep.prototype.o_local_stream_high_video=null;tmedia_session_jsep.prototype.o_local_stream_screen_video=null;
tmedia_session_jsep.prototype.o_sdp_jsep_lo=null;tmedia_session_jsep.prototype.o_sdp_lo=null;tmedia_session_jsep.prototype.b_sdp_lo_pending=false;
tmedia_session_jsep.prototype.o_sdp_json_ro=null;tmedia_session_jsep.prototype.o_sdp_ro=null;tmedia_session_jsep.prototype.b_sdp_ro_pending=false;
tmedia_session_jsep.prototype.b_sdp_ro_offer=false;tmedia_session_jsep.prototype.s_answererSessionId=null;
tmedia_session_jsep.prototype.s_offererSessionId=null;tmedia_session_jsep.prototype.ao_ice_servers=null;
tmedia_session_jsep.prototype.o_constraint={audio:undefined,video:undefined};tmedia_session_jsep.prototype.s_video_input_device_id="default";
tmedia_session_jsep.prototype.s_audio_input_device_id="default";tmedia_session_jsep.prototype.s_audio_output_device_id="default";
tmedia_session_jsep.prototype.s_call_type="audiovideo";tmedia_session_jsep.prototype.o_main_stream=undefined;
tmedia_session_jsep.prototype.d_screencast_windowid=0;tmedia_session_jsep.prototype.o_ice={};tmedia_session_jsep.prototype.o_ice_completed=false;
tmedia_session_jsep.prototype.b_candidate_rtcp=true;tmedia_session_jsep.prototype.b_ro_changed=false;
tmedia_session_jsep.prototype.b_lo_held=false;tmedia_session_jsep.prototype.b_ro_held=false;tmedia_session_jsep.prototype.CreateInstance=function(a){return new tmedia_session_jsep01(a)
};function tmedia_session_jsep(a){tmedia_session.call(this,a.e_type,a)}tmedia_session_jsep.prototype.candidate_rtcp=function(a){this.b_candidate_rtcp=a
};tmedia_session_jsep.prototype.__get_pc=function(){return this.o_pc};tmedia_session_jsep.prototype.__set=function(f){if(!f){return -1
}switch(f.s_key){case"ice-servers":this.ao_ice_servers=f.o_value;return 0;case"pure":this.b_pure=!!f.o_value;
return 0;case"cache-stream":this.b_cache_stream=!!f.o_value;return 0;case"constraint":this.o_constraint=f.o_value;
return 0;case"video-input":if(this.s_video_input_device_id!==f.o_value&&this.o_local_stream_low_video&&this.o_local_stream_high_video){tsk_utils_log_info("switch video input "+this.s_video_input_device_id+" -> "+f.o_value);
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REQUESTED,tmedia_type_e.HIGH_VIDEO,f.o_value);
var d=false;if(this.o_constraint.video&&this.o_constraint.video.mainstream){d=Object.assign({deviceId:{exact:f.o_value}},this.o_constraint.video.mainstream)
}else{d={deviceId:{exact:f.o_value}}}if(d.deviceId.exact=="default"){delete d.deviceId}tsk_utils_log_info("getUserMedia video/high, constraints:",d);
navigator.getUserMedia({audio:false,video:d,data:false,},function(h){h.type=tmedia_type_e.HIGH_VIDEO;
var g=h.getVideoTracks()[0];This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_ACCEPTED,tmedia_type_e.HIGH_VIDEO,f.o_value);
var j=This.o_pc.getSenders().find(function(k){return k.track.kind=="video"});if(j&&g){tsk_utils_log_debug("replace track: "+j.track.id+" -> "+g.id);
j.track&&j.track.stop();j.replaceTrack(g)}else{if(!j&&g){g&&g.stop()}}},function(g){tsk_utils_log_error("switch high video-input error: "+g.toString());
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REFUSED,tmedia_type_e.HIGH_VIDEO,g.toString())
});This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REQUESTED,tmedia_type_e.LOW_VIDEO,f.o_value);
var e=false;if(this.o_constraint.video&&this.o_constraint.video.secondarystream){e=Object.assign({deviceId:{exact:f.o_value}},this.o_constraint.video.secondarystream)
}else{e={deviceId:{exact:f.o_value}}}if(e.deviceId.exact=="default"){delete e.deviceId}tsk_utils_log_info("getUserMedia video/low, constraints:",e);
navigator.getUserMedia({audio:false,video:e,data:false,},function(h){h.type=tmedia_type_e.LOW_VIDEO;var g=h.getVideoTracks()[0];
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_ACCEPTED,tmedia_type_e.LOW_VIDEO,f.o_value);
var k=null;var j=This.o_pc.getSenders().find(function(m,l){if(m.track.kind=="video"){if(k){return true
}else{return false}}else{return false}});if(j&&g){tsk_utils_log_debug("replace track: "+j.track.id+" -> "+g.id);
j.track&&j.track.stop();j.replaceTrack(g)}else{if(!j&&g){g&&g.stop()}}},function(g){tsk_utils_log_error("switch low video-input error: "+g.toString());
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REFUSED,tmedia_type_e.LOW_VIDEO,g.toString())
})}this.s_video_input_device_id=f.o_value;return 0;case"audio-input":if(this.s_audio_input_device_id!==f.o_value&&this.o_local_stream_audio){tsk_utils_log_debug("switch audio input "+this.s_audio_input_device_id+" -> "+f.o_value);
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REQUESTED,tmedia_type_e.AUDIO,f.o_value);var b=false;
if(this.o_constraint.audio){b=Object.assign({deviceId:{exact:f.o_value}},this.o_constraint.audio)}else{b={deviceId:{exact:f.o_value}}
}if(b.deviceId.exact=="default"){delete b.deviceId}tsk_utils_log_info("getUserMedia audio, constraints:",b);
navigator.getUserMedia({audio:b,video:false,data:false,},function(h){var g=h.getAudioTracks()[0];This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_ACCEPTED,tmedia_type_e.AUDIO,f.o_value);
var j=This.o_pc.getSenders().find(function(k){return k.track.kind=="audio"});if(j&&g){tsk_utils_log_debug("replace track: "+j.track.id+" -> "+g.id);
j.track&&j.track.stop();j.replaceTrack(g)}else{if(!j&&g){g&&g.stop()}}},function(g){tsk_utils_log_error("switch audio-input error: "+g.toString());
This.o_mgr.callback(tmedia_session_events_e.SWITCH_SOURCE_REFUSED,tmedia_type_e.AUDIO,g.toString())})
}this.s_audio_input_device_id=f.o_value;return 0;case"audio-output":this.s_audio_output_device_id=f.o_value;
return 0;case"call-type":this.s_call_type=f.o_value;return 0;case"main-stream":this.o_main_stream=f.o_value;
return 0;case"screencast-windowid":this.d_screencast_windowid=parseFloat(f.o_value.toString());if(this.o_pc&&this.o_pc.setScreencastSrcWindowId){this.o_pc.setScreencastSrcWindowId(this.d_screencast_windowid)
}return 0;case"mute-audio":if(this.o_pc&&this.o_local_stream_audio&&typeof f.o_value=="boolean"){var a=this.o_local_stream_audio.getAudioTracks()||[];
for(var c=0;c<a.length;++c){a[c].enabled=!f.o_value}}break;case"mute-video":if(this.o_pc&&typeof f.o_value=="boolean"){var a=[];
if(this.o_local_stream_low_video){a=a.concat(this.o_local_stream_low_video.getVideoTracks())}if(this.o_local_stream_high_video){a=a.concat(this.o_local_stream_high_video.getVideoTracks())
}for(var c=0;c<a.length;++c){a[c].enabled=!f.o_value}}break;case"mute-screen":if(this.o_pc&&this.o_local_stream_screen_video&&typeof f.o_value=="boolean"){var a=this.o_local_stream_screen_video.getVideoTracks()||[];
for(var c=0;c<a.length;++c){a[c].enabled=!f.o_value}}break}return -2};tmedia_session_jsep.prototype.__prepare=function(){return 0
};tmedia_session_jsep.prototype.__set_media_type=function(a){if(a!=this.e_type){this.e_type=a;this.o_sdp_lo=null
}return 0};tmedia_session_jsep.prototype.__processContent=function(c,a,b,d){if(this.o_pc&&this.o_pc.processContent){this.o_pc.processContent(c,a,b,d);
return 0}return -1};tmedia_session_jsep.prototype.__send_dtmf=function(a){if(this.o_pc&&this.o_pc.sendDTMF){this.o_pc.sendDTMF(a);
return 0}return -1};tmedia_session_jsep.prototype.__start=function(){if(this.o_local_stream_audio&&this.o_local_stream_audio.start){this.o_local_stream_audio.start()
}if(this.o_local_stream_low_video&&this.o_local_stream_low_video.start){this.o_local_stream_low_video.start()
}if(this.o_local_stream_high_video&&this.o_local_stream_high_video.start){this.o_local_stream_high_video.start()
}if(this.o_local_stream_screen_video&&this.o_local_stream_screen_video.start){this.o_local_stream_screen_video.start()
}return 0};tmedia_session_jsep.prototype.__pause=function(){if(this.o_local_stream_audio&&this.o_local_stream_audio.pause){this.o_local_stream_audio.pause()
}if(this.o_local_stream_low_video&&this.o_local_stream_low_video.pause){this.o_local_stream_low_video.pause()
}if(this.o_local_stream_high_video&&this.o_local_stream_high_video.pause){this.o_local_stream_high_video.pause()
}if(this.o_local_stream_screen_video&&this.o_local_stream_screen_video.pause){this.o_local_stream_screen_video.pause()
}return 0};tmedia_session_jsep.prototype.__stop=function(){this.close();this.o_sdp_lo=null;this.o_ice={};
this.o_ice_completed=false;this.b_candidate_rtcp=true;tsk_utils_log_info("peerconnection stopped");return 0
};tmedia_session_jsep.prototype.decorate_lo=function(){if(this.o_sdp_lo){var e;if((e=this.o_sdp_lo.get_header(tsdp_header_type_e.S))){e.s_value="angliancd.com - "+tsk_utils_get_navigator_friendly_name()
}var a;if((a=this.o_sdp_lo.get_header(tsdp_header_type_e.O))){if(a.s_addr==="0.0.0.0"){a.s_addr="127.0.0.1"
}}this.o_sdp_lo.remove_media("video");var d=0;var b;var c=!!this.o_sdp_lo.get_header_a("fingerprint");
while((b=this.o_sdp_lo.get_header_at(tsdp_header_type_e.M,d++))){b.set_holdresume_att(this.b_lo_held,this.b_ro_held);
if(b.find_a("crypto")){b.s_proto="RTP/SAVPF"}else{if(c||b.find_a("fingerprint")){b.s_proto="UDP/TLS/RTP/SAVPF"
}}if(b.o_hdr_C&&b.o_hdr_C.s_addr==="0.0.0.0"){b.o_hdr_C.s_addr="127.0.0.1"}if(this.o_constraint){if(this.o_constraint.audio&&this.o_constraint.audio.bandwidth&&b.s_media.toLowerCase()=="audio"){b.add_header(new tsdp_header_B("AS:"+this.o_constraint.audio.bandwidth))
}else{if(this.o_constraint.video&&this.o_constraint.video.bandwidth&&b.s_media.toLowerCase()=="video"){b.add_header(new tsdp_header_B("AS:"+this.o_constraint.video.bandwidth))
}}}}}return 0};tmedia_session_jsep.prototype.decorate_ro=function(h){if(this.o_sdp_ro){var d,a;var c=0,b;
if(h){this.o_sdp_ro.remove_header(tsdp_header_type_e.A)}this.o_sdp_ro.remove_media("video");var f=function(k,l){var m=k.s_value.match(/^\d\s+(\w+):([\D|\d]+)/i);
if(m&&m.length==3){return m[l]}};var j=function(k){if(k&&k.s_field=="acap"){k.s_field=f(k,1);k.s_value=f(k,2)
}};var e=function(n,q,p,o){var l=0;var k=function(v,u,t){if(v){var w=(v.ao_headers||v.ao_hdr_A);for(var s=0;
s<w.length;++s){if(w[s].e_type==tsdp_header_type_e.A&&w[s].s_value){var r=(w[s].s_field===u);if(!r&&w[s].s_field=="acap"){r=(f(w[s],1)==u)
}if(r&&l++>=t){return w[s]}}}}};var m=k(n,p,o);if(!m){return k(n.get_header_m_by_name(q),p,o)}return m
};var g=!!this.o_sdp_ro.get_header_a("fingerprint");while((d=this.o_sdp_ro.get_header_at(tsdp_header_type_e.M,c++))){if(d.s_proto.indexOf("SAVP")<0){if(d.find_a("crypto")){d.s_proto="RTP/SAVPF";
break}else{if(g||d.find_a("fingerprint")){d.s_proto="UDP/TLS/RTP/SAVPF";break}}}if(d.s_proto.indexOf("SAVP")<0){if((a=e(this.o_sdp_ro,d.s_media,"fingerprint",0))){j(a);
if((a=e(this.o_sdp_ro,d.s_media,"setup",0))){j(a)}if((a=e(this.o_sdp_ro,d.s_media,"connection",0))){j(a)
}d.s_proto="UDP/TLS/RTP/SAVP"}}if(d.s_proto.indexOf("SAVP")<0){b=0;while((a=e(this.o_sdp_ro,d.s_media,"crypto",b++))){j(a);
d.s_proto="RTP/SAVPF"}}if(d.s_proto.indexOf("UDP/TLS/RTP/SAVP")!=-1){d.s_proto="RTP/SAVPF"}}}return 0
};tmedia_session_jsep.prototype.subscribe_stream_events=function(){if(this.o_pc){var a=(tmedia_session_jsep01.mozThis||this);
this.o_pc.onaddstream=function(b){a.o_remote_stream=b.stream;if(a.o_mgr){a.o_mgr.add_stream_remotes(b.stream)
}};this.o_pc.onremovestream=function(b){a.o_remote_stream=null;if(a.o_mgr){a.o_mgr.remove_stream_remotes(b.stream)
}}}};tmedia_session_jsep.prototype.close=function(){tsk_utils_log_info("peerconnection close");if(this.o_pc){function f(n){if(n){try{this.o_pc.removeStream(n)
}catch(m){}if(!this.b_cache_stream){try{var l=n.getTracks();for(var j in l){l[j].stop()}}catch(m){tsk_utils_log_error(m)
}try{n.stop()}catch(m){}}}}if(this.o_local_stream_audio){f(this.o_local_stream_audio);this.o_local_stream_audio=null
}if(this.o_local_stream_low_video){f(this.o_local_stream_low_video);this.o_local_stream_low_video=null
}if(this.o_local_stream_high_video){f(this.o_local_stream_high_video);this.o_local_stream_high_video=null
}if(this.o_local_stream_screen_video){f(this.o_local_stream_screen_video);this.o_local_stream_screen_video=null
}if(this.o_mgr){var a=this.o_mgr.get_stream_remotes()||[];for(var d in a){try{var c=a[d].getTracks()||[];
for(var b in c){c[b].stop()}this.o_pc.removeStream(a[d])}catch(k){tsk_utils_log_error(k)}}var h=this.o_mgr.get_stream_locals()||[];
for(var d in h){try{var c=h[d].getTracks()||[];for(var b in c){c[b].stop()}this.o_pc.removeStream(h[d])
}catch(k){tsk_utils_log_error(k)}}this.o_mgr.clear_stream_remotes();this.o_mgr.clear_stream_locals()}if(this.o_pc.getSenders){var g=this.o_pc.getSenders()||[];
for(var d in g){g[d].track&&g[d].track.stop()}}this.o_pc.close();this.o_pc=null;this.b_sdp_lo_pending=false;
this.b_sdp_ro_pending=false;this.s_video_input_device_id="default";this.s_audio_input_device_id="default";
this.s_audio_output_device_id="default";this.s_call_type="audiovideo";this.o_main_stream=undefined}};
tmedia_session_jsep.prototype.__acked=function(){return 0};tmedia_session_jsep.prototype.__hold=function(){if(this.b_lo_held){return
}this.b_lo_held=true;this.o_sdp_ro=null;this.o_sdp_lo=null;if(this.o_pc&&this.o_local_stream_audio){this.o_pc.removeStream(this.o_local_stream_audio)
}if(this.o_pc&&this.o_local_stream_low_video){this.o_pc.removeStream(this.o_local_stream_low_video)}if(this.o_pc&&this.o_local_stream_high_video){this.o_pc.removeStream(this.o_local_stream_high_video)
}if(this.o_pc&&this.o_local_stream_screen_video){this.o_pc.removeStream(this.o_local_stream_screen_video)
}return 0};tmedia_session_jsep.prototype.__switch_to_high_video=function(){var b=this;b.o_mgr.callback(tmedia_session_events_e.TRACK_LOCAL_REQUESTED,tmedia_type_e.HIGH_VIDEO,this.s_video_input_device_id);
var a=false;if(this.o_constraint.video&&this.o_constraint.video.mainstream){a=Object.assign({deviceId:{exact:this.s_video_input_device_id}},this.o_constraint.video.mainstream)
}else{a={deviceId:{exact:this.s_video_input_device_id}}}if(a.deviceId.exact=="default"){delete a.deviceId
}tsk_utils_log_info("getUserMedia video/high, constraints:",a);navigator.getUserMedia({audio:false,video:a,data:false,},function(c){tmedia_session_jsep01.onSwitchStreamSuccess(c,b,tmedia_type_e.HIGH_VIDEO)
},function(d){tsk_utils_log_debug("getUserMedia video high error",b.o_main_stream);if(!b.o_main_stream){tmedia_session_jsep01.onGetUserMediaError(d,b,tmedia_type_e.HIGH_VIDEO)
}else{var c=b.o_main_stream.clone();c.fake=b.o_main_stream.fake;tmedia_session_jsep01.onSwitchStreamSuccess(c,b,tmedia_type_e.HIGH_VIDEO)
}})};tmedia_session_jsep.prototype.__switch_to_screen_video=function(){var a=this;a.o_mgr.callback(tmedia_session_events_e.TRACK_LOCAL_REQUESTED,tmedia_type_e.SCREEN_SHARE);
tsk_utils_log_info("getDisplayMedia video screen");if(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia){tsk_utils_log_error("not supportted function",navigator.mediaDevices,navigator.mediaDevices?navigator.mediaDevices.getDisplayMedia:undefined);
tmedia_session_jsep01.onSwitchStreamError("not supportted function <navigator.mediaDevices.getDisplayMedia>",a,tmedia_type_e.SCREEN_SHARE);
return}navigator.mediaDevices.getDisplayMedia({video:{cursor:"always",frameRate:25,width:1920,height:1080,},audio:false,data:false,}).then(function(b){tmedia_session_jsep01.onSwitchStreamSuccess(b,a,tmedia_type_e.SCREEN_SHARE)
},function(b){tmedia_session_jsep01.onSwitchStreamError(b,a,tmedia_type_e.SCREEN_SHARE)})};tmedia_session_jsep.prototype.__resume=function(){if(!this.b_lo_held){return
}this.b_lo_held=false;this.o_sdp_lo=null;this.o_sdp_ro=null;if(this.o_pc&&this.o_local_stream_audio){this.o_pc.addStream(this.o_local_stream_audio)
}if(this.o_pc&&this.o_local_stream_low_video){this.o_pc.addStream(this.o_local_stream_low_video)}if(this.o_pc&&this.o_local_stream_high_video){this.o_pc.addStream(this.o_local_stream_high_video)
}if(this.o_pc&&this.o_local_stream_screen_video){this.o_pc.addStream(this.o_local_stream_screen_video)
}return 0};function tmedia_session_jsep01(a){tmedia_session_jsep.call(this,a);this.o_media_constraints={mandatory:{OfferToReceiveAudio:!!tmedia_include(this.e_type,tmedia_type_e.AUDIO),OfferToReceiveVideo:!!tmedia_include(this.e_type,tmedia_type_e.VIDEO),RtpDataChannels:true,},};
if(tsk_utils_get_navigator_friendly_name()=="firefox"){tmedia_session_jsep01.mozThis=this;this.o_media_constraints.mandatory.MozDontOfferDataChannel=true
}}tmedia_session_jsep01.mozThis=undefined;tmedia_session_jsep01.onSwitchStreamSuccess=function(f,j,g){var a=(tmedia_session_jsep01.mozThis||j);
f.type=g;tsk_utils_log_debug("current: ",f.getVideoTracks());var b=f.getVideoTracks()[0];a.o_mgr.callback(tmedia_session_events_e.TRACK_LOCAL_ACCEPTED,g,f);
var d=a.o_pc.getSenders().find(function(k){return k.track.kind=="video"});if(d&&b){tsk_utils_log_debug("replace "+g.s_name+" track: "+d.track.id+" -> "+b.id);
var e=a.o_local_stream_high_video;if(e){var c=e.getVideoTracks();tsk_utils_log_debug("high_video_stream",c);
if(c&&c.length>0){e.addTrack(b);e.removeTrack(c[0])}tsk_utils_log_debug("high_video_stream",e.getVideoTracks())
}d.track&&d.track.stop();b.onended=function(k){a.o_mgr.track_ended(k.stream,g)};if(tmedia_cmp(g,tmedia_type_e.HIGH_VIDEO)&&!f.fake){var h={};
if(a.o_constraint.video&&a.o_constraint.video.mainstream){h=a.o_constraint.video.mainstream}b.applyConstraints(h)
}d.replaceTrack(b);setTimeout(function(){var k=tmedia_cmp(g,tmedia_type_e.SCREEN_SHARE)?tmedia_type_e.HIGH_VIDEO:tmedia_type_e.SCREEN_SHARE;
a.o_mgr.callback(tmedia_session_events_e.TRACK_LOCAL_ENDED,k)},1000)}else{if(!d&&b){tsk_utils_log_debug("there is no old_sender but track: "+b.id);
b&&b.stop()}else{tsk_utils_log_debug("there is no old_sender and track")}}};tmedia_session_jsep01.onGetUserMediaSuccess=function(b,c,a){tsk_utils_log_trace("onGetUserMediaSuccess");
var e=(tmedia_session_jsep01.mozThis||c);if(e&&e.o_pc&&e.o_mgr){e.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,a||e.e_type);
var d=((e.b_sdp_ro_pending||e.b_sdp_ro_offer)&&(e.o_sdp_ro!=null));if(d){tsk_utils_log_debug("createAnswer");
e.o_pc.createAnswer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(f){tmedia_session_jsep01.onCreateSdpSuccess(f,e)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(f){tmedia_session_jsep01.onCreateSdpError(f,e)
},e.o_media_constraints,false)}else{tsk_utils_log_debug("createOffer");e.o_pc.createOffer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(f){tmedia_session_jsep01.onCreateSdpSuccess(f,e)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(f){tmedia_session_jsep01.onCreateSdpError(f,e)
},e.o_media_constraints)}}};tmedia_session_jsep01.onGetUserMediaAudioSuccess=function(b,c){tsk_utils_log_trace("onGetUserMediaAudioSuccess");
var d=(tmedia_session_jsep01.mozThis||c);if(d&&d.o_pc&&d.o_mgr){if(!d.b_sdp_lo_pending){tsk_utils_log_warn("onGetUserMediaAudioSuccess but no local sdp request is pending");
return}if(b){b.type=tmedia_type_e.AUDIO;if(b.getAudioTracks().length>0&&b.getVideoTracks().length==0){__o_jsep_stream_audio=b
}if(!d.o_local_stream_audio){d.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,tmedia_type_e.AUDIO)
}d.o_local_stream_audio=b;d.o_mgr.add_stream_locals(b);var a=d.o_pc.addTrack(b.getAudioTracks()[0],b)
}}};tmedia_session_jsep01.onGetUserMediaOnlyAudioSuccess=function(b,c){tsk_utils_log_trace("onGetUserMediaOnlyAudioSuccess");
var e=(tmedia_session_jsep01.mozThis||c);if(e&&e.o_pc&&e.o_mgr){if(!e.b_sdp_lo_pending){tsk_utils_log_warn("onGetUserMediaOnlyAudioSuccess but no local sdp request is pending");
return}if(b){b.type=tmedia_type_e.AUDIO;if(b.getAudioTracks().length>0&&b.getVideoTracks().length==0){__o_jsep_stream_audio=b
}if(!e.o_local_stream_audio){e.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,tmedia_type_e.AUDIO)
}e.o_local_stream_audio=b;e.o_mgr.add_stream_locals(b);if(e.o_pc.addTrack){var a=e.o_pc.addTrack(b.getAudioTracks()[0],b)
}else{if(e.o_pc.addStream){e.o_pc.addStream(b)}else{tsk_utils_log_error("can't add stream")}}}var d=((e.b_sdp_ro_pending||e.b_sdp_ro_offer)&&(e.o_sdp_ro!=null));
if(d){tsk_utils_log_debug("createAnswer");e.o_pc.createAnswer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(f){tmedia_session_jsep01.onCreateSdpSuccess(f,e)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(f){tmedia_session_jsep01.onCreateSdpError(f,e)
},e.o_media_constraints,false)}else{tsk_utils_log_debug("createOffer");e.o_pc.createOffer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(f){tmedia_session_jsep01.onCreateSdpSuccess(f,e)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(f){tmedia_session_jsep01.onCreateSdpError(f,e)
},e.o_media_constraints)}}};tmedia_session_jsep01.onGetUserMediaHighVideoSuccess=function(c,e){tsk_utils_log_trace("onGetUserMediaHighVideoSuccess");
var g=(tmedia_session_jsep01.mozThis||e);if(g&&g.o_pc&&g.o_mgr){if(!g.b_sdp_lo_pending){tsk_utils_log_warn("onGetUserMediaHighVideoSuccess but no local sdp request is pending");
return}if(c){c.type=tmedia_type_e.HIGH_VIDEO;if(c.getVideoTracks().length>0&&c.getAudioTracks().length==0){__o_jsep_stream_video=c
}if(!g.o_local_stream_high_video){g.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,tmedia_type_e.HIGH_VIDEO)
}g.o_local_stream_high_video=c;g.o_mgr.add_stream_locals(c);var a=c.getVideoTracks()[0];var d={};if(g.o_constraint.video&&g.o_constraint.video.mainstream){d=g.o_constraint.video.mainstream
}a.applyConstraints(d);var b=g.o_pc.addTrack(a,c);tsk_utils_log_debug(c.id+JSON.stringify(d))}if(g.o_local_stream_low_video||g.b_pure){var f=((g.b_sdp_ro_pending||g.b_sdp_ro_offer)&&(g.o_sdp_ro!=null));
if(f){tsk_utils_log_debug("createAnswer");g.o_pc.createAnswer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(h){tmedia_session_jsep01.onCreateSdpSuccess(h,g)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(h){tmedia_session_jsep01.onCreateSdpError(h,g)
},g.o_media_constraints,false)}else{tsk_utils_log_debug("createOffer");g.o_pc.createOffer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(h){tmedia_session_jsep01.onCreateSdpSuccess(h,g)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(h){tmedia_session_jsep01.onCreateSdpError(h,g)
},g.o_media_constraints)}}}};tmedia_session_jsep01.onGetUserMediaScreenSuccess=function(c,d){tsk_utils_log_trace("onGetUserMediaScreenSuccess");
var f=(tmedia_session_jsep01.mozThis||d);if(f&&f.o_pc&&f.o_mgr){if(!f.b_sdp_lo_pending){tsk_utils_log_warn("onGetUserMediaScreenSuccess but no local sdp request is pending");
return}if(c){c.type=tmedia_type_e.SCREEN_SHARE;if(c.getVideoTracks().length>0&&c.getAudioTracks().length==0){__o_jsep_stream_video=c
}if(!f.o_local_stream_screen_video){f.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,tmedia_type_e.SCREEN_SHARE)
}f.o_local_stream_screen_video=c;f.o_mgr.add_stream_locals(c);var a=c.getVideoTracks()[0];a.onended=function(g){f.o_mgr.track_ended(g.stream,tmedia_type_e.SCREEN_SHARE)
};var b=f.o_pc.addTrack(a,c);tsk_utils_log_debug(c.id+" -> screen")}var e=((f.b_sdp_ro_pending||f.b_sdp_ro_offer)&&(f.o_sdp_ro!=null));
if(e){tsk_utils_log_debug("createAnswer");f.o_pc.createAnswer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(g){tmedia_session_jsep01.onCreateSdpSuccess(g,f)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(g){tmedia_session_jsep01.onCreateSdpError(g,f)
},f.o_media_constraints,false)}else{tsk_utils_log_debug("createOffer");f.o_pc.createOffer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(g){tmedia_session_jsep01.onCreateSdpSuccess(g,f)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(g){tmedia_session_jsep01.onCreateSdpError(g,f)
},f.o_media_constraints)}}};tmedia_session_jsep01.onGetUserMediaLowVideoSuccess=function(c,d){tsk_utils_log_trace("onGetUserMediaLowVideoSuccess");
var f=(tmedia_session_jsep01.mozThis||d);if(f&&f.o_pc&&f.o_mgr){if(!f.b_sdp_lo_pending){tsk_utils_log_warn("onGetUserMediaLowVideoSuccess but no local sdp request is pending");
return}if(c){c.type=tmedia_type_e.LOW_VIDEO;if(!f.o_local_stream_low_video){f.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED,tmedia_type_e.LOW_VIDEO)
}f.o_local_stream_low_video=c;f.o_mgr.add_stream_locals(c);var a=c.getVideoTracks()[0];var g={};if(f.o_constraint.video&&f.o_constraint.video.secondarystream){g=f.o_constraint.video.secondarystream
}a.applyConstraints(g);var b=f.o_pc.addTrack(a,c);tsk_utils_log_debug(c.id+JSON.stringify(g))}if(f.o_local_stream_high_video||f.b_pure){var e=((f.b_sdp_ro_pending||f.b_sdp_ro_offer)&&(f.o_sdp_ro!=null));
if(e){tsk_utils_log_debug("createAnswer");f.o_pc.createAnswer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(h){tmedia_session_jsep01.onCreateSdpSuccess(h,f)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(h){tmedia_session_jsep01.onCreateSdpError(h,f)
},f.o_media_constraints,false)}else{tsk_utils_log_debug("createOffer");f.o_pc.createOffer(tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpSuccess:function(h){tmedia_session_jsep01.onCreateSdpSuccess(h,f)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onCreateSdpError:function(h){tmedia_session_jsep01.onCreateSdpError(h,f)
},f.o_media_constraints)}}}};tmedia_session_jsep01.onGetUserMediaError=function(b,c,a){tsk_utils_log_error("onGetUserMediaError",a);
var d=(tmedia_session_jsep01.mozThis||c);if(d&&d.o_mgr){tsk_utils_log_error("get user media error: "+b.toString());
d.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REFUSED,a||d.e_type,b.toString())}};tmedia_session_jsep01.onSwitchStreamError=function(b,c,a){tsk_utils_log_error("onSwitchStreamError");
var d=(tmedia_session_jsep01.mozThis||c);if(d&&d.o_mgr){tsk_utils_log_error("switch stream error: "+b.toString());
d.o_mgr.callback(tmedia_session_events_e.TRACK_LOCAL_REFUSED,a||d.e_type,b.toString())}};tmedia_session_jsep01.onCreateSdpSuccess=function(c,b){tsk_utils_log_trace("onCreateSdpSuccess");
var d=(tmedia_session_jsep01.mozThis||b);if(d&&d.o_pc){var a=tsdp_message.prototype.Parse(c.sdp);tmedia_session_jsep01.bandwidthSdp(d,a);
c.sdp=a.toString();tsk_utils_log_trace("setLocalDescription: \n"+c.sdp);d.o_pc.setLocalDescription(c,tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onSetLocalDescriptionSuccess:function(){tmedia_session_jsep01.onSetLocalDescriptionSuccess(d)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onSetLocalDescriptionError:function(e){tmedia_session_jsep01.onSetLocalDescriptionError(e,d)
})}};tmedia_session_jsep01.onCreateSdpError=function(a,b){tsk_utils_log_error("onCreateSdpError");var c=(tmedia_session_jsep01.mozThis||b);
if(c&&c.o_mgr){tsk_utils_log_error("create sdp error: "+a.toString());c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,c.e_type,a.toString())
}};tmedia_session_jsep01.onSetLocalDescriptionSuccess=function(a){tsk_utils_log_trace("onSetLocalDescriptionSuccess");
var b=(tmedia_session_jsep01.mozThis||a);if(b&&b.o_pc){if((b.o_pc.iceGatheringState||b.o_pc.iceState)==="complete"){tmedia_session_jsep01.onIceGatheringCompleted(b)
}b.b_sdp_ro_offer=false}};tmedia_session_jsep01.onSetLocalDescriptionError=function(a,b){tsk_utils_log_error("onSetLocalDescriptionError");
var c=(tmedia_session_jsep01.mozThis||b);if(c&&c.o_mgr){tsk_utils_log_error("set local description error: "+a.toString());
c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,c.e_type,a.toString())}};tmedia_session_jsep01.onSetRemoteDescriptionSuccess=function(a){tsk_utils_log_trace("onSetRemoteDescriptionSuccess");
var b=(tmedia_session_jsep01.mozThis||a);if(b){if(!b.b_sdp_ro_pending&&b.b_sdp_ro_offer){b.o_sdp_lo=null
}}};tmedia_session_jsep01.onSetRemoteDescriptionError=function(a,b){tsk_utils_log_error("onSetRemoteDescriptionError");
var c=(tmedia_session_jsep01.mozThis||b);if(c){tsk_utils_log_error("set remote description error: "+a.toString());
c.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED,c.e_type,a.toString())}};tmedia_session_jsep01.iceCandidateMatchSdp=function(u,f){var h=0;
var l=null;while((l=f.get_header_at(tsdp_header_type_e.M,h++))){var g=0;var c=null;var m=[];while((c=l.find_a_at("candidate",g++))){m.push(c)
}if(m.length>0&&m[0]){m[0].RemoveAllByField(l.ao_hdr_A,"candidate")}var s=null;var r=null;for(var t in m){var q=m[t];
if(-1!==q.s_value.indexOf("typ srflx")){s=q;try{var d=/raddr (\d+\.\d+\.\d+\.\d+) rport (\d+)/.exec(q.s_value);
if(d){var n=d[1];var e=d[2];for(var k in m){var p=m[k];if(-1!==p.s_value.indexOf(n+" "+e+" typ host")){r=p;
break}}}}catch(o){tsk_utils_log_warn("parse "+q.toString()+" failed! error: "+o.toString())}}if(s&&r){l.add_header(r);
l.add_header(s);s=null;r=null}}}};tmedia_session_jsep01.iceCandidateInternalSdp=function(v,e){var q=0;
var n=null;while((n=e.get_header_at(tsdp_header_type_e.M,q++))){var p=0;var u=null;var k=[];while((u=n.find_a_at("candidate",p++))){k.push(u)
}if(k.length>0&&k[0]){k[0].RemoveAllByField(n.ao_hdr_A,"candidate")}var b=null;var r=null;for(var l in k){var t=k[l];
if(-1!==t.s_value.indexOf("typ host")){try{var d=/(\d+) 1 udp (\d+) (\d+\.\d+\.\d+\.\d+) (\d+) typ host (.*)/.exec(t.s_value);
if(d){var f=parseInt(d[1]);var s=parseInt(d[2]);var g=d[3];var h=parseInt(d[4])||0;var c=d[5];var m=v.ao_ice_servers[0]&&v.ao_ice_servers[0].addr;
if(h>100){r=t;b=new tsdp_header_A("candidate",""+(f+1)+" 1 udp "+(s+1)+" "+m+" "+h+" typ srflx raddr "+g+" rport "+h+" "+c)
}}}catch(o){tsk_utils_log_warn("parse "+t.toString()+" failed! error: "+o.toString());continue}}if(b&&r){n.add_header(r);
n.add_header(b);b=null;r=null}}}};tmedia_session_jsep01.iceRemoteSdp=function(k,d){var f=0;var g=null;
while((g=d.get_header_at(tsdp_header_type_e.M,f++))){var n=d.get_header(tsdp_header_type_e.C);if(g.o_hdr_C){n=g.o_hdr_C
}var e=0;var b=null;while((b=g.find_a_at("candidate",e++))){var c=/(.*) (.*) udp (.*) (.*) ([1-9][0-9]*) typ host generation (.*)/.exec(b.s_value);
var a=c[1];var m=c[2];var l=c[3];var h=c[6];b.s_value=a+" "+m+" udp "+l+" "+n.s_addr+" "+g.i_port+" typ host generation "+h
}}};tmedia_session_jsep01.rtcpPortSdp=function(f,b){var d=0;var h=null;while((h=b.get_header_at(tsdp_header_type_e.M,d++))){var a=h.find_a("rtcp");
if(a){var e=/([1-9][0-9]*) IN (.*)/.exec(a.s_value);if(e){var c=e[1];var g=e[2];a.s_value=h.i_port+" "+g
}}}};tmedia_session_jsep01.ssrcGroupSdp=function(r,e){var h=0;var l=null;while((l=e.get_header_at(tsdp_header_type_e.M,h++))){var g=0;
var b=null;var m=[];while((b=l.find_a_at("ssrc",g++))){m.push(b)}if(m.length>0&&m[0]){m[0].RemoveAllByField(l.ao_hdr_A,"ssrc")
}g=0;var f=[];while((b=l.find_a_at("ssrc-group",g++))){var c=/FID ([1-9][0-9]*) ([1-9][0-9]*)/.exec(b.s_value);
if(c){var p=c[1];var o=c[2]}f.push(o)}for(var d=0;d<m.length;++d){var n=true;for(var a=0;d<f.length;++a){var o=f[a];
if(m[d].s_value.indexOf(o)!==-1){n=false;break}}if(n){l.add_header(m[d])}}if(m.length>0&&m[0]){m[0].RemoveAllByField(l.ao_hdr_A,"ssrc-group")
}}};tmedia_session_jsep01.bandwidthSdp=function(h,c){var e=0;var f=null;if(h.o_constraint&&h.o_constraint.video&&h.o_constraint.video.bitrate){while((f=c.get_header_at(tsdp_header_type_e.M,e++))){if(f.s_media.toLowerCase()==="video"){var d=0;
var a=null;var k=null;while((a=f.find_a_at("rtpmap",d++))){if(a.s_value.indexOf("H264")!==-1){var b=/([1-9][0-9]*) H264/.exec(a.s_value);
if(b){k=b[1];break}}}if(k!==null){f.add_header(new tsdp_header_A("fmtp",k+" packetization-mode=1;profile-level-id=42c028;"));
var g="";if(h.o_constraint.video.bitrate.start){g+="x-google-start-bitrate="+h.o_constraint.video.bitrate.start+";"
}if(h.o_constraint.video.bitrate.min){g+="x-google-min-bitrate="+h.o_constraint.video.bitrate.min+";"
}if(h.o_constraint.video.bitrate.max){g+="x-google-max-bitrate="+h.o_constraint.video.bitrate.max+";"
}f.add_header(new tsdp_header_A("fmtp",k+" "+g))}}}}};tmedia_session_jsep01.onIceGatheringCompleted=function(b){tsk_utils_log_trace("onIceGatheringCompleted");
var c=(tmedia_session_jsep01.mozThis||b);if(c&&c.o_pc){if(!c.b_sdp_lo_pending){tsk_utils_log_warn("onIceGatheringCompleted but no local sdp request is pending");
return}if(!c.o_ice_completed){var a=(c.localDescription||c.o_pc.localDescription);if(a){c.o_sdp_jsep_lo=a;
c.o_sdp_lo=tsdp_message.prototype.Parse(c.o_sdp_jsep_lo.sdp);if(b.ao_ice_servers[0]&&b.ao_ice_servers[0].internal){tmedia_session_jsep01.iceCandidateInternalSdp(c,c.o_sdp_lo)
}else{tmedia_session_jsep01.iceCandidateMatchSdp(c,c.o_sdp_lo)}tmedia_session_jsep01.rtcpPortSdp(c,c.o_sdp_lo);
c.decorate_lo();if(c.o_mgr){c.o_mgr.callback(tmedia_session_events_e.GET_LO_SUCCESS,c.e_type);c.o_ice_completed=true
}}else{c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,c.e_type,"localDescription is null");tsk_utils_log_error("localDescription is null")
}}}};tmedia_session_jsep01.onIceCandidate=function(d,j){var a=(tmedia_session_jsep01.mozThis||j);if(!a||!a.o_pc){tsk_utils_log_warn("This/PeerConnection is null: unexpected");
return}var m=d.candidate;if(m){if(!m.type){if(m.candidate.indexOf("typ host")!==-1){var c=m.candidate.match(/candidate:(\d+) (\d) (\w+) (\d+) ([\w.:]+) (\d+)/);
if(c&&c.length>=7){m.type="host";m.component=c[2]==="1"?"rtp":"rtcp";m.protocol=c[3];m.address=c[5];m.port=c[6]
}}else{if(m.candidate.indexOf("typ srflx")!==-1){var k=m.candidate.match(/candidate:(\d+) (\d) (\w+) (\d+) ([\w.:]+) (\d+) typ srflx raddr ([\w.:]+) rport (\d+)/);
if(k&&k.length>=9){m.type="srflx";m.component=k[2]==="1"?"rtp":"rtcp";m.protocol=k[3];m.address=k[5];
m.port=k[6];m.relatedAddress=k[7];m.relatedPort=k[8]}}}}tsk_utils_log_debug("ice candidate("+a.o_pc.iceConnectionState+" "+a.o_pc.iceGatheringState+") "+m.sdpMid+" "+m.type+" "+m.candidate,m);
function e(n){return{sdpMid:n.sdpMid,relatedAddress:n.relatedAddress,relatedPort:n.relatedPort,address:n.address,port:n.port,protocol:n.protocol,component:n.component,}
}function f(n){if(/\d+\.\d+\.\d+\.\d+/.test(n.address)){return{sdpMid:n.sdpMid,address:n.address,port:n.port,protocol:n.protocol,component:n.component,}
}return false}switch(m.type){case"srflx":switch(m.sdpMid){case"audio":if(m.component==="rtp"){if(!a.o_ice.video_rtp){a.o_ice.audio_rtp=e(m)
}else{if(a.o_ice.video_rtp.relatedAddress===m.relatedAddress){a.o_ice.audio_rtp=e(m);tsk_utils_log_info("candidate(rtp) audio and video completed")
}}}else{if(m.component==="rtcp"){if(!a.o_ice.video_rtcp){a.o_ice.audio_rtcp=e(m)}else{if(a.o_ice.video_rtcp.relatedAddress===m.relatedAddress){a.o_ice.audio_rtcp=e(m);
tsk_utils_log_info("candidate(rtcp) audio and video completed")}}}}break;case"video":if(m.component==="rtp"){if(!a.o_ice.audio_rtp){a.o_ice.video_rtp=e(m)
}else{if(a.o_ice.audio_rtp.relatedAddress===m.relatedAddress){a.o_ice.video_rtp=e(m);tsk_utils_log_info("candidate(rtp) video and audio completed")
}}}else{if(m.component==="rtcp"){if(!a.o_ice.audio_rtcp){a.o_ice.video_rtcp=e(m)}else{if(a.o_ice.audio_rtcp.relatedAddress===m.relatedAddress){a.o_ice.video_rtcp=e(m);
tsk_utils_log_info("candidate(rtcp) video and audio completed")}}}}break;default:break}if(a.o_ice.audio_rtp&&a.o_ice.video_rtp){tsk_utils_log_debug("ice rtp candidate completed, need rtcp?",a.b_candidate_rtcp);
if(a.b_candidate_rtcp){if(a.o_ice.audio_rtcp&&a.o_ice.video_rtcp){tmedia_session_jsep01.onIceGatheringCompleted(a)
}else{tsk_utils_log_debug("ice rtcp candidate not completed, waiting...")}}else{a.o_ice.audio_rtcp={};
a.o_ice.video_rtcp={};tmedia_session_jsep01.onIceGatheringCompleted(a)}}break;case"host":if(!a.o_ice.hosts){a.o_ice.hosts=[]
}hostCand=f(m);if(hostCand){tsk_utils_log_debug("push an candidate",j.ao_ice_servers);a.o_ice.hosts.push(hostCand);
var g=false;var h=false;if(j.ao_ice_servers[0]&&j.ao_ice_servers[0].addr){for(var b in a.o_ice.hosts){var l=a.o_ice.hosts[b];
if(l.sdpMid=="video"&&l.protocol=="udp"){g=true}if(l.sdpMid=="audio"&&l.protocol=="udp"){h=true}}tsk_utils_log_debug("push an candidate",h,g);
if(h){tmedia_session_jsep01.onIceGatheringCompleted(a)}}}break;default:break}}};tmedia_session_jsep01.onIceCandidateError=function(b,a){var c=(tmedia_session_jsep01.mozThis||a);
if(!c||!c.o_pc){tsk_utils_log_error("This/PeerConnection is null: unexpected");return}tsk_utils_log_warn("ice candidate error("+c.o_pc.iceConnectionState+" "+c.o_pc.iceGatheringState+") "+b.hostCandidate+" "+b.errorCode+" "+b.errorText)
};tmedia_session_jsep01.onIceConnectionStateChange=function(b,a){var c=(tmedia_session_jsep01.mozThis||a);
if(!c||!c.o_pc){tsk_utils_log_error("This/PeerConnection is null: unexpected");return}tsk_utils_log_info("ice connection state change "+c.o_pc.iceConnectionState+"-"+c.o_pc.iceGatheringState);
c.o_mgr.set_ice_status(c.o_pc.iceConnectionState);c.o_mgr.set_ice_description(c.o_ice);c.o_mgr.callback(tmedia_session_events_e.ICE_CANDIDATE,c.e_type,c.o_pc.iceConnectionState);
if(c.o_pc.iceConnectionState==="failed"&&c.o_pc.iceGatheringState==="complete"){}};tmedia_session_jsep01.onIceGatheringStateChange=function(b,a){var c=(tmedia_session_jsep01.mozThis||a);
tsk_utils_log_info("ice gathering state change "+c.o_pc.iceConnectionState+"-"+c.o_pc.iceGatheringState);
c.o_mgr.set_ice_status(c.o_pc.iceConnectionState);c.o_mgr.set_ice_description(c.o_ice);c.o_mgr.callback(tmedia_session_events_e.ICE_CANDIDATE,c.e_type,c.o_pc.iceConnectionState);
if(!c||!c.o_pc){tsk_utils_log_error("This/PeerConnection is null: unexpected");return}};tmedia_session_jsep01.onNegotiationNeeded=function(b,a){tsk_utils_log_trace("onNegotiationNeeded");
var c=(tmedia_session_jsep01.mozThis||a);if(!c||!c.o_pc){return}if(c.o_ice.audio_rtp&&c.o_ice.video_rtp&&c.o_ice.audio_rtcp&&c.o_ice.video_rtcp&&c.b_negotiation_needed){c.b_negotiation_needed=false
}};tmedia_session_jsep01.onSignalingstateChange=function(b,a){var c=(tmedia_session_jsep01.mozThis||a);
if(!c||!c.o_pc){return}tsk_utils_log_info("onSignalingstateChange:"+c.o_pc.signalingState);if(c.o_local_stream&&c.o_pc.signalingState==="have-remote-offer"){tmedia_session_jsep01.onGetUserMediaSuccess(c.o_local_stream,c)
}};tmedia_session_jsep01.prototype.__get_lo=function(){var b=this;if(!this.o_pc&&!this.b_lo_held){var j=this.ao_ice_servers;
if(!j){j=tmedia_session_jsep01.mozThis?[{url:"stun:23.21.150.121:3478"},{url:"stun:216.93.246.18:3478"},{url:"stun:66.228.45.110:3478"},{url:"stun:173.194.78.127:19302"}]:[{url:"stun:stun.l.google.com:19302"},{url:"stun:stun.counterpath.net:3478"},{url:"stun:numb.viagenie.ca:3478"}]
}try{tsk_utils_log_debug("ICE servers:"+JSON.stringify(j))}catch(f){}var c=null;if(j&&!j.length){c=null
}else{c={iceServers:j,rtcpMuxPolicy:"negotiate",bundlePolicy:"max-compat",sdpSemantics:"unified-plan",showSsrcInSimulcastOffer:true,};
if(webrtcDetectedBrowser=="Safari"){c.iceServers=[{urls:"stun:stun.counterpath.net:3478"}]}}window.pc=this.o_pc=new window.RTCPeerConnection(c,this.o_media_constraints);
var g=null;if(this.o_pc.getConfiguration){g=this.o_pc.getConfiguration()}tsk_utils_log_debug("peer connection start with",c);
this.o_pc.onicecandidate=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onIceCandidate:function(e){tmedia_session_jsep01.onIceCandidate(e,b)
};this.o_pc.onicecandidateerror=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onIceCandidateError:function(e){tmedia_session_jsep01.onIceCandidateError(e,b)
};this.o_pc.oniceconnectionstatechange=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onIceConnectionStateChange:function(e){tmedia_session_jsep01.onIceConnectionStateChange(e,b)
};this.o_pc.onicegatheringstatechange=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onIceGatheringStateChange:function(e){tmedia_session_jsep01.onIceGatheringStateChange(e,b)
};this.o_pc.onnegotiationneeded=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onNegotiationNeeded:function(e){tmedia_session_jsep01.onNegotiationNeeded(e,b)
};this.o_pc.onsignalingstatechange=tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onSignalingstateChange:function(e){tmedia_session_jsep01.onSignalingstateChange(e,b)
};this.subscribe_stream_events();this.o_ice={};this.o_ice_completed=false}if(!this.o_sdp_lo&&!this.b_sdp_lo_pending){this.b_sdp_lo_pending=true;
if(this.b_sdp_ro_pending&&this.o_sdp_ro){this.__set_ro(this.o_sdp_ro,true)}if(tmedia_cmp(this.e_type,tmedia_type_e.AUDIO)&&(this.b_cache_stream&&__o_jsep_stream_audio)){tmedia_session_jsep01.onGetUserMediaSuccess(__o_jsep_stream_audio,b)
}else{if(tmedia_cmp(this.e_type,tmedia_type_e.AUDIO_VIDEO)&&(this.b_cache_stream&&__o_jsep_stream_audiovideo)){tmedia_session_jsep01.onGetUserMediaSuccess(__o_jsep_stream_audiovideo,b)
}else{if(!this.b_lo_held&&!this.o_local_stream){tsk_utils_log_info("call type:"+this.s_call_type);var d=tmedia_include(this.e_type,tmedia_type_e.AUDIO);
var a=tmedia_include(this.e_type,tmedia_type_e.VIDEO);if(this.s_call_type=="audio"){this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.AUDIO,this.s_audio_input_device_id);
tsk_utils_log_info("getUserMedia audio, device:"+this.s_audio_input_device_id);var k=false;if(this.o_constraint.audio){k=Object.assign({deviceId:{exact:this.s_audio_input_device_id}},this.o_constraint.audio)
}else{k={deviceId:{exact:this.s_audio_input_device_id}}}if(k.deviceId.exact=="default"){delete k.deviceId
}tsk_utils_log_info("getUserMedia audio, constraints:",k);navigator.getUserMedia({audio:k,video:false,data:false,},function(e){tmedia_session_jsep01.onGetUserMediaOnlyAudioSuccess(e,b)
}.bind(this),function(e){tmedia_session_jsep01.onGetUserMediaError(e,b,tmedia_type_e.AUDIO)}.bind(this))
}else{if(this.s_call_type=="audiovideo"){function h(){if(a){tsk_utils_log_info("getUserMedia video high, device:",this.s_video_input_device_id,this.o_main_stream);
this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.HIGH_VIDEO,this.s_video_input_device_id);
var e=false;if(this.o_constraint.video&&this.o_constraint.video.mainstream){e=Object.assign({deviceId:{exact:this.s_video_input_device_id}},this.o_constraint.video.mainstream)
}else{e={deviceId:{exact:this.s_video_input_device_id}}}if(e.deviceId.exact=="default"){delete e.deviceId
}tsk_utils_log_info("getUserMedia video/high, constraints:",e);navigator.getUserMedia({audio:false,video:e,data:false,},function(m){tmedia_session_jsep01.onGetUserMediaHighVideoSuccess(m,b)
},function(n){if(!b.o_main_stream){tmedia_session_jsep01.onGetUserMediaError(n,b,tmedia_type_e.HIGH_VIDEO)
}else{var m=b.o_main_stream.clone();m.fake=b.o_main_stream.fake;tmedia_session_jsep01.onGetUserMediaHighVideoSuccess(m,b)
}});if(!this.b_pure){tsk_utils_log_info("getUserMedia video low, device:"+this.s_video_input_device_id);
this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.LOW_VIDEO,this.s_video_input_device_id);
var l=false;if(this.o_constraint.video&&this.o_constraint.video.secondarystream){l=Object.assign({deviceId:{exact:this.s_video_input_device_id}},this.o_constraint.video.secondarystream)
}else{l={deviceId:{exact:this.s_video_input_device_id}}}if(l.deviceId.exact=="default"){delete l.deviceId
}tsk_utils_log_info("getUserMedia video/low, constraints:",e);navigator.getUserMedia({audio:false,video:l,data:false,},function(m){tmedia_session_jsep01.onGetUserMediaLowVideoSuccess(m,b)
},function(n){if(!b.o_main_stream){tmedia_session_jsep01.onGetUserMediaError(n,b,tmedia_type_e.LOW_VIDEO)
}else{var m=b.o_main_stream.clone();m.fake=b.o_main_stream.fake;tmedia_session_jsep01.onGetUserMediaLowVideoSuccess(m,b)
}})}}}if(d){this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.AUDIO,this.s_audio_input_device_id);
tsk_utils_log_info("getUserMedia audio, device:"+this.s_audio_input_device_id);var k=false;if(this.o_constraint.audio){k=Object.assign({deviceId:{exact:this.s_audio_input_device_id}},this.o_constraint.audio)
}else{k={deviceId:{exact:this.s_audio_input_device_id}}}if(k.deviceId.exact=="default"){delete k.deviceId
}tsk_utils_log_info("getUserMedia audio, constraints:",k);navigator.getUserMedia({audio:k,video:false,data:false,},function(e){tmedia_session_jsep01.onGetUserMediaAudioSuccess(e,b);
h.bind(this)()}.bind(this),function(e){h.bind(this)()}.bind(this))}else{h.bind(this)()}}else{if(this.s_call_type=="screenshare"){function h(){if(a){tsk_utils_log_info("getUserMedia screen stream:",this.o_main_stream);
this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.SCREEN_SHARE);if(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia){tmedia_session_jsep01.onGetUserMediaError("not supportted function <navigator.mediaDevices.getDisplayMedia>",b,tmedia_type_e.SCREEN_SHARE)
}if(!this.o_main_stream){navigator.mediaDevices.getDisplayMedia({video:{cursor:"always",frameRate:25,width:1920,height:1080,},audio:false,data:false,}).then(function(l){tmedia_session_jsep01.onGetUserMediaScreenSuccess(l,b)
},function(l){tmedia_session_jsep01.onGetUserMediaError(l,b,tmedia_type_e.SCREEN_SHARE)})}else{var e=this.o_main_stream.clone();
e.fake=this.o_main_stream.fake;tmedia_session_jsep01.onGetUserMediaScreenSuccess(e,b)}}}if(d){this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED,tmedia_type_e.AUDIO,this.s_audio_input_device_id);
tsk_utils_log_info("getUserMedia audio, device:"+this.s_audio_input_device_id);var k=false;if(this.o_constraint.audio){k=Object.assign({deviceId:{exact:this.s_audio_input_device_id}},this.o_constraint.audio)
}else{k={deviceId:{exact:this.s_audio_input_device_id}}}if(k.deviceId.exact=="default"){delete k.deviceId
}tsk_utils_log_info("getUserMedia audio, constraints:",k);navigator.getUserMedia({audio:k,video:false,data:false,},function(e){tmedia_session_jsep01.onGetUserMediaAudioSuccess(e,b);
h.bind(this)()}.bind(this),function(e){h.bind(this)()}.bind(this))}else{h.bind(this)()}}}}}}}}return this.o_sdp_lo
};tmedia_session_jsep01.prototype.__set_ro=function(c,a){if(!c){tsk_utils_log_error("Invalid argument");
return -1}this.o_sdp_ro=c;this.b_sdp_ro_offer=a;if(a){this.o_sdp_lo=null}if(this.o_pc){try{var d=this;
this.decorate_ro(false);tmedia_session_jsep01.bandwidthSdp(d,this.o_sdp_ro);tmedia_session_jsep01.iceRemoteSdp(d,this.o_sdp_ro);
tsk_utils_log_trace("setRemoteDescription("+(a?"offer)":"answer)")+"\n"+this.o_sdp_ro);this.o_pc.setRemoteDescription(new window.RTCSessionDescription({type:a?"offer":"answer",sdp:d.o_sdp_ro.toString()}),tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onSetRemoteDescriptionSuccess:function(){tmedia_session_jsep01.onSetRemoteDescriptionSuccess(d)
},tmedia_session_jsep01.mozThis?tmedia_session_jsep01.onSetRemoteDescriptionError:function(e){tmedia_session_jsep01.onSetRemoteDescriptionError(e,d)
})}catch(b){tsk_utils_log_error(b);this.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED,this.e_type,b.toString());
return -2}finally{this.b_sdp_ro_pending=false}}else{this.b_sdp_ro_pending=true}return 0};var __o_session_roap=null;
var tmedia_session_state_e={NONE:-1,OFFER_SENT:0,OFFER_RECEIVED:1,ANSWER_SENT:2,ANSWER_RECEIVED:3,LOCAL_HOLD:10};
function tmedia_session_roap(a){this.__proto__.__proto__=new tmedia_session(tmedia_type_e.AUDIO_VIDEO,a);
this.e_state=tmedia_session_state_e.NONE;this.o_pc=null;this.o_pc_json=null;this.o_remote_stream=null;
this.o_local_stream=null;this.o_sdp_json_lo=null;this.o_sdp_lo=null;this.o_sdp_json_ro=null;this.o_sdp_ro=null;
this.b_ro_changed=false;this.b_lo_held=false;this.b_ro_held=false}tmedia_session_roap.prototype.__set=function(a){return 0
};tmedia_session_roap.prototype.__prepare=function(){return 0};tmedia_session_roap.prototype.__start=function(){return 0
};tmedia_session_roap.prototype.__pause=function(){return 0};tmedia_session_roap.prototype.__stop=function(){tsk_utils_log_info("peer connection stop");
if(this.o_pc){this.o_pc.close();this.o_pc=null}this.o_mgr.clear_stream_remotes(null);this.o_mgr.clear_stream_locals(null);
return 0};tmedia_session_roap.prototype.__get_lo=function(){tsk_utils_log_info("ROAP: __get_lo");if(!this.o_pc){__o_session_roap=this;
this.o_mgr.set_stream_local(__o_roap_stream);__o_session_roap.o_local_stream=__o_roap_stream;__o_session_roap.o_pc=new __o_peerconnection_class("STUN stun.l.google.com:19302",__o_session_roap.__on_signaling_message);
__o_session_roap.o_pc.o_session=__o_session_roap;__o_session_roap.o_pc.onstatechange=tmedia_session_roap.prototype.__on_state_change;
__o_session_roap.o_pc.onconnecting=tmedia_session_roap.prototype.__on_connecting;__o_session_roap.o_pc.onopen=tmedia_session_roap.prototype.__on_open;
__o_session_roap.o_pc.onaddstream=tmedia_session_roap.prototype.__on_add_stream;__o_session_roap.o_pc.onremovestream=tmedia_session_roap.prototype.__on_remove_stream;
if(__o_session_roap.o_pc){tsk_utils_log_info("ROAP: __get_lo::addStream()");__o_session_roap.o_pc.addStream(__o_session_roap.o_local_stream)
}if(this.e_state==tmedia_session_state_e.OFFER_RECEIVED&&this.o_sdp_ro){this.__set_ro(this.o_sdp_ro,true)
}return null}return this.o_sdp_lo};tmedia_session_roap.prototype.__hold=function(){this.b_lo_held=true;
if(this.o_pc&&this.o_local_stream){this.o_pc.removeStream(this.o_local_stream);return 0}tsk_utils_log_error("Invalid state");
return -1};tmedia_session_roap.prototype.__get_pc=function(){return this.o_pc};tmedia_session_roap.prototype.__set_ro=function(g,k){tsk_utils_log_info("ROAP: __set_ro");
this.o_sdp_ro=g;if(!this.o_pc){this.e_state=tmedia_session_state_e.OFFER_RECEIVED;return 0}var h=null;
var c;var a=1;var f=Math.floor((Math.random()*65535));var j;var d;if((c=this.o_sdp_ro.get_header(tsdp_header_type_e.O))){a=c.i_sess_version
}this.e_state=k?tmedia_session_state_e.OFFER_RECEIVED:tmedia_session_state_e.ANSWER_RECEIVED;if(this.o_pc_json){j=this.o_pc_json.answererSessionId?this.o_pc_json.answererSessionId:tsk_string_random(16);
d=this.o_pc_json.offererSessionId?this.o_pc_json.offererSessionId:tsk_string_random(16);if(this.o_pc_json.messageType=="OFFER"){h=tsk_string_format('{\n"answererSessionId" : "{0}",\n"messageType" : "ANSWER",\n"offererSessionId" : "{1}",\n"sdp" : "{2}",\n"seq" : {3}\n}\n',j,d,this.o_sdp_ro.toString("\\r\\n"),this.o_sdp_json_lo.seq)
}else{h=tsk_string_format('{\n"answererSessionId" : "{0}",\n"messageType" : "OFFER",\n"offererSessionId" : "{1}",\n"sdp" : "{2}",\n"seq" : {3},\n"tieBreaker": {4}\n}\n',j,d,this.o_sdp_ro.toString("\\r\\n"),(this.o_sdp_json_lo.seq+1),f)
}}else{h=tsk_string_format('{\n"messageType" : "OFFER",\n"offererSessionId" : "{0}",\n"sdp" : "{1}",\n"seq" : {2},\n"tieBreaker": {3}\n}\n',tsk_string_random(16),this.o_sdp_ro.toString("\\r\\n"),a,f)
}try{tsk_utils_log_info("RO="+h);this.o_sdp_json_ro=JSON.parse(h);this.o_pc.processSignalingMessage("SDP\n"+h);
return 0}catch(b){__o_session_roap.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED,this.e_type);
tsk_utils_log_error(b);return -2}};tmedia_session_roap.prototype.__acked=function(){if(this.o_sdp_json_lo){if(this.o_sdp_json_lo.messageType=="ANSWER"){var a=tsk_string_format('SDP\n{\n"answererSessionId" : "{0}",\n"messageType" : "OK",\n"offererSessionId" : "{1}",\n"seq" : {2}\n}\n',this.o_sdp_json_lo.offererSessionId,this.o_sdp_json_lo.answererSessionId,this.o_sdp_json_lo.seq);
tsk_utils_log_info("ACK="+a);try{this.o_pc.processSignalingMessage(a)}catch(b){tsk_utils_log_error(b);
return -2}}}return 0};tmedia_session_roap.prototype.__on_signaling_message=function(k){tsk_utils_log_info("LO="+k);
if(tsk_string_index_of(k,3,"SDP")==0){k=k.substring(3)}try{__o_session_roap.o_pc_json=JSON.parse(k);if(__o_session_roap.o_pc_json.messageType=="OFFER"||__o_session_roap.o_pc_json.messageType=="ANSWER"){var j=tsdp_message.prototype.Parse(__o_session_roap.o_pc_json.sdp);
if(!j){tsk_utils_log_error("failed to parse sdp"+__o_session_roap.o_pc_json.sdp);__o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,this.e_type);
return}var b=j.get_header_m_by_name("audio");var f=j.get_header_m_by_name("video");__o_session_roap.o_sdp_json_lo=__o_session_roap.o_pc_json;
__o_session_roap.o_sdp_lo=j;var a;if((a=__o_session_roap.o_sdp_lo.get_header(tsdp_header_type_e.S))){a.s_value="webrtc (roap)"
}var g;if((g=__o_session_roap.o_sdp_lo.get_header(tsdp_header_type_e.O))){g.i_sess_version=__o_session_roap.o_sdp_json_lo.seq
}if(__o_session_roap.b_lo_held||__o_session_roap.b_ro_held){var h;var d=0;while((h=__o_session_roap.o_sdp_lo.get_header_at(tsdp_header_type_e.M,d++))){h.set_holdresume_att(__o_session_roap.b_lo_held,__o_session_roap.b_ro_held)
}}if(__o_session_roap.e_state==tmedia_session_state_e.LOCAL_HOLD){__o_session_roap.e_state=tmedia_session_state_e.OFFER_SENT
}__o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_SUCCESS,this.e_type)}else{if(__o_session_roap.o_pc_json.messageType=="OK"){__o_session_roap.o_mgr.callback(tmedia_session_events_e.SET_RO_SUCCESS,this.e_type)
}}if(__o_session_roap.o_pc_json.messageType=="ERROR"){tsk_utils_log_error("onSignalingMessage::messageType = ERROR");
__o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,this.e_type)}}catch(c){__o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED,this.e_type);
tsk_utils_log_error(c);return}};tmedia_session_roap.prototype.__on_state_change=function(a){tsk_utils_log_info("__on_state_change")
};tmedia_session_roap.prototype.__on_connecting=function(a){tsk_utils_log_info("__on_connecting")};tmedia_session_roap.prototype.__on_open=function(a){tsk_utils_log_info("__on_open")
};tmedia_session_roap.prototype.__on_add_stream=function(a){tsk_utils_log_info("__on_add_stream");if(__o_session_roap){__o_session_roap.o_remote_stream=a.stream;
if(__o_session_roap.o_mgr){__o_session_roap.o_mgr.add_stream_remotes(a.stream)}}};tmedia_session_roap.prototype.__on_remove_stream=function(a){tsk_utils_log_info("__on_remove_stream");
if(__o_session_roap){__o_session_roap.o_remote_stream=null;if(__o_session_roap.o_mgr){__o_session_roap.o_mgr.remove_stream_remotes(a.stream)
}}};var tmedia_param_type_e={CODEC:0,SESSION:1,MANAGER:2};function tmedia_param(b,c,a,d){this.e_type=b;
this.e_media_type=c;this.s_key=a;this.o_value=d}var tmedia_qos_status_e={CURR:0,DEST:1,CONF:3};var tmedia_qos_ptype_e={QOS:0};
var tmedia_qos_stype_e={NONE:0,SEGMENTED:1,E2E:2};var tmedia_qos_strength_e={NONE:0,FAILURE:1,UNKNOWN:2,OPTIONAL:3,MANDATORY:4};
var tmedia_qos_direction_e={NONE:0,SEND:(1<<1),RECV:(1<<2),SEND_RECV:(1<<1)|(1<<2)};var tsdp_header_type_e={NONE:{i_rank:-1,c_name:null},A:{i_rank:13,c_name:"a"},B:{i_rank:8,c_name:"b"},C:{i_rank:7,c_name:"c"},DUMMY:{i_rank:255,c_name:"*"},E:{i_rank:5,c_name:"e"},I:{i_rank:3,c_name:"i"},K:{i_rank:12,c_name:"k"},M:{i_rank:14,c_name:"m"},O:{i_rank:1,c_name:"o"},P:{i_rank:6,c_name:"p"},R:{i_rank:10,c_name:"r"},S:{i_rank:2,c_name:"s"},T:{i_rank:9,c_name:"t"},U:{i_rank:4,c_name:"u"},V:{i_rank:0,c_name:"v"},Z:{i_rank:11,c_name:"z"}};
function tsdp_header(a){this.e_type=a}tsdp_header.prototype.tostring_full=function(a,b){return tsk_string_format("{0}={1}{2}",this.get_name(),this.toString(b),a?"":(b?b:"\r\n"))
};tsdp_header.prototype.get_name=function(){if(this.e_type==tsdp_header_type_e.DUMMY){return this.c_name
}return this.e_type.c_name};function tsdp_header_compare_by_rank(b,a){if(b&&a){return b.e_type.i_rank-a.e_type.i_rank
}return -1}if(!window.__b_release_mode){tsdp_api_add_js_scripts("head","src/tinySDP/src/headers/tsdp_header_A.js","src/tinySDP/src/headers/tsdp_header_C.js","src/tinySDP/src/headers/tsdp_header_M.js","src/tinySDP/src/headers/tsdp_header_O.js","src/tinySDP/src/headers/tsdp_header_Str.js","src/tinySDP/src/headers/tsdp_header_V.js")
}tsdp_header_A.prototype=Object.create(tsdp_header.prototype);_tsdp_machine_parser_header_A_actions=[0,1,0,1,1,1,2,2,0,2];
_tsdp_machine_parser_header_A_key_offsets=[0,0,1,3,18,19,35,35,38];_tsdp_machine_parser_header_A_trans_keys=[97,32,61,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,13,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,13,0,65535,13,0,65535,0];
_tsdp_machine_parser_header_A_single_lengths=[0,1,2,5,1,6,0,1,1];_tsdp_machine_parser_header_A_range_lengths=[0,0,0,5,0,5,0,1,1];
_tsdp_machine_parser_header_A_index_offsets=[0,0,2,5,16,18,30,31,34];_tsdp_machine_parser_header_A_indicies=[0,1,0,2,1,2,3,3,3,3,3,3,3,3,3,1,4,1,5,6,6,6,7,6,6,6,6,6,6,1,1,9,8,1,11,10,1,0];
_tsdp_machine_parser_header_A_trans_targs=[2,0,3,5,6,4,5,7,8,4,8,4];_tsdp_machine_parser_header_A_trans_actions=[0,0,0,1,0,3,0,3,1,7,0,5];
_tsdp_machine_parser_header_A_eof_actions=[0,0,0,0,0,3,0,7,5];tsdp_machine_parser_header_A_start=1;tsdp_machine_parser_header_A_first_final=5;
tsdp_machine_parser_header_A_error=0;tsdp_machine_parser_header_A_en_main=1;function tsdp_header_A(b,a){tsdp_header.call(this,tsdp_header_type_e.A);
this.s_field=b;this.s_value=a}tsdp_header_A.prototype.toString=function(){return tsk_string_format("{0}{1}{2}",this.s_field,this.s_value?":":"",this.s_value?this.s_value:"")
};tsdp_header_A.prototype.RemoveAllByField=function(c,b){var a;if(!c||!b){tsk_utils_log_error("Invalid parameter");
return -1}for(i=0;i<c.length;){a=c[i];if(tsk_string_iequals(b,a.s_field)){c.splice(i,1);continue}++i}return 0
};tsdp_header_A.prototype.Parse=function(m){var f=0;var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);
var u;var a=new tsdp_header_A(null,null);f=tsdp_machine_parser_header_A_start;var g,n,c,e,d,r,l;var o,j,b,q,t;
var s;g=n=c=r=l=null;o=0;j=10;b=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;
continue}if(f==0){o=s;continue}}if(o<=j){c=_tsdp_machine_parser_header_A_key_offsets[f];n=_tsdp_machine_parser_header_A_index_offsets[f];
g=_tsdp_machine_parser_header_A_single_lengths[f];_break_match=false;do{if(g>0){_lower=c;_upper=c+g-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsdp_machine_parser_header_A_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsdp_machine_parser_header_A_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-c);_break_match=true;
break}}}if(_break_match){break}c+=g;n+=g}g=_tsdp_machine_parser_header_A_range_lengths[f];if(g>0){_lower=c;
_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[k]<_tsdp_machine_parser_header_A_trans_keys[_mid]){_upper=_mid-2
}else{if(w[k]>_tsdp_machine_parser_header_A_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-c)>>1);_break_match=true;
break}}}if(_break_match){break}n+=g}}while(false);n=_tsdp_machine_parser_header_A_indicies[n];f=_tsdp_machine_parser_header_A_trans_targs[n];
if(_tsdp_machine_parser_header_A_trans_actions[n]!=0){r=_tsdp_machine_parser_header_A_trans_actions[n];
l=_tsdp_machine_parser_header_A_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsdp_machine_parser_header_A_actions[r-1]){case 0:u=k;
break;case 1:a.s_field=tsk_ragel_parser_get_string(m,k,u);break;case 2:a.s_value=tsk_ragel_parser_get_string(m,k,u);
break}}}if(_trigger_goto){continue}}if(o<=q){if(f==0){o=s;continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){if(k==h){__acts=_tsdp_machine_parser_header_A_eof_actions[f];
__nacts=_tsdp_machine_parser_header_A_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_A_actions[__acts-1]){case 0:u=k;break;case 1:a.s_field=tsk_ragel_parser_get_string(m,k,u);
break;case 2:a.s_value=tsk_ragel_parser_get_string(m,k,u);break}}if(_trigger_goto){continue}}}if(o<=s){break
}}if(f<5){tsk_utils_log_error('Failed to parse "a=" header: '+m);return null}return a};tsdp_header_C.prototype=Object.create(tsdp_header.prototype);
_tsdp_machine_parser_header_C_actions=[0,1,0,1,1,1,2,1,3,2,0,2,2,0,3];_tsdp_machine_parser_header_C_key_offsets=[0,0,1,3,6,9,12,15,16,19,22];
_tsdp_machine_parser_header_C_trans_keys=[99,32,61,32,0,65535,32,0,65535,32,0,65535,32,0,65535,10,13,0,65535,13,0,65535,0];
_tsdp_machine_parser_header_C_single_lengths=[0,1,2,1,1,1,1,1,1,1,0];_tsdp_machine_parser_header_C_range_lengths=[0,0,0,1,1,1,1,0,1,1,0];
_tsdp_machine_parser_header_C_index_offsets=[0,0,2,5,8,11,14,17,19,22,25];_tsdp_machine_parser_header_C_trans_targs=[2,0,2,3,0,3,4,0,5,4,0,8,6,0,8,6,0,10,0,7,9,0,7,9,0,0,0];
_tsdp_machine_parser_header_C_trans_actions=[0,0,0,0,0,0,1,0,3,0,0,9,1,0,5,0,0,0,0,12,1,0,7,0,0,0,0];
_tsdp_machine_parser_header_C_eof_actions=[0,0,0,0,0,0,0,0,12,7,0];tsdp_machine_parser_header_C_start=1;
tsdp_machine_parser_header_C_first_final=8;tsdp_machine_parser_header_C_error=0;tsdp_machine_parser_header_C_en_main=1;
function tsdp_header_C(c,b,a){tsdp_header.call(this,tsdp_header_type_e.C);this.s_nettype=c;this.s_addrtype=b;
this.s_addr=a}tsdp_header_C.prototype.toString=function(){return tsk_string_format("{0} {1} {2}",this.s_nettype,this.s_addrtype,this.s_addr)
};tsdp_header_C.prototype.Parse=function(m){var f=0;var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);
var u;var a=new tsdp_header_C(null,null,null);f=tsdp_machine_parser_header_C_start;var g,n,c,e,d,r,l;
var o,j,b,q,t;var s;g=n=c=r=l=null;o=0;j=10;b=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;
continue}if(f==0){o=s;continue}}if(o<=j){c=_tsdp_machine_parser_header_C_key_offsets[f];n=_tsdp_machine_parser_header_C_index_offsets[f];
g=_tsdp_machine_parser_header_C_single_lengths[f];_break_match=false;do{if(g>0){_lower=c;_upper=c+g-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsdp_machine_parser_header_C_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsdp_machine_parser_header_C_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-c);_break_match=true;
break}}}if(_break_match){break}c+=g;n+=g}g=_tsdp_machine_parser_header_C_range_lengths[f];if(g>0){_lower=c;
_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[k]<_tsdp_machine_parser_header_C_trans_keys[_mid]){_upper=_mid-2
}else{if(w[k]>_tsdp_machine_parser_header_C_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-c)>>1);_break_match=true;
break}}}if(_break_match){break}n+=g}}while(false);f=_tsdp_machine_parser_header_C_trans_targs[n];if(_tsdp_machine_parser_header_C_trans_actions[n]!=0){r=_tsdp_machine_parser_header_C_trans_actions[n];
l=_tsdp_machine_parser_header_C_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsdp_machine_parser_header_C_actions[r-1]){case 0:u=k;
break;case 1:a.s_nettype=tsk_ragel_parser_get_string(m,k,u);break;case 2:a.s_addrtype=tsk_ragel_parser_get_string(m,k,u);
break;case 3:a.s_addr=tsk_ragel_parser_get_string(m,k,u);break}}}if(_trigger_goto){continue}}if(o<=q){if(f==0){o=s;
continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){if(k==h){__acts=_tsdp_machine_parser_header_C_eof_actions[f];
__nacts=_tsdp_machine_parser_header_C_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_C_actions[__acts-1]){case 0:u=k;break;case 3:a.s_addr=tsk_ragel_parser_get_string(m,k,u);
break}}if(_trigger_goto){continue}}}if(o<=s){break}}if(f<8){tsk_utils_log_error('Failed to parse "c=" header: '+m);
return null}return a};tsdp_header_M.prototype=Object.create(tsdp_header.prototype);_tsdp_machine_parser_header_M_actions=[0,1,0,1,1,1,2,1,3,1,4];
_tsdp_machine_parser_header_M_key_offsets=[0,0,1,3,18,33,35,39,53,54,68,70,73,88,88,103];_tsdp_machine_parser_header_M_trans_keys=[109,32,61,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,48,57,32,47,48,57,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,33,37,39,126,42,43,45,46,48,57,65,90,95,122,48,57,32,48,57,13,32,33,37,39,47,126,42,43,45,57,65,90,95,122,13,33,37,39,126,42,43,45,46,48,57,65,90,95,122,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,0];
_tsdp_machine_parser_header_M_single_lengths=[0,1,2,5,5,0,2,4,1,4,0,1,7,0,5,6];_tsdp_machine_parser_header_M_range_lengths=[0,0,0,5,5,1,1,5,0,5,1,1,4,0,5,5];
_tsdp_machine_parser_header_M_index_offsets=[0,0,2,5,16,27,29,33,43,45,55,57,60,72,73,84];_tsdp_machine_parser_header_M_indicies=[0,1,0,2,1,2,3,3,3,3,3,3,3,3,3,1,4,5,5,5,5,5,5,5,5,5,1,6,1,7,8,9,1,10,10,10,10,10,10,10,10,10,1,11,1,12,12,12,12,12,12,12,12,12,1,13,1,7,14,1,15,16,12,12,12,17,12,12,12,12,12,1,1,18,19,19,19,19,19,19,19,19,19,1,20,21,22,22,22,22,22,22,22,22,22,1,0];
_tsdp_machine_parser_header_M_trans_targs=[2,0,3,4,5,4,6,7,10,6,12,13,12,11,11,8,14,9,8,15,8,14,15];_tsdp_machine_parser_header_M_trans_actions=[0,0,0,1,3,0,1,5,5,0,1,0,0,1,0,7,7,0,0,1,9,9,0];
_tsdp_machine_parser_header_M_eof_actions=[0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,9];tsdp_machine_parser_header_M_start=1;
tsdp_machine_parser_header_M_first_final=12;tsdp_machine_parser_header_M_error=0;tsdp_machine_parser_header_M_en_main=1;
function tsdp_header_M(c,b,a){tsdp_header.call(this,tsdp_header_type_e.M);this.s_media=c;this.i_port=b;
this.i_nports=0;this.s_proto=a;this.as_fmt=new Array();this.o_hdr_I=null;this.o_hdr_C=null;this.ao_hdr_B=new Array();
this.o_hdr_K=null;this.ao_hdr_A=new Array();this.ao_hdr_Dummy=new Array()}tsdp_header_M.prototype.toString=function(c){if(!c){c="\r\n"
}var d=tsk_string_format("{0} {1}{2}{3} {4}",this.s_media,this.i_port,this.i_nports?"/":"",this.i_nports?this.i_nports:"",this.s_proto);
for(var b=0;b<this.as_fmt.length;++b){d+=" "+this.as_fmt[b]}var a=!this.o_hdr_I&&!this.o_hdr_C&&this.ao_hdr_B.length==0&&!this.o_hdr_K&&this.ao_hdr_A.length.length==0;
if(a){return d}d+=c;if(this.o_hdr_I){d+=this.o_hdr_I.tostring_full(false,c)}if(this.o_hdr_C){d+=this.o_hdr_C.tostring_full(false,c)
}for(var b=0;b<this.ao_hdr_B.length;++b){d+=this.ao_hdr_B[b].tostring_full(false,c)}if(this.o_hdr_K){d+=this.o_hdr_K.tostring_full(false,c)
}for(var b=0;b<this.ao_hdr_A.length;++b){d+=this.ao_hdr_A[b].tostring_full(false,c)}for(var b=0;b<this.ao_hdr_Dummy.length;
++b){d+=this.ao_hdr_Dummy[b].tostring_full(false,c)}return d.substring(0,d.length-c.length)};tsdp_header_M.prototype.remove_header=function(a){switch(a){case tsdp_header_type_e.I:this.o_hdr_I=null;
break;case tsdp_header_type_e.C:this.o_hdr_C=null;break;case tsdp_header_type_e.B:this.ao_hdr_B.splice(0,this.ao_hdr_B.length);
break;case tsdp_header_type_e.K:this.o_hdr_K=null;break}return 0};tsdp_header_M.prototype.add_header=function(a){if(!a){tsk_utils_log_error("Invalid argument");
return -1}switch(a.e_type){case tsdp_header_type_e.I:this.o_hdr_I=a;break;case tsdp_header_type_e.C:this.o_hdr_C=a;
break;case tsdp_header_type_e.B:this.ao_hdr_B.push(a);break;case tsdp_header_type_e.K:this.o_hdr_K=a;
break;case tsdp_header_type_e.A:this.ao_hdr_A.push(a);break}return 0};tsdp_header_M.prototype.add_fmt=function(a){if(a){this.as_fmt.push(a)
}};tsdp_header_M.prototype.add_headers=function(){for(var a=0;a<arguments.length;++a){if(arguments[a]){this.add_header(arguments[a])
}}};tsdp_header_M.prototype.find_a_at=function(d,c){if(!d||c<0){tsk_utils_log_error("Invalid argument");
return null}var a=0;for(var b=0;b<this.ao_hdr_A.length;++b){if(this.ao_hdr_A[b].s_field==d){if(a++>=c){return this.ao_hdr_A[b]
}}}return null};tsdp_header_M.prototype.find_a=function(a){return this.find_a_at(a,0)};tsdp_header_M.prototype.get_rtpmap=function(g){var b=g?g.length:0;
if(b<=0||b>3){tsk_utils_log_error("Invalid argument");return null}var f=null;var a,e=0;var d;var c;while((c=this.find_a_at(e++))){if((a=c.s_value?c.s_value.length:0)<(b+1)){continue
}if((d=tsk_string_index_of(c.s_value,a,g))==0&&(c.s_value[b]==" ")){f=c.s_value.substring(b+1,A_len);
break}}return f};tsdp_header_M.prototype.get_fmtp=function(g){var b=g?g.length:0;if(b<=0||b>3){tsk_utils_log_error("Invalid argument");
return null}var f=null;var a,e=0;var d;var c;while((c=this.find_a_at(e++))){if((a=c.s_value?c.s_value.length:0)<(b+1)){continue
}if((d=tsk_string_index_of(c.s_value,a,g))==0&&(c.s_value[b]==" ")){f=c.s_value.substring(b+1,A_len);
break}}return f};tsdp_header_M.prototype.hold=function(a){var c;if((c=this.find_a(a?"recvonly":"sendonly"))){c.s_field=a?"inactive":"recvonly"
}else{if((c=this.find_a("sendrecv"))){c.s_field=a?"sendonly":"recvonly"}else{if(!(c=this.find_a(a?"sendonly":"recvonly"))&&!(c=this.find_a("inactive"))){var b;
if((b=new tsdp_header_A(a?"sendonly":"recvonly",null))){this.add_header(b)}}}}return 0};tsdp_header_M.prototype.set_holdresume_att=function(e,b){var d;
var c=[["sendrecv","recvonly"],["sendonly","inactive"]];if((d=this.find_a("sendrecv"))||(d=this.find_a("sendonly"))||(d=this.find_a("recvonly"))||(d=this.find_a("inactive"))){d.s_field=c[e?1:0][b?1:0]
}else{var a;if((a=new tsdp_header_A(c[e?1:0][b?1:0],null))){this.add_headers(a)}}return 0};tsdp_header_M.prototype.is_held=function(a){if(this.find_a("inactive")){return true
}if(a){return this.find_a("recvonly")?true:false}else{return this.find_a("sendonly")?true:false}};tsdp_header_M.prototype.resume=function(a){var b;
if((b=this.find_a("inactive"))){b.s_field=a?"recvonly":"sendonly"}else{if((b=this.find_a(a?"sendonly":"recvonly"))){b.s_field=sendrecv
}}return 0};tsdp_header_M.prototype.Parse=function(l){var e=0;var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);
var u;var q=new tsdp_header_M(null,0,null);e=tsdp_machine_parser_header_M_start;var f,m,b,d,c,r,k;var n,h,a,o,t;
var s;f=m=b=r=k=null;n=0;h=10;a=15;o=20;t=30;s=40;while(true){_trigger_goto=false;if(n<=0){if(j==v){n=t;
continue}if(e==0){n=s;continue}}if(n<=h){b=_tsdp_machine_parser_header_M_key_offsets[e];m=_tsdp_machine_parser_header_M_index_offsets[e];
f=_tsdp_machine_parser_header_M_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsdp_machine_parser_header_M_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsdp_machine_parser_header_M_trans_keys[_mid]){_lower=_mid+1}else{m+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;m+=f}f=_tsdp_machine_parser_header_M_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[j]<_tsdp_machine_parser_header_M_trans_keys[_mid]){_upper=_mid-2
}else{if(w[j]>_tsdp_machine_parser_header_M_trans_keys[_mid+1]){_lower=_mid+2}else{m+=((_mid-b)>>1);_break_match=true;
break}}}if(_break_match){break}m+=f}}while(false);m=_tsdp_machine_parser_header_M_indicies[m];e=_tsdp_machine_parser_header_M_trans_targs[m];
if(_tsdp_machine_parser_header_M_trans_actions[m]!=0){r=_tsdp_machine_parser_header_M_trans_actions[m];
k=_tsdp_machine_parser_header_M_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsdp_machine_parser_header_M_actions[r-1]){case 0:u=j;
break;case 1:q.s_media=tsk_ragel_parser_get_string(l,j,u);break;case 2:q.i_port=tsk_ragel_parser_get_int(l,j,u);
break;case 3:q.s_proto=tsk_ragel_parser_get_string(l,j,u);break;case 4:tsk_ragel_parser_add_string(l,j,u,q.as_fmt);
break}}}if(_trigger_goto){continue}}if(n<=o){if(e==0){n=s;continue}j+=1;if(j!=v){n=h;continue}}if(n<=t){if(j==g){__acts=_tsdp_machine_parser_header_M_eof_actions[e];
__nacts=_tsdp_machine_parser_header_M_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_M_actions[__acts-1]){case 3:q.s_proto=tsk_ragel_parser_get_string(l,j,u);
break;case 4:tsk_ragel_parser_add_string(l,j,u,q.as_fmt);break}}if(_trigger_goto){continue}}}if(n<=s){break
}}if(e<12){tsk_utils_log_error('Failed to parse "m=" header: '+l);return null}return q};tsdp_header_O.prototype=Object.create(tsdp_header.prototype);
_tsdp_machine_parser_header_O_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,2,0,4,2,0,5,2,0,6];_tsdp_machine_parser_header_O_key_offsets=[0,0,1,3,6,9,11,14,16,19,22,25,28,31,32,35,38];
_tsdp_machine_parser_header_O_trans_keys=[111,32,61,32,0,65535,32,0,65535,48,57,32,48,57,48,57,32,48,57,32,0,65535,32,0,65535,32,0,65535,32,0,65535,10,13,0,65535,13,0,65535,0];
_tsdp_machine_parser_header_O_single_lengths=[0,1,2,1,1,0,1,0,1,1,1,1,1,1,1,1,0];_tsdp_machine_parser_header_O_range_lengths=[0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0];
_tsdp_machine_parser_header_O_index_offsets=[0,0,2,5,8,11,13,16,18,21,24,27,30,33,35,38,41];_tsdp_machine_parser_header_O_trans_targs=[2,0,2,3,0,3,4,0,5,4,0,6,0,7,6,0,8,0,9,8,0,11,10,0,11,10,0,14,12,0,14,12,0,16,0,13,15,0,13,15,0,0,0];
_tsdp_machine_parser_header_O_trans_actions=[0,0,0,0,0,0,1,0,3,0,0,1,0,5,0,0,1,0,7,0,0,15,1,0,9,0,0,18,1,0,11,0,0,0,0,21,1,0,13,0,0,0,0];
_tsdp_machine_parser_header_O_eof_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,13,0];tsdp_machine_parser_header_O_start=1;
tsdp_machine_parser_header_O_first_final=14;tsdp_machine_parser_header_O_error=0;tsdp_machine_parser_header_O_en_main=1;
function tsdp_header_O(f,c,a,e,d,b){tsdp_header.call(this,tsdp_header_type_e.O);this.s_username=f;this.i_sess_id=c;
this.i_sess_version=a;this.s_nettype=e;this.s_addrtype=d;this.s_addr=b}tsdp_header_O.prototype.toString=function(){return tsk_string_format("{0} {1} {2} {3} {4} {5}",this.s_username,this.i_sess_id,this.i_sess_version,this.s_nettype,this.s_addrtype,this.s_addr)
};tsdp_header_O.prototype.Parse=function(l){var e=0;var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);
var u;var m=new tsdp_header_O(null,0,0,null,null,null);e=tsdp_machine_parser_header_O_start;var f,n,b,d,c,r,k;
var o,h,a,q,t;var s;f=n=b=r=k=null;o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(j==v){o=t;
continue}if(e==0){o=s;continue}}if(o<=h){b=_tsdp_machine_parser_header_O_key_offsets[e];n=_tsdp_machine_parser_header_O_index_offsets[e];
f=_tsdp_machine_parser_header_O_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsdp_machine_parser_header_O_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsdp_machine_parser_header_O_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;n+=f}f=_tsdp_machine_parser_header_O_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[j]<_tsdp_machine_parser_header_O_trans_keys[_mid]){_upper=_mid-2
}else{if(w[j]>_tsdp_machine_parser_header_O_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-b)>>1);_break_match=true;
break}}}if(_break_match){break}n+=f}}while(false);e=_tsdp_machine_parser_header_O_trans_targs[n];if(_tsdp_machine_parser_header_O_trans_actions[n]!=0){r=_tsdp_machine_parser_header_O_trans_actions[n];
k=_tsdp_machine_parser_header_O_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsdp_machine_parser_header_O_actions[r-1]){case 0:u=j;
break;case 1:m.s_username=tsk_ragel_parser_get_string(l,j,u);break;case 2:m.i_sess_id=tsk_ragel_parser_get_int(l,j,u);
break;case 3:m.i_sess_version=tsk_ragel_parser_get_int(l,j,u);break;case 4:m.s_nettype=tsk_ragel_parser_get_string(l,j,u);
break;case 5:m.s_addrtype=tsk_ragel_parser_get_string(l,j,u);break;case 6:m.s_addr=tsk_ragel_parser_get_string(l,j,u);
break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;continue}j+=1;if(j!=v){o=h;continue}}if(o<=t){if(j==g){__acts=_tsdp_machine_parser_header_O_eof_actions[e];
__nacts=_tsdp_machine_parser_header_O_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_O_actions[__acts-1]){case 0:u=j;break;case 6:m.s_addr=tsk_ragel_parser_get_string(l,j,u);
break}}if(_trigger_goto){continue}}}if(o<=s){break}}if(e<14){tsk_utils_log_error('Failed to parse "o=" header: '+l);
return null}return m};tsdp_header_Str.prototype=Object.create(tsdp_header.prototype);tsdp_header_B.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_E.prototype=Object.create(tsdp_header_Str.prototype);tsdp_header_I.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_K.prototype=Object.create(tsdp_header_Str.prototype);tsdp_header_P.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_R.prototype=Object.create(tsdp_header_Str.prototype);tsdp_header_S.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_T.prototype=Object.create(tsdp_header_Str.prototype);tsdp_header_U.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_Z.prototype=Object.create(tsdp_header_Str.prototype);tsdp_header_Dummy.prototype=Object.create(tsdp_header_Str.prototype);
tsdp_header_Str.prototype.s_value=null;_tsdp_machine_parser_header_Str_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,2,0,12];
_tsdp_machine_parser_header_Str_key_offsets=[0,0,14,16,18,19,21,23,25,27,29,31,33,35,37,39,43,46];_tsdp_machine_parser_header_Str_trans_keys=[98,101,105,107,112,114,115,116,117,122,65,90,97,121,32,61,32,61,10,32,61,32,61,32,61,32,61,32,61,32,61,32,61,32,61,32,61,32,61,13,32,0,65535,13,0,65535,0];
_tsdp_machine_parser_header_Str_single_lengths=[0,10,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,0];_tsdp_machine_parser_header_Str_range_lengths=[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0];
_tsdp_machine_parser_header_Str_index_offsets=[0,0,13,16,19,21,24,27,30,33,36,39,42,45,48,51,55,58];_tsdp_machine_parser_header_Str_trans_targs=[5,6,7,8,9,10,11,12,13,14,2,2,0,3,15,0,3,15,0,17,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,3,15,0,4,15,16,0,4,16,0,0,0];
_tsdp_machine_parser_header_Str_trans_actions=[0,0,0,0,0,0,0,0,0,0,1,1,0,23,23,0,0,0,0,0,0,3,3,0,5,5,0,7,7,0,9,9,0,11,11,0,13,13,0,15,15,0,17,17,0,19,19,0,21,21,0,27,0,1,0,25,0,0,0,0];
_tsdp_machine_parser_header_Str_eof_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,25,0];tsdp_machine_parser_header_Str_start=1;
tsdp_machine_parser_header_Str_first_final=15;tsdp_machine_parser_header_Str_error=0;tsdp_machine_parser_header_Str_en_main=1;
function tsdp_header_Str(a,b){tsdp_header.call(this,a);this.s_value=b}tsdp_header_Str.prototype.toString=function(){return this.s_value
};tsdp_header_Str.prototype.Parse=function(l){var e=0;var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);
var u;var m=null;e=tsdp_machine_parser_header_Str_start;var f,n,b,d,c,r,k;var o,h,a,q,t;var s;f=n=b=r=k=null;
o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(j==v){o=t;continue}if(e==0){o=s;
continue}}if(o<=h){b=_tsdp_machine_parser_header_Str_key_offsets[e];n=_tsdp_machine_parser_header_Str_index_offsets[e];
f=_tsdp_machine_parser_header_Str_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsdp_machine_parser_header_Str_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsdp_machine_parser_header_Str_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;n+=f}f=_tsdp_machine_parser_header_Str_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[j]<_tsdp_machine_parser_header_Str_trans_keys[_mid]){_upper=_mid-2
}else{if(w[j]>_tsdp_machine_parser_header_Str_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-b)>>1);
_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);e=_tsdp_machine_parser_header_Str_trans_targs[n];
if(_tsdp_machine_parser_header_Str_trans_actions[n]!=0){r=_tsdp_machine_parser_header_Str_trans_actions[n];
k=_tsdp_machine_parser_header_Str_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsdp_machine_parser_header_Str_actions[r-1]){case 0:u=j;
break;case 1:m=new tsdp_header_B();break;case 2:m=new tsdp_header_E();break;case 3:m=new tsdp_header_I();
break;case 4:m=new tsdp_header_K();break;case 5:m=new tsdp_header_P();break;case 6:m=new tsdp_header_R();
break;case 7:m=new tsdp_header_S();break;case 8:m=new tsdp_header_T();break;case 9:m=new tsdp_header_U();
break;case 10:m=new tsdp_header_Z();break;case 11:m=new tsdp_header_Dummy();m.c_name=tsk_ragel_parser_get_string(l,j,u)[0];
break;case 12:if(m){m.s_value=tsk_ragel_parser_get_string(l,j,u)}break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;
continue}j+=1;if(j!=v){o=h;continue}}if(o<=t){if(j==g){__acts=_tsdp_machine_parser_header_Str_eof_actions[e];
__nacts=_tsdp_machine_parser_header_Str_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_Str_actions[__acts-1]){case 0:u=j;break;case 12:if(m){m.s_value=tsk_ragel_parser_get_string(l,j,u)
}break}}if(_trigger_goto){continue}}}if(o<=s){break}}if(e<15){tsk_utils_log_error("Failed to parse header: "+l);
return null}return m};function tsdp_header_B(a){tsdp_header_Str.call(this,tsdp_header_type_e.B,a)}function tsdp_header_E(a){tsdp_header_Str.call(this,tsdp_header_type_e.E,a)
}function tsdp_header_I(a){tsdp_header_Str.call(this,tsdp_header_type_e.I,a)}function tsdp_header_K(a){tsdp_header_Str.call(this,tsdp_header_type_e.K,a)
}function tsdp_header_P(a){tsdp_header_Str.call(this,tsdp_header_type_e.P,a)}function tsdp_header_R(a){tsdp_header_Str.call(this,tsdp_header_type_e.R,a)
}function tsdp_header_S(a){tsdp_header_Str.call(this,tsdp_header_type_e.S,a)}function tsdp_header_T(a){tsdp_header_Str.call(this,tsdp_header_type_e.T,a)
}function tsdp_header_U(a){tsdp_header_Str.call(this,tsdp_header_type_e.U,a)}function tsdp_header_Z(a){tsdp_header_Str.call(this,tsdp_header_type_e.Z,a)
}function tsdp_header_Dummy(b,a){tsdp_header_Str.call(this,tsdp_header_type_e.DUMMY,a);this.s_name=b}tsdp_header_V.prototype=Object.create(tsdp_header.prototype);
_tsdp_machine_parser_header_V_actions=[0,1,0,1,1];_tsdp_machine_parser_header_V_key_offsets=[0,0,1,3,6,7,10];
_tsdp_machine_parser_header_V_trans_keys=[118,32,61,32,48,57,10,13,48,57,0];_tsdp_machine_parser_header_V_single_lengths=[0,1,2,1,1,1,0];
_tsdp_machine_parser_header_V_range_lengths=[0,0,0,1,0,1,0];_tsdp_machine_parser_header_V_index_offsets=[0,0,2,5,8,10,13];
_tsdp_machine_parser_header_V_trans_targs=[2,0,2,3,0,3,5,0,6,0,4,5,0,0,0];_tsdp_machine_parser_header_V_trans_actions=[0,0,0,0,0,0,1,0,0,0,3,0,0,0,0];
_tsdp_machine_parser_header_V_eof_actions=[0,0,0,0,0,3,0];tsdp_machine_parser_header_V_start=1;tsdp_machine_parser_header_V_first_final=5;
tsdp_machine_parser_header_V_error=0;tsdp_machine_parser_header_V_en_main=1;function tsdp_header_V(a){tsdp_header.call(this,tsdp_header_type_e.V);
this.i_version=a;this.toString=function(){return this.i_version.toString()}}tsdp_header_V.prototype.Parse=function(m){var e=0;
var j=0;var v=m.length;var g=v;var w=tsk_buff_str2ib(m);var u;var k=new tsdp_header_V(0);e=tsdp_machine_parser_header_V_start;
var f,n,b,d,c,r,l;var o,h,a,q,t;var s;f=n=b=r=l=null;o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;
if(o<=0){if(j==v){o=t;continue}if(e==0){o=s;continue}}if(o<=h){b=_tsdp_machine_parser_header_V_key_offsets[e];
n=_tsdp_machine_parser_header_V_index_offsets[e];f=_tsdp_machine_parser_header_V_single_lengths[e];_break_match=false;
do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(w[j]<_tsdp_machine_parser_header_V_trans_keys[_mid]){_upper=_mid-1}else{if(w[j]>_tsdp_machine_parser_header_V_trans_keys[_mid]){_lower=_mid+1
}else{n+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;n+=f}f=_tsdp_machine_parser_header_V_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[j]<_tsdp_machine_parser_header_V_trans_keys[_mid]){_upper=_mid-2}else{if(w[j]>_tsdp_machine_parser_header_V_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);e=_tsdp_machine_parser_header_V_trans_targs[n];
if(_tsdp_machine_parser_header_V_trans_actions[n]!=0){r=_tsdp_machine_parser_header_V_trans_actions[n];
l=_tsdp_machine_parser_header_V_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsdp_machine_parser_header_V_actions[r-1]){case 0:u=j;
break;case 1:k.i_version=tsk_ragel_parser_get_int(m,j,u);break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;
continue}j+=1;if(j!=v){o=h;continue}}if(o<=t){if(j==g){__acts=_tsdp_machine_parser_header_V_eof_actions[e];
__nacts=_tsdp_machine_parser_header_V_actions[__acts];__acts+=1;while(__nacts>0){__nacts-=1;__acts+=1;
switch(_tsdp_machine_parser_header_V_actions[__acts-1]){case 1:k.i_version=tsk_ragel_parser_get_int(m,j,u);
break}}if(_trigger_goto){continue}}}if(o<=s){break}}if(e<5){tsk_utils_log_error('Failed to parse "v=" header: '+m);
return null}return k};tsdp_message.prototype.__s_o_username_default="webrtc";tsdp_message.prototype.__i_o_session_ver_default=2301;
tsdp_message.prototype.__i_o_session_id_default=1983;tsdp_message.prototype.__s_s_value_default="-";function tsdp_message(c,b,a){this.ao_headers=new Array();
if(c){this.add_headers(new tsdp_header_V(0),new tsdp_header_O(tsdp_message.prototype.__s_o_username_default,tsdp_message.prototype.__i_o_session_id_default,a,"IN",b?"IP6":"IP4",c));
this.add_headers(new tsdp_header_S(tsdp_message.prototype.__s_s_value_default));this.add_headers(new tsdp_header_T(0,0))
}}tsdp_message.prototype.get_media_type=function(){var d=tmedia_type_e.NONE.i_id;var c=0;var a,b;while((a=this.get_header_at(tsdp_header_type_e.M,c++))){if(a.i_port==0){continue
}if(tsk_string_iequals(a.s_media,"audio")){d|=tmedia_type_e.AUDIO.i_id}else{if(tsk_string_iequals(a.s_media,"video")){b=a.find_a_at("content",0);
if(b&&!tsk_string_iequals(b.s_value,"main")){d|=tmedia_type_e.BFCPVIDEO.i_id}else{d|=tmedia_type_e.VIDEO.i_id
}}else{if(tsk_string_iequals(a.s_media,"message")){d|=tmedia_type_e.MSRP.i_id}}}}return tmedia_type_from_id(d)
};tsdp_message.prototype.add_headers=function(){for(var a=0;a<arguments.length;++a){if(arguments[a]){this.ao_headers.push(arguments[a])
}}this.ao_headers.sort(tsdp_header_compare_by_rank)};tsdp_message.prototype.add_header=function(a){this.add_headers(a)
};tsdp_message.prototype.remove_header=function(a){for(var b=0;b<this.ao_headers.length;){if(this.ao_headers[b].e_type==a){this.ao_headers.splice(b,1);
continue}++b}};tsdp_message.prototype.get_header_at=function(b,d){var a=0;for(var c=0;c<this.ao_headers.length;
++c){if(this.ao_headers[c].e_type==b){if(a++>=d){return this.ao_headers[c]}}}return null};tsdp_message.prototype.get_header=function(a){return this.get_header_at(a,0)
};tsdp_message.prototype.get_header_by_name=function(a){for(var b=0;b<this.ao_headers.length;++b){if(this.ao_headers[b].get_name()==a){return a
}}return null};tsdp_message.prototype.get_header_a_at=function(d,c){if(!d||c<0){tsk_utils_log_error("Invalid argument");
return null}var a=0;for(var b=0;b<this.ao_headers.length;++b){if(this.ao_headers[b].e_type==tsdp_header_type_e.A&&this.ao_headers[b].s_field==d){if(a++>=c){return this.ao_headers[b]
}}}return null};tsdp_message.prototype.get_header_a=function(a){return this.get_header_a_at(a,0)};tsdp_message.prototype.add_media=function(c,b,a){this.add_headers(new tsdp_header_M(c,b,a))
};tsdp_message.prototype.remove_media=function(b){for(var a=0;a<this.ao_headers.length;++a){if(this.ao_headers[a].e_type==tsdp_header_type_e.M){if(this.ao_headers[a].s_media==b){this.ao_headers.splice(a,1)
}}}};tsdp_message.prototype.get_header_m_by_name=function(b){if(!b){tsk_utils_log_error("Invalid argument");
return null}for(var a=0;a<this.ao_headers.length;++a){if(this.ao_headers[a].e_type==tsdp_header_type_e.M){if(tsk_string_iequals(this.ao_headers[a].s_media,b)){return this.ao_headers[a]
}}}return null};tsdp_message.prototype.has_media=function(a){return this.get_header_m_by_name(a)!=null
};tsdp_message.prototype.hold=function(b){if(!b){tsk_utils_log_error("Invalid argument");return -1}var a=this.get_header_m_by_name(b);
if(a){a.hold(true)}return 0};tsdp_message.prototype.resume=function(b){if(!b){tsk_utils_log_error("Invalid argument");
return -1}var a=this.get_header_m_by_name(b);if(a){a.resume(true)}return 0};tsdp_message.prototype.toString=function(b){var c="";
if(!b){b="\r\n"}for(var a=0;a<this.ao_headers.length;++a){c+=this.ao_headers[a].tostring_full(false,b)
}return c};if(!window.__b_release_mode){tsdp_api_add_js_scripts("head","src/tinySDP/src/tsdp_parser_message.js")
}_tsdp_machine_message_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,16];
_tsdp_machine_message_key_offsets=[0,0,2,5,6,8,11,13,16,18,21,23,26,28,31,33,36,38,41,43,46,48,51,53,56,58,61,63,66,68,71,73,76,78,81];
_tsdp_machine_message_trans_keys=[32,61,13,0,65535,10,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,32,61,13,0,65535,65,66,67,69,73,75,77,79,80,82,83,84,85,86,90,97,98,99,101,105,107,109,111,112,114,115,116,117,118,122,68,89,100,121,0];
_tsdp_machine_message_single_lengths=[0,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,30];
_tsdp_machine_message_range_lengths=[0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2];
_tsdp_machine_message_index_offsets=[0,0,3,6,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98];
_tsdp_machine_message_trans_targs=[1,2,0,3,2,0,34,0,4,5,0,3,5,0,6,7,0,3,7,0,8,9,0,3,9,0,10,11,0,3,11,0,12,13,0,3,13,0,14,15,0,3,15,0,16,17,0,3,17,0,18,19,0,3,19,0,20,21,0,3,21,0,22,23,0,3,23,0,24,25,0,3,25,0,26,27,0,3,27,0,28,29,0,3,29,0,30,31,0,3,31,0,32,33,0,3,33,0,1,4,6,10,12,14,16,18,20,22,24,26,28,30,32,1,4,6,10,12,14,16,18,20,22,24,26,28,30,32,8,8,0,0];
_tsdp_machine_message_trans_actions=[0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,7,0,0,0,0,0,9,0,0,0,0,0,11,0,0,0,0,0,13,0,0,0,0,0,15,0,0,0,0,0,17,0,0,0,0,0,19,0,0,0,0,0,21,0,0,0,0,0,23,0,0,0,0,0,25,0,0,0,0,0,27,0,0,0,0,0,29,0,0,0,0,0,31,0,0,0,0,0,33,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0];
tsdp_machine_message_start=34;tsdp_machine_message_first_final=34;tsdp_machine_message_error=0;tsdp_machine_message_en_main=34;
tsdp_message.prototype.Parse=function(n){var e=0;var j=0;var y=n.length;var g=y;var z=tsk_buff_str2ib(n);
var x;var s=new tsdp_message();var m=null;var k=null;var t=null;e=tsdp_machine_message_start;var f,o,b,d,c,u,l;
var q,h,a,r,w;var v;f=o=b=u=l=null;q=0;h=10;a=15;r=20;w=30;v=40;while(true){_trigger_goto=false;if(q<=0){if(j==y){q=w;
continue}if(e==0){q=v;continue}}if(q<=h){b=_tsdp_machine_message_key_offsets[e];o=_tsdp_machine_message_index_offsets[e];
f=_tsdp_machine_message_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break
}_mid=_lower+((_upper-_lower)>>1);if(z[j]<_tsdp_machine_message_trans_keys[_mid]){_upper=_mid-1}else{if(z[j]>_tsdp_machine_message_trans_keys[_mid]){_lower=_mid+1
}else{o+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;o+=f}f=_tsdp_machine_message_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(z[j]<_tsdp_machine_message_trans_keys[_mid]){_upper=_mid-2}else{if(z[j]>_tsdp_machine_message_trans_keys[_mid+1]){_lower=_mid+2
}else{o+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}o+=f}}while(false);e=_tsdp_machine_message_trans_targs[o];
if(_tsdp_machine_message_trans_actions[o]!=0){u=_tsdp_machine_message_trans_actions[o];l=_tsdp_machine_message_actions[u];
u+=1;while(l>0){l-=1;u+=1;switch(_tsdp_machine_message_actions[u-1]){case 0:x=j;break;case 1:if(t){if((m=tsdp_header_A.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){t.ao_hdr_A.push(m)
}}else{if((m=tsdp_header_A.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)}}break;
case 2:if(t){if((m=tsdp_header_B.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){t.ao_hdr_B.push(m)
}}else{if((m=tsdp_header_B.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)}}break;
case 3:if(t&&!t.o_hdr_C){t.o_hdr_C=tsdp_header_C.prototype.Parse(tsk_ragel_parser_get_string(n,j,x))}else{if((m=tsdp_header_C.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}}break;case 4:if((m=tsdp_header_Dummy.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){if(t){t.ao_hdr_Dummy.push(m)
}else{s.add_header(m)}}break;case 5:if((m=tsdp_header_E.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 6:if(t&&!t.o_hdr_I){t.o_hdr_I=tsdp_header_I.prototype.Parse(tsk_ragel_parser_get_string(n,j,x))
}else{if((m=tsdp_header_I.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)}}break;
case 7:if(t&&!t.o_hdr_K){t.o_hdr_K=tsdp_header_K.prototype.Parse(tsk_ragel_parser_get_string(n,j,x))}else{if((m=tsdp_header_K.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}}break;case 8:if((t=tsdp_header_M.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(t)
}break;case 9:if((m=tsdp_header_O.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 10:if((m=tsdp_header_P.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 11:if((m=tsdp_header_R.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){if(k){k.ao_hdr_R.push(m)
}else{s.add_header(m)}}break;case 12:if((m=tsdp_header_S.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 13:if((k=tsdp_header_T.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(k);
k=null}break;case 14:if((m=tsdp_header_U.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 15:if((m=tsdp_header_V.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break;case 16:if((m=tsdp_header_Z.prototype.Parse(tsk_ragel_parser_get_string(n,j,x)))){s.add_header(m)
}break}}}if(_trigger_goto){continue}}if(q<=r){if(e==0){q=v;continue}j+=1;if(j!=y){q=h;continue}}if(q<=w){}if(q<=v){break
}}if(e<34){tsk_utils_log_error("Failed to parse sdp message: "+n);return null}return s};var tsip_action_type_common_e={ACCEPT:1000,CANCEL:1001,HANGUP:1002,REJECT:1002,SHUTDOWN:1003};
var tsip_action_type_e={NONE:-1,CONFIG:0,DTMF_SEND:1,MUTE:2,SWITCH_VIDEO:3,SWITCH_SOURCE:4,REGISTER:10,UNREGISTER:tsip_action_type_common_e.HANGUP,SUBSCRIBE:20,UNSUBSCRIBE:tsip_action_type_common_e.HANGUP,MESSAGE:30,INFO:40,PUBLISH:50,UNPUBLISH:tsip_action_type_common_e.HANGUP,OPTIONS:60,INVITE:70,HOLD:71,RESUME:72,ECT:73,ECT_ACCEPT:74,ECT_REJECT:75,ECT_NOTIFY:76,LARGE_MESSAGE:77,ACCEPT:tsip_action_type_common_e.ACCEPT,CANCEL:tsip_action_type_common_e.CANCEL,HANGUP:tsip_action_type_common_e.HANGUP,REJECT:tsip_action_type_common_e.REJECT,SHUTDOWN:tsip_action_type_common_e.SHUTDOWN};
function tsip_action(a){this.e_type=a;this.ao_headers=new Array();this.o_content=null;this.line_resp={};
this.line_resp.i_code=0;this.line_resp.s_phrase=null;this.media={};this.media.e_type=tmedia_type_e.NONE;
this.media.ao_params=new Array();this.dtmf={};this.dtmf.i_volume=-1;this.dtmf.i_event=-1;this.ect={};
this.ect.s_to=null;this.mute={};this.mute.b_muted=false;this.mute.s_media=null;this.switch_media={};this.switch_media.s_kind=null;
this.switch_media.s_dir=null;this.switch_media.s_device_id=null}tsip_action.prototype.set_line_resp=function(a,b){this.line_resp.i_code=a;
this.line_resp.s_phrase=b};tsip_action.prototype.set_content=function(a){this.o_content=a};tsip_action.prototype.get_content=function(){return this.o_content
};tsip_action.prototype.add_headers=function(){for(var a=0;a<arguments.length;++a){if(arguments[a]){this.ao_headers.push(arguments[a])
}}};var tsip_event_type_e={NONE:-1,INVITE:0,MESSAGE:1,INFO:2,OPTIONS:3,PUBLISH:4,REGISTER:5,SUBSCRIBE:6,DIALOG:20,STACK:21};
var tsip_event_code_e={DIALOG_TRANSPORT_ERROR:702,DIALOG_GLOBAL_ERROR:703,DIALOG_MESSAGE_ERROR:704,DIALOG_WEBRTC_ERROR:705,DIALOG_REQUEST_INCOMING:800,DIALOG_REQUEST_OUTGOING:802,DIALOG_REQUEST_CANCELLED:803,DIALOG_REQUEST_SENT:804,DIALOG_MEDIA_ADDED:805,DIALOG_MEDIA_REMOVED:806,DIALOG_MEDIA_LOCAL_REQUESTED:807,DIALOG_MEDIA_LOCAL_ACCEPTED:808,DIALOG_MEDIA_LOCAL_REFUSED:809,DIALOG_MEDIA_LOCAL_ENDED:810,DIALOG_MEDIA_ICE_CANDIDATE:811,DIALOG_CONNECTING:900,DIALOG_CONNECTED:901,DIALOG_TERMINATING:902,DIALOG_TERMINATED:903,DIALOG_BFCP_INFO:904,STACK_STARTING:950,STACK_STARTED:951,STACK_STOPPING:952,STACK_STOPPED:953,STACK_FAILED_TO_START:954,STACK_FAILED_TO_STOP:955,STACK_RESTARTING:956,STACK_RESTARTED:957};
function tsip_event(f,a,e,d,c,b){this.init(f,a,e,d,c,b)}tsip_event.prototype.init=function(f,a,e,d,c,b){this.o_session=f;
this.o_usr_data=b;this.i_code=a;this.s_phrase=e;this.o_message=d;this.e_type=c;return 0};tsip_event.prototype.get_session=function(){return this.o_session
};tsip_event.prototype.get_message=function(){return this.o_message};tsip_event.prototype.get_code=function(){return this.i_code
};tsip_event.prototype.get_phrase=function(){return this.s_phrase};tsip_event.prototype.get_usr_data=function(){return this.o_usr_data
};tsip_event.prototype.set_usr_data=function(a){this.o_usr_data=a};tsip_event.prototype.is_type_session=function(){switch(this.e_type){case tsip_event_type_e.INVITE:case tsip_event_type_e.MESSAGE:case tsip_event_type_e.INFO:case tsip_event_type_e.OPTIONS:case tsip_event_type_e.PUBLISH:case tsip_event_type_e.REGISTER:case tsip_event_type_e.SUBSCRIBE:case tsip_event_type_e.DIALOG:return true
}return false};tsip_event.prototype.is_type_stack=function(){return(this.e_type==tsip_event_type_e.STACK)
};tsip_event.prototype.signal=function(){var a=this;if(this.o_session.on_event&&this.is_type_session()){setTimeout(function(){a.o_session.on_event(a)
},1)}switch(this.e_type){case tsip_event_type_e.DIALOG:if(a.o_session.o_stack.on_event_dialog){setTimeout(function(){a.o_session.o_stack.on_event_dialog(a)
},1)}break;case tsip_event_type_e.STACK:if(a.o_session.o_stack.on_event_stack){setTimeout(function(){a.o_session.o_stack.on_event_stack(a)
},1)}case tsip_event_type_e.INVITE:if(a.o_session.o_stack.on_event_invite){setTimeout(function(){a.o_session.o_stack.on_event_invite(a)
},1)}break;case tsip_event_type_e.MESSAGE:if(a.o_session.o_stack.on_event_message){setTimeout(function(){a.o_session.o_stack.on_event_message(a)
},1)}break;case tsip_event_type_e.PUBLISH:if(a.o_session.o_stack.on_event_publish){setTimeout(function(){a.o_session.o_stack.on_event_publish(a)
},1)}break;case tsip_event_type_e.SUBSCRIBE:if(a.o_session.o_stack.on_event_subscribe){setTimeout(function(){a.o_session.o_stack.on_event_subscribe(a)
},1)}break}return 0};tsip_event.prototype.Signal=function(b,f,a,d,c){if(!f||!f.o_stack){tsk_utils_log_error("Invalid argument");
return -1}var e=new tsip_event(f,a,d,c,b);return e.signal()};tsip_response.prototype=Object.create(tsip_message.prototype);
tsip_request.prototype=Object.create(tsip_message.prototype);tsip_message.prototype.__s_version_10="SIP/1.0";
tsip_message.prototype.__s_version_20="SIP/2.0";tsip_message.prototype.__s_version_default=tsip_message.prototype.__s_version_20;
var tsip_message_type_e={UNKNOWN:0,REQUEST:1,RESPONSE:2};var tsip_request_type_e={NONE:{i_id:-1,s_name:"NONE"},ACK:{i_id:0,s_name:"ACK"},BYE:{i_id:1,s_name:"BYE"},CANCEL:{i_id:2,s_name:"CANCEL"},INVITE:{i_id:3,s_name:"INVITE"},OPTIONS:{i_id:4,s_name:"OPTIONS"},REGISTER:{i_id:5,s_name:"REGISTER"},SUBSCRIBE:{i_id:6,s_name:"SUBSCRIBE"},NOTIFY:{i_id:7,s_name:"NOTIFY"},REFER:{i_id:8,s_name:"REFER"},INFO:{i_id:9,s_name:"INFO"},UPDATE:{i_id:10,s_name:"UPDATE"},MESSAGE:{i_id:11,s_name:"MESSAGE"},PUBLISH:{i_id:12,s_name:"PUBLISH"},PRACK:{i_id:13,s_name:"PRACK"}};
function tsip_message(a){this.s_version=tsip_message.prototype.__s_version_default;this.e_type=a;this.line={request:{},response:{}};
this.o_hdr_firstVia=null;this.o_hdr_From=null;this.o_hdr_To=null;this.o_hdr_Contact=null;this.o_hdr_Call_ID=null;
this.o_hdr_CSeq=null;this.o_hdr_Expires=null;this.o_hdr_Content_Type=null;this.o_hdr_Content_Length=null;
this.o_content=null;this.ao_headers=new Array();this.s_sigcomp_id=null;this.o_socket=null;this.o_remote_addr=null;
this.b_update=false}function tsip_response(b,d,c){if(!d||!c){tsk_utils_log_error("Invalid argument");
return null}tsip_message.call(this,tsip_message_type_e.RESPONSE);this.line.response.i_status_code=b;this.line.response.s_reason_phrase=d;
this.o_socket=c.o_socket;this.o_remote_addr=c.o_remote_addr;this.o_hdr_From=c.o_hdr_From;this.o_hdr_Call_ID=c.o_hdr_Call_ID;
this.o_hdr_CSeq=c.o_hdr_CSeq;this.o_hdr_firstVia=c.o_hdr_firstVia;if(this.o_hdr_firstVia){var f=1;var a;
while((a=c.get_header_at(tsip_header_type_e.Via,f++))){this.add_header(a)}}var f=0;var e;while((e=c.get_header_at(tsip_header_type_e.Record_Route,f++))){this.add_header(e)
}this.o_hdr_To=c.o_hdr_To;this.add_header(new tsip_header_Content_Length(0))}function tsip_request(e,c,b,a,d,f){if(!e||!c||!d){tsk_utils_log_error("Invalid argument");
return null}tsip_message.call(this,tsip_message_type_e.REQUEST);this.line.request.s_method=e;this.line.request.o_uri=c;
this.line.request.e_type=tsip_message.prototype.GetRequestType(e);this.add_headers(new tsip_header_CSeq(f,e),new tsip_header_Call_ID(d),new tsip_header_Max_Forwards(TSIP_HEADER_MAX_FORWARDS_DEFAULT),new tsip_header_Content_Length(0));
if(a){this.add_headers(new tsip_header_To(a,null))}if(b){this.add_headers(new tsip_header_From(b,null))
}}tsip_message.prototype.add_header=function(b,a){if(!b){tsk_utils_log_error("Invalid argument");return -1
}switch(b.e_type){case tsip_header_type_e.Via:if(!this.o_hdr_firstVia){this.o_hdr_firstVia=b;return 0
}break;case tsip_header_type_e.From:if(!this.o_hdr_From){this.o_hdr_From=b;return 0}break;case tsip_header_type_e.To:if(!this.o_hdr_To){this.o_hdr_To=b;
return 0}break;case tsip_header_type_e.Contact:if(!this.o_hdr_Contact){this.o_hdr_Contact=b;return 0}break;
case tsip_header_type_e.Call_ID:if(!this.o_hdr_Call_ID){this.o_hdr_Call_ID=b;return 0}break;case tsip_header_type_e.CSeq:if(!this.o_hdr_CSeq){this.o_hdr_CSeq=b;
return 0}break;case tsip_header_type_e.Expires:if(!this.o_hdr_Expires){this.o_hdr_Expires=b;return 0}break;
case tsip_header_type_e.Content_Type:if(!this.o_hdr_Content_Type){this.o_hdr_Content_Type=b;return 0}break;
case tsip_header_type_e.Content_Length:if(!this.o_hdr_Content_Length){this.o_hdr_Content_Length=b;return 0
}break}if(a){this.ao_headers.unshift(b)}else{this.ao_headers.push(b)}return 0};tsip_message.prototype.add_headers=function(){for(var a=0;
a<arguments.length;++a){if(arguments[a]){this.add_header(arguments[a])}}return 0};tsip_message.prototype.get_header_at=function(d,c){var a=0;
switch(d){case tsip_header_type_e.Via:if(c==0){return this.o_hdr_firstVia}++a;break;case tsip_header_type_e.From:if(c==0){return this.o_hdr_From
}++a;break;case tsip_header_type_e.To:if(c==0){return this.o_hdr_To}++a;break;case tsip_header_type_e.Contact:if(c==0){return this.o_hdr_Contact
}++a;break;case tsip_header_type_e.Call_ID:if(c==0){return this.o_hdr_Call_ID}++a;break;case tsip_header_type_e.CSeq:if(c==0){return this.o_hdr_CSeq
}++a;break;case tsip_header_type_e.Expires:if(c==0){return this.o_hdr_Expires}++a;break;case tsip_header_type_e.Content_Type:if(c==0){return this.o_hdr_Content_Type
}++a;break;case tsip_header_type_e.Content_Length:if(c==0){return this.o_hdr_Content_Length}++a;break
}for(var b=0;b<this.ao_headers.length;++b){if(this.ao_headers[b].e_type==d){if(a++>=c){return this.ao_headers[b]
}}}return null};tsip_message.prototype.get_header=function(a){return this.get_header_at(a,0)};tsip_message.prototype.get_response_code=function(){return this.is_response()?this.line.response.i_status_code:0
};tsip_message.prototype.get_response_phrase=function(){return this.is_response()?this.line.response.s_reason_phrase:null
};tsip_message.prototype.is_allowed=function(b){if(!b){tsk_utils_log_error("Invalid argument");return false
}var a;var c=0;while((a=this.get_header_at(tsip_header_type_e.Allow,c++))){if(a.has_value(b)){return true
}}return false};tsip_message.prototype.is_supported=function(a){if(!a){tsk_utils_log_error("Invalid argument");
return false}var b;var c=0;while((b=this.get_header_at(tsip_header_type_e.Supported,c++))){if(b.has_value(a)){return true
}}return false};tsip_message.prototype.is_required=function(a){if(!a){tsk_utils_log_error("Invalid argument");
return false}var b;var c=0;while((b=this.get_header_at(tsip_header_type_e.Require,c++))){if(b.has_value(a)){return true
}}return false};tsip_message.prototype.get_expires=function(){if(this.o_hdr_Expires){return this.o_hdr_Expires.i_value
}if(this.o_hdr_Contact){return this.o_hdr_Contact.i_expires}return -1};tsip_message.prototype.has_content=function(){return this.get_content_length()>0&&this.o_content
};tsip_message.prototype.get_content_length=function(){return this.o_hdr_Content_Length?this.o_hdr_Content_Length.i_value:0
};tsip_message.prototype.get_content_type=function(){return(this.o_hdr_Content_Type)?this.o_hdr_Content_Type.s_type:null
};tsip_message.prototype.get_content=function(){return this.o_content};tsip_message.prototype.get_content_as_string=function(){if(this.o_content){if(this.o_content instanceof Array){return tsk_buff_u8b2utf8(this.o_content)
}}return this.o_content?this.o_content.toString():null};tsip_message.prototype.add_content=function(b,c,a){if(c){this.o_hdr_Content_Type=new tsip_header_Content_Type(c)
}if(b&&typeof a=="undefined"){if(b instanceof String||typeof b=="string"){a=unescape(encodeURIComponent(b)).length
}else{if(b.byteLength){a=b.byteLength}else{if(b.length){a=b.length}else{tsk_utils_log_error("cannot stat content-length");
a=0}}}}this.o_hdr_Content_Length=new tsip_header_Content_Length(a);this.o_content=b};tsip_message.prototype.toString=function(){var b=null;
if(this.e_type==tsip_message_type_e.REQUEST){b=tsk_string_format("{0} {1} {2}\r\n",this.line.request.s_method,tsip_uri_tostring(this.line.request.o_uri,true,false),this.s_version)
}else{b=tsk_string_format("{0} {1} {2}\r\n",this.s_version,this.line.response.i_status_code,this.line.response.s_reason_phrase)
}if(this.o_hdr_firstVia){b+=this.o_hdr_firstVia.tostring_full()}if(this.o_hdr_From){b+=this.o_hdr_From.tostring_full()
}if(this.o_hdr_To){b+=this.o_hdr_To.tostring_full()}if(this.o_hdr_Contact){b+=this.o_hdr_Contact.tostring_full()
}if(this.o_hdr_Call_ID){b+=this.o_hdr_Call_ID.tostring_full()}if(this.o_hdr_CSeq){b+=this.o_hdr_CSeq.tostring_full()
}if(this.o_hdr_Expires){b+=this.o_hdr_Expires.tostring_full()}if(this.o_hdr_Content_Type){b+=this.o_hdr_Content_Type.tostring_full()
}if(this.o_hdr_Content_Length){b+=this.o_hdr_Content_Length.tostring_full()}for(var a=0;a<this.ao_headers.length;
++a){b+=this.ao_headers[a].tostring_full()}b+="\r\n";if(this.has_content()){b+=this.get_content_as_string()
}return b};tsip_message.prototype.is_request=function(){return this.e_type==tsip_message_type_e.REQUEST
};tsip_message.prototype.is_response=function(){return this.e_type==tsip_message_type_e.RESPONSE};tsip_message.prototype.is_req_type=function(a){return this.is_request()&&this.line.request.e_type==a
};tsip_message.prototype.is_ack=function(){return this.is_req_type(tsip_request_type_e.ACK)};tsip_message.prototype.is_bye=function(){return this.is_req_type(tsip_request_type_e.BYE)
};tsip_message.prototype.is_cancel=function(){return this.is_req_type(tsip_request_type_e.CANCEL)};tsip_message.prototype.is_invite=function(){return this.is_req_type(tsip_request_type_e.INVITE)
};tsip_message.prototype.is_options=function(){return this.is_req_type(tsip_request_type_e.OPTIONS)};
tsip_message.prototype.is_register=function(){return this.is_req_type(tsip_request_type_e.REGISTER)};
tsip_message.prototype.is_subscribe=function(){return this.is_req_type(tsip_request_type_e.SUBSCRIBE)
};tsip_message.prototype.is_notify=function(){return this.is_req_type(tsip_request_type_e.NOTIFY)};tsip_message.prototype.is_update=function(){return this.is_req_type(tsip_request_type_e.UPDATE)
};tsip_message.prototype.is_message=function(){return this.is_req_type(tsip_request_type_e.MESSAGE)};
tsip_message.prototype.is_publish=function(){return this.is_req_type(tsip_request_type_e.PUBLISH)};tsip_message.prototype.is_prack=function(){return this.is_req_type(tsip_request_type_e.PRACK)
};tsip_message.prototype.is_refer=function(){return this.is_req_type(tsip_request_type_e.REFER)};tsip_message.prototype.is_info=function(){return this.is_req_type(tsip_request_type_e.INFO)
};tsip_message.prototype.is_response_to=function(a){return this.is_response()&&this.o_hdr_CSeq&&this.o_hdr_CSeq.e_req_type==a
};tsip_message.prototype.is_response_to_ack=function(){return this.is_response_to(tsip_request_type_e.ACK)
};tsip_message.prototype.is_response_to_bye=function(){return this.is_response_to(tsip_request_type_e.BYE)
};tsip_message.prototype.is_response_to_cancel=function(){return this.is_response_to(tsip_request_type_e.CANCEL)
};tsip_message.prototype.is_response_to_invite=function(){return this.is_response_to(tsip_request_type_e.INVITE)
};tsip_message.prototype.is_response_to_options=function(){return this.is_response_to(tsip_request_type_e.OPTIONS)
};tsip_message.prototype.is_response_to_register=function(){return this.is_response_to(tsip_request_type_e.REGISTER)
};tsip_message.prototype.is_response_to_subscribe=function(){return this.is_response_to(tsip_request_type_e.SUBSCRIBE)
};tsip_message.prototype.is_response_to_notify=function(){return this.is_response_to(tsip_request_type_e.NOTIFY)
};tsip_message.prototype.is_response_to_update=function(){return this.is_response_to(tsip_request_type_e.UPDATE)
};tsip_message.prototype.is_response_to_message=function(){return this.is_response_to(tsip_request_type_e.MESSAGE)
};tsip_message.prototype.is_response_to_publish=function(){return this.is_response_to(tsip_request_type_e.PUBLISH)
};tsip_message.prototype.is_response_to_prack=function(){return this.is_response_to(tsip_request_type_e.PRACK)
};tsip_message.prototype.is_response_to_refer=function(){return this.is_response_to(tsip_request_type_e.REFER)
};tsip_message.prototype.is_response_to_info=function(){return this.is_response_to(tsip_request_type_e.INFO)
};tsip_message.prototype.is_response_nxx=function(a){return this.is_response()&&((a*100)<=this.get_response_code()&&this.get_response_code()<=((a*100)+99))
};tsip_message.prototype.is_response_xxx=function(a){return this.is_response()&&(this.get_response_code()==a)
};tsip_message.prototype.is_1xx=function(){return this.is_response_nxx(1)};tsip_message.prototype.is_2xx=function(){return this.is_response_nxx(2)
};tsip_message.prototype.is_3xx=function(){return this.is_response_nxx(3)};tsip_message.prototype.is_4xx=function(){return this.is_response_nxx(4)
};tsip_message.prototype.is_5xx=function(){return this.is_response_nxx(5)};tsip_message.prototype.is_6xx=function(){return this.is_response_nxx(6)
};tsip_message.prototype.is_23456=function(){return this.is_response()&&(200<=this.get_response_code()&&this.get_response_code()<=699)
};tsip_message.prototype.is_3456=function(){return this.is_response()&&(300<=this.get_response_code()&&this.get_response_code()<=699)
};tsip_message.prototype.GetRequestType=function(b){if(b){var a=b.toUpperCase();if((a==tsip_request_type_e.ACK.s_name)){return tsip_request_type_e.ACK
}else{if((a==tsip_request_type_e.BYE.s_name)){return tsip_request_type_e.BYE}else{if((a==tsip_request_type_e.CANCEL.s_name)){return tsip_request_type_e.CANCEL
}else{if((a==tsip_request_type_e.INVITE.s_name)){return tsip_request_type_e.INVITE}else{if((a==tsip_request_type_e.OPTIONS.s_name)){return tsip_request_type_e.OPTIONS
}else{if((a==tsip_request_type_e.REGISTER.s_name)){return tsip_request_type_e.REGISTER}else{if((a==tsip_request_type_e.SUBSCRIBE.s_name)){return tsip_request_type_e.SUBSCRIBE
}else{if((a==tsip_request_type_e.NOTIFY.s_name)){return tsip_request_type_e.NOTIFY}else{if((a==tsip_request_type_e.REFER.s_name)){return tsip_request_type_e.REFER
}else{if((a==tsip_request_type_e.INFO.s_name)){return tsip_request_type_e.INFO}else{if((a==tsip_request_type_e.UPDATE.s_name)){return tsip_request_type_e.UPDATE
}else{if((a==tsip_request_type_e.MESSAGE.s_name)){return tsip_request_type_e.MESSAGE}else{if((a==tsip_request_type_e.PUBLISH.s_name)){return tsip_request_type_e.PUBLISH
}else{if((a==tsip_request_type_e.PRACK.s_name)){return tsip_request_type_e.PRACK}}}}}}}}}}}}}}}return tsip_request_type_e.NONE
};if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/parsers/tsip_parser_message.js")
}function prev_not_comma(a,b){return(a.i_pe<=b)||(a.o_data[b-1]!=",")}_tsip_machine_parser_message_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,2,0,5,2,6,0];
_tsip_machine_parser_message_key_offsets=[0,0,16,31,35,47,50,52,55,57,59,61,62,64,67,69,72,73,88,89,106,109,114,117,121,142,146,147,149,166,183,197,199,202,204,207,209,211,213,214,230,246,252,258,260,281,284,288];
_tsip_machine_parser_message_trans_keys=[33,37,39,83,115,126,42,43,45,46,48,57,65,90,95,122,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,65,90,97,122,9,32,43,58,45,46,48,57,65,90,97,122,9,32,58,0,65535,32,0,65535,83,115,73,105,80,112,47,48,57,46,48,57,48,57,13,48,57,10,13,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,13,0,65535,13,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,0,65535,10,9,32,32,33,37,39,73,105,126,42,43,45,46,48,57,65,90,95,122,32,33,37,39,80,112,126,42,43,45,46,48,57,65,90,95,122,32,33,37,39,47,126,42,43,45,57,65,90,95,122,48,57,46,48,57,48,57,32,48,57,48,57,48,57,48,57,32,9,13,37,61,95,126,32,33,36,59,63,90,97,122,128,255,9,13,37,61,95,126,32,33,36,59,63,90,97,122,128,255,48,57,65,70,97,102,48,57,65,70,97,102,0,65535,13,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,13,0,65535,10,13,0,65535,10,13,0,65535,0];
_tsip_machine_parser_message_single_lengths=[0,6,5,0,4,3,0,1,2,2,2,1,0,1,0,1,1,5,1,7,3,3,1,2,7,2,1,2,7,7,6,0,1,0,1,0,0,0,1,6,6,0,0,0,7,1,2,2];
_tsip_machine_parser_message_range_lengths=[0,5,5,2,4,0,1,1,0,0,0,0,1,1,1,1,0,5,0,5,0,1,1,1,7,1,0,0,5,5,4,1,1,1,1,1,1,1,0,5,5,3,3,1,7,1,1,1];
_tsip_machine_parser_message_index_offsets=[0,0,12,23,26,35,39,41,44,47,50,53,55,57,60,62,65,67,78,80,93,97,102,105,109,124,128,130,133,146,159,170,172,175,177,180,182,184,186,188,200,212,216,220,222,237,240,244];
_tsip_machine_parser_message_indicies=[0,0,0,2,2,0,0,0,0,0,0,1,3,4,4,4,4,4,4,4,4,4,1,5,5,1,6,6,7,8,7,7,7,7,1,6,6,8,1,9,1,10,9,1,11,11,1,12,12,1,13,13,1,14,1,15,1,16,15,1,17,1,18,17,1,19,1,20,21,21,21,21,21,21,21,21,21,1,22,1,23,23,24,24,24,25,24,24,24,24,24,24,1,23,23,25,1,25,27,25,26,1,28,26,1,29,28,26,1,30,31,31,31,26,26,31,26,31,26,31,26,31,26,1,32,28,26,1,33,1,26,26,1,3,4,4,4,34,34,4,4,4,4,4,4,1,3,4,4,4,35,35,4,4,4,4,4,4,1,3,4,4,4,36,4,4,4,4,4,1,37,1,38,37,1,39,1,40,39,1,41,1,42,1,43,1,44,1,45,46,47,45,45,45,45,45,45,45,45,1,48,49,50,48,48,48,48,48,48,48,48,1,51,51,51,1,48,48,48,1,52,1,54,55,55,55,53,53,55,53,55,53,55,53,55,53,1,56,53,1,57,56,53,1,32,56,53,1,0];
_tsip_machine_parser_message_trans_targs=[2,0,28,3,2,4,5,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,43,20,19,21,22,26,23,24,25,22,44,27,29,30,31,32,33,34,35,36,37,38,39,40,16,41,40,16,41,42,43,45,47,45,46,44];
_tsip_machine_parser_message_trans_actions=[1,0,1,3,0,1,0,0,0,0,5,1,0,0,0,0,0,0,7,0,0,1,15,0,0,0,0,0,0,0,13,20,15,0,0,0,0,0,0,0,7,1,0,0,9,1,17,1,0,11,0,0,0,0,13,20,0,0];
tsip_machine_parser_message_start=1;tsip_machine_parser_message_first_final=43;tsip_machine_parser_message_error=0;
tsip_machine_parser_message_en_main=1;function tsip_message_parser_init(a){var b=0;b=tsip_machine_parser_message_start;
a.i_cs=b}function tsip_message_parser_execute(v,t,f){var e=v.i_cs;var m=v.i_p;var x=v.i_pe;var j=v.i_eof;
var y=v.o_data;var g,o,b,d,c,s,n;var q,k,a,r,w;var u;g=o=b=s=n=null;q=0;k=10;a=15;r=20;w=30;u=40;while(true){_trigger_goto=false;
if(q<=0){if(m==x){q=w;continue}if(e==0){q=u;continue}}if(q<=k){b=_tsip_machine_parser_message_key_offsets[e];
o=_tsip_machine_parser_message_index_offsets[e];g=_tsip_machine_parser_message_single_lengths[e];_break_match=false;
do{if(g>0){_lower=b;_upper=b+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(y[m]<_tsip_machine_parser_message_trans_keys[_mid]){_upper=_mid-1}else{if(y[m]>_tsip_machine_parser_message_trans_keys[_mid]){_lower=_mid+1
}else{o+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=g;o+=g}g=_tsip_machine_parser_message_range_lengths[e];
if(g>0){_lower=b;_upper=b+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(y[m]<_tsip_machine_parser_message_trans_keys[_mid]){_upper=_mid-2}else{if(y[m]>_tsip_machine_parser_message_trans_keys[_mid+1]){_lower=_mid+2
}else{o+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}o+=g}}while(false);o=_tsip_machine_parser_message_indicies[o];
e=_tsip_machine_parser_message_trans_targs[o];if(_tsip_machine_parser_message_trans_actions[o]!=0){s=_tsip_machine_parser_message_trans_actions[o];
n=_tsip_machine_parser_message_actions[s];s+=1;while(n>0){n-=1;s+=1;switch(_tsip_machine_parser_message_actions[s-1]){case 0:v.i_tag_start=m;
break;case 1:v.i_tag_end=m;if(t.e_type==tsip_message_type_e.UNKNOWN){t.e_type=tsip_message_type_e.REQUEST;
if(!t.line.request.s_method){t.line.request.s_method=tsk_ragel_parser_get_string(v.s_data,m,v.i_tag_start);
t.line.request.e_type=tsip_message.prototype.GetRequestType(t.line.request.s_method)}}else{v.cs=tsip_machine_parser_message_error
}break;case 2:v.i_tag_end=m;if(!t.line.request.o_uri){var h=tsk_ragel_parser_get_string(v.s_data,m,v.i_tag_start);
t.line.request.o_uri=tsip_uri.prototype.Parse(h)}break;case 3:v.i_tag_end=m;t.s_version=tsk_ragel_parser_get_string(v.s_data,m,v.i_tag_start);
break;case 4:v.i_tag_end=m;if(t.e_type==tsip_message_type_e.UNKNOWN){t.e_type=tsip_message_type_e.RESPONSE;
var l=tsk_ragel_parser_get_string(v.s_data,m,v.i_tag_start);t.line.response.i_status_code=parseInt(l)
}else{v.i_cs=tsip_machine_parser_message_error}break;case 5:v.i_tag_end=m;if(!t.line.response.s_reason_phrase){t.line.response.s_reason_phrase=tsk_ragel_parser_get_string(v.s_data,m,v.i_tag_start)
}break;case 6:v.i_tag_end=m;tsip_header_parse(v,t);break;case 7:v.i_cs=e;v.i_p=m;v.i_pe=x;v.i_eof=j;tsip_message_parser_eoh(v,t,f);
e=v.i_cs;m=v.i_p;x=v.i_pe;j=v.i_eof;break}}}if(_trigger_goto){continue}}if(q<=r){if(e==0){q=u;continue
}m+=1;if(m!=x){q=k;continue}}if(q<=w){}if(q<=u){break}}v.i_cs=e;v.i_p=m;v.i_pe=x;v.i_eof=j}function tsip_message_parser_eoh(b,h,a){if(h&&a){var g=h.get_content_length();
if((b.i_p+g)<b.i_pe&&!h.o_content){var e=b.i_p+1;var f=(e+g);h.o_content=new Array((f-e));for(var d=e,c=0;
d<f;++d,++c){h.o_content[c]=b.o_data[d]}b.i_p+=g}else{b.i_p=(b.i_pe-1)}}}tsip_message.prototype.Parse=function(b,a){var c=null;
if(!b||!b.o_data){return null}c=new tsip_message(tsip_message_type_e.UNKNOWN);tsip_message_parser_init(b);
tsip_message_parser_execute(b,c,a);if(b.i_cs<43){tsk_utils_log_error("Failed to parse message: "+b.s_data);
return null}return c};tsip_session.prototype.__i_expires_default=1800000;tsip_session.prototype.__i_session_id=0;
tsip_session.prototype.__i_session_id_invalid=-1;tsip_session.prototype.on_event=null;var tsip_session_param_type_e={HEADER:0,CAPS:1,USR_DATA:2,TO_STR:3,from_STR:3,TO_URI:4,FROM_URI:5,NO_CONTACT:6,EXPIRES:7,SILENT_HANGUP:8,SIGCOMP_ID:9,PARENT_ID:10,CONSTRAINT:20,VIDEO_SIZE:21,SCREENCAST_WINDOWID:22,VIDEO_INPUT:23,AUDIO_INPUT:24,AUDIO_OUTPUT:25,CALL_TYPE:30,MAIN_STREAM:31,INITIAL_MSG:50,MEDIA:100};
function tsip_session(a){if(!a){tsk_utils_log_error("Invalid argument");return null}this.i_id=++tsip_session.prototype.__i_session_id;
this.i_id_parent=tsip_session.prototype.__i_session_id_invalid;this.b_server=false;this.o_stack=a;this.o_usr_data=null;
this.ao_caps=new Array();this.ao_headers=new Array();this.o_uri_from=a.identity.o_uri_impu;this.o_uri_to=null;
this.i_expires=tsip_session.prototype.__i_expires_default;this.b_silent_hangup=false;this.b_no_contact=false;
this.media={};this.media.e_type=tmedia_type_e.NONE;this.media.b_100rel=false;this.media.o_constraint=a.media.o_constraint;
this.media.s_video_input_device_id=a.media.s_video_input_device_id;this.media.s_audio_input_device_id=a.media.s_audio_input_device_id;
this.media.s_audio_output_device_id=a.media.s_audio_output_device_id;this.media.screencast={};this.media.screencast.d_window_id=0;
this.media.timers={};this.media.timers.s_refresher=null;this.media.timers.i_timeout=0;this.media.qos={};
this.media.qos.e_type=tmedia_qos_stype_e.NONE;this.media.qos.e_strength=tmedia_qos_strength_e.NONE;this.media.msrp={};
this.media.msrp.fn_callback=null;this.s_call_type=a.s_call_type;this.o_main_stream=a.o_main_stream}tsip_session.prototype.get_id=function(){return this.i_id
};tsip_session.prototype.set=function(){return this.__set(arguments)};tsip_session.prototype.get_stack=function(){return this.o_stack
};tsip_session.prototype.is_connected=function(){var a;if((a=this.o_stack.o_layer_dialog.find_by_ss(this))){return(a.e_state==tsip_dialog_state_e.ESTABLISHED)
}return false};tsip_session.prototype.__set=function(c){var d;for(var a=0;a<c.length;++a){d=c[a];if(!d){continue
}switch(d.e_type){case tsip_session_param_type_e.HEADER:this.ao_headers.push(new tsip_header_Dummy(d.ao_values[0],d.ao_values[1]));
break;case tsip_session_param_type_e.CAPS:this.ao_caps.push(tsk_param_create(d.ao_values[0],d.ao_values[1]));
break;case tsip_session_param_type_e.USR_DATA:this.o_usr_data=d.ao_values[0];break;case tsip_session_param_type_e.TO_STR:this.o_uri_to=tsip_uri_make_valid(d.ao_values[0],this.o_stack.network.o_uri_realm.s_host);
break;case tsip_session_param_type_e.FROM_STR:this.o_uri_from=tsip_uri_make_valid(d.ao_values[0],this.o_stack.network.o_uri_realm.s_host);
break;case tsip_session_param_type_e.TO_URI:if(!d.ao_values[0]||d.ao_values[0] instanceof tsip_uri){this.o_uri_to=d.ao_values[0]
}else{tsk_utils_log_error("Not a valid uri object")}break;case tsip_session_param_type_e.FROM_URI:if(!d.ao_values[0]||d.ao_values[0] instanceof tsip_uri){this.o_uri_from=d.ao_values[0]
}else{tsk_utils_log_error("Not a valid uri object")}break;case tsip_session_param_type_e.NO_CONTACT:this.b_no_contact=d.ao_values[0];
break;case tsip_session_param_type_e.EXPIRES:this.i_expires=(d.ao_values[0]*1000);break;case tsip_session_param_type_e.SILENT_HANGUP:break;
case tsip_session_param_type_e.SIGCOMP_ID:break;case tsip_session_param_type_e.PARENT_ID:break;case tsip_session_param_type_e.CONSTRAINT:this.media.o_constraint=d.ao_values[0];
break;case tsip_session_param_type_e.VIDEO_INPUT:this.media.s_video_input_device_id=d.ao_values[0];break;
case tsip_session_param_type_e.AUDIO_INPUT:this.media.s_audio_input_device_id=d.ao_values[0];break;case tsip_session_param_type_e.AUDIO_OUTPUT:this.media.s_audio_output_device_id=d.ao_values[0];
break;case tsip_session_param_type_e.CALL_TYPE:this.s_call_type=d.ao_values[0];break;case tsip_session_param_type_e.MAIN_STREAM:this.o_main_stream=d.ao_values[0];
break;case tsip_session_param_type_e.SCREENCAST_WINDOWID:this.media.screencast.d_window_id=parseFloat(d.ao_values[0].toString());
break;case tsip_session_param_type_e.INITIAL_MSG:var b;if((b=d.ao_values[0])){if(b.o_hdr_From&&b.o_hdr_From.o_uri){this.o_uri_from=b.o_hdr_From.o_uri.clone(false,false)
}if(b.o_hdr_To&&b.o_hdr_To.o_uri){this.o_uri_to=b.o_hdr_To.o_uri.clone(false,false)}this.b_server=true
}break}}};tsip_session.prototype.SetHeader=function(b,a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.HEADER,b,a)
};tsip_session.prototype.SetExpires=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.EXPIRES,a)
};tsip_session.prototype.SetUsrData=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.USR_DATA,a)
};tsip_session.prototype.SetCaps=function(b,a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.CAPS,b,a)
};tsip_session.prototype.SetToStr=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.TO_STR,a)
};tsip_session.prototype.SetToUri=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.TO_URI,a)
};tsip_session.prototype.SetFromStr=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.FROM_STR,a)
};tsip_session.prototype.SetInitialMessage=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.INITIAL_MSG,a)
};tsip_session.prototype.SetConstraint=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.CONSTRAINT,a)
};tsip_session.prototype.SetVideoInput=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.VIDEO_INPUT,a)
};tsip_session.prototype.SetAudioInput=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.AUDIO_INPUT,a)
};tsip_session.prototype.SetAudioOutput=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.AUDIO_OUTPUT,a)
};tsip_session.prototype.SetCallType=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.CALL_TYPE,a)
};tsip_session.prototype.SetMainStream=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.MAIN_STREAM,a)
};tsip_session.prototype.SetScreencastWindowID=function(a){return tsip_session.prototype.SetAny(tsip_session_param_type_e.SCREENCAST_WINDOWID,a)
};tsip_session.prototype.SetAny=function(a){var b=new Object();b.e_type=a;b.ao_values=Array.prototype.slice.call(arguments,1);
return b};if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/api/tsip_api_common.js","src/tinySIP/src/api/tsip_api_info.js","src/tinySIP/src/api/tsip_api_invite.js","src/tinySIP/src/api/tsip_api_message.js","src/tinySIP/src/api/tsip_api_options.js","src/tinySIP/src/api/tsip_api_publish.js","src/tinySIP/src/api/tsip_api_register.js","src/tinySIP/src/api/tsip_api_subscribe.js")
}tsip_session.prototype.__action_handle=function(a){var b=-1;if(this.o_stack&&a){var c;if((c=this.o_stack.o_layer_dialog.find_by_ss(this))){switch(a.e_type){case tsip_action_type_e.HANGUP:b=c.hangup(a);
break;default:b=c.fsm_act(a.e_type,null,a);break}}else{tsk_utils_log_error("Failed to find dialog with this opid ["+this.i_id+"]")
}}else{tsk_utils_log_error("Invalid argument")}return b};tsip_session.prototype.__action_any=function(b,c){if(!this.o_stack){tsk_utils_log_error("Invalid stack");
return -1}if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var a=new tsip_action(b);if(c){a.set_line_resp(c.i_code,c.s_phrase)}return this.__action_handle(a)
};tsip_session.prototype.reject=function(a){return this.__action_any(tsip_action_type_e.REJECT,a)};tsip_session.prototype.hangup=function(a){return this.__action_any(tsip_action_type_e.HANGUP,a)
};tsip_session.prototype.accept=function(){return this.__action_any(tsip_action_type_e.ACCEPT)};tsip_session.prototype.cancel=function(a){return this.__action_any(tsip_action_type_e.CANCEL,a)
};tsip_event_info.prototype=Object.create(tsip_event.prototype);var tsip_event_info_type_e={I_INFO:0,AO_INFO:1};
function tsip_event_info(d,a,c,b,e){tsip_event.call(this,d,a,c,b,tsip_event_type_e.INFO);this.e_type=e
}tsip_session_invite.prototype=Object.create(tsip_session.prototype);tsip_event_invite.prototype=Object.create(tsip_event.prototype);
tsip_session_invite.prototype.o_stream_local=null;tsip_session_invite.prototype.o_stream_local_audio=null;
tsip_session_invite.prototype.o_stream_local_video=null;tsip_session_invite.prototype.o_stream_locals={};
tsip_session_invite.prototype.o_stream_remote=null;tsip_session_invite.prototype.o_stream_remotes={};
tsip_session_invite.prototype.o_param=null;tsip_session_invite.prototype.s_description=null;var tsip_event_invite_type_e={I_NEW_CALL:0,I_REQUEST:100,I_AO_REQUEST:101,O_ECT_TRYING:200,O_ECT_ACCEPTED:201,O_ECT_COMPLETED:202,O_ECT_FAILED:203,O_ECT_NOTIFY:204,I_ECT_REQUESTED:205,I_ECT_NEW_CALL:206,I_ECT_COMPLETED:207,I_ECT_FAILED:208,I_ECT_NOTIFY:209,M_BFCP_INFO:300,M_EARLY_MEDIA:400,M_UPDATING:401,M_UPDATED:402,M_STREAM_CONNECTING:403,M_STREAM_CONNECTED:404,M_STREAM_LOCAL_REQUESTED:405,M_STREAM_LOCAL_ACCEPTED:406,M_STREAM_LOCAL_REFUSED:407,M_STREAM_LOCAL_ADDED:408,M_STREAM_LOCAL_REMOVED:409,M_STREAM_REMOTE_ADDED:410,M_STREAM_REMOTE_REMOVED:411,M_TRACK_LOCAL_ENDED:412,M_ICE_CANDIDATE:413,M_TRACK_LOCAL_REQUESTED:414,M_TRACK_LOCAL_ACCEPTED:415,M_TRACK_LOCAL_REFUSED:416,M_TRACK_LOCAL_ENDED:417,M_SWITCH_SOURCE_REQUESTED:418,M_SWITCH_SOURCE_ACCEPTED:419,M_SWITCH_SOURCE_REFUSED:420,M_LOCAL_HOLD_OK:500,M_LOCAL_HOLD_NOK:501,M_LOCAL_RESUME_OK:502,M_LOCAL_RESUME_NOK:503,M_REMOTE_HOLD:504,M_REMOTE_RESUME:505,};
function tsip_session_invite(a){tsip_session.call(this,a);this.__set(Array.prototype.slice.call(arguments,1))
}function tsip_event_invite(f,a,e,c,d,b){tsip_event.call(this,f,a,e,c,tsip_event_type_e.INVITE,b);this.e_invite_type=d
}tsip_session_invite.prototype.get_stream_local=function(){return this.o_stream_local};tsip_session_invite.prototype.get_stream_local_audio=function(){return this.o_stream_local_audio
};tsip_session_invite.prototype.get_stream_local_video=function(){return this.o_stream_local_video};tsip_session_invite.prototype.get_stream_locals=function(){return this.o_stream_locals
};tsip_session_invite.prototype.get_param=function(){return this.o_param};tsip_session_invite.prototype.get_description=function(){return this.s_description
};tsip_session_invite.prototype.get_stream_remote=function(){return this.o_stream_remote};tsip_session_invite.prototype.get_stream_remotes=function(){return this.o_stream_remotes
};tsip_session_invite.prototype.__set_stream_local=function(a){this.o_stream_local=a};tsip_session_invite.prototype.__set_stream_local_audio=function(a){this.o_stream_local_audio=a
};tsip_session_invite.prototype.__set_stream_local_video=function(a){this.o_stream_local_video=a};tsip_session_invite.prototype.__set_stream_locals=function(a){this.o_stream_locals=a
};tsip_session_invite.prototype.__set_param=function(a){this.o_param=a};tsip_session_invite.prototype.__set_description=function(a){this.s_description=a
};tsip_session_invite.prototype.__set_stream_remote=function(a){this.o_stream_remote=a};tsip_session_invite.prototype.__set_stream_remotes=function(a){this.o_stream_remotes=a
};tsip_session_invite.prototype.call=function(c){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var d=-1;var b=new tsip_action(tsip_action_type_e.INVITE);if(b){var a=false;b.media.e_type=c;
var e=this.o_stack.o_layer_dialog.find_by_ss(this);if(!e){a=true;e=this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.INVITE,this)
}if((d=e.fsm_act(b.e_type,null,b))==0){if(a){this.media.e_type=c}}}return d};tsip_session_invite.prototype.hold=function(b){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var c=-1;var a=new tsip_action(tsip_action_type_e.HOLD);if(a){a.media.e_type=b;c=this.__action_handle(a)
}return c};tsip_session_invite.prototype.resume=function(b){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var c=-1;var a=new tsip_action(tsip_action_type_e.RESUME);if(a){a.media.e_type=b;c=this.__action_handle(a)
}return c};tsip_session_invite.prototype.info=function(b,c){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var d=-1;var a=new tsip_action(tsip_action_type_e.INFO);if(a){if(c){a.add_headers(new tsip_header_Content_Type(c))
}a.set_content(b);d=this.__action_handle(a)}return d};tsip_session_invite.prototype.dtmf=function(b){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}if(!b){tsk_utils_log_error("Invalid parameter");return -1}var a=new tsip_action(tsip_action_type_e.DTMF_SEND);
if(a){a.add_headers(new tsip_header_Content_Type("application/dtmf-relay"));a.set_content(tsk_string_format("Signal={0}\r\nDuration={1}",b,120));
return this.__action_handle(a)}return -3};tsip_session_invite.prototype.transfer=function(b){if(!b){tsk_utils_log_error("Invalid parameter");
return -1}if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var a=tsip_uri_make_valid(b,this.o_stack.network.o_uri_realm.s_host);if(!a){tsk_utils_log_error("%s is not a valid SIP Uri",b);
return -3}var d=-1;var c=new tsip_action(tsip_action_type_e.ECT);if(c){c.ect.s_to=tsip_uri_tostring(a,false,false);
d=this.__action_handle(c)}return d};tsip_session_invite.prototype.transfer_accept=function(){return this.__action_any(tsip_action_type_e.ECT_ACCEPT)
};tsip_session_invite.prototype.transfer_reject=function(){return this.__action_any(tsip_action_type_e.ECT_REJECT)
};tsip_session_invite.prototype.start_bfcp_share=function(){var a=this.media.e_type;switch(this.media.e_type){case tmedia_type_e.AUDIO:a=tmedia_type_e.AUDIO_BFCPVIDEO;
break;case tmedia_type_e.VIDEO:a=tmedia_type_e.VIDEO_BFCPVIDEO;break;default:a=tmedia_type_e.AUDIO_VIDEO_BFCPVIDEO;
break}return this.call(a)};tsip_session_invite.prototype.stop_bfcp_share=function(){var a=this.media.e_type;
switch(this.media.e_type){case tmedia_type_e.AUDIO_BFCPVIDEO:a=tmedia_type_e.AUDIO;break;case tmedia_type_e.VIDEO_BFCPVIDEO:a=tmedia_type_e.VIDEO;
break;default:a=tmedia_type_e.AUDIO_VIDEO;break}return this.call(a)};tsip_session_invite.prototype.set_mute=function(c,b){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var a=new tsip_action(tsip_action_type_e.MUTE);if(a){a.mute.b_muted=b;a.mute.s_media=c;return this.__action_handle(a)
}return -3};tsip_session_invite.prototype.switch_source=function(b,c,a){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var d=new tsip_action(tsip_action_type_e.SWITCH_SOURCE);if(d){d.switch_media.s_kind=b;d.switch_media.s_dir=c;
d.switch_media.s_device_id=a;return this.__action_handle(d)}return -3};tsip_session_invite.prototype.switch_video=function(a){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var d=-1;var b=new tsip_action(tsip_action_type_e.SWITCH_VIDEO);if(b){var c=tmedia_type_e.NONE;
if(a==="video"){c=tmedia_type_e.VIDEO}else{if(a==="screen"){c=tmedia_type_e.SCREEN_SHARE}}b.media.e_type=c;
d=this.__action_handle(b)}return d};tsip_session_message.prototype=Object.create(tsip_session.prototype);
var tsip_event_message_type_e={I_MESSAGE:0,AO_MESSAGE:1};function tsip_event_message(d,a,c,b,e){this.__proto__=new tsip_event(d,a,c,b,tsip_event_type_e.MESSAGE);
this.e_message_type=e}function tsip_session_message(a){tsip_session.call(this,a);this.__set(Array.prototype.slice.call(arguments,1))
}tsip_session_message.prototype.send=function(b,c){if(!b){tsk_utils_log_error("Invalid argument");return -1
}if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");return -2
}var d=-1;var a=new tsip_action(tsip_action_type_e.MESSAGE);if(a){var e=this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.MESSAGE,this);
if(e){a.set_content(b);if(c){a.add_headers(new tsip_header_Content_Type(c))}if((d=e.fsm_act(a.e_type,null,a))==0){}}}return d
};var tsip_event_options_type_e={I_OPTIONS:0,AO_OPTIONS:1};function tsip_event_options(d,a,c,b,e){this.__proto__=new tsip_event(d,a,c,b,tsip_event_type_e.OPTIONS);
this.e_type=e}tsip_session_publish.prototype=Object.create(tsip_session.prototype);tsip_event_publish.prototype=Object.create(tsip_event.prototype);
var tsip_event_publish_type_e={I_PUBLISH:0,AO_PUBLISH:1,I_UNPUBLISH:10,AO_UNPUBLISH:11};function tsip_event_publish(e,a,c,b,d){tsip_event.call(this,e,a,c,b,tsip_event_type_e.PUBLISH);
this.e_publish_type=d}function tsip_session_publish(a){tsip_session.call(this,a);this.__set(Array.prototype.slice.call(arguments,1))
}tsip_session_publish.prototype.publish=function(b,c){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var d=-1;var a=new tsip_action(tsip_action_type_e.PUBLISH);if(a){var e=this.o_stack.o_layer_dialog.find_by_ss(this);
if(!e){e=this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.PUBLISH,this)}a.set_content(b);if(c){a.add_headers(new tsip_header_Content_Type(c))
}d=e.fsm_act(a.e_type,null,a)}return d};tsip_session_publish.prototype.unpublish=function(){return this.__action_any(tsip_action_type_e.UNPUBLISH)
};tsip_session_register.prototype=Object.create(tsip_session.prototype);tsip_event_register.prototype=Object.create(tsip_event.prototype);
var tsip_event_register_type_e={I_NEW_REGISTER:0,I_REGISTER:10,AO_REGISTER:11,I_UNREGISTER:20,AO_UNREGISTER:21};
function tsip_session_register(a){tsip_session.call(this,a);this.__set(Array.prototype.slice.call(arguments,1))
}function tsip_event_register(e,a,d,c,b){tsip_event.call(this,e,a,d,c,tsip_event_type_e.REGISTER);this.e_register_type=b
}tsip_session_register.prototype.register=function(){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var b=-1;var a=new tsip_action(tsip_action_type_e.REGISTER);if(a){var c=this.o_stack.o_layer_dialog.find_by_ss(this);
if(!c){c=this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.REGISTER,this)}b=c.fsm_act(a.e_type,null,a)
}return b};tsip_session_register.prototype.unregister=function(){return this.__action_any(tsip_action_type_e.UNREGISTER)
};tsip_session_subscribe.prototype=Object.create(tsip_session.prototype);tsip_event_subscribe.prototype=Object.create(tsip_event.prototype);
var tsip_event_subscribe_type_e={I_SUBSCRIBE:0,AO_SUBSCRIBE:1,I_UNSUBSRIBE:10,AO_UNSUBSCRIBE:11,I_NOTIFY:20,AO_NOTIFY:21};
function tsip_event_subscribe(e,a,c,b,d){tsip_event.call(this,e,a,c,b,tsip_event_type_e.SUBSCRIBE);this.e_subscribe_type=d
}function tsip_session_subscribe(a){tsip_session.call(this,a);this.__set(Array.prototype.slice.call(arguments,1))
}tsip_session_subscribe.prototype.subscribe=function(){if(this.o_stack.e_state!=tsip_transport_state_e.STARTED){tsk_utils_log_error("Stack not started");
return -2}var b=-1;var a=new tsip_action(tsip_action_type_e.SUBSCRIBE);if(a){var c=this.o_stack.o_layer_dialog.find_by_ss(this);
if(!c){c=this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.SUBSCRIBE,this)}b=c.fsm_act(a.e_type,null,a)
}return b};tsip_session_subscribe.prototype.unsubscribe=function(){return this.__action_any(tsip_action_type_e.UNSUBSCRIBE)
};tsip_stack.prototype.on_event_stack=null;tsip_stack.prototype.on_event_dialog=null;tsip_stack.prototype.on_event_invite=null;
tsip_stack.prototype.on_event_message=null;tsip_stack.prototype.on_event_publish=null;tsip_stack.prototype.on_event_subscribe=null;
var tsip_stack_param_type_e={DISPLAY_NAME:0,IMPU:1,PREFERRED_ID:2,IMPI:3,PASSWORD:4,SIGCOMP:10,SIGCOMP_ADD_COMPARTMENT:11,SIGCOMP_REMOVE_COMPARTMENT:12,REALM:20,LOCAL_IP:21,LOCAL_PORT:22,AOR:23,DISCOVERY_NAPTR:24,DISCOVERY_DHCP:25,PROXY_CSCF:26,DNSSERVER:27,MODE_SERVER:28,PROXY_OUTBOUND:30,WEBSOCKET_SERVER_URL:31,ICE_SERVERS:32,ENABLE_RTCWEB_BREAKER:33,ENABLE_CLICK2CALL:34,ENABLE_SECURE_TRANSPORT:35,EARLY_IMS:40,SECAGREE_IPSEC:41,SECAGREE_TLS:42,AMF:43,OPERATOR_ID:44,TLS_CERTS:45,IPSEC_PARAMS:46,HEADER:50,STUN_SERVER:60,STUN_CRED:61,PURE:70,CACHE_MEDIA_STREAM:71,CONSTRAINT:72,VIDEO_SIZE:73,VIDEO_INPUT:74,AUDIO_INPUT:75,AUDIO_OUTPUT:76,CALL_TYPE:80,MAIN_STREAM:81,USERDATA:1000,};
var tsip_transport_state_e={NONE:-1,STARTING:0,STARTED:1,STOPPING:3,STOPPED:4};function tsip_stack(c,b,e,f,g){if(!c||!b||!e){tsk_utils_log_error("Invalid argument");
return null}var d=tsip_uri.prototype.Parse(e);if(!d){tsk_utils_log_error("'"+e+"' is not a valid IMPU Uri");
return null}if(tsk_string_index_of(c,c.length,"sip:")!=0&&tsk_string_index_of(c,c.length,"sips:")!=0){c=tsk_string_format("sip:{0}",c)
}var a=tsip_uri.prototype.Parse(c);if(!a){tsk_utils_log_error("'"+c+"' is not a valid realm");return null
}this.e_state=tsip_transport_state_e.NONE;this.identity={};this.identity.s_display_name=d.s_user_name;
this.identity.o_uri_impu=d;this.identity.o_uri_pref=null;this.identity.s_impi=b;this.identity.s_password=null;
this.network={};this.network.o_transport=null;this.network.s_transport="ws";this.network.s_local_ip=null;
this.network.i_local_port=0;this.network.s_proxy_cscf_host=f;this.network.i_proxy_cscf_port=g;this.network.e_proxy_cscf_type=tsk_utils_have_webrtc4all()?tsip_transport_type_e.UDP:tsip_transport_type_e.WS;
this.network.o_uri_realm=a;this.network.s_proxy_outbound_host=null;this.network.i_proxy_outbound_port=5060;
this.network.e_proxy_outbound_type=this.network.e_proxy_cscf_type;this.network.s_websocket_server_url=null;
this.network.ao_ice_servers=null;this.network.b_rtcweb_enabled=false;this.network.b_click2call_enabled=false;
this.network.aor={};this.network.aor.s_ip=null;this.network.aor.i_port=0;this.security={};this.security.b_earlyIMS=true;
this.security.tls={};this.security.tls.s_ca=null;this.security.tls.s_pbk=null;this.security.tls.s_pvk=null;
this.natt={};this.natt.stun={};this.natt.stun.s_ip=null;this.natt.stun.i_port=0;this.natt.stun.s_login=null;
this.natt.stun.s_pwd=null;this.media={};this.media.b_pure=false;this.media.b_cache_stream=false;this.media.o_constraint={audio:undefined,video:undefined};
this.media.s_video_input_device_id="default";this.media.s_audio_input_device_id="default";this.media.s_audio_output_device_id="default";
this.o_timers=new tsip_timers();this.ao_sessions=new Array();this.ao_headers=new Array();this.o_usr_data=null;
this.ao_uri_paths=new Array();this.ao_uri_service_routes=new Array();this.ao_uri_associated_uris=new Array();
this.s_call_type="audiovideo";this.o_main_stream=null;this.o_layer_dialog=new tsip_dialog_layer(this);
this.o_layer_transac=new tsip_transac_layer(this);this.o_layer_transport=new tsip_transport_layer(this);
this.__set(Array.prototype.slice.call(arguments,5))}tsip_stack.prototype.start=function(){if(this.e_state==tsip_transport_state_e.STARTED){tsk_utils_log_warn("Already started");
return 0}else{if(this.e_state==tsip_transport_state_e.STARTING){this.stop()}}if(!this.network.s_proxy_cscf_host){tsk_utils_log_error("'"+this.network.s_proxy_cscf_host+"' not valid as proxy host");
return -2}tsk_utils_log_info("SIP stack start: proxy='"+this.network.s_proxy_cscf_host+":"+this.network.i_proxy_cscf_port+"', realm='"+this.network.o_uri_realm+"', impi='"+this.identity.s_impi+"', impu='"+this.identity.o_uri_impu+"'");
this.network.o_transport=this.o_layer_transport.transport_new(this.network.e_proxy_cscf_type,this.network.s_proxy_cscf_host,this.network.i_proxy_cscf_port,"SIP Transport",__tsip_stack_transport_callback);
if(!this.network.o_transport){tsk_utils_log_error("Failed to create transport with type= "+this.network.e_proxy_cscf_type);
return -2}this.e_state=tsip_transport_state_e.STARTING;this.signal(tsip_event_code_e.STACK_STARTING,"Stack starting");
return this.network.o_transport.start()};tsip_stack.prototype.stop=function(b){var a=this;setTimeout(function(){switch(a.e_state){case tsip_transport_state_e.STOPPED:case tsip_transport_state_e.STOPPING:case tsip_transport_state_e.NONE:return 0;
default:break}if(typeof b=="undefined"){b=tsip_dialog.prototype.__i_timer_shutdown}var l=0;var e=false;
var f=false;var k;var d=(b<<1)/3;var j=j=new Date();for(var g=0;g<a.o_layer_dialog.ao_dialogs.length;
++g){if(a.o_layer_dialog.ao_dialogs[g].e_type==tsip_dialog_type_e.REGISTER){++l;continue}if((k=a.o_layer_dialog.ao_dialogs[g].shutdown())==0){e=true
}}var m=function(){if(e){do{if((a.o_layer_dialog.ao_dialogs.length<=l)){setTimeout(h,1);return}if((new Date()-j)>=d){setTimeout(h,1);
return}}while(false)}setTimeout(m,1)};var h=function(){if(!f){if(l>0){l=0;for(var n=0;n<a.o_layer_dialog.ao_dialogs.length;
++n){if(a.o_layer_dialog.ao_dialogs[n].e_type==tsip_dialog_type_e.REGISTER){if((k=a.o_layer_dialog.ao_dialogs[n].shutdown())==0){++l
}}}}f=true}do{if(a.o_layer_dialog.ao_dialogs.length==0||(new Date()-j)>=b){setTimeout(c,1);return}}while(false);
setTimeout(h,1)};var c=function(){a.signal(tsip_event_code_e.STACK_STOPPING,"Stack stopping");if(a.o_layer_transport){a.o_layer_transport.stop()
}};if(e){m()}else{if(l){h()}else{c()}}},1);return 0};tsip_stack.prototype.set=function(){return this.__set(arguments)
};tsip_stack.prototype.SetDisplayName=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.DISPLAY_NAME,a)
};tsip_stack.prototype.SetPassword=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PASSWORD,a)
};tsip_stack.prototype.SetProxyCSCF=function(c,b,a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PROXY_CSCF,c,b,a)
};tsip_stack.prototype.SetProxyOutBound=function(c,b,a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PROXY_OUTBOUND,c,b,a)
};tsip_stack.prototype.SetProxyOutBoundUrl=function(a){if(!a){return tsip_stack.prototype.SetProxyOutBound(null,5060,tsip_transport_type_e.UDP)
}var c=tsk_string_parse_url(a);if(!c||c.length<3){tsk_utils_log_error(a+" not valid as outbound proxy url");
return null}var b;switch(c[0]){case"udp":default:b=tsip_transport_type_e.UDP;break;case"tcp":b=tsip_transport_type_e.TCP;
break;case"tls":b=tsip_transport_type_e.TLS;break;case"dtls":b=tsip_transport_type_e.DTLS;break;case"sctp":b=tsip_transport_type_e.SCTP;
break;case"ws":b=tsip_transport_type_e.WS;break;case"wss":b=tsip_transport_type_e.WSS;break}return tsip_stack.prototype.SetProxyOutBound(c[1],c[2],b)
};tsip_stack.prototype.SetWebsocketServerUrl=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.WEBSOCKET_SERVER_URL,a)
};tsip_stack.prototype.SetIceServers=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ICE_SERVERS,a)
};tsip_stack.prototype.SetMediaPure=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PURE,a)
};tsip_stack.prototype.SetMediaStreamCacheEnabled=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.CACHE_MEDIA_STREAM,a)
};tsip_stack.prototype.SetConstraint=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.CONSTRAINT,a)
};tsip_stack.prototype.SetVideoInput=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.VIDEO_INPUT,a)
};tsip_stack.prototype.SetAudioInput=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.AUDIO_INPUT,a)
};tsip_stack.prototype.SetAudioOutput=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.AUDIO_OUTPUT,a)
};tsip_stack.prototype.SetCallType=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.CALL_TYPE,a)
};tsip_stack.prototype.SetMainStream=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.MAIN_STREAM,a)
};tsip_stack.prototype.SetRTCWebBreakerEnabled=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_RTCWEB_BREAKER,a)
};tsip_stack.prototype.SetClick2CallEnabled=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_CLICK2CALL,a)
};tsip_stack.prototype.SetSecureTransportEnabled=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_SECURE_TRANSPORT,a)
};tsip_stack.prototype.SetEarlyIMSEnabled=function(a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.EARLY_IMS,a)
};tsip_stack.prototype.SetHeader=function(b,a){return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.HEADER,b,a)
};tsip_stack.prototype.__set=function(ao_params){var o_curr;for(var i=0;i<ao_params.length;++i){o_curr=ao_params[i];
if(!o_curr){continue}switch(o_curr.e_type){case tsip_stack_param_type_e.DISPLAY_NAME:this.identity.s_display_name=o_curr.ao_values[0];
if(this.identity.o_uri_impu){this.identity.o_uri_impu.s_display_name=this.identity.s_display_name}break;
case tsip_stack_param_type_e.PASSWORD:this.identity.s_password=o_curr.ao_values[0];break;case tsip_stack_param_type_e.PROXY_CSCF:this.network.s_proxy_cscf_host=o_curr.ao_values[0];
this.network.i_proxy_cscf_port=o_curr.ao_values[1];this.network.e_proxy_cscf_type=o_curr.ao_values[2];
break;case tsip_stack_param_type_e.PROXY_OUTBOUND:this.network.s_proxy_outbound_host=o_curr.ao_values[0];
this.network.i_proxy_outbound_port=o_curr.ao_values[1];this.network.e_proxy_outbound_type=o_curr.ao_values[2];
break;case tsip_stack_param_type_e.WEBSOCKET_SERVER_URL:this.network.s_websocket_server_url=o_curr.ao_values[0];
if(this.network.s_websocket_server_url){if(this.network.s_websocket_server_url.indexOf("wss://")==0){this.network.e_proxy_cscf_type=tsip_transport_type_e.WSS
}else{if(this.network.s_websocket_server_url.indexOf("ws://")==0){this.network.e_proxy_cscf_type=tsip_transport_type_e.WS
}}}break;case tsip_stack_param_type_e.ICE_SERVERS:if(!tsk_string_is_null_or_empty(o_curr.ao_values[0])){try{if(o_curr.ao_values[0] instanceof String||typeof o_curr.ao_values[0]=="string"){eval("this.network.ao_ice_servers = "+o_curr.ao_values[0]+";")
}else{if(o_curr.ao_values[0] instanceof Array||typeof o_curr.ao_values[0]=="array"){this.network.ao_ice_servers=o_curr.ao_values[0]
}else{tsk_utils_log_warn(o_curr.ao_values[0]+" not valid as ICE servers")}}}catch(e){tsk_utils_log_error("Failed to set ICE servers:"+e)
}}break;case tsip_stack_param_type_e.ENABLE_RTCWEB_BREAKER:this.network.b_rtcweb_enabled=!!o_curr.ao_values[0];
break;case tsip_stack_param_type_e.ENABLE_CLICK2CALL:this.network.b_click2call_enabled=!!o_curr.ao_values[0];
break;case tsip_stack_param_type_e.ENABLE_SECURE_TRANSPORT:if(o_curr.ao_values[0]&&this.network.e_proxy_cscf_type==tsip_transport_type_e.WS){this.network.e_proxy_cscf_type=tsip_transport_type_e.WSS
}break;case tsip_stack_param_type_e.EARLY_IMS:this.security.b_earlyIMS=!!o_curr.ao_values[0];break;case tsip_stack_param_type_e.PURE:this.media.b_pure=!!o_curr.ao_values[0];
break;case tsip_stack_param_type_e.CACHE_MEDIA_STREAM:this.media.b_cache_stream=!!o_curr.ao_values[0];
break;case tsip_stack_param_type_e.CONSTRAINT:this.media.o_constraint=o_curr.ao_values[0];break;case tsip_stack_param_type_e.VIDEO_INPUT:this.media.s_video_input_device_id=o_curr.ao_values[0];
break;case tsip_stack_param_type_e.AUDIO_INPUT:this.media.s_audio_input_device_id=o_curr.ao_values[0];
break;case tsip_stack_param_type_e.AUDIO_OUTPUT:this.media.s_audio_output_device_id=o_curr.ao_values[0];
break;case tsip_stack_param_type_e.CALL_TYPE:this.s_call_type=o_curr.ao_values[0];break;case tsip_stack_param_type_e.MAIN_STREAM:this.o_main_stream=o_curr.ao_values[0];
break;case tsip_stack_param_type_e.HEADER:if(o_curr.ao_values[1]){this.ao_headers.push(new tsip_header_Dummy(o_curr.ao_values[0],o_curr.ao_values[1]))
}else{var i_index=tsip_header.prototype.IndexOfByName(this.ao_headers,o_curr.ao_values[0]);if(i_index!=-1){this.ao_headers.splice(i_index,1)
}}break}}return 0};tsip_stack.prototype.__get_contact_uri=function(c){for(var b=0;b<this.o_layer_transport.ao_transports.length;
++b){var a=this.o_layer_transport.ao_transports[b].get_uri(false);if(a){a.s_user_name=this.identity.o_uri_impu.s_user_name;
return a}}return null};tsip_stack.prototype.__get_proxy_outbound_uri_string=function(){if(this.network.s_proxy_outbound_host){var a;
switch(this.network.e_proxy_outbound_type){case tsip_transport_type_e.TCP:a="tcp";break;case tsip_transport_type_e.TLS:a="tls";
break;case tsip_transport_type_e.SCTP:a="sctp";break;case tsip_transport_type_e.DTLS:a="dtls";break;case tsip_transport_type_e.WS:a="ws";
break;case tsip_transport_type_e.WSS:a="wss";break;case tsip_transport_type_e.UDP:default:a="udp";break
}return tsk_string_format("<sip:{0}:{1};lr;SIPml-outbound;transport={2}>",this.network.s_proxy_outbound_host,this.network.i_proxy_outbound_port,a)
}return null};tsip_stack.prototype.SetAny=function(a){var b=new Object();b.e_type=a;b.ao_values=Array.prototype.slice.call(arguments,1);
return b};tsip_stack.prototype.signal=function(a,c){if(this.on_event_stack){var b=this.on_event_stack;
var d=new tsip_event(null,a,c,null,tsip_event_type_e.STACK);d.o_stack=this;setTimeout(function(){b(d)
},1)}return 0};function __tsip_stack_transport_callback(b){var a=b.o_transport.o_stack;var c=b.s_description;
switch(b.e_type){case tsip_transport_event_type_e.STARTED:a.e_state=tsip_transport_state_e.STARTED;a.signal(tsip_event_code_e.STACK_STARTED,"Stack started");
break;case tsip_transport_event_type_e.STOPPED:if(a.e_state==tsip_transport_state_e.STARTING){a.signal(tsip_event_code_e.STACK_FAILED_TO_START,c)
}else{a.signal(tsip_event_code_e.STACK_STOPPED,c)}a.e_state=tsip_transport_state_e.STOPPED;a.o_layer_transport.transport_remove(b.o_transport);
break;case tsip_transport_event_type_e.RECONNECTING:a.signal(tsip_event_code_e.STACK_RESTARTING,c);break;
case tsip_transport_event_type_e.RECONNECTED:a.e_state=tsip_transport_state_e.STARTED;a.signal(tsip_event_code_e.STACK_RESTARTED,c);
break;case tsip_transport_event_type_e.ERROR:break;default:break}return 0}tsip_timers.prototype.TIMER_T1=500;
tsip_timers.prototype.TIMER_T4=5000;var tsip_timers_e={T1:tsip_timers.prototype.TIMER_T1,T2:4000,T4:tsip_timers.prototype.TIMER_T4,A:tsip_timers.prototype.TIMER_T1,B:64*tsip_timers.prototype.TIMER_T1,C:5*60000,D:50000,E:tsip_timers.prototype.TIMER_T1,F:64*tsip_timers.prototype.TIMER_T1,G:tsip_timers.prototype.TIMER_T1,H:64*tsip_timers.prototype.TIMER_T1,I:tsip_timers.prototype.TIMER_T4,J:64*tsip_timers.prototype.TIMER_T1,K:tsip_timers.prototype.TIMER_T4,L:64*tsip_timers.prototype.TIMER_T1,M:64*tsip_timers.prototype.TIMER_T1};
function tsip_timers(){this.T1=tsip_timers_e.T1;this.T2=tsip_timers_e.T2;this.T4=tsip_timers_e.T4;this.A=tsip_timers_e.A;
this.B=tsip_timers_e.B;this.C=tsip_timers_e.C;this.D=tsip_timers_e.D;this.E=tsip_timers_e.E;this.F=tsip_timers_e.F;
this.G=tsip_timers_e.G;this.H=tsip_timers_e.H;this.I=tsip_timers_e.I;this.J=tsip_timers_e.J;this.K=tsip_timers_e.K;
this.L=tsip_timers_e.L;this.M=tsip_timers_e.M}tsip_timers.prototype.getA=function(){return this.A};tsip_timers.prototype.getB=function(){return this.B
};tsip_timers.prototype.getC=function(){return this.C};tsip_timers.prototype.getD=function(){return this.D
};tsip_timers.prototype.getE=function(){return this.E};tsip_timers.prototype.getF=function(){return this.F
};tsip_timers.prototype.getG=function(){return this.G};tsip_timers.prototype.getH=function(){return this.H
};tsip_timers.prototype.getI=function(){return this.I};tsip_timers.prototype.getJ=function(){return this.J
};tsip_timers.prototype.getK=function(){return this.K};tsip_timers.prototype.getL=function(){return this.L
};tsip_timers.prototype.getM=function(){return this.M};tsip_timers.prototype.getT1=function(){return this.T1
};tsip_timers.prototype.getT2=function(){return this.T2};tsip_timers.prototype.getT4=function(){return this.T4
};tsip_timers.prototype.setT1=function(a){this.T1=a;this.A=this.E=this.G=this.T1;this.B=this.F=this.H=this.J=(this.T1*64)
};tsip_timers.prototype.setT2=function(a){this.T2=a};tsip_timers.prototype.setT4=function(a){this.T4=a;
this.I=this.K=this.T4};tsip_timers.prototype.setA=function(a){this.A=a};tsip_timers.prototype.setB=function(a){if(this){this.B=a
}};tsip_timers.prototype.setC=function(a){this.C=a};tsip_timers.prototype.setD=function(a){this.D=a};
tsip_timers.prototype.setE=function(a){this.E=a};tsip_timers.prototype.setF=function(a){this.F=a};tsip_timers.prototype.setG=function(a){this.G=a
};function tsip_timers_setH(a){this.H=a}tsip_timers.prototype.setI=function(a){this.I=a};tsip_timers.prototype.setJ=function(a){this.J=a
};tsip_timers.prototype.setK=function(a){this.K=a};tsip_timers.prototype.setL=function(a){this.L=a};tsip_timers.prototype.setM=function(a){this.M=a
};var tsip_uri_type_e={unknown:{i_id:0,s_scheme:"unknown"},sip:{i_id:1,s_scheme:"sip"},sips:{i_id:2,s_scheme:"sips"},tel:{i_id:3,s_scheme:"tel"}};
var tsip_host_type_e={unknown:{i_id:0,s_name:"unknown"},hostname:{i_id:1,s_name:"hostname"},ipv4:{i_id:2,s_name:"ipv4"},ipv6:{i_id:3,s_name:"ipv6"}};
function tsip_uri(a){this.e_type=a;this.s_scheme=null;this.s_host=null;this.e_host_type=tsip_host_type_e.unknown;
this.i_port=0;this.s_user_name=null;this.s_password=null;this.s_display_name=null;this.ao_params=new Array();
this.toString=function(){return tsip_uri_tostring(this,true,true)}}tsip_uri.prototype.tostring=function(a,b){return tsip_uri_tostring(this,a,b)
};tsip_uri.prototype.compare=function(a){var b=tsip_uri_compare(this,a)};tsip_uri.prototype.clone=function(b,c){var a=tsip_uri_tostring(this,b,c);
if(a){return tsip_uri.prototype.Parse(a)}return null};function tsip_uri_make_valid(b,a){if(!b||!a){tsk_utils_log_error("Invalid argument");
return null}if(tsk_string_index_of(b,b.length,'"')==0||tsk_string_index_of(b,b.length,"<")==0){return tsip_uri.prototype.Parse(b)
}var c=(tsk_string_index_of(b,b.length,"tel:")==0);if(tsk_string_index_of(b,b.length,"sip:")!=0&&tsk_string_index_of(b,b.length,"sips:")!=0&&!c){b="sip:"+b
}if(!c&&tsk_string_index_of(b,b.length,"@")==-1){b+="@"+a}return tsip_uri.prototype.Parse(b)}function __tsip_uri_tostring(a,c){var b=tsk_string_format("{0}:{1}{2}{3}{4}{5}{6}{7}{8}{9}",a.s_scheme?a.s_scheme:"sip",a.s_user_name?a.s_user_name:"",a.s_password?":":"",a.s_password?a.s_password:"",a.s_host?(a.s_user_name?"@":""):"",a.e_host_type==tsip_host_type_e.ipv6?"[":"",a.s_host?a.s_host:"",a.e_host_type==tsip_host_type_e.ipv6?"]":"",a.i_port>0?":":"",a.i_port>0?a.i_port:"");
if(b&&c&&a.ao_params.length>0){b+=tsk_string_format(";{0}",tsk_params_tostring(a.ao_params,";"))}return b
}function tsip_uri_tostring(a,c,d){if(a){if(d){var b="";if(a.s_display_name){b+=tsk_string_format('"{0}"',a.s_display_name)
}b+=tsk_string_format("<{0}>",__tsip_uri_tostring(a,c));return b}else{return __tsip_uri_tostring(a,c)
}}else{tsk_utils_log_error("Invalid argument");return null}}function tsip_uri_strcmp(c,a,d){if(c&&a){var b=false;
var e=false;if(tsk_string_contains(c,c.length,"%")){b=true;c=decodeURIComponent(c)}if(tsk_string_contains(a,a.length,"%")){e=true;
a=decodeURIComponent(a)}return d?c.localeCompare(a):c.toLowerCase().localeCompare(a.toLowerCase())}return -1
}function tsip_uri_strequals(b,a){return(tsip_uri_strcmp(b,a,true)==0)}function tsip_uri_striequals(b,a){return(tsip_uri_strcmp(b,a,false)==0)
}function tsip_uri_compare_parameter(c,a,b){var e=tsk_param_get_by_name(c.ao_params,b);var d=tsk_param_get_by_name(a.ao_params,b);
if((e||d)&&((e&&!d)||(!e&&d)||(!tsip_uri_striequals(e.s_value,d.s_value)))){return -3}return 0}function tsip_uri_compare(c,a){if(c&&a){var f;
var e;var d;if(!tsk_string_equals(c.s_scheme,a.s_scheme)||!tsip_uri_strequals(c.s_user_name,a.s_user_name)||!tsip_uri_strequals(c.s_host,a.s_host)||!tsk_string_equals(c.s_password,a.s_password)||c.i_port!=a.i_port){return -2
}if((!c.ao_params&&!a.ao_params)||(c.ao_params.length==0&&a.ao_params.length==0)){return 0}if((d=tsip_uri_compare_parameter(c,a,"transport"))!=0){return d
}if((d=tsip_uri_compare_parameter(c,a,"ttl"))!=0){return d}if((d=tsip_uri_compare_parameter(c,a,"user"))!=0){return d
}if((d=tsip_uri_compare_parameter(c,a,"method"))!=0){return d}if((d=tsip_uri_compare_parameter(c,a,"maddr"))!=0){return d
}for(var b=0;b<c.ao_params.length;++b){f=c.ao_params[b];if((e=tsk_param_get_by_name(a.ao_params,f.s_name))){if(!tsip_uri_striequals(f.s_value,e.s_value)){return -4
}}}for(var b=0;b<a.ao_params.length;++b){e=a.ao_params[b];if((f=tsk_param_get_by_name(c.ao_params,e.s_name))){if(!tsip_uri_striequals(f.s_value,e.s_value)){return -4
}}}return 0}else{return(!c&&!a)?0:-1}}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/parsers/tsip_parser_uri.js")
}_tsip_machine_parser_uri_actions=[0,1,0,1,5,1,7,1,9,1,11,1,12,1,13,1,14,1,17,1,18,1,20,1,21,1,22,1,23,2,1,15,2,2,15,2,4,6,2,7,10,2,7,16,2,8,10,2,9,16,2,9,19,2,13,0,2,13,6,3,0,8,10,3,13,0,6,3,13,3,0];
_tsip_machine_parser_uri_key_offsets=[0,0,7,15,22,28,34,40,53,66,72,78,80,93,99,105,118,124,130,143,156,162,168,182,196,202,208,229,231,247,262,278,292,300,306,320,336,350,366,380,388,396,404,420,436,452,468,484,500,506,508,525,540,554,568,582,592,602,613,613,622,622,632,642,651,654,669,683,698,714,730,746,750,765,782,788,795,801,808,814,821,828,831,838,841,848,851,868,885,901,917,933,949,953,967,984,1001,1018,1024,1031,1038,1041,1044];
_tsip_machine_parser_uri_trans_keys=[45,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,48,57,65,90,97,122,48,57,65,90,97,122,48,57,65,70,97,102,48,57,65,70,97,102,33,37,93,95,126,36,43,45,58,65,91,97,122,33,37,93,95,126,36,43,45,58,65,91,97,122,48,57,65,70,97,102,48,57,65,70,97,102,0,65535,33,37,93,95,126,36,43,45,58,65,91,97,122,48,57,65,70,97,102,48,57,65,70,97,102,33,37,93,95,126,36,43,45,58,65,91,97,122,48,57,65,70,97,102,48,57,65,70,97,102,33,37,59,61,63,95,126,36,57,65,90,97,122,33,37,58,61,64,95,126,36,59,63,90,97,122,48,57,65,70,97,102,48,57,65,70,97,102,33,37,61,64,95,126,36,46,48,57,65,90,97,122,33,37,61,64,95,126,36,46,48,57,65,90,97,122,48,57,65,70,97,102,48,57,65,70,97,102,58,59,83,84,91,115,116,0,47,48,57,60,64,65,90,92,96,97,122,123,65535,0,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,48,57,65,90,97,122,48,57,65,90,97,122,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,45,46,0,47,48,57,58,64,65,90,91,96,97,122,123,65535,0,47,48,57,58,65535,48,57,33,37,44,92,94,96,126,0,35,36,58,59,64,65,122,123,65535,33,37,59,61,93,95,126,36,43,45,58,65,91,97,122,33,37,59,93,95,126,36,43,45,58,65,91,97,122,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,45,46,73,105,48,57,65,90,97,122,45,46,80,112,48,57,65,90,97,122,45,46,58,83,115,48,57,65,90,97,122,45,46,58,48,57,65,90,97,122,45,46,69,101,48,57,65,90,97,122,45,46,76,108,48,57,65,90,97,122,45,46,58,48,57,65,90,97,122,59,0,65535,33,37,59,61,93,95,126,36,43,45,58,65,91,97,122,33,37,59,93,95,126,36,43,45,58,65,91,97,122,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,65535,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,0,47,48,57,58,65535,46,0,47,48,57,58,65535,0,47,48,57,58,65535,46,0,47,48,57,58,65535,0,47,48,57,58,65535,93,0,47,48,57,58,65535,93,0,47,48,57,58,65535,93,0,65535,46,0,47,48,57,58,65535,46,0,65535,46,0,47,48,57,58,65535,46,0,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,58,93,0,65535,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,0,47,48,57,58,65535,46,0,47,48,57,58,65535,46,0,47,48,57,58,65535,46,0,65535,58,0,65535,0];
_tsip_machine_parser_uri_single_lengths=[0,1,2,1,0,0,0,5,5,0,0,0,5,0,0,5,0,0,7,7,0,0,6,6,0,0,7,0,2,1,2,0,2,0,0,2,0,2,0,2,2,2,2,2,2,2,2,2,0,0,7,7,6,0,0,4,4,5,0,3,0,4,4,3,1,7,6,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,0];
_tsip_machine_parser_uri_range_lengths=[0,3,3,3,3,3,3,4,4,3,3,1,4,3,3,4,3,3,3,3,3,3,4,4,3,3,7,1,7,7,7,7,3,3,7,7,7,7,7,3,3,3,7,7,7,7,7,7,3,1,5,4,4,7,7,3,3,3,0,3,0,3,3,3,1,4,4,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,0];
_tsip_machine_parser_uri_index_offsets=[0,0,5,11,16,20,24,28,38,48,52,56,58,68,72,76,86,90,94,105,116,120,124,135,146,150,154,169,171,181,190,200,208,214,218,226,236,244,254,262,268,274,280,290,300,310,320,330,340,344,346,359,371,382,390,398,406,414,423,424,431,432,440,448,455,458,470,481,490,500,510,520,524,533,544,548,553,557,562,566,571,576,579,584,587,592,595,606,617,627,637,647,657,661,669,680,691,702,706,711,716,719,722];
_tsip_machine_parser_uri_indicies=[1,2,2,2,0,3,4,5,5,5,0,3,5,5,5,0,5,2,2,0,7,7,7,6,8,8,8,6,9,10,9,9,9,9,9,9,9,6,11,12,11,11,11,11,11,11,11,6,13,13,13,6,11,11,11,6,14,0,16,17,16,16,16,16,16,16,16,15,18,18,18,15,19,19,19,15,20,21,20,20,20,20,20,20,20,15,22,22,22,15,20,20,20,15,23,25,23,23,23,23,23,23,23,23,24,26,27,28,26,29,26,26,26,26,26,24,30,30,30,24,26,26,26,24,31,32,31,33,31,31,31,31,31,31,24,34,35,34,36,34,34,34,34,34,34,24,37,37,37,24,34,34,34,24,40,41,43,44,45,43,44,38,39,38,42,38,42,38,24,38,46,47,48,38,49,38,50,38,50,38,46,47,38,50,38,50,38,50,38,46,47,51,38,50,38,50,38,50,38,46,38,50,38,2,38,2,38,46,1,53,2,2,2,52,5,2,2,52,38,54,38,2,38,2,38,46,47,55,38,56,38,50,38,50,38,46,38,57,38,2,38,2,38,46,47,58,38,59,38,50,38,50,38,46,38,60,38,2,38,2,38,46,3,4,61,5,5,52,3,4,62,5,5,52,3,4,5,5,5,52,47,58,38,63,38,50,38,50,38,46,47,58,38,50,38,50,38,50,38,46,47,55,38,64,38,50,38,50,38,46,47,55,38,50,38,50,38,50,38,46,47,48,38,65,38,50,38,50,38,46,47,48,38,50,38,50,38,50,38,46,38,66,38,46,66,67,9,68,38,38,38,38,9,38,9,38,9,38,46,8,70,71,72,8,8,8,8,8,8,8,69,11,12,71,11,11,11,11,11,11,11,69,38,73,38,73,38,73,38,46,38,8,38,8,38,8,38,46,1,53,74,74,2,2,2,52,1,53,75,75,2,2,2,52,1,53,76,77,77,2,2,2,52,78,1,53,79,2,2,2,52,80,1,53,81,81,2,2,2,52,1,53,82,82,2,2,2,52,1,53,83,2,2,2,52,86,85,84,19,88,89,90,19,19,19,19,19,19,19,87,20,21,89,20,20,20,20,20,20,20,87,92,38,91,38,91,38,91,38,46,94,95,38,93,38,93,38,93,38,46,94,95,38,96,38,96,38,96,38,46,94,95,38,97,38,97,38,97,38,46,94,95,38,46,99,38,98,38,91,38,91,38,46,100,94,95,38,101,38,93,38,93,38,46,38,102,38,46,103,38,104,38,46,38,105,38,46,106,38,107,38,46,38,108,38,46,95,38,109,38,46,95,38,110,38,46,95,38,46,106,38,111,38,46,106,38,46,103,38,112,38,46,103,38,46,100,94,95,38,113,38,96,38,96,38,46,100,94,95,38,97,38,97,38,97,38,46,115,95,38,114,38,114,38,114,38,46,117,95,38,116,38,116,38,116,38,46,117,95,38,118,38,118,38,118,38,46,117,95,38,119,38,119,38,119,38,46,117,95,38,46,38,120,38,114,38,114,38,46,100,117,95,38,121,38,116,38,116,38,46,100,117,95,38,122,38,118,38,118,38,46,100,117,95,38,119,38,119,38,119,38,46,38,123,38,46,100,38,124,38,46,100,38,125,38,46,100,38,46,99,38,46,24,0];
_tsip_machine_parser_uri_trans_targs=[26,1,32,3,4,2,26,6,51,51,5,52,9,10,64,26,65,13,14,65,66,16,17,19,0,20,19,20,22,102,21,23,24,102,23,24,102,25,27,28,48,50,32,55,61,67,26,29,34,46,30,31,26,33,35,36,44,37,38,42,39,40,41,43,45,47,49,26,53,26,5,7,8,54,56,57,58,59,26,60,26,62,63,11,26,64,12,26,13,12,15,68,101,69,72,26,70,71,73,88,74,86,75,76,84,77,78,82,79,80,81,83,85,87,89,97,90,93,91,92,94,95,96,98,99,100];
_tsip_machine_parser_uri_trans_actions=[25,0,13,0,0,0,27,0,13,53,1,13,0,0,67,23,53,1,0,13,13,0,0,1,0,1,0,0,5,38,0,1,1,59,0,0,44,0,0,35,0,0,56,63,56,3,21,0,0,0,0,0,17,13,0,0,0,0,0,0,13,13,13,0,0,0,0,19,1,50,0,7,0,0,13,13,0,13,29,0,32,13,13,0,41,13,5,47,0,7,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_uri_to_state_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_uri_from_state_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_uri_eof_trans=[0,1,1,1,1,7,7,7,7,7,7,1,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,47,47,47,47,47,53,53,47,47,47,47,47,53,53,53,47,47,47,47,47,47,47,68,47,70,70,47,47,53,53,53,79,53,81,53,53,53,85,88,88,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,0];
tsip_machine_parser_uri_start=26;tsip_machine_parser_uri_first_final=26;tsip_machine_parser_uri_error=0;
tsip_machine_parser_uri_en_sip_usrinfo=18;tsip_machine_parser_uri_en_main=26;tsip_uri.prototype.Parse=function(n){var e=0;
var k=0;var w=n.length;var h=w;var x=tsk_buff_str2ib(n);var v;var f=new tsip_uri(tsip_uri_type_e.unknown);
e=tsip_machine_parser_uri_start;ts=null;te=null;act=0;var g,o,b,d,c,s,l;var q,j,a,r,u;var t;g=o=b=s=l=null;
q=0;j=10;a=15;r=20;u=30;t=40;while(true){_trigger_goto=false;if(q<=0){if(k==w){q=u;continue}if(e==0){q=t;
continue}}if(q<=j){s=_tsip_machine_parser_uri_from_state_actions[e];l=_tsip_machine_parser_uri_actions[s];
s+=1;while(l>0){l-=1;s+=1;switch(_tsip_machine_parser_uri_actions[s-1]){case 12:ts=k;break}}if(_trigger_goto){continue
}b=_tsip_machine_parser_uri_key_offsets[e];o=_tsip_machine_parser_uri_index_offsets[e];g=_tsip_machine_parser_uri_single_lengths[e];
_break_match=false;do{if(g>0){_lower=b;_upper=b+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(x[k]<_tsip_machine_parser_uri_trans_keys[_mid]){_upper=_mid-1}else{if(x[k]>_tsip_machine_parser_uri_trans_keys[_mid]){_lower=_mid+1
}else{o+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=g;o+=g}g=_tsip_machine_parser_uri_range_lengths[e];
if(g>0){_lower=b;_upper=b+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(x[k]<_tsip_machine_parser_uri_trans_keys[_mid]){_upper=_mid-2}else{if(x[k]>_tsip_machine_parser_uri_trans_keys[_mid+1]){_lower=_mid+2
}else{o+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}o+=g}}while(false);o=_tsip_machine_parser_uri_indicies[o]
}if(q<=a){e=_tsip_machine_parser_uri_trans_targs[o];if(_tsip_machine_parser_uri_trans_actions[o]!=0){s=_tsip_machine_parser_uri_trans_actions[o];
l=_tsip_machine_parser_uri_actions[s];s+=1;while(l>0){l-=1;s+=1;switch(_tsip_machine_parser_uri_actions[s-1]){case 0:v=k;
break;case 1:f.e_type=tsip_uri_type_e.sip;f.s_scheme=f.e_type.s_scheme;break;case 2:f.e_type=tsip_uri_type_e.sips;
f.s_scheme=f.e_type.s_scheme;break;case 3:f.e_type=tsip_uri_type_e.tel;f.s_scheme=f.e_type.s_scheme;break;
case 4:f.e_host_type=tsip_host_type_e.ipv4;break;case 5:f.e_host_type=tsip_host_type_e.ipv6;break;case 6:f.e_host_type=tsip_host_type_e.hostname;
break;case 7:f.s_user_name=tsk_ragel_parser_get_string(n,k,v);break;case 8:f.s_password=tsk_ragel_parser_get_string(n,k,v);
break;case 9:var m=tsk_ragel_parser_get_param(n,k,v);if(m){f.ao_params.push(m)}break;case 10:e=26;_trigger_goto=true;
q=r;break;break;case 13:te=k+1;break;case 14:te=k+1;f.s_host=tsk_ragel_scanner_get_string(n,ts,te);if(f.e_host_type.i_id==tsip_host_type_e.ipv6.i_id){f.s_host=tsk_string_unquote(f.s_host,"[","]")
}break;case 15:te=k;k=k-1;if(tsk_string_contains(n.substring(te),(w-te),"@")){e=18;_trigger_goto=true;
q=r;break}break;case 16:te=k;k=k-1;break;case 17:te=k;k=k-1;f.s_host=tsk_ragel_scanner_get_string(n,ts,te);
if(f.e_host_type.i_id==tsip_host_type_e.ipv6.i_id){f.s_host=tsk_string_unquote(f.s_host,"[","]")}break;
case 18:te=k;k=k-1;ts++;f.i_port=tsk_ragel_scanner_get_int(n,ts,te);break;case 19:te=k;k=k-1;break;case 20:te=k;
k=k-1;break;case 21:k=((te))-1;break;case 22:k=((te))-1;f.s_host=tsk_ragel_scanner_get_string(n,ts,te);
if(f.e_host_type.i_id==tsip_host_type_e.ipv6.i_id){f.s_host=tsk_string_unquote(f.s_host,"[","]")}break;
case 23:k=((te))-1;break}}}if(_trigger_goto){continue}}if(q<=r){s=_tsip_machine_parser_uri_to_state_actions[e];
l=_tsip_machine_parser_uri_actions[s];s+=1;while(l>0){l-=1;s+=1;switch(_tsip_machine_parser_uri_actions[s-1]){case 11:ts=null;
break}}if(_trigger_goto){continue}if(e==0){q=t;continue}k+=1;if(k!=w){q=j;continue}}if(q<=u){if(k==h){if(_tsip_machine_parser_uri_eof_trans[e]>0){o=_tsip_machine_parser_uri_eof_trans[e]-1;
q=a;continue}}}if(q<=t){break}}if(e<26){tsk_utils_log_error("Failed to parse SIP/SIPS/TEL URI: "+n);return null
}return f};function tsip_auth_basic_response(b,a){return Base64.encode(tsk_string_format("{0}:{1}",b,a))
}function tsip_auth_digest_HA1(c,b,a){return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}",c,b,a))}function tsip_auth_digest_HA1sess(e,c,b,d,a){return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}:{3}:{4}",e,c,b,d,a))
}function tsip_auth_digest_HA2(e,b,c,f){var a=null;if(tsk_string_is_null_or_empty(f)||tsk_string_iequals(f,"auth")){a=tsk_string_format("{0}:{1}",e,b)
}else{if(tsk_string_iequals(f,"auth-int")){if(c){var d=MD5.hash(c);a=tsk_string_format("{0}:{1}:{2}",e,b,d)
}else{a=tsk_string_format("{0}:{1}:{2}",e,b,"d41d8cd98f00b204e9800998ecf8427e")}}}return MD5.hexdigest(a)
}function tsip_auth_digest_response(c,e,d,b,f,a){if(tsk_string_iequals(f,"auth")||tsk_string_iequals(f,"auth-int")){return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}:{3}:{4}:{5}",c,e,d,b,f,a))
}else{return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}",c,e,a))}}function tsip_challenge(c,h,g,b,e,d,a,f){this.o_stack=c;
this.b_isproxy=h;this.s_scheme=g;this.s_realm=b;this.s_nonce=e;this.s_opaque=d;this.s_algorithm=a;this.s_cnonce=null;
this.i_nc=0;if(f){this.s_qop=tsk_string_contains(f,f.length,"auth-int")?"auth-int":(tsk_string_contains(f,f.length,"auth")?"auth":null);
this.reset_cnonce()}}tsip_challenge.prototype.get_username=function(){return this.o_stack.identity.s_impi
};tsip_challenge.prototype.get_password=function(){return this.o_stack.identity.s_password};tsip_challenge.prototype.reset_cnonce=function(){if(this.s_qop){this.s_cnonce=MD5.hexdigest(tsk_string_random(21));
this.i_nc=1}};tsip_challenge.prototype.get_response=function(g,c,e){if(tsk_string_iequals(this.s_scheme,"Digest")){var b="";
var d=tsip_auth_digest_HA1(this.get_username(),this.s_realm,this.get_password());var a=tsip_auth_digest_HA2(g,c,e,this.s_qop);
if(this.i_nc){b=tsip_challenge.prototype.Ncount2String(this.i_nc)}var f=tsip_auth_digest_response(d,this.s_nonce,b,this.s_cnonce,this.s_qop,a);
if(this.s_qop){++this.i_nc}return f}return null};tsip_challenge.prototype.update=function(g,c,e,d,b,f){var a=!tsk_string_iequals(this.s_nonce,e);
this.s_scheme=g;this.s_realm=c;this.s_nonce=e;this.s_opaque=d;this.s_algorithm=b;if(f){this.s_qop=tsk_string_contains(f,f.length,"auth-int")?"auth-int":(tsk_string_contains(f,f.length,"auth")?"auth":null)
}if(a&&this.s_qop){this.reset_cnonce()}return 0};tsip_challenge.prototype.create_header_authorization=function(d){var b=null;
var a=null;var c=null;if(!(a=tsip_uri_tostring(d.line.request.o_uri,true,false))){tsk_utils_log_error("Failed to parse URI: "+d.line.request.o_uri);
return null}if(this.i_nc){b=tsip_challenge.prototype.Ncount2String(this.i_nc)}var e=this.get_response(d.line.request.s_method,a,d.o_content);
c=new tsip_header_Authorization();c.e_type=this.b_isproxy?tsip_header_type_e.Proxy_Authorization:tsip_header_type_e.Authorization;
c.s_scheme=this.s_scheme;c.s_username=this.get_username();c.s_realm=this.s_realm;c.s_nonce=this.s_nonce;
c.s_uri=a;c.s_response=e;c.s_algorithm=this.s_algorithm?this.s_algorithm:"MD5";c.s_cnonce=this.i_nc?this.s_cnonce:null;
c.s_opaque=this.s_opaque;c.s_qop=this.s_qop;c.s_nc=b;return c};tsip_challenge.prototype.CreateEmptyHeaderAuthorization=function(d,b,a){var c=new tsip_header_Authorization();
if(c){c.e_type=tsip_header_type_e.Authorization;c.s_scheme="Digest";c.s_username=d;c.s_realm=b;c.s_nonce="";
c.s_response="";c.s_uri=a}return c};tsip_challenge.prototype.Ncount2String=function(c){var b=7;var a="";
do{a+="0123456789abcdef"[(c>>b*4)&15]}while(b--);return a};tsip_dialog.prototype.__i_timer_shutdown=3000;
var tsip_dialog_type_e={UNKNOWN:{i_id:0,s_name:"Unknown"},INVITE:{i_id:1,s_name:"INVITE"},MESSAGE:{i_id:2,s_name:"MESSAGE"},INFO:{i_id:3,s_name:"INFO"},OPTIONS:{i_id:4,s_name:"OPTIONS"},PUBLISH:{i_id:5,s_name:"PUBLISH"},REGISTER:{i_id:6,s_name:"REGISTER"},SUBSCRIBE:{i_id:7,s_name:"SUBSCRIBE"}};
var tsip_dialog_state_e={INITIAL:{i_id:0,s_name:"Initial"},EARLY:{i_id:1,s_name:"Early"},ESTABLISHED:{i_id:2,s_name:"Established"},ACCEPT:{i_id:3,s_name:"Accept"},TERMINATED:{i_id:4,s_name:"Terminated"}};
var tsip_dialog_event_type_e={I_MSG:{i_id:0,s_name:"I_MSG"},O_MSG:{i_id:1,s_name:"O_MSG"},TRANSAC_OK:{i_id:2,s_name:"TRANSAC_OK"},CANCELED:{i_id:3,s_name:"CANCELED"},TERMINATED:{i_id:4,s_name:"TERMINATED"},TIMEDOUT:{i_id:5,s_name:"TIMEDOUT"},ERROR:{i_id:6,s_name:"ERROR"},TRANSPORT_ERROR:{i_id:7,s_name:"TRANSPORT_ERROR"}};
function tsip_dialog(){this.e_type=tsip_dialog_type_e.UNKNOWN;this.o_fsm=null;this.o_session=null;this.o_action_curr=null;
this.e_state=tsip_dialog_state_e.INITIAL;this.b_initialized=false;this.b_running=false;this.last_error={};
this.last_error.s_phrase=null;this.last_error.i_code=0;this.last_error.o_message=null;this.s_tag_local=null;
this.o_uri_local=null;this.s_tag_remote=null;this.o_uri_remote=null;this.o_uri_remote_target=null;this.i_cseq_value=0;
this.s_cseq_method=null;this.i_expires=0;this.s_callid=null;this.ao_hdr_record_routes=null;this.ao_challenges=null;
this.fn_callback=null}tsip_dialog.prototype.init=function(b,e,d,c,a){if(this.b_initialized){tsk_utils_log_error("Dialog already initialized");
return -2}this.e_state=tsip_dialog_state_e.INITIAL;this.e_type=b;this.ao_hdr_record_routes=new Array();
this.ao_challenges=new Array();this.i_expires=tsip_session.prototype.__i_expires_default;var f=!tsk_string_is_null_or_empty(e);
this.s_callid=f?e:tsk_string_random_uuid();if((this.o_session=d)){this.i_expires=d.i_expires;this.o_uri_local=f?d.o_uri_to:d.o_uri_from;
if(d.o_uri_to){this.o_uri_remote=d.o_uri_to;this.o_uri_remote_target=d.o_uri_to}else{this.o_uri_remote=d.o_uri_from;
this.o_uri_remote_target=d.o_stack.network.o_uri_realm}}this.s_tag_local=tsk_string_random(20);this.s_tag_remote=null;
this.i_cseq_value=Math.floor((Math.random()*65535));this.o_fsm=new tsk_fsm(c,a,null,this);this.b_initialized=true;
return 0};tsip_dialog.prototype.deinit=function(){this.get_layer_dialog().dialog_remove(this);this.get_layer_transac().cancel_by_dialog(this);
this.b_initialized=false;return 0};tsip_dialog.prototype.compare=function(a){return tsip_dialog_compare(this,a)
};tsip_dialog.prototype.request_new=function(g){if(!this.o_session||!this.o_session.o_stack||!g){tsk_utils_log_error("Invalid argument");
return null}var x=null;var d=null;var e=null;var p=null;var n=-1;var c=null;var u=this.o_session;var q=u.o_stack;
c=this.s_callid;d=this.o_uri_remote;e=this.o_uri_local;if(!this.ao_hdr_record_routes||this.ao_hdr_record_routes.length==0){p=this.o_uri_remote_target
}else{o_uri_first_route=this.ao_hdr_record_routes[0].o_uri;if(tsk_params_have_param(o_uri_first_route.ao_params,"lr")){p=this.o_uri_remote_target;
n=0}else{p=o_uri_first_route;n=1}}x=new tsip_request(g,p,e,d,c,this.i_cseq_value);x.o_hdr_To.s_tag=this.s_tag_remote;
x.o_hdr_From.s_tag=this.s_tag_local;x.b_update=true;switch(x.line.request.e_type){case tsip_request_type_e.MESSAGE:case tsip_request_type_e.PUBLISH:case tsip_request_type_e.BYE:if(x.line.request.e_type==tsip_request_type_e.PUBLISH){x.add_header(new tsip_header_Expires(this.i_expires/1000))
}for(var s=0;s<this.o_session.ao_caps.length;++s){var f=tsk_string_format("*;{0}",tsk_param_tostring(this.o_session.ao_caps[s]));
if(f){x.add_header(new tsip_header_Dummy("Accept-Contact",f))}}break;default:var k=null;var t=null;if(x.line.request.e_type==tsip_request_type_e.OPTIONS||x.line.request.e_type==tsip_request_type_e.PUBLISH||x.line.request.e_type==tsip_request_type_e.REGISTER){k=tsk_string_format('m: "{1}"<{0}:{2}@{3}:{4};rtcweb-breaker={5}>;click2call={6};expires={7}\r\n',"sip",q.identity.s_display_name,e.s_user_name,"127.0.0.1",5060,q.network.b_rtcweb_enabled?"yes":"no",q.network.b_click2call_enabled?"yes":"no",Math.floor(this.i_expires/1000))
}else{if(x.line.request.e_type==tsip_request_type_e.SUBSCRIBE){x.add_header(new tsip_header_Expires(this.i_expires/1000))
}k=tsk_string_format('m: "{1}"<{0}:{2}@{3}:{4};rtcweb-breaker={5};click2call={6}>',"sip",q.identity.s_display_name,e.s_user_name,"127.0.0.1",5060,q.network.b_rtcweb_enabled?"yes":"no",q.network.b_click2call_enabled?"yes":"no");
if(x.line.request.e_type==tsip_request_type_e.INVITE&&q.network.b_rtcweb_enabled){k+=";impi="+encodeURIComponent(q.identity.s_impi);
k+=";ha1="+tsip_auth_digest_HA1(q.identity.s_impi,q.network.o_uri_realm.s_host,q.identity.s_password)
}k+="\r\n"}t=tsip_header_Contact.prototype.Parse(k);if(t&&t.length>0){x.o_hdr_Contact=t[0]}if(x.o_hdr_Contact){for(var s=0;
s<this.o_session.ao_caps.length;++s){tsk_params_add_param(x.o_hdr_Contact.ao_params,this.o_session.ao_caps[s])
}}break}if(this.e_state==tsip_dialog_state_e.INITIAL&&this.ao_challenges.length==0){if(x.is_register()&&!q.security.b_earlyIMS){var b=q.network.o_uri_realm?q.network.o_uri_realm.s_host:"(null)";
var w=tsip_uri_tostring(x.line.request.o_uri,false,false);var h=tsip_challenge.prototype.CreateEmptyHeaderAuthorization(q.identity.s_impi,b,w);
x.add_header(h)}}else{if(this.ao_challenges.length>0){for(var s=0;s<this.ao_challenges.length;++s){var a=this.ao_challenges[s].create_header_authorization(x);
if(a){x.add_header(a)}}}}if(!x.is_ack()&&!x.is_cancel()){x.o_hdr_CSeq.i_seq=++(this.i_cseq_value)}if(!x.is_register()){if(n!=-1){if(this.e_state==tsip_dialog_state_e.EARLY||this.e_state==tsip_dialog_state_e.ESTABLISHED){var o=-1;
for(var s=0;s<this.ao_hdr_record_routes.length;++s){var v=this.ao_hdr_record_routes[s].o_uri;var m=null;
if(++o<n||!v){continue}if((m=new tsip_header_Route(v))){for(var r=0;r<this.ao_hdr_record_routes[s].ao_params.length;
++r){m.ao_params.push(this.ao_hdr_record_routes[s].ao_params[r])}x.add_header(m)}}}}else{if(this.e_state==tsip_dialog_state_e.INITIAL||this.e_state==tsip_dialog_state_e.EARLY){for(var s=0;
s<q.ao_uri_service_routes.length;++s){x.add_header(new tsip_header_Service_Route(q.ao_uri_service_routes[s]))
}}}}if(q.network.e_proxy_cscf_type==tsip_transport_type_e.WS||q.network.e_proxy_cscf_type==tsip_transport_type_e.WSS){var l=q.__get_proxy_outbound_uri_string();
if(l){x.add_header(new tsip_header_Dummy("Route",l),true)}}for(var s=0;s<u.ao_headers.length;++s){x.add_header(u.ao_headers[s])
}for(var s=0;s<q.ao_headers.length;++s){x.add_header(q.ao_headers[s])}this.add_common_headers(x);if(u.s_sigcomp_id){x.s_sigcomp_id=u.s_sigcomp_id
}return x};tsip_dialog.prototype.response_new=function(b,f,c){var e;if((e=new tsip_response(b,f,c))){switch(c.line.request.e_type){case tsip_request_type_e.MESSAGE:case tsip_request_type_e.PUBLISH:break;
default:if(e.o_hdr_To&&!e.o_hdr_To.s_tag){e.o_hdr_To.s_tag=this.s_tag_local}if(this.o_uri_local&&b>=101&&b<=299){var a;
var d=tsk_string_format("m: <{0}:{1}@{2}:{3}>\r\n","sip",this.o_uri_local.s_user_name,"127.0.0.1",5060);
var a=tsip_header_Contact.prototype.Parse(d);if(a!=null&&a.length>0){e.o_hdr_Contact=a[0];e.b_update=true
}}break}if(this.get_session().s_sigcomp_id){e.s_sigcomp_id=this.get_session().s_sigcomp_id}}return e};
tsip_dialog.prototype.response_send=function(c){var d=-1;var a=this.get_layer_transac();if(a){var b=a.find_server(c);
if(b){setTimeout(function(){b.callback(tsip_transac_event_type_e.OUTGOING_MSG,c)},1);d=0}else{tsk_utils_log_error("Failed to find associated server transaction.")
}}else{tsk_utils_log_error("Invalid parameter")}return d};tsip_dialog.prototype.get_session=function(){return this.o_session
};tsip_dialog.prototype.get_stack=function(){if(this.o_session){return this.o_session.o_stack}return null
};tsip_dialog.prototype.get_layer_transac=function(){var a=this.get_stack();if(a){return a.o_layer_transac
}return null};tsip_dialog.prototype.get_layer_dialog=function(){var a=this.get_stack();if(a){return a.o_layer_dialog
}return null};tsip_dialog.prototype.get_layer_transport=function(){var a=this.get_stack();if(a){return a.o_layer_transport
}return null};tsip_dialog.prototype.request_send=function(c){if(!c){tsk_utils_log_error("Invalid argument");
return -1}if(c.is_ack()){if(this.get_layer_transport().send(null,c)>0){return 0}return -2}var a=this.get_layer_transac();
if(!a){tsk_utils_log_error("Invalid transac layer");return -1}var d=-1;var b=a.transac_new(true,c,this);
if(b){switch(b.e_type){case tsip_transac_type_e.ICT:case tsip_transac_type_e.NICT:d=b.start(c);break}}return d
};tsip_dialog.prototype.add_common_headers=function(c){var b=false;var d=null;var e=null;var a=this.get_stack();
if(!c||!a){tsk_utils_log_error("Invalid argument");return -1}b=a.security.b_earlyIMS;d=a.identity.o_uri_pref;
if(d){switch(c.line.request.e_type){case tsip_request_type_e.BYE:case tsip_request_type_e.INVITE:case tsip_request_type_e.OPTIONS:case tsip_request_type_e.SUBSCRIBE:case tsip_request_type_e.NOTIFY:case tsip_request_type_e.REFER:case tsip_request_type_e.MESSAGE:case tsip_request_type_e.PUBLISH:case tsip_request_type_e.REGISTER:if(!b||(b&&c.is_register())){c.add_header(new tsip_header_P_Preferred_Identity(d))
}break}}if(e){switch(c.line.request.e_type){case tsip_request_type_e.BYE:case tsip_request_type_e.INVITE:case tsip_request_type_e.OPTIONS:case tsip_request_type_e.REGISTER:case tsip_request_type_e.SUBSCRIBE:case tsip_request_type_e.NOTIFY:case tsip_request_type_e.PRACK:case tsip_request_type_e.INFO:case tsip_request_type_e.UPDATE:case tsip_request_type_e.REFER:case tsip_request_type_e.MESSAGE:case tsip_request_type_e.PUBLISH:c.add_header(new tsip_header_P_Access_Network_Info(e));
break}}return 0};tsip_dialog.prototype.get_action_curr=function(){return this.o_action_curr};tsip_dialog.prototype.set_action_curr=function(a){this.o_action_curr=a;
return 0};tsip_dialog.prototype.set_last_error=function(a,c,b){this.last_error.i_code=a;this.last_error.s_phrase=c;
this.last_error.o_message=b;return 0};tsip_dialog.prototype.signal=function(a,c,b){return tsip_event.prototype.Signal(tsip_event_type_e.DIALOG,this.o_session,a,c,b)
};tsip_dialog.prototype.timer_schedule=function(T,N){this.timer_cancel(N);var This=this;var s_code=tsk_string_format("This.o_timer{1} = setTimeout(function(){ __tsip_dialog_{0}_timer_callback(This, This.o_timer{1})}, This.i_timer{1});",T,N);
eval(s_code)};tsip_dialog.prototype.timer_cancel=function(N){var s_code=tsk_string_format("if(this.o_timer{0}) { clearTimeout(this.o_timer{0}); this.o_timer{0} = null; }",N);
eval(s_code)};tsip_dialog.prototype.callback=function(b,a){if(this.fn_callback){return this.fn_callback(this,b,a)
}tsk_utils_log_error("Invalid callback function");return -1};tsip_dialog.prototype.set_callback=function(a){this.fn_callback=a
};tsip_dialog.prototype.fsm_act=function(b,c,a){if(!this.o_fsm){tsk_utils_log_error("Invalid argument");
return -1}return this.o_fsm.act(b,this.o_fsm.get_usr_data(),c,this.o_fsm.get_usr_data(),c,a)};tsip_dialog.prototype.hangup=function(a){if(this.e_state==tsip_dialog_state_e.ESTABLISHED||(this.o_session&&this.o_session.b_server&&this.e_state==tsip_dialog_state_e.EARLY)||this.e_type!=tsip_dialog_type_e.INVITE){return this.fsm_act(tsip_action_type_e.HANGUP,null,a)
}else{return this.fsm_act(tsip_action_type_e.CANCEL,null,a)}};tsip_dialog.prototype.shutdown=function(a){return this.fsm_act(tsip_action_type_e.SHUTDOWN,null,a)
};tsip_dialog.prototype.update_with_response=function(c){if(!c||!c.is_response()||!c.o_hdr_To){tsk_utils_log_error("Invalid argument");
return -1}var a=c.get_response_code();var g=c.o_hdr_To.s_tag;if(a==401||a==407||a==421||a==494){var f;
f=(c.is_response_to_register()&&this.e_state==tsip_dialog_state_e.ESTABLISHED);return this.update_challenges(c,f)
}else{if(100<a&&a<300){var b=this.e_state;if(a<=199){if(tsk_string_is_null_or_empty(c.o_hdr_To.s_tag)){tsk_utils_log_error("Invalid tag parameter");
return -1}b=tsip_dialog_state_e.EARLY}else{b=tsip_dialog_state_e.ESTABLISHED}if(!c.is_response_to_register()&&c.o_hdr_Contact&&c.o_hdr_Contact.o_uri){this.o_uri_remote_target=tsip_uri.prototype.Parse(tsip_uri_tostring(c.o_hdr_Contact.o_uri,true,false))
}var d;var e;this.ao_hdr_record_routes.splice(0,this.ao_hdr_record_routes.length);for(d=0;(e=c.get_header_at(tsip_header_type_e.Record_Route,d));
++d){this.ao_hdr_record_routes.push(e)}this.ao_hdr_record_routes.reverse();if(this.e_state==tsip_dialog_state_e.ESTABLISHED&&tsk_string_iequals(this.s_tag_remote,g)){return 0
}else{if(!c.is_response_to_register()&&!c.is_response_to_publish()){this.s_tag_remote=g}}this.e_state=b;
return 0}}return 0};tsip_dialog.prototype.update_with_invite=function(a){if(!a){tsk_utils_log_error("Invalid parameter");
return -1}if(a.o_hdr_Contact&&a.o_hdr_Contact.o_uri){this.o_uri_remote_target=tsip_uri.prototype.Parse(tsip_uri_tostring(a.o_hdr_Contact.o_uri,true,false))
}this.s_tag_remote=a.o_hdr_From?a.o_hdr_From.s_tag:"tag_engith";if(a.o_hdr_From&&a.o_hdr_From.o_uri){this.o_uri_remote=a.o_hdr_From.o_uri
}var b;var c;this.ao_hdr_record_routes.splice(0,this.ao_hdr_record_routes.length);for(b=0;(c=a.get_header_at(tsip_header_type_e.Record_Route,b));
++b){this.ao_hdr_record_routes.push(c)}this.e_state=tsip_dialog_state_e.EARLY;return 0};tsip_dialog.prototype.update_challenges=function(b,d){var f=-1;
var k;var h;var a;for(var e=0;(h=b.get_header_at(tsip_header_type_e.WWW_Authenticate,e));e++){var g=true;
for(var c=0;c<this.ao_challenges.length;++c){k=this.ao_challenges[c];if(k.b_isproxy){continue}if(tsk_string_iequals(k.s_realm,h.s_realm)&&(h.b_stale||d)){if((f=k.update(h.s_scheme,h.s_realm,h.s_nonce,h.s_opaque,h.s_algorithm,h.s_qop))){return f
}else{g=false;continue}}else{tsk_utils_log_error("Failed to handle new challenge");return -1}}if(g){if((k=new tsip_challenge(this.get_stack(),false,h.s_scheme,h.s_realm,h.s_nonce,h.s_opaque,h.s_algorithm,h.s_qop))){this.ao_challenges.push(k)
}else{tsk_utils_log_error("Failed to handle new challenge");return -1}}}for(var e=0;(a=b.get_header_at(tsip_header_type_e.Proxy_Authenticate,e));
e++){var g=true;for(var c=0;c<this.ao_challenges.length;++c){k=this.ao_challenges[c];if(!k.b_isproxy){continue
}if(tsk_string_iequals(k.s_realm,a.s_realm)&&(a.b_stale||d)){if((f=k.update(a.s_scheme,a.s_realm,a.s_nonce,a.s_opaque,a.s_algorithm,a.s_qop))){return f
}else{g=false;continue}}else{tsk_utils_log_error("Failed to handle new challenge");return -1}}if(g){if((k=new tsip_challenge(this.get_stack(),true,a.s_scheme,a.s_realm,a.s_nonce,a.s_opaque,a.s_algorithm,a.s_qop))){this.ao_challenges.push(k)
}else{tsk_utils_log_error("Failed to handle new challenge");return -1}}}return 0};tsip_dialog.prototype.get_newdelay=function(a){var j=this.i_expires/1000;
var e=j;var f;var h;var d=false;if(a.is_notify()){var b;if((b=a.get_header(tsip_header_type_e.Subscription_State))){if(b.i_expires>0){j=b.i_expires;
d=true}}}if(!d&&(f=a.get_header(tsip_header_type_e.Expires))){j=f.i_value;d=true}for(h=0;!d&&(f=a.get_header_at(tsip_header_type_e.Contact,h));
++h){var k=f;if(k.o_uri){var c=tsk_param_get_value_by_name(k.o_uri.ao_params,"transport");var g=this.get_stack().__get_contact_uri(c?c:"udp");
if(g){if(tsk_string_equals(k.o_uri.s_user_name,g.s_user_name)&&tsk_string_equals(k.o_uri.s_host,g.s_host)&&k.o_uri.i_port==g.i_port){if(k.i_expires>=0){j=k.i_expires;
d=false;break}}}}}e=(j>1200)?(j-600):(j>>1);return(e*1000)};tsip_dialog.prototype.ApplyAction=function(c,a){if(!c||!a){tsk_utils_log_error("Invalid argument");
return -1}for(var b=0;b<a.ao_headers.length;++b){c.add_header(a.ao_headers[b])}if(a.line_resp.i_code&&a.line_resp.s_phrase&&c.is_response()){c.line.response.i_status_code=a.line_resp.i_code;
c.line.response.s_reason_phrase=a.line_resp.s_phrase}if(a.o_content){c.add_content(a.o_content)}return 0
};function tsip_dialog_compare(b,a){if(b&&a){if((b.s_callid==a.s_callid)&&((b.s_tag_local==a.s_tag_local))&&((b.s_tag_remote==a.s_tag_remote))){return 0
}}return -1}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/dialogs/tsip_dialog_generic.js","src/tinySIP/src/dialogs/tsip_dialog_invite.js","src/tinySIP/src/dialogs/tsip_dialog_register.js")
}tsip_dialog_generic.prototype=Object.create(tsip_dialog.prototype);tsip_dialog_generic.prototype.__b_debug_state_machine=true;
var tsip_dialog_generic_actions_e={ACCEPT:tsip_action_type_e.ACCEPT,REJECT:tsip_action_type_e.REJECT,HANGUP:tsip_action_type_e.HANGUP,CANCEL:tsip_action_type_e.CANCEL,SHUTDOWN:tsip_action_type_e.SHUTDOWN,O_SUBSCRIBE:tsip_action_type_e.SUBSCRIBE,O_OPTIONS:tsip_action_type_e.OPTIONS,O_MESSAGE:tsip_action_type_e.MESSAGE,O_INFO:tsip_action_type_e.INFO,O_PUBLISH:tsip_action_type_e.PUBLISH,O_UNPUBLISH:tsip_action_type_e.UNPUBLISH,I_SUBSCRIBE:10000,I_MESSAGE:10001,I_OPTIONS:10002,I_INFO:10003,I_PUBLISH:10004,I_NOTIFY:10005,I_1XX:50000,I_2XX:50001,I_401_407_421_494:50002,I_423:50003,I_300_to_699:50004,SHUTDOWN_TIMEDOUT:60000,TRANSPORT_ERROR:60002,ERROR:60003};
var tsip_dialog_generic_states_e={STARTED:0,INPROGRESS:1,INCOMING:2,CONNECTED:3,TERMINATED:4};function tsip_dialog_generic(b,c,a){tsip_dialog.call(this);
this.b_disconnecting=false;this.o_last_iMessage=null;this.o_timerRefresh=null;this.o_timerShutdown=null;
this.i_timerShutdown=(tsip_dialog.prototype.__i_timer_shutdown<<1)/3;this.init(b,a,c,tsip_dialog_generic_states_e.STARTED,tsip_dialog_generic_states_e.TERMINATED);
this.set_callback(__tsip_dialog_generic_event_callback);this.o_fsm.set_debug_enabled(tsip_dialog_generic.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_dialog_generic_onterm,this);this.init_message();this.init_publish();
this.init_subscribe();this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_1XX,tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_InProgress_2_InProgress_X_1xx,"tsip_dialog_generic_InProgress_2_InProgress_X_1xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_2XX,__tsip_dialog_generic_cond_is_dialogless,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_InProgress_2_Terminated_X_2xx,"tsip_dialog_generic_InProgress_2_Terminated_X_2xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_2XX,__tsip_dialog_generic_cond_is_disconnecting,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_InProgress_2_Terminated_X_2xx,"tsip_dialog_generic_InProgress_2_Terminated_X_2xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_2XX,__tsip_dialog_generic_cond_is_dialogfull,tsip_dialog_generic_states_e.CONNECTED,tsip_dialog_generic_InProgress_2_Connected_X_2xx,"tsip_dialog_generic_InProgress_2_Connected_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_401_407_421_494,tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494,"tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.I_300_to_699,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699,"tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.CANCEL,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_InProgress_2_Terminated_X_cancel,"tsip_dialog_generic_InProgress_2_Terminated_X_cancel"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_actions_e.SHUTDOWN,tsip_dialog_generic_states_e.TERMINATED,null,"tsip_dialog_generic_InProgress_2_Terminated_X_shutdown"),tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INCOMING,tsip_dialog_generic_actions_e.ACCEPT,__tsip_dialog_generic_cond_is_dialogless,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_Incoming_2_Terminated_X_accept,"tsip_dialog_generic_Incoming_2_Terminated_X_accept"),tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INCOMING,tsip_dialog_generic_actions_e.ACCEPT,__tsip_dialog_generic_cond_is_dialogfull,tsip_dialog_generic_states_e.CONNECTED,tsip_dialog_generic_Incoming_2_Connected_X_accept,"tsip_dialog_generic_Incoming_2_Connected_X_accept"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INCOMING,tsip_dialog_generic_actions_e.REJECT,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_Incoming_2_Terminated_X_reject,"tsip_dialog_generic_Incoming_2_Terminated_X_reject"),tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_dialog_generic_states_e.INCOMING,"tsip_dialog_generic_Incoming_2_Incoming_X_any"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.HANGUP,__tsip_dialog_generic_cond_not_silent_hangup,tsip_dialog_generic_states_e.INPROGRESS,__tsip_dialog_generic_Any_2_InProgress_X_hangup,"tsip_dialog_generic_Any_2_InProgress_X_hangup"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.HANGUP,__tsip_dialog_generic_cond_silent_hangup,tsip_dialog_generic_states_e.TERMINATED,null,"tsip_dialog_generic_Any_2_InProgress_X_silenthangup"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.SHUTDOWN,__tsip_dialog_generic_cond_not_silent_shutdown,tsip_dialog_generic_states_e.INPROGRESS,__tsip_dialog_generic_Any_2_InProgress_X_shutdown,"tsip_dialog_generic_Any_2_InProgress_X_shutdown"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.SHUTDOWN,__tsip_dialog_generic_cond_silent_shutdown,tsip_dialog_generic_states_e.TERMINATED,null,"tsip_dialog_generic_Any_2_InProgress_X_silentshutdown"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.SHUTDOWN_TIMEDOUT,tsip_dialog_generic_states_e.TERMINATED,null,"tsip_dialog_generic_shutdown_timedout"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.TRANSPORT_ERROR,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_Any_2_Terminated_X_transportError,"tsip_dialog_generic_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.ERROR,tsip_dialog_generic_states_e.TERMINATED,tsip_dialog_generic_Any_2_Terminated_X_Error,"tsip_dialog_generic_Any_2_Terminated_X_Error"))
}tsip_dialog_generic.prototype.signal_ao=function(a,c,b){var d;switch(this.e_type){case tsip_dialog_type_e.MESSAGE:var d=new tsip_event_message(this.get_session(),a,c,b,tsip_event_message_type_e.AO_MESSAGE);
return d.signal();case tsip_dialog_type_e.PUBLISH:var d=new tsip_event_publish(this.get_session(),a,c,b,tsip_event_publish_type_e.AO_PUBLISH);
return d.signal();case tsip_dialog_type_e.SUBSCRIBE:var d=new tsip_event_subscribe(this.get_session(),a,c,b,tsip_event_subscribe_type_e.AO_SUBSCRIBE);
return d.signal()}tsk_utils_log_error("not implemented");return -1};tsip_dialog_generic.prototype.signal_i=function(a,c,b){var d;
switch(this.e_type){case tsip_dialog_type_e.MESSAGE:if(b.is_message()){var d=new tsip_event_message(this.get_session(),a,c,b,tsip_event_message_type_e.I_MESSAGE);
return d.signal()}break;case tsip_dialog_type_e.SUBSCRIBE:if(b.is_notify()){var d=new tsip_event_subscribe(this.get_session(),a,c,b,tsip_event_subscribe_type_e.I_NOTIFY);
return d.signal()}break}tsk_utils_log_error("not implemented");return -1};function __tsip_dialog_generic_timer_callback(b,a){var c=-1;
if(b){if(b.o_timerRefresh==a){switch(b.e_type){case tsip_dialog_type_e.PUBLISH:c=b.fsm_act(tsip_dialog_generic_actions_e.O_PUBLISH,null,null);
break;case tsip_dialog_type_e.SUBSCRIBE:c=b.fsm_act(tsip_dialog_generic_actions_e.O_SUBSCRIBE,null,null);
break}}else{if(b.o_timerShutdown==a){c=b.fsm_act(tsip_dialog_generic_actions_e.SHUTDOWN,null,null)}}}return c
}function __tsip_dialog_generic_event_callback(a,b,c){var d=-1;switch(b){case tsip_dialog_event_type_e.I_MSG:if(c){if(c.is_response()){if(c.is_1xx()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_1XX,c,null)
}else{if(c.is_2xx()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_2XX,c,null)}else{if(c.is_response_xxx(401)||c.is_response_xxx(407)||c.is_response_xxx(421)||c.is_response_xxx(494)){d=a.fsm_act(tsip_dialog_generic_actions_e.I_401_407_421_494,c,null)
}else{if(c.is_response_xxx(423)){d=a.fsm_act(tsip_dialog_generic_actions_e.I_423,c,null)}else{if(c.is_3456()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_300_to_699,c,null)
}else{d=a.fsm_act(tsip_dialog_generic_actions_e.ERROR,c,null)}}}}}}else{if(c.is_message()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_MESSAGE,c,null)
}else{if(c.is_options()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_OPTIONS,c,null)}else{if(c.is_notify()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_NOTIFY,c,null)
}else{if(c.is_subscribe()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_SUBSCRIBE,c,null)}else{if(c.is_info()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_INFO,c,null)
}else{if(c.is_publish()){d=a.fsm_act(tsip_dialog_generic_actions_e.I_PUBLISH,c,null)}}}}}}}}break;case tsip_dialog_event_type_e.CANCELED:d=a.fsm_act(tsip_dialog_generic_actions_e.CANCEL,c,null);
break;case tsip_dialog_event_type_e.TERMINATED:case tsip_dialog_event_type_e.TIMEDOUT:case tsip_dialog_event_type_e.ERROR:case tsip_dialog_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_dialog_generic_actions_e.TRANSPORT_ERROR,c,null);
break}return d}function __tsip_dialog_generic_cond_is_dialogless(b,a){switch(b.e_type){case tsip_dialog_type_e.INFO:case tsip_dialog_type_e.MESSAGE:case tsip_dialog_type_e.OPTIONS:return true;
default:return false}}function __tsip_dialog_generic_cond_is_dialogfull(b,a){return !__tsip_dialog_generic_cond_is_dialogless(b,a)
}function __tsip_dialog_generic_cond_is_resp2message(b,a){return a.is_response_to_message()}function __tsip_dialog_generic_cond_is_message(b,a){return a.is_message()
}function __tsip_dialog_generic_cond_is_disconnecting(b,a){return b.b_disconnecting}function __tsip_dialog_generic_cond_is_connecting(b,a){return !__tsip_dialog_generic_cond_is_disconnecting(b,a)
}function __tsip_dialog_generic_cond_silent_hangup(b,a){return b.o_session.b_silent_hangup}function __tsip_dialog_generic_cond_not_silent_hangup(b,a){return !__tsip_dialog_generic_cond_silent_hangup(b,a)
}function __tsip_dialog_generic_cond_silent_shutdown(b,a){return __tsip_dialog_generic_cond_silent_hangup(b,a)
}function __tsip_dialog_generic_cond_not_silent_shutdown(b,a){return !__tsip_dialog_generic_cond_silent_shutdown(b,a)
}function tsip_dialog_generic_InProgress_2_InProgress_X_1xx(a){var c=a[0];var b=a[1];return c.signal_ao(b.get_response_code(),b.get_response_phrase(),b)
}function tsip_dialog_generic_InProgress_2_Terminated_X_2xx(a){var c=a[0];var b=a[1];return c.signal_ao(b.get_response_code(),b.get_response_phrase(),b)
}function tsip_dialog_generic_InProgress_2_Connected_X_2xx(b){var e=b[0];var c=b[1];var a=(e.e_state==tsip_dialog_state_e.INITIAL);
if((i_ret=e.update_with_response(c))!=0){return i_ret}if(e.e_type==tsip_dialog_type_e.PUBLISH){var d;
if((d=c.get_header(tsip_header_type_e.SIP_ETag))){if(d.s_value){e.s_etag=d.s_value}else{tsk_utils_log_warn("SIP-ETag header without value: Is it a bug?")
}}}e.set_action_curr(null);e.i_timerRefresh=e.get_newdelay(c);tsk_utils_log_debug("register session refresh time:"+e.i_timerRefresh);
e.timer_schedule("generic","Refresh");e.signal_ao(c.get_response_code(),c.get_response_phrase(),c);if(a){e.signal(tsip_event_code_e.DIALOG_CONNECTED,"Connected")
}return 0}function tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494(a){var d=a[0];var b=a[1];
var c;if((c=d.update_with_response(b))){d.signal_ao(b.get_response_code(),b.get_response_phrase(),b);
d.set_last_error(b.get_response_code(),b.get_response_phrase(),b);return c}switch(d.e_type){case tsip_dialog_type_e.MESSAGE:return d.send_message();
case tsip_dialog_type_e.PUBLISH:return d.send_publish();case tsip_dialog_type_e.SUBSCRIBE:return d.send_subscribe()
}return 0}function tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699(a){var c=a[0];var b=a[1];
c.set_last_error(b.get_response_code(),b.get_response_phrase(),b);return c.signal_ao(b.get_response_code(),b.get_response_phrase(),b)
}function tsip_dialog_generic_InProgress_2_Terminated_X_cancel(a){tsk_utils_log_error("Not implemented");
return 0}function tsip_dialog_generic_Incoming_2_Terminated_X_accept(a){var e=a[0];var b=a[2];if(!e.o_last_iMessage){tsk_utils_log_error("Invalid state")
}else{var c;var d=-1;e.set_action_curr(b);if((c=e.response_new(200,"OK",e.o_last_iMessage))){if((d=tsip_dialog.prototype.ApplyAction(c,b))==0){if((d=e.response_send(c))){tsk_utils_log_error("Failed to send SIP response.");
return d}}}else{tsk_utils_log_error("Failed to create SIP response.");return -1}}return 0}function tsip_dialog_generic_Incoming_2_Connected_X_accept(a){tsk_utils_log_error("Not implemented");
return 0}function tsip_dialog_generic_Incoming_2_Terminated_X_reject(a){tsk_utils_log_error("Not implemented");
return 0}function __tsip_dialog_generic_Any_2_InProgress_X_hangup(a){var c=a[0];var b=a[2];c.set_action_curr(b);
c.signal(tsip_event_code_e.DIALOG_TERMINATING,"Disconnecting...");c.b_disconnecting=true;switch(c.e_type){case tsip_dialog_type_e.PUBLISH:return c.send_publish();
case tsip_dialog_type_e.SUBSCRIBE:return c.send_subscribe()}return 0}function __tsip_dialog_generic_Any_2_InProgress_X_shutdown(a){var b=a[0];
b.timer_schedule("generic","Shutdown");b.signal(tsip_event_code_e.DIALOG_TERMINATING,"Disconnecting...");
b.b_disconnecting=true;switch(b.e_type){case tsip_dialog_type_e.PUBLISH:return b.send_publish();case tsip_dialog_type_e.SUBSCRIBE:return b.send_subscribe()
}return 0}function tsip_dialog_generic_Any_2_Terminated_X_transportError(a){tsk_utils_log_error("Not implemented");
return 0}function tsip_dialog_generic_Any_2_Terminated_X_Error(a){tsk_utils_log_error("Not implemented");
return 0}function __tsip_dialog_generic_onterm(a){tsk_utils_log_info("=== "+a.e_type.s_name+" Dialog terminated ===");
a.timer_cancel("Refresh");a.timer_cancel("Shutdown");a.signal(tsip_event_code_e.DIALOG_TERMINATED,a.last_error.s_phrase?a.last_error.s_phrase:"Disconnected",a.last_error.o_message);
return a.deinit()}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/dialogs/tsip_dialog_generic__message.js","src/tinySIP/src/dialogs/tsip_dialog_generic__publish.js","src/tinySIP/src/dialogs/tsip_dialog_generic__subscribe.js")
}tsip_dialog_generic.prototype.init_message=function(){this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.STARTED,tsip_dialog_generic_actions_e.O_MESSAGE,tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_Started_2_InProgress_X_oMessage,"tsip_dialog_generic_Started_2_InProgress_X_oMessage"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.STARTED,tsip_dialog_generic_actions_e.I_MESSAGE,tsip_dialog_generic_states_e.INCOMING,tsip_dialog_generic_Started_2_Incoming_X_iMessage,"tsip_dialog_generic_Started_2_Incoming_X_iMessage"))
};tsip_dialog_generic.prototype.send_message=function(){var a;var b=-1;if((a=this.request_new("MESSAGE"))){if(this.get_action_curr()){if((b=tsip_dialog.prototype.ApplyAction(a,this.get_action_curr()))==0){b=this.request_send(a)
}}}return b};function tsip_dialog_generic_Started_2_InProgress_X_oMessage(a){var c=a[0];var b=a[2];c.b_running=true;
c.set_action_curr(b);return c.send_message()}function tsip_dialog_generic_Started_2_Incoming_X_iMessage(a){var c=a[0];
var b=a[1];c.signal_i(tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b);c.o_last_iMessage=b;
return 0}tsip_dialog_generic.prototype.init_publish=function(){this.s_etag=null;this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.O_PUBLISH,tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_Any_2_InProgress_X_oPublish,"tsip_dialog_generic_Any_2_InProgress_X_oPublish"))
};tsip_dialog_generic.prototype.send_publish=function(){var b;var c=-1;if(this.b_disconnecting){this.i_expires=0
}if((b=this.request_new("PUBLISH"))){var a=this.get_action_curr();if(a&&(c=tsip_dialog.prototype.ApplyAction(b,a))){return c
}if(this.s_etag){b.add_header(new tsip_header_SIP_If_Match(this.s_etag))}c=this.request_send(b)}return c
};function tsip_dialog_generic_Any_2_InProgress_X_oPublish(a){var c=a[0];var b=a[2];if(!c.b_running){c.b_running=true
}c.set_action_curr(b);if(c.e_state==tsip_dialog_state_e.INITIAL){c.signal(tsip_event_code_e.DIALOG_CONNECTING,"Connecting...")
}return c.send_publish()}tsip_dialog_generic.prototype.init_subscribe=function(){this.s_etag=null;this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.O_SUBSCRIBE,tsip_dialog_generic_states_e.INPROGRESS,tsip_dialog_generic_Any_2_InProgress_X_oSubscribe,"tsip_dialog_generic_Any_2_InProgress_X_oSubscribe"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_actions_e.I_NOTIFY,tsk_fsm.prototype.__i_state_any,tsip_dialog_generic_Any_2_Any_X_iNotify,"tsip_dialog_generic_Any_2_Any_X_iNotify"))
};tsip_dialog_generic.prototype.send_subscribe=function(){var b;var c=-1;if(this.b_disconnecting){this.i_expires=0
}if((b=this.request_new("SUBSCRIBE"))){var a=this.get_action_curr();if(a&&(c=tsip_dialog.prototype.ApplyAction(b,a))){return c
}c=this.request_send(b)}return c};function tsip_dialog_generic_Any_2_InProgress_X_oSubscribe(a){var c=a[0];
var b=a[2];if(!c.b_running){c.b_running=true}c.set_action_curr(b);if(c.e_state==tsip_dialog_state_e.INITIAL){c.signal(tsip_event_code_e.DIALOG_CONNECTING,"Connecting...")
}return c.send_subscribe()}function tsip_dialog_generic_Any_2_Any_X_iNotify(a){var e=a[0];var b=a[1];
var c;var d=-1;if((c=e.response_new(200,"OK",b))){d=e.response_send(c)}e.i_timerRefresh=e.get_newdelay(b);
e.timer_schedule("generic","Refresh");e.signal_i(tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming NOTIFY",b);
return d}tsip_dialog_invite.prototype=Object.create(tsip_dialog.prototype);tsip_dialog_invite.prototype.__b_debug_state_machine=true;
tsip_dialog_invite.prototype.__i_lo_sdp_request_timeout=20000;var tsip_dialog_invite_next_offer_type_e={NONE:0,INVITE:1,UPDATE:2,SUCCESS:3};
var tsip_dialog_invite_actions_e={ACCEPT:tsip_action_type_e.ACCEPT,REJECT:tsip_action_type_e.HANGUP,DTMF_SEND:tsip_action_type_e.DTMF_SEND,MUTE:tsip_action_type_e.MUTE,SWITCH_VIDEO:tsip_action_type_e.SWITCH_VIDEO,SWITCH_SOURCE:tsip_action_type_e.SWITCH_SOURCE,MSRP_SEND_MSG:tsip_action_type_e.LARGE_MESSAGE,O_INVITE:tsip_action_type_e.INVITE,O_CANCEL:tsip_action_type_e.CANCEL,O_HOLD:tsip_action_type_e.HOLD,O_RESUME:tsip_action_type_e.RESUME,O_ECT:tsip_action_type_e.ECT,I_ECT_ACCEPT:tsip_action_type_e.ECT_ACCEPT,I_ECT_REJECT:tsip_action_type_e.ECT_REJECT,I_ECT_LNOTIFY:tsip_action_type_e.ECT_NOTIFY,O_INFO:tsip_action_type_e.INFO,O_BYE:tsip_action_type_e.HANGUP,O_SHUTDOWN:tsip_action_type_e.SHUTDOWN,I_INVITE:10001,O_UPDATE:10002,I_UPDATE:10003,I_CANCEL:10004,I_PRACK:10005,O_PRACK:10006,I_ACK:10007,O_ACK:10008,I_OPTIONS:10009,O_OPTIONS:10010,I_BYE:10011,I_REFER:10012,I_INFO:10013,I_NOTIFY:10014,TIMER_100REL:20001,TIMER_REFRESH:20002,TIMER_RSVP:20003,TIMER_LO_SDP_REQUEST:20004,I_1XX:30001,I_2XX:30002,I_300_to_699:30003,I_401_407:30004,i_422:30005,SHUTDOWN_TIMEDOUT:40001,TRANSPORT_ERROR:40002,ERROR:40003};
var tsip_dialog_invite_states_e={STARTED:1,OUTGOING:2,INCOMING:3,TRYING:4,RINGING:5,CANCELLING:6,INPROGRESS:7,HOLDING:20,RESUMING:21,O_ECT_INPROGRESS:40,I_ECT_INPROGRESS:41,I_ECT_REQUESTED:42,CONNECTED:60,TERMINATED:61};
function tsip_dialog_invite(b,a){tsip_dialog.call(this);this.o_last_oInvite=null;this.o_wait_oMessage=null;
this.o_last_iOffer=null;this.o_last_iRefer=null;this.o_ss_transf=null;this.e_next_offer_type=tsip_dialog_invite_next_offer_type_e.NONE;
this.i_rseq=0;this.b_support_update=false;this.supported={};this.supported.b_100rel=b.media.b_100rel;
this.supported.b_norefsub=true;this.supported.b_refer_sub=true;this.supported.b_timer=(b.media.timers.i_timeout>0);
this.require={};this.require.b_100rel=false;this.require.b_norefsub=false;this.require.b_timer=false;
this.hold={};this.hold.b_local=false;this.hold.b_remote=false;this.init(tsip_dialog_type_e.INVITE,a,b,tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_states_e.TERMINATED);
this.set_callback(__tsip_dialog_invite_event_callback);this.o_fsm.set_debug_enabled(tsip_dialog_invite.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_dialog_invite_onterm,this);this.o_msession_mgr=null;this.b_is_client=false;
this.b_is_transf=false;this.o_timerShutdown=null;this.i_timerShutdown=(tsip_dialog.prototype.__i_timer_shutdown>>1);
this.stimers={};this.stimers.i_timeout=b.media.timers.i_timeout;this.stimers.s_refresher=null;this.stimers.i_minse=0;
this.stimers.b_is_refresher=false;this.o_timer100Rel=null;this.i_timer100Rel=0;this.o_timerSession=null;
this.o_timerShutdown=null;this.i_timerShutdown=tsip_dialog.prototype.__i_timer_shutdown;this.o_timerLoSdpRequest=null;
this.i_timerLoSdpRequest=tsip_dialog_invite.prototype.__i_lo_sdp_request_timeout;this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_dialog_invite_states_e.STARTED,"tsip_dialog_invite_Started_2_Started_X_any"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.DTMF_SEND,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_oDTMF,"x0000_Connected_2_Connected_X_oDTMF"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.MSRP_SEND_MSG,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_oLMessage,"x0000_Connected_2_Connected_X_oLMessage"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.I_ACK,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_iACK,"x0000_Connected_2_Connected_X_iACK"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.I_INVITE,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_iINVITEorUPDATE,"x0000_Connected_2_Connected_X_iINVITE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.I_UPDATE,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_iINVITEorUPDATE,"x0000_Connected_2_Connected_X_iUPDATE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.O_INVITE,tsip_dialog_invite_states_e.CONNECTED,x0000_Connected_2_Connected_X_oINVITE,"x0000_Connected_2_Connected_X_oINVITE"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.O_BYE,tsip_dialog_invite_states_e.TRYING,x0000_Any_2_Trying_X_oBYE,"x0000_Any_2_Trying_X_oBYE"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_BYE,tsip_dialog_invite_states_e.TERMINATED,x0000_Any_2_Terminated_X_iBYE,"x0000_Any_2_Terminated_X_iBYE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2bye,tsip_dialog_invite_states_e.TERMINATED,null,"x0000_Any_2_Terminated_X_i3xxTOi6xxBYE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2bye,tsip_dialog_invite_states_e.TERMINATED,null,"x0000_Any_2_Terminated_X_i2xxBYE"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.O_SHUTDOWN,tsip_dialog_invite_states_e.TRYING,x0000_Any_2_Trying_X_shutdown,"x0000_Any_2_Trying_X_shutdown"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.SHUTDOWN_TIMEDOUT,tsip_dialog_invite_states_e.TERMINATED,null,"tsip_dialog_invite_shutdown_timedout"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.MUTE,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_noOps,"x0000_Any_2_Any_X_noOps"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.SWITCH_VIDEO,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_noOps,"x0000_Any_2_Any_X_noOps"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.SWITCH_SOURCE,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_noOps,"x0000_Any_2_Any_X_noOps"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_1XX,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_i1xx,"x0000_Any_2_Any_X_i1xx"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.O_INFO,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_oINFO,"x0000_Any_2_Any_X_oINFO"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_INFO,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_iINFO,"x0000_Any_2_Any_X_iINFO"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_PRACK,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_iPRACK,"x0000_Any_2_Any_X_iPRACK"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_OPTIONS,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_iOPTIONS,"x0000_Any_2_Any_X_iOPTIONS"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2invite,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_i2xxINVITEorUPDATE,"x0000_Any_2_Any_X_i2xxINVITE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2update,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_i2xxINVITEorUPDATE,"x0000_Any_2_Any_X_i2xxUPDATE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_401_407,__tsip_dialog_invite_cond_is_resp2invite,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_i401_407_INVITEorUPDATE,"x0000_Any_2_Any_X_i401_407_INVITE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_401_407,__tsip_dialog_invite_cond_is_resp2update,tsk_fsm.prototype.__i_state_any,x0000_Any_2_Any_X_i401_407_INVITEorUPDATE,"x0000_Any_2_Any_X_i401_407_UPDATE"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2prack,tsk_fsm.prototype.__i_state_any,null,"x0000_Any_2_Any_X_i2xxPRACK"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2info,tsk_fsm.prototype.__i_state_any,null,"x0000_Any_2_Any_X_i2xxINFO"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.TIMER_LO_SDP_REQUEST,tsip_dialog_invite_states_e.TERMINATED,x9997_Any_2_Any_X_LoSdpRequestTimeout,"x9997_Any_2_Any_X_LoSdpRequestTimeout"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.TRANSPORT_ERROR,tsip_dialog_invite_states_e.TERMINATED,x9998_Any_2_Terminated_X_transportError,"x9998_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.ERROR,tsip_dialog_invite_states_e.TERMINATED,x9999_Any_2_Terminated_X_Error,"x9999_Any_2_Terminated_X_Error"));
this.init_client();this.init_server();this.init_hold();this.init_ect()}tsip_dialog_invite.prototype.signal_invite=function(d,a,e,c,b){var f=new tsip_event_invite(this.get_session(),a,e,c,d,b);
return f.signal()};tsip_dialog_invite.prototype.send_invite=function(a){return this.send_offer(true,a)
};tsip_dialog_invite.prototype.send_update=function(a){return this.send_offer(false,a)};tsip_dialog_invite.prototype.send_offer=function(f,c){var e=-1;
var d=null;var g=false;if(!f&&c){tsk_utils_log_warn("ACK is need to ensure the media session")}if((d=this.request_new(f?"INVITE":"UPDATE"))){if(this.o_action_curr){tsip_dialog.prototype.ApplyAction(d,this.o_action_curr)
}if((c||f)||((this.o_msession_mgr&&this.o_msession_mgr.b_state_changed)||(this.e_state==tsip_dialog_state_e.INITIAL))){if(!this.o_action_curr||!this.o_action_curr.o_payload){var b=this.o_msession_mgr.get_lo();
g=(b==null);if(b){var a=b.toString();d.add_content(new String(a),"application/sdp")}}}if(this.stimers.i_timeout){if(this.require.b_timer){d.add_headers(new tsip_header_Session_Expires(this.stimers.i_timeout,!this.stimers.b_is_refresher),new tsip_header_Require("timer"))
}else{if(this.supported.b_timer){d.add_headers(new tsip_header_Session_Expires(this.stimers.i_timeout,!this.stimers.b_is_refresher),new tsip_header_Supported("timer"))
}}}if(this.stimers.i_minse){d.add_headers(new tsip_header_Min_SE(this.stimers.i_minse))}if(this.require.b_100rel){d.add_headers(new tsip_header_Require("100rel"))
}else{if(this.supported.b_100rel){d.add_headers(new tsip_header_Supported("100rel"))}}if(g){e=0;this.o_wait_oMessage=d;
this.timer_schedule("invite","LoSdpRequest")}else{e=this.request_send(d);if(f&&e==0){this.o_last_oInvite=d
}}}return e};tsip_dialog_invite.prototype.send_ack=function(d){var e=-1;var c=null;var f=false;if((c=this.request_new("ACK"))){if(this.b_is_client&&(this.o_last_oInvite&&!this.o_last_oInvite.has_content())){var b=this.o_msession_mgr.get_lo();
f=(b==null);if(b){var a=b.toString();c.add_content(new String(a),"application/sdp")}if(!this.o_msession_mgr.is_started()&&(this.o_msession_mgr.has_lo()&&this.o_msession_mgr.has_ro())){e=this.o_msession_mgr.start()
}}c.o_hdr_CSeq.i_seq=d.o_hdr_CSeq.i_seq;if(f){this.o_wait_oMessage=c;this.timer_schedule("invite","LoSdpRequest");
return 0}else{return this.request_send(c)}}return e};tsip_dialog_invite.prototype.send_prack=function(g){if(!g||!g.o_hdr_CSeq){tsk_utils_log_error("Invalid parameter");
return -1}var e=-1;var c=null;var d;var f=false;if((d=g.get_header(tsip_header_type_e.RSeq))){if(self.i_rseq&&(d.i_value<=this.i_rseq)){tsk_utils_log_warn("1xx.RSeq value is not one higher than lastINVITE.RSeq");
return 0}this.i_rseq=d.i_value}if(!(c=this.request_new("PRACK"))){tsk_utils_log_error("Failed to create PRACK request");
return -2}c.add_header(new tsip_header_RAck(this.i_rseq,g.o_hdr_CSeq.i_seq,g.o_hdr_CSeq.s_method));if(this.b_is_client&&(this.o_last_oInvite&&!this.o_last_oInvite.has_content())){var b=this.o_msession_mgr.get_lo();
f=(b==null);if(b){var a=b.toString();c.add_content(new String(a),"application/sdp")}}if(f){this.o_wait_oMessage=c;
this.timer_schedule("invite","LoSdpRequest");return 0}else{return this.request_send(c)}};tsip_dialog_invite.prototype.send_response=function(f,b,e,j){var a;
var h=-1;var d=false;if((a=this.response_new(b,e,f))){if(f.is_invite()||f.is_update()){if(this.require.b_timer){a.add_headers(new tsip_header_Require("timer"),new tsip_header_Session_Expires(this.stimers.i_timeout,tsk_string_iequals(this.stimers.s_refresher,"uas")))
}else{if(this.supported.b_timer){a.add_headers(new tsip_header_Supported("timer"),new tsip_header_Session_Expires(this.stimers.i_timeout,tsk_string_iequals(this.stimers.s_refresher,"uas")))
}}if(this.stimers.i_minse){a.add_headers(new tsip_header_Min_SE(this.stimers.i_minse))}if(b==422){a.add_headers(new tsip_header_Dummy("Reason",'SIP; cause=422; text="Session Interval Too Small"'))
}if(b==180||b==183){if(this.require.b_100rel){if(this.i_rseq==0){this.i_rseq=Math.abs((rand()^rand())+1)
}a.add_headers(new tsip_header_Require("100rel"),new tsip_header_RSeq(this.i_rseq));this.o_last_o1xxrel=a;
this.timer_cancel("100Rel");this.i_timer100Rel=this.get_stack().o_timers.getA();this.timer_schedule("invite","100Rel")
}}if(this.o_msession_mgr&&j){var c=this.o_msession_mgr.get_lo();d=(c==null);if(c){var g=c.toString();
a.add_content(new String(g),"application/sdp")}}a.add_headers(new tsip_header_Dummy("Allow",TSIP_HEADER_ALLOW_DEFAULT))
}else{if(f.is_refer()){if(this.require.b_norefersub){a.add_headers(new tsip_header_Require("norefersub"))
}if(this.supported.b_norefersub){a.add_headers(new tsip_header_Supported("norefersub"))}}}if(d){this.o_wait_oMessage=a;
this.timer_schedule("invite","LoSdpRequest");return 0}else{return this.response_send(a)}}return h};tsip_dialog_invite.prototype.send_error=function(c,a,e,b){var d;
if((d=this.response_new(a,e,c))){d.add_headers(new tsip_header_Dummy("Reason",b));return this.response_send(d)
}else{tsk_utils_log_error("Failed to create new message");return -1}};tsip_dialog_invite.prototype.send_bye=function(){var a=-1;
var b;if((b=this.request_new("BYE"))){a=this.request_send(b)}return a};tsip_dialog_invite.prototype.send_info=function(a,b){var d=-1;
var c;if((c=this.request_new("INFO"))){if(a&&b){c.add_content(new String(a),b)}d=this.request_send(c)
}return d};tsip_dialog_invite.prototype.send_cancel=function(){if(this.o_last_oInvite){var a;var c;if((a=new tsip_request("CANCEL",this.o_last_oInvite.line.request.o_uri,null,null,this.o_last_oInvite.o_hdr_Call_ID.s_value,this.o_last_oInvite.o_hdr_CSeq.i_seq))){a.o_hdr_firstVia=this.o_last_oInvite.o_hdr_firstVia;
a.o_hdr_From=this.o_last_oInvite.o_hdr_From;a.o_hdr_To=this.o_last_oInvite.o_hdr_To;for(c=0;c<this.o_last_oInvite.ao_headers.length;
++c){switch(this.o_last_oInvite.ao_headers[c].e_type){case tsip_header_type_e.Route:case tsip_header_type_e.Proxy_Authorization:case tsip_header_type_e.Authorization:a.ao_headers.push(this.o_last_oInvite.ao_headers[c]);
break}}if(this.get_stack().network.e_proxy_cscf_type==tsip_transport_type_e.WS||this.get_stack().network.e_proxy_cscf_type==tsip_transport_type_e.WSS){var b=this.get_stack().__get_proxy_outbound_uri_string();
if(b){a.add_header(new tsip_header_Dummy("Route",b),true)}}return this.request_send(a)}else{tsk_utils_log_error("Failed to create CANCEL request");
return -2}}else{tsk_utils_log_warn("There is no INVITE request to cancel");return 0}};tsip_dialog_invite.prototype.notify_parent=function(c){var b=this.get_layer_dialog().find_by_ssid(this.get_session().i_id_parent);
if(b){var a=new tsip_action(tsip_action_type_e.ECT_NOTIFY);if(a){return b.fsm_act(a.e_type,c,a)}}else{tsk_utils_log_error("Failed to find parent with id="+this.get_session().i_id_parent+"")
}return -1};tsip_dialog_invite.prototype.config_msession_mgr=function(a){if(a){a.set(tmedia_session_mgr.prototype.SetParamSession(a.e_type,"ice-servers",this.get_stack().network.ao_ice_servers),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"pure",this.get_stack().media.b_pure),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"cache-stream",this.get_stack().media.b_cache_stream),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"constraint",this.get_session().media.o_constraint),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"video-input",this.get_session().media.s_video_input_device_id),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"audio-input",this.get_session().media.s_audio_input_device_id),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"audio-output",this.get_session().media.s_audio_output_device_id),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"call-type",this.get_session().s_call_type),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"main-stream",this.get_session().o_main_stream),tmedia_session_mgr.prototype.SetParamSession(a.e_type,"screencast-windowid",this.get_session().media.screencast.d_window_id))
}};tsip_dialog_invite.prototype.new_msession_mgr=function(c,d,b,e){var a=new tmedia_session_mgr(c,d,b,e,__tsip_dialog_invite_media_callback,this);
this.config_msession_mgr(a);return a};tsip_dialog_invite.prototype.process_ro=function(d,c){var b=null;
var g;var f;var a;var e=0;if(!d){tsk_utils_log_error("Invalid parameter");return -1}if(d.has_content()){if(tsk_string_iequals("application/sdp",d.get_content_type())){if(!(b=tsdp_message.prototype.Parse(d.get_content_as_string()))){tsk_utils_log_error("Failed to parse remote sdp message");
return -2}}else{tsk_utils_log_error("["+d.get_content_type()+"] content-type is not supportted");return -3
}}else{if(this.e_state==tsip_dialog_state_e.INITIAL&&d.is_invite()){this.get_session().media.e_type=tmedia_defaults_get_media_type()
}else{return 0}}a=(this.o_msession_mgr==null);g=this.get_session().media.e_type;f=b?b.get_media_type():g;
if(!this.o_msession_mgr){this.get_session().media.e_type=f;this.o_msession_mgr=this.new_msession_mgr(f,this.get_stack().network.s_local_ip,false,(b==null))
}if(b){if((e=this.o_msession_mgr.set_ro(b,c))){tsk_utils_log_error("Failed to set remote offer");return e
}}if(!a&&(g!=f)&&(this.o_msession_mgr.sdp.o_lo&&this.o_msession_mgr.sdp.o_ro)){this.get_session().media.e_type=f;
this.signal_invite(tsip_event_invite_type_e.M_UPDATED,d.get_response_code(),d.get_response_phrase(),d)
}if(!this.o_msession_mgr.is_started()&&(this.o_msession_mgr.has_lo()&&this.o_msession_mgr.has_ro())){e=this.o_msession_mgr.start();
if(e==0&&this.e_state==tsip_dialog_state_e.EARLY){this.signal_invite(tsip_event_invite_type_e.M_EARLY_MEDIA,d.get_response_code(),d.get_response_phrase(),d)
}}return e};function __tsip_dialog_invite_timer_callback(b,a){var c=-1;if(b){if(b.o_timerSession==a){tsk_utils_log_debug("dialog invite session timer: "+a);
c=b.fsm_act(tsip_dialog_invite_actions_e.TIMER_REFRESH,null,null)}else{if(b.o_timer100Rel==a){tsk_utils_log_debug("dialog invite 100rel timer: "+a);
c=b.fsm_act(tsip_dialog_invite_actions_e.TIMER_100REL,null,null)}else{if(b.o_timerShutdown==a){tsk_utils_log_debug("dialog invite shutdown timer: "+a);
c=b.fsm_act(tsip_dialog_invite_actions_e.SHUTDOWN_TIMEDOUT,null,null)}else{if(b.o_timerLoSdpRequest==a){tsk_utils_log_debug("dialog invite losdprequest timer: "+a);
c=b.fsm_act(tsip_dialog_invite_actions_e.TIMER_LO_SDP_REQUEST,null,null)}}}}}return c}function __tsip_dialog_invite_media_callback(a,f,e,h){var g;
a.get_session().__set_description(h);tsk_utils_log_trace("dialog invite media message: "+f);switch(f){case tmedia_session_events_e.GET_LO_SUCCESS:a.timer_cancel("LoSdpRequest");
if(a.o_wait_oMessage){var d=a.o_msession_mgr.get_lo();var c=null;if(d&&(c=d.toString())){a.o_wait_oMessage.add_content(new String(c),"application/sdp");
if(a.o_wait_oMessage.is_request()){if(a.o_wait_oMessage.is_ack()){g=a.get_stack().o_layer_transport.send(null,a.o_wait_oMessage)
}else{g=a.request_send(a.o_wait_oMessage);if(g==0&&a.o_wait_oMessage.is_invite()){a.o_last_oInvite=a.o_wait_oMessage
}}}else{g=a.response_send(a.o_wait_oMessage)}}a.o_wait_oMessage=null}else{if(a.e_state==tsip_dialog_state_e.ESTABLISHED){if(a.e_next_offer_type==tsip_dialog_invite_next_offer_type_e.SUCCESS&&a.o_last_iOffer){g=a.send_response(a.o_last_iOffer,200,"OK",true)
}else{g=a.send_offer(true,true)}}}if(a.o_msession_mgr&&!a.o_msession_mgr.is_started()&&(a.o_msession_mgr.has_lo()&&a.o_msession_mgr.has_ro())){g=a.o_msession_mgr.start()
}a.e_next_offer_type=tsip_dialog_invite_next_offer_type_e.NONE;break;case tmedia_session_events_e.GET_LO_FAILED:a.timer_cancel("LoSdpRequest");
a.timer_cancel("Accept");a.set_last_error(tsip_event_code_e.DIALOG_WEBRTC_ERROR,"Failed to get local SDP offer");
a.e_next_offer_type=tsip_dialog_invite_next_offer_type_e.NONE;var b=new tsip_action(tsip_action_type_e.HANGUP);
b.set_line_resp(603,"Failed to get local SDP");a.hangup(b);break;case tmedia_session_events_e.ICE_CANDIDATE:a.get_session().__set_param(a.o_msession_mgr.get_ice_status());
a.get_session().__set_description(a.o_msession_mgr.get_ice_description());a.signal_invite(tsip_event_invite_type_e.M_ICE_CANDIDATE,tsip_event_code_e.DIALOG_MEDIA_ICE_CANDIDATE,"Media Ice Status",null);
break;case tmedia_session_events_e.STREAM_LOCAL_REQUESTED:a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REQUESTED,"Media Requested",null,e);
break;case tmedia_session_events_e.STREAM_LOCAL_ACCEPTED:a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_ACCEPTED,"Media Accepted",null,e);
break;case tmedia_session_events_e.STREAM_LOCAL_REFUSED:a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REFUSED,"Media Refused",null,e);
break;case tmedia_session_events_e.STREAM_LOCAL_ADDED:a.get_session().__set_stream_locals(a.o_msession_mgr.get_stream_locals());
a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED,tsip_event_code_e.DIALOG_MEDIA_ADDED,"Media Added",null,a.o_msession_mgr.get_pc());
break;case tmedia_session_events_e.STREAM_LOCAL_REMOVED:a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED,tsip_event_code_e.DIALOG_MEDIA_REMOVED,"Media Removed",null,a.o_msession_mgr.get_pc());
a.get_session().__set_stream_locals({});break;case tmedia_session_events_e.TRACK_LOCAL_REQUESTED:a.get_session().__set_param(e);
a.signal_invite(tsip_event_invite_type_e.M_TRACK_LOCAL_REQUESTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REQUESTED,"Media Requested",null);
break;case tmedia_session_events_e.TRACK_LOCAL_ACCEPTED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_TRACK_LOCAL_ACCEPTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_ACCEPTED,"Media Accepted",null,h);
break;case tmedia_session_events_e.TRACK_LOCAL_REFUSED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_TRACK_LOCAL_REFUSED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REFUSED,"Media Refused",null);
break;case tmedia_session_events_e.TRACK_LOCAL_ENDED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_TRACK_LOCAL_ENDED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_ENDED,"Media Ended",null);
break;case tmedia_session_events_e.SWITCH_SOURCE_REQUESTED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_SWITCH_SOURCE_REQUESTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REQUESTED,"Media Requested",null);
break;case tmedia_session_events_e.SWITCH_SOURCE_ACCEPTED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_SWITCH_SOURCE_ACCEPTED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_ACCEPTED,"Media Accepted",null);
break;case tmedia_session_events_e.SWITCH_SOURCE_REFUSED:a.get_session().__set_param(e);a.signal_invite(tsip_event_invite_type_e.M_SWITCH_SOURCE_REFUSED,tsip_event_code_e.DIALOG_MEDIA_LOCAL_REFUSED,"Media Refused",null);
break;case tmedia_session_events_e.STREAM_REMOTE_ADDED:a.get_session().__set_stream_remotes(a.o_msession_mgr.get_stream_remotes());
a.signal_invite(tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED,tsip_event_code_e.DIALOG_MEDIA_ADDED,"Media Added",null,a.o_msession_mgr.get_pc());
break;case tmedia_session_events_e.STREAM_REMOTE_REMOVED:a.signal_invite(tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED,tsip_event_code_e.DIALOG_MEDIA_REMOVED,"Media Removed",null,a.o_msession_mgr.get_pc());
a.get_session().__set_stream_remotes({});break;case tmedia_session_events_e.RFC5168_REQUEST_IDR:a.send_info('<?xml version="1.0" encoding="utf-8"?>\r\n <media_control>\r\n <vc_primitive>\r\n <to_encoder>\r\n <picture_fast_update>\r\n </picture_fast_update>\r\n </to_encoder>\r\n </vc_primitive>\r\n </media_control>\r\n',"application/media_control+xml");
break;case tmedia_session_events_e.BFCP_INFO:a.signal_invite(tsip_event_invite_type_e.M_BFCP_INFO,tsip_event_code_e.DIALOG_BFCP_INFO,h?h:"BFCP INFO",null);
break}}function __tsip_dialog_invite_event_callback(a,b,c){var d=-1;tsk_utils_log_trace("dialog invite event message: "+(b?b.s_name:""));
switch(b){case tsip_dialog_event_type_e.I_MSG:if(c){if(c.is_response()){if(c.is_1xx()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_1XX,c,null)
}else{if(c.is_2xx()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_2XX,c,null)}else{if(c.is_response_xxx(401)||c.is_response_xxx(407)){d=a.fsm_act(tsip_dialog_invite_actions_e.I_401_407,c,null)
}else{if(c.is_response_xxx(422)){d=a.fsm_act(tsip_dialog_invite_actions_e.I_422,c,null)}else{if(c.is_3456()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_300_to_699,c,null)
}}}}}}else{if(c.is_invite()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_INVITE,c,null)}else{if(c.is_update()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_UPDATE,c,null)
}else{if(c.is_prack()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_PRACK,c,null)}else{if(c.is_ack()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_ACK,c,null)
}else{if(c.is_options()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_OPTIONS,c,null)}else{if(c.is_bye()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_BYE,c,null)
}else{if(c.is_cancel()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_CANCEL,c,null)}else{if(c.is_info()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_INFO,c,null)
}else{if(c.is_notify()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_NOTIFY,c,null)}else{if(c.is_refer()){d=a.fsm_act(tsip_dialog_invite_actions_e.I_REFER,c,null)
}}}}}}}}}}}}break;case tsip_dialog_event_type_e.CANCELED:d=a.fsm_act(tsip_dialog_invite_actions_e.O_CANCEL,c,null);
break;case tsip_dialog_event_type_e.TIMEDOUT:if(!c||(!c.is_request()||!c.is_info())){d=a.fsm_act(tsip_dialog_invite_actions_e.TRANSPORT_ERROR,c,null)
}break;case tsip_dialog_event_type_e.TERMINATED:case tsip_dialog_event_type_e.ERROR:case tsip_dialog_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_dialog_invite_actions_e.TRANSPORT_ERROR,c,null);
break}return d}function __tsip_dialog_invite_cond_is_resp2invite(b,a){return a.is_response_to_invite()
}function __tsip_dialog_invite_cond_is_resp2update(b,a){return a.is_response_to_update()}function __tsip_dialog_invite_cond_is_resp2invite_or_update(b,a){return __tsip_dialog_invite_cond_is_resp2invite(b,a)||__tsip_dialog_invite_cond_is_resp2update(b,a)
}function __tsip_dialog_invite_cond_is_resp2bye(b,a){return a.is_response_to_bye()}function __tsip_dialog_invite_cond_is_resp2prack(b,a){return a.is_response_to_prack()
}function __tsip_dialog_invite_cond_is_resp2info(b,a){return a.is_response_to_info()}function __tsip_dialog_invite_cond_is_resp2cancel(b,a){return a.is_response_to_cancel()
}function __tsip_dialog_invite_cond_is_resp2refer(b,a){return a.is_response_to_refer()}function __tsip_dialog_invite_cond_is_1xx_notify(c,b){var a=__tsip_dialog_invite_get_sip_frag_respcode(b);
return(a>=100&&a<=199)}function __tsip_dialog_invite_cond_is_23456_notify(c,b){var a=__tsip_dialog_invite_get_sip_frag_respcode(b);
return(a>=200&&a<=699)}function __tsip_dialog_invite_cond_is_f_refer(c,a){var b=a.get_header(tsip_header_type_e.Refer_To);
return(!b||!b.o_uri)}function __tsip_dialog_invite_cond_is_1xx_f_notify(b,a){return a.is_1xx()}function __tsip_dialog_invite_cond_is_23456_f_notify(b,a){return a.is_23456()
}function x0000_Connected_2_Connected_X_oDTMF(a){if(a[0].o_msession_mgr&&(WebRtc4all_GetType()==WebRtcType_e.W4A||WebRtc4all_GetType()==WebRtcType_e.IE||WebRtc4all_GetType()==WebRtcType_e.NPAPI)){var b=a[2];
return a[0].o_msession_mgr.send_dtmf(b.o_content.toString())}else{return x0000_Any_2_Any_X_oINFO(a)}}function x0000_Connected_2_Connected_X_oLMessage(a){tsk_utils_log_error("Not implemented");
return 0}function x0000_Connected_2_Connected_X_iACK(a){var e=a[0];var c=a[1];var d=0;var b=e.o_msession_mgr&&!e.o_msession_mgr.has_ro();
if((d=e.process_ro(c,b))){return d}if(e.o_msession_mgr){d=e.o_msession_mgr.acked()}e.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",c);
return d}function x0000_Connected_2_Connected_X_iINVITEorUPDATE(a){var d=a[0];var e=a[1];var h;var f;
var b=d.o_msession_mgr?d.o_msession_mgr.get_media_type():tmedia_type_e.NONE;var c=d.o_msession_mgr?d.o_msession_mgr.is_roap():false;
var j;var g;d.o_last_iOffer=e;if(c){d.e_next_offer_type=tsip_dialog_invite_next_offer_type_e.SUCCESS}if((h=d.process_ro(e,true))){return h
}g=e.has_content();j=d.o_msession_mgr?d.o_msession_mgr.get_media_type():tmedia_type_e.NONE;f=!e.has_content()&&e.is_invite();
h=d.hold_handle(e);if(!c){h=d.send_response(e,200,"OK",(d.o_msession_mgr&&(g||f||d.o_msession_mgr.has_ro_changed()||d.o_msession_mgr.has_state_changed()||(b!=j))))
}d.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",e);
return h}function x0000_Connected_2_Connected_X_oINVITE(a){var c;var d=a[0];var b=a[2];if(!d.o_msession_mgr){tsk_utils_log_warn("Media Session manager is Null");
return 0}c=d.o_msession_mgr.set_media_type(b.media.e_type);d.set_action_curr(b);d.config_msession_mgr(d.o_msession_mgr);
if((iret=d.send_invite(true))){}return 0}function x0000_Any_2_Any_X_noOps(a){var c=a[0];var b=a[2];switch(b.e_type){case tsip_action_type_e.MUTE:if(c.o_msession_mgr){c.o_msession_mgr.set(tmedia_session_mgr.prototype.SetParamSession(c.o_msession_mgr.e_type,"mute-"+b.mute.s_media,b.mute.b_muted))
}break;case tsip_action_type_e.SWITCH_SOURCE:if(c.o_msession_mgr){c.o_msession_mgr.set(tmedia_session_mgr.prototype.SetParamSession(c.o_msession_mgr.e_type,b.switch_media.s_kind+"-"+b.switch_media.s_dir,b.switch_media.s_device_id))
}break;case tsip_action_type_e.SWITCH_VIDEO:if(c.o_msession_mgr){if(b.media.e_type===tmedia_type_e.VIDEO){c.o_msession_mgr.switch_to_high_video()
}else{if(b.media.e_type===tmedia_type_e.SCREEN_SHARE){c.o_msession_mgr.switch_to_screen_video()}}}break;
default:tsk_utils_log_error("Not implemented");return -1}return 0}function x0000_Any_2_Any_X_i1xx(a){var e=a[0];
var d=a[1];var c=0;if((c=e.update_with_response(d))){return c}if((d.get_response_code()>=101&&d.get_response_code()<=199)){var b=e.o_msession_mgr&&!e.o_msession_mgr.has_lo();
if(d.has_content()&&(c=e.process_ro(d,b))){return c}if(d.is_required("100rel")&&(c=e.send_prack(d))){return c
}}c=e.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST,d.get_response_code(),d.get_response_phrase(),d);
if(e.b_is_transf){c=e.notify_parent(d)}return c}function x0000_Any_2_Any_X_oINFO(a){var e=a[0];var b=a[2];
var c;e.b_running=true;e.set_action_curr(b);if((c=e.request_new("INFO"))){var d;if((d=tsip_dialog.prototype.ApplyAction(c,b))==0){d=e.request_send(c)
}return d}else{tsk_utils_log_error("Failed to create new INFO request");return -1}}function x0000_Any_2_Any_X_iINFO(a){var e=a[0];
var b=a[1];var c=e.send_response(b,200,"OK");e.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b);
if(e.o_msession_mgr&&b.has_content()){var d=b.get_content_as_string();if(!tsk_string_is_null_or_empty(d)){e.o_msession_mgr.processContent("INFO",b.get_content_type(),d,d.length)
}}return c}function x0000_Any_2_Any_X_i401_407_INVITEorUPDATE(a){var d=a[0];var b=a[1];var c=0;if((c=d.update_with_response(b))){d.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST,b.get_response_code(),b.get_response_phrase(),b);
return c}return d.send_offer(b.is_response_to_invite(),false)}function x0000_Any_2_Any_X_i2xxINVITEorUPDATE(a){var e=a[0];
var c=a[1];var d=0;if(this.o_last_oInvite&&this.o_last_oInvite.o_hdr_CSeq.i_seq==c.o_hdr_CSeq.i_seq){if(c.is_response_to_invite()){return e.send_ack(c)
}}if((d=e.update_with_response(c))){return d}var b=e.o_msession_mgr&&!e.o_msession_mgr.has_lo();if((d=e.process_ro(c,b))){return d
}if(c.is_response_to_invite()){d=e.send_ack(c)}return d}function x0000_Any_2_Any_X_iPRACK(a){tsk_utils_log_error("Not implemented");
return 0}function x0000_Any_2_Any_X_iOPTIONS(a){var c=a[0];var b=a[1];c.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b);
return c.send_response(b,200,"OK",false)}function x0000_Any_2_Trying_X_oBYE(a){var c=a[0];var b;c.signal(tsip_event_code_e.DIALOG_TERMINATING,"Call terminating...");
if((b=c.send_bye())==0){if(c.o_msession_mgr&&c.o_msession_mgr.is_started()){b=c.o_msession_mgr.stop()
}}return b}function x0000_Any_2_Terminated_X_iBYE(a){var c=a[0];var b=a[1];c.set_last_error(tsip_event_code_e.DIALOG_TERMINATED,"Call terminated");
return c.send_response(b,200,"OK",false)}function x0000_Any_2_Trying_X_shutdown(a){var b=a[0];b.timer_schedule("invite","Shutdown");
b.signal(tsip_event_code_e.DIALOG_TERMINATING,"Call terminating...");if(b.e_state==tsip_dialog_state_e.ESTABLISHED){return b.send_bye()
}else{if(b.e_state==tsip_dialog_state_e.EARLY){return b.send_cancel()}}}function x9997_Any_2_Any_X_LoSdpRequestTimeout(a){tsk_utils_log_error("Not implemented");
return 0}function x9998_Any_2_Terminated_X_transportError(a){var b=a[0];b.set_last_error(tsip_event_code_e.DIALOG_TRANSPORT_ERROR,"Transport error");
return 0}function x9999_Any_2_Terminated_X_Error(a){var b=a[0];return 0}function __tsip_dialog_invite_onterm(a){tsk_utils_log_info("invite dialog terminated");
a.timer_cancel("100Rel");a.timer_cancel("Session");a.timer_cancel("Shutdown");a.timer_cancel("LoSdpRequest");
if(a.o_msession_mgr){i_ret=a.o_msession_mgr.stop()}a.signal(tsip_event_code_e.DIALOG_TERMINATED,a.last_error.s_phrase?a.last_error.s_phrase:"Call terminated",a.last_error.o_message);
return a.deinit()}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/dialogs/tsip_dialog_invite__client.js","src/tinySIP/src/dialogs/tsip_dialog_invite__ect.js","src/tinySIP/src/dialogs/tsip_dialog_invite__hold.js","src/tinySIP/src/dialogs/tsip_dialog_invite__server.js","src/tinySIP/src/dialogs/tsip_dialog_invite__timers.js")
}tsip_dialog_invite.prototype.init_client=function(){this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.O_INVITE,tsip_dialog_invite_states_e.OUTGOING,c0000_Started_2_Outgoing_X_oINVITE,"c0000_Started_2_Outgoing_X_oINVITE"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.OUTGOING,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2invite,tsip_dialog_invite_states_e.CONNECTED,c0000_Outgoing_2_Connected_X_i2xxINVITE,"c0000_Outgoing_2_Connected_X_i2xxINVITE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING,tsip_dialog_invite_actions_e.I_INVITE,tsip_dialog_invite_states_e.OUTGOING,c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE,"c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING,tsip_dialog_invite_actions_e.I_UPDATE,tsip_dialog_invite_states_e.OUTGOING,c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE,"c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING,tsip_dialog_invite_actions_e.O_CANCEL,tsip_dialog_invite_states_e.CANCELLING,c0000_Outgoing_2_Cancelling_X_oCANCEL,"c0000_Outgoing_2_Cancelling_X_oCANCEL"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2cancel,tsip_dialog_invite_states_e.TERMINATED,null,"c0000_Cancelling_2_Terminated_X_i300_to_699"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2cancel,tsip_dialog_invite_states_e.CANCELLING,null,"c0000_Cancelling_2_Cancelling_X_i2xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2invite,tsip_dialog_invite_states_e.TERMINATED,c0000_Cancelling_2_Terminated_X_i300_to_699,"c0000_Cancelling_2_Terminated_X_i300_to_699"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.OUTGOING,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2invite,tsip_dialog_invite_states_e.TERMINATED,c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE,"c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE"))
};function c0000_Started_2_Outgoing_X_oINVITE(a){var c;var d=a[0];var b=a[2];if(!d.o_msession_mgr){d.o_msession_mgr=d.new_msession_mgr(b?b.media.e_type:tmedia_type_e.AUDIO_VIDEO,d.get_stack().network.s_local_ip,false,true)
}d.b_is_client=true;d.b_is_transf=(d.get_session().i_id_parent!=tsip_session.prototype.__i_session_id_invalid);
d.set_action_curr(b);d.get_session().media.e_type=b.media.e_type;if(b.media.ao_params.length>0){tsk_utils_log_error("Not implemented");
return -1}if(d.get_session().media.timers.i_timeout){d.stimers.i_timeout=d.get_session().media.timers.i_timeout;
d.stimers.s_refresher=d.get_session().media.timers.s_refresher;d.stimers.is_refresher=tsk_stri,g_iequals(d.stimers.s_refresher,"uac");
d.supported.b_timer=true}c=d.send_invite(false);d.signal(tsip_event_code_e.DIALOG_CONNECTING,"Call in progress...");
return c}function c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE(a){tsk_utils_log_error("Not implemented");
return 0}function c0000_Outgoing_2_Connected_X_i2xxINVITE(a){var e=a[0];var c=a[1];var d=0;if((d=e.update_with_response(c))){return ret
}var b=e.o_msession_mgr&&!e.o_msession_mgr.has_lo();if((d=e.process_ro(c,b))){return d}else{d=e.send_ack(c)
}e.b_support_update=c.is_allowed("UPDATE");if(e.stimers.i_timeout){e.stimers_handle(c)}e.signal_invite(tsip_event_invite_type_e.M_EARLY_MEDIA,c.get_response_code(),c.get_response_phrase(),c);
e.signal(tsip_event_code_e.DIALOG_CONNECTED,"In Call");if(e.b_is_transf){d=e.notify_parent(c);e.b_is_transf=false
}return d}function c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE(a){var d=a[0];var b=a[1];var c=0;
d.set_last_error(b.get_response_code(),b.get_response_phrase(),b);c=d.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST,b.get_response_code(),b.get_response_phrase(),b);
if(d.b_is_transf){c=d.notify_parent(b);d.b_is_transf=false}return c}function c0000_Outgoing_2_Cancelling_X_oCANCEL(a){var b=a[0];
if(b.o_msession_mgr){i_ret=b.o_msession_mgr.stop()}b.signal(tsip_event_code_e.DIALOG_TERMINATING,"Call terminating...");
return b.send_cancel()}function c0000_Cancelling_2_Terminated_X_i300_to_699(a){var c=a[0];var b=a[1];
c.set_last_error(b.get_response_code(),b.get_response_phrase(),b);return 0}var x0400_Connected_2_Connected_X_fREFER=null;
tsip_dialog_invite.prototype.init_ect=function(){this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.O_ECT,tsip_dialog_invite_states_e.O_ECT_INPROGRESS,x0400_Connected_2_oECTing_X_oECT,"x0400_Connected_2_oECTing_X_oECT"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2refer,tsip_dialog_invite_states_e.O_ECT_INPROGRESS,x0400_oECTing_2_oECTing_X_i2xx,"x0400_oECTing_2_oECTing_X_i2xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2refer,tsip_dialog_invite_states_e.CONNECTED,x0400_oECTing_2_Connected_X_i3456,"x0400_ECTing_2_Connected_X_i36"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_NOTIFY,__tsip_dialog_invite_cond_is_1xx_notify,tsip_dialog_invite_states_e.O_ECT_INPROGRESS,x0400_oECTing_2_oECTing_X_iNOTIFY,"x0400_oECTing_2_oECTing_X_iNOTIFY"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_NOTIFY,__tsip_dialog_invite_cond_is_23456_notify,tsip_dialog_invite_states_e.CONNECTED,x0400_oECTing_2_Connected_X_iNOTIFY,"x0400_oECTing_2_Connected_X_iNOTIFY"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.I_REFER,__tsip_dialog_invite_cond_is_f_refer,tsip_dialog_invite_states_e.CONNECTED,x0400_Connected_2_Connected_X_fREFER,"x0400_Connected_2_Connected_X_fREFER"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.I_REFER,tsip_dialog_invite_states_e.I_ECT_REQUESTED,x0400_Connected_2_iECTreq_X_iREFER,"x0400_Connected_2_iECTreq_X_iREFER"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.I_ECT_REQUESTED,tsip_dialog_invite_actions_e.I_ECT_REJECT,tsip_dialog_invite_states_e.CONNECTED,x0400_iECTreq_2_Connected_X_reject,"x0400_iECTreq_2_Connected_X_reject"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.I_ECT_REQUESTED,tsip_dialog_invite_actions_e.I_ECT_ACCEPT,tsip_dialog_invite_states_e.I_ECT_INPROGRESS,x0400_iECTreq_2_iECTing_X_accept,"x0400_iECTreq_2_iECTing_X_accept"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.I_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_ECT_LNOTIFY,__tsip_dialog_invite_cond_is_1xx_f_notify,tsip_dialog_invite_states_e.I_ECT_INPROGRESS,x0400_iECTing_2_iECTing_X_1xxfNOTIFY,"x0400_iECTing_2_iECTing_X_1xxfNOTIFY"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.I_ECT_INPROGRESS,tsip_dialog_invite_actions_e.I_ECT_LNOTIFY,__tsip_dialog_invite_cond_is_23456_f_notify,tsip_dialog_invite_states_e.CONNECTED,x0400_iECTing_2_Connected_X_23456fNOTIFY,"x0400_iECTing_2_Connected_X_23456fNOTIFY"))
};tsip_dialog_invite.prototype.ect_send_notify=function(a,b){var e;var c=-1;if((e=this.request_new("NOTIFY"))){var d=tsk_string_format("{0} {1} {2}\r\n",tsip_message.prototype.__s_version_default,a,b);
e.add_content(d,"message/sipfrag");c=this.request_send(e);if(c==0){this.signal_invite(tsip_event_invite_type_e.O_ECT_NOTIFY,a,b,e)
}}else{tsk_utils_log_error("Failed to create request")}return c};tsip_dialog_invite.prototype.ect_send_refer=function(a){var e=0;
var d;var b;if(!a){tsk_utils_log_error("Invalid parameter");return -1}if(!(b=tsip_uri.prototype.Parse(a))){tsk_utils_log_error("Failed to parse "+a);
return -1}if((d=this.request_new("REFER"))){var c=new tsip_header_Referred_By(this.get_stack().identity.o_uri_impu);
c.add_param("cid",tsk_string_random(11));d.add_headers(new tsip_header_Refer_To(b),c,new tsip_header_Refer_Sub(this.supported.b_refer_sub));
if(this.supported.b_norefsub){d.add_headers(new tsip_header_Supported("norefersub"))}e=this.request_send(d)
}return e};function x0400_Connected_2_oECTing_X_oECT(a){var c;var d=a[0];var b=a[2];c=d.ect_send_refer(b.ect.s_to);
if(c==0){d.signal_invite(tsip_event_invite_type_e.O_ECT_TRYING,tsip_event_code_e.DIALOG_REQUEST_SENT,"Call Transfer Initiated",null)
}return c}function x0400_oECTing_2_oECTing_X_i2xx(a){var d=a[0];var c=a[1];var b;b=c.get_header(tsip_header_type_e.Refer_Sub);
if(b){this.supported.b_refer_sub=b.b_sub}if(c.is_required("norefersub")){this.require.b_norefsub=true
}d.signal_invite(tsip_event_invite_type_e.O_ECT_ACCEPTED,c.get_response_code(),c.get_response_phrase(),c);
return 0}function x0400_oECTing_2_Connected_X_i3456(a){var c=a[0];var b=a[1];c.signal_invite(tsip_event_invite_type_e.O_ECT_FAILED,b.get_response_code(),b.get_response_phrase(),b);
return 0}function x0400_oECTing_2_oECTing_X_iNOTIFY(b){var e=b[0];var d=b[1];var a;if((a=__tsip_dialog_invite_get_sip_frag_msg(d))){var c=e.send_response(d,200,"OK",false);
e.signal_invite(tsip_event_invite_type_e.O_ECT_NOTIFY,a.get_response_code(),a.get_response_phrase(),a);
return c}return 0}var x0400_oECTing_2_Connected_X_iNOTIFY=x0400_oECTing_2_oECTing_X_iNOTIFY;function x0400_Connected_2_iECTreq_X_iREFER(a){var b=a[0];
b.o_last_iRefer=a[1];b.send_response(b.o_last_iRefer,100,"Asking for Transfer",false);b.signal_invite(tsip_event_invite_type_e.I_ECT_REQUESTED,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b.o_last_iRefer);
return 0}function x0400_iECTreq_2_Connected_X_reject(b){var f=b[0];var c=b[2];var a=c.line_resp.i_code>=300?c.line_resp.i_code:603;
var e=c.line_resp.s_phrase?c.line_resp.s_phrase:"Decline";var d=tsk_string_format('SIP; cause={0}; text="{1}"',a,e);
return f.send_error(f.o_last_iRefer,a,e,d)}function x0400_iECTreq_2_iECTing_X_accept(a){var d;var e=a[0];
var b=a[2];d=e.send_response(e.o_last_iRefer,202,"Transfering...",false);var c=e.o_last_iRefer.get_header(tsip_header_type_e.Refer_To);
this.o_ss_transf=new tsip_session_invite(e.get_stack(),tsip_session.prototype.SetToStr(c.o_uri.tostring(false,false)),tsip_session.prototype.SetCaps("+sip.ice"));
this.o_ss_transf.media.e_type=e.get_session().media.e_type;this.o_ss_transf.i_id_parent=e.get_session().get_id();
tsip_event.prototype.Signal(tsip_event_invite_type_e.I_ECT_NEW_CALL,this.o_ss_transf,tsip_event_code_e.DIALOG_REQUEST_OUTGOING,"ECTing",e.o_last_iRefer);
return this.o_ss_transf.call(this.o_ss_transf.media.e_type)}function x0400_iECTing_2_iECTing_X_1xxfNOTIFY(a){var c=a[0];
var b=a[1];return c.ect_send_notify(b.get_response_code(),b.get_response_phrase())}function x0400_iECTing_2_Connected_X_23456fNOTIFY(b){var d=b[0];
var c=b[1];var a=c.get_response_code();d.ect_send_notify(a,c.get_response_phrase());if(a>=200&&a<=299){d.signal_invite(tsip_event_invite_type_e.I_ECT_COMPLETED,c.get_response_code(),c.get_response_phrase(),d.o_last_iRefer);
return d.send_bye()}else{d.signal_invite(tsip_event_invite_type_e.I_ECT_FAILED,c.get_response_code(),c.get_response_phrase(),d.o_last_iRefer);
return 0}}function __tsip_dialog_invite_get_sip_frag_respcode(b){var a=__tsip_dialog_invite_get_sip_frag_msg(b);
return a?a.get_response_code():0}function __tsip_dialog_invite_get_sip_frag_msg(d){if(!d){tsk_utils_log_error("Invalid parameter");
return null}var a;if(d.has_content()&&tsk_string_iequals(d.get_content_type(),"message/sipfrag")){var b=d.get_content_as_string();
if(b){if(b.lastIndexOf("\r\n")!=(b.length-2)){b+="\r\n"}b+="\r\n";var c=tsk_ragel_state_create();tsk_ragel_state_init_str(c,b);
a=tsip_message.prototype.Parse(c,false);if(a&&!a.is_response()){tsk_utils_log_error("SipFrag doesn't contain response");
return null}}}return a}tsip_dialog_invite.prototype.init_hold=function(){this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.O_HOLD,tsip_dialog_invite_states_e.HOLDING,x0100_Connected_2_Holding_X_oHold,"x0100_Connected_2_Holding_X_oHold"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.HOLDING,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2invite_or_update,tsip_dialog_invite_states_e.CONNECTED,x0101_Holding_2_Connected_X_ixxx,"x0101_Holding_2_Connected_X_ixxx"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.HOLDING,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2invite_or_update,tsip_dialog_invite_states_e.CONNECTED,x0101_Holding_2_Connected_X_ixxx,"x0101_Holding_2_Connected_X_ixxx"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED,tsip_dialog_invite_actions_e.O_RESUME,tsip_dialog_invite_states_e.RESUMING,x0102_Connected_2_Resuming_X_oResume,"x0102_Connected_2_Resuming_X_oResume"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RESUMING,tsip_dialog_invite_actions_e.I_2XX,__tsip_dialog_invite_cond_is_resp2invite_or_update,tsip_dialog_invite_states_e.CONNECTED,x0103_Resuming_2_Connected_X_ixxx,"x0103_Resuming_2_Connected_X_ixxx"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RESUMING,tsip_dialog_invite_actions_e.I_300_to_699,__tsip_dialog_invite_cond_is_resp2invite_or_update,tsip_dialog_invite_states_e.CONNECTED,x0103_Resuming_2_Connected_X_ixxx,"x0103_Resuming_2_Connected_X_ixxx"))
};tsip_dialog_invite.prototype.hold_handle=function(c){if(!c||!this.o_msession_mgr||(!c.is_invite()&&!c.is_update())){tsk_utils_log_error("Invalid parameter");
return -1}var b;var a;var d=0;b=this.o_msession_mgr.is_held(this.o_msession_mgr.e_type,false);a=!c.has_content()&&c.is_invite();
if(a&&b){if((d=this.o_msession_mgr.resume(this.o_msession_mgr.e_type,false))==0){b=false}}if(d==0&&(b!=this.hold.b_remote)){this.hold.b_remote=b;
this.signal_invite(this.hold.b_remote?tsip_event_invite_type_e.M_REMOTE_HOLD:tsip_event_invite_type_e.M_REMOTE_RESUME,tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING,"Hold/Resume state changed",c)
}return d};function x0100_Connected_2_Holding_X_oHold(a){var c;var d=a[0];var b=a[2];if(!d.o_msession_mgr){tsk_utils_log_warn("Media Session manager is Null");
return 0}c=d.o_msession_mgr.hold(b.media.e_type);d.set_action_curr(b);if((iret=d.send_invite(false))){}return 0
}function x0101_Holding_2_Connected_X_ixxx(a){var c;var d=a[0];var b=a[1];d.set_action_curr(null);if((c=d.process_ro(b))){return c
}else{if(b.is_response_to_invite()){c=d.send_ack(b)}}if(b.is_2xx()){d.signal_invite(tsip_event_invite_type_e.M_LOCAL_HOLD_OK,b.get_response_code(),b.get_response_phrase(),b);
d.hold.b_local=true}else{d.signal_invite(tsip_event_invite_type_e.M_LOCAL_HOLD_NOK,b.get_response_code(),b.get_response_phrase(),b);
d.hold.b_local=false}return c}function x0102_Connected_2_Resuming_X_oResume(a){var c;var d=a[0];var b=a[2];
if(!d.hold.b_local){tsk_utils_log_warn("Not on hold state");return 0}if(!d.o_msession_mgr){tsk_utils_log_warn("Media Session manager is Null");
return 0}c=d.o_msession_mgr.resume(b.media.e_type,true);c=d.o_msession_mgr.resume(b.media.e_type,false);
d.set_action_curr(b);if((c=d.send_invite(false))){}return 0}function x0103_Resuming_2_Connected_X_ixxx(a){var c;
var d=a[0];var b=a[1];d.set_action_curr(null);if((c=d.process_ro(b))){return c}else{if(b.is_response_to_invite()){c=d.send_ack(b)
}}if(b.is_2xx()){d.signal_invite(tsip_event_invite_type_e.M_LOCAL_RESUME_OK,b.get_response_code(),b.get_response_phrase(),b);
d.hold.b_local=false}else{d.signal_invite(tsip_event_invite_type_e.M_LOCAL_RESUME_NOK,b.get_response_code(),b.get_response_phrase(),b);
d.hold.b_local=true}return c}tsip_dialog_invite.prototype.__ao_supported_options=["100rel","timer"];tsip_dialog_invite.prototype.init_server=function(){this.o_fsm.set(tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.I_INVITE,__tsip_dialog_invite_cond_is_bad_extension,tsip_dialog_invite_states_e.TERMINATED,s0000_Started_2_Terminated_X_iINVITE,"s0000_Started_2_Terminated_X_iINVITE"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.I_INVITE,__tsip_dialog_invite_cond_is_bad_content,tsip_dialog_invite_states_e.TERMINATED,s0000_Started_2_Terminated_X_iINVITE,"s0000_Started_2_Terminated_X_iINVITE"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.I_INVITE,__tsip_dialog_invite_cond_is_toosmall,tsip_dialog_invite_states_e.STARTED,s0000_Started_2_Started_X_iINVITE,"s0000_Started_2_Started_X_iINVITE"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.I_INVITE,__tsip_dialog_invite_cond_enable_100rel,tsip_dialog_invite_states_e.INPROGRESS,s0000_Started_2_InProgress_X_iINVITE,"s0000_Started_2_InProgress_X_iINVITE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.STARTED,tsip_dialog_invite_actions_e.I_INVITE,tsip_dialog_invite_states_e.RINGING,s0000_Started_2_Ringing_X_iINVITE,"s0000_Started_2_Ringing_X_iINVITE"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.INPROGRESS,tsip_dialog_invite_actions_e.I_PRACK,__tsip_dialog_invite_cond_prack_matched,tsip_dialog_invite_states_e.RINGING,s0000_InProgress_2_Ringing_X_iPRACK,"s0000_InProgress_2_Ringing_X_iPRACK"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.INPROGRESS,tsip_dialog_invite_actions_e.I_UPDATE,tsip_dialog_invite_states_e.INPROGRESS,s0000_InProgress_2_InProgress_X_iUPDATE,"s0000_InProgress_2_InProgress_X_iUPDATE"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.INPROGRESS,tsip_dialog_invite_actions_e.I_CANCEL,tsip_dialog_invite_states_e.TERMINATED,s0000_Inprogress_2_Terminated_X_iCANCEL,"s0000_Inprogress_2_Terminated_X_iCANCEL"),tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RINGING,tsip_dialog_invite_actions_e.I_PRACK,__tsip_dialog_invite_cond_prack_matched,tsip_dialog_invite_states_e.RINGING,s0000_Ringing_2_Ringing_X_iPRACK,"s0000_Ringing_2_Ringing_X_iPRACK"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING,tsip_dialog_invite_actions_e.ACCEPT,tsip_dialog_invite_states_e.CONNECTED,s0000_Ringing_2_Connected_X_Accept,"s0000_Ringing_2_Connected_X_Accept"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING,tsip_dialog_invite_actions_e.REJECT,tsip_dialog_invite_states_e.TERMINATED,s0000_Ringing_2_Terminated_X_Reject,"s0000_Ringing_2_Terminated_X_Reject"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING,tsip_dialog_invite_actions_e.I_CANCEL,tsip_dialog_invite_states_e.TERMINATED,s0000_Ringing_2_Terminated_X_iCANCEL,"s0000_Ringing_2_Terminated_X_iCANCEL"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.TIMER_100REL,tsk_fsm.prototype.__i_state_any,s0000_Any_2_Any_X_timer100rel,"s0000_Any_2_Any_X_timer100rel"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_invite_actions_e.I_CANCEL,tsip_dialog_invite_states_e.TERMINATED,s0000_Ringing_2_Terminated_X_iCANCEL,"s0000_Ringing_2_Terminated_X_iCANCEL"))
};function __tsip_dialog_invite_cond_is_bad_extension(h,g){var e;var d,c,b;for(d=0;(e=g.get_header_at(tsip_header_type_e.Require,d));
++d){var f=false;var a=null;for(b=0;b<e.as_options.length;++b){f=true;a=e.as_options[b];for(c=0;a&&c<tsip_dialog_invite.prototype.__ao_supported_options.length;
++c){if(tsk_string_iequals(a,tsip_dialog_invite.prototype.__ao_supported_options[c])){f=false;break}}if(f){break
}}if(f&&a){h.send_unsupported(g,a);return true}}return false}function __tsip_dialog_invite_cond_is_bad_content(f,c){var d;
var a;var e=(f.e_state==tsip_dialog_state_e.initial&&!c.has_content());var b=f.o_msession_mgr&&!f.o_msession_mgr.has_ro();
if((d=f.process_ro(c,b))){d=f.send_error(c,488,"Not Acceptable",'SIP; cause=488; text="Bad content"');
return true}return false}function __tsip_dialog_invite_cond_is_toosmall(d,a){if(d.get_session().media.timers.i_timeout&&(a.is_supported("timer")||a.is_required("timer"))){var b;
if((b=a.get_header(tsip_header_type_e.Session_Expires))){if(b.i_delta_seconds<TSIP_SESSION_EXPIRES_MIN_VALUE){d.stimers.i_minse=TSIP_SESSION_EXPIRES_MIN_VALUE;
d.send_response(a,422,"Session Interval Too Small",false);return true}else{var c;d.stimers.i_timeout=b.i_delta_seconds;
d.stimers.s_refresher=b.b_refresher_uas?"uas":"uac";d.stimers.b_is_refresher=tsk_string_iequals(d.stimers.s_refresher,"uas");
if((c=a.get_header(tsip_header_type_e.Min_SE))){d.stimers.i_minse=c.i_value}}}}return false}function __tsip_dialog_invite_cond_enable_100rel(b,a){return((a.is_supported("100rel")&&b.supported.b_100rel)||a.is_required("100rel"))
}function __tsip_dialog_invite_cond_prack_matched(c,b){var a;if(!c.o_last_o1xxrel){return false}if((a=b.get_header(tsip_header_type_e.RAck))){if((a.i_seq==c.i_rseq)&&(tsk_string_iequals(a.s_method,c.o_last_o1xxrel.o_hdr_CSeq.s_method))&&(a.i_cseq==c.o_last_o1xxrel.o_hdr_CSeq.i_seq)){c.i_rseq++;
return true}else{tsk_utils_log_warn("Failed to match PRACK request")}}return false}function s0000_Started_2_Terminated_X_iINVITE(a){return 0
}function s0000_Started_2_Started_X_iINVITE(a){var b=a[0];b.b_is_client=false;return 0}function s0000_Started_2_InProgress_X_iINVITE(a){var c=a[0];
var b=a[1];c.b_is_client=false;c.o_last_iInvite=b;c.b_support_update=b.is_allowed("UPDATE");c.update_with_invite(b);
c.i_rseq=Math.floor((Math.random()*65535));c.require.b_100rel=true;return c.send_response(b,183,"Session in Progress",true)
}function s0000_Started_2_Ringing_X_iINVITE(a){var d=a[0];var b=a[1];var c;d.b_is_client=false;d.o_last_iInvite=b;
d.b_support_update=b.is_allowed("UPDATE");d.o_msession_mgr.candidate_rtcp(false);if(d.o_last_iInvite&&(d.o_last_iInvite.is_supported("100rel")||d.o_last_iInvite.is_required("100rel"))&&d.supported.b_100rel){d.require.b_100rel=true
}if(d.get_session().media.timers.i_timeout){if((c=b.get_header(tsip_header_type_e.Session_Expires))){d.stimers.timer.i_timeout=c.i_delta_seconds;
d.stimers.s_refresher=c.s_refresher_uas?"uas":"uac";d.stimers.b_is_refresher=c.s_refresher_uas;d.require.b_timer=true
}}d.update_with_invite(b);d.send_response(b,180,"Ringing",false);d.signal_invite(tsip_event_invite_type_e.I_NEW_CALL,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Call",b);
return 0}function s0000_InProgress_2_Ringing_X_iPRACK(a){var e=a[0];var c=a[1];var d;e.timer_cancel("100Rel");
if((d=e.send_response(c,200,"OK",false))==0){++e.i_rseq}if(e.o_msession_mgr&&!e.o_msession_mgr.sdp.o_ro){if(c.has_content()){var b=e.o_msession_mgr&&!e.o_msession_mgr.has_ro();
if((d=e.process_ro(c,b))){d=e.send_error(e.o_last_iInvite,488,"Not Acceptable",'SIP; cause=488; text="Bad content"');
return -4}}else{d=e.send_error(e.o_last_iInvite,488,"Not Acceptable",'SIP; cause=488; text="Offer expected in the PRACK"');
return -3}}d=e.send_response(e.o_last_iInvite,180,"Ringing",false);e.signal_invite(tsip_event_invite_type_e.I_NEW_CALL,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Call",c);
return d}function s0000_InProgress_2_InProgress_X_iUPDATE(a){tsk_utils_log_error("Not implemented");return 0
}function s0000_Inprogress_2_Terminated_X_iCANCEL(a){tsk_utils_log_error("Not implemented");return 0}function s0000_Ringing_2_Ringing_X_iPRACK(a){var d=a[0];
var b=a[1];var c;if(!d.o_last_iInvite){return 0}d.timer_cancel("100Rel");c=d.send_response(b,200,"OK",false);
d.signal_invite(tsip_event_invite_type_e.I_REQUEST,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b);
return c}function s0000_Ringing_2_Connected_X_Accept(c){var f=c[0];var d=c[2];var e=0;var b=0;f.e_state=tsip_dialog_state_e.ACCEPT;
f.set_action_curr(d);if(f.o_msession_mgr&&!f.o_msession_mgr.is_started()&&(f.o_msession_mgr.has_lo()&&f.o_msession_mgr.has_ro())){e=f.o_msession_mgr.start()
}f.timer_cancel("100Rel");if(f.stimers.i_timeout){if(f.stimers.b_is_refresher){tsk_utils_log_error("Not implemented")
}else{tsk_utils_log_error("Not implemented")}}function a(g){if(g.o_msession_mgr.has_lo()){e=g.send_response(g.o_last_iInvite,200,"OK",true);
g.e_state=tsip_dialog_state_e.ESTABLISHED;g.signal(tsip_event_code_e.DIALOG_CONNECTED,"In call")}else{if(b<100){setTimeout(function(){a(g)
},100)}else{tsk_utils_log_warn("there has no local sdp(ice is not ok!), 10s timeout");e=g.send_response(g.o_last_iInvite,488,"Not Acceptable Here",'SIP; cause=488; text="ICE state is not OK"');
g.signal(tsip_event_code_e.DIALOG_TERMINATED,"Call terminated")}b+=1}}a(f);return e}function s0000_Ringing_2_Terminated_X_Reject(b){var f;
var a;var e;var d;var g=b[0];var c=b[2];g.set_action_curr(c);g.timer_cancel("100Rel");a=(c&&c.line_resp.i_code>=300)?c.line_resp.i_code:603;
e=(c&&c.line_resp.s_phrase)?c.line_resp.s_phrase:"Decline";d=tsk_string_format('SIP; cause={0}; text="{1}"',a,e);
f=g.send_error(g.o_last_iInvite,a,e,d);g.set_last_error(a,"Call Rejected");return f}function s0000_Ringing_2_Terminated_X_iCANCEL(a){var e=a[0];
var b=a[1];var c;var d;if((c=e.response_new(200,"OK",b))){d=e.get_stack().o_layer_transport.send(null,c)
}d=e.send_error(e.o_last_iInvite,487,"Request Cancelled",'SIP; cause=487; text="Request Cancelled"');
e.set_last_error(487,"Request Cancelled");e.signal_invite(tsip_event_invite_type_e.I_REQUEST,tsip_event_code_e.DIALOG_REQUEST_INCOMING,"Incoming Request",b);
return d}function s0000_Any_2_Any_X_timer100rel(a){var c=a[0];var b;if(!c.o_last_o1xxrel){return 0}if((c.i_timer100Rel<<=1)>=(c.get_stack().o_timers.getA()<<6)){tsk_utils_log_error("Sending reliable 1xx failed");
return -2}if((b=c.response_send(c.o_last_o1xxrel))){return b}else{c.timer_schedule("invite","100Rel")
}return b}tsip_dialog_register.prototype=Object.create(tsip_dialog.prototype);tsip_dialog_register.prototype.__b_debug_state_machine=true;
var tsip_dialog_register_actions_e={ACCEPT:tsip_action_type_e.ACCEPT,REJECT:tsip_action_type_e.REJECT,HANGUP:tsip_action_type_e.HANGUP,O_REGISTER:tsip_action_type_e.REGISTER,CANCEL:tsip_action_type_e.CANCEL,SHUTDOWN:tsip_action_type_e.SHUTDOWN,I_1XX:10001,I_2XX:10002,I_401_407_421_494:10003,I_423:10004,I_300_to_699:10005,I_REGISTER:20000,SHUTDOWN_TIMEDOUT:30000,TRANSPORT_ERROR:30001,ERROR:30002};
var tsip_dialog_register_states_e={STARTED:0,INPROGRESS:1,INCOMING:2,CONNECTED:3,TERMINATED:4};function tsip_dialog_register(b,a){tsip_dialog.call(this);
this.o_last_iRegister=null;this.b_unregistering=false;this.b_is_server=false;this.o_timerRefresh=null;
this.o_timerShutdown=null;this.i_timerShutdown=(tsip_dialog.prototype.__i_timer_shutdown<<1)/3;this.init(tsip_dialog_type_e.REGISTER,a,b,tsip_dialog_register_states_e.STARTED,tsip_dialog_register_states_e.TERMINATED);
this.set_callback(__tsip_dialog_register_event_callback);this.o_fsm.set_debug_enabled(tsip_dialog_register.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_dialog_register_onterm,this);this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.STARTED,tsip_dialog_register_actions_e.O_REGISTER,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_Started_2_InProgress_X_oRegister,"tsip_dialog_register_Started_2_InProgress_X_oRegister"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_1XX,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_InProgress_2_InProgress_X_1xx,"tsip_dialog_register_InProgress_2_InProgress_X_1xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_2XX,__tsip_dialog_register_cond_client_unregistering,tsip_dialog_register_states_e.TERMINATED,__tsip_dialog_register_InProgress_2_Terminated_X_2xx,"tsip_dialog_register_InProgress_2_Terminated_X_2xx"),tsk_fsm_entry.prototype.Create(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_2XX,__tsip_dialog_register_cond_client_registering,tsip_dialog_register_states_e.CONNECTED,__tsip_dialog_register_InProgress_2_Connected_X_2xx,"tsip_dialog_register_InProgress_2_Connected_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_401_407_421_494,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494,"tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_423,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_InProgress_2_InProgress_X_423,"tsip_dialog_register_InProgress_2_InProgress_X_423"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.I_300_to_699,tsip_dialog_register_states_e.TERMINATED,__tsip_dialog_register_InProgress_2_Terminated_X_300_to_699,"tsip_dialog_register_InProgress_2_Terminated_X_300_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.CANCEL,tsip_dialog_register_states_e.TERMINATED,__tsip_dialog_register_InProgress_2_Terminated_X_cancel,"tsip_dialog_register_InProgress_2_Terminated_X_cancel"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.HANGUP,tsip_dialog_register_states_e.TERMINATED,null,"tsip_dialog_register_InProgress_2_Terminated_X_hangup"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS,tsip_dialog_register_actions_e.SHUTDOWN,tsip_dialog_register_states_e.TERMINATED,null,"tsip_dialog_register_InProgress_2_Terminated_X_shutdown"),tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.CONNECTED,tsip_dialog_register_actions_e.O_REGISTER,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_Connected_2_InProgress_X_oRegister,"tsip_dialog_register_Connected_2_InProgress_X_oRegister"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.HANGUP,__tsip_dialog_register_cond_not_silent_hangup,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_Any_2_InProgress_X_hangup,"tsip_dialog_register_Any_2_InProgress_X_hangup"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.HANGUP,__tsip_dialog_register_cond_silent_hangup,tsip_dialog_register_states_e.TERMINATED,null,"tsip_dialog_register_Any_2_InProgress_X_silenthangup"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.SHUTDOWN,__tsip_dialog_register_cond_not_silent_shutdown,tsip_dialog_register_states_e.INPROGRESS,__tsip_dialog_register_Any_2_InProgress_X_shutdown,"tsip_dialog_register_Any_2_InProgress_X_shutdown"),tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.SHUTDOWN,__tsip_dialog_register_cond_silent_shutdown,tsip_dialog_register_states_e.TERMINATED,null,"tsip_dialog_register_Any_2_InProgress_X_silentshutdown"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.SHUTDOWN_TIMEDOUT,tsip_dialog_register_states_e.TERMINATED,null,"tsip_dialog_register_shutdown_timedout"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.TRANSPORT_ERROR,tsip_dialog_register_states_e.TERMINATED,__tsip_dialog_register_Any_2_Terminated_X_transportError,"tsip_dialog_register_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_dialog_register_actions_e.ERROR,tsip_dialog_register_states_e.TERMINATED,__tsip_dialog_register_Any_2_Terminated_X_Error,"tsip_dialog_register_Any_2_Terminated_X_Error"))
}tsip_dialog_register.prototype.signal_register=function(b,a,d,c){var e=new tsip_event_register(this.get_session(),a,d,c,b);
return e.signal()};tsip_dialog_register.prototype.send_register=function(a){var b=null;var c=-1;if(this.b_unregistering){this.i_expires=0
}if((b=this.request_new("REGISTER"))){if(this.e_state==tsip_dialog_state_e.INITIAL){b.add_header(new tsip_header_Supported("path"))
}if(this.o_action_curr){tsip_dialog.prototype.ApplyAction(b,this.o_action_curr)}if((c=this.request_send(b))==0){this.signal(tsip_event_code_e.DIALOG_REQUEST_SENT,tsk_string_format("{0}REGISTER request successfully sent",this.b_unregistering?"un":""))
}else{this.signal(tsip_event_code_e.DIALOG_TRANSPORT_ERROR,"Transport error")}}return c};function __tsip_dialog_register_timer_callback(b,a){var c=-1;
if(b){if(b.o_timerRefresh==a){c=b.fsm_act(tsip_dialog_register_actions_e.O_REGISTER,null,null)}else{if(b.o_timerShutdown==a){c=b.fsm_act(tsip_dialog_register_actions_e.SHUTDOWN,null,null)
}}}return c}function __tsip_dialog_register_event_callback(a,b,c){var d=-1;switch(b){case tsip_dialog_event_type_e.I_MSG:if(c){if(c.is_response()){if(c.is_1xx()){d=a.fsm_act(tsip_dialog_register_actions_e.I_1XX,c,null)
}else{if(c.is_2xx()){d=a.fsm_act(tsip_dialog_register_actions_e.I_2XX,c,null)}else{if(c.is_response_xxx(401)||c.is_response_xxx(407)||c.is_response_xxx(421)||c.is_response_xxx(494)){d=a.fsm_act(tsip_dialog_register_actions_e.I_401_407_421_494,c,null)
}else{if(c.is_response_xxx(423)){d=a.fsm_act(tsip_dialog_register_actions_e.I_423,c,null)}else{d=a.fsm_act(tsip_dialog_register_actions_e.ERROR,c,null)
}}}}}else{if(c.is_register()){d=a.fsm_act(tsip_dialog_register_actions_e.I_REGISTER,c,null)}}}break;case tsip_dialog_event_type_e.CANCELED:d=a.fsm_act(tsip_dialog_register_actions_e.CANCEL,c,null);
break;case tsip_dialog_event_type_e.TERMINATED:case tsip_dialog_event_type_e.TIMEDOUT:case tsip_dialog_event_type_e.ERROR:case tsip_dialog_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_dialog_register_actions_e.TRANSPORT_ERROR,c,null);
break}return d}function __tsip_dialog_register_cond_client_unregistering(b,a){return !b.b_is_server&&b.b_unregistering
}function __tsip_dialog_register_cond_client_registering(b,a){return !__tsip_dialog_register_cond_client_unregistering(b,a)
}function __tsip_dialog_register_cond_silent_hangup(b,a){return b.o_session.b_silent_hangup}function __tsip_dialog_register_cond_not_silent_hangup(b,a){return !__tsip_dialog_register_cond_silent_hangup(b,a)
}function __tsip_dialog_register_cond_silent_shutdown(b,a){return __tsip_dialog_register_cond_silent_hangup(b,a)
}function __tsip_dialog_register_cond_not_silent_shutdown(b,a){return !__tsip_dialog_register_cond_silent_shutdown(b,a)
}function __tsip_dialog_register_Started_2_InProgress_X_oRegister(a){var c=a[0];var b=a[2];c.b_running=true;
c.set_action_curr(b);c.signal(tsip_event_code_e.DIALOG_CONNECTING,"Connecting...");return c.send_register(true)
}function __tsip_dialog_register_InProgress_2_InProgress_X_1xx(a){var c=a[0];var b=a[1];c.signal_register(tsip_event_register_type_e.AO_REGISTER,b.get_response_code(),b.get_response_phrase(),b);
return c.update_with_response(b)}function __tsip_dialog_register_InProgress_2_Terminated_X_2xx(a){var c=a[0];
var b=a[1];c.set_last_error(b.get_response_code(),b.get_response_phrase(),b);c.signal_register(tsip_event_register_type_e.AO_UNREGISTER,b.get_response_code(),b.get_response_phrase(),b);
return 0}function __tsip_dialog_register_InProgress_2_Connected_X_2xx(a){var d=a[0];var b=a[1];var k;
var h=(d.e_state==tsip_dialog_state_e.INITIAL);var e=d.get_stack();var j;var g;var c;var n;e.ao_uri_associated_uris.splice(0,e.ao_uri_associated_uris.length);
e.ao_uri_service_routes.splice(0,e.ao_uri_service_routes.length);e.ao_uri_paths.splice(0,e.ao_uri_paths.length);
for(j=0;(n=b.get_header_at(tsip_header_type_e.P_Associated_URI,j));++j){if(n.o_uri){e.ao_uri_associated_uris.push(n.o_uri)
}}for(j=0;(c=b.get_header_at(tsip_header_type_e.Service_Route,j));++j){if(c.o_uri){e.ao_uri_service_routes.push(c.o_uri)
}}for(j=0;(g=b.get_header_at(tsip_header_type_e.Path,j));++j){if(g.o_uri){e.ao_uri_paths.push(g.o_uri)
}}if(h){var f=true;var m;var l=null;for(j=0;j<e.ao_uri_associated_uris.length;++j){if(!(m=e.ao_uri_associated_uris[j].o_uri)){continue
}if(j==0){l=e.ao_uri_associated_uris[j].o_uri}if(e.identity.o_uri_pref.compare(m)==0){f=false;break}}if(f&&l){e.identity.o_uri_pref=l
}}if((k=d.update_with_response(b))!=0){return k}d.set_action_curr(null);d.i_timerRefresh=d.get_newdelay(b);
tsk_utils_log_debug("register session refresh time:"+d.i_timerRefresh);d.timer_schedule("register","Refresh");
d.signal_register(tsip_event_register_type_e.AO_REGISTER,b.get_response_code(),b.get_response_phrase(),b);
if(h){d.signal(tsip_event_code_e.DIALOG_CONNECTED,"Connected")}return k}function __tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494(a){var d=a[0];
var b=a[1];var c;if((c=d.update_with_response(b))){d.signal_register(tsip_event_register_type_e.AO_REGISTER,b.get_response_code(),b.get_response_phrase(),b);
d.set_last_error(b.get_response_code(),b.get_response_phrase(),b);return c}return d.send_register(false)
}function __tsip_dialog_register_InProgress_2_InProgress_X_423(a){var e=a[0];var c=a[1];var b;var d=0;
b=c.get_header(tsip_header_type_e.Min_Expires);if(b){e.i_expires=(b.i_value*1000);d=e.send_register(false)
}else{tsk_utils_log_error("Missing header: Min_Expires");d=-1}return d}function __tsip_dialog_register_InProgress_2_Terminated_X_300_to_699(a){var c=a[0];
var b=a[1];c.set_last_error(b.get_response_code(),b.get_response_phrase(),b);c.signal_register(c.b_unregistering?tsip_event_register_type_e.AO_UNREGISTER:tsip_event_register_type_e.AO_REGISTER,b.get_response_code(),b.get_response_phrase(),b);
return 0}function __tsip_dialog_register_InProgress_2_Terminated_X_cancel(a){var d=a[0];var b=a[3];var c;
d.set_action_curr(b);c=d.get_layer_transac().cancel_by_dialog(d);d.signal(tsip_event_code_e.DIALOG_CANCELLED,"Registration cancelled");
return c}function __tsip_dialog_register_Connected_2_InProgress_X_oRegister(a){var c=a[0];var b=a[3];
c.set_action_curr(b);return c.send_register(true)}function __tsip_dialog_register_Any_2_InProgress_X_hangup(a){var c=a[0];
var b=a[3];c.set_action_curr(b);c.signal(tsip_event_code_e.DIALOG_TERMINATING,"Disconnecting...");c.b_unregistering=true;
return 0;return c.send_register(true)}function __tsip_dialog_register_Any_2_InProgress_X_shutdown(a){var b=a[0];
b.timer_schedule("register","Shutdown");b.signal(tsip_event_code_e.DIALOG_TERMINATING,"Disconnecting...");
b.b_unregistering=true;return 0;return b.send_register(true)}function __tsip_dialog_register_Any_2_Terminated_X_transportError(a){var b=a[0];
b.signal(tsip_event_code_e.DIALOG_TRANSPORT_ERROR,"Transport error");return 0}function __tsip_dialog_register_Any_2_Terminated_X_Error(a){var c=a[0];
var b=a[1];if(b){c.set_last_error(b.get_response_code(),b.get_response_phrase(),b);c.signal_register(c.b_unregistering?tsip_event_register_type_e.AO_UNREGISTER:tsip_event_register_type_e.AO_REGISTER,b.get_response_code(),b.get_response_phrase(),b)
}else{c.signal(tsip_event_code_e.DIALOG_GLOBAL_ERROR,"Global error")}return 0}function __tsip_dialog_register_onterm(a){tsk_utils_log_info("register dialog terminated");
a.timer_cancel("Refresh");a.timer_cancel("Shutdown");a.signal(tsip_event_code_e.DIALOG_TERMINATED,a.last_error.s_phrase?a.last_error.s_phrase:"Disconnected",a.last_error.o_message);
return a.deinit()}function tsip_dialog_layer(a){if(!a){tsk_utils_log_error("Invalid argument");return null
}this.o_stack=a;this.ao_dialogs=new Array();this.shutdown={};this.shutdown.b_inprogress=false;this.shutdown.b_phase2=false;
this.b_locked=false}function tsip_dialog_layer_find_result(b,a){this.o_dialog=b;this.b_cid_matched=a}tsip_dialog_layer.prototype.find_by_ss=function(a){if(!a){tsk_utils_log_error("Invalid argument");
return null}return this.find_by_ssid(a.i_id)};tsip_dialog_layer.prototype.find_by_ssid=function(b){var c=null;
while(this.b_locked){}this.b_locked=true;for(var a=0;a<this.ao_dialogs.length;++a){if(this.ao_dialogs[a].o_session&&this.ao_dialogs[a].o_session.i_id==b){c=this.ao_dialogs[a];
break}}this.b_locked=false;return c};tsip_dialog_layer.prototype.find=function(c,b,j,k){var d=null;var e;
var a=false;while(this.b_locked){}this.b_locked=true;for(var g=0;g<this.ao_dialogs.length;++g){e=this.ao_dialogs[g];
if(tsk_string_equals(e.s_callid,c)){var h=(k==tsip_request_type_e.CANCEL);var f=(k==tsip_request_type_e.REGISTER);
var l=(k==tsip_request_type_e.NOTIFY);a=true;if((h||tsk_string_equals(e.s_tag_local,j))&&(!e.s_tag_remote||tsk_string_equals(e.s_tag_remote,b))){d=e;
break}if(f){d=e;break}if(l){d=e;break}}}this.b_locked=false;return new tsip_dialog_layer_find_result(d,a)
};tsip_dialog_layer.prototype.dialog_new=function(a,b){var c=null;while(this.b_locked){}this.b_locked=true;
switch(a){case tsip_dialog_type_e.REGISTER:if((c=new tsip_dialog_register(b,null))){this.ao_dialogs.push(c)
}break;case tsip_dialog_type_e.INVITE:if((c=new tsip_dialog_invite(b,null))){this.ao_dialogs.push(c)}break;
case tsip_dialog_type_e.MESSAGE:case tsip_dialog_type_e.INFO:case tsip_dialog_type_e.OPTIONS:case tsip_dialog_type_e.PUBLISH:case tsip_dialog_type_e.SUBSCRIBE:default:if((c=new tsip_dialog_generic(a,b,null))){this.ao_dialogs.push(c)
}break}this.b_locked=false;return c};tsip_dialog_layer.prototype.dialog_remove=function(b){if(b){while(this.b_locked){}this.b_locked=true;
for(var a=0;a<this.ao_dialogs.length;++a){if(this.ao_dialogs[a]==b){this.ao_dialogs.splice(a,1);break
}}this.b_locked=false}};tsip_dialog_layer.prototype.handle_incoming_message=function(a){var l=-1;var n=null;
var h=this.o_stack.o_layer_transac;var e=this.find(a.o_hdr_Call_ID.s_value,a.is_response()?a.o_hdr_To.s_tag:a.o_hdr_From.s_tag,a.is_response()?a.o_hdr_From.s_tag:a.o_hdr_To.s_tag,a.is_request()?a.line.request.e_type:tsip_request_type_e.NONE);
var d=e.b_cid_matched;var f=e.o_dialog;if(f){if(a.is_cancel()||a.is_ack()){return f.callback(tsip_dialog_event_type_e.I_MSG,a)
}else{n=h.transac_new(false,a,f)}}else{if(a.is_request()){var m=null;var j=null;switch(a.line.request.e_type){case tsip_request_type_e.MESSAGE:if((m=new tsip_session_message(this.o_stack,tsip_session.prototype.SetInitialMessage(a)))){j=new tsip_dialog_generic(tsip_dialog_type_e.MESSAGE,m,a.o_hdr_Call_ID?a.o_hdr_Call_ID.s_value:null)
}break;case tsip_request_type_e.INFO:tsk_utils_log_warn("Not implemented");break;case tsip_request_type_e.OPTIONS:tsk_utils_log_error("Not implemented");
break;case tsip_request_type_e.REGISTER:tsk_utils_log_error("Not implemented");break;case tsip_request_type_e.INVITE:if((m=new tsip_session_invite(this.o_stack,tsip_session.prototype.SetInitialMessage(a)))){try{var c=a.ao_headers;
for(var g=0;g<c.length;++g){if(c[g]&&c[g].s_name&&c[g].s_name.indexOf("X-")===0){m.ao_headers.push(c[g])
}}}catch(k){}j=new tsip_dialog_invite(m,a.o_hdr_Call_ID?a.o_hdr_Call_ID.s_value:null)}break;default:break
}if(j){n=h.transac_new(false,a,j);this.ao_dialogs.push(j)}}}if(n){l=n.start(a)}else{if(a.is_request()){var o=this.o_stack.o_layer_transport;
var b=null;if(o){if(d){b=new tsip_response(482,"Loop Detected (Check your iFCs)",a);if(b&&!b.o_hdr_To.s_tag){b.o_hdr_To.s_tag="tag_engith"
}}else{switch(a.line.request.e_type){case tsip_request_type_e.OPTIONS:case tsip_request_type_e.INFO:b=new tsip_response(405,"Method Not Allowed",a);
break;default:b=new tsip_response(481,"Dialog/Transaction Does Not Exist",a);break}}if(b){l=o.send(b.o_hdr_firstVia?b.o_hdr_firstVia.s_branch:"no-branch",b)
}}}}return l};var tsip_header_type_e={Accept:{i_id:0,s_name:"Accept"},Accept_Contact:{i_id:1,s_name:"Accept-Contact"},Accept_Encoding:{i_id:2,s_name:"Accept-Encoding"},Accept_Language:{i_id:3,s_name:"Accept-Language"},Accept_Resource_Priority:{i_id:4,s_name:"Accept-Resource-Priority"},Alert_Info:{i_id:5,s_name:"Alert-Info"},Allow:{i_id:6,s_name:"Allow"},Allow_Events:{i_id:7,s_name:"Allow-Events"},Authentication_Info:{i_id:8,s_name:"Authentication-Info"},Authorization:{i_id:9,s_name:"Authorization"},Call_ID:{i_id:10,s_name:"Call-ID"},Call_Info:{i_id:11,s_name:"Call-Info"},Contact:{i_id:12,s_name:"Contact"},Content_Disposition:{i_id:13,s_name:"Content-Disposition"},Content_Encoding:{i_id:14,s_name:"Content-Encoding"},Content_Language:{i_id:15,s_name:"Content-Language"},Content_Length:{i_id:16,s_name:"Content-Length"},Content_Type:{i_id:17,s_name:"Content-Type"},CSeq:{i_id:18,s_name:"CSeq"},Date:{i_id:19,s_name:"Date"},Dummy:{i_id:20,s_name:null},Error_Info:{i_id:21,s_name:"Error-Info"},Event:{i_id:22,s_name:"Event"},Expires:{i_id:23,s_name:"Expires"},From:{i_id:24,s_name:"From"},History_Info:{i_id:25,s_name:"History-Info"},Identity:{i_id:26,s_name:"Identity"},Identity_Info:{i_id:27,s_name:"Identity-Info"},In_Reply_To:{i_id:28,s_name:"In-Reply-To"},Join:{i_id:29,s_name:"Join"},Max_Forwards:{i_id:30,s_name:"Max-Forwards"},MIME_Version:{i_id:31,s_name:"MIME-Version"},Min_Expires:{i_id:32,s_name:"Min-Expires"},Min_SE:{i_id:33,s_name:"Min-SE"},Organization:{i_id:34,s_name:"Organization"},Path:{i_id:35,s_name:"Path"},Priority:{i_id:36,s_name:"Priority"},Privacy:{i_id:37,s_name:"Privacy"},Proxy_Authenticate:{i_id:38,s_name:"Proxy-Authenticate"},Proxy_Authorization:{i_id:39,s_name:"Proxy-Authorization"},Proxy_Require:{i_id:40,s_name:"Proxy-Require"},RAck:{i_id:41,s_name:"RAck"},Reason:{i_id:42,s_name:"Reason"},Record_Route:{i_id:43,s_name:"Record-Route"},Refer_Sub:{i_id:44,s_name:"Refer-Sub"},Refer_To:{i_id:45,s_name:"Refer-To"},Referred_By:{i_id:46,s_name:"Referred-By"},Reject_Contact:{i_id:47,s_name:"Reject-Contact"},Replaces:{i_id:48,s_name:"Replaces"},Reply_To:{i_id:49,s_name:"Reply-To"},Request_Disposition:{i_id:50,s_name:"Request-Disposition"},Require:{i_id:51,s_name:"Require"},Resource_Priority:{i_id:52,s_name:"Resource-Priority"},Retry_After:{i_id:53,s_name:"Retry-After"},Route:{i_id:54,s_name:"Route"},RSeq:{i_id:55,s_name:"RSeq"},Security_Client:{i_id:56,s_name:"Security-Client"},Security_Server:{i_id:57,s_name:"Security-Server"},Security_Verify:{i_id:58,s_name:"Security-Verify"},Server:{i_id:59,s_name:"Server"},Service_Route:{i_id:60,s_name:"Service-Route"},Session_Expires:{i_id:61,s_name:"Session-Expires"},SIP_ETag:{i_id:62,s_name:"SIP-ETag"},SIP_If_Match:{i_id:63,s_name:"SIP-If-Match"},Subject:{i_id:64,s_name:"Subject"},Subscription_State:{i_id:65,s_name:"Subscription-State"},Supported:{i_id:66,s_name:"Supported"},Target_Dialog:{i_id:67,s_name:"Target-Dialog"},Timestamp:{i_id:68,s_name:"Timestamp"},To:{i_id:69,s_name:"To"},Unsupported:{i_id:70,s_name:"Unsupported"},User_Agent:{i_id:71,s_name:"User-Agent"},Via:{i_id:72,s_name:"Via"},Warning:{i_id:73,s_name:"Warning "},WWW_Authenticate:{i_id:74,s_name:"WWW-Authenticate"},P_Access_Network_Info:{i_id:75,s_name:"P-Access-Network-Info"},P_Answer_State:{i_id:76,s_name:"P-Answer-State"},P_Asserted_Identity:{i_id:77,s_name:"P-Asserted-Identity"},P_Associated_URI:{i_id:78,s_name:"P-Associated-URI"},P_Called_Party_ID:{i_id:79,s_name:"P-Called-Party-ID"},P_Charging_Function_Addresses:{i_id:80,s_name:"P-Charging-Function-Addresses"},P_Charging_Vector:{i_id:81,s_name:"P-Charging-Vector"},P_DCS_Billing_Info:{i_id:82,s_name:"P-DCS-Billing-Info"},P_DCS_LAES:{i_id:83,s_name:"P-DCS-LAES"},P_DCS_OSPS:{i_id:84,s_name:"P-DCS-OSPS"},P_DCS_Redirect:{i_id:85,s_name:"P-DCS-Redirect"},P_DCS_Trace_Party_ID:{i_id:86,s_name:"P-DCS-Trace-Party-ID"},P_Early_Media:{i_id:87,s_name:"P-Early-Media"},P_Media_Authorization:{i_id:88,s_name:"P-Media-Authorization"},P_Preferred_Identity:{i_id:89,s_name:"P-Preferred-Identity"},P_Profile_Key:{i_id:90,s_name:"P-Profile-Key"},P_User_Database:{i_id:91,s_name:"P-User-Database"},P_Visited_Network_ID:{i_id:92,s_name:"P-Visited-Network-ID"}};
function tsip_header(a){this.e_type=a;this.ao_params=new Array()}tsip_header.prototype.get_name=function(){if(this.e_type.i_id==tsip_header_type_e.Dummy.i_id){return this.s_name
}return this.e_type.s_name};tsip_header.prototype.get_param_separator=function(){switch(this.e_type){case tsip_header_type_e.Authorization:case tsip_header_type_e.Proxy_Authorization:case tsip_header_type_e.Proxy_Authenticate:case tsip_header_type_e.WWW_Authenticate:return",";
default:return";"}};tsip_header.prototype.add_param=function(b,a){tsk_params_add(this.ao_params,b,a)};
tsip_header.prototype.tostring_full=function(){var c;var b=tsk_string_format("{0}: ",this.get_name());
b+=this;for(var a=0;a<this.ao_params.length;++a){c=this.get_param_separator();b+=tsk_string_format("{0}{1}",c,tsk_param_tostring(this.ao_params[a]))
}b+="\r\n";return b};tsip_header.prototype.IndexOfByType=function(c,a){if(c){for(var b=0;b<c.length;++b){if(c[b].e_type.i_id==a.i_id){return b
}}}return -1};tsip_header.prototype.IndexOfByName=function(e,d){if(e&&d){var c=d.toLowerCase();for(var b=0;
b<e.length;++b){var a=e[b].get_name();if(a&&a.toLowerCase()==c){return b}}}return -1};tsip_header.prototype.FindByType=function(c,a){if(c){for(var b=0;
b<c.length;++b){if(c[b].e_type.i_id==a.i_id){return c[b]}}}return null};if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/headers/tsip_header_Int.js","src/tinySIP/src/headers/tsip_header_NameAddr.js","src/tinySIP/src/headers/tsip_header_Str.js","src/tinySIP/src/headers/tsip_header_StrArray.js","src/tinySIP/src/headers/tsip_header_Authorization.js","src/tinySIP/src/headers/tsip_header_Contact.js","src/tinySIP/src/headers/tsip_header_Content_Type.js","src/tinySIP/src/headers/tsip_header_CSeq.js","src/tinySIP/src/headers/tsip_header_RAck.js","src/tinySIP/src/headers/tsip_header_Refer_Sub.js","src/tinySIP/src/headers/tsip_header_Session_Expires.js","src/tinySIP/src/headers/tsip_header_Subscription_State.js","src/tinySIP/src/headers/tsip_header_Via.js","src/tinySIP/src/headers/tsip_header_WWW_Authenticate.js")
}var TSIP_HEADER_MAX_FORWARDS_DEFAULT=70;tsip_header_Int.prototype=Object.create(tsip_header.prototype);
tsip_header_Content_Length.prototype=Object.create(tsip_header_Int.prototype);tsip_header_Expires.prototype=Object.create(tsip_header_Int.prototype);
tsip_header_Max_Forwards.prototype=Object.create(tsip_header_Int.prototype);tsip_header_Min_Expires.prototype=Object.create(tsip_header_Int.prototype);
tsip_header_Min_SE.prototype=Object.create(tsip_header_Int.prototype);tsip_header_RSeq.prototype=Object.create(tsip_header_Int.prototype);
_tsip_machine_parser_header_Int_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9];_tsip_machine_parser_header_Int_key_offsets=[0,0,10,12,14,16,18,20,22,23,25,27,29,31,33,35,38,41,46,47,49,53,60,65,66,68,72,89,90,92,108,126,132,133,135,140,159,160,162,181,182,184,187,195,196,198,203,204,210,227,234,242,250,258,260,267,276,278,281,283,286,288,291,294,295,298,299,302,303,312,321,329,337,345,353,355,361,370,379,388,390,393,396,397,398,400,402,404,406,408,410,413,417,419,420,422,424,426,428,430,432,434,436,439,441,442,446,448,450,452,454,456,458,461,463,466,468,470,472,475];
_tsip_machine_parser_header_Int_trans_keys=[67,69,76,77,82,99,101,108,109,114,79,111,78,110,84,116,69,101,78,110,84,116,45,76,108,69,101,78,110,71,103,84,116,72,104,9,32,58,9,32,58,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,44,59,48,57,9,13,32,44,59,10,9,32,9,32,44,59,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,44,59,10,0,9,11,12,14,127,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,88,120,80,112,73,105,82,114,69,101,83,115,9,32,58,65,73,97,105,88,120,45,70,102,79,111,82,114,87,119,65,97,82,114,68,100,83,115,9,32,58,78,110,45,69,83,101,115,88,120,80,112,73,105,82,114,69,101,83,115,9,32,58,69,101,9,32,58,83,115,69,101,81,113,9,32,58,0];
_tsip_machine_parser_header_Int_single_lengths=[0,10,2,2,2,2,2,2,1,2,2,2,2,2,2,3,3,3,1,2,2,5,5,1,2,4,7,1,2,6,10,6,1,2,5,9,1,2,9,1,2,3,4,1,2,5,1,0,9,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,2,2,2,2,2,2,3,4,2,1,2,2,2,2,2,2,2,2,3,2,1,4,2,2,2,2,2,2,3,2,3,2,2,2,3,0];
_tsip_machine_parser_header_Int_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,4,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_header_Int_index_offsets=[0,0,11,14,17,20,23,26,29,31,34,37,40,43,46,49,53,57,62,64,67,71,78,84,86,89,94,107,109,112,124,139,146,148,151,157,172,174,177,192,194,197,201,208,210,213,219,221,225,239,244,250,256,262,265,270,277,279,282,284,287,289,292,295,297,300,302,305,307,314,321,327,333,339,345,348,352,359,366,373,375,378,381,383,385,388,391,394,397,400,403,407,412,415,417,420,423,426,429,432,435,438,441,445,448,450,455,458,461,464,467,470,473,477,480,484,487,490,493,497];
_tsip_machine_parser_header_Int_indicies=[0,2,3,4,5,0,2,3,4,5,1,6,6,1,7,7,1,8,8,1,9,9,1,10,10,1,11,11,1,12,1,13,13,1,14,14,1,15,15,1,16,16,1,17,17,1,3,3,1,18,18,19,1,20,20,21,1,21,22,21,23,1,24,1,25,25,1,25,25,23,1,26,27,26,28,28,29,1,30,31,30,32,32,1,33,1,34,34,1,34,34,32,32,1,32,35,32,36,36,36,36,36,36,36,36,36,1,37,1,38,38,1,38,38,36,36,36,36,36,36,36,36,36,1,39,40,39,41,41,41,42,42,43,41,41,41,41,41,1,44,45,44,32,32,43,1,46,1,47,47,1,47,47,32,32,43,1,43,48,43,49,50,49,49,51,49,49,49,49,49,49,1,52,1,53,53,1,53,54,53,49,50,49,49,51,49,49,49,49,49,49,1,55,1,56,56,1,56,56,50,1,50,57,58,59,50,50,1,60,1,50,50,1,61,40,61,42,42,1,62,1,50,50,50,1,61,40,61,49,49,49,42,42,49,49,49,49,49,1,64,63,63,63,1,66,58,65,65,65,1,66,58,67,67,67,1,66,58,68,68,68,1,66,58,1,70,69,63,63,1,71,66,58,72,65,65,1,73,1,74,75,1,76,1,77,78,1,79,1,58,80,1,58,81,1,58,1,77,82,1,77,1,74,83,1,74,1,71,66,58,84,67,67,1,71,66,58,68,68,68,1,86,58,85,85,85,1,88,58,87,87,87,1,88,58,89,89,89,1,88,58,90,90,90,1,88,58,1,91,85,85,1,71,88,58,92,87,87,1,71,88,58,93,89,89,1,71,88,58,90,90,90,1,94,1,71,95,1,71,96,1,71,1,70,1,97,97,1,98,98,1,99,99,1,100,100,1,101,101,1,102,102,1,103,103,104,1,105,106,105,106,1,107,107,1,108,1,109,109,1,110,110,1,111,111,1,112,112,1,113,113,1,114,114,1,115,115,1,116,116,1,117,117,118,1,119,119,1,120,1,121,122,121,122,1,123,123,1,124,124,1,125,125,1,126,126,1,127,127,1,128,128,1,129,129,130,1,131,131,1,132,132,133,1,134,134,1,135,135,1,136,136,1,137,137,138,1,1,0];
_tsip_machine_parser_header_Int_trans_targs=[2,0,84,15,91,115,3,4,5,6,7,8,9,10,11,12,13,14,16,17,16,17,18,21,19,20,22,46,26,21,22,23,26,24,25,27,30,28,29,31,46,30,26,35,31,32,33,34,36,48,42,49,37,38,39,40,41,43,45,47,44,22,119,50,83,51,54,52,53,55,70,56,68,57,58,66,59,60,64,61,62,63,65,67,69,71,79,72,75,73,74,76,77,78,80,81,82,85,86,87,88,89,90,16,17,92,103,93,94,95,96,97,98,99,100,101,102,16,17,104,105,106,113,107,108,109,110,111,112,16,17,114,16,17,116,117,118,16,17];
_tsip_machine_parser_header_Int_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,1,0,0,3,3,3,0,0,0,0,0,0,0,1,0,0,5,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,13,13,0,15,15,0,0,0,17,17];
tsip_machine_parser_header_Int_start=1;tsip_machine_parser_header_Int_first_final=119;tsip_machine_parser_header_Int_error=0;
tsip_machine_parser_header_Int_en_main=1;function tsip_header_Int(b,a){tsip_header.call(this,b);this.i_value=a
}tsip_header_Int.prototype.toString=function(){return typeof this.i_value=="undefined"?null:this.i_value.toString()
};tsip_header_Int.prototype.Parse=function(l){var e=0;var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);
var u;var m=null;e=tsip_machine_parser_header_Int_start;var f,n,b,d,c,r,k;var o,h,a,q,t;var s;f=n=b=r=k=null;
o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(j==v){o=t;continue}if(e==0){o=s;
continue}}if(o<=h){b=_tsip_machine_parser_header_Int_key_offsets[e];n=_tsip_machine_parser_header_Int_index_offsets[e];
f=_tsip_machine_parser_header_Int_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsip_machine_parser_header_Int_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsip_machine_parser_header_Int_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Int_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[j]<_tsip_machine_parser_header_Int_trans_keys[_mid]){_upper=_mid-2
}else{if(w[j]>_tsip_machine_parser_header_Int_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-b)>>1);
_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Int_indicies[n];
e=_tsip_machine_parser_header_Int_trans_targs[n];if(_tsip_machine_parser_header_Int_trans_actions[n]!=0){r=_tsip_machine_parser_header_Int_trans_actions[n];
k=_tsip_machine_parser_header_Int_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsip_machine_parser_header_Int_actions[r-1]){case 0:u=j;
break;case 1:if(m){m.i_value=tsk_ragel_parser_get_int(l,j,u)}break;case 2:if(m){tsk_ragel_add_param(l,j,u,m.ao_params)
}break;case 3:m=new tsip_header_Content_Length();break;case 4:m=new tsip_header_Expires();break;case 5:m=new tsip_header_Max_Forwards();
break;case 6:m=new tsip_header_Min_Expires();break;case 7:m=new tsip_header_Min_SE();break;case 8:m=new tsip_header_RSeq();
break;case 9:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;continue}j+=1;if(j!=v){o=h;continue
}}if(o<=t){}if(o<=s){break}}if(e<119){tsk_utils_log_error("Failed to parse header: "+l);return null}return m
};function tsip_header_Content_Length(a){tsip_header_Int.call(this,tsip_header_type_e.Content_Length,a)
}function tsip_header_Expires(a){tsip_header_Int.call(this,tsip_header_type_e.Expires,a)}function tsip_header_Max_Forwards(a){tsip_header_Int.call(this,tsip_header_type_e.Max_Forwards,a)
}function tsip_header_Min_Expires(a){tsip_header_Int.call(this,tsip_header_type_e.Min_Expires,a)}function tsip_header_Min_SE(a){tsip_header_Int.call(this,tsip_header_type_e.Min_SE,a)
}function tsip_header_RSeq(a){tsip_header_Int.call(this,tsip_header_type_e.RSeq,a)}tsip_header_NameAddr.prototype=Object.create(tsip_header.prototype);
tsip_header_NameAddr.prototype.s_display_name=null;tsip_header_NameAddr.prototype.o_uri=null;tsip_header_NameAddr.prototype.s_tag=null;
tsip_header_From.prototype=Object.create(tsip_header_NameAddr.prototype);tsip_header_To.prototype=Object.create(tsip_header_NameAddr.prototype);
tsip_header_Refer_To.prototype=Object.create(tsip_header_NameAddr.prototype);tsip_header_Referred_By.prototype=Object.create(tsip_header_NameAddr.prototype);
_tsip_machine_parser_header_NameAddr_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9];_tsip_machine_parser_header_NameAddr_key_offsets=[0,0,8,11,14,35,36,38,59,60,62,65,69,81,84,86,89,93,97,98,100,103,122,123,125,143,162,167,168,170,174,193,194,196,215,216,218,221,229,230,232,236,237,243,261,268,276,284,292,294,301,310,312,315,317,320,322,325,328,329,332,333,336,337,346,355,363,371,379,387,389,395,404,413,422,424,427,430,431,432,453,474,493,498,499,501,505,524,525,527,546,564,581,599,603,604,606,614,615,617,621,627,647,666,671,673,679,684,686,688,691,696,698,700,702,705,707,709,712,714,716,717,719,721,726,729];
_tsip_machine_parser_header_NameAddr_trans_keys=[66,70,82,84,98,102,114,116,9,32,58,9,32,58,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,32,60,65,90,97,122,9,32,43,58,45,46,48,57,65,90,97,122,9,32,58,0,65535,62,0,65535,9,13,32,59,9,13,32,59,10,9,32,9,32,59,9,13,32,33,37,39,84,116,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,84,116,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,59,10,0,9,11,12,14,127,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,59,61,65,97,126,42,43,45,46,48,57,66,90,95,122,9,13,32,33,37,39,59,61,71,103,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,60,10,9,32,9,13,34,92,32,126,128,255,10,9,32,9,13,32,60,0,9,11,12,14,127,9,13,32,33,37,39,42,43,58,126,45,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,58,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,58,60,0,65535,9,13,32,59,0,65535,9,32,58,82,114,79,111,77,109,9,32,58,9,32,58,69,101,70,102,69,101,82,114,45,82,114,84,116,79,111,9,32,58,69,101,68,100,45,66,98,89,121,9,32,58,79,111,9,32,58,0];
_tsip_machine_parser_header_NameAddr_single_lengths=[0,8,3,3,9,1,2,9,1,2,3,0,4,3,0,1,4,4,1,2,3,9,1,2,8,9,5,1,2,4,9,1,2,9,1,2,3,4,1,2,4,1,0,8,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,11,11,9,5,1,2,4,9,1,2,9,8,7,8,4,1,2,4,1,2,4,0,10,9,5,0,4,5,2,2,3,5,2,2,2,3,2,2,3,2,2,1,2,2,5,3,0];
_tsip_machine_parser_header_NameAddr_range_lengths=[0,0,0,0,6,0,0,6,0,0,0,2,4,0,1,1,0,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,5,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,5,5,5,0,0,0,0,5,0,0,5,5,5,5,0,0,0,2,0,0,0,3,5,5,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_header_NameAddr_index_offsets=[0,0,9,13,17,33,35,38,54,56,59,63,66,75,79,81,84,89,94,96,99,103,118,120,123,137,152,158,160,163,168,183,185,188,203,205,208,212,219,221,224,229,231,235,249,254,260,266,272,275,280,287,289,292,294,297,299,302,305,307,310,312,315,317,324,331,337,343,349,355,358,362,369,376,383,385,388,391,393,395,412,429,444,450,452,455,460,475,477,480,495,509,522,536,541,543,546,553,555,558,563,567,583,598,604,606,612,618,621,624,628,634,637,640,643,647,650,653,657,660,663,665,668,671,677,681];
_tsip_machine_parser_header_NameAddr_indicies=[0,2,3,4,0,2,3,4,1,5,5,6,1,7,7,8,1,8,9,8,10,11,10,10,12,10,10,10,10,13,10,13,1,14,1,15,15,1,15,16,15,10,11,10,10,12,10,10,10,10,13,10,13,1,17,1,18,18,1,18,18,12,1,19,19,1,20,20,21,22,21,21,21,21,1,20,20,22,1,23,1,24,23,1,25,26,25,27,1,25,28,25,27,1,29,1,30,30,1,30,30,27,1,27,31,27,32,32,32,33,33,32,32,32,32,32,32,1,34,1,35,35,1,35,35,32,32,32,33,33,32,32,32,32,32,32,1,36,37,36,38,38,38,39,40,38,38,38,38,38,38,1,41,42,41,27,40,1,43,1,44,44,1,44,44,27,40,1,40,45,40,46,47,46,46,48,46,46,46,46,46,46,1,49,1,50,50,1,50,51,50,46,47,46,46,48,46,46,46,46,46,46,1,52,1,53,53,1,53,53,47,1,47,54,55,56,47,47,1,57,1,47,47,1,58,37,58,39,1,59,1,47,47,47,1,58,37,58,46,46,46,39,46,46,46,46,46,46,1,61,60,60,60,1,63,55,62,62,62,1,63,55,64,64,64,1,63,55,65,65,65,1,63,55,1,67,66,60,60,1,68,63,55,69,62,62,1,70,1,71,72,1,73,1,74,75,1,76,1,55,77,1,55,78,1,55,1,74,79,1,74,1,71,80,1,71,1,68,63,55,81,64,64,1,68,63,55,65,65,65,1,83,55,82,82,82,1,85,55,84,84,84,1,85,55,86,86,86,1,85,55,87,87,87,1,85,55,1,88,82,82,1,68,85,55,89,84,84,1,68,85,55,90,86,86,1,68,85,55,87,87,87,1,91,1,68,92,1,68,93,1,68,1,67,1,36,37,36,38,38,38,39,40,94,94,38,38,38,38,38,38,1,36,37,36,38,38,38,39,40,95,95,38,38,38,38,38,38,1,96,37,96,38,38,38,39,97,38,38,38,38,38,38,1,98,99,98,27,97,1,100,1,101,101,1,101,101,27,97,1,97,102,97,103,47,103,103,48,103,103,103,103,103,103,1,104,1,105,105,1,105,51,105,103,47,103,103,48,103,103,103,103,103,103,1,106,107,106,108,108,108,109,108,108,108,108,108,108,1,110,111,110,112,112,112,112,112,112,112,112,112,1,113,114,113,112,112,112,115,112,112,112,112,112,112,1,116,16,116,12,1,117,1,110,110,1,118,119,120,121,118,118,1,122,1,118,118,1,113,114,113,115,1,118,118,118,1,123,111,123,112,112,112,112,124,125,112,124,124,124,112,124,1,126,114,126,112,112,112,125,115,112,112,112,112,112,112,1,127,16,127,125,12,1,128,1,129,130,129,131,128,1,132,132,133,134,134,1,135,135,1,136,136,1,132,132,133,1,137,137,138,139,139,1,140,140,1,141,141,1,142,142,1,143,144,144,1,145,145,1,146,146,1,137,137,138,1,147,147,1,148,148,1,149,1,150,150,1,0,0,1,151,151,152,153,153,1,151,151,152,1,1,0];
_tsip_machine_parser_header_NameAddr_trans_targs=[2,0,106,110,123,3,4,3,4,5,91,96,11,101,6,7,8,9,10,12,13,12,14,15,16,17,41,21,18,19,20,22,25,79,23,24,26,41,25,21,30,26,27,28,29,31,43,37,44,32,33,34,35,36,38,40,42,39,17,125,45,78,46,49,47,48,50,65,51,63,52,53,61,54,55,59,56,57,58,60,62,64,66,74,67,70,68,69,71,72,73,75,76,77,80,81,82,86,82,83,84,85,87,90,88,89,17,41,90,21,92,94,91,93,8,11,93,95,96,97,99,100,98,102,101,104,103,103,105,17,41,21,3,4,107,108,109,3,4,111,112,113,114,115,118,116,117,119,120,121,122,3,4,124];
_tsip_machine_parser_header_NameAddr_trans_actions=[0,0,0,0,0,17,17,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,1,1,0,0,9,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,1,0,0,7,7,0,7,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,5,0,0,3,3,3,11,11,0,0,0,15,15,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0];
tsip_machine_parser_header_NameAddr_start=1;tsip_machine_parser_header_NameAddr_first_final=125;tsip_machine_parser_header_NameAddr_error=0;
tsip_machine_parser_header_NameAddr_en_main=1;function tsip_header_NameAddr(b,a,c){tsip_header.call(this,b);
this.s_display_name=a?a.s_display_name:null;this.o_uri=a;this.s_tag=c}tsip_header_NameAddr.prototype.toString=function(){var a=tsip_uri_tostring(this.o_uri,true,true);
if(a&&this.s_tag){a+=tsk_string_format(";tag={0}",this.s_tag)}return a};tsip_header_NameAddr.prototype.Parse=function(m){var e=0;
var k=0;var w=m.length;var h=w;var x=tsk_buff_str2ib(m);var v;var n;e=tsip_machine_parser_header_NameAddr_start;
var f,o,b,d,c,s,l;var q,j,a,r,u;var t;f=o=b=s=l=null;q=0;j=10;a=15;r=20;u=30;t=40;while(true){_trigger_goto=false;
if(q<=0){if(k==w){q=u;continue}if(e==0){q=t;continue}}if(q<=j){b=_tsip_machine_parser_header_NameAddr_key_offsets[e];
o=_tsip_machine_parser_header_NameAddr_index_offsets[e];f=_tsip_machine_parser_header_NameAddr_single_lengths[e];
_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(x[k]<_tsip_machine_parser_header_NameAddr_trans_keys[_mid]){_upper=_mid-1}else{if(x[k]>_tsip_machine_parser_header_NameAddr_trans_keys[_mid]){_lower=_mid+1
}else{o+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;o+=f}f=_tsip_machine_parser_header_NameAddr_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(x[k]<_tsip_machine_parser_header_NameAddr_trans_keys[_mid]){_upper=_mid-2}else{if(x[k]>_tsip_machine_parser_header_NameAddr_trans_keys[_mid+1]){_lower=_mid+2
}else{o+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}o+=f}}while(false);o=_tsip_machine_parser_header_NameAddr_indicies[o];
e=_tsip_machine_parser_header_NameAddr_trans_targs[o];if(_tsip_machine_parser_header_NameAddr_trans_actions[o]!=0){s=_tsip_machine_parser_header_NameAddr_trans_actions[o];
l=_tsip_machine_parser_header_NameAddr_actions[s];s+=1;while(l>0){l-=1;s+=1;switch(_tsip_machine_parser_header_NameAddr_actions[s-1]){case 0:v=k;
break;case 1:if(n&&!n.o_uri){var g=tsk_ragel_parser_get_string(m,k,v);if((n.o_uri=tsip_uri.prototype.Parse(g))&&n.s_display_name){n.o_uri.s_display_name=tsk_strdup(n.s_display_name)
}}break;case 2:if(n){n.s_display_name=tsk_ragel_parser_get_string(m,k,v);n.s_display_name=tsk_string_unquote_2(n.s_display_name)
}break;case 3:if(n){n.s_tag=tsk_ragel_parser_get_string(m,k,v)}break;case 4:tsk_ragel_add_param(m,k,v,n.ao_params);
break;case 5:n=new tsip_header_From();break;case 6:n=new tsip_header_To();break;case 7:n=new tsip_header_Refer_To();
break;case 8:n=new tsip_header_Referred_By();break;case 9:break}}}if(_trigger_goto){continue}}if(q<=r){if(e==0){q=t;
continue}k+=1;if(k!=w){q=j;continue}}if(q<=u){}if(q<=t){break}}if(e<125){tsk_utils_log_error("Failed to parse header: "+m);
return null}return n};function tsip_header_From(a,b){tsip_header_NameAddr.call(this,tsip_header_type_e.From,a,b)
}function tsip_header_To(a,b){tsip_header_NameAddr.call(this,tsip_header_type_e.To,a,b)}function tsip_header_Refer_To(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Refer_To,a)
}function tsip_header_Referred_By(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Referred_By,a)
}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/headers/tsip_header_NameAddrArray.js")
}tsip_header_P_Asserted_Identity.prototype=Object.create(tsip_header_NameAddr.prototype);tsip_header_P_Associated_URI.prototype=Object.create(tsip_header_NameAddr.prototype);
tsip_header_P_Preferred_Identity.prototype=Object.create(tsip_header_NameAddr.prototype);tsip_header_Path.prototype=Object.create(tsip_header_NameAddr.prototype);
tsip_header_Record_Route.prototype=Object.create(tsip_header_NameAddr.prototype);tsip_header_Route.prototype=Object.create(tsip_header_NameAddr.prototype);
tsip_header_Service_Route.prototype=Object.create(tsip_header_NameAddr.prototype);function tsip_header_P_Asserted_Identity(a){tsip_header_NameAddr.call(this,tsip_header_type_e.P_Asserted_Identity,a)
}function tsip_header_P_Associated_URI(a){tsip_header_NameAddr.call(this,tsip_header_type_e.P_Associated_URI,a)
}function tsip_header_P_Preferred_Identity(a){tsip_header_NameAddr.call(this,tsip_header_type_e.P_Preferred_Identity,a)
}function tsip_header_Path(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Path,a)}function tsip_header_Record_Route(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Record_Route,a)
}function tsip_header_Route(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Route,a)}function tsip_header_Service_Route(a){tsip_header_NameAddr.call(this,tsip_header_type_e.Service_Route,a)
}_tsip_machine_parser_header_NameAddrArray_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,2,1,0,2,3,5];
_tsip_machine_parser_header_NameAddrArray_key_offsets=[0,0,6,9,13,15,17,21,23,25,27,29,30,32,34,36,38,40,42,44,46,49,52,73,74,76,97,98,100,103,107,119,122,124,127,132,137,138,140,144,161,162,164,180,198,204,205,207,212,231,232,234,253,254,256,259,267,268,270,275,276,282,299,306,314,322,330,332,339,348,350,353,355,358,360,363,366,367,370,371,374,375,384,393,401,409,417,425,427,433,442,451,460,462,465,468,469,470,487,505,509,510,512,520,521,523,527,533,553,572,577,579,586,588,590,592,594,596,598,599,601,603,605,608,610,612,614,616,618,620,622,624,625,627,629,631,633,635,637,639,641,644,646,648,651,655,657,659,661,663,664,666,668,670,672,674,677,679,681,683,686,688,690,692,694,696,698,699,701,703,705,707,709,712];
_tsip_machine_parser_header_NameAddrArray_trans_keys=[80,82,83,112,114,115,45,65,97,65,80,97,112,83,115,83,115,69,79,101,111,82,114,84,116,69,101,68,100,45,73,105,68,100,69,101,78,110,84,116,73,105,84,116,89,121,9,32,58,9,32,58,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,32,60,65,90,97,122,9,32,43,58,45,46,48,57,65,90,97,122,9,32,58,0,65535,62,0,65535,9,13,32,44,59,9,13,32,44,59,10,9,32,9,32,44,59,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,44,59,10,0,9,11,12,14,127,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,60,10,9,32,9,13,34,92,32,126,128,255,10,9,32,9,13,32,60,0,9,11,12,14,127,9,13,32,33,37,39,42,43,58,126,45,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,58,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,58,60,0,65535,9,13,32,44,59,0,65535,67,99,73,105,65,97,84,116,69,101,68,100,45,85,117,82,114,73,105,9,32,58,82,114,69,101,70,102,69,101,82,114,82,114,69,101,68,100,45,73,105,68,100,69,101,78,110,84,116,73,105,84,116,89,121,9,32,58,84,116,72,104,9,32,58,69,79,101,111,67,99,79,111,82,114,68,100,45,82,114,79,111,85,117,84,116,69,101,9,32,58,85,117,84,116,69,101,9,32,58,69,101,82,114,86,118,73,105,67,99,69,101,45,82,114,79,111,85,117,84,116,69,101,9,32,58,0];
_tsip_machine_parser_header_NameAddrArray_single_lengths=[0,6,3,4,2,2,4,2,2,2,2,1,2,2,2,2,2,2,2,2,3,3,9,1,2,9,1,2,3,0,4,3,0,1,5,5,1,2,4,7,1,2,6,10,6,1,2,5,9,1,2,9,1,2,3,4,1,2,5,1,0,9,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,7,8,4,1,2,4,1,2,4,0,10,9,5,0,5,2,2,2,2,2,2,1,2,2,2,3,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,3,2,2,3,4,2,2,2,2,1,2,2,2,2,2,3,2,2,2,3,2,2,2,2,2,2,1,2,2,2,2,2,3,0];
_tsip_machine_parser_header_NameAddrArray_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,6,0,0,0,2,4,0,1,1,0,0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,4,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,5,5,0,0,0,2,0,0,0,3,5,5,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_header_NameAddrArray_index_offsets=[0,0,7,11,16,19,22,27,30,33,36,39,41,44,47,50,53,56,59,62,65,69,73,89,91,94,110,112,115,119,122,131,135,137,140,146,152,154,157,162,175,177,180,192,207,214,216,219,225,240,242,245,260,262,265,269,276,278,281,287,289,293,307,312,318,324,330,333,338,345,347,350,352,355,357,360,363,365,368,370,373,375,382,389,395,401,407,413,416,420,427,434,441,443,446,449,451,453,466,480,485,487,490,497,499,502,507,511,527,542,548,550,557,560,563,566,569,572,575,577,580,583,586,590,593,596,599,602,605,608,611,614,616,619,622,625,628,631,634,637,640,644,647,650,654,659,662,665,668,671,673,676,679,682,685,688,692,695,698,701,705,708,711,714,717,720,723,725,728,731,734,737,740,744];
_tsip_machine_parser_header_NameAddrArray_indicies=[0,2,3,0,2,3,1,4,5,5,1,6,7,6,7,1,8,8,1,9,9,1,10,11,10,11,1,12,12,1,13,13,1,14,14,1,15,15,1,16,1,17,17,1,18,18,1,19,19,1,20,20,1,21,21,1,22,22,1,23,23,1,24,24,1,25,25,26,1,27,27,28,1,29,30,29,31,32,31,31,33,31,31,31,31,34,31,34,1,35,1,36,36,1,37,38,37,31,32,31,31,33,31,31,31,31,34,31,34,1,39,1,40,40,1,40,40,41,1,42,42,1,43,43,44,45,44,44,44,44,1,43,43,45,1,46,1,47,46,1,48,49,48,50,51,1,52,53,52,28,54,1,55,1,56,56,1,56,56,28,54,1,54,57,54,58,58,58,58,58,58,58,58,58,1,59,1,60,60,1,60,60,58,58,58,58,58,58,58,58,58,1,61,62,61,63,63,63,64,65,66,63,63,63,63,63,1,67,68,67,28,54,66,1,69,1,70,70,1,70,70,28,54,66,1,66,71,66,72,73,72,72,74,72,72,72,72,72,72,1,75,1,76,76,1,76,77,76,72,73,72,72,74,72,72,72,72,72,72,1,78,1,79,79,1,79,79,73,1,73,80,81,82,73,73,1,83,1,73,73,1,84,62,84,64,65,1,85,1,73,73,73,1,84,62,84,72,72,72,64,65,72,72,72,72,72,1,87,86,86,86,1,89,81,88,88,88,1,89,81,90,90,90,1,89,81,91,91,91,1,89,81,1,93,92,86,86,1,94,89,81,95,88,88,1,96,1,97,98,1,99,1,100,101,1,102,1,81,103,1,81,104,1,81,1,100,105,1,100,1,97,106,1,97,1,94,89,81,107,90,90,1,94,89,81,91,91,91,1,109,81,108,108,108,1,111,81,110,110,110,1,111,81,112,112,112,1,111,81,113,113,113,1,111,81,1,114,108,108,1,94,111,81,115,110,110,1,94,111,81,116,112,112,1,94,111,81,113,113,113,1,117,1,94,118,1,94,119,1,94,1,93,1,120,121,120,122,122,122,122,122,122,122,122,122,1,123,124,123,122,122,122,125,122,122,122,122,122,122,1,126,127,126,41,1,128,1,120,120,1,129,130,131,132,129,129,1,133,1,129,129,1,123,124,123,125,1,129,129,129,1,134,121,134,122,122,122,122,135,136,122,135,135,135,122,135,1,137,124,137,122,122,122,136,125,122,122,122,122,122,122,1,138,127,138,136,41,1,139,1,140,141,140,142,143,139,1,144,144,1,145,145,1,146,146,1,147,147,1,148,148,1,149,149,1,150,1,151,151,1,152,152,1,153,153,1,154,154,155,1,156,156,1,157,157,1,158,158,1,159,159,1,160,160,1,161,161,1,162,162,1,163,163,1,164,1,165,165,1,166,166,1,167,167,1,168,168,1,169,169,1,170,170,1,171,171,1,172,172,1,173,173,174,1,175,175,1,176,176,1,177,177,178,1,179,180,179,180,1,181,181,1,182,182,1,183,183,1,184,184,1,185,1,186,186,1,187,187,1,188,188,1,189,189,1,190,190,1,191,191,192,1,193,193,1,194,194,1,195,195,1,196,196,197,1,198,198,1,199,199,1,200,200,1,201,201,1,202,202,1,203,203,1,204,1,205,205,1,206,206,1,207,207,1,208,208,1,209,209,1,210,210,211,1,1,0];
_tsip_machine_parser_header_NameAddrArray_trans_targs=[2,0,144,160,3,141,4,123,5,6,7,112,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,21,22,22,23,97,102,29,107,24,25,25,26,27,28,29,30,31,30,32,33,34,35,59,22,39,35,36,39,37,38,40,43,41,42,44,59,43,22,39,48,44,45,46,47,49,61,55,62,50,51,52,53,54,56,58,60,57,35,173,63,96,64,67,65,66,68,83,69,81,70,71,79,72,73,77,74,75,76,78,80,82,84,92,85,88,86,87,89,90,91,93,94,95,98,100,97,99,26,29,99,26,101,102,103,105,106,104,108,107,110,109,109,111,35,59,22,39,113,114,115,116,117,118,119,120,121,122,21,22,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,21,22,142,143,21,22,145,156,146,147,148,149,150,151,152,153,154,155,21,22,157,158,159,21,22,161,162,163,164,165,166,167,168,169,170,171,172,21,22];
_tsip_machine_parser_header_NameAddrArray_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,3,3,29,29,3,29,0,0,3,3,0,0,0,1,0,0,0,0,7,11,11,11,11,0,0,0,0,0,0,1,0,0,9,9,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,32,32,32,32,0,0,0,0,0,0,0,0,0,0,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,17,0,0,19,19,0,0,0,0,0,0,0,0,0,0,0,0,21,21,0,0,0,23,23,0,0,0,0,0,0,0,0,0,0,0,0,25,25];
tsip_machine_parser_header_NameAddrArray_start=1;tsip_machine_parser_header_NameAddrArray_first_final=173;
tsip_machine_parser_header_NameAddrArray_error=0;tsip_machine_parser_header_NameAddrArray_en_main=1;tsip_header_P_Asserted_Identity.prototype.Parse=tsip_header_P_Associated_URI.prototype.Parse=tsip_header_P_Preferred_Identity.prototype.Parse=tsip_header_Path.prototype.Parse=tsip_header_Record_Route.prototype.Parse=tsip_header_Route.prototype.Parse=tsip_header_Service_Route.prototype.Parse=function(q){var g=0;
var m=0;var y=q.length;var k=y;var z=tsk_buff_str2ib(q);var x;var c=new Array();var b=null;var o=null;
g=tsip_machine_parser_header_NameAddrArray_start;var h,r,d,f,e,u,n;var s,l,a,t,w;var v;h=r=d=u=n=null;
s=0;l=10;a=15;t=20;w=30;v=40;while(true){_trigger_goto=false;if(s<=0){if(m==y){s=w;continue}if(g==0){s=v;
continue}}if(s<=l){d=_tsip_machine_parser_header_NameAddrArray_key_offsets[g];r=_tsip_machine_parser_header_NameAddrArray_index_offsets[g];
h=_tsip_machine_parser_header_NameAddrArray_single_lengths[g];_break_match=false;do{if(h>0){_lower=d;
_upper=d+h-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(z[m]<_tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]){_upper=_mid-1
}else{if(z[m]>_tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]){_lower=_mid+1}else{r+=(_mid-d);
_break_match=true;break}}}if(_break_match){break}d+=h;r+=h}h=_tsip_machine_parser_header_NameAddrArray_range_lengths[g];
if(h>0){_lower=d;_upper=d+(h<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(z[m]<_tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]){_upper=_mid-2}else{if(z[m]>_tsip_machine_parser_header_NameAddrArray_trans_keys[_mid+1]){_lower=_mid+2
}else{r+=((_mid-d)>>1);_break_match=true;break}}}if(_break_match){break}r+=h}}while(false);r=_tsip_machine_parser_header_NameAddrArray_indicies[r];
g=_tsip_machine_parser_header_NameAddrArray_trans_targs[r];if(_tsip_machine_parser_header_NameAddrArray_trans_actions[r]!=0){u=_tsip_machine_parser_header_NameAddrArray_trans_actions[r];
n=_tsip_machine_parser_header_NameAddrArray_actions[u];u+=1;while(n>0){n-=1;u+=1;switch(_tsip_machine_parser_header_NameAddrArray_actions[u-1]){case 0:x=m;
break;case 1:if(!b){b=new o()}break;case 2:if(b){b.s_display_name=tsk_ragel_parser_get_string(q,m,x);
b.s_display_name=tsk_string_unquote_2(b.s_display_name)}break;case 3:if(b&&!b.o_uri){var j=tsk_ragel_parser_get_string(q,m,x);
if((b.o_uri=tsip_uri.prototype.Parse(j))&&b.s_display_name){b.o_uri.s_display_name=tsk_strdup(b.s_display_name)
}}break;case 4:if(b){tsk_ragel_add_param(q,m,x,b.ao_params)}break;case 5:if(b){c.push(b);b=null}break;
case 6:o=tsip_header_P_Asserted_Identity;break;case 7:o=tsip_header_P_Associated_URI;break;case 8:o=tsip_header_P_Preferred_Identity;
break;case 9:o=tsip_header_Path;break;case 10:o=tsip_header_Record_Route;break;case 11:o=tsip_header_Route;
break;case 12:o=tsip_header_Service_Route;break;case 13:break}}}if(_trigger_goto){continue}}if(s<=t){if(g==0){s=v;
continue}m+=1;if(m!=y){s=l;continue}}if(s<=w){}if(s<=v){break}}if(g<173){tsk_utils_log_error("Failed to parse header: "+q);
return null}return c};tsip_header_Str.prototype=Object.create(tsip_header.prototype);tsip_header_Call_ID.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_Date.prototype=Object.create(tsip_header_Str.prototype);tsip_header_Event.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_Organization.prototype=Object.create(tsip_header_Str.prototype);tsip_header_P_Access_Network_Info.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_P_Charging_Function_Addresses.prototype=Object.create(tsip_header_Str.prototype);tsip_header_Server.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_SIP_ETag.prototype=Object.create(tsip_header_Str.prototype);tsip_header_SIP_If_Match.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_User_Agent.prototype=Object.create(tsip_header_Str.prototype);tsip_header_Warning.prototype=Object.create(tsip_header_Str.prototype);
tsip_header_Dummy.prototype=Object.create(tsip_header_Str.prototype);_tsip_machine_parser_header_Str_actions=[0,1,0,1,14,1,16,2,0,14,2,1,13,2,2,13,2,3,13,2,4,13,2,5,13,2,6,13,2,7,13,2,8,13,2,9,13,2,10,13,2,11,13,2,12,13,2,14,15,3,0,12,13];
_tsip_machine_parser_header_Str_key_offsets=[0,0,23,28,31,38,45,46,70,95,103,129,153,167,174,205,237,252,284,315,325,339,366,394,422,450,466,493,522,540,559,577,596,614,633,652,667,686,701,720,735,764,793,821,849,877,905,921,947,976,1005,1034,1052,1071,1090,1105,1120,1140,1161,1182,1203,1212,1232,1254,1265,1277,1288,1300,1311,1323,1335,1343,1355,1363,1375,1383,1405,1427,1448,1469,1490,1511,1520,1539,1561,1583,1605,1616,1628,1640,1648,1656,1657,1659,1666,1673,1680,1687,1693,1700,1707,1710,1717,1724,1731,1734,1741,1748,1755,1762,1765,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1793,1799,1808,1815,1822,1829,1836,1843,1849,1856,1863,1870,1877,1884,1891,1898,1904,1911,1918,1925,1932,1935,1942,1949,1956,1963,1970,1977,1984,1990,1997,2004,2011,2018,2025,2032,2039,2046,2052,2059,2066,2073,2080,2087,2094,2101,2108,2115,2118,2127,2134,2141,2148,2155,2158,2165,2171,2180,2187,2194,2201,2204,2211,2217,2224,2231,2238,2245,2252,2255,2262,2269,2276,2282,2289,2296,2303,2310,2317,2320,2327,2334,2341,2348,2355,2362,2365];
_tsip_machine_parser_header_Str_trans_keys=[9,32,58,67,68,69,73,79,80,83,85,87,99,100,101,105,111,112,115,117,119,0,65535,9,32,58,0,65535,9,32,58,9,13,32,44,59,0,65535,9,13,32,44,59,0,65535,10,9,13,32,33,37,39,44,47,59,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,59,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,59,61,0,65535,9,13,32,33,34,37,39,44,47,59,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,59,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,59,92,127,0,31,33,255,256,65535,9,13,32,44,59,0,65535,9,13,32,33,34,37,39,44,47,59,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,59,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,59,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,59,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,59,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,10,13,32,44,59,0,127,128,65535,9,13,32,34,44,59,92,127,0,31,33,255,256,65535,9,13,32,34,44,58,59,92,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,255,256,65535,9,13,32,34,44,58,59,92,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,59,92,93,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,59,92,93,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,59,92,93,127,0,31,33,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,58,59,92,93,127,0,31,33,255,256,65535,9,13,32,34,44,59,92,127,0,31,33,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,46,58,59,92,93,127,0,31,33,47,48,57,60,64,65,70,71,96,97,102,103,255,256,65535,9,13,32,34,44,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,47,48,57,58,255,256,65535,9,13,32,34,44,46,59,92,127,0,31,33,255,256,65535,9,13,32,34,44,58,59,92,127,0,31,33,255,256,65535,9,13,32,44,58,59,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,65535,9,13,32,44,58,59,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,59,0,47,48,57,58,65535,9,13,32,44,59,93,0,47,48,57,58,65535,9,13,32,44,59,93,0,47,48,57,58,65535,9,13,32,44,59,93,0,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,58,59,93,0,65535,9,13,32,44,59,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,46,58,59,93,0,47,48,57,60,64,65,70,71,96,97,102,103,65535,9,13,32,44,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,47,48,57,58,65535,9,13,32,44,46,59,0,65535,9,13,32,44,58,59,0,65535,10,9,32,9,13,32,44,59,0,65535,9,32,58,65,97,0,65535,9,32,58,76,108,0,65535,9,32,58,76,108,0,65535,9,32,45,58,0,65535,9,32,58,73,105,0,65535,9,32,58,68,100,0,65535,9,32,58,9,32,58,65,97,0,65535,9,32,58,84,116,0,65535,9,32,58,69,101,0,65535,9,32,58,9,32,58,86,118,0,65535,9,32,58,69,101,0,65535,9,32,58,78,110,0,65535,9,32,58,84,116,0,65535,9,32,58,9,32,58,82,114,71,103,65,97,78,110,73,105,90,122,65,97,84,116,73,105,79,111,78,110,9,32,58,9,32,45,58,0,65535,9,32,58,65,67,97,99,0,65535,9,32,58,67,99,0,65535,9,32,58,67,99,0,65535,9,32,58,69,101,0,65535,9,32,58,83,115,0,65535,9,32,58,83,115,0,65535,9,32,45,58,0,65535,9,32,58,78,110,0,65535,9,32,58,69,101,0,65535,9,32,58,84,116,0,65535,9,32,58,87,119,0,65535,9,32,58,79,111,0,65535,9,32,58,82,114,0,65535,9,32,58,75,107,0,65535,9,32,45,58,0,65535,9,32,58,73,105,0,65535,9,32,58,78,110,0,65535,9,32,58,70,102,0,65535,9,32,58,79,111,0,65535,9,32,58,9,32,58,72,104,0,65535,9,32,58,65,97,0,65535,9,32,58,82,114,0,65535,9,32,58,71,103,0,65535,9,32,58,73,105,0,65535,9,32,58,78,110,0,65535,9,32,58,71,103,0,65535,9,32,45,58,0,65535,9,32,58,70,102,0,65535,9,32,58,85,117,0,65535,9,32,58,78,110,0,65535,9,32,58,67,99,0,65535,9,32,58,84,116,0,65535,9,32,58,73,105,0,65535,9,32,58,79,111,0,65535,9,32,58,78,110,0,65535,9,32,45,58,0,65535,9,32,58,65,97,0,65535,9,32,58,68,100,0,65535,9,32,58,68,100,0,65535,9,32,58,82,114,0,65535,9,32,58,69,101,0,65535,9,32,58,83,115,0,65535,9,32,58,83,115,0,65535,9,32,58,69,101,0,65535,9,32,58,83,115,0,65535,9,32,58,9,32,58,69,73,101,105,0,65535,9,32,58,82,114,0,65535,9,32,58,86,118,0,65535,9,32,58,69,101,0,65535,9,32,58,82,114,0,65535,9,32,58,9,32,58,80,112,0,65535,9,32,45,58,0,65535,9,32,58,69,73,101,105,0,65535,9,32,58,84,116,0,65535,9,32,58,65,97,0,65535,9,32,58,71,103,0,65535,9,32,58,9,32,58,70,102,0,65535,9,32,45,58,0,65535,9,32,58,77,109,0,65535,9,32,58,65,97,0,65535,9,32,58,84,116,0,65535,9,32,58,67,99,0,65535,9,32,58,72,104,0,65535,9,32,58,9,32,58,83,115,0,65535,9,32,58,69,101,0,65535,9,32,58,82,114,0,65535,9,32,45,58,0,65535,9,32,58,65,97,0,65535,9,32,58,71,103,0,65535,9,32,58,69,101,0,65535,9,32,58,78,110,0,65535,9,32,58,84,116,0,65535,9,32,58,9,32,58,65,97,0,65535,9,32,58,82,114,0,65535,9,32,58,78,110,0,65535,9,32,58,73,105,0,65535,9,32,58,78,110,0,65535,9,32,58,71,103,0,65535,9,32,58,0];
_tsip_machine_parser_header_Str_single_lengths=[0,21,3,3,5,5,1,10,11,6,12,10,8,5,13,14,9,14,13,6,8,9,10,10,10,10,9,11,8,9,8,9,8,9,9,9,9,9,9,9,11,11,10,10,10,10,10,8,11,11,11,8,9,9,9,9,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,1,2,5,5,5,5,4,5,5,3,5,5,5,3,5,5,5,5,3,5,2,2,2,2,2,2,2,2,2,2,3,4,7,5,5,5,5,5,4,5,5,5,5,5,5,5,4,5,5,5,5,3,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,3,7,5,5,5,5,3,5,4,7,5,5,5,3,5,4,5,5,5,5,5,3,5,5,5,4,5,5,5,5,5,3,5,5,5,5,5,5,3,0];
_tsip_machine_parser_header_Str_range_lengths=[0,1,1,0,1,1,0,7,7,1,7,7,3,1,9,9,3,9,9,2,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0];
_tsip_machine_parser_header_Str_index_offsets=[0,0,23,28,32,39,46,48,66,85,93,113,131,143,150,173,197,210,234,257,266,278,297,317,337,357,371,390,411,425,440,454,469,483,498,513,526,541,554,569,582,603,624,644,664,684,704,718,736,757,778,799,813,828,843,856,869,883,898,913,928,937,951,967,976,986,995,1005,1014,1024,1034,1042,1052,1060,1070,1078,1094,1110,1125,1140,1155,1170,1179,1192,1208,1224,1240,1249,1259,1269,1277,1285,1287,1290,1297,1304,1311,1318,1324,1331,1338,1342,1349,1356,1363,1367,1374,1381,1388,1395,1399,1405,1408,1411,1414,1417,1420,1423,1426,1429,1432,1435,1439,1445,1454,1461,1468,1475,1482,1489,1495,1502,1509,1516,1523,1530,1537,1544,1550,1557,1564,1571,1578,1582,1589,1596,1603,1610,1617,1624,1631,1637,1644,1651,1658,1665,1672,1679,1686,1693,1699,1706,1713,1720,1727,1734,1741,1748,1755,1762,1766,1775,1782,1789,1796,1803,1807,1814,1820,1829,1836,1843,1850,1854,1861,1867,1874,1881,1888,1895,1902,1906,1913,1920,1927,1933,1940,1947,1954,1961,1968,1972,1979,1986,1993,2000,2007,2014,2018];
_tsip_machine_parser_header_Str_indicies=[2,2,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,0,1,14,14,15,13,1,16,16,17,1,17,19,17,20,20,18,1,22,23,22,24,24,21,1,25,1,24,23,24,26,26,26,24,21,24,26,21,26,21,26,21,26,21,1,27,28,27,29,29,29,30,21,30,31,29,21,29,21,29,21,29,21,1,32,23,32,24,24,31,21,1,33,23,33,34,35,34,34,24,21,24,36,34,21,34,21,34,21,34,21,1,37,28,37,34,34,34,30,21,30,34,21,34,21,34,21,34,21,1,38,23,38,39,40,40,41,21,21,35,21,1,37,28,37,30,30,21,1,40,23,40,42,39,42,42,40,35,40,41,42,21,21,35,42,35,42,35,42,35,21,1,43,28,43,44,39,44,44,45,35,45,46,41,44,21,21,35,44,35,44,35,44,35,21,1,47,23,47,39,40,40,46,41,21,21,35,21,1,48,23,48,49,50,49,49,40,35,40,51,41,49,21,21,35,49,35,49,35,49,35,21,1,52,28,52,49,39,49,49,45,35,45,41,49,21,21,35,49,35,49,35,49,35,21,1,38,21,23,38,40,40,35,21,1,52,28,52,39,45,45,41,21,21,35,21,1,38,23,38,39,40,54,40,41,21,21,35,53,35,53,35,53,35,21,1,38,23,38,39,40,56,40,41,50,21,21,35,55,35,55,35,55,35,21,1,38,23,38,39,40,56,40,41,50,21,21,35,57,35,57,35,57,35,21,1,38,23,38,39,40,56,40,41,50,21,21,35,58,35,58,35,58,35,21,1,38,23,38,39,40,56,40,41,50,21,21,35,21,1,38,23,38,39,40,60,40,41,21,21,35,59,35,53,35,53,35,21,1,38,23,38,39,40,61,56,40,41,50,21,21,35,62,35,55,35,55,35,21,1,38,23,38,39,40,40,41,21,21,35,63,35,21,1,38,23,38,39,40,64,40,41,21,21,35,65,35,21,1,38,23,38,39,40,40,41,21,21,35,66,35,21,1,38,23,38,39,40,67,40,41,21,21,35,68,35,21,1,38,23,38,39,40,40,41,21,21,35,69,35,21,1,38,23,38,39,40,40,41,50,21,21,35,70,35,21,1,38,23,38,39,40,40,41,50,21,21,35,71,35,21,1,38,23,38,39,40,40,41,50,21,21,35,21,1,38,23,38,39,40,67,40,41,21,21,35,72,35,21,1,38,23,38,39,40,67,40,41,21,21,35,21,1,38,23,38,39,40,64,40,41,21,21,35,73,35,21,1,38,23,38,39,40,64,40,41,21,21,35,21,1,38,23,38,39,40,61,56,40,41,50,21,21,35,74,35,57,35,57,35,21,1,38,23,38,39,40,61,56,40,41,50,21,21,35,58,35,58,35,58,35,21,1,38,23,38,39,40,76,40,41,50,21,21,35,75,35,75,35,75,35,21,1,38,23,38,39,40,78,40,41,50,21,21,35,77,35,77,35,77,35,21,1,38,23,38,39,40,78,40,41,50,21,21,35,79,35,79,35,79,35,21,1,38,23,38,39,40,78,40,41,50,21,21,35,80,35,80,35,80,35,21,1,38,23,38,39,40,78,40,41,50,21,21,35,21,1,38,23,38,39,40,40,41,21,21,35,81,35,75,35,75,35,21,1,38,23,38,39,40,61,78,40,41,50,21,21,35,82,35,77,35,77,35,21,1,38,23,38,39,40,61,78,40,41,50,21,21,35,83,35,79,35,79,35,21,1,38,23,38,39,40,61,78,40,41,50,21,21,35,80,35,80,35,80,35,21,1,38,23,38,39,40,40,41,21,21,35,84,35,21,1,38,23,38,39,40,61,40,41,21,21,35,85,35,21,1,38,23,38,39,40,61,40,41,21,21,35,86,35,21,1,38,23,38,39,40,61,40,41,21,21,35,21,1,38,23,38,39,40,60,40,41,21,21,35,21,1,22,23,22,24,88,24,21,87,21,87,21,87,21,1,22,23,22,24,90,24,39,21,89,21,89,21,89,21,1,22,23,22,24,90,24,39,21,91,21,91,21,91,21,1,22,23,22,24,90,24,39,21,92,21,92,21,92,21,1,22,23,22,24,90,24,39,21,1,22,23,22,24,94,24,21,93,21,87,21,87,21,1,22,23,22,24,95,90,24,39,21,96,21,89,21,89,21,1,22,23,22,24,24,21,97,21,1,22,23,22,24,98,24,21,99,21,1,22,23,22,24,24,21,100,21,1,22,23,22,24,101,24,21,102,21,1,22,23,22,24,24,21,103,21,1,22,23,22,24,24,39,21,104,21,1,22,23,22,24,24,39,21,105,21,1,22,23,22,24,24,39,21,1,22,23,22,24,101,24,21,106,21,1,22,23,22,24,101,24,21,1,22,23,22,24,98,24,21,107,21,1,22,23,22,24,98,24,21,1,22,23,22,24,95,90,24,39,21,108,21,91,21,91,21,1,22,23,22,24,95,90,24,39,21,92,21,92,21,92,21,1,22,23,22,24,110,24,39,21,109,21,109,21,109,21,1,22,23,22,24,112,24,39,21,111,21,111,21,111,21,1,22,23,22,24,112,24,39,21,113,21,113,21,113,21,1,22,23,22,24,112,24,39,21,114,21,114,21,114,21,1,22,23,22,24,112,24,39,21,1,22,23,22,24,24,21,115,21,109,21,109,21,1,22,23,22,24,95,112,24,39,21,116,21,111,21,111,21,1,22,23,22,24,95,112,24,39,21,117,21,113,21,113,21,1,22,23,22,24,95,112,24,39,21,114,21,114,21,114,21,1,22,23,22,24,24,21,118,21,1,22,23,22,24,95,24,21,119,21,1,22,23,22,24,95,24,21,120,21,1,22,23,22,24,95,24,21,1,22,23,22,24,94,24,21,1,121,1,122,122,1,122,123,122,20,20,18,1,14,14,15,124,124,13,1,14,14,15,125,125,13,1,14,14,15,126,126,13,1,14,14,127,15,13,1,14,14,15,128,128,13,1,14,14,15,129,129,13,1,130,130,131,1,14,14,15,132,132,13,1,14,14,15,133,133,13,1,14,14,15,134,134,13,1,135,135,136,1,14,14,15,137,137,13,1,14,14,15,138,138,13,1,14,14,15,139,139,13,1,14,14,15,140,140,13,1,141,141,142,1,141,141,142,143,143,1,144,144,1,145,145,1,146,146,1,147,147,1,148,148,1,149,149,1,150,150,1,151,151,1,152,152,1,153,153,1,154,154,155,1,14,14,156,15,13,1,14,14,15,157,158,157,158,13,1,14,14,15,159,159,13,1,14,14,15,160,160,13,1,14,14,15,161,161,13,1,14,14,15,162,162,13,1,14,14,15,163,163,13,1,14,14,164,15,13,1,14,14,15,165,165,13,1,14,14,15,166,166,13,1,14,14,15,167,167,13,1,14,14,15,168,168,13,1,14,14,15,169,169,13,1,14,14,15,170,170,13,1,14,14,15,171,171,13,1,14,14,172,15,13,1,14,14,15,173,173,13,1,14,14,15,174,174,13,1,14,14,15,175,175,13,1,14,14,15,176,176,13,1,177,177,178,1,14,14,15,179,179,13,1,14,14,15,180,180,13,1,14,14,15,181,181,13,1,14,14,15,182,182,13,1,14,14,15,183,183,13,1,14,14,15,184,184,13,1,14,14,15,185,185,13,1,14,14,186,15,13,1,14,14,15,187,187,13,1,14,14,15,188,188,13,1,14,14,15,189,189,13,1,14,14,15,190,190,13,1,14,14,15,191,191,13,1,14,14,15,192,192,13,1,14,14,15,193,193,13,1,14,14,15,194,194,13,1,14,14,195,15,13,1,14,14,15,196,196,13,1,14,14,15,197,197,13,1,14,14,15,198,198,13,1,14,14,15,199,199,13,1,14,14,15,200,200,13,1,14,14,15,201,201,13,1,14,14,15,202,202,13,1,14,14,15,203,203,13,1,14,14,15,204,204,13,1,205,205,206,1,14,14,15,207,208,207,208,13,1,14,14,15,209,209,13,1,14,14,15,210,210,13,1,14,14,15,211,211,13,1,14,14,15,212,212,13,1,213,213,214,1,14,14,15,215,215,13,1,14,14,216,15,13,1,14,14,15,217,218,217,218,13,1,14,14,15,219,219,13,1,14,14,15,220,220,13,1,14,14,15,221,221,13,1,222,222,223,1,14,14,15,224,224,13,1,14,14,225,15,13,1,14,14,15,226,226,13,1,14,14,15,227,227,13,1,14,14,15,228,228,13,1,14,14,15,229,229,13,1,14,14,15,230,230,13,1,231,231,232,1,14,14,15,233,233,13,1,14,14,15,234,234,13,1,14,14,15,235,235,13,1,14,14,236,15,13,1,14,14,15,237,237,13,1,14,14,15,238,238,13,1,14,14,15,239,239,13,1,14,14,15,240,240,13,1,14,14,15,241,241,13,1,242,242,243,1,14,14,15,244,244,13,1,14,14,15,245,245,13,1,14,14,15,246,246,13,1,14,14,15,247,247,13,1,14,14,15,248,248,13,1,14,14,15,249,249,13,1,250,250,251,1,1,0];
_tsip_machine_parser_header_Str_trans_targs=[2,0,3,4,94,101,105,100,110,122,170,191,201,2,3,4,3,4,5,91,7,5,5,6,7,208,8,9,6,8,7,10,9,10,11,12,56,5,12,13,14,19,15,16,15,14,17,16,17,18,20,21,12,22,55,23,26,24,25,27,42,28,40,29,30,38,31,32,36,33,34,35,37,39,41,43,51,44,47,45,46,48,49,50,52,53,54,57,90,58,61,59,60,62,77,63,75,64,65,73,66,67,71,68,69,70,72,74,76,78,86,79,82,80,81,83,84,85,87,88,89,92,93,6,95,96,97,98,99,100,3,4,102,103,104,3,4,106,107,108,109,3,4,111,112,113,114,115,116,117,118,119,120,121,3,4,123,124,143,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,3,4,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,3,4,171,176,172,173,174,175,3,4,177,178,179,183,180,181,182,3,4,184,185,186,187,188,189,190,3,4,192,193,194,195,196,197,198,199,200,3,4,202,203,204,205,206,207,3,4];
_tsip_machine_parser_header_Str_trans_actions=[1,0,49,49,1,1,1,1,1,1,1,1,1,0,43,43,0,0,1,0,7,0,3,3,3,5,1,46,46,0,46,0,3,3,0,0,0,46,3,0,3,0,1,46,0,46,0,3,3,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,10,10,0,0,0,13,13,0,0,0,0,16,16,0,0,0,0,0,0,0,0,0,0,0,19,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,0,0,0,0,0,0,28,28,0,0,0,0,0,0,0,31,31,0,0,0,0,0,0,0,34,34,0,0,0,0,0,0,0,0,0,37,37,0,0,0,0,0,0,40,40];
tsip_machine_parser_header_Str_start=1;tsip_machine_parser_header_Str_first_final=208;tsip_machine_parser_header_Str_error=0;
tsip_machine_parser_header_Str_en_main=1;function tsip_header_Str(a,b){tsip_header.call(this,a);this.s_value=b
}tsip_header_Str.prototype.toString=function(){return this.s_value};tsip_header_Str.prototype.Parse=function(l){var e=0;
var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);var u;var m=null;e=tsip_machine_parser_header_Str_start;
var f,n,b,d,c,r,k;var o,h,a,q,t;var s;f=n=b=r=k=null;o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;
if(o<=0){if(j==v){o=t;continue}if(e==0){o=s;continue}}if(o<=h){b=_tsip_machine_parser_header_Str_key_offsets[e];
n=_tsip_machine_parser_header_Str_index_offsets[e];f=_tsip_machine_parser_header_Str_single_lengths[e];
_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(w[j]<_tsip_machine_parser_header_Str_trans_keys[_mid]){_upper=_mid-1}else{if(w[j]>_tsip_machine_parser_header_Str_trans_keys[_mid]){_lower=_mid+1
}else{n+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Str_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[j]<_tsip_machine_parser_header_Str_trans_keys[_mid]){_upper=_mid-2}else{if(w[j]>_tsip_machine_parser_header_Str_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Str_indicies[n];
e=_tsip_machine_parser_header_Str_trans_targs[n];if(_tsip_machine_parser_header_Str_trans_actions[n]!=0){r=_tsip_machine_parser_header_Str_trans_actions[n];
k=_tsip_machine_parser_header_Str_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsip_machine_parser_header_Str_actions[r-1]){case 0:u=j;
break;case 1:m=new tsip_header_Call_ID();break;case 2:m=new tsip_header_Date();break;case 3:m=new tsip_header_Event();
break;case 4:m=new tsip_header_Organization();break;case 5:m=new tsip_header_P_Access_Network_Info();
break;case 6:m=new tsip_header_P_Charging_Function_Addresses();break;case 7:m=new tsip_header_Server();
break;case 8:m=new tsip_header_SIP_ETag();break;case 9:m=new tsip_header_SIP_If_Match();break;case 10:m=new tsip_header_User_Agent();
break;case 11:m=new tsip_header_Warning();break;case 12:m=new tsip_header_Dummy();break;case 13:if(m){m.s_name=tsk_ragel_parser_get_string(l,j,u)
}break;case 14:if(m){m.s_value=tsk_ragel_parser_get_string(l,j,u)}break;case 15:if(m){tsk_ragel_add_param(l,j,u,m.ao_params)
}break;case 16:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;continue}j+=1;if(j!=v){o=h;continue
}}if(o<=t){}if(o<=s){break}}if(e<208){tsk_utils_log_error("Failed to parse header: "+l);return null}return m
};function tsip_header_Call_ID(a){tsip_header_Str.call(this,tsip_header_type_e.Call_ID,a)}function tsip_header_Date(a){tsip_header_Str.call(this,tsip_header_type_e.Date,a)
}function tsip_header_Event(a){tsip_header_Str.call(this,tsip_header_type_e.Event,a)}function tsip_header_Organization(a){tsip_header_Str.call(this,tsip_header_type_e.Organization,a)
}function tsip_header_P_Access_Network_Info(a){tsip_header_Str.call(this,tsip_header_type_e.P_Access_Network_Info,a)
}function tsip_header_P_Charging_Function_Addresses(a){tsip_header_Str.call(this,tsip_header_type_e.P_Charging_Function_Addresses,a)
}function tsip_header_Server(a){tsip_header_Str.call(this,tsip_header_type_e.Server,a)}function tsip_header_SIP_ETag(a){tsip_header_Str.call(this,tsip_header_type_e.SIP_ETag,a)
}function tsip_header_SIP_If_Match(a){tsip_header_Str.call(this,tsip_header_type_e.SIP_If_Match,a)}function tsip_header_User_Agent(a){tsip_header_Str.call(this,tsip_header_type_e.User_Agent,a)
}function tsip_header_Warning(a){tsip_header_Str.call(this,tsip_header_type_e.Warning,a)}function tsip_header_Dummy(b,a){tsip_header_Str.call(this,tsip_header_type_e.Dummy,a);
this.s_name=b}var TSIP_HEADER_ALLOW_DEFAULT="ACK, BYE, CANCEL, INVITE, MESSAGE, NOTIFY, OPTIONS, PRACK, REFER, UPDATE";
tsip_header_StrArray.prototype=Object.create(tsip_header.prototype);tsip_header_StrArray.prototype.as_values=null;
tsip_header_Allow.prototype=Object.create(tsip_header_StrArray.prototype);tsip_header_Allow_Events.prototype=Object.create(tsip_header_StrArray.prototype);
tsip_header_Privacy.prototype=Object.create(tsip_header_StrArray.prototype);tsip_header_Require.prototype=Object.create(tsip_header_StrArray.prototype);
tsip_header_Supported.prototype=Object.create(tsip_header_StrArray.prototype);_tsip_machine_parser_header_Allow_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7];
_tsip_machine_parser_header_Allow_key_offsets=[0,0,12,14,16,18,20,24,27,44,45,61,65,66,68,71,88,89,91,107,109,111,113,115,117,119,122,125,141,142,144,159,176,180,181,183,186,199,202,204,206,208,210,212,214,217,220,249,250,252,280,296,322,340,358,376,394,412,430,448,450,470,488,506,524,542,560,578,596,614,632,650,668,686,704,722,740,758,776,794,812,830,832,834,836,838,840,842,845,848,850,852,854,856,858,860,862,864];
_tsip_machine_parser_header_Allow_trans_keys=[65,75,80,82,83,85,97,107,112,114,115,117,76,108,76,108,79,111,87,119,9,32,45,58,9,32,58,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,13,32,33,37,39,44,126,42,46,48,57,65,90,95,122,9,13,32,44,10,9,32,9,32,44,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,69,101,86,118,69,101,78,110,84,116,83,115,9,32,58,9,32,58,9,13,32,33,37,39,45,126,42,43,48,57,65,90,95,122,10,9,32,9,32,33,37,39,45,126,42,43,48,57,65,90,95,122,9,13,32,33,37,39,44,46,126,42,45,48,57,65,90,95,122,9,13,32,44,10,9,32,9,32,44,33,37,39,45,126,42,43,48,57,65,90,95,122,9,32,58,82,114,73,105,86,118,65,97,67,99,89,121,9,32,58,9,32,58,9,13,32,33,37,39,67,72,73,78,83,85,99,104,105,110,115,117,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,67,72,73,78,83,85,99,104,105,110,115,117,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,33,37,39,67,72,73,78,83,85,99,104,105,110,115,117,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,82,114,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,73,105,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,84,116,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,73,105,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,67,99,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,65,97,126,42,43,45,46,48,57,66,90,95,122,13,33,37,39,59,76,108,126,42,43,45,46,48,57,65,90,95,122,13,59,13,33,37,39,59,69,73,101,105,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,65,97,126,42,43,45,46,48,57,66,90,95,122,13,33,37,39,59,68,100,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,69,101,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,82,114,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,83,115,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,84,116,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,79,111,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,82,114,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,89,121,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,68,100,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,79,111,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,78,110,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,69,101,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,69,101,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,83,115,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,83,115,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,73,105,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,79,111,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,78,110,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,59,83,115,126,42,43,45,46,48,57,65,90,95,122,69,101,81,113,85,117,73,105,82,114,69,101,9,32,58,9,32,58,85,117,80,112,80,112,79,111,82,114,84,116,69,101,68,100,0];
_tsip_machine_parser_header_Allow_single_lengths=[0,12,2,2,2,2,4,3,7,1,8,4,1,2,3,7,1,2,6,2,2,2,2,2,2,3,3,8,1,2,7,9,4,1,2,3,5,3,2,2,2,2,2,2,3,3,19,1,2,18,6,16,8,8,8,8,8,8,8,2,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,0];
_tsip_machine_parser_header_Allow_range_lengths=[0,0,0,0,0,0,0,0,5,0,4,0,0,0,0,5,0,0,5,0,0,0,0,0,0,0,0,4,0,0,4,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,5,0,0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_header_Allow_index_offsets=[0,0,13,16,19,22,25,30,34,47,49,62,67,69,72,76,89,91,94,106,109,112,115,118,121,124,128,132,145,147,150,162,176,181,183,186,190,200,204,207,210,213,216,219,222,226,230,255,257,260,284,296,318,332,346,360,374,388,402,416,419,435,449,463,477,491,505,519,533,547,561,575,589,603,617,631,645,659,673,687,701,715,718,721,724,727,730,733,737,741,744,747,750,753,756,759,762,765];
_tsip_machine_parser_header_Allow_indicies=[0,2,3,4,5,6,0,2,3,4,5,6,1,7,7,1,8,8,1,9,9,1,10,10,1,11,11,12,13,1,14,14,15,1,15,16,15,17,17,17,17,17,17,17,17,17,1,18,1,19,20,19,21,21,21,22,21,21,21,21,21,1,23,24,23,25,1,26,1,27,27,1,27,27,25,1,25,28,25,17,17,17,17,17,17,17,17,17,1,29,1,30,30,1,30,30,17,17,17,17,17,17,17,17,17,1,31,31,1,32,32,1,33,33,1,34,34,1,35,35,1,6,6,1,36,36,37,1,38,38,39,1,39,40,39,41,41,41,41,41,41,41,41,41,1,42,1,43,43,1,43,43,41,41,41,41,41,41,41,41,41,1,44,20,44,45,45,45,46,47,45,45,45,45,45,1,48,49,48,39,1,50,1,51,51,1,51,51,39,1,45,45,45,45,45,45,45,45,45,1,52,52,53,1,54,54,1,55,55,1,56,56,1,57,57,1,58,58,1,59,59,1,60,60,61,1,62,62,63,1,63,64,63,65,65,65,66,67,68,69,70,71,66,67,68,69,70,71,65,65,65,65,65,65,1,72,1,73,73,1,73,73,65,65,65,66,67,68,69,70,71,66,67,68,69,70,71,65,65,65,65,65,65,1,20,74,74,74,75,74,74,74,74,74,74,1,65,65,65,66,67,68,69,70,71,66,67,68,69,70,71,65,65,65,65,65,65,1,20,74,74,74,75,76,76,74,74,74,74,74,74,1,20,74,74,74,75,77,77,74,74,74,74,74,74,1,20,74,74,74,75,78,78,74,74,74,74,74,74,1,20,74,74,74,75,79,79,74,74,74,74,74,74,1,20,74,74,74,75,80,80,74,74,74,74,74,74,1,20,74,74,74,75,81,81,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,75,1,20,74,74,74,75,83,84,83,84,74,74,74,74,74,74,1,20,74,74,74,75,85,85,74,74,74,74,74,74,1,20,74,74,74,75,86,86,74,74,74,74,74,74,1,20,74,74,74,75,87,87,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,74,74,74,75,88,88,74,74,74,74,74,74,1,20,74,74,74,75,89,89,74,74,74,74,74,74,1,20,74,74,74,75,90,90,74,74,74,74,74,74,1,20,74,74,74,75,91,91,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,74,74,74,75,92,92,74,74,74,74,74,74,1,20,74,74,74,75,93,93,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,74,74,74,75,94,94,74,74,74,74,74,74,1,20,74,74,74,75,95,95,74,74,74,74,74,74,1,20,74,74,74,75,96,96,74,74,74,74,74,74,1,20,74,74,74,75,97,97,74,74,74,74,74,74,1,20,74,74,74,75,98,98,74,74,74,74,74,74,1,20,74,74,74,75,82,82,74,74,74,74,74,74,1,20,74,74,74,75,86,86,74,74,74,74,74,74,1,99,99,1,100,100,1,101,101,1,102,102,1,103,103,1,104,104,1,105,105,106,1,107,107,25,1,108,108,1,109,109,1,110,110,1,111,111,1,112,112,1,113,113,1,114,114,1,2,2,1,1,0];
_tsip_machine_parser_header_Allow_trans_targs=[2,0,37,38,81,89,25,3,4,5,6,7,19,8,7,8,9,10,97,11,9,10,15,11,12,15,13,14,16,17,18,20,21,22,23,24,26,27,26,27,28,31,29,30,32,31,27,36,32,33,34,35,7,8,39,40,41,42,43,44,45,46,45,46,47,50,52,60,70,71,74,80,48,49,50,51,53,54,55,56,57,58,59,61,65,62,63,64,66,67,68,69,72,73,75,76,77,78,79,82,83,84,85,86,87,88,15,88,90,91,92,93,94,95,96];
_tsip_machine_parser_header_Allow_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,1,15,3,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,1,0,0,3,0,3,0,0,0,0,0,13,13,0,0,0,0,0,0,9,9,0,0,0,1,1,1,1,1,1,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0];
tsip_machine_parser_header_Allow_start=1;tsip_machine_parser_header_Allow_first_final=97;tsip_machine_parser_header_Allow_error=0;
tsip_machine_parser_header_Allow_en_main=1;function tsip_header_StrArray(a,b){tsip_header.call(this,a);
this.as_values=new Array();if(b){this.as_values.push(b)}}tsip_header_StrArray.prototype.toString=function(){var c=null;
var b;switch(this.e_type){case tsip_header_type_e.Privacy:b=";";break;default:b=",";break}for(var a=0;
a<this.as_values.length;++a){if(a==0){c=this.as_values[a]}else{c+=tsk_string_format("{0}{1}",b,this.as_values[a])
}}return c};tsip_header_StrArray.prototype.has_value=function(c){if(this.as_values&&c){var a=c.toLowerCase();
for(var b=0;b<this.as_values.length;++b){if(this.as_values[b].toLowerCase()==a){return true}}}return false
};tsip_header_StrArray.prototype.Parse=function(l){var e=0;var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);
var u;var m=null;e=tsip_machine_parser_header_Allow_start;var f,n,b,d,c,r,k;var o,h,a,q,t;var s;f=n=b=r=k=null;
o=0;h=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(j==v){o=t;continue}if(e==0){o=s;
continue}}if(o<=h){b=_tsip_machine_parser_header_Allow_key_offsets[e];n=_tsip_machine_parser_header_Allow_index_offsets[e];
f=_tsip_machine_parser_header_Allow_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsip_machine_parser_header_Allow_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsip_machine_parser_header_Allow_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Allow_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[j]<_tsip_machine_parser_header_Allow_trans_keys[_mid]){_upper=_mid-2
}else{if(w[j]>_tsip_machine_parser_header_Allow_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-b)>>1);
_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Allow_indicies[n];
e=_tsip_machine_parser_header_Allow_trans_targs[n];if(_tsip_machine_parser_header_Allow_trans_actions[n]!=0){r=_tsip_machine_parser_header_Allow_trans_actions[n];
k=_tsip_machine_parser_header_Allow_actions[r];r+=1;while(k>0){k-=1;r+=1;switch(_tsip_machine_parser_header_Allow_actions[r-1]){case 0:u=j;
break;case 1:if(m){tsk_ragel_parser_add_string(l,j,u,m.as_values)}break;case 2:m=new tsip_header_Allow();
break;case 3:m=new tsip_header_Allow_Events();break;case 4:m=new tsip_header_Privacy();break;case 5:m=new tsip_header_Require();
break;case 6:m=new tsip_header_Supported();break;case 7:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;
continue}j+=1;if(j!=v){o=h;continue}}if(o<=t){}if(o<=s){break}}if(e<97){tsk_utils_log_error("Failed to parse header: "+l);
return null}return m};function tsip_header_Allow(a){tsip_header_StrArray.call(this,tsip_header_type_e.Allow,a)
}function tsip_header_Allow_Events(a){tsip_header_StrArray.call(this,tsip_header_type_e.Allow_Events,a)
}function tsip_header_Privacy(a){tsip_header_StrArray.call(this,tsip_header_type_e.Privacy,a)}function tsip_header_Require(a){tsip_header_StrArray.call(this,tsip_header_type_e.Require,a)
}function tsip_header_Supported(a){tsip_header_StrArray.call(this,tsip_header_type_e.Supported,a)}tsip_header_Authorization.prototype=Object.create(tsip_header.prototype);
_tsip_machine_parser_header_Authorization_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,16,2,0,8,2,0,9,2,0,11,2,0,12,2,0,15,2,5,0,2,6,0,2,7,0,2,8,0,2,15,0];
_tsip_machine_parser_header_Authorization_key_offsets=[0,0,4,6,8,10,12,14,16,18,20,22,24,26,28,31,40,43,44,53,58,63,68,73,78,115,139,146,183,209,234,257,263,274,280,286,302,319,336,353,358,374,392,399,407,414,422,429,437,445,449,457,461,469,473,491,509,526,543,560,577,582,597,615,633,651,658,666,674,678,682,708,734,760,786,812,838,864,888,895,920,943,969,995,1021,1047,1073,1097,1104,1129,1140,1146,1152,1180,1204,1211,1242,1271,1300,1329,1358,1387,1416,1445,1451,1477,1503,1529,1553,1560,1585,1596,1602,1608,1634,1660,1686,1712,1738,1762,1769,1794,1805,1811,1817,1843,1869,1893,1900,1925,1948,1974,2002,2028,2054,2078,2085,2110,2121,2127,2133,2159,2185,2211,2237,2263,2287,2294,2319,2330,2336,2342,2370,2396,2420,2427,2452,2463,2467,2478,2485,2498,2542,2573,2587,2618,2648,2661,2685,2710,2735,2760,2773,2797,2823,2838,2854,2869,2885,2900,2916,2932,2944,2960,2972,2988,3000,3026,3052,3077,3102,3127,3152,3165,3188,3214,3240,3266,3281,3297,3313,3325,3337,3370,3403,3436,3469,3502,3535,3568,3601,3632,3646,3677,3707,3740,3773,3806,3839,3872,3903,3917,3948,3961,3974,4018,4049,4063,4094,4124,4137,4161,4186,4211,4236,4249,4273,4299,4314,4330,4345,4361,4376,4392,4408,4420,4436,4448,4464,4476,4502,4528,4553,4578,4603,4628,4641,4664,4690,4716,4742,4757,4773,4789,4801,4813,4846,4879,4912,4945,4978,5011,5044,5077,5108,5122,5153,5183,5216,5249,5282,5315,5348,5379,5393,5424,5437,5472,5503,5517,5554,5590,5626,5662,5698,5734,5770,5806,5819,5852,5885,5918,5949,5963,5994,6007,6020,6064,6095,6109,6140,6170,6183,6207,6232,6257,6282,6295,6319,6345,6360,6376,6391,6407,6422,6438,6454,6466,6479,6495,6507,6523,6535,6561,6587,6612,6637,6662,6687,6700,6723,6749,6775,6801,6816,6832,6848,6860,6872,6905,6938,6971,7004,7037,7070,7103,7136,7167,7181,7212,7242,7275,7308,7341,7374,7407,7438,7452,7483,7496,7531,7562,7576,7613,7649,7685,7721,7757,7793,7829,7865,7878,7911,7944,7977,8008,8022,8053,8066,8099,8132,8165,8198,8231,8262,8276,8307,8320,8333,8377,8408,8422,8453,8483,8496,8520,8545,8570,8595,8608,8632,8658,8673,8689,8704,8720,8735,8751,8767,8779,8792,8808,8820,8836,8848,8874,8900,8925,8950,8975,9000,9013,9036,9062,9088,9114,9129,9145,9161,9173,9185,9218,9251,9284,9317,9350,9383,9416,9449,9480,9494,9525,9555,9588,9621,9654,9687,9720,9751,9765,9796,9809,9844,9875,9889,9926,9962,9998,10034,10070,10106,10142,10178,10191,10224,10257,10290,10321,10335,10366,10379,10412,10445,10478,10511,10544,10575,10589,10620,10633,10666,10699,10730,10744,10775,10805,10838,10873,10906,10939,10970,10984,11015,11028,11041,11085,11116,11130,11161,11191,11204,11228,11253,11278,11303,11316,11340,11366,11381,11397,11412,11428,11443,11459,11475,11487,11500,11516,11528,11544,11556,11582,11608,11633,11658,11683,11708,11721,11744,11770,11796,11822,11837,11853,11869,11881,11893,11926,11959,11992,12025,12058,12091,12124,12157,12188,12202,12233,12263,12296,12329,12362,12395,12428,12459,12473,12504,12517,12552,12583,12597,12634,12670,12706,12742,12778,12814,12850,12886,12899,12932,12965,12998,13029,13043,13074,13087,13120,13153,13186,13219,13252,13283,13297,13328,13341,13374,13407,13438,13452,13483,13513,13546,13581,13614,13647,13678,13692,13723,13736,13769,13802,13835,13868,13901,13932,13946,13977,13990,14003,14047,14078,14092,14123,14153,14166,14190,14215,14240,14265,14278,14302,14328,14343,14359,14374,14390,14405,14421,14437,14449,14462,14478,14490,14506,14518,14544,14570,14595,14620,14645,14670,14683,14706,14732,14758,14784,14799,14815,14831,14843,14855,14888,14921,14954,14987,15020,15053,15086,15119,15150,15164,15195,15225,15258,15291,15324,15357,15390,15421,15435,15466,15479,15514,15545,15559,15596,15632,15668,15704,15740,15776,15812,15848,15861,15894,15927,15960,15991,16005,16036,16049,16082,16115,16148,16181,16214,16245,16259,16290,16303,16336,16369,16400,16414,16445,16475,16508,16543,16576,16609,16640,16654,16685,16698,16731,16764,16797,16830,16863,16894,16908,16939,16952,16987,17020,17051,17065,17096,17109,17122,17166,17197,17211,17242,17272,17296,17321,17346,17371,17384,17408,17434,17449,17465,17480,17496,17511,17527,17543,17555,17568,17584,17596,17612,17624,17650,17676,17701,17726,17751,17776,17789,17812,17838,17864,17890,17905,17921,17937,17949,17961,17994,18027,18060,18093,18126,18159,18192,18225,18256,18270,18301,18331,18364,18397,18430,18463,18496,18527,18541,18572,18607,18638,18652,18689,18725,18761,18797,18833,18869,18905,18941,18954,18987,19020,19053,19084,19098,19129,19162,19195,19228,19261,19294,19325,19339,19370,19403,19436,19467,19481,19512,19542,19575,19610,19643,19676,19707,19721,19752,19785,19818,19851,19884,19917,19948,19962,19993,20028,20061,20092,20106,20137,20170,20203,20236,20269,20302,20335,20366,20380,20411,20424,20435,20441,20447,20491,20522,20536,20567,20597,20610,20634,20659,20684,20709,20722,20746,20772,20787,20803,20818,20834,20849,20865,20881,20893,20906,20922,20934,20950,20962,20988,21014,21039,21064,21089,21114,21127,21150,21176,21202,21228,21243,21259,21275,21287,21299,21332,21365,21398,21431,21464,21497,21530,21563,21594,21608,21639,21669,21702,21735,21768,21801,21834,21865,21879,21910,21923,21958,21989,22003,22040,22076,22112,22148,22184,22220,22256,22292,22305,22338,22371,22404,22435,22449,22480,22493,22526,22559,22592,22625,22658,22689,22703,22734,22747,22780,22813,22844,22858,22889,22919,22952,22987,23020,23053,23084,23098,23129,23142,23175,23208,23241,23274,23307,23338,23352,23383,23396,23431,23464,23495,23509,23540,23553,23586,23619,23652,23685,23718,23751,23782,23796,23827,23840,23873,23906,23939,23972,24005,24038,24069,24083,24114,24127,24162,24195,24226,24240,24271,24284,24317,24350,24383,24416,24449,24482,24513,24527,24558,24571,24604,24637,24670,24703,24736,24767,24781,24812,24825,24860,24893,24924,24938,24969,24982,25015,25048,25081,25114,25147,25180,25211,25225,25256,25269,25302,25335,25366,25380,25411,25441,25474,25509,25542,25575,25606,25620,25651,25664,25697,25730,25763,25796,25829,25860,25874,25905,25918,25953,25986,26017,26031,26062,26075,26108,26141,26174,26207,26240,26273,26304,26318,26349,26362,26395,26428,26461,26494,26527,26558,26572,26603,26616,26649,26682,26713,26727,26758,26788,26821,26856,26889,26922,26953,26967,26998,27011,27044,27077,27110,27143,27176,27207,27221,27252,27265,27300,27333,27364,27378,27409,27422,27455,27488,27521,27554,27587,27620,27651,27665,27696,27709,27744,27775,27789,27826,27862,27898,27934,27970,28006,28042,28078,28091,28124,28157,28190,28221,28235,28266,28299,28332,28365,28398,28431,28462,28476,28507,28540,28573,28604,28618,28649,28679,28712,28747,28780,28813,28844,28858,28889,28922,28955,28988,29021,29054,29085,29099,29130,29165,29198,29229,29243,29274,29287,29320,29353,29386,29419,29452,29485,29516,29530,29561,29587,29613,29639,29665,29691,29717,29741,29748,29773,29801,29827,29851,29858,29883,29894,29905,29912,29925,29969,30000,30014,30045,30075,30099,30124,30149,30174,30187,30211,30237,30252,30268,30283,30299,30314,30330,30346,30358,30371,30387,30399,30415,30427,30453,30479,30504,30529,30554,30579,30592,30615,30641,30667,30693,30708,30724,30740,30752,30764,30797,30830,30863,30896,30929,30962,30995,31028,31059,31073,31104,31134,31167,31200,31233,31266,31299,31330,31344,31375,31410,31441,31455,31492,31528,31564,31600,31636,31672,31708,31744,31757,31790,31823,31856,31887,31901,31932,31965,31998,32031,32064,32097,32128,32142,32173,32206,32239,32270,32284,32315,32345,32378,32413,32446,32479,32510,32524,32555,32588,32621,32654,32687,32720,32751,32765,32796,32831,32864,32895,32909,32940,32953,32986,33019,33052,33085,33118,33151,33182,33196,33227,33232,33237,33242,33247,33252,33257,33261,33266,33268,33270,33272,33274,33275,33277];
_tsip_machine_parser_header_Authorization_trans_keys=[65,80,97,112,85,117,84,116,72,104,79,111,82,114,73,105,90,122,65,97,84,116,73,105,79,111,78,110,9,32,58,9,13,32,66,68,98,100,0,65535,13,0,65535,10,9,13,32,66,68,98,100,0,65535,13,65,97,0,65535,13,83,115,0,65535,13,73,105,0,65535,13,67,99,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,67,78,79,81,82,85,97,99,110,111,113,114,117,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,37,39,44,47,65,67,78,79,81,82,85,97,99,110,111,113,114,117,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,0,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,13,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,65535,13,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,0,47,48,57,58,65535,13,93,0,47,48,57,58,65535,13,93,0,47,48,57,58,65535,13,93,0,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,65535,13,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,58,0,65535,9,13,32,33,37,39,44,47,61,71,103,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,72,104,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,67,99,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,61,67,79,99,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,46,48,57,58,64,65,90,92,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,65535,9,13,32,44,0,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,67,99,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,81,113,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,83,97,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,83,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,61,82,83,114,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,13,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,127,128,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,82,83,114,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,127,128,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,67,78,79,81,82,85,92,97,99,110,111,113,114,117,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,79,92,99,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,93,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,46,48,57,58,64,65,90,91,94,95,96,97,102,103,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,83,92,97,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,83,92,114,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,13,73,105,0,65535,13,71,103,0,65535,13,69,101,0,65535,13,83,115,0,65535,13,84,116,0,65535,9,13,32,0,65535,10,13,0,65535,9,13,32,0,65535,82,114,79,111,88,120,89,121,45,65,97,0];
_tsip_machine_parser_header_Authorization_single_lengths=[0,4,2,2,2,2,2,2,2,2,2,2,2,2,3,7,1,1,7,3,3,3,3,3,23,10,5,23,12,11,9,4,5,4,2,2,3,3,3,3,2,4,1,2,1,2,1,2,2,2,2,2,2,2,4,4,3,3,3,3,3,1,4,4,4,1,2,2,2,2,12,12,12,12,12,12,12,10,5,11,9,12,12,12,12,12,10,5,11,5,4,2,14,10,5,11,9,9,9,9,9,9,9,4,12,12,12,10,5,11,5,4,2,12,12,12,12,12,10,5,11,5,4,2,12,12,10,5,11,9,12,14,12,12,10,5,11,5,4,2,12,12,12,12,12,10,5,11,5,4,2,14,12,10,5,11,5,2,5,3,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,7,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,7,26,13,8,13,12,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,15,15,15,15,15,13,8,13,15,15,13,8,13,12,15,17,15,15,13,8,13,15,15,15,15,15,13,8,13,17,15,13,8,13,15,15,15,15,15,15,13,8,13,7,5,4,2,26,13,8,13,12,7,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,15,15,13,8,13,12,15,17,15,15,13,8,13,7,15,15,15,15,15,13,8,13,7,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,7,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,15,15,15,15,15,13,8,13,15,15,13,8,13,12,15,17,15,15,13,8,13,15,15,15,15,15,13,8,13,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,12,12,12,12,12,12,10,5,11,14,12,10,5,11,5,5,3,7,26,13,8,13,12,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,15,15,15,15,15,15,15,15,13,8,13,12,15,15,15,15,15,13,8,13,17,13,8,13,12,12,12,12,12,12,12,7,15,15,15,13,8,13,15,15,15,15,15,13,8,13,15,15,13,8,13,12,15,17,15,15,13,8,13,15,15,15,15,15,13,8,13,17,15,13,8,13,7,15,15,15,15,15,15,13,8,13,3,3,3,3,3,3,2,3,2,2,2,2,1,2,0];
_tsip_machine_parser_header_Authorization_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,7,7,1,7,7,7,7,1,3,1,2,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,7,7,7,7,7,7,7,7,1,7,7,7,7,7,7,7,7,1,7,3,1,2,7,7,1,10,10,10,10,10,10,10,10,1,7,7,7,7,1,7,3,1,2,7,7,7,7,7,7,1,7,3,1,2,7,7,7,1,7,7,7,7,7,7,7,1,7,3,1,2,7,7,7,7,7,7,1,7,3,1,2,7,7,7,1,7,3,1,3,2,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,3,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,3,9,9,3,9,9,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,3,1,2,9,9,3,9,9,3,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,9,9,9,9,9,9,3,9,3,9,9,9,9,9,9,3,9,3,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,3,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,7,7,7,7,7,7,7,1,7,7,7,7,1,7,3,3,2,3,9,9,3,9,9,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,9,9,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,9,3,9,9,9,3,12,12,12,12,12,12,12,12,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,9,9,9,3,9,9,9,9,3,9,3,9,9,9,9,9,9,9,3,9,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0];
_tsip_machine_parser_header_Authorization_index_offsets=[0,0,5,8,11,14,17,20,23,26,29,32,35,38,41,45,54,57,59,68,73,78,83,88,93,124,142,149,180,200,219,236,242,251,257,262,272,283,294,305,310,320,332,337,343,348,354,359,365,371,375,381,385,391,395,407,419,430,441,452,463,468,477,489,501,513,518,524,530,534,538,558,578,598,618,638,658,678,696,703,722,739,759,779,799,819,839,857,864,883,892,898,903,925,943,950,972,992,1012,1032,1052,1072,1092,1112,1118,1138,1158,1178,1196,1203,1222,1231,1237,1242,1262,1282,1302,1322,1342,1360,1367,1386,1395,1401,1406,1426,1446,1464,1471,1490,1507,1527,1549,1569,1589,1607,1614,1633,1642,1648,1653,1673,1693,1713,1733,1753,1771,1778,1797,1806,1812,1817,1839,1859,1877,1884,1903,1912,1916,1925,1931,1942,1978,2001,2013,2036,2058,2069,2085,2102,2119,2136,2147,2163,2181,2192,2204,2215,2227,2238,2250,2262,2272,2284,2294,2306,2316,2334,2352,2369,2386,2403,2420,2431,2446,2464,2482,2500,2511,2523,2535,2545,2555,2580,2605,2630,2655,2680,2705,2730,2755,2778,2790,2813,2835,2860,2885,2910,2935,2960,2983,2995,3018,3029,3040,3076,3099,3111,3134,3156,3167,3183,3200,3217,3234,3245,3261,3279,3290,3302,3313,3325,3336,3348,3360,3370,3382,3392,3404,3414,3432,3450,3467,3484,3501,3518,3529,3544,3562,3580,3598,3609,3621,3633,3643,3653,3678,3703,3728,3753,3778,3803,3828,3853,3876,3888,3911,3933,3958,3983,4008,4033,4058,4081,4093,4116,4127,4154,4177,4189,4215,4240,4265,4290,4315,4340,4365,4390,4401,4426,4451,4476,4499,4511,4534,4545,4556,4592,4615,4627,4650,4672,4683,4699,4716,4733,4750,4761,4777,4795,4806,4818,4829,4841,4852,4864,4876,4886,4897,4909,4919,4931,4941,4959,4977,4994,5011,5028,5045,5056,5071,5089,5107,5125,5136,5148,5160,5170,5180,5205,5230,5255,5280,5305,5330,5355,5380,5403,5415,5438,5460,5485,5510,5535,5560,5585,5608,5620,5643,5654,5681,5704,5716,5742,5767,5792,5817,5842,5867,5892,5917,5928,5953,5978,6003,6026,6038,6061,6072,6097,6122,6147,6172,6197,6220,6232,6255,6266,6277,6313,6336,6348,6371,6393,6404,6420,6437,6454,6471,6482,6498,6516,6527,6539,6550,6562,6573,6585,6597,6607,6618,6630,6640,6652,6662,6680,6698,6715,6732,6749,6766,6777,6792,6810,6828,6846,6857,6869,6881,6891,6901,6926,6951,6976,7001,7026,7051,7076,7101,7124,7136,7159,7181,7206,7231,7256,7281,7306,7329,7341,7364,7375,7402,7425,7437,7463,7488,7513,7538,7563,7588,7613,7638,7649,7674,7699,7724,7747,7759,7782,7793,7818,7843,7868,7893,7918,7941,7953,7976,7987,8012,8037,8060,8072,8095,8117,8142,8169,8194,8219,8242,8254,8277,8288,8299,8335,8358,8370,8393,8415,8426,8442,8459,8476,8493,8504,8520,8538,8549,8561,8572,8584,8595,8607,8619,8629,8640,8652,8662,8674,8684,8702,8720,8737,8754,8771,8788,8799,8814,8832,8850,8868,8879,8891,8903,8913,8923,8948,8973,8998,9023,9048,9073,9098,9123,9146,9158,9181,9203,9228,9253,9278,9303,9328,9351,9363,9386,9397,9424,9447,9459,9485,9510,9535,9560,9585,9610,9635,9660,9671,9696,9721,9746,9769,9781,9804,9815,9840,9865,9890,9915,9940,9963,9975,9998,10009,10034,10059,10082,10094,10117,10139,10164,10191,10216,10241,10264,10276,10299,10310,10335,10360,10385,10410,10435,10458,10470,10493,10504,10515,10551,10574,10586,10609,10631,10642,10658,10675,10692,10709,10720,10736,10754,10765,10777,10788,10800,10811,10823,10835,10845,10856,10868,10878,10890,10900,10918,10936,10953,10970,10987,11004,11015,11030,11048,11066,11084,11095,11107,11119,11129,11139,11164,11189,11214,11239,11264,11289,11314,11339,11362,11374,11397,11419,11444,11469,11494,11519,11544,11567,11579,11602,11613,11640,11663,11675,11701,11726,11751,11776,11801,11826,11851,11876,11887,11912,11937,11962,11985,11997,12020,12031,12056,12081,12106,12131,12156,12179,12191,12214,12225,12250,12275,12298,12310,12333,12355,12380,12407,12432,12457,12480,12492,12515,12526,12551,12576,12601,12626,12651,12674,12686,12709,12720,12747,12772,12795,12807,12830,12841,12852,12888,12911,12923,12946,12968,12984,13001,13018,13035,13046,13062,13080,13091,13103,13114,13126,13137,13149,13161,13171,13182,13194,13204,13216,13226,13244,13262,13279,13296,13313,13330,13341,13356,13374,13392,13410,13421,13433,13445,13455,13465,13490,13515,13540,13565,13590,13615,13640,13665,13688,13700,13723,13745,13770,13795,13820,13845,13870,13893,13905,13928,13955,13978,13990,14016,14041,14066,14091,14116,14141,14166,14191,14202,14227,14252,14277,14300,14312,14335,14360,14385,14410,14435,14460,14483,14495,14518,14543,14568,14591,14603,14626,14648,14673,14700,14725,14750,14773,14785,14808,14833,14858,14883,14908,14933,14956,14968,14991,15018,15043,15066,15078,15101,15126,15151,15176,15201,15226,15251,15274,15286,15309,15320,15329,15335,15340,15376,15399,15411,15434,15456,15467,15483,15500,15517,15534,15545,15561,15579,15590,15602,15613,15625,15636,15648,15660,15670,15681,15693,15703,15715,15725,15743,15761,15778,15795,15812,15829,15840,15855,15873,15891,15909,15920,15932,15944,15954,15964,15989,16014,16039,16064,16089,16114,16139,16164,16187,16199,16222,16244,16269,16294,16319,16344,16369,16392,16404,16427,16438,16465,16488,16500,16526,16551,16576,16601,16626,16651,16676,16701,16712,16737,16762,16787,16810,16822,16845,16856,16881,16906,16931,16956,16981,17004,17016,17039,17050,17075,17100,17123,17135,17158,17180,17205,17232,17257,17282,17305,17317,17340,17351,17376,17401,17426,17451,17476,17499,17511,17534,17545,17572,17597,17620,17632,17655,17666,17691,17716,17741,17766,17791,17816,17839,17851,17874,17885,17910,17935,17960,17985,18010,18035,18058,18070,18093,18104,18131,18156,18179,18191,18214,18225,18250,18275,18300,18325,18350,18375,18398,18410,18433,18444,18469,18494,18519,18544,18569,18592,18604,18627,18638,18665,18690,18713,18725,18748,18759,18784,18809,18834,18859,18884,18909,18932,18944,18967,18978,19003,19028,19051,19063,19086,19108,19133,19160,19185,19210,19233,19245,19268,19279,19304,19329,19354,19379,19404,19427,19439,19462,19473,19500,19525,19548,19560,19583,19594,19619,19644,19669,19694,19719,19744,19767,19779,19802,19813,19838,19863,19888,19913,19938,19961,19973,19996,20007,20032,20057,20080,20092,20115,20137,20162,20189,20214,20239,20262,20274,20297,20308,20333,20358,20383,20408,20433,20456,20468,20491,20502,20529,20554,20577,20589,20612,20623,20648,20673,20698,20723,20748,20773,20796,20808,20831,20842,20869,20892,20904,20930,20955,20980,21005,21030,21055,21080,21105,21116,21141,21166,21191,21214,21226,21249,21274,21299,21324,21349,21374,21397,21409,21432,21457,21482,21505,21517,21540,21562,21587,21614,21639,21664,21687,21699,21722,21747,21772,21797,21822,21847,21870,21882,21905,21932,21957,21980,21992,22015,22026,22051,22076,22101,22126,22151,22176,22199,22211,22234,22254,22274,22294,22314,22334,22354,22372,22379,22398,22420,22440,22458,22465,22484,22493,22502,22508,22519,22555,22578,22590,22613,22635,22651,22668,22685,22702,22713,22729,22747,22758,22770,22781,22793,22804,22816,22828,22838,22849,22861,22871,22883,22893,22911,22929,22946,22963,22980,22997,23008,23023,23041,23059,23077,23088,23100,23112,23122,23132,23157,23182,23207,23232,23257,23282,23307,23332,23355,23367,23390,23412,23437,23462,23487,23512,23537,23560,23572,23595,23622,23645,23657,23683,23708,23733,23758,23783,23808,23833,23858,23869,23894,23919,23944,23967,23979,24002,24027,24052,24077,24102,24127,24150,24162,24185,24210,24235,24258,24270,24293,24315,24340,24367,24392,24417,24440,24452,24475,24500,24525,24550,24575,24600,24623,24635,24658,24685,24710,24733,24745,24768,24779,24804,24829,24854,24879,24904,24929,24952,24964,24987,24992,24997,25002,25007,25012,25017,25021,25026,25029,25032,25035,25038,25040,25043];
_tsip_machine_parser_header_Authorization_indicies=[0,2,0,2,1,3,3,1,4,4,1,5,5,1,6,6,1,7,7,1,8,8,1,9,9,1,10,10,1,11,11,1,12,12,1,13,13,1,14,14,1,14,14,15,1,17,18,17,19,20,19,20,16,1,21,16,1,22,1,17,21,17,19,20,19,20,16,1,21,23,23,16,1,21,24,24,16,1,21,25,25,16,1,21,26,26,16,1,27,21,27,16,1,28,21,28,29,29,29,16,16,30,31,32,33,34,35,36,30,31,32,33,34,35,36,29,16,29,16,29,16,29,16,1,37,38,37,39,39,39,40,16,41,39,16,39,16,39,16,39,16,1,42,21,42,43,41,16,1,43,21,43,29,29,29,16,16,30,31,32,33,34,35,44,30,31,32,33,34,35,44,29,16,29,16,29,16,29,16,1,37,38,37,39,39,39,40,16,41,45,45,39,16,39,16,39,16,39,16,1,41,21,41,46,47,46,46,16,16,48,46,16,46,16,46,16,46,16,1,49,38,49,46,46,46,40,16,46,16,46,16,46,16,46,16,1,50,21,50,43,16,1,47,21,51,52,16,16,47,16,1,49,38,49,40,16,1,16,21,47,16,1,21,54,16,53,16,53,16,53,16,1,21,56,51,16,55,16,55,16,55,16,1,21,56,51,16,57,16,57,16,57,16,1,21,56,51,16,58,16,58,16,58,16,1,21,56,51,16,1,21,60,16,59,16,53,16,53,16,1,21,61,56,51,16,62,16,55,16,55,16,1,21,16,63,16,1,21,64,16,65,16,1,21,16,66,16,1,21,67,16,68,16,1,21,16,69,16,1,21,51,16,70,16,1,21,51,16,71,16,1,21,51,16,1,21,67,16,72,16,1,21,67,16,1,21,64,16,73,16,1,21,64,16,1,21,61,56,51,16,74,16,57,16,57,16,1,21,61,56,51,16,58,16,58,16,58,16,1,21,76,51,16,75,16,75,16,75,16,1,21,78,51,16,77,16,77,16,77,16,1,21,78,51,16,79,16,79,16,79,16,1,21,78,51,16,80,16,80,16,80,16,1,21,78,51,16,1,21,16,81,16,75,16,75,16,1,21,61,78,51,16,82,16,77,16,77,16,1,21,61,78,51,16,83,16,79,16,79,16,1,21,61,78,51,16,80,16,80,16,80,16,1,21,16,84,16,1,21,61,16,85,16,1,21,61,16,86,16,1,21,61,16,1,21,60,16,1,37,38,37,39,39,39,40,16,41,87,87,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,88,88,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,89,89,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,90,90,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,91,91,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,92,92,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,93,93,39,16,39,16,39,16,39,16,1,94,38,94,39,39,39,40,16,95,39,16,39,16,39,16,39,16,1,96,21,96,43,95,16,1,95,21,95,97,47,97,97,16,16,48,97,16,97,16,97,16,97,16,1,98,99,98,100,100,100,101,16,100,16,100,16,100,16,100,16,1,37,38,37,39,39,39,40,16,41,102,102,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,103,103,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,104,104,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,105,105,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,106,106,39,16,39,16,39,16,39,16,1,107,38,107,39,39,39,40,16,108,39,16,39,16,39,16,39,16,1,109,21,109,43,108,16,1,110,21,110,46,111,46,46,16,16,48,46,16,46,16,46,16,46,16,1,112,21,113,114,16,16,112,16,1,115,116,115,117,16,1,16,21,112,16,1,37,38,37,39,39,39,40,16,41,118,119,118,119,39,16,39,16,39,16,39,16,1,120,38,120,39,39,39,40,16,121,39,16,39,16,39,16,39,16,1,122,21,122,43,121,16,1,121,21,121,46,47,46,46,16,16,48,46,16,46,123,16,46,16,46,123,46,16,1,49,38,49,46,46,46,40,16,46,16,46,124,16,46,16,46,124,46,16,1,49,38,49,46,46,46,40,16,46,16,46,125,16,46,16,46,125,46,16,1,49,38,49,46,46,46,40,16,46,16,46,126,16,46,16,46,126,46,16,1,49,38,49,46,46,46,40,16,46,16,46,127,16,46,16,46,127,46,16,1,49,38,49,46,46,46,40,16,46,16,46,128,16,46,16,46,128,46,16,1,49,38,49,46,46,46,40,16,46,16,46,129,16,46,16,46,129,46,16,1,49,38,49,46,46,46,40,16,46,16,46,130,16,46,16,46,130,46,16,1,131,132,131,133,16,1,37,38,37,39,39,39,40,16,41,134,134,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,135,135,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,136,136,39,16,39,16,39,16,39,16,1,137,38,137,39,39,39,40,16,138,39,16,39,16,39,16,39,16,1,139,21,139,43,138,16,1,140,21,140,46,141,46,46,16,16,48,46,16,46,16,46,16,46,16,1,142,21,143,144,16,16,142,16,1,145,146,145,147,16,1,16,21,142,16,1,37,38,37,39,39,39,40,16,41,148,148,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,149,149,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,150,150,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,151,151,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,152,152,39,16,39,16,39,16,39,16,1,153,38,153,39,39,39,40,16,154,39,16,39,16,39,16,39,16,1,155,21,155,43,154,16,1,156,21,156,46,157,46,46,16,16,48,46,16,46,16,46,16,46,16,1,158,21,159,160,16,16,158,16,1,161,162,161,163,16,1,16,21,158,16,1,37,38,37,39,39,39,40,16,41,164,164,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,165,165,39,16,39,16,39,16,39,16,1,166,38,166,39,39,39,40,16,167,39,16,39,16,39,16,39,16,1,168,21,168,43,167,16,1,167,21,167,169,47,169,169,16,16,48,169,16,169,16,169,16,169,16,1,170,171,170,172,172,172,173,16,172,16,172,16,172,16,172,16,1,37,38,37,39,39,39,40,16,41,174,174,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,175,176,175,176,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,177,177,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,178,178,39,16,39,16,39,16,39,16,1,179,38,179,39,39,39,40,16,180,39,16,39,16,39,16,39,16,1,181,21,181,43,180,16,1,182,21,182,46,183,46,46,16,16,48,46,16,46,16,46,16,46,16,1,184,21,185,186,16,16,184,16,1,187,188,187,189,16,1,16,21,184,16,1,37,38,37,39,39,39,40,16,41,190,190,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,191,191,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,192,192,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,193,193,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,194,194,39,16,39,16,39,16,39,16,1,195,38,195,39,39,39,40,16,196,39,16,39,16,39,16,39,16,1,197,21,197,43,196,16,1,198,21,198,46,199,46,46,16,16,48,46,16,46,16,46,16,46,16,1,200,21,201,202,16,16,200,16,1,203,204,203,205,16,1,16,21,200,16,1,37,38,37,39,39,39,40,16,41,206,207,206,207,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,208,208,39,16,39,16,39,16,39,16,1,209,38,209,39,39,39,40,16,210,39,16,39,16,39,16,39,16,1,211,21,211,43,210,16,1,210,21,210,46,212,46,46,16,16,48,46,16,46,16,46,16,46,16,1,214,21,215,216,213,213,214,213,1,21,218,217,1,219,21,218,220,217,217,219,217,1,217,21,221,219,217,1,222,21,222,51,223,52,16,16,47,16,1,223,21,223,224,51,224,224,47,47,225,226,227,228,229,230,231,52,225,226,227,228,229,230,231,224,16,16,47,224,47,224,47,224,47,16,1,232,38,232,233,51,233,233,234,47,235,52,233,16,16,47,233,47,233,47,233,47,16,1,236,21,236,51,223,235,52,16,16,47,16,1,235,21,235,237,238,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,47,237,47,237,47,16,1,240,38,240,51,234,52,16,16,47,16,1,47,21,51,242,52,16,16,47,241,47,241,47,241,47,16,1,47,21,51,244,52,238,16,16,47,243,47,243,47,243,47,16,1,47,21,51,244,52,238,16,16,47,245,47,245,47,245,47,16,1,47,21,51,244,52,238,16,16,47,246,47,246,47,246,47,16,1,47,21,51,244,52,238,16,16,47,16,1,47,21,51,248,52,16,16,47,247,47,241,47,241,47,16,1,47,21,51,249,244,52,238,16,16,47,250,47,243,47,243,47,16,1,47,21,51,52,16,16,47,251,47,16,1,47,21,51,252,52,16,16,47,253,47,16,1,47,21,51,52,16,16,47,254,47,16,1,47,21,51,255,52,16,16,47,256,47,16,1,47,21,51,52,16,16,47,257,47,16,1,47,21,51,52,238,16,16,47,258,47,16,1,47,21,51,52,238,16,16,47,259,47,16,1,47,21,51,52,238,16,16,47,16,1,47,21,51,255,52,16,16,47,260,47,16,1,47,21,51,255,52,16,16,47,16,1,47,21,51,252,52,16,16,47,261,47,16,1,47,21,51,252,52,16,16,47,16,1,47,21,51,249,244,52,238,16,16,47,262,47,245,47,245,47,16,1,47,21,51,249,244,52,238,16,16,47,246,47,246,47,246,47,16,1,47,21,51,264,52,238,16,16,47,263,47,263,47,263,47,16,1,47,21,51,266,52,238,16,16,47,265,47,265,47,265,47,16,1,47,21,51,266,52,238,16,16,47,267,47,267,47,267,47,16,1,47,21,51,266,52,238,16,16,47,268,47,268,47,268,47,16,1,47,21,51,266,52,238,16,16,47,16,1,47,21,51,52,16,16,47,269,47,263,47,263,47,16,1,47,21,51,249,266,52,238,16,16,47,270,47,265,47,265,47,16,1,47,21,51,249,266,52,238,16,16,47,271,47,267,47,267,47,16,1,47,21,51,249,266,52,238,16,16,47,268,47,268,47,268,47,16,1,47,21,51,52,16,16,47,272,47,16,1,47,21,51,249,52,16,16,47,273,47,16,1,47,21,51,249,52,16,16,47,274,47,16,1,47,21,51,249,52,16,16,47,16,1,47,21,51,248,52,16,16,47,16,1,232,38,232,233,51,233,233,234,47,235,275,52,275,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,276,52,276,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,277,52,277,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,278,52,278,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,279,52,279,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,280,52,280,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,281,52,281,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,282,52,282,233,16,16,47,233,47,233,47,233,47,16,1,283,38,283,233,51,233,233,234,47,284,52,233,16,16,47,233,47,233,47,233,47,16,1,285,21,285,51,223,284,52,16,16,47,16,1,284,21,284,286,238,286,286,47,47,239,52,286,16,16,47,286,47,286,47,286,47,16,1,287,99,287,288,51,288,288,289,47,52,288,16,16,47,288,47,288,47,288,47,16,1,232,38,232,233,51,233,233,234,47,235,290,52,290,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,291,52,291,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,292,52,292,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,293,52,293,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,294,52,294,233,16,16,47,233,47,233,47,233,47,16,1,295,38,295,233,51,233,233,234,47,296,52,233,16,16,47,233,47,233,47,233,47,16,1,297,21,297,51,223,296,52,16,16,47,16,1,298,21,298,237,299,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,300,38,300,113,301,114,16,16,112,16,1,302,21,302,113,303,114,16,16,112,16,1,303,21,303,304,113,304,304,112,112,305,306,307,308,309,310,311,114,305,306,307,308,309,310,311,304,16,16,112,304,112,304,112,304,112,16,1,312,38,312,313,113,313,313,301,112,314,114,313,16,16,112,313,112,313,112,313,112,16,1,315,21,315,113,303,314,114,16,16,112,16,1,314,21,314,316,317,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,112,316,112,316,112,16,1,319,116,319,51,320,52,16,16,47,16,1,112,21,113,322,114,16,16,112,321,112,321,112,321,112,16,1,112,21,113,324,114,325,16,16,112,323,112,323,112,323,112,16,1,112,21,113,324,114,325,16,16,112,326,112,326,112,326,112,16,1,112,21,113,324,114,325,16,16,112,327,112,327,112,327,112,16,1,112,21,113,324,114,325,16,16,112,16,1,112,21,113,329,114,16,16,112,328,112,321,112,321,112,16,1,112,21,113,330,324,114,325,16,16,112,331,112,323,112,323,112,16,1,112,21,113,114,16,16,112,332,112,16,1,112,21,113,333,114,16,16,112,334,112,16,1,112,21,113,114,16,16,112,335,112,16,1,112,21,113,336,114,16,16,112,337,112,16,1,112,21,113,114,16,16,112,338,112,16,1,112,21,113,114,325,16,16,112,339,112,16,1,112,21,113,114,325,16,16,112,340,112,16,1,112,21,113,114,325,16,16,112,16,1,112,21,113,336,114,16,16,112,341,112,16,1,112,21,113,336,114,16,16,112,16,1,112,21,113,333,114,16,16,112,342,112,16,1,112,21,113,333,114,16,16,112,16,1,112,21,113,330,324,114,325,16,16,112,343,112,326,112,326,112,16,1,112,21,113,330,324,114,325,16,16,112,327,112,327,112,327,112,16,1,112,21,113,345,114,325,16,16,112,344,112,344,112,344,112,16,1,112,21,113,347,114,325,16,16,112,346,112,346,112,346,112,16,1,112,21,113,347,114,325,16,16,112,348,112,348,112,348,112,16,1,112,21,113,347,114,325,16,16,112,349,112,349,112,349,112,16,1,112,21,113,347,114,325,16,16,112,16,1,112,21,113,114,16,16,112,350,112,344,112,344,112,16,1,112,21,113,330,347,114,325,16,16,112,351,112,346,112,346,112,16,1,112,21,113,330,347,114,325,16,16,112,352,112,348,112,348,112,16,1,112,21,113,330,347,114,325,16,16,112,349,112,349,112,349,112,16,1,112,21,113,114,16,16,112,353,112,16,1,112,21,113,330,114,16,16,112,354,112,16,1,112,21,113,330,114,16,16,112,355,112,16,1,112,21,113,330,114,16,16,112,16,1,112,21,113,329,114,16,16,112,16,1,312,38,312,313,113,313,313,301,112,314,356,114,356,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,357,114,357,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,358,114,358,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,359,114,359,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,360,114,360,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,361,114,361,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,362,114,362,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,363,114,363,313,16,16,112,313,112,313,112,313,112,16,1,364,38,364,313,113,313,313,301,112,365,114,313,16,16,112,313,112,313,112,313,112,16,1,366,21,366,113,303,365,114,16,16,112,16,1,365,21,365,367,317,367,367,112,112,318,114,367,16,16,112,367,112,367,112,367,112,16,1,368,99,368,369,113,369,369,370,112,114,369,16,16,112,369,112,369,112,369,112,16,1,312,38,312,313,113,313,313,301,112,314,371,114,371,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,372,114,372,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,373,114,373,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,374,114,374,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,375,114,375,313,16,16,112,313,112,313,112,313,112,16,1,376,38,376,313,113,313,313,301,112,377,114,313,16,16,112,313,112,313,112,313,112,16,1,378,21,378,113,303,377,114,16,16,112,16,1,379,21,379,316,380,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,381,116,381,113,382,114,16,16,112,16,1,312,38,312,313,113,313,313,301,112,314,383,384,114,383,384,313,16,16,112,313,112,313,112,313,112,16,1,385,38,385,313,113,313,313,301,112,386,114,313,16,16,112,313,112,313,112,313,112,16,1,387,21,387,113,303,386,114,16,16,112,16,1,386,21,386,316,317,316,316,112,112,318,114,316,16,16,112,316,388,112,316,112,316,388,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,389,112,316,112,316,389,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,390,112,316,112,316,390,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,391,112,316,112,316,391,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,392,112,316,112,316,392,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,393,112,316,112,316,393,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,394,112,316,112,316,394,316,112,16,1,300,38,300,316,113,316,316,301,112,114,316,16,16,112,316,395,112,316,112,316,395,316,112,16,1,396,132,396,113,397,114,16,16,112,16,1,312,38,312,313,113,313,313,301,112,314,398,114,398,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,399,114,399,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,400,114,400,313,16,16,112,313,112,313,112,313,112,16,1,401,38,401,313,113,313,313,301,112,402,114,313,16,16,112,313,112,313,112,313,112,16,1,403,21,403,113,303,402,114,16,16,112,16,1,404,21,404,316,405,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,406,116,406,143,407,144,16,16,142,16,1,408,21,408,143,409,144,16,16,142,16,1,409,21,409,410,143,410,410,142,142,411,412,413,414,415,416,417,144,411,412,413,414,415,416,417,410,16,16,142,410,142,410,142,410,142,16,1,418,38,418,419,143,419,419,420,142,421,144,419,16,16,142,419,142,419,142,419,142,16,1,422,21,422,143,409,421,144,16,16,142,16,1,421,21,421,423,424,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,142,423,142,423,142,16,1,427,146,427,51,428,52,16,16,47,16,1,142,21,143,430,144,16,16,142,429,142,429,142,429,142,16,1,142,21,143,432,144,433,16,16,142,431,142,431,142,431,142,16,1,142,21,143,432,144,433,16,16,142,434,142,434,142,434,142,16,1,142,21,143,432,144,433,16,16,142,435,142,435,142,435,142,16,1,142,21,143,432,144,433,16,16,142,16,1,142,21,143,437,144,16,16,142,436,142,429,142,429,142,16,1,142,21,143,438,432,144,433,16,16,142,439,142,431,142,431,142,16,1,142,21,143,144,16,16,142,440,142,16,1,142,21,143,441,144,16,16,142,442,142,16,1,142,21,143,144,16,16,142,443,142,16,1,142,21,143,444,144,16,16,142,445,142,16,1,142,21,143,144,16,16,142,446,142,16,1,142,21,143,144,433,16,16,142,447,142,16,1,142,21,143,144,433,16,16,142,448,142,16,1,142,21,143,144,433,16,16,142,16,1,426,38,426,143,420,144,16,16,142,16,1,142,21,143,444,144,16,16,142,449,142,16,1,142,21,143,444,144,16,16,142,16,1,142,21,143,441,144,16,16,142,450,142,16,1,142,21,143,441,144,16,16,142,16,1,142,21,143,438,432,144,433,16,16,142,451,142,434,142,434,142,16,1,142,21,143,438,432,144,433,16,16,142,435,142,435,142,435,142,16,1,142,21,143,453,144,433,16,16,142,452,142,452,142,452,142,16,1,142,21,143,455,144,433,16,16,142,454,142,454,142,454,142,16,1,142,21,143,455,144,433,16,16,142,456,142,456,142,456,142,16,1,142,21,143,455,144,433,16,16,142,457,142,457,142,457,142,16,1,142,21,143,455,144,433,16,16,142,16,1,142,21,143,144,16,16,142,458,142,452,142,452,142,16,1,142,21,143,438,455,144,433,16,16,142,459,142,454,142,454,142,16,1,142,21,143,438,455,144,433,16,16,142,460,142,456,142,456,142,16,1,142,21,143,438,455,144,433,16,16,142,457,142,457,142,457,142,16,1,142,21,143,144,16,16,142,461,142,16,1,142,21,143,438,144,16,16,142,462,142,16,1,142,21,143,438,144,16,16,142,463,142,16,1,142,21,143,438,144,16,16,142,16,1,142,21,143,437,144,16,16,142,16,1,418,38,418,419,143,419,419,420,142,421,464,144,464,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,465,144,465,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,466,144,466,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,467,144,467,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,468,144,468,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,469,144,469,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,470,144,470,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,471,144,471,419,16,16,142,419,142,419,142,419,142,16,1,472,38,472,419,143,419,419,420,142,473,144,419,16,16,142,419,142,419,142,419,142,16,1,474,21,474,143,409,473,144,16,16,142,16,1,473,21,473,475,424,475,475,142,142,425,144,475,16,16,142,475,142,475,142,475,142,16,1,476,99,476,477,143,477,477,478,142,144,477,16,16,142,477,142,477,142,477,142,16,1,418,38,418,419,143,419,419,420,142,421,479,144,479,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,480,144,480,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,481,144,481,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,482,144,482,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,483,144,483,419,16,16,142,419,142,419,142,419,142,16,1,484,38,484,419,143,419,419,420,142,485,144,419,16,16,142,419,142,419,142,419,142,16,1,486,21,486,143,409,485,144,16,16,142,16,1,487,21,487,423,488,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,489,146,489,113,490,114,16,16,112,16,1,418,38,418,419,143,419,419,420,142,421,491,492,144,491,492,419,16,16,142,419,142,419,142,419,142,16,1,493,38,493,419,143,419,419,420,142,494,144,419,16,16,142,419,142,419,142,419,142,16,1,495,21,495,143,409,494,144,16,16,142,16,1,494,21,494,423,424,423,423,142,142,425,144,423,16,16,142,423,496,142,423,142,423,496,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,497,142,423,142,423,497,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,498,142,423,142,423,498,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,499,142,423,142,423,499,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,500,142,423,142,423,500,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,501,142,423,142,423,501,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,502,142,423,142,423,502,423,142,16,1,426,38,426,423,143,423,423,420,142,144,423,16,16,142,423,503,142,423,142,423,503,423,142,16,1,504,132,504,143,505,144,16,16,142,16,1,418,38,418,419,143,419,419,420,142,421,506,144,506,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,507,144,507,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,508,144,508,419,16,16,142,419,142,419,142,419,142,16,1,509,38,509,419,143,419,419,420,142,510,144,419,16,16,142,419,142,419,142,419,142,16,1,511,21,511,143,409,510,144,16,16,142,16,1,512,21,512,423,513,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,514,146,514,143,515,144,16,16,142,16,1,418,38,418,419,143,419,419,420,142,421,516,144,516,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,517,144,517,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,518,144,518,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,519,144,519,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,520,144,520,419,16,16,142,419,142,419,142,419,142,16,1,521,38,521,419,143,419,419,420,142,522,144,419,16,16,142,419,142,419,142,419,142,16,1,523,21,523,143,409,522,144,16,16,142,16,1,524,21,524,423,525,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,526,146,526,159,527,160,16,16,158,16,1,528,21,528,159,529,160,16,16,158,16,1,529,21,529,530,159,530,530,158,158,531,532,533,534,535,536,537,160,531,532,533,534,535,536,537,530,16,16,158,530,158,530,158,530,158,16,1,538,38,538,539,159,539,539,540,158,541,160,539,16,16,158,539,158,539,158,539,158,16,1,542,21,542,159,529,541,160,16,16,158,16,1,541,21,541,543,544,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,158,543,158,543,158,16,1,547,162,547,51,548,52,16,16,47,16,1,158,21,159,550,160,16,16,158,549,158,549,158,549,158,16,1,158,21,159,552,160,553,16,16,158,551,158,551,158,551,158,16,1,158,21,159,552,160,553,16,16,158,554,158,554,158,554,158,16,1,158,21,159,552,160,553,16,16,158,555,158,555,158,555,158,16,1,158,21,159,552,160,553,16,16,158,16,1,158,21,159,557,160,16,16,158,556,158,549,158,549,158,16,1,158,21,159,558,552,160,553,16,16,158,559,158,551,158,551,158,16,1,158,21,159,160,16,16,158,560,158,16,1,158,21,159,561,160,16,16,158,562,158,16,1,158,21,159,160,16,16,158,563,158,16,1,158,21,159,564,160,16,16,158,565,158,16,1,158,21,159,160,16,16,158,566,158,16,1,158,21,159,160,553,16,16,158,567,158,16,1,158,21,159,160,553,16,16,158,568,158,16,1,158,21,159,160,553,16,16,158,16,1,546,38,546,159,540,160,16,16,158,16,1,158,21,159,564,160,16,16,158,569,158,16,1,158,21,159,564,160,16,16,158,16,1,158,21,159,561,160,16,16,158,570,158,16,1,158,21,159,561,160,16,16,158,16,1,158,21,159,558,552,160,553,16,16,158,571,158,554,158,554,158,16,1,158,21,159,558,552,160,553,16,16,158,555,158,555,158,555,158,16,1,158,21,159,573,160,553,16,16,158,572,158,572,158,572,158,16,1,158,21,159,575,160,553,16,16,158,574,158,574,158,574,158,16,1,158,21,159,575,160,553,16,16,158,576,158,576,158,576,158,16,1,158,21,159,575,160,553,16,16,158,577,158,577,158,577,158,16,1,158,21,159,575,160,553,16,16,158,16,1,158,21,159,160,16,16,158,578,158,572,158,572,158,16,1,158,21,159,558,575,160,553,16,16,158,579,158,574,158,574,158,16,1,158,21,159,558,575,160,553,16,16,158,580,158,576,158,576,158,16,1,158,21,159,558,575,160,553,16,16,158,577,158,577,158,577,158,16,1,158,21,159,160,16,16,158,581,158,16,1,158,21,159,558,160,16,16,158,582,158,16,1,158,21,159,558,160,16,16,158,583,158,16,1,158,21,159,558,160,16,16,158,16,1,158,21,159,557,160,16,16,158,16,1,538,38,538,539,159,539,539,540,158,541,584,160,584,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,585,160,585,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,586,160,586,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,587,160,587,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,588,160,588,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,589,160,589,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,590,160,590,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,591,160,591,539,16,16,158,539,158,539,158,539,158,16,1,592,38,592,539,159,539,539,540,158,593,160,539,16,16,158,539,158,539,158,539,158,16,1,594,21,594,159,529,593,160,16,16,158,16,1,593,21,593,595,544,595,595,158,158,545,160,595,16,16,158,595,158,595,158,595,158,16,1,596,99,596,597,159,597,597,598,158,160,597,16,16,158,597,158,597,158,597,158,16,1,538,38,538,539,159,539,539,540,158,541,599,160,599,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,600,160,600,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,601,160,601,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,602,160,602,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,603,160,603,539,16,16,158,539,158,539,158,539,158,16,1,604,38,604,539,159,539,539,540,158,605,160,539,16,16,158,539,158,539,158,539,158,16,1,606,21,606,159,529,605,160,16,16,158,16,1,607,21,607,543,608,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,609,162,609,113,610,114,16,16,112,16,1,538,38,538,539,159,539,539,540,158,541,611,612,160,611,612,539,16,16,158,539,158,539,158,539,158,16,1,613,38,613,539,159,539,539,540,158,614,160,539,16,16,158,539,158,539,158,539,158,16,1,615,21,615,159,529,614,160,16,16,158,16,1,614,21,614,543,544,543,543,158,158,545,160,543,16,16,158,543,616,158,543,158,543,616,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,617,158,543,158,543,617,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,618,158,543,158,543,618,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,619,158,543,158,543,619,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,620,158,543,158,543,620,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,621,158,543,158,543,621,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,622,158,543,158,543,622,543,158,16,1,546,38,546,543,159,543,543,540,158,160,543,16,16,158,543,623,158,543,158,543,623,543,158,16,1,624,132,624,159,625,160,16,16,158,16,1,538,38,538,539,159,539,539,540,158,541,626,160,626,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,627,160,627,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,628,160,628,539,16,16,158,539,158,539,158,539,158,16,1,629,38,629,539,159,539,539,540,158,630,160,539,16,16,158,539,158,539,158,539,158,16,1,631,21,631,159,529,630,160,16,16,158,16,1,632,21,632,543,633,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,634,162,634,143,635,144,16,16,142,16,1,538,38,538,539,159,539,539,540,158,541,636,160,636,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,637,160,637,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,638,160,638,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,639,160,639,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,640,160,640,539,16,16,158,539,158,539,158,539,158,16,1,641,38,641,539,159,539,539,540,158,642,160,539,16,16,158,539,158,539,158,539,158,16,1,643,21,643,159,529,642,160,16,16,158,16,1,644,21,644,543,645,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,646,162,646,159,647,160,16,16,158,16,1,538,38,538,539,159,539,539,540,158,541,648,160,648,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,649,160,649,539,16,16,158,539,158,539,158,539,158,16,1,650,38,650,539,159,539,539,540,158,651,160,539,16,16,158,539,158,539,158,539,158,16,1,652,21,652,159,529,651,160,16,16,158,16,1,651,21,651,653,544,653,653,158,158,545,160,653,16,16,158,653,158,653,158,653,158,16,1,654,171,654,655,159,655,655,656,158,160,655,16,16,158,655,158,655,158,655,158,16,1,538,38,538,539,159,539,539,540,158,541,657,160,657,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,658,659,160,658,659,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,660,160,660,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,661,160,661,539,16,16,158,539,158,539,158,539,158,16,1,662,38,662,539,159,539,539,540,158,663,160,539,16,16,158,539,158,539,158,539,158,16,1,664,21,664,159,529,663,160,16,16,158,16,1,665,21,665,543,666,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,667,162,667,185,668,186,16,16,184,16,1,669,21,669,185,670,186,16,16,184,16,1,670,21,670,671,185,671,671,184,184,672,673,674,675,676,677,678,186,672,673,674,675,676,677,678,671,16,16,184,671,184,671,184,671,184,16,1,679,38,679,680,185,680,680,681,184,682,186,680,16,16,184,680,184,680,184,680,184,16,1,683,21,683,185,670,682,186,16,16,184,16,1,682,21,682,684,685,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,184,684,184,684,184,16,1,688,188,688,51,689,52,16,16,47,16,1,184,21,185,691,186,16,16,184,690,184,690,184,690,184,16,1,184,21,185,693,186,694,16,16,184,692,184,692,184,692,184,16,1,184,21,185,693,186,694,16,16,184,695,184,695,184,695,184,16,1,184,21,185,693,186,694,16,16,184,696,184,696,184,696,184,16,1,184,21,185,693,186,694,16,16,184,16,1,184,21,185,698,186,16,16,184,697,184,690,184,690,184,16,1,184,21,185,699,693,186,694,16,16,184,700,184,692,184,692,184,16,1,184,21,185,186,16,16,184,701,184,16,1,184,21,185,702,186,16,16,184,703,184,16,1,184,21,185,186,16,16,184,704,184,16,1,184,21,185,705,186,16,16,184,706,184,16,1,184,21,185,186,16,16,184,707,184,16,1,184,21,185,186,694,16,16,184,708,184,16,1,184,21,185,186,694,16,16,184,709,184,16,1,184,21,185,186,694,16,16,184,16,1,687,38,687,185,681,186,16,16,184,16,1,184,21,185,705,186,16,16,184,710,184,16,1,184,21,185,705,186,16,16,184,16,1,184,21,185,702,186,16,16,184,711,184,16,1,184,21,185,702,186,16,16,184,16,1,184,21,185,699,693,186,694,16,16,184,712,184,695,184,695,184,16,1,184,21,185,699,693,186,694,16,16,184,696,184,696,184,696,184,16,1,184,21,185,714,186,694,16,16,184,713,184,713,184,713,184,16,1,184,21,185,716,186,694,16,16,184,715,184,715,184,715,184,16,1,184,21,185,716,186,694,16,16,184,717,184,717,184,717,184,16,1,184,21,185,716,186,694,16,16,184,718,184,718,184,718,184,16,1,184,21,185,716,186,694,16,16,184,16,1,184,21,185,186,16,16,184,719,184,713,184,713,184,16,1,184,21,185,699,716,186,694,16,16,184,720,184,715,184,715,184,16,1,184,21,185,699,716,186,694,16,16,184,721,184,717,184,717,184,16,1,184,21,185,699,716,186,694,16,16,184,718,184,718,184,718,184,16,1,184,21,185,186,16,16,184,722,184,16,1,184,21,185,699,186,16,16,184,723,184,16,1,184,21,185,699,186,16,16,184,724,184,16,1,184,21,185,699,186,16,16,184,16,1,184,21,185,698,186,16,16,184,16,1,679,38,679,680,185,680,680,681,184,682,725,186,725,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,726,186,726,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,727,186,727,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,728,186,728,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,729,186,729,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,730,186,730,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,731,186,731,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,732,186,732,680,16,16,184,680,184,680,184,680,184,16,1,733,38,733,680,185,680,680,681,184,734,186,680,16,16,184,680,184,680,184,680,184,16,1,735,21,735,185,670,734,186,16,16,184,16,1,734,21,734,736,685,736,736,184,184,686,186,736,16,16,184,736,184,736,184,736,184,16,1,737,99,737,738,185,738,738,739,184,186,738,16,16,184,738,184,738,184,738,184,16,1,679,38,679,680,185,680,680,681,184,682,740,186,740,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,741,186,741,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,742,186,742,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,743,186,743,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,744,186,744,680,16,16,184,680,184,680,184,680,184,16,1,745,38,745,680,185,680,680,681,184,746,186,680,16,16,184,680,184,680,184,680,184,16,1,747,21,747,185,670,746,186,16,16,184,16,1,748,21,748,684,749,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,750,188,750,113,751,114,16,16,112,16,1,679,38,679,680,185,680,680,681,184,682,752,753,186,752,753,680,16,16,184,680,184,680,184,680,184,16,1,754,38,754,680,185,680,680,681,184,755,186,680,16,16,184,680,184,680,184,680,184,16,1,756,21,756,185,670,755,186,16,16,184,16,1,755,21,755,684,685,684,684,184,184,686,186,684,16,16,184,684,757,184,684,184,684,757,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,758,184,684,184,684,758,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,759,184,684,184,684,759,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,760,184,684,184,684,760,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,761,184,684,184,684,761,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,762,184,684,184,684,762,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,763,184,684,184,684,763,684,184,16,1,687,38,687,684,185,684,684,681,184,186,684,16,16,184,684,764,184,684,184,684,764,684,184,16,1,765,132,765,185,766,186,16,16,184,16,1,679,38,679,680,185,680,680,681,184,682,767,186,767,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,768,186,768,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,769,186,769,680,16,16,184,680,184,680,184,680,184,16,1,770,38,770,680,185,680,680,681,184,771,186,680,16,16,184,680,184,680,184,680,184,16,1,772,21,772,185,670,771,186,16,16,184,16,1,773,21,773,684,774,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,775,188,775,143,776,144,16,16,142,16,1,679,38,679,680,185,680,680,681,184,682,777,186,777,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,778,186,778,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,779,186,779,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,780,186,780,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,781,186,781,680,16,16,184,680,184,680,184,680,184,16,1,782,38,782,680,185,680,680,681,184,783,186,680,16,16,184,680,184,680,184,680,184,16,1,784,21,784,185,670,783,186,16,16,184,16,1,785,21,785,684,786,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,787,188,787,159,788,160,16,16,158,16,1,679,38,679,680,185,680,680,681,184,682,789,186,789,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,790,186,790,680,16,16,184,680,184,680,184,680,184,16,1,791,38,791,680,185,680,680,681,184,792,186,680,16,16,184,680,184,680,184,680,184,16,1,793,21,793,185,670,792,186,16,16,184,16,1,792,21,792,794,685,794,794,184,184,686,186,794,16,16,184,794,184,794,184,794,184,16,1,795,171,795,796,185,796,796,797,184,186,796,16,16,184,796,184,796,184,796,184,16,1,679,38,679,680,185,680,680,681,184,682,798,186,798,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,799,800,186,799,800,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,801,186,801,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,802,186,802,680,16,16,184,680,184,680,184,680,184,16,1,803,38,803,680,185,680,680,681,184,804,186,680,16,16,184,680,184,680,184,680,184,16,1,805,21,805,185,670,804,186,16,16,184,16,1,806,21,806,684,807,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,808,188,808,185,809,186,16,16,184,16,1,679,38,679,680,185,680,680,681,184,682,810,186,810,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,811,186,811,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,812,186,812,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,813,186,813,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,814,186,814,680,16,16,184,680,184,680,184,680,184,16,1,815,38,815,680,185,680,680,681,184,816,186,680,16,16,184,680,184,680,184,680,184,16,1,817,21,817,185,670,816,186,16,16,184,16,1,818,21,818,684,819,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,820,188,820,201,821,202,16,16,200,16,1,822,21,822,201,823,202,16,16,200,16,1,823,21,823,824,201,824,824,200,200,825,826,827,828,829,830,831,202,825,826,827,828,829,830,831,824,16,16,200,824,200,824,200,824,200,16,1,832,38,832,833,201,833,833,834,200,835,202,833,16,16,200,833,200,833,200,833,200,16,1,836,21,836,201,823,835,202,16,16,200,16,1,835,21,835,837,838,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,200,837,200,837,200,16,1,841,204,841,51,842,52,16,16,47,16,1,200,21,201,844,202,16,16,200,843,200,843,200,843,200,16,1,200,21,201,846,202,847,16,16,200,845,200,845,200,845,200,16,1,200,21,201,846,202,847,16,16,200,848,200,848,200,848,200,16,1,200,21,201,846,202,847,16,16,200,849,200,849,200,849,200,16,1,200,21,201,846,202,847,16,16,200,16,1,200,21,201,851,202,16,16,200,850,200,843,200,843,200,16,1,200,21,201,852,846,202,847,16,16,200,853,200,845,200,845,200,16,1,200,21,201,202,16,16,200,854,200,16,1,200,21,201,855,202,16,16,200,856,200,16,1,200,21,201,202,16,16,200,857,200,16,1,200,21,201,858,202,16,16,200,859,200,16,1,200,21,201,202,16,16,200,860,200,16,1,200,21,201,202,847,16,16,200,861,200,16,1,200,21,201,202,847,16,16,200,862,200,16,1,200,21,201,202,847,16,16,200,16,1,840,38,840,201,834,202,16,16,200,16,1,200,21,201,858,202,16,16,200,863,200,16,1,200,21,201,858,202,16,16,200,16,1,200,21,201,855,202,16,16,200,864,200,16,1,200,21,201,855,202,16,16,200,16,1,200,21,201,852,846,202,847,16,16,200,865,200,848,200,848,200,16,1,200,21,201,852,846,202,847,16,16,200,849,200,849,200,849,200,16,1,200,21,201,867,202,847,16,16,200,866,200,866,200,866,200,16,1,200,21,201,869,202,847,16,16,200,868,200,868,200,868,200,16,1,200,21,201,869,202,847,16,16,200,870,200,870,200,870,200,16,1,200,21,201,869,202,847,16,16,200,871,200,871,200,871,200,16,1,200,21,201,869,202,847,16,16,200,16,1,200,21,201,202,16,16,200,872,200,866,200,866,200,16,1,200,21,201,852,869,202,847,16,16,200,873,200,868,200,868,200,16,1,200,21,201,852,869,202,847,16,16,200,874,200,870,200,870,200,16,1,200,21,201,852,869,202,847,16,16,200,871,200,871,200,871,200,16,1,200,21,201,202,16,16,200,875,200,16,1,200,21,201,852,202,16,16,200,876,200,16,1,200,21,201,852,202,16,16,200,877,200,16,1,200,21,201,852,202,16,16,200,16,1,200,21,201,851,202,16,16,200,16,1,832,38,832,833,201,833,833,834,200,835,878,202,878,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,879,202,879,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,880,202,880,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,881,202,881,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,882,202,882,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,883,202,883,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,884,202,884,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,885,202,885,833,16,16,200,833,200,833,200,833,200,16,1,886,38,886,833,201,833,833,834,200,887,202,833,16,16,200,833,200,833,200,833,200,16,1,888,21,888,201,823,887,202,16,16,200,16,1,887,21,887,889,838,889,889,200,200,839,202,889,16,16,200,889,200,889,200,889,200,16,1,890,99,890,891,201,891,891,892,200,202,891,16,16,200,891,200,891,200,891,200,16,1,832,38,832,833,201,833,833,834,200,835,893,202,893,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,894,202,894,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,895,202,895,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,896,202,896,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,897,202,897,833,16,16,200,833,200,833,200,833,200,16,1,898,38,898,833,201,833,833,834,200,899,202,833,16,16,200,833,200,833,200,833,200,16,1,900,21,900,201,823,899,202,16,16,200,16,1,901,21,901,837,902,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,903,204,903,113,904,114,16,16,112,16,1,832,38,832,833,201,833,833,834,200,835,905,906,202,905,906,833,16,16,200,833,200,833,200,833,200,16,1,907,38,907,833,201,833,833,834,200,908,202,833,16,16,200,833,200,833,200,833,200,16,1,909,21,909,201,823,908,202,16,16,200,16,1,908,21,908,837,838,837,837,200,200,839,202,837,16,16,200,837,910,200,837,200,837,910,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,911,200,837,200,837,911,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,912,200,837,200,837,912,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,913,200,837,200,837,913,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,914,200,837,200,837,914,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,915,200,837,200,837,915,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,916,200,837,200,837,916,837,200,16,1,840,38,840,837,201,837,837,834,200,202,837,16,16,200,837,917,200,837,200,837,917,837,200,16,1,918,132,918,201,919,202,16,16,200,16,1,832,38,832,833,201,833,833,834,200,835,920,202,920,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,921,202,921,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,922,202,922,833,16,16,200,833,200,833,200,833,200,16,1,923,38,923,833,201,833,833,834,200,924,202,833,16,16,200,833,200,833,200,833,200,16,1,925,21,925,201,823,924,202,16,16,200,16,1,926,21,926,837,927,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,928,204,928,143,929,144,16,16,142,16,1,832,38,832,833,201,833,833,834,200,835,930,202,930,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,931,202,931,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,932,202,932,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,933,202,933,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,934,202,934,833,16,16,200,833,200,833,200,833,200,16,1,935,38,935,833,201,833,833,834,200,936,202,833,16,16,200,833,200,833,200,833,200,16,1,937,21,937,201,823,936,202,16,16,200,16,1,938,21,938,837,939,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,940,204,940,159,941,160,16,16,158,16,1,832,38,832,833,201,833,833,834,200,835,942,202,942,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,943,202,943,833,16,16,200,833,200,833,200,833,200,16,1,944,38,944,833,201,833,833,834,200,945,202,833,16,16,200,833,200,833,200,833,200,16,1,946,21,946,201,823,945,202,16,16,200,16,1,945,21,945,947,838,947,947,200,200,839,202,947,16,16,200,947,200,947,200,947,200,16,1,948,171,948,949,201,949,949,950,200,202,949,16,16,200,949,200,949,200,949,200,16,1,832,38,832,833,201,833,833,834,200,835,951,202,951,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,952,953,202,952,953,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,954,202,954,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,955,202,955,833,16,16,200,833,200,833,200,833,200,16,1,956,38,956,833,201,833,833,834,200,957,202,833,16,16,200,833,200,833,200,833,200,16,1,958,21,958,201,823,957,202,16,16,200,16,1,959,21,959,837,960,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,961,204,961,185,962,186,16,16,184,16,1,832,38,832,833,201,833,833,834,200,835,963,202,963,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,964,202,964,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,965,202,965,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,966,202,966,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,967,202,967,833,16,16,200,833,200,833,200,833,200,16,1,968,38,968,833,201,833,833,834,200,969,202,833,16,16,200,833,200,833,200,833,200,16,1,970,21,970,201,823,969,202,16,16,200,16,1,971,21,971,837,972,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,973,204,973,201,974,202,16,16,200,16,1,832,38,832,833,201,833,833,834,200,835,975,976,202,975,976,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,977,202,977,833,16,16,200,833,200,833,200,833,200,16,1,978,38,978,833,201,833,833,834,200,979,202,833,16,16,200,833,200,833,200,833,200,16,1,980,21,980,201,823,979,202,16,16,200,16,1,979,21,979,837,981,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,982,204,982,215,983,216,213,213,214,213,1,984,21,984,218,985,220,217,217,219,217,1,985,21,985,986,218,986,986,219,219,987,988,989,990,991,992,993,220,987,988,989,990,991,992,993,986,217,217,219,986,219,986,219,986,219,217,1,994,38,994,995,218,995,995,996,219,997,220,995,217,217,219,995,219,995,219,995,219,217,1,998,21,998,218,985,997,220,217,217,219,217,1,997,21,997,999,221,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,219,999,219,999,219,217,1,219,21,218,1003,220,217,217,219,1002,219,1002,219,1002,219,217,1,219,21,218,1005,220,1006,217,217,219,1004,219,1004,219,1004,219,217,1,219,21,218,1005,220,1006,217,217,219,1007,219,1007,219,1007,219,217,1,219,21,218,1005,220,1006,217,217,219,1008,219,1008,219,1008,219,217,1,219,21,218,1005,220,1006,217,217,219,217,1,219,21,218,1010,220,217,217,219,1009,219,1002,219,1002,219,217,1,219,21,218,1011,1005,220,1006,217,217,219,1012,219,1004,219,1004,219,217,1,219,21,218,220,217,217,219,1013,219,217,1,219,21,218,1014,220,217,217,219,1015,219,217,1,219,21,218,220,217,217,219,1016,219,217,1,219,21,218,1017,220,217,217,219,1018,219,217,1,219,21,218,220,217,217,219,1019,219,217,1,219,21,218,220,1006,217,217,219,1020,219,217,1,219,21,218,220,1006,217,217,219,1021,219,217,1,219,21,218,220,1006,217,217,219,217,1,1001,38,1001,218,996,220,217,217,219,217,1,219,21,218,1017,220,217,217,219,1022,219,217,1,219,21,218,1017,220,217,217,219,217,1,219,21,218,1014,220,217,217,219,1023,219,217,1,219,21,218,1014,220,217,217,219,217,1,219,21,218,1011,1005,220,1006,217,217,219,1024,219,1007,219,1007,219,217,1,219,21,218,1011,1005,220,1006,217,217,219,1008,219,1008,219,1008,219,217,1,219,21,218,1026,220,1006,217,217,219,1025,219,1025,219,1025,219,217,1,219,21,218,1028,220,1006,217,217,219,1027,219,1027,219,1027,219,217,1,219,21,218,1028,220,1006,217,217,219,1029,219,1029,219,1029,219,217,1,219,21,218,1028,220,1006,217,217,219,1030,219,1030,219,1030,219,217,1,219,21,218,1028,220,1006,217,217,219,217,1,219,21,218,220,217,217,219,1031,219,1025,219,1025,219,217,1,219,21,218,1011,1028,220,1006,217,217,219,1032,219,1027,219,1027,219,217,1,219,21,218,1011,1028,220,1006,217,217,219,1033,219,1029,219,1029,219,217,1,219,21,218,1011,1028,220,1006,217,217,219,1030,219,1030,219,1030,219,217,1,219,21,218,220,217,217,219,1034,219,217,1,219,21,218,1011,220,217,217,219,1035,219,217,1,219,21,218,1011,220,217,217,219,1036,219,217,1,219,21,218,1011,220,217,217,219,217,1,219,21,218,1010,220,217,217,219,217,1,994,38,994,995,218,995,995,996,219,997,1037,220,1037,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1038,220,1038,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1039,220,1039,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1040,220,1040,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1041,220,1041,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1042,220,1042,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1043,220,1043,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1044,220,1044,995,217,217,219,995,219,995,219,995,219,217,1,1045,38,1045,995,218,995,995,996,219,1046,220,995,217,217,219,995,219,995,219,995,219,217,1,1047,21,1047,218,985,1046,220,217,217,219,217,1,1046,21,1046,1048,221,1048,1048,219,219,1000,220,1048,217,217,219,1048,219,1048,219,1048,219,217,1,1049,99,1049,1050,218,1050,1050,1051,219,220,1050,217,217,219,1050,219,1050,219,1050,219,217,1,994,38,994,995,218,995,995,996,219,997,1052,220,1052,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1053,220,1053,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1054,220,1054,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1055,220,1055,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1056,220,1056,995,217,217,219,995,219,995,219,995,219,217,1,1057,38,1057,995,218,995,995,996,219,1058,220,995,217,217,219,995,219,995,219,995,219,217,1,1059,21,1059,218,985,1058,220,217,217,219,217,1,1060,21,1060,999,1061,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1062,1063,220,1062,1063,995,217,217,219,995,219,995,219,995,219,217,1,1064,38,1064,995,218,995,995,996,219,1065,220,995,217,217,219,995,219,995,219,995,219,217,1,1066,21,1066,218,985,1065,220,217,217,219,217,1,1065,21,1065,999,221,999,999,219,219,1000,220,999,217,217,219,999,1067,219,999,219,999,1067,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1068,219,999,219,999,1068,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1069,219,999,219,999,1069,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1070,219,999,219,999,1070,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1071,219,999,219,999,1071,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1072,219,999,219,999,1072,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1073,219,999,219,999,1073,999,219,217,1,1001,38,1001,999,218,999,999,996,219,220,999,217,217,219,999,1074,219,999,219,999,1074,999,219,217,1,1075,132,1075,218,1076,220,217,217,219,217,1,994,38,994,995,218,995,995,996,219,997,1077,220,1077,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1078,220,1078,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1079,220,1079,995,217,217,219,995,219,995,219,995,219,217,1,1080,38,1080,995,218,995,995,996,219,1081,220,995,217,217,219,995,219,995,219,995,219,217,1,1082,21,1082,218,985,1081,220,217,217,219,217,1,1083,21,1083,999,1084,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1085,220,1085,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1086,220,1086,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1087,220,1087,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1088,220,1088,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1089,220,1089,995,217,217,219,995,219,995,219,995,219,217,1,1090,38,1090,995,218,995,995,996,219,1091,220,995,217,217,219,995,219,995,219,995,219,217,1,1092,21,1092,218,985,1091,220,217,217,219,217,1,1093,21,1093,999,1094,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1095,220,1095,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1096,220,1096,995,217,217,219,995,219,995,219,995,219,217,1,1097,38,1097,995,218,995,995,996,219,1098,220,995,217,217,219,995,219,995,219,995,219,217,1,1099,21,1099,218,985,1098,220,217,217,219,217,1,1098,21,1098,1100,221,1100,1100,219,219,1000,220,1100,217,217,219,1100,219,1100,219,1100,219,217,1,1101,171,1101,1102,218,1102,1102,1103,219,220,1102,217,217,219,1102,219,1102,219,1102,219,217,1,994,38,994,995,218,995,995,996,219,997,1104,220,1104,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1105,1106,220,1105,1106,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1107,220,1107,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1108,220,1108,995,217,217,219,995,219,995,219,995,219,217,1,1109,38,1109,995,218,995,995,996,219,1110,220,995,217,217,219,995,219,995,219,995,219,217,1,1111,21,1111,218,985,1110,220,217,217,219,217,1,1112,21,1112,999,1113,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1114,220,1114,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1115,220,1115,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1116,220,1116,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1117,220,1117,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1118,220,1118,995,217,217,219,995,219,995,219,995,219,217,1,1119,38,1119,995,218,995,995,996,219,1120,220,995,217,217,219,995,219,995,219,995,219,217,1,1121,21,1121,218,985,1120,220,217,217,219,217,1,1122,21,1122,999,1123,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1124,1125,220,1124,1125,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1126,220,1126,995,217,217,219,995,219,995,219,995,219,217,1,1127,38,1127,995,218,995,995,996,219,1128,220,995,217,217,219,995,219,995,219,995,219,217,1,1129,21,1129,218,985,1128,220,217,217,219,217,1,1128,21,1128,999,218,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,994,38,994,995,218,995,995,996,219,997,1130,220,1130,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1131,220,1131,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1132,220,1132,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1133,220,1133,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1134,220,1134,995,217,217,219,995,219,995,219,995,219,217,1,994,38,994,995,218,995,995,996,219,997,1135,220,1135,995,217,217,219,995,219,995,219,995,219,217,1,1136,38,1136,995,218,995,995,996,219,1137,220,995,217,217,219,995,219,995,219,995,219,217,1,1138,21,1138,218,985,1137,220,217,217,219,217,1,1139,21,1139,999,1140,999,999,219,219,1000,220,999,217,217,219,999,219,999,219,999,219,217,1,1141,21,1141,1143,1144,1145,16,16,1142,16,1,1142,21,1143,1145,16,16,1142,16,1,1146,1147,1146,1148,16,1,16,21,1142,16,1,1144,21,1144,1149,1143,1149,1149,1142,1142,1150,1151,1152,1153,1154,1155,1156,1145,1150,1151,1152,1153,1154,1155,1156,1149,16,16,1142,1149,1142,1149,1142,1149,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1161,21,1161,1143,1144,1160,1145,16,16,1142,16,1,1160,21,1160,1162,1163,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1166,1147,1166,51,1167,52,16,16,47,16,1,1142,21,1143,1169,1145,16,16,1142,1168,1142,1168,1142,1168,1142,16,1,1142,21,1143,1171,1145,1172,16,16,1142,1170,1142,1170,1142,1170,1142,16,1,1142,21,1143,1171,1145,1172,16,16,1142,1173,1142,1173,1142,1173,1142,16,1,1142,21,1143,1171,1145,1172,16,16,1142,1174,1142,1174,1142,1174,1142,16,1,1142,21,1143,1171,1145,1172,16,16,1142,16,1,1142,21,1143,1176,1145,16,16,1142,1175,1142,1168,1142,1168,1142,16,1,1142,21,1143,1177,1171,1145,1172,16,16,1142,1178,1142,1170,1142,1170,1142,16,1,1142,21,1143,1145,16,16,1142,1179,1142,16,1,1142,21,1143,1180,1145,16,16,1142,1181,1142,16,1,1142,21,1143,1145,16,16,1142,1182,1142,16,1,1142,21,1143,1183,1145,16,16,1142,1184,1142,16,1,1142,21,1143,1145,16,16,1142,1185,1142,16,1,1142,21,1143,1145,1172,16,16,1142,1186,1142,16,1,1142,21,1143,1145,1172,16,16,1142,1187,1142,16,1,1142,21,1143,1145,1172,16,16,1142,16,1,1165,38,1165,1143,1159,1145,16,16,1142,16,1,1142,21,1143,1183,1145,16,16,1142,1188,1142,16,1,1142,21,1143,1183,1145,16,16,1142,16,1,1142,21,1143,1180,1145,16,16,1142,1189,1142,16,1,1142,21,1143,1180,1145,16,16,1142,16,1,1142,21,1143,1177,1171,1145,1172,16,16,1142,1190,1142,1173,1142,1173,1142,16,1,1142,21,1143,1177,1171,1145,1172,16,16,1142,1174,1142,1174,1142,1174,1142,16,1,1142,21,1143,1192,1145,1172,16,16,1142,1191,1142,1191,1142,1191,1142,16,1,1142,21,1143,1194,1145,1172,16,16,1142,1193,1142,1193,1142,1193,1142,16,1,1142,21,1143,1194,1145,1172,16,16,1142,1195,1142,1195,1142,1195,1142,16,1,1142,21,1143,1194,1145,1172,16,16,1142,1196,1142,1196,1142,1196,1142,16,1,1142,21,1143,1194,1145,1172,16,16,1142,16,1,1142,21,1143,1145,16,16,1142,1197,1142,1191,1142,1191,1142,16,1,1142,21,1143,1177,1194,1145,1172,16,16,1142,1198,1142,1193,1142,1193,1142,16,1,1142,21,1143,1177,1194,1145,1172,16,16,1142,1199,1142,1195,1142,1195,1142,16,1,1142,21,1143,1177,1194,1145,1172,16,16,1142,1196,1142,1196,1142,1196,1142,16,1,1142,21,1143,1145,16,16,1142,1200,1142,16,1,1142,21,1143,1177,1145,16,16,1142,1201,1142,16,1,1142,21,1143,1177,1145,16,16,1142,1202,1142,16,1,1142,21,1143,1177,1145,16,16,1142,16,1,1142,21,1143,1176,1145,16,16,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1203,1145,1203,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1204,1145,1204,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1205,1145,1205,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1206,1145,1206,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1207,1145,1207,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1208,1145,1208,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1209,1145,1209,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1210,1145,1210,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1211,38,1211,1158,1143,1158,1158,1159,1142,1212,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1213,21,1213,1143,1144,1212,1145,16,16,1142,16,1,1212,21,1212,1214,1163,1214,1214,1142,1142,1164,1145,1214,16,16,1142,1214,1142,1214,1142,1214,1142,16,1,1215,99,1215,1216,1143,1216,1216,1217,1142,1145,1216,16,16,1142,1216,1142,1216,1142,1216,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1218,1145,1218,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1219,1145,1219,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1220,1145,1220,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1221,1145,1221,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1222,1145,1222,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1223,38,1223,1158,1143,1158,1158,1159,1142,1224,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1225,21,1225,1143,1144,1224,1145,16,16,1142,16,1,1226,21,1226,1162,1227,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1228,1147,1228,113,1229,114,16,16,112,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1230,1231,1145,1230,1231,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1232,38,1232,1158,1143,1158,1158,1159,1142,1233,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1234,21,1234,1143,1144,1233,1145,16,16,1142,16,1,1233,21,1233,1162,1163,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1235,1142,1162,1142,1162,1235,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1236,1142,1162,1142,1162,1236,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1237,1142,1162,1142,1162,1237,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1238,1142,1162,1142,1162,1238,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1239,1142,1162,1142,1162,1239,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1240,1142,1162,1142,1162,1240,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1241,1142,1162,1142,1162,1241,1162,1142,16,1,1165,38,1165,1162,1143,1162,1162,1159,1142,1145,1162,16,16,1142,1162,1242,1142,1162,1142,1162,1242,1162,1142,16,1,1243,132,1243,1143,1244,1145,16,16,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1245,1145,1245,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1246,1145,1246,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1247,1145,1247,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1248,38,1248,1158,1143,1158,1158,1159,1142,1249,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1250,21,1250,1143,1144,1249,1145,16,16,1142,16,1,1251,21,1251,1162,1252,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1253,1147,1253,143,1254,144,16,16,142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1255,1145,1255,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1256,1145,1256,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1257,1145,1257,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1258,1145,1258,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1259,1145,1259,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1260,38,1260,1158,1143,1158,1158,1159,1142,1261,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1262,21,1262,1143,1144,1261,1145,16,16,1142,16,1,1263,21,1263,1162,1264,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1265,1147,1265,159,1266,160,16,16,158,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1267,1145,1267,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1268,1145,1268,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1269,38,1269,1158,1143,1158,1158,1159,1142,1270,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1271,21,1271,1143,1144,1270,1145,16,16,1142,16,1,1270,21,1270,1272,1163,1272,1272,1142,1142,1164,1145,1272,16,16,1142,1272,1142,1272,1142,1272,1142,16,1,1273,171,1273,1274,1143,1274,1274,1275,1142,1145,1274,16,16,1142,1274,1142,1274,1142,1274,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1276,1145,1276,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1277,1278,1145,1277,1278,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1279,1145,1279,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1280,1145,1280,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1281,38,1281,1158,1143,1158,1158,1159,1142,1282,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1283,21,1283,1143,1144,1282,1145,16,16,1142,16,1,1284,21,1284,1162,1285,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1286,1147,1286,185,1287,186,16,16,184,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1288,1145,1288,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1289,1145,1289,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1290,1145,1290,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1291,1145,1291,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1292,1145,1292,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1293,38,1293,1158,1143,1158,1158,1159,1142,1294,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1295,21,1295,1143,1144,1294,1145,16,16,1142,16,1,1296,21,1296,1162,1297,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1298,1147,1298,201,1299,202,16,16,200,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1300,1301,1145,1300,1301,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1302,1145,1302,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1303,38,1303,1158,1143,1158,1158,1159,1142,1304,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1305,21,1305,1143,1144,1304,1145,16,16,1142,16,1,1304,21,1304,1162,1306,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1307,1147,1307,215,1308,216,213,213,214,213,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1309,1145,1309,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1310,1145,1310,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1311,1145,1311,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1312,1145,1312,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1313,1145,1313,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1157,38,1157,1158,1143,1158,1158,1159,1142,1160,1314,1145,1314,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1315,38,1315,1158,1143,1158,1158,1159,1142,1316,1145,1158,16,16,1142,1158,1142,1158,1142,1158,1142,16,1,1317,21,1317,1143,1144,1316,1145,16,16,1142,16,1,1318,21,1318,1162,1319,1162,1162,1142,1142,1164,1145,1162,16,16,1142,1162,1142,1162,1142,1162,1142,16,1,1320,1147,1320,1143,1321,1145,16,16,1142,16,1,832,38,832,833,201,833,833,834,200,835,1322,202,1322,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,1323,202,1323,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,1324,202,1324,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,1325,202,1325,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,1326,202,1326,833,16,16,200,833,200,833,200,833,200,16,1,832,38,832,833,201,833,833,834,200,835,1327,202,1327,833,16,16,200,833,200,833,200,833,200,16,1,1328,38,1328,833,201,833,833,834,200,1329,202,833,16,16,200,833,200,833,200,833,200,16,1,1330,21,1330,201,823,1329,202,16,16,200,16,1,1331,21,1331,837,1332,837,837,200,200,839,202,837,16,16,200,837,200,837,200,837,200,16,1,1333,204,1333,1143,1334,1145,16,16,1142,16,1,679,38,679,680,185,680,680,681,184,682,1335,1336,186,1335,1336,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1337,186,1337,680,16,16,184,680,184,680,184,680,184,16,1,1338,38,1338,680,185,680,680,681,184,1339,186,680,16,16,184,680,184,680,184,680,184,16,1,1340,21,1340,185,670,1339,186,16,16,184,16,1,1339,21,1339,684,1341,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,1342,188,1342,215,1343,216,213,213,214,213,1,679,38,679,680,185,680,680,681,184,682,1344,186,1344,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1345,186,1345,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1346,186,1346,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1347,186,1347,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1348,186,1348,680,16,16,184,680,184,680,184,680,184,16,1,679,38,679,680,185,680,680,681,184,682,1349,186,1349,680,16,16,184,680,184,680,184,680,184,16,1,1350,38,1350,680,185,680,680,681,184,1351,186,680,16,16,184,680,184,680,184,680,184,16,1,1352,21,1352,185,670,1351,186,16,16,184,16,1,1353,21,1353,684,1354,684,684,184,184,686,186,684,16,16,184,684,184,684,184,684,184,16,1,1355,188,1355,1143,1356,1145,16,16,1142,16,1,538,38,538,539,159,539,539,540,158,541,1357,160,1357,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1358,160,1358,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1359,160,1359,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1360,160,1360,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1361,160,1361,539,16,16,158,539,158,539,158,539,158,16,1,1362,38,1362,539,159,539,539,540,158,1363,160,539,16,16,158,539,158,539,158,539,158,16,1,1364,21,1364,159,529,1363,160,16,16,158,16,1,1365,21,1365,543,1366,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,1367,162,1367,201,1368,202,16,16,200,16,1,538,38,538,539,159,539,539,540,158,541,1369,1370,160,1369,1370,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1371,160,1371,539,16,16,158,539,158,539,158,539,158,16,1,1372,38,1372,539,159,539,539,540,158,1373,160,539,16,16,158,539,158,539,158,539,158,16,1,1374,21,1374,159,529,1373,160,16,16,158,16,1,1373,21,1373,543,1375,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,1376,162,1376,215,1377,216,213,213,214,213,1,538,38,538,539,159,539,539,540,158,541,1378,160,1378,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1379,160,1379,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1380,160,1380,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1381,160,1381,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1382,160,1382,539,16,16,158,539,158,539,158,539,158,16,1,538,38,538,539,159,539,539,540,158,541,1383,160,1383,539,16,16,158,539,158,539,158,539,158,16,1,1384,38,1384,539,159,539,539,540,158,1385,160,539,16,16,158,539,158,539,158,539,158,16,1,1386,21,1386,159,529,1385,160,16,16,158,16,1,1387,21,1387,543,1388,543,543,158,158,545,160,543,16,16,158,543,158,543,158,543,158,16,1,1389,162,1389,1143,1390,1145,16,16,1142,16,1,418,38,418,419,143,419,419,420,142,421,1391,144,1391,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1392,144,1392,419,16,16,142,419,142,419,142,419,142,16,1,1393,38,1393,419,143,419,419,420,142,1394,144,419,16,16,142,419,142,419,142,419,142,16,1,1395,21,1395,143,409,1394,144,16,16,142,16,1,1394,21,1394,1396,424,1396,1396,142,142,425,144,1396,16,16,142,1396,142,1396,142,1396,142,16,1,1397,171,1397,1398,143,1398,1398,1399,142,144,1398,16,16,142,1398,142,1398,142,1398,142,16,1,418,38,418,419,143,419,419,420,142,421,1400,144,1400,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1401,1402,144,1401,1402,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1403,144,1403,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1404,144,1404,419,16,16,142,419,142,419,142,419,142,16,1,1405,38,1405,419,143,419,419,420,142,1406,144,419,16,16,142,419,142,419,142,419,142,16,1,1407,21,1407,143,409,1406,144,16,16,142,16,1,1408,21,1408,423,1409,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,1410,146,1410,185,1411,186,16,16,184,16,1,418,38,418,419,143,419,419,420,142,421,1412,144,1412,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1413,144,1413,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1414,144,1414,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1415,144,1415,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1416,144,1416,419,16,16,142,419,142,419,142,419,142,16,1,1417,38,1417,419,143,419,419,420,142,1418,144,419,16,16,142,419,142,419,142,419,142,16,1,1419,21,1419,143,409,1418,144,16,16,142,16,1,1420,21,1420,423,1421,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,1422,146,1422,201,1423,202,16,16,200,16,1,418,38,418,419,143,419,419,420,142,421,1424,1425,144,1424,1425,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1426,144,1426,419,16,16,142,419,142,419,142,419,142,16,1,1427,38,1427,419,143,419,419,420,142,1428,144,419,16,16,142,419,142,419,142,419,142,16,1,1429,21,1429,143,409,1428,144,16,16,142,16,1,1428,21,1428,423,1430,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,1431,146,1431,215,1432,216,213,213,214,213,1,418,38,418,419,143,419,419,420,142,421,1433,144,1433,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1434,144,1434,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1435,144,1435,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1436,144,1436,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1437,144,1437,419,16,16,142,419,142,419,142,419,142,16,1,418,38,418,419,143,419,419,420,142,421,1438,144,1438,419,16,16,142,419,142,419,142,419,142,16,1,1439,38,1439,419,143,419,419,420,142,1440,144,419,16,16,142,419,142,419,142,419,142,16,1,1441,21,1441,143,409,1440,144,16,16,142,16,1,1442,21,1442,423,1443,423,423,142,142,425,144,423,16,16,142,423,142,423,142,423,142,16,1,1444,146,1444,1143,1445,1145,16,16,1142,16,1,312,38,312,313,113,313,313,301,112,314,1446,114,1446,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1447,114,1447,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1448,114,1448,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1449,114,1449,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1450,114,1450,313,16,16,112,313,112,313,112,313,112,16,1,1451,38,1451,313,113,313,313,301,112,1452,114,313,16,16,112,313,112,313,112,313,112,16,1,1453,21,1453,113,303,1452,114,16,16,112,16,1,1454,21,1454,316,1455,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,1456,116,1456,159,1457,160,16,16,158,16,1,312,38,312,313,113,313,313,301,112,314,1458,114,1458,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1459,114,1459,313,16,16,112,313,112,313,112,313,112,16,1,1460,38,1460,313,113,313,313,301,112,1461,114,313,16,16,112,313,112,313,112,313,112,16,1,1462,21,1462,113,303,1461,114,16,16,112,16,1,1461,21,1461,1463,317,1463,1463,112,112,318,114,1463,16,16,112,1463,112,1463,112,1463,112,16,1,1464,171,1464,1465,113,1465,1465,1466,112,114,1465,16,16,112,1465,112,1465,112,1465,112,16,1,312,38,312,313,113,313,313,301,112,314,1467,114,1467,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1468,1469,114,1468,1469,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1470,114,1470,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1471,114,1471,313,16,16,112,313,112,313,112,313,112,16,1,1472,38,1472,313,113,313,313,301,112,1473,114,313,16,16,112,313,112,313,112,313,112,16,1,1474,21,1474,113,303,1473,114,16,16,112,16,1,1475,21,1475,316,1476,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,1477,116,1477,185,1478,186,16,16,184,16,1,312,38,312,313,113,313,313,301,112,314,1479,114,1479,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1480,114,1480,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1481,114,1481,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1482,114,1482,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1483,114,1483,313,16,16,112,313,112,313,112,313,112,16,1,1484,38,1484,313,113,313,313,301,112,1485,114,313,16,16,112,313,112,313,112,313,112,16,1,1486,21,1486,113,303,1485,114,16,16,112,16,1,1487,21,1487,316,1488,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,1489,116,1489,201,1490,202,16,16,200,16,1,312,38,312,313,113,313,313,301,112,314,1491,1492,114,1491,1492,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1493,114,1493,313,16,16,112,313,112,313,112,313,112,16,1,1494,38,1494,313,113,313,313,301,112,1495,114,313,16,16,112,313,112,313,112,313,112,16,1,1496,21,1496,113,303,1495,114,16,16,112,16,1,1495,21,1495,316,1497,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,1498,116,1498,215,1499,216,213,213,214,213,1,312,38,312,313,113,313,313,301,112,314,1500,114,1500,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1501,114,1501,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1502,114,1502,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1503,114,1503,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1504,114,1504,313,16,16,112,313,112,313,112,313,112,16,1,312,38,312,313,113,313,313,301,112,314,1505,114,1505,313,16,16,112,313,112,313,112,313,112,16,1,1506,38,1506,313,113,313,313,301,112,1507,114,313,16,16,112,313,112,313,112,313,112,16,1,1508,21,1508,113,303,1507,114,16,16,112,16,1,1509,21,1509,316,1510,316,316,112,112,318,114,316,16,16,112,316,112,316,112,316,112,16,1,1511,116,1511,1143,1512,1145,16,16,1142,16,1,232,38,232,233,51,233,233,234,47,235,1513,1514,52,1513,1514,233,16,16,47,233,47,233,47,233,47,16,1,1515,38,1515,233,51,233,233,234,47,1516,52,233,16,16,47,233,47,233,47,233,47,16,1,1517,21,1517,51,223,1516,52,16,16,47,16,1,1516,21,1516,237,238,237,237,47,47,239,52,237,16,16,47,237,1518,47,237,47,237,1518,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1519,47,237,47,237,1519,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1520,47,237,47,237,1520,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1521,47,237,47,237,1521,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1522,47,237,47,237,1522,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1523,47,237,47,237,1523,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1524,47,237,47,237,1524,237,47,16,1,240,38,240,237,51,237,237,234,47,52,237,16,16,47,237,1525,47,237,47,237,1525,237,47,16,1,1526,132,1526,51,1527,52,16,16,47,16,1,232,38,232,233,51,233,233,234,47,235,1528,52,1528,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1529,52,1529,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1530,52,1530,233,16,16,47,233,47,233,47,233,47,16,1,1531,38,1531,233,51,233,233,234,47,1532,52,233,16,16,47,233,47,233,47,233,47,16,1,1533,21,1533,51,223,1532,52,16,16,47,16,1,1534,21,1534,237,1535,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,232,38,232,233,51,233,233,234,47,235,1536,52,1536,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1537,52,1537,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1538,52,1538,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1539,52,1539,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1540,52,1540,233,16,16,47,233,47,233,47,233,47,16,1,1541,38,1541,233,51,233,233,234,47,1542,52,233,16,16,47,233,47,233,47,233,47,16,1,1543,21,1543,51,223,1542,52,16,16,47,16,1,1544,21,1544,237,1545,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,232,38,232,233,51,233,233,234,47,235,1546,52,1546,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1547,52,1547,233,16,16,47,233,47,233,47,233,47,16,1,1548,38,1548,233,51,233,233,234,47,1549,52,233,16,16,47,233,47,233,47,233,47,16,1,1550,21,1550,51,223,1549,52,16,16,47,16,1,1549,21,1549,1551,238,1551,1551,47,47,239,52,1551,16,16,47,1551,47,1551,47,1551,47,16,1,1552,171,1552,1553,51,1553,1553,1554,47,52,1553,16,16,47,1553,47,1553,47,1553,47,16,1,232,38,232,233,51,233,233,234,47,235,1555,52,1555,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1556,1557,52,1556,1557,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1558,52,1558,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1559,52,1559,233,16,16,47,233,47,233,47,233,47,16,1,1560,38,1560,233,51,233,233,234,47,1561,52,233,16,16,47,233,47,233,47,233,47,16,1,1562,21,1562,51,223,1561,52,16,16,47,16,1,1563,21,1563,237,1564,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,232,38,232,233,51,233,233,234,47,235,1565,52,1565,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1566,52,1566,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1567,52,1567,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1568,52,1568,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1569,52,1569,233,16,16,47,233,47,233,47,233,47,16,1,1570,38,1570,233,51,233,233,234,47,1571,52,233,16,16,47,233,47,233,47,233,47,16,1,1572,21,1572,51,223,1571,52,16,16,47,16,1,1573,21,1573,237,1574,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,232,38,232,233,51,233,233,234,47,235,1575,1576,52,1575,1576,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1577,52,1577,233,16,16,47,233,47,233,47,233,47,16,1,1578,38,1578,233,51,233,233,234,47,1579,52,233,16,16,47,233,47,233,47,233,47,16,1,1580,21,1580,51,223,1579,52,16,16,47,16,1,1579,21,1579,237,1581,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,1582,38,1582,215,1583,216,213,213,214,213,1,232,38,232,233,51,233,233,234,47,235,1584,52,1584,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1585,52,1585,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1586,52,1586,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1587,52,1587,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1588,52,1588,233,16,16,47,233,47,233,47,233,47,16,1,232,38,232,233,51,233,233,234,47,235,1589,52,1589,233,16,16,47,233,47,233,47,233,47,16,1,1590,38,1590,233,51,233,233,234,47,1591,52,233,16,16,47,233,47,233,47,233,47,16,1,1592,21,1592,51,223,1591,52,16,16,47,16,1,1593,21,1593,237,1594,237,237,47,47,239,52,237,16,16,47,237,47,237,47,237,47,16,1,37,38,37,39,39,39,40,16,41,1595,1595,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1596,1596,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1597,1597,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1598,1598,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1599,1599,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1600,1600,39,16,39,16,39,16,39,16,1,1601,38,1601,39,39,39,40,16,1602,39,16,39,16,39,16,39,16,1,1603,21,1603,43,1602,16,1,1604,21,1604,46,1605,46,46,16,16,48,46,16,46,16,46,16,46,16,1,37,38,37,39,39,39,40,16,41,1606,207,1606,207,39,16,39,16,39,16,39,16,1,37,38,37,39,39,39,40,16,41,1607,1607,39,16,39,16,39,16,39,16,1,1608,38,1608,39,39,39,40,16,1609,39,16,39,16,39,16,39,16,1,1610,21,1610,43,1609,16,1,1609,21,1609,46,1611,46,46,16,16,48,46,16,46,16,46,16,46,16,1,1612,21,215,1613,213,213,1612,213,1,1614,21,218,1615,217,217,1614,217,1,217,21,1616,1614,217,1,1617,21,1617,51,1618,52,16,16,47,16,1,1618,21,1618,1619,51,1619,1619,47,47,1620,1621,1622,1623,1624,1625,1626,52,1620,1621,1622,1623,1624,1625,1626,1619,16,16,47,1619,47,1619,47,1619,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1631,21,1631,51,1618,1630,52,16,16,47,16,1,1630,21,1630,1632,238,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,47,21,51,1636,52,16,16,47,1635,47,1635,47,1635,47,16,1,47,21,51,1638,52,1639,16,16,47,1637,47,1637,47,1637,47,16,1,47,21,51,1638,52,1639,16,16,47,1640,47,1640,47,1640,47,16,1,47,21,51,1638,52,1639,16,16,47,1641,47,1641,47,1641,47,16,1,47,21,51,1638,52,1639,16,16,47,16,1,47,21,51,1643,52,16,16,47,1642,47,1635,47,1635,47,16,1,47,21,51,1644,1638,52,1639,16,16,47,1645,47,1637,47,1637,47,16,1,47,21,51,52,16,16,47,1646,47,16,1,47,21,51,1647,52,16,16,47,1648,47,16,1,47,21,51,52,16,16,47,1649,47,16,1,47,21,51,1650,52,16,16,47,1651,47,16,1,47,21,51,52,16,16,47,1652,47,16,1,47,21,51,52,1639,16,16,47,1653,47,16,1,47,21,51,52,1639,16,16,47,1654,47,16,1,47,21,51,52,1639,16,16,47,16,1,1634,38,1634,51,1629,52,16,16,47,16,1,47,21,51,1650,52,16,16,47,1655,47,16,1,47,21,51,1650,52,16,16,47,16,1,47,21,51,1647,52,16,16,47,1656,47,16,1,47,21,51,1647,52,16,16,47,16,1,47,21,51,1644,1638,52,1639,16,16,47,1657,47,1640,47,1640,47,16,1,47,21,51,1644,1638,52,1639,16,16,47,1641,47,1641,47,1641,47,16,1,47,21,51,1659,52,1639,16,16,47,1658,47,1658,47,1658,47,16,1,47,21,51,1661,52,1639,16,16,47,1660,47,1660,47,1660,47,16,1,47,21,51,1661,52,1639,16,16,47,1662,47,1662,47,1662,47,16,1,47,21,51,1661,52,1639,16,16,47,1663,47,1663,47,1663,47,16,1,47,21,51,1661,52,1639,16,16,47,16,1,47,21,51,52,16,16,47,1664,47,1658,47,1658,47,16,1,47,21,51,1644,1661,52,1639,16,16,47,1665,47,1660,47,1660,47,16,1,47,21,51,1644,1661,52,1639,16,16,47,1666,47,1662,47,1662,47,16,1,47,21,51,1644,1661,52,1639,16,16,47,1663,47,1663,47,1663,47,16,1,47,21,51,52,16,16,47,1667,47,16,1,47,21,51,1644,52,16,16,47,1668,47,16,1,47,21,51,1644,52,16,16,47,1669,47,16,1,47,21,51,1644,52,16,16,47,16,1,47,21,51,1643,52,16,16,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1670,52,1670,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1671,52,1671,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1672,52,1672,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1673,52,1673,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1674,52,1674,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1675,52,1675,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1676,52,1676,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1677,52,1677,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1678,38,1678,1628,51,1628,1628,1629,47,1679,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1680,21,1680,51,1618,1679,52,16,16,47,16,1,1679,21,1679,1681,238,1681,1681,47,47,1633,52,1681,16,16,47,1681,47,1681,47,1681,47,16,1,1682,99,1682,1683,51,1683,1683,1684,47,52,1683,16,16,47,1683,47,1683,47,1683,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1685,52,1685,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1686,52,1686,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1687,52,1687,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1688,52,1688,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1689,52,1689,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1690,38,1690,1628,51,1628,1628,1629,47,1691,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1692,21,1692,51,1618,1691,52,16,16,47,16,1,1693,21,1693,1632,299,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1694,1695,52,1694,1695,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1696,38,1696,1628,51,1628,1628,1629,47,1697,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1698,21,1698,51,1618,1697,52,16,16,47,16,1,1697,21,1697,1632,238,1632,1632,47,47,1633,52,1632,16,16,47,1632,1699,47,1632,47,1632,1699,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1700,47,1632,47,1632,1700,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1701,47,1632,47,1632,1701,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1702,47,1632,47,1632,1702,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1703,47,1632,47,1632,1703,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1704,47,1632,47,1632,1704,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1705,47,1632,47,1632,1705,1632,47,16,1,1634,38,1634,1632,51,1632,1632,1629,47,52,1632,16,16,47,1632,1706,47,1632,47,1632,1706,1632,47,16,1,1707,132,1707,51,1708,52,16,16,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1709,52,1709,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1710,52,1710,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1711,52,1711,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1712,38,1712,1628,51,1628,1628,1629,47,1713,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1714,21,1714,51,1618,1713,52,16,16,47,16,1,1715,21,1715,1632,1535,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1716,52,1716,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1717,52,1717,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1718,52,1718,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1719,52,1719,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1720,52,1720,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1721,38,1721,1628,51,1628,1628,1629,47,1722,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1723,21,1723,51,1618,1722,52,16,16,47,16,1,1724,21,1724,1632,1545,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1725,52,1725,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1726,52,1726,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1727,38,1727,1628,51,1628,1628,1629,47,1728,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1729,21,1729,51,1618,1728,52,16,16,47,16,1,1728,21,1728,1730,238,1730,1730,47,47,1633,52,1730,16,16,47,1730,47,1730,47,1730,47,16,1,1731,171,1731,1732,51,1732,1732,1733,47,52,1732,16,16,47,1732,47,1732,47,1732,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1734,52,1734,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1735,1736,52,1735,1736,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1737,52,1737,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1738,52,1738,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1739,38,1739,1628,51,1628,1628,1629,47,1740,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1741,21,1741,51,1618,1740,52,16,16,47,16,1,1742,21,1742,1632,1564,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1743,52,1743,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1744,52,1744,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1745,52,1745,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1746,52,1746,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1747,52,1747,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1748,38,1748,1628,51,1628,1628,1629,47,1749,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1750,21,1750,51,1618,1749,52,16,16,47,16,1,1751,21,1751,1632,1574,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1752,1753,52,1752,1753,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1754,52,1754,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1755,38,1755,1628,51,1628,1628,1629,47,1756,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1757,21,1757,51,1618,1756,52,16,16,47,16,1,1756,21,1756,1632,1758,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,1759,38,1759,215,1760,216,213,213,214,213,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1761,52,1761,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1762,52,1762,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1763,52,1763,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1764,52,1764,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1765,52,1765,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1627,38,1627,1628,51,1628,1628,1629,47,1630,1766,52,1766,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1767,38,1767,1628,51,1628,1628,1629,47,1768,52,1628,16,16,47,1628,47,1628,47,1628,47,16,1,1769,21,1769,51,1618,1768,52,16,16,47,16,1,1770,21,1770,1632,1594,1632,1632,47,47,1633,52,1632,16,16,47,1632,47,1632,47,1632,47,16,1,21,1771,1771,16,1,21,1772,1772,16,1,21,1773,1773,16,1,21,1774,1774,16,1,21,1775,1775,16,1,1776,21,1776,16,1,1777,21,16,1,17,21,17,16,1,1778,1778,1,1779,1779,1,1780,1780,1,1781,1781,1,1782,1,1783,1783,1,1,0];
_tsip_machine_parser_header_Authorization_trans_targs=[2,0,1345,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,1343,19,1337,17,1351,20,21,22,23,24,24,25,28,81,92,113,124,130,1205,26,17,25,27,29,26,27,151,70,30,32,35,31,31,33,34,36,69,37,40,38,39,41,56,42,54,43,44,52,45,46,50,47,48,49,51,53,55,57,65,58,61,59,60,62,63,64,66,67,68,71,72,73,74,75,76,77,78,79,78,80,31,17,80,27,82,83,84,85,86,87,88,87,88,89,89,90,91,31,17,27,93,104,94,95,94,96,97,98,99,100,101,102,103,31,17,27,105,106,107,108,109,108,109,110,110,111,112,31,17,27,114,115,116,117,118,119,120,119,120,121,121,122,123,31,17,27,125,126,127,128,127,129,31,17,129,27,131,132,140,133,134,135,136,135,136,137,137,138,139,31,17,27,141,142,143,144,145,146,147,146,147,148,148,149,150,31,17,27,152,1196,153,154,155,154,156,157,158,31,159,157,31,158,159,160,160,161,162,202,214,1134,1152,1160,1166,1181,163,162,161,164,163,165,166,167,160,168,201,169,172,170,171,173,188,174,186,175,176,184,177,178,182,179,180,181,183,185,187,189,197,190,193,191,192,194,195,196,198,199,200,203,204,205,206,207,208,209,210,211,212,211,213,160,213,161,215,216,217,218,219,220,221,220,221,222,223,224,223,224,225,265,277,286,1086,1095,1101,1118,226,225,227,226,228,229,230,160,161,231,264,232,235,222,233,234,236,251,237,249,238,239,247,240,241,245,242,243,244,246,248,250,252,260,253,256,254,255,257,258,259,261,262,263,266,267,268,269,270,271,272,273,274,275,274,276,223,276,224,278,279,280,281,282,283,284,283,284,285,223,224,287,298,288,289,288,290,291,292,293,294,295,296,297,223,224,299,300,301,302,303,302,303,304,305,306,305,306,307,348,360,369,388,1047,1053,1070,308,307,306,309,308,310,311,312,305,160,161,313,347,314,317,327,315,316,318,334,319,332,320,321,330,322,323,328,324,325,326,329,331,333,335,343,336,339,337,338,340,341,342,344,345,346,349,350,351,352,353,354,355,356,357,358,357,359,305,359,306,361,362,363,364,365,366,367,366,367,368,223,224,370,381,371,372,371,373,374,375,376,377,378,379,380,305,306,382,383,384,385,386,385,386,387,305,306,389,390,391,392,393,394,395,394,395,396,397,398,397,398,399,440,452,461,480,489,495,1031,400,399,398,401,400,402,403,404,397,160,161,405,439,406,409,419,407,408,410,426,411,424,412,413,422,414,415,420,416,417,418,421,423,425,427,435,428,431,429,430,432,433,434,436,437,438,441,442,443,444,445,446,447,448,449,450,449,451,397,451,398,453,454,455,456,457,458,459,458,459,460,223,224,462,473,463,464,463,465,466,467,468,469,470,471,472,397,398,474,475,476,477,478,477,478,479,305,306,481,482,483,484,485,486,487,486,487,488,397,398,490,491,492,493,492,494,397,494,398,496,497,1022,498,499,500,501,500,501,502,503,504,503,504,505,546,558,567,586,595,601,1006,506,505,504,507,506,508,509,510,503,160,161,511,545,512,515,525,513,514,516,532,517,530,518,519,528,520,521,526,522,523,524,527,529,531,533,541,534,537,535,536,538,539,540,542,543,544,547,548,549,550,551,552,553,554,555,556,555,557,503,557,504,559,560,561,562,563,564,565,564,565,566,223,224,568,579,569,570,569,571,572,573,574,575,576,577,578,503,504,580,581,582,583,584,583,584,585,305,306,587,588,589,590,591,592,593,592,593,594,397,398,596,597,598,599,598,600,503,600,504,602,603,609,604,605,606,607,606,607,608,503,504,610,611,612,613,614,615,616,615,616,617,618,619,618,619,620,661,673,682,701,710,716,733,621,620,619,622,621,623,624,625,618,160,161,626,660,627,630,640,628,629,631,647,632,645,633,634,643,635,636,641,637,638,639,642,644,646,648,656,649,652,650,651,653,654,655,657,658,659,662,663,664,665,666,667,668,669,670,671,670,672,618,672,619,674,675,676,677,678,679,680,679,680,681,223,224,683,694,684,685,684,686,687,688,689,690,691,692,693,618,619,695,696,697,698,699,698,699,700,305,306,702,703,704,705,706,707,708,707,708,709,397,398,711,712,713,714,713,715,618,715,619,717,718,724,719,720,721,722,721,722,723,503,504,725,726,727,728,729,730,731,730,731,732,618,619,734,996,735,736,737,736,738,739,740,739,740,741,781,793,801,819,827,833,848,742,741,740,743,742,744,745,739,746,780,747,750,760,748,749,751,767,752,765,753,754,763,755,756,761,757,758,759,762,764,766,768,776,769,772,770,771,773,774,775,777,778,779,782,783,784,785,786,787,788,789,790,791,790,792,739,792,740,794,795,796,797,798,799,800,799,800,223,802,813,803,804,803,805,806,807,808,809,810,811,812,739,740,814,815,816,817,818,817,818,305,820,821,822,823,824,825,826,825,826,397,828,829,830,831,830,832,739,832,740,834,835,840,836,837,838,839,838,839,503,841,842,843,844,845,846,847,846,847,618,849,853,850,851,852,851,854,855,856,857,858,859,860,861,860,861,862,862,863,864,866,865,31,17,27,867,908,920,929,948,957,963,980,868,867,866,869,868,870,871,872,862,160,161,873,907,874,877,887,875,876,878,894,879,892,880,881,890,882,883,888,884,885,886,889,891,893,895,903,896,899,897,898,900,901,902,904,905,906,909,910,911,912,913,914,915,916,917,918,917,919,862,919,866,921,922,923,924,925,926,927,926,927,928,223,224,930,941,931,932,931,933,934,935,936,937,938,939,940,862,866,942,943,944,945,946,945,946,947,305,306,949,950,951,952,953,954,955,954,955,956,397,398,958,959,960,961,960,962,862,962,866,964,965,971,966,967,968,969,968,969,970,503,504,972,973,974,975,976,977,978,977,978,979,618,619,981,986,982,983,984,983,985,739,740,987,988,989,990,991,992,993,994,993,994,995,862,866,997,998,999,1000,1001,1002,1003,1004,1003,1004,1005,862,866,1007,1012,1008,1009,1010,1009,1011,739,740,1013,1014,1015,1016,1017,1018,1019,1020,1019,1020,1021,862,866,1023,1024,1025,1026,1027,1028,1029,1028,1029,1030,618,619,1032,1037,1033,1034,1035,1034,1036,739,740,1038,1039,1040,1041,1042,1043,1044,1045,1044,1045,1046,862,866,1048,1049,1050,1051,1050,1052,305,1052,306,1054,1055,1061,1056,1057,1058,1059,1058,1059,1060,503,504,1062,1063,1064,1065,1066,1067,1068,1067,1068,1069,618,619,1071,1076,1072,1073,1074,1073,1075,739,740,1077,1078,1079,1080,1081,1082,1083,1084,1083,1084,1085,862,866,1087,1088,1089,1090,1091,1092,1093,1092,1093,1094,397,398,1096,1097,1098,1099,1098,1100,223,1100,224,1102,1103,1109,1104,1105,1106,1107,1106,1107,1108,503,504,1110,1111,1112,1113,1114,1115,1116,1115,1116,1117,618,619,1119,1124,1120,1121,1122,1121,1123,739,740,1125,1126,1127,1128,1129,1130,1131,1132,1131,1132,1133,862,866,1135,1146,1136,1137,1136,1138,1139,1140,1141,1142,1143,1144,1145,160,161,1147,1148,1149,1150,1151,1150,1151,327,1153,1154,1155,1156,1157,1158,1159,1158,1159,419,1161,1162,1163,1164,1163,1165,160,1165,161,1167,1168,1173,1169,1170,1171,1172,1171,1172,525,1174,1175,1176,1177,1178,1179,1180,1179,1180,640,1182,1187,1183,1184,1185,1184,1186,739,740,1188,1189,1190,1191,1192,1193,1194,1195,1194,1195,887,1197,1198,1199,1200,1201,1202,1203,1204,1203,1204,863,1206,1207,1208,1209,1208,1210,1211,1212,1211,1212,1213,1213,1214,1215,1255,1267,1275,1293,1301,1307,1322,1216,1215,1214,1217,1216,1218,1219,1213,1220,1254,1221,1224,1234,1222,1223,1225,1241,1226,1239,1227,1228,1237,1229,1230,1235,1231,1232,1233,1236,1238,1240,1242,1250,1243,1246,1244,1245,1247,1248,1249,1251,1252,1253,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1264,1266,1213,1266,1214,1268,1269,1270,1271,1272,1273,1274,1273,1274,1276,1287,1277,1278,1277,1279,1280,1281,1282,1283,1284,1285,1286,1213,1214,1288,1289,1290,1291,1292,1291,1292,1294,1295,1296,1297,1298,1299,1300,1299,1300,1302,1303,1304,1305,1304,1306,1213,1306,1214,1308,1309,1314,1310,1311,1312,1313,1312,1313,1315,1316,1317,1318,1319,1320,1321,1320,1321,1323,1328,1324,1325,1326,1325,1327,739,740,1329,1330,1331,1332,1333,1334,1335,1336,1335,1336,1338,1339,1340,1341,1342,24,1344,1346,1347,1348,1349,1350,2];
_tsip_machine_parser_header_Authorization_trans_actions=[7,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,0,0,0,5,0,1,1,1,1,1,1,1,1,31,31,0,31,0,0,0,1,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,21,0,21,0,0,0,0,0,31,0,0,1,1,0,0,0,23,23,23,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,29,0,0,0,31,0,0,1,1,0,0,0,15,15,15,0,0,0,0,0,31,0,0,1,1,0,0,0,25,25,25,0,0,31,0,0,1,27,27,0,27,0,0,0,0,0,31,0,0,1,1,0,0,0,13,13,13,0,0,0,0,0,31,0,0,1,1,0,0,0,19,19,19,0,0,0,31,0,0,0,1,1,35,1,0,17,0,0,17,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,31,31,0,0,1,1,1,1,1,1,1,1,31,0,0,0,0,0,0,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,23,23,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,23,23,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,15,15,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,15,15,0,0,0,0,0,31,0,0,1,1,15,15,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,25,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,25,25,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,25,25,0,0,0,0,0,31,0,0,1,1,25,25,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,25,25,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,13,13,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,13,13,0,0,0,0,0,31,0,0,1,1,13,13,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,13,13,0,0,0,0,0,31,0,0,1,1,13,13,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,19,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,19,19,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,19,19,0,0,0,0,0,31,0,0,1,1,19,19,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,19,19,0,0,0,0,0,31,0,0,1,1,19,19,0,0,0,31,0,0,0,38,38,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,59,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,35,0,0,0,0,0,31,0,0,1,59,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,35,0,0,0,0,0,31,0,0,1,59,0,0,0,31,0,0,0,0,0,0,0,0,31,0,0,1,35,0,0,0,0,0,11,11,11,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,0,31,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,1,11,11,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,11,11,0,0,0,0,0,31,0,0,1,1,11,11,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,11,11,0,0,0,0,0,31,0,0,1,1,11,11,0,0,0,31,0,0,0,50,50,0,0,0,0,0,0,31,0,0,1,1,11,11,0,0,0,0,0,0,31,0,0,1,1,19,19,0,0,0,31,0,0,0,53,53,0,0,0,0,0,0,31,0,0,1,1,13,13,0,0,0,0,0,31,0,0,1,1,25,25,0,0,0,31,0,0,0,44,44,0,0,0,0,0,0,31,0,0,1,1,25,25,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,15,15,0,0,0,0,0,31,0,0,1,1,15,15,0,0,0,31,0,0,0,56,56,0,0,0,0,0,0,31,0,0,1,1,15,15,0,0,0,0,0,31,0,0,1,1,23,23,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,23,23,0,0,0,0,0,31,0,0,1,1,23,23,0,0,0,31,0,0,0,41,41,0,0,0,0,0,0,31,0,0,1,1,23,23,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,1,0,0,0,0,0,31,0,0,1,1,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,1,0,0,0,0,0,31,0,0,1,1,0,0,0,31,0,0,0,47,47,0,0,0,0,0,0,31,0,0,1,1,0,0,0,0,0,0,31,0,0,1,1,0,0,31,0,0,0,1,1,0,0,17,0,0,1,1,1,1,1,1,1,1,31,0,31,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,1,21,0,21,0,0,0,0,0,31,0,0,1,0,0,31,0,0,1,0,0,0,0,0,0,0,29,29,0,0,0,31,0,0,1,0,0,0,0,0,31,0,0,1,0,0,31,0,0,1,27,0,27,0,0,0,0,0,31,0,0,1,0,0,0,0,0,31,0,0,1,0,0,0,31,0,0,0,62,62,0,0,0,0,0,0,31,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0];
tsip_machine_parser_header_Authorization_start=1;tsip_machine_parser_header_Authorization_first_final=1351;
tsip_machine_parser_header_Authorization_error=0;tsip_machine_parser_header_Authorization_en_main=1;function tsip_header_Authorization(){tsip_header.call(this,tsip_header_type_e.Authorization);
this.s_scheme=null;this.s_username=null;this.s_realm=null;this.s_nonce=null;this.s_uri=null;this.s_response=null;
this.s_algorithm=null;this.s_cnonce=null;this.s_opaque=null;this.s_qop=null;this.s_nc=null}tsip_header_Authorization.prototype.toString=function(){if(tsk_string_iequals(this.s_scheme,"Basic")){return tsk_string_format("{0} {1}",this.s_scheme,this.s_response)
}else{return tsk_string_format("{0} {1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}{22}{23}{24}{25}{26}{27}",this.s_scheme,this.s_username?'username="':"",this.s_username?this.s_username:"",this.s_username?'"':"",this.s_realm?',realm="':"",this.s_realm?this.s_realm:"",this.s_realm?'"':"",(this.s_nonce||this.s_nonce==="")?',nonce="':"",(this.s_nonce||this.s_nonce==="")?this.s_nonce:"",(this.s_nonce||this.s_nonce==="")?'"':"",this.s_uri?',uri="':"",this.s_uri?this.s_uri:"",this.s_uri?'"':"",(this.s_response||this.s_response==="")?',response="':"",(this.s_response||this.s_response==="")?this.s_response:"",(this.s_response||this.s_response==="")?'"':"",this.s_algorithm?",algorithm=":"",this.s_algorithm?this.s_algorithm:"",this.s_cnonce?',cnonce="':"",this.s_cnonce?this.s_cnonce:"",this.s_cnonce?'"':"",this.s_opaque?',opaque="':"",this.s_opaque?this.s_opaque:"",this.s_opaque?'"':"",this.s_qop?",qop=":"",this.s_qop?this.s_qop:"",this.s_nc?",nc=":"",this.s_nc?this.s_nc:"")
}};tsip_header_Authorization.prototype.Parse=function(m){var f=0;var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);
var u;var a=new tsip_header_Authorization();f=tsip_machine_parser_header_Authorization_start;var g,n,c,e,d,r,l;
var o,j,b,q,t;var s;g=n=c=r=l=null;o=0;j=10;b=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;
continue}if(f==0){o=s;continue}}if(o<=j){c=_tsip_machine_parser_header_Authorization_key_offsets[f];n=_tsip_machine_parser_header_Authorization_index_offsets[f];
g=_tsip_machine_parser_header_Authorization_single_lengths[f];_break_match=false;do{if(g>0){_lower=c;
_upper=c+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsip_machine_parser_header_Authorization_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsip_machine_parser_header_Authorization_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-c);
_break_match=true;break}}}if(_break_match){break}c+=g;n+=g}g=_tsip_machine_parser_header_Authorization_range_lengths[f];
if(g>0){_lower=c;_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[k]<_tsip_machine_parser_header_Authorization_trans_keys[_mid]){_upper=_mid-2}else{if(w[k]>_tsip_machine_parser_header_Authorization_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-c)>>1);_break_match=true;break}}}if(_break_match){break}n+=g}}while(false);n=_tsip_machine_parser_header_Authorization_indicies[n];
f=_tsip_machine_parser_header_Authorization_trans_targs[n];if(_tsip_machine_parser_header_Authorization_trans_actions[n]!=0){r=_tsip_machine_parser_header_Authorization_trans_actions[n];
l=_tsip_machine_parser_header_Authorization_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_Authorization_actions[r-1]){case 0:u=k;
break;case 1:a.s_scheme="Digest";break;case 2:a.s_scheme="Basic";break;case 3:tsip_header.call(a,tsip_header_type_e.Authorization);
break;case 4:tsip_header.call(a,tsip_header_type_e.Proxy_Authorization);break;case 5:a.s_username=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));
break;case 6:a.s_realm=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));break;case 7:a.s_nonce=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));
break;case 8:a.s_uri=tsk_ragel_parser_get_string(m,k,u);break;case 9:a.s_response=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));
break;case 10:a.s_algorithm=tsk_ragel_parser_get_string(m,k,u);break;case 11:a.s_cnonce=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));
break;case 12:a.s_opaque=tsk_string_unquote_2(tsk_ragel_parser_get_string(m,k,u));break;case 13:a.s_qop=tsk_ragel_parser_get_string(m,k,u);
break;case 14:a.s_nc=tsk_ragel_parser_get_string(m,k,u);break;case 15:tsk_ragel_add_param(m,k,u,a.ao_params);
break;case 16:break}}}if(_trigger_goto){continue}}if(o<=q){if(f==0){o=s;continue}k+=1;if(k!=v){o=j;continue
}}if(o<=t){}if(o<=s){break}}if(f<1351){tsk_utils_log_error("Failed to parse 'Authorization' header: "+m);
return null}return a};tsip_header_Contact.prototype=Object.create(tsip_header.prototype);_tsip_machine_parser_header_Contact_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,2,1,0,2,3,6,2,4,6,2,5,6];
_tsip_machine_parser_header_Contact_key_offsets=[0,0,4,6,8,10,12,14,16,19,40,41,43,64,65,67,71,74,75,79,91,94,96,99,104,109,110,112,116,137,138,140,161,162,164,167,184,202,206,207,209,217,218,220,224,230,250,269,274,276,283,302,303,305,323,341,347,348,350,355,374,375,377,396,397,399,402,410,411,413,418,424,441,448,456,464,472,474,481,490,492,495,497,500,502,505,508,509,512,513,516,517,526,535,543,551,559,567,569,575,584,593,602,604,607,610,611,612,632,652,672,692,712,732,750,756,757,759,764,783,784,786,805,812,829,847,851];
_tsip_machine_parser_header_Contact_trans_keys=[67,77,99,109,79,111,78,110,84,116,65,97,67,99,84,116,9,32,58,9,13,32,33,34,37,39,42,43,60,126,45,46,48,57,65,90,95,96,97,122,10,9,32,9,13,32,33,34,37,39,42,43,60,126,45,46,48,57,65,90,95,96,97,122,10,9,32,9,32,42,60,9,13,32,10,65,90,97,122,9,32,43,58,45,46,48,57,65,90,97,122,9,32,58,0,65535,62,0,65535,9,13,32,44,59,9,13,32,44,59,10,9,32,9,32,44,59,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,13,32,33,34,37,39,60,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,32,60,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,60,10,9,32,9,13,34,92,32,126,128,255,10,9,32,9,13,32,60,0,9,11,12,14,127,9,13,32,33,37,39,42,43,58,126,45,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,58,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,58,60,0,65535,9,13,32,44,59,0,65535,9,13,32,33,37,39,69,101,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,44,59,0,9,11,12,14,127,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,44,59,61,88,120,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,80,112,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,73,105,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,82,114,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,69,101,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,83,115,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,44,59,48,57,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,60,126,42,43,45,46,48,57,65,90,95,122,9,13,32,60,0];
_tsip_machine_parser_header_Contact_single_lengths=[0,4,2,2,2,2,2,2,3,11,1,2,11,1,2,4,3,1,0,4,3,0,1,5,5,1,2,4,9,1,2,9,1,2,3,7,8,4,1,2,4,1,2,4,0,10,9,5,0,5,9,1,2,8,10,6,1,2,5,9,1,2,9,1,2,3,4,1,2,5,0,9,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,12,12,12,12,12,12,10,6,1,2,5,9,1,2,9,5,7,8,4,0];
_tsip_machine_parser_header_Contact_range_lengths=[0,0,0,0,0,0,0,0,0,5,0,0,5,0,0,0,0,0,2,4,0,1,1,0,0,0,0,0,6,0,0,6,0,0,0,5,5,0,0,0,2,0,0,0,3,5,5,0,1,1,5,0,0,5,4,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,3,4,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,4,4,4,4,4,4,4,0,0,0,0,5,0,0,5,1,5,5,0,0];
_tsip_machine_parser_header_Contact_index_offsets=[0,0,5,8,11,14,17,20,23,27,44,46,49,66,68,71,76,80,82,85,94,98,100,103,109,115,117,120,125,141,143,146,162,164,167,171,184,198,203,205,208,215,217,220,225,229,245,260,266,268,275,290,292,295,309,324,331,333,336,342,357,359,362,377,379,382,386,393,395,398,404,408,422,427,433,439,445,448,453,460,462,465,467,470,472,475,478,480,483,485,488,490,497,504,510,516,522,528,531,535,542,549,556,558,561,564,566,568,585,602,619,636,653,670,685,692,694,697,703,718,720,723,738,745,758,772,777];
_tsip_machine_parser_header_Contact_indicies=[0,2,0,2,1,3,3,1,4,4,1,5,5,1,6,6,1,7,7,1,2,2,1,2,2,8,1,9,10,9,11,12,11,11,13,11,14,11,11,11,15,11,15,1,16,1,17,17,1,18,19,18,11,12,11,11,13,11,14,11,11,11,15,11,15,1,20,1,21,21,1,21,21,22,23,1,22,24,22,1,25,1,26,26,1,27,27,28,29,28,28,28,28,1,27,27,29,1,30,1,31,30,1,32,33,32,34,35,1,36,37,36,38,35,1,39,1,40,40,1,40,40,38,35,1,41,42,41,11,12,11,11,14,11,11,11,11,15,11,15,1,43,1,44,44,1,45,46,45,11,12,11,11,14,11,11,11,11,15,11,15,1,47,1,48,48,1,48,48,23,1,49,50,49,51,51,51,51,51,51,51,51,51,1,52,53,52,51,51,51,54,51,51,51,51,51,51,1,55,56,55,23,1,57,1,49,49,1,58,59,60,61,58,58,1,62,1,58,58,1,52,53,52,54,1,58,58,58,1,63,50,63,51,51,51,51,64,65,51,64,64,64,51,64,1,66,53,66,51,51,51,65,54,51,51,51,51,51,51,1,67,56,67,65,23,1,68,1,69,70,69,71,72,68,1,35,73,35,74,74,74,75,75,74,74,74,74,74,74,1,76,1,77,77,1,77,77,74,74,74,75,75,74,74,74,74,74,74,1,78,79,78,80,80,80,81,82,83,80,80,80,80,80,1,84,85,84,38,35,83,1,86,1,87,87,1,87,87,38,35,83,1,83,88,83,89,90,89,89,91,89,89,89,89,89,89,1,92,1,93,93,1,93,94,93,89,90,89,89,91,89,89,89,89,89,89,1,95,1,96,96,1,96,96,90,1,90,97,98,99,90,90,1,100,1,90,90,1,101,79,101,81,82,1,90,90,90,1,101,79,101,89,89,89,81,82,89,89,89,89,89,1,103,102,102,102,1,105,98,104,104,104,1,105,98,106,106,106,1,105,98,107,107,107,1,105,98,1,109,108,102,102,1,110,105,98,111,104,104,1,112,1,113,114,1,115,1,116,117,1,118,1,98,119,1,98,120,1,98,1,116,121,1,116,1,113,122,1,113,1,110,105,98,123,106,106,1,110,105,98,107,107,107,1,125,98,124,124,124,1,127,98,126,126,126,1,127,98,128,128,128,1,127,98,129,129,129,1,127,98,1,130,124,124,1,110,127,98,131,126,126,1,110,127,98,132,128,128,1,110,127,98,129,129,129,1,133,1,110,134,1,110,135,1,110,1,109,1,78,79,78,80,80,80,81,82,83,136,136,80,80,80,80,80,1,78,79,78,80,80,80,81,82,83,137,137,80,80,80,80,80,1,78,79,78,80,80,80,81,82,83,138,138,80,80,80,80,80,1,78,79,78,80,80,80,81,82,83,139,139,80,80,80,80,80,1,78,79,78,80,80,80,81,82,83,140,140,80,80,80,80,80,1,78,79,78,80,80,80,81,82,83,141,141,80,80,80,80,80,1,142,79,142,80,80,80,81,82,143,80,80,80,80,80,1,144,145,144,38,35,143,1,146,1,147,147,1,147,147,38,35,143,1,143,148,143,89,90,89,89,91,89,89,89,149,89,89,1,150,1,151,151,1,151,94,151,89,90,89,89,91,89,89,89,149,89,89,1,152,153,152,154,156,155,1,157,24,157,51,51,51,51,51,51,51,51,51,1,158,24,158,51,51,51,54,51,51,51,51,51,51,1,159,24,159,23,1,1,0];
_tsip_machine_parser_header_Contact_trans_targs=[2,0,8,3,4,5,6,7,9,9,10,35,40,123,18,45,11,12,12,13,14,15,16,18,17,126,19,20,19,21,22,23,24,17,28,50,24,25,28,26,27,28,29,30,31,31,32,33,34,36,38,35,37,32,18,37,32,39,40,41,43,44,42,46,45,48,47,47,49,24,17,28,50,51,54,107,52,53,55,17,54,28,50,59,55,56,57,58,60,71,66,72,61,62,63,64,65,67,69,70,68,24,73,106,74,77,75,76,78,93,79,91,80,81,89,82,83,87,84,85,86,88,90,92,94,102,95,98,96,97,99,100,101,103,104,105,108,109,110,111,112,113,114,118,114,115,116,117,119,122,120,121,24,17,28,122,50,124,125,125];
_tsip_machine_parser_header_Contact_trans_actions=[0,0,0,0,0,0,0,0,0,3,3,17,17,17,3,17,0,0,3,3,0,0,0,0,0,15,1,0,0,0,0,7,13,13,13,0,0,0,0,0,0,3,3,0,0,3,3,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,20,20,20,7,0,1,1,0,0,26,26,0,26,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,1,0,0,23,23,23,0,9,0,5,0];
tsip_machine_parser_header_Contact_start=1;tsip_machine_parser_header_Contact_first_final=126;tsip_machine_parser_header_Contact_error=0;
tsip_machine_parser_header_Contact_en_main=1;function tsip_header_Contact(){tsip_header.call(this,tsip_header_type_e.Contact);
this.s_display_name=null;this.o_uri=null;this.i_expires=-1}tsip_header_Contact.prototype.toString=function(){var a=tsip_uri_tostring(this.o_uri,true,true);
if(a&&this.i_expires>=0){a+=tsk_string_format(";expires={0}",this.i_expires)}return a};tsip_header_Contact.prototype.Parse=function(o){var f=0;
var m=0;var x=o.length;var j=x;var y=tsk_buff_str2ib(o);var w;var l=new Array();var a=null;f=tsip_machine_parser_header_Contact_start;
var g,q,c,e,d,t,n;var r,k,b,s,v;var u;g=q=c=t=n=null;r=0;k=10;b=15;s=20;v=30;u=40;while(true){_trigger_goto=false;
if(r<=0){if(m==x){r=v;continue}if(f==0){r=u;continue}}if(r<=k){c=_tsip_machine_parser_header_Contact_key_offsets[f];
q=_tsip_machine_parser_header_Contact_index_offsets[f];g=_tsip_machine_parser_header_Contact_single_lengths[f];
_break_match=false;do{if(g>0){_lower=c;_upper=c+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(y[m]<_tsip_machine_parser_header_Contact_trans_keys[_mid]){_upper=_mid-1}else{if(y[m]>_tsip_machine_parser_header_Contact_trans_keys[_mid]){_lower=_mid+1
}else{q+=(_mid-c);_break_match=true;break}}}if(_break_match){break}c+=g;q+=g}g=_tsip_machine_parser_header_Contact_range_lengths[f];
if(g>0){_lower=c;_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(y[m]<_tsip_machine_parser_header_Contact_trans_keys[_mid]){_upper=_mid-2}else{if(y[m]>_tsip_machine_parser_header_Contact_trans_keys[_mid+1]){_lower=_mid+2
}else{q+=((_mid-c)>>1);_break_match=true;break}}}if(_break_match){break}q+=g}}while(false);q=_tsip_machine_parser_header_Contact_indicies[q];
f=_tsip_machine_parser_header_Contact_trans_targs[q];if(_tsip_machine_parser_header_Contact_trans_actions[q]!=0){t=_tsip_machine_parser_header_Contact_trans_actions[q];
n=_tsip_machine_parser_header_Contact_actions[t];t+=1;while(n>0){n-=1;t+=1;switch(_tsip_machine_parser_header_Contact_actions[t-1]){case 0:i_tag_start=m;
break;case 1:if(!a){a=new tsip_header_Contact()}break;case 2:if(a){a.s_display_name=tsk_ragel_parser_get_string(o,m,i_tag_start);
a.s_display_name=tsk_string_unquote_2(a.s_display_name)}break;case 3:if(a&&!a.o_uri){var h=tsk_ragel_parser_get_string(o,m,i_tag_start);
if((a.o_uri=tsip_uri.prototype.Parse(h))&&a.s_display_name){a.o_uri.s_display_name=tsk_strdup(a.s_display_name)
}}break;case 4:if(a){a.i_expires=tsk_ragel_parser_get_int(o,m,i_tag_start)}break;case 5:if(a){tsk_ragel_add_param(o,m,i_tag_start,a.ao_params)
}break;case 6:if(a){l.push(a);a=null}break;case 7:break}}}if(_trigger_goto){continue}}if(r<=s){if(f==0){r=u;
continue}m+=1;if(m!=x){r=k;continue}}if(r<=v){}if(r<=u){break}}if(f<126){tsk_utils_log_error("Failed to parse 'Contact' header: "+o);
return null}return l};tsip_header_Content_Type.prototype=Object.create(tsip_header.prototype);_tsip_machine_parser_header_Content_Type_actions=[0,1,0,1,1,1,2,1,3];
_tsip_machine_parser_header_Content_Type_key_offsets=[0,0,2,7,10,27,28,30,46,62,66,67,69,72,89,90,92,108,126,130,131,133,136,153,154,156,172,190,194,195,197,200,218,219,221,239,240,242,245,253,254,256,260,261,267,285,287,289,291,293,295,296,298,300,302,304];
_tsip_machine_parser_header_Content_Type_trans_keys=[67,99,9,32,58,79,111,9,32,58,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,47,126,42,43,45,57,65,90,95,122,9,13,32,47,10,9,32,9,32,47,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,10,9,32,9,32,59,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,61,10,9,32,9,32,61,9,13,32,33,34,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,59,10,0,9,11,12,14,127,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,78,110,84,116,69,101,78,110,84,116,45,84,116,89,121,80,112,69,101,0];
_tsip_machine_parser_header_Content_Type_single_lengths=[0,2,5,3,7,1,2,6,8,4,1,2,3,7,1,2,6,8,4,1,2,3,7,1,2,6,8,4,1,2,3,8,1,2,8,1,2,3,4,1,2,4,1,0,8,2,2,2,2,2,1,2,2,2,2,0];
_tsip_machine_parser_header_Content_Type_range_lengths=[0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0];
_tsip_machine_parser_header_Content_Type_index_offsets=[0,0,3,9,13,26,28,31,43,56,61,63,66,70,83,85,88,100,114,119,121,124,128,141,143,146,158,172,177,179,182,186,200,202,205,219,221,224,228,235,237,240,245,247,251,265,268,271,274,277,280,282,285,288,291,294];
_tsip_machine_parser_header_Content_Type_indicies=[0,0,1,2,2,3,4,4,1,2,2,3,1,3,5,3,6,6,6,6,6,6,6,6,6,1,7,1,8,8,1,8,8,6,6,6,6,6,6,6,6,6,1,9,10,9,11,11,11,12,11,11,11,11,11,1,9,10,9,12,1,13,1,14,14,1,14,14,12,1,12,15,12,16,16,16,16,16,16,16,16,16,1,17,1,18,18,1,18,18,16,16,16,16,16,16,16,16,16,1,19,20,19,16,16,16,21,16,16,16,16,16,16,1,22,23,22,24,1,25,1,26,26,1,26,26,24,1,24,27,24,28,28,28,28,28,28,28,28,28,1,29,1,30,30,1,30,30,28,28,28,28,28,28,28,28,28,1,31,32,31,33,33,33,34,33,33,33,33,33,33,1,31,32,31,34,1,35,1,36,36,1,36,36,34,1,34,37,34,38,39,38,38,38,38,38,38,38,38,1,40,1,41,41,1,41,42,41,38,39,38,38,38,38,38,38,38,38,1,43,1,44,44,1,44,44,39,1,39,45,46,47,39,39,1,48,1,39,39,1,49,50,49,51,1,52,1,39,39,39,1,49,50,49,38,38,38,51,38,38,38,38,38,38,1,53,53,1,54,54,1,55,55,1,56,56,1,57,57,1,58,1,59,59,1,60,60,1,61,61,1,2,2,1,1,0];
_tsip_machine_parser_header_Content_Type_trans_targs=[2,0,3,4,45,5,8,6,7,9,10,8,13,11,12,14,17,15,16,18,42,22,18,19,22,20,21,23,26,24,25,27,28,26,31,29,30,32,44,38,33,34,35,36,37,39,41,43,40,18,42,22,55,46,47,48,49,50,51,52,53,54];
_tsip_machine_parser_header_Content_Type_trans_actions=[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,7,0,0,0,0,0,0,0,0,0];
tsip_machine_parser_header_Content_Type_start=1;tsip_machine_parser_header_Content_Type_first_final=55;
tsip_machine_parser_header_Content_Type_error=0;tsip_machine_parser_header_Content_Type_en_main=1;function tsip_header_Content_Type(a){tsip_header.call(this,tsip_header_type_e.Content_Type);
this.s_type=a}tsip_header_Content_Type.prototype.toString=function(){return this.s_type};tsip_header_Content_Type.prototype.Parse=function(l){var e=0;
var j=0;var v=l.length;var g=v;var w=tsk_buff_str2ib(l);var u;var t=new tsip_header_Content_Type(null);
e=tsip_machine_parser_header_Content_Type_start;var f,m,b,d,c,q,k;var n,h,a,o,s;var r;f=m=b=q=k=null;
n=0;h=10;a=15;o=20;s=30;r=40;while(true){_trigger_goto=false;if(n<=0){if(j==v){n=s;continue}if(e==0){n=r;
continue}}if(n<=h){b=_tsip_machine_parser_header_Content_Type_key_offsets[e];m=_tsip_machine_parser_header_Content_Type_index_offsets[e];
f=_tsip_machine_parser_header_Content_Type_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[j]<_tsip_machine_parser_header_Content_Type_trans_keys[_mid]){_upper=_mid-1
}else{if(w[j]>_tsip_machine_parser_header_Content_Type_trans_keys[_mid]){_lower=_mid+1}else{m+=(_mid-b);
_break_match=true;break}}}if(_break_match){break}b+=f;m+=f}f=_tsip_machine_parser_header_Content_Type_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[j]<_tsip_machine_parser_header_Content_Type_trans_keys[_mid]){_upper=_mid-2}else{if(w[j]>_tsip_machine_parser_header_Content_Type_trans_keys[_mid+1]){_lower=_mid+2
}else{m+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}m+=f}}while(false);m=_tsip_machine_parser_header_Content_Type_indicies[m];
e=_tsip_machine_parser_header_Content_Type_trans_targs[m];if(_tsip_machine_parser_header_Content_Type_trans_actions[m]!=0){q=_tsip_machine_parser_header_Content_Type_trans_actions[m];
k=_tsip_machine_parser_header_Content_Type_actions[q];q+=1;while(k>0){k-=1;q+=1;switch(_tsip_machine_parser_header_Content_Type_actions[q-1]){case 0:i_tag_start=j;
break;case 1:t.s_type=tsk_ragel_parser_get_string(l,j,i_tag_start);break;case 2:tsk_ragel_add_param(l,j,i_tag_start,t.ao_params);
break;case 3:break}}}if(_trigger_goto){continue}}if(n<=o){if(e==0){n=r;continue}j+=1;if(j!=v){n=h;continue
}}if(n<=s){}if(n<=r){break}}if(e<55){tsk_utils_log_error("Failed to parse 'Content-Type' header: "+l);
return null}return t};tsip_header_CSeq.prototype=Object.create(tsip_header.prototype);var TSIP_HEADER_CSEQ_NONE=0;
var TSIP_HEADER_CSEQ_DEFAULT=1;_tsip_machine_parser_header_CSeq_actions=[0,1,0,1,1,1,2,1,3];_tsip_machine_parser_header_CSeq_key_offsets=[0,0,2,4,6,8,11,16,17,19,23,28,45,46,48,64,79,80];
_tsip_machine_parser_header_CSeq_trans_keys=[67,99,83,115,69,101,81,113,9,32,58,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,48,57,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,0];
_tsip_machine_parser_header_CSeq_single_lengths=[0,2,2,2,2,3,3,1,2,2,3,7,1,2,6,5,1,0];_tsip_machine_parser_header_CSeq_range_lengths=[0,0,0,0,0,0,1,0,0,1,1,5,0,0,5,5,0,0];
_tsip_machine_parser_header_CSeq_index_offsets=[0,0,3,6,9,12,16,21,23,26,30,35,48,50,53,65,76,78];_tsip_machine_parser_header_CSeq_indicies=[0,0,1,2,2,1,3,3,1,4,4,1,4,4,5,1,5,6,5,7,1,8,1,9,9,1,9,9,7,1,10,11,10,12,1,13,14,13,15,15,15,15,15,15,15,15,15,1,16,1,17,17,1,17,17,15,15,15,15,15,15,15,15,15,1,18,19,19,19,19,19,19,19,19,19,1,20,1,1,0];
_tsip_machine_parser_header_CSeq_trans_targs=[2,0,3,4,5,6,7,10,8,9,11,12,10,11,12,15,13,14,16,15,17];
_tsip_machine_parser_header_CSeq_trans_actions=[0,0,0,0,0,0,0,1,0,0,5,5,0,0,0,1,0,0,3,0,7];tsip_machine_parser_header_CSeq_start=1;
tsip_machine_parser_header_CSeq_first_final=17;tsip_machine_parser_header_CSeq_error=0;tsip_machine_parser_header_CSeq_en_main=1;
function tsip_header_CSeq(b,a){tsip_header.call(this,tsip_header_type_e.CSeq);this.i_seq=b;this.s_method=a;
if(a){this.e_req_type=tsip_message.prototype.GetRequestType(this.s_method)}else{this.e_req_type=tsip_request_type_e.UNKNOWN
}}tsip_header_CSeq.prototype.toString=function(){return tsk_string_format("{0} {1}",this.i_seq,this.s_method)
};tsip_header_CSeq.prototype.Parse=function(m){var e=0;var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);
var u;var g=new tsip_header_CSeq(TSIP_HEADER_CSEQ_NONE);e=tsip_machine_parser_header_CSeq_start;var f,n,b,d,c,r,l;
var o,j,a,q,t;var s;f=n=b=r=l=null;o=0;j=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;
continue}if(e==0){o=s;continue}}if(o<=j){b=_tsip_machine_parser_header_CSeq_key_offsets[e];n=_tsip_machine_parser_header_CSeq_index_offsets[e];
f=_tsip_machine_parser_header_CSeq_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsip_machine_parser_header_CSeq_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsip_machine_parser_header_CSeq_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_CSeq_range_lengths[e];if(f>0){_lower=b;
_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[k]<_tsip_machine_parser_header_CSeq_trans_keys[_mid]){_upper=_mid-2
}else{if(w[k]>_tsip_machine_parser_header_CSeq_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-b)>>1);
_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_CSeq_indicies[n];
e=_tsip_machine_parser_header_CSeq_trans_targs[n];if(_tsip_machine_parser_header_CSeq_trans_actions[n]!=0){r=_tsip_machine_parser_header_CSeq_trans_actions[n];
l=_tsip_machine_parser_header_CSeq_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_CSeq_actions[r-1]){case 0:u=k;
break;case 1:g.s_method=tsk_ragel_parser_get_string(m,k,u);g.e_req_type=tsip_message.prototype.GetRequestType(g.s_method);
break;case 2:g.i_seq=tsk_ragel_parser_get_int(m,k,u);break;case 3:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;
continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){}if(o<=s){break}}if(e<17){tsk_utils_log_error("Failed to parse 'CSeq' header: "+m);
return null}return g};tsip_header_RAck.prototype=Object.create(tsip_header.prototype);_tsip_machine_parser_header_RAck_actions=[0,1,0,1,1,1,2,1,3,1,4];
_tsip_machine_parser_header_RAck_key_offsets=[0,0,2,4,6,8,11,16,17,19,23,28,33,34,36,40,45,62,63,65,81,96,97];
_tsip_machine_parser_header_RAck_trans_keys=[82,114,65,97,67,99,75,107,9,32,58,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,48,57,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,48,57,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,13,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,0];
_tsip_machine_parser_header_RAck_single_lengths=[0,2,2,2,2,3,3,1,2,2,3,3,1,2,2,3,7,1,2,6,5,1,0];_tsip_machine_parser_header_RAck_range_lengths=[0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,5,0,0,5,5,0,0];
_tsip_machine_parser_header_RAck_index_offsets=[0,0,3,6,9,12,16,21,23,26,30,35,40,42,45,49,54,67,69,72,84,95,97];
_tsip_machine_parser_header_RAck_indicies=[0,0,1,2,2,1,3,3,1,4,4,1,4,4,5,1,5,6,5,7,1,8,1,9,9,1,9,9,7,1,10,11,10,12,1,13,14,13,15,1,16,1,17,17,1,17,17,15,1,18,19,18,20,1,21,22,21,23,23,23,23,23,23,23,23,23,1,24,1,25,25,1,25,25,23,23,23,23,23,23,23,23,23,1,26,27,27,27,27,27,27,27,27,27,1,28,1,1,0];
_tsip_machine_parser_header_RAck_trans_targs=[2,0,3,4,5,6,7,10,8,9,11,12,10,11,12,15,13,14,16,17,15,16,17,20,18,19,21,20,22];
_tsip_machine_parser_header_RAck_trans_actions=[0,0,0,0,0,0,0,1,0,0,3,3,0,0,0,1,0,0,5,5,0,0,0,1,0,0,7,0,9];
tsip_machine_parser_header_RAck_start=1;tsip_machine_parser_header_RAck_first_final=22;tsip_machine_parser_header_RAck_error=0;
tsip_machine_parser_header_RAck_en_main=1;function tsip_header_RAck(b,c,a){tsip_header.call(this,tsip_header_type_e.RAck);
this.i_seq=b;this.i_cseq=c;this.s_method=a}tsip_header_RAck.prototype.toString=function(){return tsk_string_format("{0} {1} {2}",this.i_seq,this.i_cseq,this.s_method)
};tsip_header_RAck.prototype.Parse=function(m){var f=0;var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);
var u;var b=new tsip_header_RAck(0,0,null);f=tsip_machine_parser_header_RAck_start;var g,n,c,e,d,r,l;
var o,j,a,q,t;var s;g=n=c=r=l=null;o=0;j=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;
continue}if(f==0){o=s;continue}}if(o<=j){c=_tsip_machine_parser_header_RAck_key_offsets[f];n=_tsip_machine_parser_header_RAck_index_offsets[f];
g=_tsip_machine_parser_header_RAck_single_lengths[f];_break_match=false;do{if(g>0){_lower=c;_upper=c+g-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsip_machine_parser_header_RAck_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsip_machine_parser_header_RAck_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-c);_break_match=true;
break}}}if(_break_match){break}c+=g;n+=g}g=_tsip_machine_parser_header_RAck_range_lengths[f];if(g>0){_lower=c;
_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(w[k]<_tsip_machine_parser_header_RAck_trans_keys[_mid]){_upper=_mid-2
}else{if(w[k]>_tsip_machine_parser_header_RAck_trans_keys[_mid+1]){_lower=_mid+2}else{n+=((_mid-c)>>1);
_break_match=true;break}}}if(_break_match){break}n+=g}}while(false);n=_tsip_machine_parser_header_RAck_indicies[n];
f=_tsip_machine_parser_header_RAck_trans_targs[n];if(_tsip_machine_parser_header_RAck_trans_actions[n]!=0){r=_tsip_machine_parser_header_RAck_trans_actions[n];
l=_tsip_machine_parser_header_RAck_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_RAck_actions[r-1]){case 0:u=k;
break;case 1:b.i_seq=tsk_ragel_parser_get_int(m,k,u);break;case 2:b.i_cseq=tsk_ragel_parser_get_int(m,k,u);
break;case 3:b.s_method=tsk_ragel_parser_get_string(m,k,u);break;case 4:break}}}if(_trigger_goto){continue
}}if(o<=q){if(f==0){o=s;continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){}if(o<=s){break}}if(f<22){tsk_utils_log_error("Failed to parse 'RAck' header: "+m);
return null}return b};tsip_header_Refer_Sub.prototype=Object.create(tsip_header.prototype);_tsip_machine_parser_header_Refer_Sub_actions=[0,1,0,1,1,1,2,1,3,1,4];
_tsip_machine_parser_header_Refer_Sub_key_offsets=[0,0,2,4,6,8,10,11,13,15,17,20,27,28,30,36,38,40,42,44,48,52,53,55,58,75,76,78,94,113,118,119,121,125,144,145,147,166,167,169,172,180,181,183,187,188,194,212,219,227,235,243,245,252,261,263,266,268,271,273,276,279,280,283,284,287,288,297,306,314,322,330,338,340,346,355,364,373,375,378,381,382,383,385,387,389,393];
_tsip_machine_parser_header_Refer_Sub_trans_keys=[82,114,69,101,70,102,69,101,82,114,45,83,115,85,117,66,98,9,32,58,9,13,32,70,84,102,116,10,9,32,9,32,70,84,102,116,65,97,76,108,83,115,69,101,9,13,32,59,9,13,32,59,10,9,32,9,32,59,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,59,10,0,9,11,12,14,127,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,82,114,85,117,69,101,9,13,32,59,0];
_tsip_machine_parser_header_Refer_Sub_single_lengths=[0,2,2,2,2,2,1,2,2,2,3,7,1,2,6,2,2,2,2,4,4,1,2,3,7,1,2,6,9,5,1,2,4,9,1,2,9,1,2,3,4,1,2,4,1,0,8,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,2,2,2,4,0];
_tsip_machine_parser_header_Refer_Sub_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,5,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,0,0,0,0,0];
_tsip_machine_parser_header_Refer_Sub_index_offsets=[0,0,3,6,9,12,15,17,20,23,26,30,38,40,43,50,53,56,59,62,67,72,74,77,81,94,96,99,111,126,132,134,137,142,157,159,162,177,179,182,186,193,195,198,203,205,209,223,228,234,240,246,249,254,261,263,266,268,271,273,276,279,281,284,286,289,291,298,305,311,317,323,329,332,336,343,350,357,359,362,365,367,369,372,375,378,383];
_tsip_machine_parser_header_Refer_Sub_indicies=[0,0,1,2,2,1,3,3,1,4,4,1,5,5,1,6,1,7,7,1,8,8,1,9,9,1,9,9,10,1,10,11,10,12,13,12,13,1,14,1,15,15,1,15,15,12,13,12,13,1,16,16,1,17,17,1,18,18,1,19,19,1,20,21,20,22,1,23,24,23,25,1,26,1,27,27,1,27,27,25,1,25,28,25,29,29,29,29,29,29,29,29,29,1,30,1,31,31,1,31,31,29,29,29,29,29,29,29,29,29,1,32,33,32,34,34,34,35,36,34,34,34,34,34,34,1,37,38,37,25,36,1,39,1,40,40,1,40,40,25,36,1,36,41,36,42,43,42,42,44,42,42,42,42,42,42,1,45,1,46,46,1,46,47,46,42,43,42,42,44,42,42,42,42,42,42,1,48,1,49,49,1,49,49,43,1,43,50,51,52,43,43,1,53,1,43,43,1,54,33,54,35,1,55,1,43,43,43,1,54,33,54,42,42,42,35,42,42,42,42,42,42,1,57,56,56,56,1,59,51,58,58,58,1,59,51,60,60,60,1,59,51,61,61,61,1,59,51,1,63,62,56,56,1,64,59,51,65,58,58,1,66,1,67,68,1,69,1,70,71,1,72,1,51,73,1,51,74,1,51,1,70,75,1,70,1,67,76,1,67,1,64,59,51,77,60,60,1,64,59,51,61,61,61,1,79,51,78,78,78,1,81,51,80,80,80,1,81,51,82,82,82,1,81,51,83,83,83,1,81,51,1,84,78,78,1,64,81,51,85,80,80,1,64,81,51,86,82,82,1,64,81,51,83,83,83,1,87,1,64,88,1,64,89,1,64,1,63,1,90,90,1,91,91,1,92,92,1,93,94,93,95,1,1,0];
_tsip_machine_parser_header_Refer_Sub_trans_targs=[2,0,3,4,5,6,7,8,9,10,11,12,15,82,13,14,16,17,18,19,20,44,24,20,21,24,22,23,25,28,26,27,29,44,28,24,33,29,30,31,32,34,46,40,47,35,36,37,38,39,41,43,45,42,20,86,48,81,49,52,50,51,53,68,54,66,55,56,64,57,58,62,59,60,61,63,65,67,69,77,70,73,71,72,74,75,76,78,79,80,83,84,85,20,44,24];
_tsip_machine_parser_header_Refer_Sub_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,1,0,0,7,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3];
tsip_machine_parser_header_Refer_Sub_start=1;tsip_machine_parser_header_Refer_Sub_first_final=86;tsip_machine_parser_header_Refer_Sub_error=0;
tsip_machine_parser_header_Refer_Sub_en_main=1;function tsip_header_Refer_Sub(a){tsip_header.call(this,tsip_header_type_e.Refer_Sub);
this.b_sub=a}tsip_header_Refer_Sub.prototype.toString=function(){return this.b_sub?"true":"false"};tsip_header_Refer_Sub.prototype.Parse=function(m){var e=0;
var k=0;var v=m.length;var h=v;var w=tsk_buff_str2ib(m);var u;var g=new tsip_header_Refer_Sub(true);e=tsip_machine_parser_header_Refer_Sub_start;
var f,n,b,d,c,r,l;var o,j,a,q,t;var s;f=n=b=r=l=null;o=0;j=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;
if(o<=0){if(k==v){o=t;continue}if(e==0){o=s;continue}}if(o<=j){b=_tsip_machine_parser_header_Refer_Sub_key_offsets[e];
n=_tsip_machine_parser_header_Refer_Sub_index_offsets[e];f=_tsip_machine_parser_header_Refer_Sub_single_lengths[e];
_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(w[k]<_tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]){_upper=_mid-1}else{if(w[k]>_tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]){_lower=_mid+1
}else{n+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Refer_Sub_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[k]<_tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]){_upper=_mid-2}else{if(w[k]>_tsip_machine_parser_header_Refer_Sub_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Refer_Sub_indicies[n];
e=_tsip_machine_parser_header_Refer_Sub_trans_targs[n];if(_tsip_machine_parser_header_Refer_Sub_trans_actions[n]!=0){r=_tsip_machine_parser_header_Refer_Sub_trans_actions[n];
l=_tsip_machine_parser_header_Refer_Sub_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_Refer_Sub_actions[r-1]){case 0:u=k;
break;case 1:g.b_sub=true;break;case 2:g.b_sub=false;break;case 3:tsk_ragel_add_param(m,k,u,g.ao_params);
break;case 4:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;continue}k+=1;if(k!=v){o=j;continue
}}if(o<=t){}if(o<=s){break}}if(e<86){tsk_utils_log_error("Failed to parse 'Refer-Sub' header: "+m);return null
}return g};tsip_header_Session_Expires.prototype=Object.create(tsip_header.prototype);var TSIP_SESSION_EXPIRES_DEFAULT_VALUE=1800;
_tsip_machine_parser_header_Session_Expires_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5];_tsip_machine_parser_header_Session_Expires_key_offsets=[0,0,4,6,8,10,12,14,16,17,19,21,23,25,27,29,31,34,39,40,42,46,52,56,57,59,62,81,82,84,102,121,126,127,129,133,152,153,155,174,175,177,180,188,189,191,195,196,202,220,227,235,243,251,253,260,269,271,274,276,279,281,284,287,288,291,292,295,296,305,314,322,330,338,346,348,354,363,372,381,383,386,389,390,391,412,433,454,475,496,517,538,559,578,583,584,586,590,611,612,614,635,655,677,681,685];
_tsip_machine_parser_header_Session_Expires_trans_keys=[83,88,115,120,69,101,83,115,83,115,73,105,79,111,78,110,45,69,101,88,120,80,112,73,105,82,114,69,101,83,115,9,32,58,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,59,48,57,9,13,32,59,10,9,32,9,32,59,9,13,32,33,37,39,82,114,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,59,10,0,9,11,12,14,127,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,70,102,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,83,115,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,72,104,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,85,91,117,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,85,91,117,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,65,97,126,42,43,45,46,48,57,66,90,95,122,9,13,32,33,37,39,59,67,83,99,115,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,9,13,32,59,0];
_tsip_machine_parser_header_Session_Expires_single_lengths=[0,4,2,2,2,2,2,2,1,2,2,2,2,2,2,2,3,3,1,2,2,4,4,1,2,3,9,1,2,8,9,5,1,2,4,9,1,2,9,1,2,3,4,1,2,4,1,0,8,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,11,11,11,11,11,11,11,11,9,5,1,2,4,11,1,2,11,10,12,4,4,0];
_tsip_machine_parser_header_Session_Expires_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,5,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,5,5,5,5,5,5,5,5,5,0,0,0,0,5,0,0,5,5,5,0,0,0];
_tsip_machine_parser_header_Session_Expires_index_offsets=[0,0,5,8,11,14,17,20,23,25,28,31,34,37,40,43,46,50,55,57,60,64,70,75,77,80,84,99,101,104,118,133,139,141,144,149,164,166,169,184,186,189,193,200,202,205,210,212,216,230,235,241,247,253,256,261,268,270,273,275,278,280,283,286,288,291,293,296,298,305,312,318,324,330,336,339,343,350,357,364,366,369,372,374,376,393,410,427,444,461,478,495,512,527,533,535,538,543,560,562,565,582,598,616,621,626];
_tsip_machine_parser_header_Session_Expires_indicies=[0,2,0,2,1,3,3,1,4,4,1,5,5,1,6,6,1,7,7,1,8,8,1,9,1,10,10,1,11,11,1,12,12,1,13,13,1,14,14,1,15,15,1,2,2,1,2,2,16,1,16,17,16,18,1,19,1,20,20,1,20,20,18,1,21,22,21,24,23,1,25,26,25,27,1,28,1,29,29,1,29,29,27,1,27,30,27,31,31,31,32,32,31,31,31,31,31,31,1,33,1,34,34,1,34,34,31,31,31,32,32,31,31,31,31,31,31,1,35,36,35,37,37,37,38,39,37,37,37,37,37,37,1,40,41,40,27,39,1,42,1,43,43,1,43,43,27,39,1,39,44,39,45,46,45,45,47,45,45,45,45,45,45,1,48,1,49,49,1,49,50,49,45,46,45,45,47,45,45,45,45,45,45,1,51,1,52,52,1,52,52,46,1,46,53,54,55,46,46,1,56,1,46,46,1,57,36,57,38,1,58,1,46,46,46,1,57,36,57,45,45,45,38,45,45,45,45,45,45,1,60,59,59,59,1,62,54,61,61,61,1,62,54,63,63,63,1,62,54,64,64,64,1,62,54,1,66,65,59,59,1,67,62,54,68,61,61,1,69,1,70,71,1,72,1,73,74,1,75,1,54,76,1,54,77,1,54,1,73,78,1,73,1,70,79,1,70,1,67,62,54,80,63,63,1,67,62,54,64,64,64,1,82,54,81,81,81,1,84,54,83,83,83,1,84,54,85,85,85,1,84,54,86,86,86,1,84,54,1,87,81,81,1,67,84,54,88,83,83,1,67,84,54,89,85,85,1,67,84,54,86,86,86,1,90,1,67,91,1,67,92,1,67,1,66,1,35,36,35,37,37,37,38,39,93,93,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,94,94,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,95,95,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,96,96,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,97,97,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,98,98,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,99,99,37,37,37,37,37,37,1,35,36,35,37,37,37,38,39,100,100,37,37,37,37,37,37,1,101,36,101,37,37,37,38,102,37,37,37,37,37,37,1,103,104,103,27,102,1,105,1,106,106,1,106,106,27,102,1,102,107,102,45,46,45,45,108,47,108,45,45,45,45,45,45,1,109,1,110,110,1,110,50,110,45,46,45,45,108,47,108,45,45,45,45,45,45,1,57,36,57,45,45,45,38,111,111,45,45,45,45,45,45,1,57,36,57,45,45,45,38,112,113,112,113,45,45,45,45,45,45,1,114,115,114,116,1,117,118,117,119,1,1,0];
_tsip_machine_parser_header_Session_Expires_trans_targs=[2,0,16,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,21,19,20,22,46,21,26,22,23,26,24,25,27,30,84,28,29,31,46,30,26,35,31,32,33,34,36,48,42,49,37,38,39,40,41,43,45,47,44,22,105,50,83,51,54,52,53,55,70,56,68,57,58,66,59,60,64,61,62,63,65,67,69,71,79,72,75,73,74,76,77,78,80,81,82,85,86,87,88,89,90,91,92,93,97,93,94,95,96,98,101,99,100,102,103,104,22,46,26,22,46,26];
_tsip_machine_parser_header_Session_Expires_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,3,0,3,0,0,0,0,0,0,1,1,0,0,9,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,1,0,0,0,0,0,7,7,7,5,5,5];
tsip_machine_parser_header_Session_Expires_start=1;tsip_machine_parser_header_Session_Expires_first_final=105;
tsip_machine_parser_header_Session_Expires_error=0;tsip_machine_parser_header_Session_Expires_en_main=1;
function tsip_header_Session_Expires(b,a){tsip_header.call(this,tsip_header_type_e.Session_Expires);this.i_delta_seconds=b;
this.b_refresher_uas=a}tsip_header_Session_Expires.prototype.toString=function(){if(this.i_delta_seconds>=0){return tsk_string_format("{0};refresher={1}",this.i_delta_seconds,this.b_refresher_uas?"uas":"uac")
}return null};tsip_header_Session_Expires.prototype.Parse=function(m){var e=0;var k=0;var v=m.length;
var h=v;var w=tsk_buff_str2ib(m);var u;var g=new tsip_header_Session_Expires(TSIP_SESSION_EXPIRES_DEFAULT_VALUE,false);
e=tsip_machine_parser_header_Session_Expires_start;var f,n,b,d,c,r,l;var o,j,a,q,t;var s;f=n=b=r=l=null;
o=0;j=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;if(o<=0){if(k==v){o=t;continue}if(e==0){o=s;
continue}}if(o<=j){b=_tsip_machine_parser_header_Session_Expires_key_offsets[e];n=_tsip_machine_parser_header_Session_Expires_index_offsets[e];
f=_tsip_machine_parser_header_Session_Expires_single_lengths[e];_break_match=false;do{if(f>0){_lower=b;
_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(w[k]<_tsip_machine_parser_header_Session_Expires_trans_keys[_mid]){_upper=_mid-1
}else{if(w[k]>_tsip_machine_parser_header_Session_Expires_trans_keys[_mid]){_lower=_mid+1}else{n+=(_mid-b);
_break_match=true;break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Session_Expires_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[k]<_tsip_machine_parser_header_Session_Expires_trans_keys[_mid]){_upper=_mid-2}else{if(w[k]>_tsip_machine_parser_header_Session_Expires_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Session_Expires_indicies[n];
e=_tsip_machine_parser_header_Session_Expires_trans_targs[n];if(_tsip_machine_parser_header_Session_Expires_trans_actions[n]!=0){r=_tsip_machine_parser_header_Session_Expires_trans_actions[n];
l=_tsip_machine_parser_header_Session_Expires_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_Session_Expires_actions[r-1]){case 0:u=k;
break;case 1:g.i_delta_seconds=tsk_ragel_parser_get_int(m,k,u);break;case 2:g.b_refresher_uas=true;break;
case 3:g.b_refresher_uas=false;break;case 4:tsk_ragel_add_param(m,k,u,g.ao_params);break;case 5:break
}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){}if(o<=s){break
}}if(e<105){tsk_utils_log_error("Failed to parse 'Session-Expires' header: "+m);return null}return g};
tsip_header_Subscription_State.prototype=Object.create(tsip_header.prototype);_tsip_machine_parser_header_Subscription_State_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6];
_tsip_machine_parser_header_Subscription_State_key_offsets=[0,0,2,4,6,8,10,12,14,16,18,20,22,24,25,27,29,31,33,35,38,55,56,58,74,92,96,97,99,102,123,124,126,146,165,170,171,173,177,196,197,199,218,219,221,224,232,233,235,239,240,246,264,271,279,287,295,297,304,313,315,318,320,323,325,328,331,332,335,336,339,340,349,358,366,374,382,390,392,398,407,416,425,427,430,433,434,435,456,477,498,519,540,561,580,585,586,588,592,611,612,614,633,639,660,683,704,725,746,765,770,771,773,777,796,797,799,818,836,857,878,897,918,939,960,981,1002,1021,1026,1027,1029,1033,1052,1053,1055,1074,1080];
_tsip_machine_parser_header_Subscription_State_trans_keys=[83,115,85,117,66,98,83,115,67,99,82,114,73,105,80,112,84,116,73,105,79,111,78,110,45,83,115,84,116,65,97,84,116,69,101,9,32,58,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,10,9,32,9,32,59,9,13,32,33,37,39,69,82,101,114,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,69,82,101,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,59,10,0,9,11,12,14,127,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,59,61,88,120,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,80,112,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,73,105,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,83,115,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,48,57,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,65,84,97,116,126,42,43,45,46,48,57,66,90,95,122,9,13,32,33,37,39,59,61,83,115,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,79,111,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,78,110,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,89,121,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,45,46,59,61,126,42,43,48,57,65,90,95,122,9,13,32,33,37,39,59,61,65,97,126,42,43,45,46,48,57,66,90,95,122,9,13,32,33,37,39,59,61,70,102,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,84,116,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,69,101,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,82,114,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,59,61,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,61,10,9,32,9,32,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,59,48,57,0];
_tsip_machine_parser_header_Subscription_State_single_lengths=[0,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,3,7,1,2,6,8,4,1,2,3,11,1,2,10,9,5,1,2,4,9,1,2,9,1,2,3,4,1,2,4,1,0,8,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,11,11,11,11,11,11,9,5,1,2,4,9,1,2,9,4,11,13,11,11,11,9,5,1,2,4,9,1,2,9,8,11,11,11,11,11,11,11,11,9,5,1,2,4,9,1,2,9,4,0];
_tsip_machine_parser_header_Subscription_State_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,5,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,5,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,5,5,5,5,5,5,5,0,0,0,0,5,0,0,5,1,5,5,5,5,5,5,0,0,0,0,5,0,0,5,5,5,5,4,5,5,5,5,5,5,0,0,0,0,5,0,0,5,1,0];
_tsip_machine_parser_header_Subscription_State_index_offsets=[0,0,3,6,9,12,15,18,21,24,27,30,33,36,38,41,44,47,50,53,57,70,72,75,87,101,106,108,111,115,132,134,137,153,168,174,176,179,184,199,201,204,219,221,224,228,235,237,240,245,247,251,265,270,276,282,288,291,296,303,305,308,310,313,315,318,321,323,326,328,331,333,340,347,353,359,365,371,374,378,385,392,399,401,404,407,409,411,428,445,462,479,496,513,528,534,536,539,544,559,561,564,579,585,602,621,638,655,672,687,693,695,698,703,718,720,723,738,752,769,786,802,819,836,853,870,887,902,908,910,913,918,933,935,938,953,959];
_tsip_machine_parser_header_Subscription_State_indicies=[0,0,1,2,2,1,3,3,1,4,4,1,5,5,1,6,6,1,7,7,1,8,8,1,9,9,1,10,10,1,11,11,1,12,12,1,13,1,14,14,1,15,15,1,16,16,1,17,17,1,18,18,1,18,18,19,1,19,20,19,21,21,21,21,21,21,21,21,21,1,22,1,23,23,1,23,23,21,21,21,21,21,21,21,21,21,1,24,25,24,26,26,26,27,26,26,26,26,26,26,1,28,29,28,30,1,31,1,32,32,1,32,32,30,1,30,33,30,34,34,34,35,36,35,36,34,34,34,34,34,34,1,37,1,38,38,1,38,38,34,34,34,35,36,35,36,34,34,34,34,34,34,1,39,40,39,41,41,41,42,43,41,41,41,41,41,41,1,44,45,44,30,43,1,46,1,47,47,1,47,47,30,43,1,43,48,43,49,50,49,49,51,49,49,49,49,49,49,1,52,1,53,53,1,53,54,53,49,50,49,49,51,49,49,49,49,49,49,1,55,1,56,56,1,56,56,50,1,50,57,58,59,50,50,1,60,1,50,50,1,61,40,61,42,1,62,1,50,50,50,1,61,40,61,49,49,49,42,49,49,49,49,49,49,1,64,63,63,63,1,66,58,65,65,65,1,66,58,67,67,67,1,66,58,68,68,68,1,66,58,1,70,69,63,63,1,71,66,58,72,65,65,1,73,1,74,75,1,76,1,77,78,1,79,1,58,80,1,58,81,1,58,1,77,82,1,77,1,74,83,1,74,1,71,66,58,84,67,67,1,71,66,58,68,68,68,1,86,58,85,85,85,1,88,58,87,87,87,1,88,58,89,89,89,1,88,58,90,90,90,1,88,58,1,91,85,85,1,71,88,58,92,87,87,1,71,88,58,93,89,89,1,71,88,58,90,90,90,1,94,1,71,95,1,71,96,1,71,1,70,1,39,40,39,41,41,41,42,43,97,97,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,98,98,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,99,99,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,100,100,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,101,101,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,102,102,41,41,41,41,41,41,1,103,40,103,41,41,41,42,104,41,41,41,41,41,41,1,105,106,105,30,104,1,107,1,108,108,1,108,108,30,104,1,104,109,104,49,50,49,49,51,49,49,49,110,49,49,1,111,1,112,112,1,112,54,112,49,50,49,49,51,49,49,49,110,49,49,1,113,114,113,116,115,1,39,40,39,41,41,41,42,43,117,117,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,118,119,118,119,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,120,120,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,121,121,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,122,122,41,41,41,41,41,41,1,123,40,123,41,41,41,42,124,41,41,41,41,41,41,1,125,126,125,30,124,1,127,1,128,128,1,128,128,30,124,1,124,129,124,130,50,130,130,51,130,130,130,130,130,130,1,131,1,132,132,1,132,54,132,130,50,130,130,51,130,130,130,130,130,130,1,133,134,133,135,135,135,136,135,135,135,135,135,135,1,39,40,39,41,41,41,42,43,137,137,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,138,138,41,41,41,41,41,41,1,39,40,39,41,41,41,139,41,42,43,41,41,41,41,41,1,39,40,39,41,41,41,42,43,140,140,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,141,141,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,142,142,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,143,143,41,41,41,41,41,41,1,39,40,39,41,41,41,42,43,144,144,41,41,41,41,41,41,1,145,40,145,41,41,41,42,146,41,41,41,41,41,41,1,147,148,147,30,146,1,149,1,150,150,1,150,150,30,146,1,146,151,146,49,50,49,49,51,49,49,49,152,49,49,1,153,1,154,154,1,154,54,154,49,50,49,49,51,49,49,49,152,49,49,1,155,156,155,158,157,1,1,0];
_tsip_machine_parser_header_Subscription_State_trans_targs=[2,0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,24,22,23,25,49,24,29,25,26,29,27,28,30,33,87,103,31,32,34,49,33,29,38,34,35,36,37,39,51,45,52,40,41,42,43,44,46,48,50,47,25,136,53,86,54,57,55,56,58,73,59,71,60,61,69,62,63,67,64,65,66,68,70,72,74,82,75,78,76,77,79,80,81,83,84,85,88,89,90,91,92,93,94,98,94,95,96,97,99,102,100,101,25,49,102,29,104,105,118,106,107,108,109,113,109,110,111,112,114,117,115,116,25,49,117,29,119,120,121,122,123,124,125,126,127,131,127,128,129,130,132,135,133,134,25,49,135,29];
_tsip_machine_parser_header_Subscription_State_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,3,0,3,0,0,0,0,0,0,1,1,1,0,0,11,11,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,1,0,0,7,7,0,7,0,0,0,0,0,0,11,0,0,0,0,0,0,1,0,0,5,5,0,5,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,1,0,0,9,9,0,9];
tsip_machine_parser_header_Subscription_State_start=1;tsip_machine_parser_header_Subscription_State_first_final=136;
tsip_machine_parser_header_Subscription_State_error=0;tsip_machine_parser_header_Subscription_State_en_main=1;
function tsip_header_Subscription_State(d,b,c,a){tsip_header.call(this,tsip_header_type_e.Subscription_State);
this.s_state=d;this.s_reason=b;this.i_expires=c;this.i_retry_after=a}tsip_header_Subscription_State.prototype.toString=function(){var a=tsk_string_format("{0}{1}{2}",this.s_state,this.s_reason?";reason=":"",this.s_reason?this.s_reason:"");
if(this.i_expires>=0){a+=tsk_string_format(";expires={0}",this.i_expires)}if(this.i_retry_after>=0){a+=tsk_string_format(";retry-after={0}",this.i_retry_after)
}return a};tsip_header_Subscription_State.prototype.Parse=function(m){var e=0;var k=0;var v=m.length;
var h=v;var w=tsk_buff_str2ib(m);var u;var g=new tsip_header_Subscription_State(null,null,-1,-1);e=tsip_machine_parser_header_Subscription_State_start;
var f,n,b,d,c,r,l;var o,j,a,q,t;var s;f=n=b=r=l=null;o=0;j=10;a=15;q=20;t=30;s=40;while(true){_trigger_goto=false;
if(o<=0){if(k==v){o=t;continue}if(e==0){o=s;continue}}if(o<=j){b=_tsip_machine_parser_header_Subscription_State_key_offsets[e];
n=_tsip_machine_parser_header_Subscription_State_index_offsets[e];f=_tsip_machine_parser_header_Subscription_State_single_lengths[e];
_break_match=false;do{if(f>0){_lower=b;_upper=b+f-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(w[k]<_tsip_machine_parser_header_Subscription_State_trans_keys[_mid]){_upper=_mid-1}else{if(w[k]>_tsip_machine_parser_header_Subscription_State_trans_keys[_mid]){_lower=_mid+1
}else{n+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=f;n+=f}f=_tsip_machine_parser_header_Subscription_State_range_lengths[e];
if(f>0){_lower=b;_upper=b+(f<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(w[k]<_tsip_machine_parser_header_Subscription_State_trans_keys[_mid]){_upper=_mid-2}else{if(w[k]>_tsip_machine_parser_header_Subscription_State_trans_keys[_mid+1]){_lower=_mid+2
}else{n+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}n+=f}}while(false);n=_tsip_machine_parser_header_Subscription_State_indicies[n];
e=_tsip_machine_parser_header_Subscription_State_trans_targs[n];if(_tsip_machine_parser_header_Subscription_State_trans_actions[n]!=0){r=_tsip_machine_parser_header_Subscription_State_trans_actions[n];
l=_tsip_machine_parser_header_Subscription_State_actions[r];r+=1;while(l>0){l-=1;r+=1;switch(_tsip_machine_parser_header_Subscription_State_actions[r-1]){case 0:u=k;
break;case 1:g.s_state=tsk_ragel_parser_get_string(m,k,u);break;case 2:g.s_reason=tsk_ragel_parser_get_string(m,k,u);
break;case 3:g.i_expires=tsk_ragel_parser_get_int(m,k,u);break;case 4:g.i_retry_after=tsk_ragel_parser_get_int(m,k,u);
break;case 5:tsk_ragel_add_param(m,k,u,g.ao_params);break;case 6:break}}}if(_trigger_goto){continue}}if(o<=q){if(e==0){o=s;
continue}k+=1;if(k!=v){o=j;continue}}if(o<=t){}if(o<=s){break}}if(e<136){tsk_utils_log_error("Failed to parse 'Subscription-State' header: "+m);
return null}return g};tsip_header_Via.prototype=Object.create(tsip_header.prototype);tsip_header_Via.prototype.__s_proto_name_default="SIP";
tsip_header_Via.prototype.__s_proto_version_default="2.0";_tsip_machine_parser_header_Via_actions=[0,1,0,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,13,1,14,1,16,2,1,0,2,4,15,2,5,15,2,7,15,2,8,15,2,9,15,2,10,15,2,11,15,2,12,13,2,13,15,2,14,15,3,12,13,15];
_tsip_machine_parser_header_Via_key_offsets=[0,0,2,7,10,27,28,30,46,62,66,67,69,72,89,90,92,108,124,128,129,131,134,151,152,154,170,187,197,198,200,209,217,224,232,238,252,258,259,261,266,271,272,274,278,285,290,291,293,297,324,325,327,353,371,377,378,380,385,404,405,407,426,427,429,432,440,441,443,448,449,455,472,479,487,495,503,505,512,521,523,526,528,531,533,536,539,540,543,544,547,548,557,566,574,582,590,598,600,606,615,624,633,635,638,641,642,643,663,683,703,723,743,761,767,768,770,775,794,795,797,816,833,853,873,893,911,917,918,920,925,944,945,947,966,983,1003,1023,1043,1063,1081,1087,1088,1090,1095,1116,1117,1119,1140,1161,1181,1202,1221,1234,1241,1252,1260,1267,1273,1292,1313,1332,1353,1372,1385,1398,1411,1432,1453,1474,1495,1516,1537,1544,1552,1560,1568,1570,1577,1586,1588,1591,1593,1596,1598,1601,1604,1605,1610,1613,1614,1617,1618,1627,1636,1644,1652,1660,1668,1670,1676,1685,1694,1703,1705,1708,1711,1712,1713,1735,1755,1775,1795,1815,1835,1855,1873,1879,1880,1882,1887,1913,1914,1916,1942,1955,1957,1960,1962,1965,1967,1974,1981,1986,1989,1990,1993,1994,2007,2020,2026,2033,2045,2057,2069,2081,2087,2093,2106,2119,2132,2134,2137,2140,2141,2153,2165,2177,2178,2198,2218,2238,2244,2250,2251,2253,2258,2263,2264,2266,2270,2277,2297,2317,2335,2341,2342,2344,2349,2368,2369,2371,2390,2397,2404,2409,2416,2428,2434,2442,2448,2456,2462,2476,2490,2504,2512,2520,2528,2536,2544,2552,2559,2567,2575,2583,2585,2592,2601,2603,2606,2608,2611,2613,2616,2619,2620,2626,2629,2630,2633,2634,2643,2652,2660,2668,2676,2684,2686,2692,2701,2710,2719,2721,2724,2727,2728,2729,2731];
_tsip_machine_parser_header_Via_trans_keys=[86,118,9,32,58,73,105,9,32,58,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,47,126,42,43,45,57,65,90,95,122,9,13,32,47,10,9,32,9,32,47,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,47,126,42,43,45,57,65,90,95,122,9,13,32,47,10,9,32,9,32,47,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,126,42,43,45,46,48,57,65,90,95,122,9,13,32,91,48,57,65,90,97,122,10,9,32,9,32,91,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,48,57,65,90,97,122,45,46,48,57,65,90,97,122,48,57,65,90,97,122,9,13,32,44,45,46,58,59,48,57,65,90,97,122,9,13,32,44,58,59,10,9,32,9,32,44,58,59,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,44,59,48,57,9,13,32,44,59,10,9,32,9,32,44,59,9,13,32,33,37,39,66,67,77,82,84,98,99,109,114,116,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,33,37,39,66,67,77,82,84,98,99,109,114,116,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,32,34,9,13,34,92,32,126,128,255,10,9,32,9,13,32,44,59,10,0,9,11,12,14,127,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,44,59,61,82,114,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,65,97,126,42,46,48,57,66,90,95,122,9,13,32,33,37,39,44,59,61,78,110,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,67,99,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,72,104,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,79,111,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,77,109,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,80,112,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,65,97,126,42,46,48,57,66,90,95,122,9,13,32,33,37,39,44,59,61,68,100,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,68,100,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,82,114,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,96,97,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,59,126,42,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,96,97,122,9,13,32,44,45,46,59,48,57,65,90,97,122,45,48,57,65,90,97,122,9,13,32,44,59,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,48,57,65,90,97,122,48,57,65,90,97,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,59,126,42,46,48,57,65,90,95,96,97,122,9,13,32,44,45,46,59,48,57,65,90,97,122,9,13,32,44,45,46,59,48,57,65,90,97,122,9,13,32,44,45,46,59,48,57,65,90,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,9,13,32,33,37,39,44,45,46,59,126,42,43,48,57,65,90,95,96,97,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,9,13,32,44,59,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,9,13,32,33,37,39,44,59,61,69,80,101,112,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,67,99,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,69,101,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,73,105,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,86,118,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,69,101,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,68,100,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,58,91,126,42,43,45,46,48,57,65,70,71,90,95,96,97,102,103,122,10,9,32,9,13,32,33,34,37,39,58,91,126,42,43,45,46,48,57,65,70,71,90,95,96,97,102,103,122,9,13,32,44,46,58,59,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,9,13,32,44,59,48,57,9,13,32,44,59,48,57,9,13,32,44,59,46,48,57,46,46,48,57,46,9,13,32,44,46,58,59,48,57,65,70,97,102,9,13,32,44,46,58,59,48,57,65,70,97,102,9,13,32,44,58,59,58,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,46,58,59,48,57,65,70,97,102,9,13,32,44,46,58,59,48,57,65,70,97,102,9,13,32,44,46,58,59,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,9,13,32,44,58,59,48,57,65,70,97,102,58,9,13,32,33,37,39,44,59,61,79,111,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,82,114,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,84,116,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,48,57,10,9,32,9,32,48,57,9,13,32,44,59,48,57,9,13,32,33,37,39,44,59,61,84,116,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,76,108,126,42,46,48,57,65,90,95,122,9,13,32,33,37,39,44,59,61,126,42,46,48,57,65,90,95,122,9,13,32,44,59,61,10,9,32,9,32,44,59,61,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,10,9,32,9,13,32,33,34,37,39,91,126,42,43,45,46,48,57,65,90,95,122,9,13,32,44,59,48,57,9,13,32,44,59,48,57,9,13,32,44,59,45,48,57,65,90,97,122,9,13,32,44,58,59,48,57,65,90,97,122,48,57,65,90,97,122,45,46,48,57,65,90,97,122,48,57,65,90,97,122,45,46,48,57,65,90,97,122,48,57,65,90,97,122,9,13,32,44,45,46,58,59,48,57,65,90,97,122,9,13,32,44,45,46,58,59,48,57,65,90,97,122,9,13,32,44,45,46,58,59,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,45,46,48,57,65,90,97,122,58,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,58,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,48,57,46,48,57,48,57,93,48,57,93,48,57,93,9,13,32,44,58,59,46,48,57,46,46,48,57,46,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,46,58,93,48,57,65,70,97,102,48,57,46,48,57,46,48,57,46,58,65,97,0];
_tsip_machine_parser_header_Via_single_lengths=[0,2,5,3,7,1,2,6,8,4,1,2,3,7,1,2,6,8,4,1,2,3,7,1,2,6,7,4,1,2,3,2,1,2,0,8,6,1,2,5,3,1,2,2,5,5,1,2,4,17,1,2,16,10,6,1,2,5,9,1,2,9,1,2,3,4,1,2,5,1,0,9,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,12,12,12,12,12,10,6,1,2,5,9,1,2,9,9,12,12,12,10,6,1,2,5,9,1,2,9,9,12,12,12,12,10,6,1,2,5,9,1,2,9,11,10,11,9,7,1,5,2,1,0,9,11,9,11,9,7,7,7,11,11,11,11,11,11,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,5,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,14,12,12,12,12,12,12,10,6,1,2,5,10,1,2,10,7,0,1,0,1,0,5,5,5,1,1,1,1,7,7,6,1,6,6,6,6,6,0,7,7,7,0,1,1,1,6,6,6,1,12,12,12,6,6,1,2,5,3,1,2,2,5,12,12,10,6,1,2,5,9,1,2,9,5,5,5,1,6,0,2,0,2,0,8,8,8,2,2,2,2,2,2,1,2,2,2,2,1,3,0,1,0,1,0,1,1,1,6,1,1,1,1,3,3,2,2,2,2,2,0,3,3,3,0,1,1,1,1,2,0];
_tsip_machine_parser_header_Via_range_lengths=[0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,5,3,0,0,3,3,3,3,3,3,0,0,0,0,1,0,0,1,1,0,0,0,0,5,0,0,5,4,0,0,0,0,5,0,0,5,0,0,0,2,0,0,0,0,3,4,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,4,4,4,4,4,4,0,0,0,0,5,0,0,5,4,4,4,4,4,0,0,0,0,5,0,0,5,4,4,4,4,4,4,0,0,0,0,6,0,0,6,5,5,5,5,3,3,3,3,3,3,5,5,5,5,5,3,3,3,5,5,5,5,5,5,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,4,4,4,4,4,4,4,4,0,0,0,0,8,0,0,8,3,1,1,1,1,1,1,1,0,1,0,1,0,3,3,0,3,3,3,3,3,0,3,3,3,3,1,1,1,0,3,3,3,0,4,4,4,0,0,0,0,0,1,0,0,1,1,4,4,4,0,0,0,0,5,0,0,5,1,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,1,1,1,1,1,1,1,0,0,1,0,1,0,3,3,3,3,3,3,0,3,3,3,3,1,1,1,0,0,0,0];
_tsip_machine_parser_header_Via_index_offsets=[0,0,3,9,13,26,28,31,43,56,61,63,66,70,83,85,88,100,113,118,120,123,127,140,142,145,157,170,178,180,183,190,196,201,207,211,223,230,232,235,241,246,248,251,255,262,268,270,273,278,301,303,306,328,343,350,352,355,361,376,378,381,396,398,401,405,412,414,417,423,425,429,443,448,454,460,466,469,474,481,483,486,488,491,493,496,499,501,504,506,509,511,518,525,531,537,543,549,552,556,563,570,577,579,582,585,587,589,606,623,640,657,674,689,696,698,701,707,722,724,727,742,756,773,790,807,822,829,831,834,840,855,857,860,875,889,906,923,940,957,972,979,981,984,990,1006,1008,1011,1027,1044,1060,1077,1092,1103,1108,1117,1123,1128,1132,1147,1164,1179,1196,1211,1222,1233,1244,1261,1278,1295,1312,1329,1346,1351,1357,1363,1369,1372,1377,1384,1386,1389,1391,1394,1396,1399,1402,1404,1410,1413,1415,1418,1420,1427,1434,1440,1446,1452,1458,1461,1465,1472,1479,1486,1488,1491,1494,1496,1498,1517,1534,1551,1568,1585,1602,1619,1634,1641,1643,1646,1652,1671,1673,1676,1695,1706,1708,1711,1713,1716,1718,1725,1732,1738,1741,1743,1746,1748,1759,1770,1777,1782,1792,1802,1812,1822,1829,1833,1844,1855,1866,1868,1871,1874,1876,1886,1896,1906,1908,1925,1942,1959,1966,1973,1975,1978,1984,1989,1991,1994,1998,2005,2022,2039,2054,2061,2063,2066,2072,2087,2089,2092,2107,2114,2121,2127,2132,2142,2146,2152,2156,2162,2166,2178,2190,2202,2208,2214,2220,2226,2232,2238,2243,2249,2255,2261,2264,2269,2276,2278,2281,2283,2286,2288,2291,2294,2296,2303,2306,2308,2311,2313,2320,2327,2333,2339,2345,2351,2354,2358,2365,2372,2379,2381,2384,2387,2389,2391,2394];
_tsip_machine_parser_header_Via_indicies=[0,0,1,2,2,3,4,4,1,2,2,3,1,3,5,3,6,6,6,6,6,6,6,6,6,1,7,1,8,8,1,8,8,6,6,6,6,6,6,6,6,6,1,9,10,9,11,11,11,12,11,11,11,11,11,1,13,14,13,15,1,16,1,17,17,1,17,17,15,1,15,18,15,19,19,19,19,19,19,19,19,19,1,20,1,21,21,1,21,21,19,19,19,19,19,19,19,19,19,1,22,23,22,24,24,24,25,24,24,24,24,24,1,26,27,26,28,1,29,1,30,30,1,30,30,28,1,28,31,28,32,32,32,32,32,32,32,32,32,1,33,1,34,34,1,34,34,32,32,32,32,32,32,32,32,32,1,35,36,35,37,37,37,37,37,37,37,37,37,1,38,39,38,42,40,41,41,1,43,1,44,44,1,44,44,42,40,41,41,1,45,46,47,48,48,1,45,48,48,48,1,45,49,48,48,48,1,48,50,50,1,51,52,51,53,54,55,56,57,50,50,50,1,58,59,58,3,60,61,1,62,1,63,63,1,63,63,3,60,61,1,60,64,60,65,1,66,1,67,67,1,67,67,65,1,68,69,68,70,72,71,1,73,74,73,3,61,1,75,1,76,76,1,76,76,3,61,1,61,77,61,78,78,78,79,80,81,82,83,79,80,81,82,83,78,78,78,78,78,78,1,84,1,85,85,1,85,85,78,78,78,79,80,81,82,83,79,80,81,82,83,78,78,78,78,78,78,1,86,87,86,88,88,88,89,90,91,88,88,88,88,88,1,92,93,92,3,61,91,1,94,1,95,95,1,95,95,3,61,91,1,91,96,91,97,98,97,97,99,97,97,97,97,97,97,1,100,1,101,101,1,101,102,101,97,98,97,97,99,97,97,97,97,97,97,1,103,1,104,104,1,104,104,98,1,98,105,106,107,98,98,1,108,1,98,98,1,109,87,109,89,90,1,110,1,98,98,98,1,109,87,109,97,97,97,89,90,97,97,97,97,97,1,112,111,111,111,1,114,106,113,113,113,1,114,106,115,115,115,1,114,106,116,116,116,1,114,106,1,118,117,111,111,1,119,114,106,120,113,113,1,121,1,122,123,1,124,1,125,126,1,127,1,106,128,1,106,129,1,106,1,125,130,1,125,1,122,131,1,122,1,119,114,106,132,115,115,1,119,114,106,116,116,116,1,134,106,133,133,133,1,136,106,135,135,135,1,136,106,137,137,137,1,136,106,138,138,138,1,136,106,1,139,133,133,1,119,136,106,140,135,135,1,119,136,106,141,137,137,1,119,136,106,138,138,138,1,142,1,119,143,1,119,144,1,119,1,118,1,86,87,86,88,88,88,89,90,91,145,145,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,146,146,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,147,147,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,148,148,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,149,149,88,88,88,88,88,1,150,87,150,88,88,88,89,90,151,88,88,88,88,88,1,152,153,152,3,61,151,1,154,1,155,155,1,155,155,3,61,151,1,151,156,151,157,98,157,157,99,157,157,157,157,157,157,1,158,1,159,159,1,159,102,159,157,98,157,157,99,157,157,157,157,157,157,1,160,161,160,162,162,162,163,164,162,162,162,162,162,1,86,87,86,88,88,88,89,90,91,165,165,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,166,166,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,167,167,88,88,88,88,88,1,168,87,168,88,88,88,89,90,169,88,88,88,88,88,1,170,171,170,3,61,169,1,172,1,173,173,1,173,173,3,61,169,1,169,174,169,175,98,175,175,99,175,175,175,175,175,175,1,176,1,177,177,1,177,102,177,175,98,175,175,99,175,175,175,175,175,175,1,178,179,178,180,180,180,181,182,180,180,180,180,180,1,86,87,86,88,88,88,89,90,91,183,183,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,184,184,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,185,185,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,186,186,88,88,88,88,88,1,187,87,187,88,88,88,89,90,188,88,88,88,88,88,1,189,190,189,3,61,188,1,191,1,192,192,1,192,192,3,61,188,1,188,193,188,97,98,97,97,196,97,97,97,194,195,97,195,1,197,1,198,198,1,198,102,198,97,98,97,97,196,97,97,97,194,195,97,195,1,109,87,109,97,97,97,89,199,200,90,97,97,201,202,97,202,1,109,87,109,97,97,97,89,199,90,97,97,202,202,97,202,1,109,87,109,97,97,97,89,199,203,90,97,97,202,202,97,202,1,109,87,109,97,97,97,89,90,97,97,202,204,97,204,1,205,206,205,207,208,209,210,204,204,204,1,208,204,204,204,1,205,206,205,207,210,211,204,204,1,212,213,211,211,211,1,212,211,211,211,1,211,204,204,1,109,87,109,97,97,97,89,90,97,97,214,204,97,204,1,109,87,109,97,97,97,89,199,215,90,97,97,216,202,97,202,1,109,87,109,97,97,97,89,90,97,97,217,204,97,204,1,109,87,109,97,97,97,89,199,218,90,97,97,219,202,97,202,1,109,87,109,97,97,97,89,90,97,97,220,204,97,204,1,205,206,205,207,212,213,210,221,211,211,1,205,206,205,207,212,213,210,222,211,211,1,205,206,205,207,212,213,210,211,211,211,1,109,87,109,97,97,97,89,199,218,90,97,97,223,202,97,202,1,109,87,109,97,97,97,89,199,218,90,97,97,202,202,97,202,1,109,87,109,97,97,97,89,199,215,90,97,97,224,202,97,202,1,109,87,109,97,97,97,89,199,215,90,97,97,202,202,97,202,1,109,87,109,97,97,97,89,199,200,90,97,97,225,202,97,202,1,109,87,109,97,97,97,89,199,200,90,97,97,202,202,97,202,1,227,226,226,226,1,229,230,228,228,228,1,229,230,231,231,231,1,229,230,232,232,232,1,229,230,1,234,233,226,226,1,235,229,230,236,228,228,1,237,1,238,239,1,240,1,241,242,1,243,1,230,244,1,230,245,1,230,1,205,206,205,207,210,1,241,246,1,241,1,238,247,1,238,1,235,229,230,248,231,231,1,235,229,230,232,232,232,1,250,230,249,249,249,1,252,230,251,251,251,1,252,230,253,253,253,1,252,230,254,254,254,1,252,230,1,255,249,249,1,235,252,230,256,251,251,1,235,252,230,257,253,253,1,235,252,230,254,254,254,1,258,1,235,259,1,235,260,1,235,1,234,1,86,87,86,88,88,88,89,90,91,261,262,261,262,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,263,263,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,264,264,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,265,265,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,266,266,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,267,267,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,268,268,88,88,88,88,88,1,269,87,269,88,88,88,89,90,270,88,88,88,88,88,1,271,272,271,3,61,270,1,273,1,274,274,1,274,274,3,61,270,1,270,275,270,97,98,97,97,277,99,97,97,97,276,278,97,97,278,97,1,279,1,280,280,1,280,102,280,97,98,97,97,277,99,97,97,97,276,278,97,97,278,97,1,281,282,281,283,284,286,287,285,288,288,1,289,1,290,291,1,292,1,293,294,1,295,1,281,282,281,283,287,296,1,281,282,281,283,287,297,1,281,282,281,283,287,1,293,298,1,293,1,290,299,1,290,1,281,282,281,283,284,286,287,300,301,301,1,281,282,281,283,284,286,287,302,302,302,1,281,282,281,283,286,287,1,304,303,305,305,1,281,282,281,283,307,287,306,306,306,1,281,282,281,283,309,287,308,308,308,1,281,282,281,283,309,287,310,310,310,1,281,282,281,283,309,287,311,311,311,1,281,282,281,283,309,287,1,312,306,306,1,281,282,281,283,284,309,287,313,308,308,1,281,282,281,283,284,309,287,314,310,310,1,281,282,281,283,284,309,287,311,311,311,1,315,1,284,316,1,284,317,1,284,1,281,282,281,283,286,287,288,288,288,1,281,282,281,283,286,287,301,301,301,1,281,282,281,283,286,287,302,302,302,1,304,1,86,87,86,88,88,88,89,90,91,318,318,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,319,319,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,320,320,88,88,88,88,88,1,321,322,321,323,324,325,1,326,327,326,3,61,325,1,328,1,329,329,1,329,329,3,61,325,1,325,330,325,331,1,332,1,333,333,1,333,333,331,1,334,335,334,336,338,337,1,86,87,86,88,88,88,89,90,91,339,339,88,88,88,88,88,1,86,87,86,88,88,88,89,90,91,340,340,88,88,88,88,88,1,341,87,341,88,88,88,89,90,342,88,88,88,88,88,1,343,344,343,3,61,342,1,345,1,346,346,1,346,346,3,61,342,1,342,347,342,97,98,97,97,99,97,97,97,348,97,97,1,349,1,350,350,1,350,102,350,97,98,97,97,99,97,97,97,348,97,97,1,351,352,351,353,355,354,1,351,352,351,353,355,356,1,351,352,351,353,355,1,54,50,50,50,1,51,52,51,53,56,57,48,50,50,1,357,50,50,1,45,358,359,48,48,1,360,50,50,1,45,361,362,48,48,1,363,50,50,1,51,52,51,53,45,49,56,57,364,48,48,1,51,52,51,53,45,49,56,57,365,48,48,1,51,52,51,53,45,49,56,57,48,48,48,1,45,361,366,48,48,1,45,361,48,48,48,1,45,358,367,48,48,1,45,358,48,48,48,1,45,46,368,48,48,1,45,46,48,48,48,1,370,369,369,369,1,372,373,371,371,371,1,372,373,374,374,374,1,372,373,375,375,375,1,372,373,1,377,376,369,369,1,378,372,373,379,371,371,1,380,1,381,382,1,383,1,384,385,1,386,1,373,387,1,373,388,1,373,1,51,52,51,53,56,57,1,384,389,1,384,1,381,390,1,381,1,378,372,373,391,374,374,1,378,372,373,375,375,375,1,393,373,392,392,392,1,395,373,394,394,394,1,395,373,396,396,396,1,395,373,397,397,397,1,395,373,1,398,392,392,1,378,395,373,399,394,394,1,378,395,373,400,396,396,1,378,395,373,397,397,397,1,401,1,378,402,1,378,403,1,378,1,377,1,2,2,1,1,0];
_tsip_machine_parser_header_Via_trans_targs=[2,0,3,4,337,5,8,6,7,9,10,8,13,9,10,13,11,12,14,17,15,16,18,19,17,22,18,19,22,20,21,23,26,24,25,27,28,26,27,28,31,35,301,29,30,32,287,299,33,34,35,36,69,4,285,286,40,49,36,37,40,49,38,39,41,44,42,43,45,69,4,44,49,45,46,47,48,50,53,107,122,135,208,271,51,52,54,69,53,4,49,58,54,55,56,57,59,71,65,72,60,61,62,63,64,66,68,70,67,45,338,73,106,74,77,75,76,78,93,79,91,80,81,89,82,83,87,84,85,86,88,90,92,94,102,95,98,96,97,99,100,101,103,104,105,108,109,110,111,112,113,117,113,114,115,116,118,121,119,120,45,69,121,4,49,123,124,125,126,130,126,127,128,129,131,134,132,133,45,69,134,4,49,136,137,138,139,140,144,140,141,142,143,145,148,152,172,146,147,149,158,170,150,151,152,45,69,4,153,154,49,155,156,157,159,160,168,161,162,166,163,164,165,167,169,171,173,207,174,177,187,175,176,178,194,179,192,180,181,190,182,183,188,184,185,186,189,191,193,195,203,196,199,197,198,200,201,202,204,205,206,209,258,210,211,212,213,214,215,216,220,216,217,218,219,221,224,257,254,222,223,45,69,4,225,237,240,49,255,226,227,235,228,229,233,230,231,232,234,236,238,256,239,224,241,254,242,250,243,246,244,245,247,248,249,251,252,253,259,260,261,262,69,4,49,266,262,263,264,265,267,270,268,269,45,69,4,270,49,272,273,274,278,274,275,276,277,279,282,280,281,45,69,4,283,49,284,288,289,297,290,291,295,292,293,294,296,298,300,302,336,303,306,316,304,305,307,323,308,321,309,310,319,311,312,317,313,314,315,318,320,322,324,332,325,328,326,327,329,330,331,333,334,335];
_tsip_machine_parser_header_Via_trans_actions=[0,0,0,0,0,0,29,0,0,3,3,0,3,0,0,0,0,0,0,1,0,0,5,5,0,5,0,0,0,0,0,0,1,0,0,11,11,0,0,0,1,1,1,0,0,0,0,0,0,0,0,32,32,32,0,0,7,7,0,0,0,0,0,0,0,1,0,0,35,35,35,0,9,0,0,0,0,0,1,1,1,1,1,1,0,0,59,59,0,59,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,1,0,0,47,47,0,47,19,0,0,0,59,0,0,0,0,0,0,1,0,0,50,50,0,50,21,0,0,0,0,59,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,41,41,41,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,1,1,1,0,0,44,44,44,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,23,0,0,0,0,0,0,1,0,0,62,62,62,0,53,0,0,59,0,0,0,0,0,0,1,0,0,38,38,38,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
tsip_machine_parser_header_Via_start=1;tsip_machine_parser_header_Via_first_final=338;tsip_machine_parser_header_Via_error=0;
tsip_machine_parser_header_Via_en_main=1;function tsip_header_Via(b,d,e,a,c){tsip_header.call(this,tsip_header_type_e.Via);
this.s_branch=null;this.s_host=a;this.i_port=c;this.s_comp=null;this.s_sigcomp_id=null;this.s_received=null;
this.s_maddr=null;this.s_proto_name=b;this.s_proto_version=d;this.s_transport=e;this.i_rport=-1;this.i_ttl=-1;
this.is_transport_reliable=function(){return tsk_string_iequals(this.s_transport,"UDP")};this.is_transport_unreliable=function(){return !this.is_transport_reliable()
}}tsip_header_Via.prototype.toString=function(){var a=(this.s_host&&tsk_string_contains(this.s_host,this.s_host.length,":"));
return tsk_string_format("{0}/{1}/{2} {3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}",this.s_proto_name?this.s_proto_name:"SIP",this.s_proto_version?this.s_proto_version:"2.0",this.s_transport?this.s_transport:"UDP",a?"[":"",this.s_host?this.s_host:"127.0.0.1",a?"]":"",this.i_port>0?":":"",this.i_port>0?this.i_port:"",this.s_maddr?";maddr=":"",this.s_maddr?this.s_maddr:"",this.s_sigcomp_id?";sigcomp-id=":"",this.s_sigcomp_id?this.s_sigcomp_id:"",this.s_comp?";comp=":"",this.s_comp?this.s_comp:"",this.i_rport>=0?(this.i_rport>0?";rport=":";rport"):"",this.i_rport>0?this.i_rport:"",this.i_ttl>=0?(this.i_ttl>0?";ttl=":";ttl"):"",this.i_ttl>0?this.i_ttl:"",this.s_received?";received=":"",this.s_received?this.s_received:"",this.s_branch?";branch=":"",this.s_branch?this.s_branch:"")
};tsip_header_Via.prototype.Parse=function(n){var e=0;var l=0;var w=n.length;var j=w;var x=tsk_buff_str2ib(n);
var v;var g=new Array();var f=null;e=tsip_machine_parser_header_Via_start;var h,o,b,d,c,s,m;var q,k,a,r,u;
var t;h=o=b=s=m=null;q=0;k=10;a=15;r=20;u=30;t=40;while(true){_trigger_goto=false;if(q<=0){if(l==w){q=u;
continue}if(e==0){q=t;continue}}if(q<=k){b=_tsip_machine_parser_header_Via_key_offsets[e];o=_tsip_machine_parser_header_Via_index_offsets[e];
h=_tsip_machine_parser_header_Via_single_lengths[e];_break_match=false;do{if(h>0){_lower=b;_upper=b+h-1;
while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);if(x[l]<_tsip_machine_parser_header_Via_trans_keys[_mid]){_upper=_mid-1
}else{if(x[l]>_tsip_machine_parser_header_Via_trans_keys[_mid]){_lower=_mid+1}else{o+=(_mid-b);_break_match=true;
break}}}if(_break_match){break}b+=h;o+=h}h=_tsip_machine_parser_header_Via_range_lengths[e];if(h>0){_lower=b;
_upper=b+(h<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);if(x[l]<_tsip_machine_parser_header_Via_trans_keys[_mid]){_upper=_mid-2
}else{if(x[l]>_tsip_machine_parser_header_Via_trans_keys[_mid+1]){_lower=_mid+2}else{o+=((_mid-b)>>1);
_break_match=true;break}}}if(_break_match){break}o+=h}}while(false);o=_tsip_machine_parser_header_Via_indicies[o];
e=_tsip_machine_parser_header_Via_trans_targs[o];if(_tsip_machine_parser_header_Via_trans_actions[o]!=0){s=_tsip_machine_parser_header_Via_trans_actions[o];
m=_tsip_machine_parser_header_Via_actions[s];s+=1;while(m>0){m-=1;s+=1;switch(_tsip_machine_parser_header_Via_actions[s-1]){case 0:v=l;
break;case 1:if(!f){f=new tsip_header_Via(null,null,null,null,0)}break;case 2:f.s_proto_name=tsk_ragel_parser_get_string(n,l,v);
break;case 3:f.s_proto_version=tsk_ragel_parser_get_string(n,l,v);break;case 4:f.s_host=tsk_ragel_parser_get_string(n,l,v);
f.s_host=tsk_string_unquote(f.s_host,"[","]");break;case 5:f.i_port=tsk_ragel_parser_get_int(n,l,v);break;
case 6:f.s_transport=tsk_ragel_parser_get_string(n,l,v);break;case 7:f.i_ttl=tsk_ragel_parser_get_int(n,l,v);
break;case 8:f.s_maddr=tsk_ragel_parser_get_string(n,l,v);break;case 9:f.s_received=tsk_ragel_parser_get_string(n,l,v);
break;case 10:f.s_branch=tsk_ragel_parser_get_string(n,l,v);break;case 11:f.s_comp=tsk_ragel_parser_get_string(n,l,v);
break;case 12:f.i_rport=tsk_ragel_parser_get_int(n,l,v);break;case 13:if(f.i_rport<0){f.i_rport=0}break;
case 14:if(f){tsk_ragel_add_param(n,l,v,f.ao_params)}break;case 15:if(f){g.push(f);f=null}break;case 16:break
}}}if(_trigger_goto){continue}}if(q<=r){if(e==0){q=t;continue}l+=1;if(l!=w){q=k;continue}}if(q<=u){}if(q<=t){break
}}if(e<338){tsk_utils_log_error("Failed to parse 'Via' header: "+n);return null}return g};tsip_header_WWW_Authenticate.prototype=Object.create(tsip_header.prototype);
_tsip_machine_parser_header_WWW_Authenticate_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,2,0,6,2,0,7,2,0,8,2,0,11,2,0,12,2,5,0,2,6,0,2,7,0,2,8,0,2,12,0];
_tsip_machine_parser_header_WWW_Authenticate_key_offsets=[0,0,4,6,8,10,12,13,15,17,19,21,23,25,27,29,31,33,35,37,40,49,52,56,65,69,78,83,88,93,98,103,140,144,181,205,212,216,223,260,264,301,327,331,357,382,386,411,415,421,432,436,442,448,452,458,462,488,514,540,566,590,597,601,608,633,637,662,666,672,683,687,693,699,722,738,755,772,789,794,810,828,835,843,850,858,865,873,881,885,893,897,905,909,927,945,962,979,996,1013,1018,1033,1051,1069,1087,1094,1102,1110,1114,1118,1122,1148,1174,1200,1226,1252,1276,1283,1287,1294,1319,1323,1348,1352,1358,1369,1373,1379,1385,1389,1415,1441,1465,1472,1476,1483,1508,1512,1537,1541,1547,1558,1562,1567,1573,1577,1583,1609,1635,1661,1687,1711,1718,1722,1729,1754,1758,1783,1787,1793,1804,1808,1814,1820,1824,1850,1876,1902,1928,1952,1959,1963,1970,1999,2003,2032,2057,2082,2107,2132,2138,2163,2188,2192,2203,2208,2215,2228,2232,2245,2249,2262,2306,2310,2354,2385,2399,2403,2417,2448,2452,2483,2487,2499,2512,2525,2529,2535,2565,2589,2614,2639,2664,2677,2701,2727,2742,2758,2773,2789,2804,2820,2836,2848,2864,2876,2892,2904,2930,2956,2981,3006,3031,3056,3069,3092,3118,3144,3170,3185,3201,3217,3229,3241,3245,3278,3311,3344,3377,3410,3443,3476,3509,3540,3554,3558,3572,3603,3607,3638,3668,3672,3705,3738,3771,3804,3837,3868,3882,3886,3900,3931,3935,3966,3970,3982,3995,3999,4004,4017,4022,4035,4040,4051,4058,4102,4107,4151,4182,4196,4201,4215,4246,4251,4282,4287,4299,4329,4334,4359,4367,4372,4380,4418,4423,4461,4488,4493,4520,4545,4550,4575,4580,4586,4610,4617,4622,4629,4634,4661,4688,4715,4742,4767,4775,4780,4788,4813,4818,4843,4848,4854,4867,4871,4884,4888,4901,4945,4949,4993,5024,5038,5042,5056,5087,5091,5122,5126,5138,5151,5181,5194,5198,5222,5247,5272,5297,5310,5334,5360,5375,5391,5406,5422,5437,5453,5469,5481,5494,5510,5522,5538,5550,5576,5602,5627,5652,5677,5702,5715,5738,5764,5790,5816,5831,5847,5863,5875,5887,5891,5924,5957,5990,6023,6056,6089,6122,6155,6186,6200,6204,6218,6249,6253,6284,6314,6318,6351,6384,6417,6450,6483,6514,6528,6532,6546,6577,6581,6612,6616,6628,6641,6645,6678,6711,6744,6777,6808,6822,6826,6840,6871,6875,6906,6910,6922,6935,6939,6972,7005,7038,7071,7104,7135,7149,7153,7167,7198,7202,7233,7237,7249,7262,7275,7279,7292,7336,7340,7384,7415,7429,7433,7447,7478,7482,7513,7517,7529,7542,7572,7576,7600,7625,7650,7675,7688,7712,7738,7753,7769,7784,7800,7815,7831,7847,7859,7872,7888,7900,7916,7928,7954,7980,8005,8030,8055,8080,8093,8116,8142,8168,8194,8209,8225,8241,8253,8265,8269,8302,8335,8368,8401,8434,8467,8500,8533,8564,8578,8582,8596,8627,8631,8662,8692,8696,8729,8762,8795,8828,8861,8892,8906,8910,8924,8955,8959,8990,8994,9006,9019,9023,9056,9089,9122,9155,9186,9200,9204,9218,9249,9253,9284,9288,9300,9313,9317,9350,9383,9416,9449,9482,9513,9527,9531,9545,9576,9580,9611,9615,9627,9640,9644,9677,9710,9741,9755,9759,9773,9804,9808,9839,9843,9855,9868,9881,9886,9899,9943,9948,9992,10023,10037,10042,10056,10087,10092,10123,10128,10140,10170,10175,10200,10208,10213,10221,10259,10264,10302,10329,10334,10361,10386,10391,10416,10421,10427,10451,10458,10463,10470,10475,10502,10529,10556,10583,10608,10616,10621,10629,10654,10659,10684,10689,10695,10712,10730,10748,10766,10772,10789,10808,10816,10825,10833,10842,10850,10859,10868,10873,10880,10889,10894,10903,10908,10927,10946,10964,10982,11000,11018,11024,11040,11059,11078,11097,11105,11114,11123,11128,11133,11138,11165,11192,11219,11246,11273,11298,11306,11311,11319,11344,11349,11374,11379,11385,11398,11402,11415,11420,11447,11474,11499,11507,11512,11520,11545,11550,11575,11580,11607,11634,11661,11688,11713,11721,11726,11734,11759,11764,11789,11794,11800,11813,11817,11830,11834,11847,11891,11895,11939,11970,11984,11988,12002,12033,12037,12068,12072,12084,12097,12127,12140,12144,12168,12193,12218,12243,12256,12280,12306,12321,12337,12352,12368,12383,12399,12415,12427,12440,12456,12468,12484,12496,12522,12548,12573,12598,12623,12648,12661,12684,12710,12736,12762,12777,12793,12809,12821,12833,12837,12870,12903,12936,12969,13002,13035,13068,13101,13132,13146,13150,13164,13195,13199,13230,13260,13264,13297,13330,13363,13396,13429,13460,13474,13478,13492,13523,13527,13558,13562,13574,13587,13591,13624,13657,13690,13723,13754,13768,13772,13786,13817,13821,13852,13856,13868,13881,13885,13918,13951,13984,14017,14050,14081,14095,14099,14113,14144,14148,14179,14183,14195,14208,14212,14245,14278,14309,14323,14327,14341,14372,14376,14407,14411,14423,14436,14440,14473,14506,14539,14572,14603,14617,14621,14635,14666,14670,14701,14705,14717,14730,14734,14767,14800,14833,14866,14897,14911,14915,14929,14964,14968,15003,15035,15067,15099,15131,15144,15176,15208,15212,15217,15244,15271,15298,15325,15350,15358,15363,15371,15400,15405,15434,15460,15486,15512,15538,15545,15571,15597,15602,15629,15656,15683,15710,15735,15743,15748,15756,15781,15786,15811,15816,15822,15835,15848,15853,15866,15893,15920,15947,15974,16001,16026,16034,16039,16047,16072,16077,16102,16107,16113,16130,16148,16166,16184,16190,16207,16226,16234,16243,16251,16260,16268,16277,16286,16291,16298,16307,16312,16321,16326,16345,16364,16382,16400,16418,16436,16442,16458,16477,16496,16515,16523,16532,16541,16546,16551,16556,16583,16610,16635,16643,16648,16656,16681,16686,16711,16716,16722,16735,16748,16753,16766,16771,16798,16825,16852,16879,16904,16912,16917,16925,16950,16955,16980,16985,16991,16996,17023,17050,17077,17104,17129,17137,17142,17150,17179,17184,17213,17239,17265,17291,17317,17324,17350,17376,17381,17386,17413,17440,17467,17494,17521,17548,17575,17600,17608,17613,17621,17646,17651,17676,17700,17705,17729,17754,17779,17804,17817,17841,17867,17882,17898,17913,17929,17944,17960,17976,17988,18001,18017,18029,18045,18057,18083,18109,18134,18159,18184,18209,18222,18245,18271,18297,18323,18338,18354,18370,18382,18394,18399,18432,18465,18498,18531,18564,18597,18630,18663,18694,18708,18713,18727,18758,18763,18794,18824,18829,18862,18895,18928,18961,18994,19025,19039,19044,19058,19089,19094,19125,19130,19142,19147,19180,19213,19246,19279,19310,19324,19329,19343,19374,19379,19410,19415,19427,19432,19465,19498,19531,19564,19597,19628,19642,19647,19661,19692,19697,19728,19733,19745,19750,19783,19816,19847,19861,19866,19880,19911,19916,19947,19952,19985,20018,20051,20084,20115,20129,20134,20148,20179,20184,20215,20220,20232,20237,20270,20303,20336,20369,20400,20414,20419,20433,20468,20473,20508,20540,20572,20604,20636,20649,20681,20713,20718,20722,20755,20788,20821,20854,20885,20899,20903,20917,20948,20952,20983,20987,20999,21012,21016,21049,21082,21115,21148,21179,21193,21197,21211,21246,21250,21285,21317,21349,21381,21413,21426,21458,21490,21494,21498,21531,21564,21595,21609,21613,21627,21658,21662,21693,21697,21709,21722,21726,21759,21792,21825,21858,21889,21903,21907,21921,21952,21956,21987,21991,22003,22016,22020,22053,22086,22119,22152,22183,22197,22201,22215,22250,22254,22289,22321,22353,22385,22417,22430,22462,22494,22498,22503,22530,22557,22584,22611,22636,22644,22649,22657,22682,22687,22712,22717,22744,22771,22798,22825,22852,22879,22906,22931,22939,22944,22952,22977,22982,23007,23031,23036,23060,23085,23110,23135,23148,23172,23198,23213,23229,23244,23260,23275,23291,23307,23319,23332,23348,23360,23376,23388,23414,23440,23465,23490,23515,23540,23553,23576,23602,23628,23654,23669,23685,23701,23713,23725,23730,23763,23796,23829,23862,23895,23928,23961,23994,24025,24039,24044,24058,24089,24094,24125,24155,24160,24193,24226,24259,24292,24325,24356,24370,24375,24389,24420,24425,24456,24461,24494,24527,24560,24593,24624,24638,24643,24657,24688,24693,24724,24729,24741,24746,24779,24812,24845,24878,24911,24942,24956,24961,24975,25006,25011,25042,25047,25059,25064,25097,25130,25161,25175,25180,25194,25225,25230,25261,25266,25278,25283,25316,25349,25382,25415,25446,25460,25465,25479,25510,25515,25546,25551,25563,25568,25601,25634,25667,25700,25731,25745,25750,25764,25799,25804,25839,25871,25903,25935,25967,25980,26012,26044,26049,26053,26086,26119,26152,26185,26216,26230,26234,26248,26279,26283,26314,26318,26330,26334,26367,26400,26433,26466,26499,26530,26544,26548,26562,26593,26597,26628,26632,26644,26648,26681,26714,26745,26759,26763,26777,26808,26812,26843,26847,26859,26872,26876,26909,26942,26975,27008,27039,27053,27057,27071,27102,27106,27137,27141,27153,27157,27190,27223,27256,27289,27320,27334,27338,27352,27387,27391,27426,27458,27490,27522,27554,27567,27599,27631,27635,27639,27665,27691,27717,27743,27767,27774,27778,27785,27810,27814,27839,27843,27849,27860,27864,27890,27916,27942,27968,27994,28020,28046,28070,28077,28081,28088,28113,28117,28142,28165,28169,28195,28221,28247,28273,28299,28323,28330,28334,28341,28366,28370,28395,28399,28405,28416,28427,28432,28439,28452,28456,28469,28473,28486,28530,28534,28578,28609,28623,28627,28641,28672,28676,28707,28737,28750,28754,28778,28803,28828,28853,28866,28890,28916,28931,28947,28962,28978,28993,29009,29025,29037,29050,29066,29078,29094,29106,29132,29158,29183,29208,29233,29258,29271,29294,29320,29346,29372,29387,29403,29419,29431,29443,29447,29480,29513,29546,29579,29612,29645,29678,29711,29742,29756,29760,29774,29805,29809,29840,29870,29874,29907,29940,29973,30006,30039,30070,30084,30088,30102,30133,30137,30168,30172,30184,30197,30201,30234,30267,30300,30333,30364,30378,30382,30396,30427,30431,30462,30466,30499,30532,30565,30598,30631,30662,30676,30680,30694,30725,30729,30760,30764,30797,30830,30861,30875,30879,30893,30924,30928,30959,30963,30975,30988,30992,31025,31058,31091,31124,31155,31169,31173,31187,31218,31222,31253,31257,31290,31323,31356,31389,31420,31434,31438,31452,31487,31491,31526,31558,31590,31622,31654,31667,31699,31731,31735,31739,31765,31791,31815,31822,31826,31833,31858,31862,31887,31891,31897,31908,31919,31924,31931,31935,31940,31945,31950,31955,31960,31965,31969,31974,31976,31978,31981,31986,31991,31996,32001,32038,32043,32048,32053,32058,32095,32100,32105,32110,32115,32152,32157,32162,32167,32172,32209,32214,32219,32224,32228,32265,32270,32275,32280,32285,32322,32327,32332,32369,32375,32412,32449,32454,32459,32464,32469,32474,32511,32516,32521,32558,32563,32568,32573,32577,32583,32589,32595,32601,32607,32613,32651,32657,32663,32701,32707,32713,32719,32757,32763,32769,32775,32812,32849,32854,32859,32864,32869,32874,32911,32916,32921,32958,32963,32968,32973,33010,33015,33020,33025,33062,33067,33072,33077,33082,33087,33092,33097,33102,33139,33176,33181,33186,33223,33228,33233,33238,33275,33280,33285,33290,33327,33332,33337,33342,33379,33384,33389,33394,33400,33406,33412,33418,33424,33462,33468,33474,33512,33518,33524,33530,33568,33574,33580,33586,33624,33630,33636,33642,33679,33717,33723,33729,33767,33773,33779,33785,33822,33859,33864,33869,33874,33879,33884,33921,33926,33931,33968,33973,33978,33983,34020,34025,34030,34035,34072,34077,34082,34087,34124,34129,34134,34139,34176,34181,34186,34191,34228,34233,34238,34275,34313,34319,34325,34363,34369,34375,34381,34419,34425,34431,34437,34475,34481,34487,34493,34531,34569,34575,34581,34587,34625,34631,34637,34675,34713,34719,34725,34763,34801,34807,34813,34851,34857,34863,34869,34907,34913,34919,34925,34963,34969,34975,34981,35019,35025,35031,35069,35075,35081,35087,35125,35131,35137,35175,35212,35217,35222,35227,35264,35269,35274,35311,35348,35353,35358,35363,35400,35405,35410,35415,35452,35457,35462,35499,35537,35543,35549,35587,35593,35599,35637,35675,35681,35687,35725,35731,35737,35775,35781,35787,35793,35831,35837,35843,35849,35887,35893,35899,35905,35943,35949,35955,35961,35999,36005,36011,36049,36086,36091,36096,36101,36138,36143,36148,36153,36190,36195,36200,36205,36242,36247,36252,36257,36294,36299,36304,36341,36378,36383,36388,36393,36430,36435,36440,36477,36482,36487,36492,36498,36535,36572,36577,36582,36587,36592,36629,36634,36639,36676,36681,36686,36691,36728,36733,36738,36775,36780,36785,36822,36827,36832,36837,36874,36879,36884,36921,36926,36931,36968,37005,37010,37015,37020,37026];
_tsip_machine_parser_header_WWW_Authenticate_trans_keys=[80,87,112,119,82,114,79,111,88,120,89,121,45,65,97,85,117,84,116,72,104,69,101,78,110,84,116,73,105,67,99,65,97,84,116,69,101,9,32,58,9,13,32,66,68,98,100,0,65535,13,0,65535,10,13,0,65535,9,13,32,66,68,98,100,0,65535,10,13,0,65535,9,13,32,66,68,98,100,0,65535,13,65,97,0,65535,13,83,115,0,65535,13,73,105,0,65535,13,67,99,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,10,13,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,10,13,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,44,0,65535,9,13,32,44,0,65535,10,13,0,65535,9,13,32,44,0,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,67,99,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,9,13,32,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,13,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,65535,13,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,0,47,48,57,58,65535,13,93,0,47,48,57,58,65535,13,93,0,47,48,57,58,65535,13,93,0,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,58,93,0,65535,13,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,46,0,47,48,57,58,65535,13,46,0,65535,13,58,0,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,81,113,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,13,34,0,65535,10,13,34,0,65535,9,13,32,44,0,65535,10,13,0,65535,9,13,32,44,0,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,44,0,65535,10,13,0,127,128,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,83,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,0,65535,9,13,32,33,37,39,44,47,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,65535,10,13,34,0,127,128,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,10,13,0,127,128,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,13,34,0,65535,10,13,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,127,128,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,0,65535,10,13,34,0,65535,9,13,32,34,44,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,67,99,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,0,65535,10,13,34,0,65535,9,13,32,34,44,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,67,99,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,13,34,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,65535,13,34,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,0,47,48,57,58,65535,13,34,93,0,47,48,57,58,65535,13,34,93,0,47,48,57,58,65535,13,34,93,0,65535,9,13,32,34,44,0,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,65535,13,34,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,58,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,81,113,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,83,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,0,65535,9,13,32,33,34,37,39,44,47,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,81,113,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,13,34,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,65535,13,34,58,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,0,47,48,57,58,65535,13,34,93,0,47,48,57,58,65535,13,34,93,0,47,48,57,58,65535,13,34,93,0,65535,9,13,32,34,44,0,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,58,93,0,65535,13,34,0,47,48,57,58,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,46,58,93,0,47,48,57,59,64,65,70,71,96,97,102,103,65535,13,34,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,47,48,57,58,65535,13,34,46,0,65535,13,34,58,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,34,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,102,116,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,76,108,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,83,115,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,69,101,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,0,65535,9,13,32,33,34,37,39,44,47,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,85,117,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,71,103,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,72,104,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,71,103,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,72,104,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,34,44,61,0,65535,10,13,34,0,65535,9,13,32,34,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,34,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,34,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,34,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,34,0,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,71,103,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,82,114,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,84,116,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,72,104,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,9,13,32,33,37,39,44,47,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,77,109,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,65,97,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,73,105,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,78,110,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,65535,10,13,34,0,127,128,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,92,97,100,110,111,113,114,115,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,92,93,127,0,31,32,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,58,92,93,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,46,58,92,93,127,0,31,32,47,48,57,59,64,65,70,71,96,97,102,103,255,256,65535,9,13,34,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,47,48,57,58,255,256,65535,9,13,34,46,92,127,0,31,32,255,256,65535,9,13,34,58,92,127,0,31,32,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,71,92,103,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,72,92,104,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,73,92,105,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,78,92,110,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,67,92,99,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,81,92,113,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,79,92,111,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,80,92,112,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,34,92,127,0,31,33,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,77,92,109,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,92,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,61,84,92,116,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,61,92,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,10,13,0,65535,9,13,32,34,44,61,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,70,84,91,92,102,116,126,127,0,31,35,41,42,57,58,64,65,90,93,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,65,92,97,126,127,0,31,35,41,42,57,58,64,66,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,76,92,108,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,83,92,115,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,69,92,101,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,34,44,92,127,0,31,33,255,256,65535,9,13,32,33,34,37,39,44,47,82,92,114,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,9,13,32,33,34,37,39,44,47,85,92,117,126,127,0,31,35,41,42,57,58,64,65,90,91,94,95,122,123,255,256,65535,10,13,0,65535,10,13,0,65535,9,13,32,33,37,39,44,47,61,79,111,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,80,112,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,61,126,0,41,42,57,58,64,65,90,91,94,95,122,123,65535,9,13,32,44,61,0,65535,10,13,0,65535,9,13,32,44,61,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,33,34,37,39,44,47,91,126,0,41,42,57,58,64,65,90,92,94,95,122,123,65535,10,13,0,65535,9,13,32,34,0,65535,9,13,34,92,127,0,31,32,255,256,65535,9,13,34,92,127,0,31,32,255,256,65535,10,13,34,0,65535,10,13,34,0,127,128,65535,10,13,0,65535,13,73,105,0,65535,13,71,103,0,65535,13,69,101,0,65535,13,83,115,0,65535,13,84,116,0,65535,9,13,32,0,65535,10,13,0,65535,9,13,32,0,65535,87,119,87,119,13,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,13,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,13,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,34,0,65535,9,13,32,34,0,65535,9,13,32,33,34,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,0,65535,9,13,32,34,0,65535,9,13,32,33,37,39,44,47,65,68,78,79,81,82,83,97,100,110,111,113,114,115,126,0,41,42,57,58,64,66,90,91,94,95,122,123,65535,0];
_tsip_machine_parser_header_WWW_Authenticate_single_lengths=[0,4,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,3,7,1,2,7,2,7,3,3,3,3,3,23,2,23,10,5,2,5,23,2,23,12,2,12,11,2,11,2,4,5,2,4,4,2,4,2,12,12,12,12,10,5,2,5,11,2,11,2,4,5,2,4,2,9,2,3,3,3,3,2,4,1,2,1,2,1,2,2,2,2,2,2,2,4,4,3,3,3,3,3,1,4,4,4,1,2,2,2,2,2,12,12,12,12,12,10,5,2,5,11,2,11,2,4,5,2,4,2,2,12,12,10,5,2,5,11,2,11,2,4,5,2,3,4,2,4,12,12,12,12,10,5,2,5,11,2,11,2,4,5,2,4,2,2,12,12,12,12,10,5,2,5,15,2,15,11,11,11,11,4,11,11,2,5,3,3,7,2,7,2,7,26,2,26,13,8,2,8,13,2,13,2,6,7,7,2,2,12,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,2,15,15,15,15,15,15,15,15,13,8,2,8,13,2,13,12,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,3,7,3,7,3,5,3,26,3,26,13,8,3,8,13,3,13,3,6,12,3,11,6,3,6,24,3,24,13,3,13,11,3,11,3,4,10,5,3,5,3,13,13,13,13,11,6,3,6,11,3,11,3,4,7,2,7,2,7,26,2,26,13,8,2,8,13,2,13,2,6,7,12,7,2,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,2,15,15,15,15,15,15,15,15,13,8,2,8,13,2,13,12,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,7,2,7,26,2,26,13,8,2,8,13,2,13,2,6,7,12,2,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,2,15,15,15,15,15,15,15,15,13,8,2,8,13,2,13,12,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,13,8,2,8,13,2,13,2,6,7,7,3,7,26,3,26,13,8,3,8,13,3,13,3,6,12,3,11,6,3,6,24,3,24,13,3,13,11,3,11,3,4,10,5,3,5,3,13,13,13,13,11,6,3,6,11,3,11,3,4,3,4,4,4,4,3,5,2,3,2,3,2,3,3,3,5,3,3,3,3,5,5,4,4,4,4,4,2,5,5,5,2,3,3,3,3,3,13,13,13,13,13,11,6,3,6,11,3,11,3,4,7,2,7,3,13,13,11,6,3,6,11,3,11,3,13,13,13,13,11,6,3,6,11,3,11,3,4,7,2,7,2,7,26,2,26,13,8,2,8,13,2,13,2,6,7,12,7,2,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,2,15,15,15,15,15,15,15,15,13,8,2,8,13,2,13,12,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,17,2,17,14,14,14,14,7,14,14,2,3,13,13,13,13,11,6,3,6,15,3,15,12,12,12,12,5,12,12,3,13,13,13,13,11,6,3,6,11,3,11,3,4,7,7,3,7,13,13,13,13,13,11,6,3,6,11,3,11,3,4,3,4,4,4,4,3,5,2,3,2,3,2,3,3,3,5,3,3,3,3,5,5,4,4,4,4,4,2,5,5,5,2,3,3,3,3,3,13,13,11,6,3,6,11,3,11,3,4,7,7,3,7,3,13,13,13,13,11,6,3,6,11,3,11,3,4,3,13,13,13,13,11,6,3,6,15,3,15,12,12,12,12,5,12,12,3,3,13,13,13,13,13,13,13,11,6,3,6,11,3,11,10,3,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,3,15,15,15,15,15,15,15,15,13,8,3,8,13,3,13,12,3,15,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,13,8,3,8,13,3,13,3,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,13,8,3,8,17,3,17,14,14,14,14,7,14,14,3,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,17,2,17,14,14,14,14,7,14,14,2,2,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,17,2,17,14,14,14,14,7,14,14,2,3,13,13,13,13,11,6,3,6,11,3,11,3,13,13,13,13,13,13,13,11,6,3,6,11,3,11,10,3,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,3,15,15,15,15,15,15,15,15,13,8,3,8,13,3,13,12,3,15,15,15,15,15,13,8,3,8,13,3,13,3,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,13,8,3,8,13,3,13,3,6,3,15,15,15,15,13,8,3,8,17,3,17,14,14,14,14,7,14,14,3,2,15,15,15,15,13,8,2,8,13,2,13,2,6,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,2,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,6,2,15,15,15,15,13,8,2,8,17,2,17,14,14,14,14,7,14,14,2,2,12,12,12,12,10,5,2,5,11,2,11,2,4,5,2,12,12,12,12,12,12,12,10,5,2,5,11,2,11,9,2,12,12,12,12,12,10,5,2,5,11,2,11,2,4,5,5,3,3,7,2,7,2,7,26,2,26,13,8,2,8,13,2,13,12,7,2,6,7,7,7,7,6,8,5,6,5,6,5,6,6,6,7,6,6,6,6,8,8,7,7,7,7,7,5,8,8,8,5,6,6,6,6,2,15,15,15,15,15,15,15,15,13,8,2,8,13,2,13,12,2,15,15,15,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,15,15,15,15,15,13,8,2,8,13,2,13,2,15,15,13,8,2,8,13,2,13,2,6,7,2,15,15,15,15,13,8,2,8,13,2,13,2,15,15,15,15,13,8,2,8,17,2,17,14,14,14,14,7,14,14,2,2,12,12,10,5,2,5,11,2,11,2,4,5,5,3,3,2,3,3,3,3,3,3,2,3,2,2,1,3,3,3,3,23,3,3,3,3,23,3,3,3,3,23,3,3,3,3,23,3,3,3,2,23,3,3,3,3,23,3,3,23,4,23,23,3,3,3,3,3,23,3,3,23,3,3,3,2,4,4,4,4,4,4,24,4,4,24,4,4,4,24,4,4,4,23,23,3,3,3,3,3,23,3,3,23,3,3,3,23,3,3,3,23,3,3,3,3,3,3,3,3,23,23,3,3,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,3,4,4,4,4,4,24,4,4,24,4,4,4,24,4,4,4,24,4,4,4,23,24,4,4,24,4,4,4,23,23,3,3,3,3,3,23,3,3,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,23,24,4,4,24,4,4,4,24,4,4,4,24,4,4,4,24,24,4,4,4,24,4,4,24,24,4,4,24,24,4,4,24,4,4,4,24,4,4,4,24,4,4,4,24,4,4,24,4,4,4,24,4,4,24,23,3,3,3,23,3,3,23,23,3,3,3,23,3,3,3,23,3,3,23,24,4,4,24,4,4,24,24,4,4,24,4,4,24,4,4,4,24,4,4,4,24,4,4,4,24,4,4,4,24,4,4,24,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,3,23,3,3,23,23,3,3,3,23,3,3,23,3,3,3,4,23,23,3,3,3,3,23,3,3,23,3,3,3,23,3,3,23,3,3,23,3,3,3,23,3,3,23,3,3,23,23,3,3,3,4,23];
_tsip_machine_parser_header_WWW_Authenticate_range_lengths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,7,1,7,7,1,1,1,7,1,7,7,1,7,7,1,7,1,1,3,1,1,1,1,1,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,1,2,7,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,1,7,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,1,2,1,7,7,7,1,1,1,7,1,7,1,1,3,1,1,1,1,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,1,2,1,7,7,7,7,7,1,1,1,7,1,7,7,7,7,7,1,7,7,1,3,1,2,3,1,3,1,3,9,1,9,9,3,1,3,9,1,9,1,3,3,3,1,2,9,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,1,3,1,3,1,3,2,9,1,9,9,3,1,3,9,1,9,1,3,9,1,7,1,1,1,7,1,7,7,1,7,7,1,7,1,1,7,1,1,1,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,3,1,3,9,1,9,9,3,1,3,9,1,9,1,3,3,9,3,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,3,1,3,9,1,9,9,3,1,3,9,1,9,1,3,3,9,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,3,1,3,9,1,9,1,3,3,3,1,3,9,1,9,9,3,1,3,9,1,9,1,3,9,1,7,1,1,1,7,1,7,7,1,7,7,1,7,1,1,7,1,1,1,1,7,7,7,7,7,1,1,1,7,1,7,1,1,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,1,7,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,3,1,7,7,7,1,1,1,7,1,7,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,3,1,3,9,1,9,9,3,1,3,9,1,9,1,3,3,9,3,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,7,7,7,7,7,1,1,1,7,1,7,7,7,7,7,1,7,7,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,3,1,3,7,7,7,7,7,7,1,1,1,7,1,7,1,1,7,7,7,7,1,7,7,3,3,3,3,3,3,3,1,1,3,1,3,1,7,7,7,7,7,7,1,7,7,7,7,3,3,3,1,1,1,7,7,7,1,1,1,7,1,7,1,1,3,3,1,3,1,7,7,7,7,7,1,1,1,7,1,7,1,1,1,7,7,7,7,7,1,1,1,7,1,7,7,7,7,7,1,7,7,1,1,7,7,7,7,7,7,7,7,1,1,1,7,1,7,7,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,3,1,3,9,1,9,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,7,7,7,7,7,1,1,1,7,1,7,1,7,7,7,7,7,7,7,7,1,1,1,7,1,7,7,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,3,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,7,7,7,7,7,1,1,1,7,1,7,1,1,3,1,7,7,7,7,7,7,7,7,1,1,1,7,1,7,7,1,7,7,7,7,7,7,1,1,1,7,1,7,1,1,3,3,1,2,3,1,3,1,3,9,1,9,9,3,1,3,9,1,9,9,3,1,9,9,9,9,3,9,9,5,5,5,5,5,5,5,3,3,5,3,5,3,9,9,9,9,9,9,3,9,9,9,9,5,5,5,3,3,1,9,9,9,9,9,9,9,9,9,3,1,3,9,1,9,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,9,9,9,9,9,9,3,1,3,9,1,9,1,9,9,9,3,1,3,9,1,9,1,3,3,1,9,9,9,9,9,3,1,3,9,1,9,1,9,9,9,9,9,3,1,3,9,1,9,9,9,9,9,3,9,9,1,1,7,7,7,1,1,1,7,1,7,1,1,3,3,1,2,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,7,1,1,1,1,7,1,1,1,1,7,1,1,1,1,7,1,1,1,1,7,1,1,1,1,7,1,1,7,1,7,7,1,1,1,1,1,7,1,1,7,1,1,1,1,1,1,1,1,1,1,7,1,1,7,1,1,1,7,1,1,1,7,7,1,1,1,1,1,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,1,1,1,1,1,7,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,1,1,1,1,1,1,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,7,1,1,7,1,1,1,7,7,1,1,1,1,1,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,7,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,7,1,1,1,7,1,1,7,7,1,1,7,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,7,1,1,1,7,1,1,7,7,1,1,1,7,1,1,7,7,1,1,1,7,1,1,1,7,1,1,7,7,1,1,7,1,1,7,7,1,1,7,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,7,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,1,7,1,1,7,7,1,1,1,7,1,1,7,1,1,1,1,7,7,1,1,1,1,7,1,1,7,1,1,1,7,1,1,7,1,1,7,1,1,1,7,1,1,7,1,1,7,7,1,1,1,1,7];
_tsip_machine_parser_header_WWW_Authenticate_index_offsets=[0,0,5,8,11,14,17,19,22,25,28,31,34,37,40,43,46,49,52,55,59,68,71,75,84,88,97,102,107,112,117,122,153,157,188,206,213,217,224,255,259,290,310,314,334,353,357,376,380,386,395,399,405,411,415,421,425,445,465,485,505,523,530,534,541,560,564,583,587,593,602,606,612,617,634,644,655,666,677,682,692,704,709,715,720,726,731,737,743,747,753,757,763,767,779,791,802,813,824,835,840,849,861,873,885,890,896,902,906,910,914,934,954,974,994,1014,1032,1039,1043,1050,1069,1073,1092,1096,1102,1111,1115,1121,1126,1130,1150,1170,1188,1195,1199,1206,1225,1229,1248,1252,1258,1267,1271,1276,1282,1286,1292,1312,1332,1352,1372,1390,1397,1401,1408,1427,1431,1450,1454,1460,1469,1473,1479,1484,1488,1508,1528,1548,1568,1586,1593,1597,1604,1627,1631,1654,1673,1692,1711,1730,1736,1755,1774,1778,1787,1792,1798,1809,1813,1824,1828,1839,1875,1879,1915,1938,1950,1954,1966,1989,1993,2016,2020,2030,2041,2052,2056,2061,2083,2099,2116,2133,2150,2161,2177,2195,2206,2218,2229,2241,2252,2264,2276,2286,2298,2308,2320,2330,2348,2366,2383,2400,2417,2434,2445,2460,2478,2496,2514,2525,2537,2549,2559,2569,2573,2598,2623,2648,2673,2698,2723,2748,2773,2796,2808,2812,2824,2847,2851,2874,2896,2900,2925,2950,2975,3000,3025,3048,3060,3064,3076,3099,3103,3126,3130,3140,3151,3155,3160,3171,3176,3187,3192,3201,3207,3243,3248,3284,3307,3319,3324,3336,3359,3364,3387,3392,3402,3424,3429,3448,3456,3461,3469,3501,3506,3538,3559,3564,3585,3604,3609,3628,3633,3639,3657,3664,3669,3676,3681,3702,3723,3744,3765,3784,3792,3797,3805,3824,3829,3848,3853,3859,3870,3874,3885,3889,3900,3936,3940,3976,3999,4011,4015,4027,4050,4054,4077,4081,4091,4102,4124,4135,4139,4155,4172,4189,4206,4217,4233,4251,4262,4274,4285,4297,4308,4320,4332,4342,4353,4365,4375,4387,4397,4415,4433,4450,4467,4484,4501,4512,4527,4545,4563,4581,4592,4604,4616,4626,4636,4640,4665,4690,4715,4740,4765,4790,4815,4840,4863,4875,4879,4891,4914,4918,4941,4963,4967,4992,5017,5042,5067,5092,5115,5127,5131,5143,5166,5170,5193,5197,5207,5218,5222,5247,5272,5297,5322,5345,5357,5361,5373,5396,5400,5423,5427,5437,5448,5452,5477,5502,5527,5552,5577,5600,5612,5616,5628,5651,5655,5678,5682,5692,5703,5714,5718,5729,5765,5769,5805,5828,5840,5844,5856,5879,5883,5906,5910,5920,5931,5953,5957,5973,5990,6007,6024,6035,6051,6069,6080,6092,6103,6115,6126,6138,6150,6160,6171,6183,6193,6205,6215,6233,6251,6268,6285,6302,6319,6330,6345,6363,6381,6399,6410,6422,6434,6444,6454,6458,6483,6508,6533,6558,6583,6608,6633,6658,6681,6693,6697,6709,6732,6736,6759,6781,6785,6810,6835,6860,6885,6910,6933,6945,6949,6961,6984,6988,7011,7015,7025,7036,7040,7065,7090,7115,7140,7163,7175,7179,7191,7214,7218,7241,7245,7255,7266,7270,7295,7320,7345,7370,7395,7418,7430,7434,7446,7469,7473,7496,7500,7510,7521,7525,7550,7575,7598,7610,7614,7626,7649,7653,7676,7680,7690,7701,7712,7717,7728,7764,7769,7805,7828,7840,7845,7857,7880,7885,7908,7913,7923,7945,7950,7969,7977,7982,7990,8022,8027,8059,8080,8085,8106,8125,8130,8149,8154,8160,8178,8185,8190,8197,8202,8223,8244,8265,8286,8305,8313,8318,8326,8345,8350,8369,8374,8380,8391,8403,8415,8427,8433,8444,8457,8463,8470,8476,8483,8489,8496,8503,8508,8515,8522,8527,8534,8539,8552,8565,8577,8589,8601,8613,8619,8629,8642,8655,8668,8674,8681,8688,8693,8698,8703,8724,8745,8766,8787,8808,8827,8835,8840,8848,8867,8872,8891,8896,8902,8913,8917,8928,8933,8954,8975,8994,9002,9007,9015,9034,9039,9058,9063,9084,9105,9126,9147,9166,9174,9179,9187,9206,9211,9230,9235,9241,9252,9256,9267,9271,9282,9318,9322,9358,9381,9393,9397,9409,9432,9436,9459,9463,9473,9484,9506,9517,9521,9537,9554,9571,9588,9599,9615,9633,9644,9656,9667,9679,9690,9702,9714,9724,9735,9747,9757,9769,9779,9797,9815,9832,9849,9866,9883,9894,9909,9927,9945,9963,9974,9986,9998,10008,10018,10022,10047,10072,10097,10122,10147,10172,10197,10222,10245,10257,10261,10273,10296,10300,10323,10345,10349,10374,10399,10424,10449,10474,10497,10509,10513,10525,10548,10552,10575,10579,10589,10600,10604,10629,10654,10679,10704,10727,10739,10743,10755,10778,10782,10805,10809,10819,10830,10834,10859,10884,10909,10934,10959,10982,10994,10998,11010,11033,11037,11060,11064,11074,11085,11089,11114,11139,11162,11174,11178,11190,11213,11217,11240,11244,11254,11265,11269,11294,11319,11344,11369,11392,11404,11408,11420,11443,11447,11470,11474,11484,11495,11499,11524,11549,11574,11599,11622,11634,11638,11650,11677,11681,11708,11732,11756,11780,11804,11815,11839,11863,11867,11872,11893,11914,11935,11956,11975,11983,11988,11996,12019,12024,12047,12067,12087,12107,12127,12134,12154,12174,12179,12200,12221,12242,12263,12282,12290,12295,12303,12322,12327,12346,12351,12357,12368,12379,12384,12395,12416,12437,12458,12479,12500,12519,12527,12532,12540,12559,12564,12583,12588,12594,12605,12617,12629,12641,12647,12658,12671,12677,12684,12690,12697,12703,12710,12717,12722,12729,12736,12741,12748,12753,12766,12779,12791,12803,12815,12827,12833,12843,12856,12869,12882,12888,12895,12902,12907,12912,12917,12938,12959,12978,12986,12991,12999,13018,13023,13042,13047,13053,13064,13075,13080,13091,13096,13117,13138,13159,13180,13199,13207,13212,13220,13239,13244,13263,13268,13274,13279,13300,13321,13342,13363,13382,13390,13395,13403,13426,13431,13454,13474,13494,13514,13534,13541,13561,13581,13586,13591,13612,13633,13654,13675,13696,13717,13738,13757,13765,13770,13778,13797,13802,13821,13839,13844,13860,13877,13894,13911,13922,13938,13956,13967,13979,13990,14002,14013,14025,14037,14047,14058,14070,14080,14092,14102,14120,14138,14155,14172,14189,14206,14217,14232,14250,14268,14286,14297,14309,14321,14331,14341,14346,14371,14396,14421,14446,14471,14496,14521,14546,14569,14581,14586,14598,14621,14626,14649,14671,14676,14701,14726,14751,14776,14801,14824,14836,14841,14853,14876,14881,14904,14909,14919,14924,14949,14974,14999,15024,15047,15059,15064,15076,15099,15104,15127,15132,15142,15147,15172,15197,15222,15247,15272,15295,15307,15312,15324,15347,15352,15375,15380,15390,15395,15420,15445,15468,15480,15485,15497,15520,15525,15548,15553,15578,15603,15628,15653,15676,15688,15693,15705,15728,15733,15756,15761,15771,15776,15801,15826,15851,15876,15899,15911,15916,15928,15955,15960,15987,16011,16035,16059,16083,16094,16118,16142,16147,16151,16176,16201,16226,16251,16274,16286,16290,16302,16325,16329,16352,16356,16366,16377,16381,16406,16431,16456,16481,16504,16516,16520,16532,16559,16563,16590,16614,16638,16662,16686,16697,16721,16745,16749,16753,16778,16803,16826,16838,16842,16854,16877,16881,16904,16908,16918,16929,16933,16958,16983,17008,17033,17056,17068,17072,17084,17107,17111,17134,17138,17148,17159,17163,17188,17213,17238,17263,17286,17298,17302,17314,17341,17345,17372,17396,17420,17444,17468,17479,17503,17527,17531,17536,17557,17578,17599,17620,17639,17647,17652,17660,17679,17684,17703,17708,17729,17750,17771,17792,17813,17834,17855,17874,17882,17887,17895,17914,17919,17938,17956,17961,17977,17994,18011,18028,18039,18055,18073,18084,18096,18107,18119,18130,18142,18154,18164,18175,18187,18197,18209,18219,18237,18255,18272,18289,18306,18323,18334,18349,18367,18385,18403,18414,18426,18438,18448,18458,18463,18488,18513,18538,18563,18588,18613,18638,18663,18686,18698,18703,18715,18738,18743,18766,18788,18793,18818,18843,18868,18893,18918,18941,18953,18958,18970,18993,18998,19021,19026,19051,19076,19101,19126,19149,19161,19166,19178,19201,19206,19229,19234,19244,19249,19274,19299,19324,19349,19374,19397,19409,19414,19426,19449,19454,19477,19482,19492,19497,19522,19547,19570,19582,19587,19599,19622,19627,19650,19655,19665,19670,19695,19720,19745,19770,19793,19805,19810,19822,19845,19850,19873,19878,19888,19893,19918,19943,19968,19993,20016,20028,20033,20045,20072,20077,20104,20128,20152,20176,20200,20211,20235,20259,20264,20268,20293,20318,20343,20368,20391,20403,20407,20419,20442,20446,20469,20473,20483,20487,20512,20537,20562,20587,20612,20635,20647,20651,20663,20686,20690,20713,20717,20727,20731,20756,20781,20804,20816,20820,20832,20855,20859,20882,20886,20896,20907,20911,20936,20961,20986,21011,21034,21046,21050,21062,21085,21089,21112,21116,21126,21130,21155,21180,21205,21230,21253,21265,21269,21281,21308,21312,21339,21363,21387,21411,21435,21446,21470,21494,21498,21502,21522,21542,21562,21582,21600,21607,21611,21618,21637,21641,21660,21664,21670,21679,21683,21703,21723,21743,21763,21783,21803,21823,21841,21848,21852,21859,21878,21882,21901,21918,21922,21942,21962,21982,22002,22022,22040,22047,22051,22058,22077,22081,22100,22104,22110,22119,22128,22133,22139,22150,22154,22165,22169,22180,22216,22220,22256,22279,22291,22295,22307,22330,22334,22357,22379,22390,22394,22410,22427,22444,22461,22472,22488,22506,22517,22529,22540,22552,22563,22575,22587,22597,22608,22620,22630,22642,22652,22670,22688,22705,22722,22739,22756,22767,22782,22800,22818,22836,22847,22859,22871,22881,22891,22895,22920,22945,22970,22995,23020,23045,23070,23095,23118,23130,23134,23146,23169,23173,23196,23218,23222,23247,23272,23297,23322,23347,23370,23382,23386,23398,23421,23425,23448,23452,23462,23473,23477,23502,23527,23552,23577,23600,23612,23616,23628,23651,23655,23678,23682,23707,23732,23757,23782,23807,23830,23842,23846,23858,23881,23885,23908,23912,23937,23962,23985,23997,24001,24013,24036,24040,24063,24067,24077,24088,24092,24117,24142,24167,24192,24215,24227,24231,24243,24266,24270,24293,24297,24322,24347,24372,24397,24420,24432,24436,24448,24475,24479,24506,24530,24554,24578,24602,24613,24637,24661,24665,24669,24689,24709,24727,24734,24738,24745,24764,24768,24787,24791,24797,24806,24815,24820,24826,24830,24835,24840,24845,24850,24855,24860,24864,24869,24872,24875,24878,24883,24888,24893,24898,24929,24934,24939,24944,24949,24980,24985,24990,24995,25000,25031,25036,25041,25046,25051,25082,25087,25092,25097,25101,25132,25137,25142,25147,25152,25183,25188,25193,25224,25230,25261,25292,25297,25302,25307,25312,25317,25348,25353,25358,25389,25394,25399,25404,25408,25414,25420,25426,25432,25438,25444,25476,25482,25488,25520,25526,25532,25538,25570,25576,25582,25588,25619,25650,25655,25660,25665,25670,25675,25706,25711,25716,25747,25752,25757,25762,25793,25798,25803,25808,25839,25844,25849,25854,25859,25864,25869,25874,25879,25910,25941,25946,25951,25982,25987,25992,25997,26028,26033,26038,26043,26074,26079,26084,26089,26120,26125,26130,26135,26141,26147,26153,26159,26165,26197,26203,26209,26241,26247,26253,26259,26291,26297,26303,26309,26341,26347,26353,26359,26390,26422,26428,26434,26466,26472,26478,26484,26515,26546,26551,26556,26561,26566,26571,26602,26607,26612,26643,26648,26653,26658,26689,26694,26699,26704,26735,26740,26745,26750,26781,26786,26791,26796,26827,26832,26837,26842,26873,26878,26883,26914,26946,26952,26958,26990,26996,27002,27008,27040,27046,27052,27058,27090,27096,27102,27108,27140,27172,27178,27184,27190,27222,27228,27234,27266,27298,27304,27310,27342,27374,27380,27386,27418,27424,27430,27436,27468,27474,27480,27486,27518,27524,27530,27536,27568,27574,27580,27612,27618,27624,27630,27662,27668,27674,27706,27737,27742,27747,27752,27783,27788,27793,27824,27855,27860,27865,27870,27901,27906,27911,27916,27947,27952,27957,27988,28020,28026,28032,28064,28070,28076,28108,28140,28146,28152,28184,28190,28196,28228,28234,28240,28246,28278,28284,28290,28296,28328,28334,28340,28346,28378,28384,28390,28396,28428,28434,28440,28472,28503,28508,28513,28518,28549,28554,28559,28564,28595,28600,28605,28610,28641,28646,28651,28656,28687,28692,28697,28728,28759,28764,28769,28774,28805,28810,28815,28846,28851,28856,28861,28867,28898,28929,28934,28939,28944,28949,28980,28985,28990,29021,29026,29031,29036,29067,29072,29077,29108,29113,29118,29149,29154,29159,29164,29195,29200,29205,29236,29241,29246,29277,29308,29313,29318,29323,29329];
_tsip_machine_parser_header_WWW_Authenticate_indicies=[0,2,0,2,1,3,3,1,4,4,1,5,5,1,6,6,1,7,1,8,8,1,9,9,1,10,10,1,11,11,1,12,12,1,13,13,1,14,14,1,15,15,1,16,16,1,17,17,1,18,18,1,19,19,1,19,19,20,1,22,23,22,24,25,24,25,21,1,26,21,1,27,26,21,1,22,28,22,24,25,24,25,21,1,29,26,21,1,30,26,30,24,25,24,25,21,1,26,31,31,21,1,26,32,32,21,1,26,33,33,21,1,26,34,34,21,1,35,36,35,21,1,37,38,37,39,39,39,21,21,40,41,42,43,44,45,46,40,41,42,43,44,45,46,39,21,39,21,39,21,39,21,1,47,26,21,1,48,26,48,39,39,39,21,21,40,41,42,43,44,45,46,40,41,42,43,44,45,46,39,21,39,21,39,21,39,21,1,49,50,49,51,51,51,52,21,53,51,21,51,21,51,21,51,21,1,54,55,54,56,53,21,1,57,26,21,1,58,26,58,56,53,21,1,56,59,56,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,62,26,21,1,63,26,63,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,49,50,49,51,51,51,52,21,53,64,64,51,21,51,21,51,21,51,21,1,65,26,21,1,49,50,49,51,51,51,52,21,53,66,66,51,21,51,21,51,21,51,21,1,53,67,53,68,69,68,68,21,21,70,68,21,68,21,68,21,68,21,1,71,26,21,1,72,73,72,68,69,68,68,21,21,70,68,21,68,21,68,21,68,21,1,74,26,21,1,75,26,75,69,21,1,69,76,77,78,21,21,69,21,1,79,26,21,1,80,81,80,52,21,1,82,83,82,56,21,1,84,26,21,1,85,26,85,56,21,1,86,26,21,1,49,50,49,51,51,51,52,21,53,87,87,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,88,88,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,89,89,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,90,90,51,21,51,21,51,21,51,21,1,91,92,91,51,51,51,52,21,93,51,21,51,21,51,21,51,21,1,94,95,94,56,93,21,1,96,26,21,1,97,26,97,56,93,21,1,98,99,98,68,100,68,68,21,21,70,68,21,68,21,68,21,68,21,1,101,26,21,1,102,103,102,68,100,68,68,21,21,70,68,21,68,21,68,21,68,21,1,104,26,21,1,105,26,105,106,21,1,106,107,108,109,21,21,106,21,1,110,26,21,1,111,112,111,113,21,1,21,26,106,21,1,80,81,80,68,68,68,52,21,68,21,68,21,68,21,68,21,1,26,115,21,114,21,114,21,114,21,1,26,117,77,21,116,21,116,21,116,21,1,26,117,77,21,118,21,118,21,118,21,1,26,117,77,21,119,21,119,21,119,21,1,26,117,77,21,1,26,121,21,120,21,114,21,114,21,1,26,122,117,77,21,123,21,116,21,116,21,1,26,21,124,21,1,26,125,21,126,21,1,26,21,127,21,1,26,128,21,129,21,1,26,21,130,21,1,26,77,21,131,21,1,26,77,21,132,21,1,26,77,21,1,26,128,21,133,21,1,26,128,21,1,26,125,21,134,21,1,26,125,21,1,26,122,117,77,21,135,21,118,21,118,21,1,26,122,117,77,21,119,21,119,21,119,21,1,26,137,77,21,136,21,136,21,136,21,1,26,139,77,21,138,21,138,21,138,21,1,26,139,77,21,140,21,140,21,140,21,1,26,139,77,21,141,21,141,21,141,21,1,26,139,77,21,1,26,21,142,21,136,21,136,21,1,26,122,139,77,21,143,21,138,21,138,21,1,26,122,139,77,21,144,21,140,21,140,21,1,26,122,139,77,21,141,21,141,21,141,21,1,26,21,145,21,1,26,122,21,146,21,1,26,122,21,147,21,1,26,122,21,1,26,121,21,1,148,26,21,1,49,50,49,51,51,51,52,21,53,149,149,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,150,150,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,151,151,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,152,152,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,153,153,51,21,51,21,51,21,51,21,1,154,155,154,51,51,51,52,21,156,51,21,51,21,51,21,51,21,1,157,158,157,56,156,21,1,159,26,21,1,160,26,160,56,156,21,1,161,162,161,68,163,68,68,21,21,70,68,21,68,21,68,21,68,21,1,164,26,21,1,165,166,165,68,163,68,68,21,21,70,68,21,68,21,68,21,68,21,1,167,26,21,1,168,26,168,169,21,1,169,170,171,172,21,21,169,21,1,173,26,21,1,174,175,174,176,21,1,21,26,169,21,1,177,26,21,1,49,50,49,51,51,51,52,21,53,178,178,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,179,179,51,21,51,21,51,21,51,21,1,180,181,180,51,51,51,52,21,182,51,21,51,21,51,21,51,21,1,183,184,183,56,182,21,1,185,26,21,1,186,26,186,56,182,21,1,182,187,182,68,188,68,68,21,21,70,68,21,68,21,68,21,68,21,1,189,26,21,1,190,191,190,68,188,68,68,21,21,70,68,21,68,21,68,21,68,21,1,192,26,21,1,193,26,193,188,21,1,195,196,197,198,194,194,195,194,1,200,201,199,1,202,200,201,199,1,203,204,203,56,21,1,205,26,21,1,206,207,206,56,21,1,49,50,49,51,51,51,52,21,53,208,208,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,209,209,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,210,210,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,211,211,51,21,51,21,51,21,51,21,1,212,213,212,51,51,51,52,21,214,51,21,51,21,51,21,51,21,1,215,216,215,56,214,21,1,217,26,21,1,218,26,218,56,214,21,1,219,220,219,68,221,68,68,21,21,70,68,21,68,21,68,21,68,21,1,222,26,21,1,223,224,223,68,221,68,68,21,21,70,68,21,68,21,68,21,68,21,1,225,26,21,1,226,26,226,227,21,1,227,228,229,230,21,21,227,21,1,231,26,21,1,232,233,232,234,21,1,21,26,227,21,1,235,26,21,1,49,50,49,51,51,51,52,21,53,236,236,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,237,237,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,238,238,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,239,239,51,21,51,21,51,21,51,21,1,240,241,240,51,51,51,52,21,242,51,21,51,21,51,21,51,21,1,243,244,243,56,242,21,1,245,26,21,1,246,26,246,56,242,21,1,242,247,242,68,69,68,68,21,21,248,249,70,248,249,68,21,68,21,68,21,68,21,1,250,26,21,1,251,73,251,68,69,68,68,21,21,248,249,70,248,249,68,21,68,21,68,21,68,21,1,80,81,80,68,68,68,52,21,252,252,68,21,68,21,68,21,68,21,1,80,81,80,68,68,68,52,21,253,253,68,21,68,21,68,21,68,21,1,80,81,80,68,68,68,52,21,254,254,68,21,68,21,68,21,68,21,1,80,81,80,68,68,68,52,21,255,255,68,21,68,21,68,21,68,21,1,256,257,256,258,21,1,80,81,80,68,68,68,52,21,259,259,68,21,68,21,68,21,68,21,1,80,81,80,68,68,68,52,21,254,254,68,21,68,21,68,21,68,21,1,260,26,21,1,261,262,201,263,199,199,261,199,1,264,200,201,199,1,199,200,265,261,199,1,266,267,266,77,268,78,21,21,69,21,1,269,26,21,1,270,271,270,77,268,78,21,21,69,21,1,272,26,21,1,273,76,273,77,268,78,21,21,69,21,1,268,274,268,275,77,275,275,69,69,276,277,278,279,280,281,282,78,276,277,278,279,280,281,282,275,21,21,69,275,69,275,69,275,69,21,1,283,26,21,1,284,76,284,275,77,275,275,69,69,276,277,278,279,280,281,282,78,276,277,278,279,280,281,282,275,21,21,69,275,69,275,69,275,69,21,1,285,286,285,287,77,287,287,288,69,289,78,287,21,21,69,287,69,287,69,287,69,21,1,290,291,290,77,268,289,78,21,21,69,21,1,292,26,21,1,293,76,293,77,268,289,78,21,21,69,21,1,289,294,289,295,296,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,298,26,21,1,299,300,299,295,296,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,301,26,21,1,302,76,302,296,78,21,21,69,21,1,303,304,303,77,288,78,21,21,69,21,1,305,306,305,77,268,78,21,21,69,21,1,307,26,21,1,21,26,69,21,1,303,304,303,295,77,295,295,288,69,78,295,21,21,69,295,69,295,69,295,69,21,1,69,76,77,309,78,21,21,69,308,69,308,69,308,69,21,1,69,76,77,311,78,296,21,21,69,310,69,310,69,310,69,21,1,69,76,77,311,78,296,21,21,69,312,69,312,69,312,69,21,1,69,76,77,311,78,296,21,21,69,313,69,313,69,313,69,21,1,69,76,77,311,78,296,21,21,69,21,1,69,76,77,315,78,21,21,69,314,69,308,69,308,69,21,1,69,76,77,316,311,78,296,21,21,69,317,69,310,69,310,69,21,1,69,76,77,78,21,21,69,318,69,21,1,69,76,77,319,78,21,21,69,320,69,21,1,69,76,77,78,21,21,69,321,69,21,1,69,76,77,322,78,21,21,69,323,69,21,1,69,76,77,78,21,21,69,324,69,21,1,69,76,77,78,296,21,21,69,325,69,21,1,69,76,77,78,296,21,21,69,326,69,21,1,69,76,77,78,296,21,21,69,21,1,69,76,77,322,78,21,21,69,327,69,21,1,69,76,77,322,78,21,21,69,21,1,69,76,77,319,78,21,21,69,328,69,21,1,69,76,77,319,78,21,21,69,21,1,69,76,77,316,311,78,296,21,21,69,329,69,312,69,312,69,21,1,69,76,77,316,311,78,296,21,21,69,313,69,313,69,313,69,21,1,69,76,77,331,78,296,21,21,69,330,69,330,69,330,69,21,1,69,76,77,333,78,296,21,21,69,332,69,332,69,332,69,21,1,69,76,77,333,78,296,21,21,69,334,69,334,69,334,69,21,1,69,76,77,333,78,296,21,21,69,335,69,335,69,335,69,21,1,69,76,77,333,78,296,21,21,69,21,1,69,76,77,78,21,21,69,336,69,330,69,330,69,21,1,69,76,77,316,333,78,296,21,21,69,337,69,332,69,332,69,21,1,69,76,77,316,333,78,296,21,21,69,338,69,334,69,334,69,21,1,69,76,77,316,333,78,296,21,21,69,335,69,335,69,335,69,21,1,69,76,77,78,21,21,69,339,69,21,1,69,76,77,316,78,21,21,69,340,69,21,1,69,76,77,316,78,21,21,69,341,69,21,1,69,76,77,316,78,21,21,69,21,1,69,76,77,315,78,21,21,69,21,1,342,26,21,1,285,286,285,287,77,287,287,288,69,289,343,78,343,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,344,78,344,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,345,78,345,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,346,78,346,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,347,78,347,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,348,78,348,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,349,78,349,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,350,78,350,287,21,21,69,287,69,287,69,287,69,21,1,351,352,351,287,77,287,287,288,69,353,78,287,21,21,69,287,69,287,69,287,69,21,1,354,355,354,77,268,353,78,21,21,69,21,1,356,26,21,1,357,76,357,77,268,353,78,21,21,69,21,1,353,358,353,359,296,359,359,69,69,297,78,359,21,21,69,359,69,359,69,359,69,21,1,360,26,21,1,361,300,361,359,296,359,359,69,69,297,78,359,21,21,69,359,69,359,69,359,69,21,1,362,363,362,364,77,364,364,365,69,78,364,21,21,69,364,69,364,69,364,69,21,1,366,26,21,1,285,286,285,287,77,287,287,288,69,289,367,78,367,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,368,78,368,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,369,78,369,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,370,78,370,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,371,78,371,287,21,21,69,287,69,287,69,287,69,21,1,372,373,372,287,77,287,287,288,69,374,78,287,21,21,69,287,69,287,69,287,69,21,1,375,376,375,77,268,374,78,21,21,69,21,1,377,26,21,1,378,76,378,77,268,374,78,21,21,69,21,1,374,379,374,295,380,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,381,26,21,1,382,383,382,295,380,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,384,26,21,1,385,76,385,380,78,21,21,69,21,1,387,388,387,390,391,392,386,386,389,386,1,394,395,393,1,396,394,395,393,1,397,398,397,395,400,401,393,393,399,393,1,402,394,395,393,1,403,404,403,395,400,401,393,393,399,393,1,405,394,395,393,1,399,404,395,401,393,393,399,393,1,393,394,406,399,393,1,400,407,400,408,395,408,408,399,399,409,410,411,412,413,414,415,401,409,410,411,412,413,414,415,408,393,393,399,408,399,408,399,408,399,393,1,416,394,395,393,1,417,404,417,408,395,408,408,399,399,409,410,411,412,413,414,415,401,409,410,411,412,413,414,415,408,393,393,399,408,399,408,399,408,399,393,1,418,419,418,420,395,420,420,421,399,422,401,420,393,393,399,420,399,420,399,420,399,393,1,423,424,423,395,400,422,401,393,393,399,393,1,425,394,395,393,1,426,404,426,395,400,422,401,393,393,399,393,1,422,427,422,428,406,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,430,394,395,393,1,431,432,431,428,406,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,433,394,395,393,1,434,404,434,406,401,393,393,399,393,1,435,436,435,428,395,428,428,421,399,401,428,393,393,399,428,399,428,399,428,399,393,1,437,394,395,393,1,438,439,438,440,395,440,440,441,393,442,440,393,440,393,440,393,440,393,1,443,444,443,395,445,442,393,1,446,394,395,393,1,447,394,447,395,445,442,393,1,445,448,445,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,457,394,395,393,1,458,394,458,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,438,439,438,440,395,440,440,441,393,442,459,459,440,393,440,393,440,393,440,393,1,460,394,395,393,1,438,439,438,440,395,440,440,441,393,442,461,461,440,393,440,393,440,393,440,393,1,442,462,442,463,406,463,463,393,393,464,463,393,463,393,463,393,463,393,1,465,394,395,393,1,466,467,466,463,406,463,463,393,393,464,463,393,463,393,463,393,463,393,1,468,394,395,393,1,469,394,469,406,393,1,470,471,470,463,395,463,463,441,393,463,393,463,393,463,393,463,393,1,472,473,472,395,445,393,1,474,394,395,393,1,475,394,475,395,445,393,1,476,394,395,393,1,438,439,438,440,395,440,440,441,393,442,477,477,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,478,478,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,479,479,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,480,480,440,393,440,393,440,393,440,393,1,481,482,481,440,395,440,440,441,393,483,440,393,440,393,440,393,440,393,1,484,485,484,395,445,483,393,1,486,394,395,393,1,487,394,487,395,445,483,393,1,488,489,488,463,490,463,463,393,393,464,463,393,463,393,463,393,463,393,1,491,394,395,393,1,492,493,492,463,490,463,463,393,393,464,463,393,463,393,463,393,463,393,1,494,394,395,393,1,495,394,495,496,393,1,497,498,497,108,499,109,21,21,106,21,1,500,26,21,1,501,502,501,108,499,109,21,21,106,21,1,503,26,21,1,504,107,504,108,499,109,21,21,106,21,1,499,505,499,506,108,506,506,106,106,507,508,509,510,511,512,513,109,507,508,509,510,511,512,513,506,21,21,106,506,106,506,106,506,106,21,1,514,26,21,1,515,107,515,506,108,506,506,106,106,507,508,509,510,511,512,513,109,507,508,509,510,511,512,513,506,21,21,106,506,106,506,106,506,106,21,1,516,517,516,518,108,518,518,519,106,520,109,518,21,21,106,518,106,518,106,518,106,21,1,521,522,521,108,499,520,109,21,21,106,21,1,523,26,21,1,524,107,524,108,499,520,109,21,21,106,21,1,520,525,520,526,527,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,529,26,21,1,530,531,530,526,527,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,532,26,21,1,533,107,533,527,109,21,21,106,21,1,534,535,534,77,536,78,21,21,69,21,1,537,538,537,526,108,526,526,519,106,109,526,21,21,106,526,106,526,106,526,106,21,1,539,540,539,108,499,109,21,21,106,21,1,541,26,21,1,106,107,108,543,109,21,21,106,542,106,542,106,542,106,21,1,106,107,108,545,109,546,21,21,106,544,106,544,106,544,106,21,1,106,107,108,545,109,546,21,21,106,547,106,547,106,547,106,21,1,106,107,108,545,109,546,21,21,106,548,106,548,106,548,106,21,1,106,107,108,545,109,546,21,21,106,21,1,106,107,108,550,109,21,21,106,549,106,542,106,542,106,21,1,106,107,108,551,545,109,546,21,21,106,552,106,544,106,544,106,21,1,106,107,108,109,21,21,106,553,106,21,1,106,107,108,554,109,21,21,106,555,106,21,1,106,107,108,109,21,21,106,556,106,21,1,106,107,108,557,109,21,21,106,558,106,21,1,106,107,108,109,21,21,106,559,106,21,1,106,107,108,109,546,21,21,106,560,106,21,1,106,107,108,109,546,21,21,106,561,106,21,1,106,107,108,109,546,21,21,106,21,1,537,538,537,108,519,109,21,21,106,21,1,106,107,108,557,109,21,21,106,562,106,21,1,106,107,108,557,109,21,21,106,21,1,106,107,108,554,109,21,21,106,563,106,21,1,106,107,108,554,109,21,21,106,21,1,106,107,108,551,545,109,546,21,21,106,564,106,547,106,547,106,21,1,106,107,108,551,545,109,546,21,21,106,548,106,548,106,548,106,21,1,106,107,108,566,109,546,21,21,106,565,106,565,106,565,106,21,1,106,107,108,568,109,546,21,21,106,567,106,567,106,567,106,21,1,106,107,108,568,109,546,21,21,106,569,106,569,106,569,106,21,1,106,107,108,568,109,546,21,21,106,570,106,570,106,570,106,21,1,106,107,108,568,109,546,21,21,106,21,1,106,107,108,109,21,21,106,571,106,565,106,565,106,21,1,106,107,108,551,568,109,546,21,21,106,572,106,567,106,567,106,21,1,106,107,108,551,568,109,546,21,21,106,573,106,569,106,569,106,21,1,106,107,108,551,568,109,546,21,21,106,570,106,570,106,570,106,21,1,106,107,108,109,21,21,106,574,106,21,1,106,107,108,551,109,21,21,106,575,106,21,1,106,107,108,551,109,21,21,106,576,106,21,1,106,107,108,551,109,21,21,106,21,1,106,107,108,550,109,21,21,106,21,1,577,26,21,1,516,517,516,518,108,518,518,519,106,520,578,109,578,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,579,109,579,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,580,109,580,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,581,109,581,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,582,109,582,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,583,109,583,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,584,109,584,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,585,109,585,518,21,21,106,518,106,518,106,518,106,21,1,586,587,586,518,108,518,518,519,106,588,109,518,21,21,106,518,106,518,106,518,106,21,1,589,590,589,108,499,588,109,21,21,106,21,1,591,26,21,1,592,107,592,108,499,588,109,21,21,106,21,1,588,593,588,594,527,594,594,106,106,528,109,594,21,21,106,594,106,594,106,594,106,21,1,595,26,21,1,596,531,596,594,527,594,594,106,106,528,109,594,21,21,106,594,106,594,106,594,106,21,1,597,598,597,599,108,599,599,600,106,109,599,21,21,106,599,106,599,106,599,106,21,1,601,26,21,1,516,517,516,518,108,518,518,519,106,520,602,109,602,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,603,109,603,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,604,109,604,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,605,109,605,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,606,109,606,518,21,21,106,518,106,518,106,518,106,21,1,607,608,607,518,108,518,518,519,106,609,109,518,21,21,106,518,106,518,106,518,106,21,1,610,611,610,108,499,609,109,21,21,106,21,1,612,26,21,1,613,107,613,108,499,609,109,21,21,106,21,1,609,614,609,526,615,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,616,26,21,1,617,618,617,526,615,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,619,26,21,1,620,107,620,615,109,21,21,106,21,1,621,622,621,390,623,392,386,386,389,386,1,624,26,21,1,516,517,516,518,108,518,518,519,106,520,625,109,625,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,626,109,626,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,627,109,627,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,628,109,628,518,21,21,106,518,106,518,106,518,106,21,1,629,630,629,518,108,518,518,519,106,631,109,518,21,21,106,518,106,518,106,518,106,21,1,632,633,632,108,499,631,109,21,21,106,21,1,634,26,21,1,635,107,635,108,499,631,109,21,21,106,21,1,636,637,636,526,638,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,639,26,21,1,640,641,640,526,638,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,642,26,21,1,643,107,643,644,109,21,21,106,21,1,645,646,645,108,647,109,21,21,106,21,1,648,26,21,1,516,517,516,518,108,518,518,519,106,520,649,109,649,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,650,109,650,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,651,109,651,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,652,109,652,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,653,109,653,518,21,21,106,518,106,518,106,518,106,21,1,654,655,654,518,108,518,518,519,106,656,109,518,21,21,106,518,106,518,106,518,106,21,1,657,658,657,108,499,656,109,21,21,106,21,1,659,26,21,1,660,107,660,108,499,656,109,21,21,106,21,1,661,662,661,526,663,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,664,26,21,1,665,666,665,526,663,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,667,26,21,1,668,107,668,669,109,21,21,106,21,1,670,671,670,171,672,172,21,21,169,21,1,673,674,673,171,675,172,21,21,169,21,1,676,26,21,1,677,170,677,171,675,172,21,21,169,21,1,675,678,675,679,171,679,679,169,169,680,681,682,683,684,685,686,172,680,681,682,683,684,685,686,679,21,21,169,679,169,679,169,679,169,21,1,687,26,21,1,688,170,688,679,171,679,679,169,169,680,681,682,683,684,685,686,172,680,681,682,683,684,685,686,679,21,21,169,679,169,679,169,679,169,21,1,689,690,689,691,171,691,691,692,169,693,172,691,21,21,169,691,169,691,169,691,169,21,1,694,695,694,171,675,693,172,21,21,169,21,1,696,26,21,1,697,170,697,171,675,693,172,21,21,169,21,1,693,698,693,699,700,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,702,26,21,1,703,704,703,699,700,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,705,26,21,1,706,170,706,700,172,21,21,169,21,1,707,708,707,77,709,78,21,21,69,21,1,710,711,710,699,171,699,699,692,169,172,699,21,21,169,699,169,699,169,699,169,21,1,712,26,21,1,169,170,171,714,172,21,21,169,713,169,713,169,713,169,21,1,169,170,171,716,172,717,21,21,169,715,169,715,169,715,169,21,1,169,170,171,716,172,717,21,21,169,718,169,718,169,718,169,21,1,169,170,171,716,172,717,21,21,169,719,169,719,169,719,169,21,1,169,170,171,716,172,717,21,21,169,21,1,169,170,171,721,172,21,21,169,720,169,713,169,713,169,21,1,169,170,171,722,716,172,717,21,21,169,723,169,715,169,715,169,21,1,169,170,171,172,21,21,169,724,169,21,1,169,170,171,725,172,21,21,169,726,169,21,1,169,170,171,172,21,21,169,727,169,21,1,169,170,171,728,172,21,21,169,729,169,21,1,169,170,171,172,21,21,169,730,169,21,1,169,170,171,172,717,21,21,169,731,169,21,1,169,170,171,172,717,21,21,169,732,169,21,1,169,170,171,172,717,21,21,169,21,1,710,711,710,171,692,172,21,21,169,21,1,169,170,171,728,172,21,21,169,733,169,21,1,169,170,171,728,172,21,21,169,21,1,169,170,171,725,172,21,21,169,734,169,21,1,169,170,171,725,172,21,21,169,21,1,169,170,171,722,716,172,717,21,21,169,735,169,718,169,718,169,21,1,169,170,171,722,716,172,717,21,21,169,719,169,719,169,719,169,21,1,169,170,171,737,172,717,21,21,169,736,169,736,169,736,169,21,1,169,170,171,739,172,717,21,21,169,738,169,738,169,738,169,21,1,169,170,171,739,172,717,21,21,169,740,169,740,169,740,169,21,1,169,170,171,739,172,717,21,21,169,741,169,741,169,741,169,21,1,169,170,171,739,172,717,21,21,169,21,1,169,170,171,172,21,21,169,742,169,736,169,736,169,21,1,169,170,171,722,739,172,717,21,21,169,743,169,738,169,738,169,21,1,169,170,171,722,739,172,717,21,21,169,744,169,740,169,740,169,21,1,169,170,171,722,739,172,717,21,21,169,741,169,741,169,741,169,21,1,169,170,171,172,21,21,169,745,169,21,1,169,170,171,722,172,21,21,169,746,169,21,1,169,170,171,722,172,21,21,169,747,169,21,1,169,170,171,722,172,21,21,169,21,1,169,170,171,721,172,21,21,169,21,1,748,26,21,1,689,690,689,691,171,691,691,692,169,693,749,172,749,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,750,172,750,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,751,172,751,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,752,172,752,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,753,172,753,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,754,172,754,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,755,172,755,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,756,172,756,691,21,21,169,691,169,691,169,691,169,21,1,757,758,757,691,171,691,691,692,169,759,172,691,21,21,169,691,169,691,169,691,169,21,1,760,761,760,171,675,759,172,21,21,169,21,1,762,26,21,1,763,170,763,171,675,759,172,21,21,169,21,1,759,764,759,765,700,765,765,169,169,701,172,765,21,21,169,765,169,765,169,765,169,21,1,766,26,21,1,767,704,767,765,700,765,765,169,169,701,172,765,21,21,169,765,169,765,169,765,169,21,1,768,769,768,770,171,770,770,771,169,172,770,21,21,169,770,169,770,169,770,169,21,1,772,26,21,1,689,690,689,691,171,691,691,692,169,693,773,172,773,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,774,172,774,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,775,172,775,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,776,172,776,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,777,172,777,691,21,21,169,691,169,691,169,691,169,21,1,778,779,778,691,171,691,691,692,169,780,172,691,21,21,169,691,169,691,169,691,169,21,1,781,782,781,171,675,780,172,21,21,169,21,1,783,26,21,1,784,170,784,171,675,780,172,21,21,169,21,1,780,785,780,699,786,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,787,26,21,1,788,789,788,699,786,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,790,26,21,1,791,170,791,786,172,21,21,169,21,1,792,793,792,390,794,392,386,386,389,386,1,795,26,21,1,689,690,689,691,171,691,691,692,169,693,796,172,796,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,797,172,797,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,798,172,798,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,799,172,799,691,21,21,169,691,169,691,169,691,169,21,1,800,801,800,691,171,691,691,692,169,802,172,691,21,21,169,691,169,691,169,691,169,21,1,803,804,803,171,675,802,172,21,21,169,21,1,805,26,21,1,806,170,806,171,675,802,172,21,21,169,21,1,807,808,807,699,809,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,810,26,21,1,811,812,811,699,809,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,813,26,21,1,814,170,814,815,172,21,21,169,21,1,816,817,816,108,818,109,21,21,106,21,1,819,26,21,1,689,690,689,691,171,691,691,692,169,693,820,172,820,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,821,172,821,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,822,172,822,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,823,172,823,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,824,172,824,691,21,21,169,691,169,691,169,691,169,21,1,825,826,825,691,171,691,691,692,169,827,172,691,21,21,169,691,169,691,169,691,169,21,1,828,829,828,171,675,827,172,21,21,169,21,1,830,26,21,1,831,170,831,171,675,827,172,21,21,169,21,1,832,833,832,699,834,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,835,26,21,1,836,837,836,699,834,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,838,26,21,1,839,170,839,840,172,21,21,169,21,1,841,842,841,171,843,172,21,21,169,21,1,844,26,21,1,689,690,689,691,171,691,691,692,169,693,845,172,845,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,846,172,846,691,21,21,169,691,169,691,169,691,169,21,1,847,848,847,691,171,691,691,692,169,849,172,691,21,21,169,691,169,691,169,691,169,21,1,850,851,850,171,675,849,172,21,21,169,21,1,852,26,21,1,853,170,853,171,675,849,172,21,21,169,21,1,849,854,849,699,855,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,856,26,21,1,857,858,857,699,855,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,859,26,21,1,860,170,860,855,172,21,21,169,21,1,861,862,861,197,863,198,194,194,195,194,1,864,865,864,201,866,263,199,199,261,199,1,867,200,201,199,1,868,262,868,201,866,263,199,199,261,199,1,866,869,866,870,201,870,870,261,261,871,872,873,874,875,876,877,263,871,872,873,874,875,876,877,870,199,199,261,870,261,870,261,870,261,199,1,878,200,201,199,1,879,262,879,870,201,870,870,261,261,871,872,873,874,875,876,877,263,871,872,873,874,875,876,877,870,199,199,261,870,261,870,261,870,261,199,1,880,881,880,882,201,882,882,883,261,884,263,882,199,199,261,882,261,882,261,882,261,199,1,885,886,885,201,866,884,263,199,199,261,199,1,887,200,201,199,1,888,262,888,201,866,884,263,199,199,261,199,1,884,889,884,890,265,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,892,200,201,199,1,893,894,893,890,265,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,895,200,201,199,1,896,262,896,265,263,199,199,261,199,1,897,898,897,890,201,890,890,883,261,263,890,199,199,261,890,261,890,261,890,261,199,1,899,200,201,199,1,900,901,900,902,201,902,902,903,199,904,902,199,902,199,902,199,902,199,1,905,906,905,201,907,904,199,1,908,200,201,199,1,909,200,909,201,907,904,199,1,907,910,907,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,919,200,201,199,1,920,200,920,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,900,901,900,902,201,902,902,903,199,904,921,921,902,199,902,199,902,199,902,199,1,922,200,201,199,1,900,901,900,902,201,902,902,903,199,904,923,923,902,199,902,199,902,199,902,199,1,904,924,904,925,265,925,925,199,199,926,925,199,925,199,925,199,925,199,1,927,200,201,199,1,928,929,928,925,265,925,925,199,199,926,925,199,925,199,925,199,925,199,1,930,200,201,199,1,931,200,931,265,199,1,932,933,932,925,201,925,925,903,199,925,199,925,199,925,199,925,199,1,934,935,934,201,907,199,1,936,200,201,199,1,937,200,937,201,907,199,1,938,200,201,199,1,900,901,900,902,201,902,902,903,199,904,939,939,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,940,940,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,941,941,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,942,942,902,199,902,199,902,199,902,199,1,943,944,943,902,201,902,902,903,199,945,902,199,902,199,902,199,902,199,1,946,947,946,201,907,945,199,1,948,200,201,199,1,949,200,949,201,907,945,199,1,950,951,950,925,952,925,925,199,199,926,925,199,925,199,925,199,925,199,1,953,200,201,199,1,954,955,954,925,952,925,925,199,199,926,925,199,925,199,925,199,925,199,1,956,200,201,199,1,957,200,957,958,199,1,200,201,960,199,959,199,959,199,959,199,1,200,201,962,963,199,961,199,961,199,961,199,1,200,201,962,963,199,964,199,964,199,964,199,1,200,201,962,963,199,965,199,965,199,965,199,1,200,201,962,963,199,1,200,201,967,199,966,199,959,199,959,199,1,200,201,968,962,963,199,969,199,961,199,961,199,1,200,201,199,970,199,1,200,201,971,199,972,199,1,200,201,199,973,199,1,200,201,974,199,975,199,1,200,201,199,976,199,1,200,201,963,199,977,199,1,200,201,963,199,978,199,1,200,201,963,199,1,932,933,932,201,903,199,1,200,201,974,199,979,199,1,200,201,974,199,1,200,201,971,199,980,199,1,200,201,971,199,1,200,201,968,962,963,199,981,199,964,199,964,199,1,200,201,968,962,963,199,965,199,965,199,965,199,1,200,201,983,963,199,982,199,982,199,982,199,1,200,201,985,963,199,984,199,984,199,984,199,1,200,201,985,963,199,986,199,986,199,986,199,1,200,201,985,963,199,987,199,987,199,987,199,1,200,201,985,963,199,1,200,201,199,988,199,982,199,982,199,1,200,201,968,985,963,199,989,199,984,199,984,199,1,200,201,968,985,963,199,990,199,986,199,986,199,1,200,201,968,985,963,199,987,199,987,199,987,199,1,200,201,199,991,199,1,200,201,968,199,992,199,1,200,201,968,199,993,199,1,200,201,968,199,1,200,201,967,199,1,994,200,201,199,1,900,901,900,902,201,902,902,903,199,904,995,995,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,996,996,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,997,997,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,998,998,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,999,999,902,199,902,199,902,199,902,199,1,1000,1001,1000,902,201,902,902,903,199,1002,902,199,902,199,902,199,902,199,1,1003,1004,1003,201,907,1002,199,1,1005,200,201,199,1,1006,200,1006,201,907,1002,199,1,1007,1008,1007,925,1009,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1010,200,201,199,1,1011,1012,1011,925,1009,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1013,200,201,199,1,1014,200,1014,1015,199,1,1016,1017,1016,171,675,172,21,21,169,21,1,1018,26,21,1,1019,1020,1019,171,675,172,21,21,169,21,1,1021,200,201,199,1,900,901,900,902,201,902,902,903,199,904,1022,1022,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1023,1023,902,199,902,199,902,199,902,199,1,1024,1025,1024,902,201,902,902,903,199,1026,902,199,902,199,902,199,902,199,1,1027,1028,1027,201,907,1026,199,1,1029,200,201,199,1,1030,200,1030,201,907,1026,199,1,1026,1031,1026,925,201,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1032,200,201,199,1,1033,200,1033,925,201,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1034,200,201,199,1,900,901,900,902,201,902,902,903,199,904,1035,1035,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1036,1036,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1037,1037,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1038,1038,902,199,902,199,902,199,902,199,1,1039,1040,1039,902,201,902,902,903,199,1041,902,199,902,199,902,199,902,199,1,1042,1043,1042,201,907,1041,199,1,1044,200,201,199,1,1045,200,1045,201,907,1041,199,1,1046,1047,1046,925,1048,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1049,200,201,199,1,1050,1051,1050,925,1048,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1052,200,201,199,1,1053,200,1053,1054,199,1,1055,1056,1055,229,1057,230,21,21,227,21,1,1058,26,21,1,1059,1060,1059,229,1057,230,21,21,227,21,1,1061,26,21,1,1062,228,1062,229,1057,230,21,21,227,21,1,1057,1063,1057,1064,229,1064,1064,227,227,1065,1066,1067,1068,1069,1070,1071,230,1065,1066,1067,1068,1069,1070,1071,1064,21,21,227,1064,227,1064,227,1064,227,21,1,1072,26,21,1,1073,228,1073,1064,229,1064,1064,227,227,1065,1066,1067,1068,1069,1070,1071,230,1065,1066,1067,1068,1069,1070,1071,1064,21,21,227,1064,227,1064,227,1064,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1079,1080,1079,229,1057,1078,230,21,21,227,21,1,1081,26,21,1,1082,228,1082,229,1057,1078,230,21,21,227,21,1,1078,1083,1078,1084,1085,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1087,26,21,1,1088,1089,1088,1084,1085,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1090,26,21,1,1091,228,1091,1085,230,21,21,227,21,1,1092,1093,1092,77,1094,78,21,21,69,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1097,1098,1097,229,1057,230,21,21,227,21,1,1099,26,21,1,227,228,229,1101,230,21,21,227,1100,227,1100,227,1100,227,21,1,227,228,229,1103,230,1104,21,21,227,1102,227,1102,227,1102,227,21,1,227,228,229,1103,230,1104,21,21,227,1105,227,1105,227,1105,227,21,1,227,228,229,1103,230,1104,21,21,227,1106,227,1106,227,1106,227,21,1,227,228,229,1103,230,1104,21,21,227,21,1,227,228,229,1108,230,21,21,227,1107,227,1100,227,1100,227,21,1,227,228,229,1109,1103,230,1104,21,21,227,1110,227,1102,227,1102,227,21,1,227,228,229,230,21,21,227,1111,227,21,1,227,228,229,1112,230,21,21,227,1113,227,21,1,227,228,229,230,21,21,227,1114,227,21,1,227,228,229,1115,230,21,21,227,1116,227,21,1,227,228,229,230,21,21,227,1117,227,21,1,227,228,229,230,1104,21,21,227,1118,227,21,1,227,228,229,230,1104,21,21,227,1119,227,21,1,227,228,229,230,1104,21,21,227,21,1,1095,1096,1095,229,1077,230,21,21,227,21,1,227,228,229,1115,230,21,21,227,1120,227,21,1,227,228,229,1115,230,21,21,227,21,1,227,228,229,1112,230,21,21,227,1121,227,21,1,227,228,229,1112,230,21,21,227,21,1,227,228,229,1109,1103,230,1104,21,21,227,1122,227,1105,227,1105,227,21,1,227,228,229,1109,1103,230,1104,21,21,227,1106,227,1106,227,1106,227,21,1,227,228,229,1124,230,1104,21,21,227,1123,227,1123,227,1123,227,21,1,227,228,229,1126,230,1104,21,21,227,1125,227,1125,227,1125,227,21,1,227,228,229,1126,230,1104,21,21,227,1127,227,1127,227,1127,227,21,1,227,228,229,1126,230,1104,21,21,227,1128,227,1128,227,1128,227,21,1,227,228,229,1126,230,1104,21,21,227,21,1,227,228,229,230,21,21,227,1129,227,1123,227,1123,227,21,1,227,228,229,1109,1126,230,1104,21,21,227,1130,227,1125,227,1125,227,21,1,227,228,229,1109,1126,230,1104,21,21,227,1131,227,1127,227,1127,227,21,1,227,228,229,1109,1126,230,1104,21,21,227,1128,227,1128,227,1128,227,21,1,227,228,229,230,21,21,227,1132,227,21,1,227,228,229,1109,230,21,21,227,1133,227,21,1,227,228,229,1109,230,21,21,227,1134,227,21,1,227,228,229,1109,230,21,21,227,21,1,227,228,229,1108,230,21,21,227,21,1,1135,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1136,230,1136,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1137,230,1137,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1138,230,1138,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1139,230,1139,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1140,230,1140,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1141,230,1141,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1142,230,1142,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1143,230,1143,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1144,1145,1144,1076,229,1076,1076,1077,227,1146,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1147,1148,1147,229,1057,1146,230,21,21,227,21,1,1149,26,21,1,1150,228,1150,229,1057,1146,230,21,21,227,21,1,1146,1151,1146,1152,1085,1152,1152,227,227,1086,230,1152,21,21,227,1152,227,1152,227,1152,227,21,1,1153,26,21,1,1154,1089,1154,1152,1085,1152,1152,227,227,1086,230,1152,21,21,227,1152,227,1152,227,1152,227,21,1,1155,1156,1155,1157,229,1157,1157,1158,227,230,1157,21,21,227,1157,227,1157,227,1157,227,21,1,1159,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1160,230,1160,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1161,230,1161,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1162,230,1162,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1163,230,1163,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1164,230,1164,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1165,1166,1165,1076,229,1076,1076,1077,227,1167,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1168,1169,1168,229,1057,1167,230,21,21,227,21,1,1170,26,21,1,1171,228,1171,229,1057,1167,230,21,21,227,21,1,1167,1172,1167,1084,1173,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1174,26,21,1,1175,1176,1175,1084,1173,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1177,26,21,1,1178,228,1178,1173,230,21,21,227,21,1,1179,1180,1179,390,1181,392,386,386,389,386,1,1182,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1183,230,1183,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1184,230,1184,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1185,230,1185,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1186,230,1186,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1187,1188,1187,1076,229,1076,1076,1077,227,1189,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1190,1191,1190,229,1057,1189,230,21,21,227,21,1,1192,26,21,1,1193,228,1193,229,1057,1189,230,21,21,227,21,1,1194,1195,1194,1084,1196,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1197,26,21,1,1198,1199,1198,1084,1196,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1200,26,21,1,1201,228,1201,1202,230,21,21,227,21,1,1203,1204,1203,108,1205,109,21,21,106,21,1,1206,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1207,230,1207,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1208,230,1208,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1209,230,1209,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1210,230,1210,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1211,230,1211,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1212,1213,1212,1076,229,1076,1076,1077,227,1214,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1215,1216,1215,229,1057,1214,230,21,21,227,21,1,1217,26,21,1,1218,228,1218,229,1057,1214,230,21,21,227,21,1,1219,1220,1219,1084,1221,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1222,26,21,1,1223,1224,1223,1084,1221,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1225,26,21,1,1226,228,1226,1227,230,21,21,227,21,1,1228,1229,1228,171,1230,172,21,21,169,21,1,1231,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1232,230,1232,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1233,230,1233,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1234,1235,1234,1076,229,1076,1076,1077,227,1236,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1237,1238,1237,229,1057,1236,230,21,21,227,21,1,1239,26,21,1,1240,228,1240,229,1057,1236,230,21,21,227,21,1,1236,1241,1236,1084,1242,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1243,26,21,1,1244,1245,1244,1084,1242,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1246,26,21,1,1247,228,1247,1242,230,21,21,227,21,1,1248,1249,1248,197,1250,198,194,194,195,194,1,1251,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1252,230,1252,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1253,230,1253,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1254,230,1254,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1255,230,1255,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1256,1257,1256,1076,229,1076,1076,1077,227,1258,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1259,1260,1259,229,1057,1258,230,21,21,227,21,1,1261,26,21,1,1262,228,1262,229,1057,1258,230,21,21,227,21,1,1263,1264,1263,1084,1265,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1266,26,21,1,1267,1268,1267,1084,1265,1084,1084,227,227,1086,230,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1269,26,21,1,1270,228,1270,1271,230,21,21,227,21,1,1272,1273,1272,229,1274,230,21,21,227,21,1,1275,26,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1276,230,1276,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1277,230,1277,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1278,230,1278,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1074,1075,1074,1076,229,1076,1076,1077,227,1078,1279,230,1279,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1280,1281,1280,1076,229,1076,1076,1077,227,1282,230,1076,21,21,227,1076,227,1076,227,1076,227,21,1,1283,1284,1283,229,1057,1282,230,21,21,227,21,1,1285,26,21,1,1286,228,1286,229,1057,1282,230,21,21,227,21,1,1282,1287,1282,1084,1085,1084,1084,227,227,1288,1289,1086,230,1288,1289,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1290,26,21,1,1291,1089,1291,1084,1085,1084,1084,227,227,1288,1289,1086,230,1288,1289,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1292,230,1292,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1293,230,1293,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1294,230,1294,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1295,230,1295,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1296,1297,1296,229,1298,230,21,21,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1299,230,1299,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1095,1096,1095,1084,229,1084,1084,1077,227,1294,230,1294,1084,21,21,227,1084,227,1084,227,1084,227,21,1,1300,26,21,1,1301,200,201,199,1,900,901,900,902,201,902,902,903,199,904,1302,1302,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1303,1303,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1304,1304,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1305,1305,902,199,902,199,902,199,902,199,1,1306,1307,1306,902,201,902,902,903,199,1308,902,199,902,199,902,199,902,199,1,1309,1310,1309,201,907,1308,199,1,1311,200,201,199,1,1312,200,1312,201,907,1308,199,1,1308,1313,1308,925,265,925,925,199,199,1314,1315,926,1314,1315,925,199,925,199,925,199,925,199,1,1316,200,201,199,1,1317,929,1317,925,265,925,925,199,199,1314,1315,926,1314,1315,925,199,925,199,925,199,925,199,1,932,933,932,925,201,925,925,903,199,1318,1318,925,199,925,199,925,199,925,199,1,932,933,932,925,201,925,925,903,199,1319,1319,925,199,925,199,925,199,925,199,1,932,933,932,925,201,925,925,903,199,1320,1320,925,199,925,199,925,199,925,199,1,932,933,932,925,201,925,925,903,199,1321,1321,925,199,925,199,925,199,925,199,1,1322,1323,1322,201,1324,199,1,932,933,932,925,201,925,925,903,199,1325,1325,925,199,925,199,925,199,925,199,1,932,933,932,925,201,925,925,903,199,1320,1320,925,199,925,199,925,199,925,199,1,1326,200,201,199,1,900,901,900,902,201,902,902,903,199,904,1327,1327,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1328,1328,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1329,1329,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1330,1330,902,199,902,199,902,199,902,199,1,1331,1332,1331,902,201,902,902,903,199,1333,902,199,902,199,902,199,902,199,1,1334,1335,1334,201,907,1333,199,1,1336,200,201,199,1,1337,200,1337,201,907,1333,199,1,1333,1338,1333,925,1339,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1340,200,201,199,1,1341,1342,1341,925,1339,925,925,199,199,926,925,199,925,199,925,199,925,199,1,1343,200,201,199,1,1344,200,1344,1339,199,1,1345,1346,1345,390,1347,392,386,386,389,386,1,1348,1349,1348,395,400,401,393,393,399,393,1,1350,394,395,393,1,1351,1352,1351,395,400,401,393,393,399,393,1,438,439,438,440,395,440,440,441,393,442,1353,1353,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1354,1354,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1355,1355,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1356,1356,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1357,1357,440,393,440,393,440,393,440,393,1,1358,1359,1358,440,395,440,440,441,393,1360,440,393,440,393,440,393,440,393,1,1361,1362,1361,395,445,1360,393,1,1363,394,395,393,1,1364,394,1364,395,445,1360,393,1,1365,1366,1365,463,1367,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1368,394,395,393,1,1369,1370,1369,463,1367,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1371,394,395,393,1,1372,394,1372,1373,393,1,394,395,1375,393,1374,393,1374,393,1374,393,1,394,395,1377,1378,393,1376,393,1376,393,1376,393,1,394,395,1377,1378,393,1379,393,1379,393,1379,393,1,394,395,1377,1378,393,1380,393,1380,393,1380,393,1,394,395,1377,1378,393,1,394,395,1382,393,1381,393,1374,393,1374,393,1,394,395,1383,1377,1378,393,1384,393,1376,393,1376,393,1,394,395,393,1385,393,1,394,395,1386,393,1387,393,1,394,395,393,1388,393,1,394,395,1389,393,1390,393,1,394,395,393,1391,393,1,394,395,1378,393,1392,393,1,394,395,1378,393,1393,393,1,394,395,1378,393,1,470,471,470,395,441,393,1,394,395,1389,393,1394,393,1,394,395,1389,393,1,394,395,1386,393,1395,393,1,394,395,1386,393,1,394,395,1383,1377,1378,393,1396,393,1379,393,1379,393,1,394,395,1383,1377,1378,393,1380,393,1380,393,1380,393,1,394,395,1398,1378,393,1397,393,1397,393,1397,393,1,394,395,1400,1378,393,1399,393,1399,393,1399,393,1,394,395,1400,1378,393,1401,393,1401,393,1401,393,1,394,395,1400,1378,393,1402,393,1402,393,1402,393,1,394,395,1400,1378,393,1,394,395,393,1403,393,1397,393,1397,393,1,394,395,1383,1400,1378,393,1404,393,1399,393,1399,393,1,394,395,1383,1400,1378,393,1405,393,1401,393,1401,393,1,394,395,1383,1400,1378,393,1402,393,1402,393,1402,393,1,394,395,393,1406,393,1,394,395,1383,393,1407,393,1,394,395,1383,393,1408,393,1,394,395,1383,393,1,394,395,1382,393,1,1409,394,395,393,1,438,439,438,440,395,440,440,441,393,442,1410,1410,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1411,1411,440,393,440,393,440,393,440,393,1,1412,1413,1412,440,395,440,440,441,393,1414,440,393,440,393,440,393,440,393,1,1415,1416,1415,395,445,1414,393,1,1417,394,395,393,1,1418,394,1418,395,445,1414,393,1,1414,1419,1414,463,1420,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1421,394,395,393,1,1422,1423,1422,463,1420,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1424,394,395,393,1,1425,394,1425,1420,393,1,1426,1427,1426,197,1428,198,194,194,195,194,1,1429,1430,1429,201,866,263,199,199,261,199,1,1431,200,201,199,1,1432,1433,1432,201,866,263,199,199,261,199,1,1434,394,395,393,1,438,439,438,440,395,440,440,441,393,442,1435,1435,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1436,1436,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1437,1437,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1438,1438,440,393,440,393,440,393,440,393,1,1439,1440,1439,440,395,440,440,441,393,1441,440,393,440,393,440,393,440,393,1,1442,1443,1442,395,445,1441,393,1,1444,394,395,393,1,1445,394,1445,395,445,1441,393,1,1446,1447,1446,463,1448,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1449,394,395,393,1,1450,1451,1450,463,1448,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1452,394,395,393,1,1453,394,1453,1454,393,1,1455,394,395,393,1,438,439,438,440,395,440,440,441,393,442,1456,1456,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1457,1457,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1458,1458,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1459,1459,440,393,440,393,440,393,440,393,1,1460,1461,1460,440,395,440,440,441,393,1462,440,393,440,393,440,393,440,393,1,1463,1464,1463,395,445,1462,393,1,1465,394,395,393,1,1466,394,1466,395,445,1462,393,1,1462,1467,1462,463,406,463,463,393,393,1468,1469,464,1468,1469,463,393,463,393,463,393,463,393,1,1470,394,395,393,1,1471,467,1471,463,406,463,463,393,393,1468,1469,464,1468,1469,463,393,463,393,463,393,463,393,1,470,471,470,463,395,463,463,441,393,1472,1472,463,393,463,393,463,393,463,393,1,470,471,470,463,395,463,463,441,393,1473,1473,463,393,463,393,463,393,463,393,1,470,471,470,463,395,463,463,441,393,1474,1474,463,393,463,393,463,393,463,393,1,470,471,470,463,395,463,463,441,393,1475,1475,463,393,463,393,463,393,463,393,1,1476,1477,1476,395,1478,393,1,470,471,470,463,395,463,463,441,393,1479,1479,463,393,463,393,463,393,463,393,1,470,471,470,463,395,463,463,441,393,1474,1474,463,393,463,393,463,393,463,393,1,1480,394,395,393,1,1481,200,201,199,1,900,901,900,902,201,902,902,903,199,904,1482,1482,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1483,1483,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1484,1484,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1485,1485,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1486,1486,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1487,1487,902,199,902,199,902,199,902,199,1,900,901,900,902,201,902,902,903,199,904,1488,1488,902,199,902,199,902,199,902,199,1,1489,1490,1489,902,201,902,902,903,199,1491,902,199,902,199,902,199,902,199,1,1492,1493,1492,201,907,1491,199,1,1494,200,201,199,1,1495,200,1495,201,907,1491,199,1,1491,1496,1491,1497,265,1497,1497,199,199,926,1497,199,1497,199,1497,199,1497,199,1,1498,200,201,199,1,1499,929,1499,1497,265,1497,1497,199,199,926,1497,199,1497,199,1497,199,1497,199,1,1500,1501,1500,1502,201,1502,1502,1503,199,1502,199,1502,199,1502,199,1502,199,1,1504,200,201,199,1,261,262,201,1506,263,199,199,261,1505,261,1505,261,1505,261,199,1,261,262,201,1508,263,1509,199,199,261,1507,261,1507,261,1507,261,199,1,261,262,201,1508,263,1509,199,199,261,1510,261,1510,261,1510,261,199,1,261,262,201,1508,263,1509,199,199,261,1511,261,1511,261,1511,261,199,1,261,262,201,1508,263,1509,199,199,261,199,1,261,262,201,1513,263,199,199,261,1512,261,1505,261,1505,261,199,1,261,262,201,1514,1508,263,1509,199,199,261,1515,261,1507,261,1507,261,199,1,261,262,201,263,199,199,261,1516,261,199,1,261,262,201,1517,263,199,199,261,1518,261,199,1,261,262,201,263,199,199,261,1519,261,199,1,261,262,201,1520,263,199,199,261,1521,261,199,1,261,262,201,263,199,199,261,1522,261,199,1,261,262,201,263,1509,199,199,261,1523,261,199,1,261,262,201,263,1509,199,199,261,1524,261,199,1,261,262,201,263,1509,199,199,261,199,1,897,898,897,201,883,263,199,199,261,199,1,261,262,201,1520,263,199,199,261,1525,261,199,1,261,262,201,1520,263,199,199,261,199,1,261,262,201,1517,263,199,199,261,1526,261,199,1,261,262,201,1517,263,199,199,261,199,1,261,262,201,1514,1508,263,1509,199,199,261,1527,261,1510,261,1510,261,199,1,261,262,201,1514,1508,263,1509,199,199,261,1511,261,1511,261,1511,261,199,1,261,262,201,1529,263,1509,199,199,261,1528,261,1528,261,1528,261,199,1,261,262,201,1531,263,1509,199,199,261,1530,261,1530,261,1530,261,199,1,261,262,201,1531,263,1509,199,199,261,1532,261,1532,261,1532,261,199,1,261,262,201,1531,263,1509,199,199,261,1533,261,1533,261,1533,261,199,1,261,262,201,1531,263,1509,199,199,261,199,1,261,262,201,263,199,199,261,1534,261,1528,261,1528,261,199,1,261,262,201,1514,1531,263,1509,199,199,261,1535,261,1530,261,1530,261,199,1,261,262,201,1514,1531,263,1509,199,199,261,1536,261,1532,261,1532,261,199,1,261,262,201,1514,1531,263,1509,199,199,261,1533,261,1533,261,1533,261,199,1,261,262,201,263,199,199,261,1537,261,199,1,261,262,201,1514,263,199,199,261,1538,261,199,1,261,262,201,1514,263,199,199,261,1539,261,199,1,261,262,201,1514,263,199,199,261,199,1,261,262,201,1513,263,199,199,261,199,1,1540,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1541,263,1541,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1542,263,1542,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1543,263,1543,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1544,263,1544,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1545,263,1545,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1546,263,1546,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1547,263,1547,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1548,263,1548,882,199,199,261,882,261,882,261,882,261,199,1,1549,1550,1549,882,201,882,882,883,261,1551,263,882,199,199,261,882,261,882,261,882,261,199,1,1552,1553,1552,201,866,1551,263,199,199,261,199,1,1554,200,201,199,1,1555,262,1555,201,866,1551,263,199,199,261,199,1,1551,1556,1551,1557,265,1557,1557,261,261,891,263,1557,199,199,261,1557,261,1557,261,1557,261,199,1,1558,200,201,199,1,1559,894,1559,1557,265,1557,1557,261,261,891,263,1557,199,199,261,1557,261,1557,261,1557,261,199,1,1560,1561,1560,1562,201,1562,1562,1563,261,263,1562,199,199,261,1562,261,1562,261,1562,261,199,1,1564,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1565,263,1565,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1566,263,1566,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1567,263,1567,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1568,263,1568,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1569,263,1569,882,199,199,261,882,261,882,261,882,261,199,1,1570,1571,1570,882,201,882,882,883,261,1572,263,882,199,199,261,882,261,882,261,882,261,199,1,1573,1574,1573,201,866,1572,263,199,199,261,199,1,1575,200,201,199,1,1576,262,1576,201,866,1572,263,199,199,261,199,1,1572,1577,1572,890,1339,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1578,200,201,199,1,1579,1580,1579,890,1339,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1581,200,201,199,1,1582,262,1582,1339,263,199,199,261,199,1,1583,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1584,263,1584,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1585,263,1585,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1586,263,1586,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1587,263,1587,882,199,199,261,882,261,882,261,882,261,199,1,1588,1589,1588,882,201,882,882,883,261,1590,263,882,199,199,261,882,261,882,261,882,261,199,1,1591,1592,1591,201,866,1590,263,199,199,261,199,1,1593,200,201,199,1,1594,262,1594,201,866,1590,263,199,199,261,199,1,1595,1596,1595,890,952,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1597,200,201,199,1,1598,1599,1598,890,952,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1600,200,201,199,1,1601,262,1601,958,263,199,199,261,199,1,1602,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1603,263,1603,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1604,263,1604,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1605,263,1605,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1606,263,1606,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1607,263,1607,882,199,199,261,882,261,882,261,882,261,199,1,1608,1609,1608,882,201,882,882,883,261,1610,263,882,199,199,261,882,261,882,261,882,261,199,1,1611,1612,1611,201,866,1610,263,199,199,261,199,1,1613,200,201,199,1,1614,262,1614,201,866,1610,263,199,199,261,199,1,1615,1616,1615,890,1009,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1617,200,201,199,1,1618,1619,1618,890,1009,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1620,200,201,199,1,1621,262,1621,1015,263,199,199,261,199,1,1622,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1623,263,1623,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1624,263,1624,882,199,199,261,882,261,882,261,882,261,199,1,1625,1626,1625,882,201,882,882,883,261,1627,263,882,199,199,261,882,261,882,261,882,261,199,1,1628,1629,1628,201,866,1627,263,199,199,261,199,1,1630,200,201,199,1,1631,262,1631,201,866,1627,263,199,199,261,199,1,1627,1632,1627,890,201,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1633,200,201,199,1,1634,262,1634,890,201,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1635,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1636,263,1636,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1637,263,1637,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1638,263,1638,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1639,263,1639,882,199,199,261,882,261,882,261,882,261,199,1,1640,1641,1640,882,201,882,882,883,261,1642,263,882,199,199,261,882,261,882,261,882,261,199,1,1643,1644,1643,201,866,1642,263,199,199,261,199,1,1645,200,201,199,1,1646,262,1646,201,866,1642,263,199,199,261,199,1,1647,1648,1647,890,1048,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1649,200,201,199,1,1650,1651,1650,890,1048,890,890,261,261,891,263,890,199,199,261,890,261,890,261,890,261,199,1,1652,200,201,199,1,1653,262,1653,1054,263,199,199,261,199,1,1654,200,201,199,1,880,881,880,882,201,882,882,883,261,884,1655,263,1655,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1656,263,1656,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1657,263,1657,882,199,199,261,882,261,882,261,882,261,199,1,880,881,880,882,201,882,882,883,261,884,1658,263,1658,882,199,199,261,882,261,882,261,882,261,199,1,1659,1660,1659,882,201,882,882,883,261,1661,263,882,199,199,261,882,261,882,261,882,261,199,1,1662,1663,1662,201,866,1661,263,199,199,261,199,1,1664,200,201,199,1,1665,262,1665,201,866,1661,263,199,199,261,199,1,1661,1666,1661,890,265,890,890,261,261,1667,1668,891,263,1667,1668,890,199,199,261,890,261,890,261,890,261,199,1,1669,200,201,199,1,1670,894,1670,890,265,890,890,261,261,1667,1668,891,263,1667,1668,890,199,199,261,890,261,890,261,890,261,199,1,897,898,897,890,201,890,890,883,261,1671,263,1671,890,199,199,261,890,261,890,261,890,261,199,1,897,898,897,890,201,890,890,883,261,1672,263,1672,890,199,199,261,890,261,890,261,890,261,199,1,897,898,897,890,201,890,890,883,261,1673,263,1673,890,199,199,261,890,261,890,261,890,261,199,1,897,898,897,890,201,890,890,883,261,1674,263,1674,890,199,199,261,890,261,890,261,890,261,199,1,1675,1676,1675,201,1677,263,199,199,261,199,1,897,898,897,890,201,890,890,883,261,1678,263,1678,890,199,199,261,890,261,890,261,890,261,199,1,897,898,897,890,201,890,890,883,261,1673,263,1673,890,199,199,261,890,261,890,261,890,261,199,1,1679,200,201,199,1,1680,26,21,1,689,690,689,691,171,691,691,692,169,693,1681,172,1681,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1682,172,1682,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1683,172,1683,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1684,172,1684,691,21,21,169,691,169,691,169,691,169,21,1,1685,1686,1685,691,171,691,691,692,169,1687,172,691,21,21,169,691,169,691,169,691,169,21,1,1688,1689,1688,171,675,1687,172,21,21,169,21,1,1690,26,21,1,1691,170,1691,171,675,1687,172,21,21,169,21,1,1692,1693,1692,699,1694,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,1695,26,21,1,1696,1697,1696,699,1694,699,699,169,169,701,172,699,21,21,169,699,169,699,169,699,169,21,1,1698,26,21,1,1699,170,1699,1700,172,21,21,169,21,1,1701,1702,1701,229,1703,230,21,21,227,21,1,1704,26,21,1,689,690,689,691,171,691,691,692,169,693,1705,172,1705,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1706,172,1706,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1707,172,1707,691,21,21,169,691,169,691,169,691,169,21,1,689,690,689,691,171,691,691,692,169,693,1708,172,1708,691,21,21,169,691,169,691,169,691,169,21,1,1709,1710,1709,691,171,691,691,692,169,1711,172,691,21,21,169,691,169,691,169,691,169,21,1,1712,1713,1712,171,675,1711,172,21,21,169,21,1,1714,26,21,1,1715,170,1715,171,675,1711,172,21,21,169,21,1,1711,1716,1711,699,700,699,699,169,169,1717,1718,701,172,1717,1718,699,21,21,169,699,169,699,169,699,169,21,1,1719,26,21,1,1720,704,1720,699,700,699,699,169,169,1717,1718,701,172,1717,1718,699,21,21,169,699,169,699,169,699,169,21,1,710,711,710,699,171,699,699,692,169,1721,172,1721,699,21,21,169,699,169,699,169,699,169,21,1,710,711,710,699,171,699,699,692,169,1722,172,1722,699,21,21,169,699,169,699,169,699,169,21,1,710,711,710,699,171,699,699,692,169,1723,172,1723,699,21,21,169,699,169,699,169,699,169,21,1,710,711,710,699,171,699,699,692,169,1724,172,1724,699,21,21,169,699,169,699,169,699,169,21,1,1725,1726,1725,171,1727,172,21,21,169,21,1,710,711,710,699,171,699,699,692,169,1728,172,1728,699,21,21,169,699,169,699,169,699,169,21,1,710,711,710,699,171,699,699,692,169,1723,172,1723,699,21,21,169,699,169,699,169,699,169,21,1,1729,26,21,1,1730,26,21,1,516,517,516,518,108,518,518,519,106,520,1731,109,1731,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1732,109,1732,518,21,21,106,518,106,518,106,518,106,21,1,1733,1734,1733,518,108,518,518,519,106,1735,109,518,21,21,106,518,106,518,106,518,106,21,1,1736,1737,1736,108,499,1735,109,21,21,106,21,1,1738,26,21,1,1739,107,1739,108,499,1735,109,21,21,106,21,1,1735,1740,1735,526,1741,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,1742,26,21,1,1743,1744,1743,526,1741,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,1745,26,21,1,1746,107,1746,1741,109,21,21,106,21,1,1747,1748,1747,197,1749,198,194,194,195,194,1,1750,26,21,1,516,517,516,518,108,518,518,519,106,520,1751,109,1751,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1752,109,1752,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1753,109,1753,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1754,109,1754,518,21,21,106,518,106,518,106,518,106,21,1,1755,1756,1755,518,108,518,518,519,106,1757,109,518,21,21,106,518,106,518,106,518,106,21,1,1758,1759,1758,108,499,1757,109,21,21,106,21,1,1760,26,21,1,1761,107,1761,108,499,1757,109,21,21,106,21,1,1762,1763,1762,526,1764,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,1765,26,21,1,1766,1767,1766,526,1764,526,526,106,106,528,109,526,21,21,106,526,106,526,106,526,106,21,1,1768,26,21,1,1769,107,1769,1770,109,21,21,106,21,1,1771,1772,1771,229,1773,230,21,21,227,21,1,1774,26,21,1,516,517,516,518,108,518,518,519,106,520,1775,109,1775,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1776,109,1776,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1777,109,1777,518,21,21,106,518,106,518,106,518,106,21,1,516,517,516,518,108,518,518,519,106,520,1778,109,1778,518,21,21,106,518,106,518,106,518,106,21,1,1779,1780,1779,518,108,518,518,519,106,1781,109,518,21,21,106,518,106,518,106,518,106,21,1,1782,1783,1782,108,499,1781,109,21,21,106,21,1,1784,26,21,1,1785,107,1785,108,499,1781,109,21,21,106,21,1,1781,1786,1781,526,527,526,526,106,106,1787,1788,528,109,1787,1788,526,21,21,106,526,106,526,106,526,106,21,1,1789,26,21,1,1790,531,1790,526,527,526,526,106,106,1787,1788,528,109,1787,1788,526,21,21,106,526,106,526,106,526,106,21,1,537,538,537,526,108,526,526,519,106,1791,109,1791,526,21,21,106,526,106,526,106,526,106,21,1,537,538,537,526,108,526,526,519,106,1792,109,1792,526,21,21,106,526,106,526,106,526,106,21,1,537,538,537,526,108,526,526,519,106,1793,109,1793,526,21,21,106,526,106,526,106,526,106,21,1,537,538,537,526,108,526,526,519,106,1794,109,1794,526,21,21,106,526,106,526,106,526,106,21,1,1795,1796,1795,108,1797,109,21,21,106,21,1,537,538,537,526,108,526,526,519,106,1798,109,1798,526,21,21,106,526,106,526,106,526,106,21,1,537,538,537,526,108,526,526,519,106,1793,109,1793,526,21,21,106,526,106,526,106,526,106,21,1,1799,26,21,1,1800,394,395,393,1,438,439,438,440,395,440,440,441,393,442,1801,1801,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1802,1802,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1803,1803,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1804,1804,440,393,440,393,440,393,440,393,1,1805,1806,1805,440,395,440,440,441,393,1807,440,393,440,393,440,393,440,393,1,1808,1809,1808,395,445,1807,393,1,1810,394,395,393,1,1811,394,1811,395,445,1807,393,1,1807,1812,1807,463,395,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1813,394,395,393,1,1814,394,1814,463,395,463,463,393,393,464,463,393,463,393,463,393,463,393,1,1815,394,395,393,1,438,439,438,440,395,440,440,441,393,442,1816,1816,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1817,1817,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1818,1818,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1819,1819,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1820,1820,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1821,1821,440,393,440,393,440,393,440,393,1,438,439,438,440,395,440,440,441,393,442,1822,1822,440,393,440,393,440,393,440,393,1,1823,1824,1823,440,395,440,440,441,393,1825,440,393,440,393,440,393,440,393,1,1826,1827,1826,395,445,1825,393,1,1828,394,395,393,1,1829,394,1829,395,445,1825,393,1,1825,1830,1825,1831,406,1831,1831,393,393,464,1831,393,1831,393,1831,393,1831,393,1,1832,394,395,393,1,1833,467,1833,1831,406,1831,1831,393,393,464,1831,393,1831,393,1831,393,1831,393,1,1834,1835,1834,1836,395,1836,1836,1837,393,1836,393,1836,393,1836,393,1836,393,1,1838,394,395,393,1,399,404,395,1840,401,393,393,399,1839,399,1839,399,1839,399,393,1,399,404,395,1842,401,1843,393,393,399,1841,399,1841,399,1841,399,393,1,399,404,395,1842,401,1843,393,393,399,1844,399,1844,399,1844,399,393,1,399,404,395,1842,401,1843,393,393,399,1845,399,1845,399,1845,399,393,1,399,404,395,1842,401,1843,393,393,399,393,1,399,404,395,1847,401,393,393,399,1846,399,1839,399,1839,399,393,1,399,404,395,1848,1842,401,1843,393,393,399,1849,399,1841,399,1841,399,393,1,399,404,395,401,393,393,399,1850,399,393,1,399,404,395,1851,401,393,393,399,1852,399,393,1,399,404,395,401,393,393,399,1853,399,393,1,399,404,395,1854,401,393,393,399,1855,399,393,1,399,404,395,401,393,393,399,1856,399,393,1,399,404,395,401,1843,393,393,399,1857,399,393,1,399,404,395,401,1843,393,393,399,1858,399,393,1,399,404,395,401,1843,393,393,399,393,1,435,436,435,395,421,401,393,393,399,393,1,399,404,395,1854,401,393,393,399,1859,399,393,1,399,404,395,1854,401,393,393,399,393,1,399,404,395,1851,401,393,393,399,1860,399,393,1,399,404,395,1851,401,393,393,399,393,1,399,404,395,1848,1842,401,1843,393,393,399,1861,399,1844,399,1844,399,393,1,399,404,395,1848,1842,401,1843,393,393,399,1845,399,1845,399,1845,399,393,1,399,404,395,1863,401,1843,393,393,399,1862,399,1862,399,1862,399,393,1,399,404,395,1865,401,1843,393,393,399,1864,399,1864,399,1864,399,393,1,399,404,395,1865,401,1843,393,393,399,1866,399,1866,399,1866,399,393,1,399,404,395,1865,401,1843,393,393,399,1867,399,1867,399,1867,399,393,1,399,404,395,1865,401,1843,393,393,399,393,1,399,404,395,401,393,393,399,1868,399,1862,399,1862,399,393,1,399,404,395,1848,1865,401,1843,393,393,399,1869,399,1864,399,1864,399,393,1,399,404,395,1848,1865,401,1843,393,393,399,1870,399,1866,399,1866,399,393,1,399,404,395,1848,1865,401,1843,393,393,399,1867,399,1867,399,1867,399,393,1,399,404,395,401,393,393,399,1871,399,393,1,399,404,395,1848,401,393,393,399,1872,399,393,1,399,404,395,1848,401,393,393,399,1873,399,393,1,399,404,395,1848,401,393,393,399,393,1,399,404,395,1847,401,393,393,399,393,1,1874,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1875,401,1875,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1876,401,1876,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1877,401,1877,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1878,401,1878,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1879,401,1879,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1880,401,1880,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1881,401,1881,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1882,401,1882,420,393,393,399,420,399,420,399,420,399,393,1,1883,1884,1883,420,395,420,420,421,399,1885,401,420,393,393,399,420,399,420,399,420,399,393,1,1886,1887,1886,395,400,1885,401,393,393,399,393,1,1888,394,395,393,1,1889,404,1889,395,400,1885,401,393,393,399,393,1,1885,1890,1885,1891,406,1891,1891,399,399,429,401,1891,393,393,399,1891,399,1891,399,1891,399,393,1,1892,394,395,393,1,1893,432,1893,1891,406,1891,1891,399,399,429,401,1891,393,393,399,1891,399,1891,399,1891,399,393,1,1894,1895,1894,1896,395,1896,1896,1897,399,401,1896,393,393,399,1896,399,1896,399,1896,399,393,1,1898,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1899,401,1899,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1900,401,1900,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1901,401,1901,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1902,401,1902,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1903,401,1903,420,393,393,399,420,399,420,399,420,399,393,1,1904,1905,1904,420,395,420,420,421,399,1906,401,420,393,393,399,420,399,420,399,420,399,393,1,1907,1908,1907,395,400,1906,401,393,393,399,393,1,1909,394,395,393,1,1910,404,1910,395,400,1906,401,393,393,399,393,1,1906,1911,1906,428,395,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1912,394,395,393,1,1913,404,1913,428,395,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1914,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1915,401,1915,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1916,401,1916,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1917,401,1917,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1918,401,1918,420,393,393,399,420,399,420,399,420,399,393,1,1919,1920,1919,420,395,420,420,421,399,1921,401,420,393,393,399,420,399,420,399,420,399,393,1,1922,1923,1922,395,400,1921,401,393,393,399,393,1,1924,394,395,393,1,1925,404,1925,395,400,1921,401,393,393,399,393,1,1926,1927,1926,428,490,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1928,394,395,393,1,1929,1930,1929,428,490,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1931,394,395,393,1,1932,404,1932,496,401,393,393,399,393,1,1933,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1934,401,1934,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1935,401,1935,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1936,401,1936,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1937,401,1937,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1938,401,1938,420,393,393,399,420,399,420,399,420,399,393,1,1939,1940,1939,420,395,420,420,421,399,1941,401,420,393,393,399,420,399,420,399,420,399,393,1,1942,1943,1942,395,400,1941,401,393,393,399,393,1,1944,394,395,393,1,1945,404,1945,395,400,1941,401,393,393,399,393,1,1946,1947,1946,428,1367,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1948,394,395,393,1,1949,1950,1949,428,1367,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1951,394,395,393,1,1952,404,1952,1373,401,393,393,399,393,1,1953,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1954,401,1954,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1955,401,1955,420,393,393,399,420,399,420,399,420,399,393,1,1956,1957,1956,420,395,420,420,421,399,1958,401,420,393,393,399,420,399,420,399,420,399,393,1,1959,1960,1959,395,400,1958,401,393,393,399,393,1,1961,394,395,393,1,1962,404,1962,395,400,1958,401,393,393,399,393,1,1958,1963,1958,428,1420,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1964,394,395,393,1,1965,1966,1965,428,1420,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1967,394,395,393,1,1968,404,1968,1420,401,393,393,399,393,1,1969,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1970,401,1970,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1971,401,1971,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1972,401,1972,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1973,401,1973,420,393,393,399,420,399,420,399,420,399,393,1,1974,1975,1974,420,395,420,420,421,399,1976,401,420,393,393,399,420,399,420,399,420,399,393,1,1977,1978,1977,395,400,1976,401,393,393,399,393,1,1979,394,395,393,1,1980,404,1980,395,400,1976,401,393,393,399,393,1,1981,1982,1981,428,1448,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1983,394,395,393,1,1984,1985,1984,428,1448,428,428,399,399,429,401,428,393,393,399,428,399,428,399,428,399,393,1,1986,394,395,393,1,1987,404,1987,1454,401,393,393,399,393,1,1988,394,395,393,1,418,419,418,420,395,420,420,421,399,422,1989,401,1989,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1990,401,1990,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1991,401,1991,420,393,393,399,420,399,420,399,420,399,393,1,418,419,418,420,395,420,420,421,399,422,1992,401,1992,420,393,393,399,420,399,420,399,420,399,393,1,1993,1994,1993,420,395,420,420,421,399,1995,401,420,393,393,399,420,399,420,399,420,399,393,1,1996,1997,1996,395,400,1995,401,393,393,399,393,1,1998,394,395,393,1,1999,404,1999,395,400,1995,401,393,393,399,393,1,1995,2000,1995,428,406,428,428,399,399,2001,2002,429,401,2001,2002,428,393,393,399,428,399,428,399,428,399,393,1,2003,394,395,393,1,2004,432,2004,428,406,428,428,399,399,2001,2002,429,401,2001,2002,428,393,393,399,428,399,428,399,428,399,393,1,435,436,435,428,395,428,428,421,399,2005,401,2005,428,393,393,399,428,399,428,399,428,399,393,1,435,436,435,428,395,428,428,421,399,2006,401,2006,428,393,393,399,428,399,428,399,428,399,393,1,435,436,435,428,395,428,428,421,399,2007,401,2007,428,393,393,399,428,399,428,399,428,399,393,1,435,436,435,428,395,428,428,421,399,2008,401,2008,428,393,393,399,428,399,428,399,428,399,393,1,2009,2010,2009,395,2011,401,393,393,399,393,1,435,436,435,428,395,428,428,421,399,2012,401,2012,428,393,393,399,428,399,428,399,428,399,393,1,435,436,435,428,395,428,428,421,399,2007,401,2007,428,393,393,399,428,399,428,399,428,399,393,1,2013,394,395,393,1,2014,26,21,1,285,286,285,287,77,287,287,288,69,289,2015,78,2015,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2016,78,2016,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2017,78,2017,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2018,78,2018,287,21,21,69,287,69,287,69,287,69,21,1,2019,2020,2019,287,77,287,287,288,69,2021,78,287,21,21,69,287,69,287,69,287,69,21,1,2022,2023,2022,77,268,2021,78,21,21,69,21,1,2024,26,21,1,2025,76,2025,77,268,2021,78,21,21,69,21,1,2026,2027,2026,295,2028,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2029,26,21,1,2030,2031,2030,295,2028,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2032,26,21,1,2033,76,2033,546,78,21,21,69,21,1,2034,26,21,1,285,286,285,287,77,287,287,288,69,289,2035,78,2035,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2036,78,2036,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2037,78,2037,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2038,78,2038,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2039,78,2039,287,21,21,69,287,69,287,69,287,69,21,1,2040,2041,2040,287,77,287,287,288,69,2042,78,287,21,21,69,287,69,287,69,287,69,21,1,2043,2044,2043,77,268,2042,78,21,21,69,21,1,2045,26,21,1,2046,76,2046,77,268,2042,78,21,21,69,21,1,2047,2048,2047,295,2049,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2050,26,21,1,2051,2052,2051,295,2049,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2053,26,21,1,2054,76,2054,717,78,21,21,69,21,1,2055,26,21,1,285,286,285,287,77,287,287,288,69,289,2056,78,2056,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2057,78,2057,287,21,21,69,287,69,287,69,287,69,21,1,2058,2059,2058,287,77,287,287,288,69,2060,78,287,21,21,69,287,69,287,69,287,69,21,1,2061,2062,2061,77,268,2060,78,21,21,69,21,1,2063,26,21,1,2064,76,2064,77,268,2060,78,21,21,69,21,1,2060,2065,2060,295,2066,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2067,26,21,1,2068,2069,2068,295,2066,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2070,26,21,1,2071,76,2071,2066,78,21,21,69,21,1,2072,2073,2072,197,2074,198,194,194,195,194,1,2075,26,21,1,285,286,285,287,77,287,287,288,69,289,2076,78,2076,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2077,78,2077,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2078,78,2078,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2079,78,2079,287,21,21,69,287,69,287,69,287,69,21,1,2080,2081,2080,287,77,287,287,288,69,2082,78,287,21,21,69,287,69,287,69,287,69,21,1,2083,2084,2083,77,268,2082,78,21,21,69,21,1,2085,26,21,1,2086,76,2086,77,268,2082,78,21,21,69,21,1,2087,2088,2087,295,2089,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2090,26,21,1,2091,2092,2091,295,2089,295,295,69,69,297,78,295,21,21,69,295,69,295,69,295,69,21,1,2093,26,21,1,2094,76,2094,1104,78,21,21,69,21,1,2095,26,21,1,285,286,285,287,77,287,287,288,69,289,2096,78,2096,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2097,78,2097,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2098,78,2098,287,21,21,69,287,69,287,69,287,69,21,1,285,286,285,287,77,287,287,288,69,289,2099,78,2099,287,21,21,69,287,69,287,69,287,69,21,1,2100,2101,2100,287,77,287,287,288,69,2102,78,287,21,21,69,287,69,287,69,287,69,21,1,2103,2104,2103,77,268,2102,78,21,21,69,21,1,2105,26,21,1,2106,76,2106,77,268,2102,78,21,21,69,21,1,2102,2107,2102,295,296,295,295,69,69,2108,2109,297,78,2108,2109,295,21,21,69,295,69,295,69,295,69,21,1,2110,26,21,1,2111,300,2111,295,296,295,295,69,69,2108,2109,297,78,2108,2109,295,21,21,69,295,69,295,69,295,69,21,1,303,304,303,295,77,295,295,288,69,2112,78,2112,295,21,21,69,295,69,295,69,295,69,21,1,303,304,303,295,77,295,295,288,69,2113,78,2113,295,21,21,69,295,69,295,69,295,69,21,1,303,304,303,295,77,295,295,288,69,2114,78,2114,295,21,21,69,295,69,295,69,295,69,21,1,303,304,303,295,77,295,295,288,69,2115,78,2115,295,21,21,69,295,69,295,69,295,69,21,1,2116,2117,2116,77,2118,78,21,21,69,21,1,303,304,303,295,77,295,295,288,69,2119,78,2119,295,21,21,69,295,69,295,69,295,69,21,1,303,304,303,295,77,295,295,288,69,2114,78,2114,295,21,21,69,295,69,295,69,295,69,21,1,2120,26,21,1,2121,26,21,1,49,50,49,51,51,51,52,21,53,2122,2122,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2123,2123,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2124,2124,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2125,2125,51,21,51,21,51,21,51,21,1,2126,2127,2126,51,51,51,52,21,2128,51,21,51,21,51,21,51,21,1,2129,2130,2129,56,2128,21,1,2131,26,21,1,2132,26,2132,56,2128,21,1,2128,2133,2128,68,2134,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2135,26,21,1,2136,2137,2136,68,2134,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2138,26,21,1,2139,26,2139,2134,21,1,389,2140,390,392,386,386,389,386,1,2141,26,21,1,49,50,49,51,51,51,52,21,53,2142,2142,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2143,2143,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2144,2144,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2145,2145,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2146,2146,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2147,2147,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2148,2148,51,21,51,21,51,21,51,21,1,2149,2150,2149,51,51,51,52,21,2151,51,21,51,21,51,21,51,21,1,2152,2153,2152,56,2151,21,1,2154,26,21,1,2155,26,2155,56,2151,21,1,2151,2156,2151,2157,69,2157,2157,21,21,70,2157,21,2157,21,2157,21,2157,21,1,2158,26,21,1,2159,73,2159,2157,69,2157,2157,21,21,70,2157,21,2157,21,2157,21,2157,21,1,2160,2161,2160,2162,2162,2162,2163,21,2162,21,2162,21,2162,21,2162,21,1,2164,26,21,1,49,50,49,51,51,51,52,21,53,2165,2165,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2166,2166,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2167,2167,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2168,2168,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2169,2169,51,21,51,21,51,21,51,21,1,2170,2171,2170,51,51,51,52,21,2172,51,21,51,21,51,21,51,21,1,2173,2174,2173,56,2172,21,1,2175,26,21,1,2176,26,2176,56,2172,21,1,2172,2177,2172,68,2178,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2179,26,21,1,2180,2181,2180,68,2178,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2182,26,21,1,2183,26,2183,2178,21,1,2184,2185,390,2186,386,386,2184,386,1,2187,2188,395,2189,393,393,2187,393,1,2190,394,395,393,1,393,394,2191,2187,393,1,2192,2193,2192,77,2194,78,21,21,69,21,1,2195,26,21,1,2196,2197,2196,77,2194,78,21,21,69,21,1,2198,26,21,1,2199,76,2199,77,2194,78,21,21,69,21,1,2194,2200,2194,2201,77,2201,2201,69,69,2202,2203,2204,2205,2206,2207,2208,78,2202,2203,2204,2205,2206,2207,2208,2201,21,21,69,2201,69,2201,69,2201,69,21,1,2209,26,21,1,2210,76,2210,2201,77,2201,2201,69,69,2202,2203,2204,2205,2206,2207,2208,78,2202,2203,2204,2205,2206,2207,2208,2201,21,21,69,2201,69,2201,69,2201,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2216,2217,2216,77,2194,2215,78,21,21,69,21,1,2218,26,21,1,2219,76,2219,77,2194,2215,78,21,21,69,21,1,2215,2220,2215,2221,296,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2223,26,21,1,2224,300,2224,2221,296,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2227,2228,2227,77,2194,78,21,21,69,21,1,2229,26,21,1,69,76,77,2231,78,21,21,69,2230,69,2230,69,2230,69,21,1,69,76,77,2233,78,2234,21,21,69,2232,69,2232,69,2232,69,21,1,69,76,77,2233,78,2234,21,21,69,2235,69,2235,69,2235,69,21,1,69,76,77,2233,78,2234,21,21,69,2236,69,2236,69,2236,69,21,1,69,76,77,2233,78,2234,21,21,69,21,1,69,76,77,2238,78,21,21,69,2237,69,2230,69,2230,69,21,1,69,76,77,2239,2233,78,2234,21,21,69,2240,69,2232,69,2232,69,21,1,69,76,77,78,21,21,69,2241,69,21,1,69,76,77,2242,78,21,21,69,2243,69,21,1,69,76,77,78,21,21,69,2244,69,21,1,69,76,77,2245,78,21,21,69,2246,69,21,1,69,76,77,78,21,21,69,2247,69,21,1,69,76,77,78,2234,21,21,69,2248,69,21,1,69,76,77,78,2234,21,21,69,2249,69,21,1,69,76,77,78,2234,21,21,69,21,1,2225,2226,2225,77,2214,78,21,21,69,21,1,69,76,77,2245,78,21,21,69,2250,69,21,1,69,76,77,2245,78,21,21,69,21,1,69,76,77,2242,78,21,21,69,2251,69,21,1,69,76,77,2242,78,21,21,69,21,1,69,76,77,2239,2233,78,2234,21,21,69,2252,69,2235,69,2235,69,21,1,69,76,77,2239,2233,78,2234,21,21,69,2236,69,2236,69,2236,69,21,1,69,76,77,2254,78,2234,21,21,69,2253,69,2253,69,2253,69,21,1,69,76,77,2256,78,2234,21,21,69,2255,69,2255,69,2255,69,21,1,69,76,77,2256,78,2234,21,21,69,2257,69,2257,69,2257,69,21,1,69,76,77,2256,78,2234,21,21,69,2258,69,2258,69,2258,69,21,1,69,76,77,2256,78,2234,21,21,69,21,1,69,76,77,78,21,21,69,2259,69,2253,69,2253,69,21,1,69,76,77,2239,2256,78,2234,21,21,69,2260,69,2255,69,2255,69,21,1,69,76,77,2239,2256,78,2234,21,21,69,2261,69,2257,69,2257,69,21,1,69,76,77,2239,2256,78,2234,21,21,69,2258,69,2258,69,2258,69,21,1,69,76,77,78,21,21,69,2262,69,21,1,69,76,77,2239,78,21,21,69,2263,69,21,1,69,76,77,2239,78,21,21,69,2264,69,21,1,69,76,77,2239,78,21,21,69,21,1,69,76,77,2238,78,21,21,69,21,1,2265,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2266,78,2266,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2267,78,2267,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2268,78,2268,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2269,78,2269,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2270,78,2270,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2271,78,2271,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2272,78,2272,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2273,78,2273,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2274,2275,2274,2213,77,2213,2213,2214,69,2276,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2277,2278,2277,77,2194,2276,78,21,21,69,21,1,2279,26,21,1,2280,76,2280,77,2194,2276,78,21,21,69,21,1,2276,2281,2276,2282,296,2282,2282,69,69,2222,78,2282,21,21,69,2282,69,2282,69,2282,69,21,1,2283,26,21,1,2284,300,2284,2282,296,2282,2282,69,69,2222,78,2282,21,21,69,2282,69,2282,69,2282,69,21,1,2285,2286,2285,2287,77,2287,2287,2288,69,78,2287,21,21,69,2287,69,2287,69,2287,69,21,1,2289,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2290,78,2290,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2291,78,2291,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2292,78,2292,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2293,78,2293,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2294,78,2294,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2295,2296,2295,2213,77,2213,2213,2214,69,2297,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2298,2299,2298,77,2194,2297,78,21,21,69,21,1,2300,26,21,1,2301,76,2301,77,2194,2297,78,21,21,69,21,1,2297,2302,2297,2221,2303,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2304,26,21,1,2305,2306,2305,2221,2303,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2307,26,21,1,2308,76,2308,2303,78,21,21,69,21,1,2309,2310,2309,390,2311,392,386,386,389,386,1,2312,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2313,78,2313,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2314,78,2314,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2315,78,2315,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2316,78,2316,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2317,2318,2317,2213,77,2213,2213,2214,69,2319,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2320,2321,2320,77,2194,2319,78,21,21,69,21,1,2322,26,21,1,2323,76,2323,77,2194,2319,78,21,21,69,21,1,2324,2325,2324,2221,2028,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2326,26,21,1,2327,2031,2327,2221,2028,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2328,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2329,78,2329,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2330,78,2330,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2331,78,2331,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2332,78,2332,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2333,78,2333,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2334,2335,2334,2213,77,2213,2213,2214,69,2336,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2337,2338,2337,77,2194,2336,78,21,21,69,21,1,2339,26,21,1,2340,76,2340,77,2194,2336,78,21,21,69,21,1,2341,2342,2341,2221,2049,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2343,26,21,1,2344,2052,2344,2221,2049,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2345,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2346,78,2346,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2347,78,2347,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2348,2349,2348,2213,77,2213,2213,2214,69,2350,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2351,2352,2351,77,2194,2350,78,21,21,69,21,1,2353,26,21,1,2354,76,2354,77,2194,2350,78,21,21,69,21,1,2350,2355,2350,2221,2356,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2357,26,21,1,2358,2359,2358,2221,2356,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2360,26,21,1,2361,76,2361,2356,78,21,21,69,21,1,2362,2363,2362,197,2364,198,194,194,195,194,1,2365,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2366,78,2366,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2367,78,2367,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2368,78,2368,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2369,78,2369,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2370,2371,2370,2213,77,2213,2213,2214,69,2372,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2373,2374,2373,77,2194,2372,78,21,21,69,21,1,2375,26,21,1,2376,76,2376,77,2194,2372,78,21,21,69,21,1,2377,2378,2377,2221,2089,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2379,26,21,1,2380,2092,2380,2221,2089,2221,2221,69,69,2222,78,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2381,26,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2382,78,2382,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2383,78,2383,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2384,78,2384,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2211,2212,2211,2213,77,2213,2213,2214,69,2215,2385,78,2385,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2386,2387,2386,2213,77,2213,2213,2214,69,2388,78,2213,21,21,69,2213,69,2213,69,2213,69,21,1,2389,2390,2389,77,2194,2388,78,21,21,69,21,1,2391,26,21,1,2392,76,2392,77,2194,2388,78,21,21,69,21,1,2388,2393,2388,2221,296,2221,2221,69,69,2394,2395,2222,78,2394,2395,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2396,26,21,1,2397,300,2397,2221,296,2221,2221,69,69,2394,2395,2222,78,2394,2395,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2398,78,2398,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2399,78,2399,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2400,78,2400,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2401,78,2401,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2402,2403,2402,77,2404,78,21,21,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2405,78,2405,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2225,2226,2225,2221,77,2221,2221,2214,69,2400,78,2400,2221,21,21,69,2221,69,2221,69,2221,69,21,1,2406,26,21,1,2407,26,21,1,49,50,49,51,51,51,52,21,53,2408,2408,51,21,51,21,51,21,51,21,1,49,50,49,51,51,51,52,21,53,2409,2409,51,21,51,21,51,21,51,21,1,2410,2411,2410,51,51,51,52,21,2412,51,21,51,21,51,21,51,21,1,2413,2414,2413,56,2412,21,1,2415,26,21,1,2416,26,2416,56,2412,21,1,2412,2417,2412,68,2418,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2419,26,21,1,2420,2421,2420,68,2418,68,68,21,21,70,68,21,68,21,68,21,68,21,1,2422,26,21,1,2423,26,2423,2418,21,1,2424,2425,197,2426,194,194,2424,194,1,2427,2428,201,2429,199,199,2427,199,1,2430,200,201,199,1,199,200,2431,2427,199,1,2432,26,21,1,26,2433,2433,21,1,26,2434,2434,21,1,26,2435,2435,21,1,26,2436,2436,21,1,26,2437,2437,21,1,2438,2439,2438,21,1,2440,26,21,1,30,26,30,21,1,2441,2441,1,6,6,1,26,21,1,30,26,30,21,1,48,26,48,21,1,58,26,58,21,1,63,26,63,21,1,58,26,58,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,72,26,72,21,1,75,26,75,21,1,69,26,69,21,1,85,26,85,21,1,85,26,85,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,97,26,97,21,1,2442,26,2442,21,1,105,26,105,21,1,106,26,106,21,1,97,26,97,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,160,26,160,21,1,2443,26,2443,21,1,168,26,168,21,1,169,26,169,21,1,160,26,160,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,186,26,186,21,1,190,26,190,21,1,193,26,193,21,1,200,201,199,1,206,26,206,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,218,26,218,21,1,2444,26,2444,21,1,226,26,226,21,1,227,26,227,21,1,218,26,218,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,246,26,246,21,1,251,26,251,21,1,246,26,246,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,261,200,261,201,199,1,270,26,270,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,273,26,273,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,284,26,284,21,1,293,26,293,21,1,299,26,299,21,1,302,26,302,21,1,273,26,273,21,1,293,26,293,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,357,26,357,21,1,361,26,361,21,1,357,26,357,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,378,26,378,21,1,382,26,382,21,1,385,26,385,21,1,394,395,393,1,403,394,403,395,393,1,399,394,399,395,393,1,417,394,417,395,393,1,426,394,426,395,393,1,431,394,431,395,393,1,434,394,434,395,393,1,403,394,403,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,447,394,447,395,393,1,458,394,458,395,393,1,447,394,447,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,466,394,466,395,393,1,469,394,469,395,393,1,475,394,475,395,393,1,475,394,475,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,487,394,487,395,393,1,2445,394,2445,395,393,1,495,394,495,395,393,1,501,26,501,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,504,26,504,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,515,26,515,21,1,524,26,524,21,1,530,26,530,21,1,533,26,533,21,1,504,26,504,21,1,524,26,524,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,592,26,592,21,1,596,26,596,21,1,592,26,592,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,613,26,613,21,1,617,26,617,21,1,620,26,620,21,1,613,26,613,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,635,26,635,21,1,2446,26,2446,21,1,643,26,643,21,1,635,26,635,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,660,26,660,21,1,2447,26,2447,21,1,668,26,668,21,1,677,26,677,21,1,688,26,688,21,1,697,26,697,21,1,703,26,703,21,1,706,26,706,21,1,677,26,677,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,697,26,697,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,763,26,763,21,1,767,26,767,21,1,763,26,763,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,784,26,784,21,1,788,26,788,21,1,791,26,791,21,1,784,26,784,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,806,26,806,21,1,2448,26,2448,21,1,814,26,814,21,1,806,26,806,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,831,26,831,21,1,2449,26,2449,21,1,839,26,839,21,1,831,26,831,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,853,26,853,21,1,857,26,857,21,1,860,26,860,21,1,868,200,868,201,199,1,879,200,879,201,199,1,888,200,888,201,199,1,893,200,893,201,199,1,896,200,896,201,199,1,868,200,868,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,909,200,909,201,199,1,920,200,920,201,199,1,909,200,909,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,928,200,928,201,199,1,931,200,931,201,199,1,937,200,937,201,199,1,937,200,937,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,949,200,949,201,199,1,2450,200,2450,201,199,1,957,200,957,201,199,1,949,200,949,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1006,200,1006,201,199,1,2451,200,2451,201,199,1,1014,200,1014,201,199,1,1019,26,1019,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1006,200,1006,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1030,200,1030,201,199,1,1033,200,1033,201,199,1,1030,200,1030,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1045,200,1045,201,199,1,2452,200,2452,201,199,1,1053,200,1053,201,199,1,1059,26,1059,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1062,26,1062,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1073,26,1073,21,1,1082,26,1082,21,1,1088,26,1088,21,1,1091,26,1091,21,1,1062,26,1062,21,1,1082,26,1082,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1150,26,1150,21,1,1154,26,1154,21,1,1150,26,1150,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1171,26,1171,21,1,1175,26,1175,21,1,1178,26,1178,21,1,1171,26,1171,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1193,26,1193,21,1,2453,26,2453,21,1,1201,26,1201,21,1,1193,26,1193,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1218,26,1218,21,1,2454,26,2454,21,1,1226,26,1226,21,1,1218,26,1218,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1240,26,1240,21,1,1244,26,1244,21,1,1247,26,1247,21,1,1240,26,1240,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1262,26,1262,21,1,2455,26,2455,21,1,1270,26,1270,21,1,1262,26,1262,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1286,26,1286,21,1,1291,26,1291,21,1,1286,26,1286,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1045,200,1045,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1312,200,1312,201,199,1,1317,200,1317,201,199,1,1312,200,1312,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1337,200,1337,201,199,1,1341,200,1341,201,199,1,1344,200,1344,201,199,1,1351,394,1351,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1364,394,1364,395,393,1,2456,394,2456,395,393,1,1372,394,1372,395,393,1,1364,394,1364,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1418,394,1418,395,393,1,1422,394,1422,395,393,1,1425,394,1425,395,393,1,1432,200,1432,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1418,394,1418,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1445,394,1445,395,393,1,2457,394,2457,395,393,1,1453,394,1453,395,393,1,1445,394,1445,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1466,394,1466,395,393,1,1471,394,1471,395,393,1,1466,394,1466,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1337,200,1337,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1495,200,1495,201,199,1,1499,200,1499,201,199,1,1495,200,1495,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,888,200,888,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1555,200,1555,201,199,1,1559,200,1559,201,199,1,1555,200,1555,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1576,200,1576,201,199,1,1579,200,1579,201,199,1,1582,200,1582,201,199,1,1576,200,1576,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1594,200,1594,201,199,1,2458,200,2458,201,199,1,1601,200,1601,201,199,1,1594,200,1594,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1614,200,1614,201,199,1,2459,200,2459,201,199,1,1621,200,1621,201,199,1,1614,200,1614,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1631,200,1631,201,199,1,1634,200,1634,201,199,1,1631,200,1631,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1646,200,1646,201,199,1,2460,200,2460,201,199,1,1653,200,1653,201,199,1,1646,200,1646,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,1665,200,1665,201,199,1,1670,200,1670,201,199,1,1665,200,1665,911,201,911,911,199,199,912,913,914,915,916,917,918,912,913,914,915,916,917,918,911,199,911,199,911,199,911,199,1,853,26,853,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1691,26,1691,21,1,2461,26,2461,21,1,1699,26,1699,21,1,1691,26,1691,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1715,26,1715,21,1,1720,26,1720,21,1,1715,26,1715,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,660,26,660,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1739,26,1739,21,1,1743,26,1743,21,1,1746,26,1746,21,1,1739,26,1739,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1761,26,1761,21,1,2462,26,2462,21,1,1769,26,1769,21,1,1761,26,1761,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,1785,26,1785,21,1,1790,26,1790,21,1,1785,26,1785,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,487,394,487,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1811,394,1811,395,393,1,1814,394,1814,395,393,1,1811,394,1811,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1829,394,1829,395,393,1,1833,394,1833,395,393,1,1829,394,1829,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,426,394,426,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1889,394,1889,395,393,1,1893,394,1893,395,393,1,1889,394,1889,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1910,394,1910,395,393,1,1913,394,1913,395,393,1,1910,394,1910,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1925,394,1925,395,393,1,2463,394,2463,395,393,1,1932,394,1932,395,393,1,1925,394,1925,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1945,394,1945,395,393,1,2464,394,2464,395,393,1,1952,394,1952,395,393,1,1945,394,1945,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1962,394,1962,395,393,1,1965,394,1965,395,393,1,1968,394,1968,395,393,1,1962,394,1962,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1980,394,1980,395,393,1,2465,394,2465,395,393,1,1987,394,1987,395,393,1,1980,394,1980,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,1999,394,1999,395,393,1,2004,394,2004,395,393,1,1999,394,1999,449,395,449,449,393,393,450,451,452,453,454,455,456,450,451,452,453,454,455,456,449,393,449,393,449,393,449,393,1,378,26,378,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2025,26,2025,21,1,2466,26,2466,21,1,2033,26,2033,21,1,2025,26,2025,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2046,26,2046,21,1,2467,26,2467,21,1,2054,26,2054,21,1,2046,26,2046,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2064,26,2064,21,1,2068,26,2068,21,1,2071,26,2071,21,1,2064,26,2064,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2086,26,2086,21,1,2468,26,2468,21,1,2094,26,2094,21,1,2086,26,2086,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2106,26,2106,21,1,2111,26,2111,21,1,2106,26,2106,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,186,26,186,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2132,26,2132,21,1,2136,26,2136,21,1,2139,26,2139,21,1,2132,26,2132,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2155,26,2155,21,1,2159,26,2159,21,1,2155,26,2155,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2176,26,2176,21,1,2180,26,2180,21,1,2183,26,2183,21,1,2187,394,2187,395,393,1,2196,26,2196,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2199,26,2199,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2210,26,2210,21,1,2219,26,2219,21,1,2224,26,2224,21,1,2199,26,2199,21,1,2219,26,2219,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2280,26,2280,21,1,2284,26,2284,21,1,2280,26,2280,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2301,26,2301,21,1,2305,26,2305,21,1,2308,26,2308,21,1,2301,26,2301,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2323,26,2323,21,1,2469,26,2469,21,1,2323,26,2323,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2340,26,2340,21,1,2470,26,2470,21,1,2340,26,2340,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2354,26,2354,21,1,2358,26,2358,21,1,2361,26,2361,21,1,2354,26,2354,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2376,26,2376,21,1,2471,26,2471,21,1,2376,26,2376,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2392,26,2392,21,1,2397,26,2397,21,1,2392,26,2392,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2176,26,2176,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,2416,26,2416,21,1,2420,26,2420,21,1,2423,26,2423,21,1,2427,200,2427,201,199,1,2416,26,2416,39,39,39,21,21,40,60,42,43,61,45,46,40,60,42,43,61,45,46,39,21,39,21,39,21,39,21,1,0];
_tsip_machine_parser_header_WWW_Authenticate_trans_targs=[2,0,1736,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,1734,26,1728,22,1738,24,1739,25,27,28,29,30,31,32,31,32,34,41,1536,56,110,1712,146,164,1740,33,35,42,34,38,44,35,36,38,1741,37,39,43,129,1742,40,1520,1743,1505,45,73,49,74,1744,46,47,1745,48,50,51,206,1746,52,55,52,53,1747,54,1748,57,58,59,60,61,109,64,61,62,1749,63,64,65,69,1750,66,67,1751,68,69,70,71,72,1752,52,55,38,75,108,76,79,77,78,80,95,81,93,82,83,91,84,85,89,86,87,88,90,92,94,96,104,97,100,98,99,101,102,103,105,106,107,1753,111,112,113,114,115,116,128,119,116,117,1754,118,119,120,124,1755,121,122,1756,123,124,125,126,127,1757,52,55,38,1758,130,131,132,1504,135,132,133,1759,134,136,140,1760,137,138,1761,139,141,183,184,143,185,141,142,143,1762,143,144,1763,145,55,147,148,149,150,151,163,154,151,152,1764,153,154,155,159,1765,156,157,1766,158,159,160,161,162,1767,52,55,38,1768,165,166,167,168,169,182,172,169,170,1769,171,173,175,180,1770,174,176,177,178,179,52,55,38,181,1771,183,184,185,1772,186,186,187,191,1773,188,189,1774,190,192,194,244,261,1429,1443,1458,1471,1485,1775,193,195,243,194,191,198,195,196,1776,197,199,207,203,208,1777,200,201,1778,202,204,189,204,205,1779,209,242,210,213,211,212,214,229,215,227,216,217,225,218,219,223,220,221,222,224,226,228,230,238,231,234,232,233,235,236,237,239,240,241,1780,245,246,247,248,249,250,251,252,253,260,256,253,254,1781,255,257,259,1782,258,204,189,259,191,1783,262,263,264,265,266,267,1428,270,267,268,1784,269,271,275,1785,272,273,1786,274,276,278,297,282,143,284,283,276,277,143,1787,278,279,282,284,283,1788,280,281,1789,186,285,287,1324,1341,1354,1368,1383,1395,1409,1790,286,288,1323,287,284,291,288,289,1791,290,292,296,1287,1792,293,294,1793,295,278,297,1794,299,306,298,302,308,299,300,302,1795,301,303,298,305,307,318,917,968,984,998,1796,304,1271,1797,1259,309,313,931,1798,310,311,1799,312,314,317,314,315,1800,316,1801,319,320,321,322,323,1258,326,323,324,1802,325,326,327,331,1803,328,329,1804,330,331,331,332,336,1805,333,334,1806,335,337,339,389,406,422,437,1211,1224,1239,1807,338,340,388,339,336,343,340,341,1808,342,344,349,348,352,1809,345,346,1810,347,204,189,191,350,334,350,351,1811,353,387,354,357,367,355,356,358,374,359,372,360,361,370,362,363,368,364,365,366,369,371,373,375,383,376,379,377,378,380,381,382,384,385,386,1812,390,391,392,393,394,395,396,397,398,405,401,398,399,1813,400,402,404,1814,403,350,334,404,336,1815,407,408,409,410,411,412,421,415,412,413,1816,414,416,420,1817,417,418,1818,419,278,297,284,1819,423,424,425,426,427,436,430,427,428,1820,429,430,431,435,1821,432,433,1822,434,435,350,334,336,1823,438,439,440,441,442,443,1210,446,443,444,1824,445,446,447,451,1825,448,449,1826,450,451,452,469,455,452,453,455,1827,454,456,458,507,524,540,555,571,1176,1191,1828,457,459,506,458,455,462,459,460,1829,461,463,468,467,470,1830,464,465,1831,466,204,189,191,452,469,1832,471,505,472,475,485,473,474,476,492,477,490,478,479,488,480,481,486,482,483,484,487,489,491,493,501,494,497,495,496,498,499,500,502,503,504,1833,508,509,510,511,512,513,514,515,516,523,519,516,517,1834,518,520,522,1835,521,452,469,522,455,1836,525,526,527,528,529,530,539,533,530,531,1837,532,534,538,1838,535,536,1839,537,278,297,284,1840,541,542,543,544,545,554,548,545,546,1841,547,548,549,553,1842,550,551,1843,552,553,350,334,336,1844,556,557,558,559,560,561,570,564,561,562,1845,563,564,565,569,1846,566,567,1847,568,569,452,469,455,1848,572,573,574,1175,577,574,575,1849,576,578,582,1850,579,580,1851,581,583,599,586,583,584,586,1852,585,587,589,1071,1088,1103,1117,1132,1142,1156,1853,588,590,1070,589,586,593,590,591,1854,592,594,598,1034,1855,595,596,1856,597,583,599,1857,601,608,600,604,610,601,602,604,1858,603,605,600,607,609,620,670,688,698,881,1859,606,1018,1860,900,611,615,633,1861,612,613,1862,614,616,619,616,617,1863,618,1864,621,622,623,624,625,669,628,625,626,1865,627,628,629,331,1866,630,631,1867,632,331,634,668,635,638,648,636,637,639,655,640,653,641,642,651,643,644,649,645,646,647,650,652,654,656,664,657,660,658,659,661,662,663,665,666,667,1868,671,672,673,674,675,676,687,679,676,677,1869,678,679,680,684,1870,681,682,1871,683,684,684,685,1872,686,469,1873,689,690,691,697,694,691,692,1874,693,695,1875,696,1876,699,700,701,702,703,880,706,703,704,1877,705,706,707,711,1878,708,709,1879,710,711,711,712,716,1880,713,714,1881,715,717,719,769,786,802,817,833,846,861,1882,718,720,768,719,716,723,720,721,1883,722,724,729,728,732,1884,725,726,1885,727,204,189,191,730,714,730,731,1886,733,767,734,737,747,735,736,738,754,739,752,740,741,750,742,743,748,744,745,746,749,751,753,755,763,756,759,757,758,760,761,762,764,765,766,1887,770,771,772,773,774,775,776,777,778,785,781,778,779,1888,780,782,784,1889,783,730,714,784,716,1890,787,788,789,790,791,792,801,795,792,793,1891,794,796,800,1892,797,798,1893,799,278,297,284,1894,803,804,805,806,807,816,810,807,808,1895,809,810,811,815,1896,812,813,1897,814,815,350,334,336,1898,818,819,820,821,822,823,832,826,823,824,1899,825,826,827,831,1900,828,829,1901,830,831,452,469,455,1902,834,835,836,845,839,836,837,1903,838,840,844,1904,841,842,1905,843,583,599,586,1906,847,848,849,850,851,860,854,851,852,1907,853,854,855,859,1908,856,857,1909,858,859,730,714,716,1910,862,863,864,865,866,879,869,866,867,1911,868,870,872,877,1912,871,873,874,875,876,730,714,716,878,1913,1914,882,883,884,885,886,899,889,886,887,1915,888,890,892,897,1916,891,893,894,895,896,616,619,604,898,1917,901,902,903,904,905,1017,908,905,906,1918,907,909,913,1919,910,911,1920,912,914,915,284,914,915,1921,916,297,918,919,920,921,922,923,967,926,923,924,1922,925,926,927,684,1923,928,929,1924,930,684,932,966,933,936,946,934,935,937,953,938,951,939,940,949,941,942,947,943,944,945,948,950,952,954,962,955,958,956,957,959,960,961,963,964,965,1925,969,970,971,983,974,971,972,1926,973,975,979,1927,976,977,1928,978,980,981,586,980,981,1929,982,599,1930,985,986,987,988,989,997,992,989,990,1931,991,992,993,711,1932,994,995,1933,996,711,1934,999,1000,1001,1002,1003,1016,1006,1003,1004,1935,1005,1007,1009,1014,1936,1008,1010,1011,1012,1013,314,317,302,1015,1937,1938,1019,1020,1021,1022,1023,1024,1025,1026,1033,1029,1026,1027,1939,1028,1030,1032,1940,1031,616,619,1032,604,1941,1035,1069,1036,1039,1049,1037,1038,1040,1056,1041,1054,1042,1043,1052,1044,1045,1050,1046,1047,1048,1051,1053,1055,1057,1065,1058,1061,1059,1060,1062,1063,1064,1066,1067,1068,1942,1072,1073,1074,1075,1076,1077,1078,1079,1080,1087,1083,1080,1081,1943,1082,1084,1086,1944,1085,583,599,1086,586,1945,1089,1090,1091,1092,1093,1094,1102,1097,1094,1095,1946,1096,1098,1947,1099,1100,1948,1101,1949,1104,1105,1106,1107,1108,1116,1111,1108,1109,1950,1110,1111,1112,1951,1113,1114,1952,1115,1953,1118,1119,1120,1121,1122,1123,1131,1126,1123,1124,1954,1125,1126,1127,1955,1128,1129,1956,1130,1957,1133,1134,1135,1141,1138,1135,1136,1958,1137,1139,1959,1140,1960,1143,1144,1145,1146,1147,1155,1150,1147,1148,1961,1149,1150,1151,1962,1152,1153,1963,1154,1964,1157,1158,1159,1160,1161,1174,1164,1161,1162,1965,1163,1165,1167,1172,1966,1166,1168,1169,1170,1171,583,599,586,1173,1967,1968,1177,1178,1179,1180,1181,1190,1184,1181,1182,1969,1183,1184,1185,1189,1970,1186,1187,1971,1188,1189,730,714,716,1972,1192,1193,1194,1195,1196,1209,1199,1196,1197,1973,1198,1200,1202,1207,1974,1201,1203,1204,1205,1206,452,469,455,1208,1975,1976,1212,1213,1214,1223,1217,1214,1215,1977,1216,1218,1222,1978,1219,1220,1979,1221,583,599,586,1980,1225,1226,1227,1228,1229,1238,1232,1229,1230,1981,1231,1232,1233,1237,1982,1234,1235,1983,1236,1237,730,714,716,1984,1240,1241,1242,1243,1244,1257,1247,1244,1245,1985,1246,1248,1250,1255,1986,1249,1251,1252,1253,1254,350,334,336,1256,1987,1988,1260,1261,1262,1263,1264,1270,1267,1264,1265,1989,1266,1268,1990,1269,1991,1272,1273,1274,1275,1276,1277,1278,1279,1286,1282,1279,1280,1992,1281,1283,1285,1993,1284,314,317,1285,302,1994,1288,1322,1289,1292,1302,1290,1291,1293,1309,1294,1307,1295,1296,1305,1297,1298,1303,1299,1300,1301,1304,1306,1308,1310,1318,1311,1314,1312,1313,1315,1316,1317,1319,1320,1321,1995,1325,1326,1327,1328,1329,1330,1331,1332,1333,1340,1336,1333,1334,1996,1335,1337,1339,1997,1338,278,297,1339,284,1998,1342,1343,1344,1345,1346,1347,1353,1350,1347,1348,1999,1349,1351,2000,1352,2001,1355,1356,1357,1358,1359,1367,1362,1359,1360,2002,1361,1362,1363,2003,1364,1365,2004,1366,2005,1369,1370,1371,1372,1373,1374,1382,1377,1374,1375,2006,1376,1377,1378,2007,1379,1380,2008,1381,2009,1384,1385,1386,1394,1389,1386,1387,2010,1388,1390,2011,1391,1392,2012,1393,2013,1396,1397,1398,1399,1400,1408,1403,1400,1401,2014,1402,1403,1404,2015,1405,1406,2016,1407,2017,1410,1411,1412,1413,1414,1427,1417,1414,1415,2018,1416,1418,1420,1425,2019,1419,1421,1422,1423,1424,278,297,284,1426,2020,2021,1430,1431,1432,1433,1434,1442,1437,1434,1435,2022,1436,1437,1438,367,2023,1439,1440,2024,1441,2025,1444,1445,1446,1447,1448,1449,1457,1452,1449,1450,2026,1451,1452,1453,485,2027,1454,1455,2028,1456,2029,1459,1460,1461,1470,1464,1461,1462,2030,1463,1465,1469,2031,1466,1467,2032,1468,583,599,586,2033,1472,1473,1474,1475,1476,1484,1479,1476,1477,2034,1478,1479,1480,747,2035,1481,1482,2036,1483,2037,1486,1487,1488,1489,1490,1503,1493,1490,1491,2038,1492,1494,1496,1501,2039,1495,1497,1498,1499,1500,204,189,191,1502,2040,2041,1506,1507,1508,1509,1510,1519,1513,1510,1511,2042,1512,1514,1518,2043,1515,1516,2044,1517,281,2045,1521,1522,1523,1524,1525,1526,1527,1528,1535,1531,1528,1529,2046,1530,1532,1534,2047,1533,52,55,1534,38,2048,1537,1538,1539,1540,1541,1542,1711,1545,1542,1543,2049,1544,1546,1550,2050,1547,1548,2051,1549,1551,1552,1553,1551,1552,1553,2052,1554,1554,1555,1559,2053,1556,1557,2054,1558,1560,1562,1609,1626,1642,1654,1667,1680,1692,2055,1561,1563,1608,1562,1559,1566,1563,1564,2056,1565,1567,1569,1572,2057,1568,1570,1557,1570,1571,2058,1573,1607,1574,1577,1587,1575,1576,1578,1594,1579,1592,1580,1581,1590,1582,1583,1588,1584,1585,1586,1589,1591,1593,1595,1603,1596,1599,1597,1598,1600,1601,1602,1604,1605,1606,2059,1610,1611,1612,1613,1614,1615,1616,1617,1618,1625,1621,1618,1619,2060,1620,1622,1624,2061,1623,1570,1557,1624,1559,2062,1627,1628,1629,1630,1631,1632,1641,1635,1632,1633,2063,1634,1636,1640,2064,1637,1638,2065,1639,278,297,284,2066,1643,1644,1645,1646,1647,1653,1650,1647,1648,2067,1649,1650,1651,2068,1652,2069,1655,1656,1657,1658,1659,1660,1666,1663,1660,1661,2070,1662,1663,1664,2071,1665,2072,1668,1669,1670,1679,1673,1670,1671,2073,1672,1674,1678,2074,1675,1676,2075,1677,583,599,586,2076,1681,1682,1683,1684,1685,1691,1688,1685,1686,2077,1687,1688,1689,2078,1690,2079,1693,1694,1695,1696,1697,1710,1700,1697,1698,2080,1699,1701,1703,1708,2081,1702,1704,1705,1706,1707,1570,1557,1559,1709,2082,2083,1713,1714,1715,1727,1718,1715,1716,2084,1717,1719,1723,2085,1720,1721,2086,1722,1724,1725,1726,1724,1725,1726,2087,1554,2088,1729,1730,1731,1732,1733,31,32,1735,1737,66,121,156,328,432,448,550,566,630,681,708,812,828,856,928,994,1113,1128,1152,1186,1234,1364,1379,1405,1439,1454,1481,1652,1665,1690];
_tsip_machine_parser_header_WWW_Authenticate_trans_actions=[9,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,0,0,0,0,5,5,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,0,27,0,0,1,1,27,0,0,27,0,0,0,0,0,27,0,0,27,0,0,0,0,27,25,25,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,0,0,0,27,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,0,0,0,27,17,17,17,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,1,1,1,38,1,0,0,23,27,0,0,27,0,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,0,0,0,27,11,11,11,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,0,0,0,27,23,0,0,0,27,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,0,27,0,0,27,0,25,25,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,1,41,41,1,29,41,1,0,0,13,27,0,0,0,0,0,27,0,0,27,13,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,27,0,0,27,0,25,25,27,25,25,0,25,0,0,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,0,27,0,0,0,0,27,0,0,27,0,25,25,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,47,27,1,1,27,0,13,0,0,0,27,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,0,27,0,0,27,0,15,15,15,25,25,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,32,32,32,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,15,15,15,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,15,15,15,0,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,0,27,0,0,27,0,17,17,17,25,25,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,35,35,35,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,17,17,17,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,17,17,17,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,53,53,53,0,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,27,0,0,27,0,25,25,27,25,25,0,25,0,0,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,0,27,0,0,0,0,27,0,0,27,0,25,25,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,38,27,1,1,27,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,38,27,1,1,27,0,23,0,0,27,0,0,27,0,0,25,25,0,0,0,27,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,38,27,1,1,27,0,23,0,0,0,27,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,0,27,0,0,27,0,11,11,11,25,25,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,44,44,44,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,11,11,11,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,11,11,11,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,44,44,44,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,11,11,11,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,0,0,0,0,25,25,0,0,0,27,0,0,23,27,0,0,27,0,1,1,1,0,0,27,0,0,0,0,0,0,0,25,25,0,0,0,27,0,1,1,47,27,1,1,27,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,25,25,0,0,0,27,0,0,13,27,0,0,27,0,1,1,1,0,0,27,0,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,29,27,1,1,27,0,13,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,27,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,25,25,0,0,0,27,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,17,17,17,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,50,50,50,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,0,15,15,15,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,25,25,0,0,0,27,0,0,27,0,27,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,25,25,0,0,0,27,0,0,27,0,0,27,0,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,1,27,0,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,41,41,41,27,0,0,0,0,25,25,0,0,0,27,0,1,1,1,27,1,1,27,0,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,1,27,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,1,1,1,0,0,0,27,13,0,0,0,27,0,0,27,0,0,1,1,1,1,1,1,1,1,27,0,25,25,0,25,0,0,0,27,0,0,0,0,27,0,25,25,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,25,25,0,0,0,27,0,0,1,27,0,21,21,0,21,27,0,0,0,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,56,56,56,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,27,0,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,56,56,56,27,0,0,0,0,25,25,0,0,0,27,0,1,1,27,1,27,0,0,0,0,25,25,0,0,0,27,0,0,1,1,27,0,0,0,0,0,19,19,19,0,27,27,0,0,25,25,0,0,0,27,0,0,0,27,0,0,27,0,1,1,1,0,0,0,27,23,27,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
tsip_machine_parser_header_WWW_Authenticate_start=1;tsip_machine_parser_header_WWW_Authenticate_first_final=1738;
tsip_machine_parser_header_WWW_Authenticate_error=0;tsip_machine_parser_header_WWW_Authenticate_en_main=1;
function tsip_header_WWW_Authenticate(){tsip_header.call(this,tsip_header_type_e.WWW_Authenticate);this.s_scheme=null;
this.s_realm=null;this.s_domain=null;this.s_nonce=null;this.s_opaque=null;this.b_stale=false;this.s_algorithm=null;
this.s_qop=null}tsip_header_WWW_Authenticate.prototype.toString=function(){return tsk_string_format('{0} realm="{1}"{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13},stale={14}{15}{16}',this.s_scheme,this.s_realm?this.s_realm:"",this.s_domain?',domain="':"",this.s_domain?this.s_domain:"",this.s_domain?'"':"",this.s_qop?',qop="':"",this.s_qop?this.s_qop:"",this.s_qop?'"':"",this.s_nonce?',nonce="':"",this.s_nonce?this.s_nonce:"",this.s_nonce?'"':"",this.s_opaque?',opaque="':"",this.s_opaque?this.s_opaque:"",this.s_opaque?'"':"",this.b_stale?"TRUE":"FALSE",this.s_algorithm?",algorithm=":"",this.s_algorithm?this.s_algorithm:"")
};tsip_header_WWW_Authenticate.prototype.Parse=function(n){var f=0;var l=0;var w=n.length;var j=w;var x=tsk_buff_str2ib(n);
var v;var h=new tsip_header_WWW_Authenticate();f=tsip_machine_parser_header_WWW_Authenticate_start;var g,o,b,e,d,s,m;
var q,k,a,r,u;var t;g=o=b=s=m=null;q=0;k=10;a=15;r=20;u=30;t=40;while(true){_trigger_goto=false;if(q<=0){if(l==w){q=u;
continue}if(f==0){q=t;continue}}if(q<=k){b=_tsip_machine_parser_header_WWW_Authenticate_key_offsets[f];
o=_tsip_machine_parser_header_WWW_Authenticate_index_offsets[f];g=_tsip_machine_parser_header_WWW_Authenticate_single_lengths[f];
_break_match=false;do{if(g>0){_lower=b;_upper=b+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(x[l]<_tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]){_upper=_mid-1}else{if(x[l]>_tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]){_lower=_mid+1
}else{o+=(_mid-b);_break_match=true;break}}}if(_break_match){break}b+=g;o+=g}g=_tsip_machine_parser_header_WWW_Authenticate_range_lengths[f];
if(g>0){_lower=b;_upper=b+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(x[l]<_tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]){_upper=_mid-2}else{if(x[l]>_tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid+1]){_lower=_mid+2
}else{o+=((_mid-b)>>1);_break_match=true;break}}}if(_break_match){break}o+=g}}while(false);o=_tsip_machine_parser_header_WWW_Authenticate_indicies[o];
f=_tsip_machine_parser_header_WWW_Authenticate_trans_targs[o];if(_tsip_machine_parser_header_WWW_Authenticate_trans_actions[o]!=0){s=_tsip_machine_parser_header_WWW_Authenticate_trans_actions[o];
m=_tsip_machine_parser_header_WWW_Authenticate_actions[s];s+=1;while(m>0){m-=1;s+=1;switch(_tsip_machine_parser_header_WWW_Authenticate_actions[s-1]){case 0:v=l;
break;case 1:h.s_scheme="Digest";break;case 2:h.s_scheme="Basic";break;case 3:tsip_header.call(h,tsip_header_type_e.WWW_Authenticate);
break;case 4:tsip_header.call(h,tsip_header_type_e.Proxy_Authenticate);break;case 5:h.s_realm=tsk_string_unquote_2(tsk_ragel_parser_get_string(n,l,v));
break;case 6:h.s_domain=tsk_ragel_parser_get_string(n,l,v);break;case 7:h.s_nonce=tsk_string_unquote_2(tsk_ragel_parser_get_string(n,l,v));
break;case 8:h.s_opaque=tsk_string_unquote_2(tsk_ragel_parser_get_string(n,l,v));break;case 9:var c=tsk_ragel_parser_get_string(n,l,v);
h.b_stale=tsk_string_iequals(c,"true");break;case 10:h.s_algorithm=tsk_ragel_parser_get_string(n,l,v);
break;case 11:h.s_qop=tsk_ragel_parser_get_string(n,l,v);break;case 12:tsk_ragel_add_param(n,l,v,h.ao_params);
break;case 13:break}}}if(_trigger_goto){continue}}if(q<=r){if(f==0){q=t;continue}l+=1;if(l!=w){q=k;continue
}}if(q<=u){}if(q<=t){break}}if(f<1738){tsk_utils_log_error("Failed to parse 'WWW-Authenticate' header: "+n);
return null}return h};function prev_not_comma(a,b){return(a.i_pe<=b)||(a.o_data[b-1]!=",")}_tsip_machine_parser_headers_actions=[0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,16,1,17,1,18,1,19,1,20,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,31,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1,48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1,57,1,58,1,59,1,60,1,61,1,62,1,63,1,64,1,65,1,66,1,67,1,68,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,78,1,79,1,80,1,81,1,82,1,83,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,92];
_tsip_machine_parser_headers_key_offsets=[0,0,54,71,74,79,82,83,84,86,109,128,147,166,185,202,205,210,213,214,215,217,242,261,280,299,318,337,356,373,376,381,384,385,386,388,407,426,445,464,483,502,521,538,541,546,549,550,551,553,572,591,610,629,648,667,686,703,706,711,714,715,716,718,737,756,775,794,813,832,851,868,887,906,925,944,963,982,1001,1020,1037,1040,1045,1048,1049,1050,1052,1073,1092,1111,1128,1147,1166,1185,1204,1221,1224,1229,1232,1233,1234,1236,1255,1274,1291,1294,1299,1302,1303,1304,1306,1325,1344,1363,1382,1401,1420,1437,1440,1445,1448,1449,1450,1452,1471,1490,1511,1530,1549,1568,1587,1606,1625,1644,1663,1682,1699,1718,1737,1756,1775,1792,1795,1800,1803,1804,1805,1807,1826,1845,1864,1883,1902,1921,1940,1959,1976,1979,1984,1987,1988,1989,1991,2014,2033,2052,2069,2088,2109,2126,2129,2134,2137,2138,2139,2141,2160,2179,2196,2199,2204,2207,2208,2209,2211,2230,2249,2270,2289,2308,2325,2328,2333,2336,2337,2338,2340,2359,2378,2395,2420,2439,2458,2477,2496,2515,2534,2553,2572,2591,2610,2627,2630,2635,2638,2639,2640,2642,2661,2680,2699,2718,2737,2756,2775,2792,2795,2800,2803,2804,2805,2807,2828,2847,2866,2885,2904,2923,2942,2959,2962,2967,2970,2971,2972,2974,2993,3012,3031,3050,3067,3070,3075,3078,3079,3080,3082,3101,3120,3139,3156,3159,3164,3167,3168,3169,3171,3190,3209,3226,3229,3234,3237,3238,3239,3241,3260,3279,3298,3315,3318,3323,3326,3327,3328,3330,3353,3372,3391,3410,3427,3446,3465,3484,3503,3520,3523,3528,3531,3532,3533,3535,3554,3573,3592,3609,3612,3617,3620,3621,3622,3624,3643,3662,3681,3700,3719,3736,3739,3744,3747,3748,3749,3751,3770,3789,3808,3825,3828,3833,3836,3837,3838,3840,3859,3878,3897,3916,3935,3954,3971,3990,4009,4028,4047,4064,4067,4072,4075,4076,4077,4079,4100,4119,4138,4157,4176,4195,4214,4231,4234,4239,4242,4243,4244,4246,4265,4284,4303,4322,4339,4342,4347,4350,4351,4352,4354,4372,4391,4410,4429,4448,4467,4484,4503,4522,4539,4542,4547,4550,4551,4552,4554,4573,4592,4611,4628,4631,4636,4639,4640,4641,4643,4664,4683,4700,4719,4738,4757,4776,4795,4814,4833,4852,4869,4872,4877,4880,4881,4882,4884,4905,4924,4941,4960,4979,4998,5017,5036,5055,5074,5091,5094,5099,5102,5103,5104,5106,5123,5144,5163,5182,5201,5220,5239,5258,5275,5278,5283,5286,5287,5288,5290,5309,5326,5329,5334,5337,5338,5339,5341,5360,5379,5398,5417,5436,5455,5474,5493,5512,5531,5550,5567,5570,5575,5578,5579,5580,5582,5603,5636,5659,5678,5697,5716,5735,5752,5771,5790,5809,5828,5847,5866,5885,5902,5921,5940,5959,5978,5995,5998,6003,6006,6007,6008,6010,6029,6048,6067,6086,6103,6122,6141,6160,6179,6198,6215,6218,6223,6226,6227,6228,6230,6249,6270,6289,6308,6327,6346,6363,6382,6401,6420,6439,6458,6477,6496,6515,6532,6535,6540,6543,6544,6545,6547,6566,6585,6604,6623,6642,6661,6678,6697,6716,6735,6752,6755,6760,6763,6764,6765,6767,6788,6807,6826,6845,6864,6881,6900,6919,6938,6957,6976,6993,7012,7031,7048,7051,7056,7059,7060,7061,7063,7082,7101,7120,7139,7158,7177,7194,7215,7234,7253,7272,7291,7310,7329,7348,7365,7384,7403,7422,7441,7460,7479,7498,7517,7536,7553,7556,7561,7564,7565,7566,7568,7587,7606,7625,7644,7663,7680,7683,7688,7691,7692,7693,7695,7714,7733,7750,7777,7796,7815,7834,7853,7872,7891,7908,7927,7946,7965,7984,8001,8004,8009,8012,8013,8014,8016,8035,8054,8073,8090,8093,8098,8101,8102,8103,8105,8124,8143,8162,8179,8182,8187,8190,8191,8192,8194,8213,8232,8251,8270,8289,8308,8327,8344,8347,8352,8355,8356,8357,8359,8378,8397,8416,8435,8452,8471,8490,8509,8528,8547,8564,8583,8602,8619,8622,8627,8630,8631,8632,8634,8653,8672,8691,8710,8727,8746,8765,8784,8803,8822,8839,8842,8847,8850,8851,8852,8854,8873,8892,8911,8930,8947,8966,8985,9004,9023,9042,9061,9080,9099,9118,9137,9156,9175,9194,9211,9214,9219,9222,9223,9224,9226,9245,9266,9285,9304,9323,9342,9361,9380,9397,9416,9435,9454,9473,9492,9511,9530,9549,9566,9569,9574,9577,9578,9579,9581,9600,9619,9638,9657,9674,9693,9712,9731,9748,9751,9756,9759,9760,9761,9763,9782,9801,9820,9837,9856,9875,9894,9913,9932,9951,9970,9989,10006,10009,10014,10017,10018,10019,10021,10040,10059,10078,10097,10116,10135,10152,10171,10190,10209,10228,10247,10266,10285,10302,10321,10340,10357,10360,10365,10368,10369,10370,10372,10391,10410,10427,10430,10435,10438,10439,10440,10442,10463,10484,10503,10522,10541,10560,10577,10580,10585,10588,10589,10590,10592,10611,10630,10649,10666,10669,10674,10677,10678,10679,10681,10700,10719,10736,10757,10776,10795,10814,10835,10854,10873,10892,10911,10930,10949,10968,10985,10988,10993,10996,11000,11001,11003,11022,11041,11060,11079,11098,11117,11136,11155,11172,11175,11180,11183,11184,11185,11187,11206,11225,11244,11263,11282,11301,11318,11321,11326,11329,11330,11331,11333,11358,11377,11396,11413,11416,11421,11424,11425,11426,11428,11461,11480,11499,11518,11535,11538,11543,11546,11547,11548,11550,11569,11588,11607,11624,11643,11662,11681,11700,11719,11736,11739,11744,11747,11748,11749,11751,11770,11789,11808,11829,11848,11867,11884,11887,11892,11895,11896,11897,11899,11918,11935,11938,11943,11946,11947,11948,11950,11969,11988,12005,12024,12043,12060,12063,12068,12071,12072,12073,12075,12094,12113,12132,12149,12168,12187,12206,12225,12244,12263,12282,12299,12302,12307,12310,12311,12312,12314,12333,12354,12373,12392,12411,12428,12431,12436,12439,12440,12441,12443,12460,12479,12498,12515,12518,12523,12526,12527,12528,12530,12549,12570,12589,12608,12625,12644,12663,12682,12701,12720,12739,12758,12777,12796,12815,12834,12851,12854,12859,12862,12863,12864,12866,12885,12904,12921,12924,12929,12932,12933,12934,12936,12955,12974,12993,13012,13031,13048,13067,13086,13105,13124,13143,13162,13181,13200,13217,13220,13225,13228,13229,13230,13232,13251,13270,13287,13306,13325,13344,13363,13382,13399,13402,13407,13410,13411,13412,13414,13433,13452,13471,13488,13491,13496,13499,13500,13501,13503,13522,13541,13558,13561,13566,13569,13570,13571,13573,13596,13599,13604,13607,13608,13609,13611,13634,13653,13672,13691,13710,13729,13746,13769,13788,13807,13826,13845,13864,13881,13884,13889,13892,13893,13894,13896,13915,13934,13953,13972,13991,14008,14011,14016,14019,14020,14021,14023,14042,14061,14080,14099,14118,14135,14138,14143,14146,14147,14148,14150,14169,14190,14209,14226,14229,14234,14237,14238,14239,14241,14260,14279,14296,14315,14334,14353,14372,14391,14408,14411,14416,14419,14420,14421,14423,14442,14461,14480,14499,14516,14535,14554,14573,14592,14611,14630,14649,14666,14669,14674,14677,14678,14679,14681,14700,14717,14738,14757,14776,14795,14812,14815,14820,14823,14824,14825,14827,14846,14863,14882,14901,14920,14939,14958,14975,14978,14983,14986,14987,14988,14990,15011,15032,15051,15070,15089,15106,15125,15144,15163,15182,15201,15220,15239,15258,15275,15294,15313,15332,15351,15370,15387,15390,15395,15398,15399,15400,15402,15421,15440,15459,15478,15497,15516,15533,15536,15541,15544,15545,15546,15548,15571,15590,15609,15628,15647,15664,15683,15702,15721,15740,15759,15778,15795,15798,15803,15806,15807,15808,15810,15829,15848,15867,15886,15905,15924,15943,15960,15963,15968,15971,15972,15973,15975,15992,15995,16000,16003,16004,16005,16007,16028,16047,16066,16085,16104,16123,16142,16161,16180,16199,16216,16219,16224,16227,16228,16229,16231,16250,16269,16286,16305,16324,16343,16362,16381,16398,16401,16406,16409,16410,16411,16413,16432,16451,16468,16471,16476,16479,16480,16481,16483,16504,16523,16542,16561,16580,16599,16616,16619,16624,16627,16628,16629,16631,16650,16667,16686,16705,16724,16743,16762,16781,16800,16819,16838,16857,16876,16895,16912,16915,16920,16923,16927,16928,16930,16953,16976,16995,17018,17037,17058,17077,17098,17123,17146,17167,17186,17203,17203,17206];
_tsip_machine_parser_headers_trans_keys=[33,37,39,65,67,68,69,70,72,73,74,77,79,80,82,83,84,85,86,87,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,114,115,116,117,118,119,120,121,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,76,85,99,108,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,69,76,82,99,101,108,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,76,101,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,86,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,79,101,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,90,122,126,42,43,45,46,48,57,65,89,95,121,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,79,83,97,111,115,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,78,100,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,69,97,101,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,68,69,76,84,100,101,108,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,69,97,101,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,81,113,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,86,88,114,118,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,77,109,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,68,78,100,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,95,126,42,43,45,46,48,57,65,90,96,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,73,97,105,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,88,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,77,78,109,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,86,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,69,83,101,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,88,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,90,122,126,42,43,45,46,48,57,65,89,95,121,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,45,46,58,65,82,97,114,126,42,43,48,57,66,90,95,122,9,32,33,37,39,58,65,67,68,69,77,80,85,86,97,99,100,101,109,112,117,118,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,78,83,99,110,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,75,107,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,79,101,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,72,97,104,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,70,86,102,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,66,76,79,82,84,98,108,111,114,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,77,109,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,90,122,126,42,43,45,46,48,57,65,89,95,121,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,79,101,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,75,107,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,66,98,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,75,107,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,73,79,105,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,86,111,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,88,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,82,97,114,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,79,101,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,13,0,65535,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,90,122,126,42,43,45,46,48,57,65,89,95,121,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,81,113,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,69,79,83,97,101,111,115,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,75,107,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,67,70,74,80,81,83,84,97,99,102,106,112,113,115,116,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,82,114,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,83,84,115,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,66,98,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,66,98,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,89,97,121,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,73,101,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,81,113,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,73,85,101,105,117,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,82,83,99,114,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,67,83,86,99,115,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,86,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,89,121,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,86,118,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,73,101,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,88,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,69,73,101,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,70,102,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,77,109,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,66,80,98,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,74,83,106,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,73,79,97,105,111,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,76,108,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,77,109,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,77,109,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,78,83,110,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,83,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,80,112,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,100,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,65,87,97,119,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,71,103,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,10,9,32,9,32,33,37,39,58,87,119,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,45,46,58,126,42,43,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,85,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,72,104,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,78,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,67,99,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,84,116,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,69,101,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,9,32,58,9,13,32,0,65535,13,0,65535,10,13,0,65535,10,9,32,9,32,33,37,39,58,67,76,85,99,108,117,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,79,83,97,111,115,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,65,97,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,82,86,88,114,118,120,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,82,114,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,68,78,100,110,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,79,111,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,65,73,97,105,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,65,69,79,83,97,101,111,115,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,65,73,79,97,105,111,126,42,43,45,46,48,57,66,90,95,122,9,32,33,37,39,58,78,83,110,115,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,73,105,126,42,43,45,46,48,57,65,90,95,122,9,32,33,37,39,58,126,42,43,45,46,48,57,65,90,95,122,13,0,65535,13,0,65535,0];
_tsip_machine_parser_headers_single_lengths=[0,44,7,3,3,1,1,1,2,13,9,9,9,9,9,3,3,1,1,1,2,15,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,3,3,1,1,1,2,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,13,9,9,9,9,11,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,9,9,11,9,9,7,3,3,1,1,1,2,9,9,9,15,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,13,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,3,3,1,1,1,2,9,9,9,9,7,3,3,1,1,1,2,8,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,11,9,9,9,9,9,9,7,3,3,1,1,1,2,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,13,23,13,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,11,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,17,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,11,11,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,9,11,9,9,9,11,9,9,9,9,9,9,9,7,3,3,1,2,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,7,3,3,1,1,1,2,15,9,9,7,3,3,1,1,1,2,23,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,11,11,9,9,7,3,3,1,1,1,2,9,7,3,3,1,1,1,2,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,11,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,13,3,3,1,1,1,2,13,9,9,9,9,9,9,13,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,7,3,3,1,1,1,2,9,11,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,11,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,11,11,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,7,3,3,1,1,1,2,13,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,7,3,3,1,1,1,2,7,3,3,1,1,1,2,11,9,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,7,3,3,1,1,1,2,9,9,7,3,3,1,1,1,2,11,9,9,9,9,9,7,3,3,1,1,1,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,3,3,1,2,1,2,13,13,9,13,9,11,9,11,15,13,11,9,7,0,1,1];
_tsip_machine_parser_headers_range_lengths=[0,5,5,0,1,1,0,0,0,5,5,5,5,5,4,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,4,0,1,1,0,0,0,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,4,0,1,1,0,0,0,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,5,5,0,1,1,0,0,0,4,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,4,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,4,5,5,5,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,5,4,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,0,1,1,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,1,0,0,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,0,1,1,0,0,0,5,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,0,1,1,0,0,0,5,5,0,1,1,0,0,0,5,5,4,5,5,5,0,1,1,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,4,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,0,1,1,0,0,0,5,5,5,5,5,5,4,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,4,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,4,5,5,5,5,5,0,1,1,0,0,0,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,4,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,0,1,1,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,0,0,5,5,4,5,5,5,5,5,5,0,1,1,0,0,0,5,5,5,0,1,1,0,0,0,5,5,5,5,5,5,5,0,1,1,0,0,0,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,1,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1];
_tsip_machine_parser_headers_index_offsets=[0,0,50,63,67,72,75,77,79,82,101,116,131,146,161,175,179,184,187,189,191,194,215,230,245,260,275,290,305,318,322,327,330,332,334,337,352,367,382,397,412,427,442,455,459,464,467,469,471,474,489,504,519,534,549,564,579,592,596,601,604,606,608,611,626,641,656,671,686,701,716,730,745,760,775,790,805,820,835,850,863,867,872,875,877,879,882,899,914,929,943,958,973,988,1003,1016,1020,1025,1028,1030,1032,1035,1050,1065,1079,1083,1088,1091,1093,1095,1098,1113,1128,1143,1158,1173,1188,1201,1205,1210,1213,1215,1217,1220,1235,1250,1267,1282,1297,1312,1327,1342,1357,1372,1387,1402,1416,1431,1446,1461,1476,1489,1493,1498,1501,1503,1505,1508,1523,1538,1553,1568,1583,1598,1613,1628,1641,1645,1650,1653,1655,1657,1660,1679,1694,1709,1723,1738,1755,1768,1772,1777,1780,1782,1784,1787,1802,1817,1830,1834,1839,1842,1844,1846,1849,1864,1879,1896,1911,1926,1939,1943,1948,1951,1953,1955,1958,1973,1988,2002,2023,2038,2053,2068,2083,2098,2113,2128,2143,2158,2173,2186,2190,2195,2198,2200,2202,2205,2220,2235,2250,2265,2280,2295,2310,2323,2327,2332,2335,2337,2339,2342,2359,2374,2389,2404,2419,2434,2449,2462,2466,2471,2474,2476,2478,2481,2496,2511,2526,2541,2554,2558,2563,2566,2568,2570,2573,2588,2603,2618,2631,2635,2640,2643,2645,2647,2650,2665,2680,2693,2697,2702,2705,2707,2709,2712,2727,2742,2757,2770,2774,2779,2782,2784,2786,2789,2808,2823,2838,2853,2867,2882,2897,2912,2927,2940,2944,2949,2952,2954,2956,2959,2974,2989,3004,3017,3021,3026,3029,3031,3033,3036,3051,3066,3081,3096,3111,3124,3128,3133,3136,3138,3140,3143,3158,3173,3188,3201,3205,3210,3213,3215,3217,3220,3235,3250,3265,3280,3295,3310,3324,3339,3354,3369,3384,3397,3401,3406,3409,3411,3413,3416,3433,3448,3463,3478,3493,3508,3523,3537,3541,3546,3549,3551,3553,3556,3571,3586,3601,3616,3629,3633,3638,3641,3643,3645,3648,3662,3677,3692,3707,3722,3737,3751,3766,3781,3794,3798,3803,3806,3808,3810,3813,3828,3843,3858,3871,3875,3880,3883,3885,3887,3890,3907,3922,3936,3951,3966,3981,3996,4011,4026,4041,4056,4069,4073,4078,4081,4083,4085,4088,4105,4120,4134,4149,4164,4179,4194,4209,4224,4239,4252,4256,4261,4264,4266,4268,4271,4285,4302,4317,4332,4347,4362,4377,4392,4405,4409,4414,4417,4419,4421,4424,4439,4452,4456,4461,4464,4466,4468,4471,4486,4501,4516,4531,4546,4561,4576,4591,4606,4621,4636,4649,4653,4658,4661,4663,4665,4668,4686,4715,4734,4749,4764,4779,4794,4808,4823,4838,4853,4868,4883,4898,4913,4927,4942,4957,4972,4987,5000,5004,5009,5012,5014,5016,5019,5034,5049,5064,5079,5093,5108,5123,5138,5153,5168,5181,5185,5190,5193,5195,5197,5200,5215,5232,5247,5262,5277,5292,5306,5321,5336,5351,5366,5381,5396,5411,5426,5439,5443,5448,5451,5453,5455,5458,5473,5488,5503,5518,5533,5548,5562,5577,5592,5607,5620,5624,5629,5632,5634,5636,5639,5656,5671,5686,5701,5716,5730,5745,5760,5775,5790,5805,5819,5834,5849,5862,5866,5871,5874,5876,5878,5881,5896,5911,5926,5941,5956,5971,5985,6002,6017,6032,6047,6062,6077,6092,6107,6121,6136,6151,6166,6181,6196,6211,6226,6241,6256,6269,6273,6278,6281,6283,6285,6288,6303,6318,6333,6348,6363,6376,6380,6385,6388,6390,6392,6395,6410,6425,6439,6462,6477,6492,6507,6522,6537,6552,6566,6581,6596,6611,6626,6639,6643,6648,6651,6653,6655,6658,6673,6688,6703,6716,6720,6725,6728,6730,6732,6735,6750,6765,6780,6793,6797,6802,6805,6807,6809,6812,6827,6842,6857,6872,6887,6902,6917,6930,6934,6939,6942,6944,6946,6949,6964,6979,6994,7009,7023,7038,7053,7068,7083,7098,7112,7127,7142,7155,7159,7164,7167,7169,7171,7174,7189,7204,7219,7234,7248,7263,7278,7293,7308,7323,7336,7340,7345,7348,7350,7352,7355,7370,7385,7400,7415,7429,7444,7459,7474,7489,7504,7519,7534,7549,7564,7579,7594,7609,7624,7637,7641,7646,7649,7651,7653,7656,7671,7688,7703,7718,7733,7748,7763,7778,7792,7807,7822,7837,7852,7867,7882,7897,7912,7925,7929,7934,7937,7939,7941,7944,7959,7974,7989,8004,8018,8033,8048,8063,8076,8080,8085,8088,8090,8092,8095,8110,8125,8140,8154,8169,8184,8199,8214,8229,8244,8259,8274,8287,8291,8296,8299,8301,8303,8306,8321,8336,8351,8366,8381,8396,8410,8425,8440,8455,8470,8485,8500,8515,8529,8544,8559,8572,8576,8581,8584,8586,8588,8591,8606,8621,8634,8638,8643,8646,8648,8650,8653,8670,8687,8702,8717,8732,8747,8760,8764,8769,8772,8774,8776,8779,8794,8809,8824,8837,8841,8846,8849,8851,8853,8856,8871,8886,8900,8917,8932,8947,8962,8979,8994,9009,9024,9039,9054,9069,9084,9097,9101,9106,9109,9113,9115,9118,9133,9148,9163,9178,9193,9208,9223,9238,9251,9255,9260,9263,9265,9267,9270,9285,9300,9315,9330,9345,9360,9373,9377,9382,9385,9387,9389,9392,9413,9428,9443,9456,9460,9465,9468,9470,9472,9475,9504,9519,9534,9549,9562,9566,9571,9574,9576,9578,9581,9596,9611,9626,9640,9655,9670,9685,9700,9715,9728,9732,9737,9740,9742,9744,9747,9762,9777,9793,9810,9825,9840,9853,9857,9862,9865,9867,9869,9872,9887,9900,9904,9909,9912,9914,9916,9919,9934,9949,9963,9978,9993,10006,10010,10015,10018,10020,10022,10025,10040,10055,10070,10084,10099,10114,10129,10144,10159,10174,10189,10202,10206,10211,10214,10216,10218,10221,10236,10253,10268,10283,10298,10311,10315,10320,10323,10325,10327,10330,10344,10359,10374,10387,10391,10396,10399,10401,10403,10406,10421,10438,10453,10468,10482,10497,10512,10527,10542,10557,10572,10587,10602,10617,10632,10647,10660,10664,10669,10672,10674,10676,10679,10694,10709,10722,10726,10731,10734,10736,10738,10741,10756,10771,10786,10801,10816,10830,10845,10860,10875,10890,10905,10920,10935,10950,10963,10967,10972,10975,10977,10979,10982,10997,11012,11026,11041,11056,11071,11086,11101,11114,11118,11123,11126,11128,11130,11133,11148,11163,11178,11191,11195,11200,11203,11205,11207,11210,11225,11240,11253,11257,11262,11265,11267,11269,11272,11291,11295,11300,11303,11305,11307,11310,11329,11344,11359,11374,11389,11404,11418,11437,11452,11467,11482,11497,11512,11525,11529,11534,11537,11539,11541,11544,11559,11574,11589,11604,11619,11632,11636,11641,11644,11646,11648,11651,11666,11681,11696,11711,11726,11739,11743,11748,11751,11753,11755,11758,11773,11790,11805,11818,11822,11827,11830,11832,11834,11837,11852,11867,11881,11896,11911,11926,11941,11956,11969,11973,11978,11981,11983,11985,11988,12003,12018,12033,12048,12062,12077,12092,12107,12122,12137,12152,12167,12180,12184,12189,12192,12194,12196,12199,12214,12228,12245,12260,12275,12290,12303,12307,12312,12315,12317,12319,12322,12337,12351,12366,12381,12396,12411,12426,12439,12443,12448,12451,12453,12455,12458,12475,12492,12507,12522,12537,12550,12565,12580,12595,12610,12625,12640,12655,12670,12684,12699,12714,12729,12744,12759,12772,12776,12781,12784,12786,12788,12791,12806,12821,12836,12851,12866,12881,12894,12898,12903,12906,12908,12910,12913,12932,12947,12962,12977,12992,13006,13021,13036,13051,13066,13081,13096,13109,13113,13118,13121,13123,13125,13128,13143,13158,13173,13188,13203,13218,13233,13246,13250,13255,13258,13260,13262,13265,13278,13282,13287,13290,13292,13294,13297,13314,13329,13344,13359,13374,13389,13404,13419,13434,13449,13462,13466,13471,13474,13476,13478,13481,13496,13511,13525,13540,13555,13570,13585,13600,13613,13617,13622,13625,13627,13629,13632,13647,13662,13675,13679,13684,13687,13689,13691,13694,13711,13726,13741,13756,13771,13786,13799,13803,13808,13811,13813,13815,13818,13833,13847,13862,13877,13892,13907,13922,13937,13952,13967,13982,13997,14012,14027,14040,14044,14049,14052,14056,14058,14061,14080,14099,14114,14133,14148,14165,14180,14197,14218,14237,14254,14269,14282,14283,14286];
_tsip_machine_parser_headers_indicies=[0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,7,25,26,27,28,29,30,11,12,31,14,32,33,34,18,35,36,0,0,0,0,0,0,1,37,37,0,0,0,38,0,0,0,0,0,0,1,37,37,38,1,38,40,38,39,1,41,39,1,42,1,43,1,39,39,1,37,37,0,0,0,38,44,45,46,44,45,46,0,0,0,0,0,0,1,37,37,0,0,0,38,47,47,0,0,0,0,0,0,1,37,37,0,0,0,38,48,48,0,0,0,0,0,0,1,37,37,0,0,0,38,49,49,0,0,0,0,0,0,1,37,37,0,0,0,38,50,50,0,0,0,0,0,0,1,51,51,0,0,0,52,0,53,0,0,0,0,0,1,51,51,53,1,53,55,53,54,1,56,54,1,57,1,58,1,54,54,1,37,37,0,0,0,38,59,60,61,62,59,60,61,62,0,0,0,0,0,0,1,37,37,0,0,0,38,63,63,0,0,0,0,0,0,1,37,37,0,0,0,38,64,64,0,0,0,0,0,0,1,37,37,0,0,0,38,65,65,0,0,0,0,0,0,1,37,37,0,0,0,38,66,66,0,0,0,0,0,0,1,37,37,0,0,0,38,67,67,0,0,0,0,0,0,1,37,37,0,0,0,38,68,68,0,0,0,0,0,0,1,69,69,0,0,0,70,0,0,0,0,0,0,1,69,69,70,1,70,72,70,71,1,73,71,1,74,1,75,1,71,71,1,37,37,0,0,0,38,76,76,0,0,0,0,0,0,1,37,37,0,0,0,38,77,77,0,0,0,0,0,0,1,37,37,0,0,0,38,78,78,0,0,0,0,0,0,1,37,37,0,0,0,38,79,79,0,0,0,0,0,0,1,37,37,0,0,0,38,80,80,0,0,0,0,0,0,1,37,37,0,0,0,38,81,81,0,0,0,0,0,0,1,37,37,0,0,0,38,82,82,0,0,0,0,0,0,1,83,83,0,0,0,84,0,0,0,0,0,0,1,83,83,84,1,84,86,84,85,1,87,85,1,88,1,89,1,85,85,1,37,37,0,0,0,38,90,90,0,0,0,0,0,0,1,37,37,0,0,0,38,91,91,0,0,0,0,0,0,1,37,37,0,0,0,38,92,92,0,0,0,0,0,0,1,37,37,0,0,0,38,93,93,0,0,0,0,0,0,1,37,37,0,0,0,38,94,94,0,0,0,0,0,0,1,37,37,0,0,0,38,95,95,0,0,0,0,0,0,1,37,37,0,0,0,38,96,96,0,0,0,0,0,0,1,97,97,0,0,0,98,0,0,0,0,0,0,1,97,97,98,1,98,100,98,99,1,101,99,1,102,1,103,1,99,99,1,37,37,0,0,0,38,104,104,0,0,0,0,0,0,1,37,37,0,0,0,38,105,105,0,0,0,0,0,0,1,37,37,0,0,0,38,106,106,0,0,0,0,0,0,1,37,37,0,0,0,38,107,107,0,0,0,0,0,0,1,37,37,0,0,0,38,108,108,0,0,0,0,0,0,1,37,37,0,0,0,38,109,109,0,0,0,0,0,0,1,37,37,0,0,0,38,110,110,0,0,0,0,0,0,1,37,37,0,0,0,111,0,38,0,0,0,0,0,1,37,37,0,0,0,38,112,112,0,0,0,0,0,0,1,37,37,0,0,0,38,113,113,0,0,0,0,0,0,1,37,37,0,0,0,38,114,114,0,0,0,0,0,0,1,37,37,0,0,0,38,115,115,0,0,0,0,0,0,1,37,37,0,0,0,38,116,116,0,0,0,0,0,0,1,37,37,0,0,0,38,117,117,0,0,0,0,0,0,1,37,37,0,0,0,38,118,118,0,0,0,0,0,0,1,37,37,0,0,0,38,119,119,0,0,0,0,0,0,1,120,120,0,0,0,121,0,0,0,0,0,0,1,120,120,121,1,121,123,121,122,1,124,122,1,125,1,126,1,122,122,1,37,37,0,0,0,38,127,128,127,128,0,0,0,0,0,0,1,37,37,0,0,0,38,129,129,0,0,0,0,0,0,1,37,37,0,0,0,38,130,130,0,0,0,0,0,0,1,37,37,0,0,0,131,0,38,0,0,0,0,0,1,37,37,0,0,0,38,132,132,0,0,0,0,0,0,1,37,37,0,0,0,38,133,133,0,0,0,0,0,0,1,37,37,0,0,0,38,134,134,0,0,0,0,0,0,1,37,37,0,0,0,38,135,135,0,0,0,0,0,0,1,136,136,0,0,0,137,0,0,0,0,0,0,1,136,136,137,1,137,139,137,138,1,140,138,1,141,1,142,1,138,138,1,37,37,0,0,0,38,143,143,0,0,0,0,0,0,1,37,37,0,0,0,38,144,144,0,0,0,0,0,0,1,145,145,0,0,0,146,0,147,0,0,0,0,0,1,145,145,147,1,147,149,147,148,1,150,148,1,151,1,152,1,148,148,1,37,37,0,0,0,38,153,153,0,0,0,0,0,0,1,37,37,0,0,0,38,154,154,0,0,0,0,0,0,1,37,37,0,0,0,38,155,155,0,0,0,0,0,0,1,37,37,0,0,0,38,156,156,0,0,0,0,0,0,1,37,37,0,0,0,38,157,157,0,0,0,0,0,0,1,37,37,0,0,0,38,158,158,0,0,0,0,0,0,1,159,159,0,0,0,160,0,0,0,0,0,0,1,159,159,160,1,160,162,160,161,1,163,161,1,164,1,165,1,161,161,1,37,37,0,0,0,38,166,166,0,0,0,0,0,0,1,37,37,0,0,0,38,167,167,0,0,0,0,0,0,1,37,37,0,0,0,38,168,169,168,169,0,0,0,0,0,0,1,37,37,0,0,0,38,170,170,0,0,0,0,0,0,1,37,37,0,0,0,38,171,171,0,0,0,0,0,0,1,37,37,0,0,0,38,172,172,0,0,0,0,0,0,1,37,37,0,0,0,38,173,173,0,0,0,0,0,0,1,37,37,0,0,0,38,174,174,0,0,0,0,0,0,1,37,37,0,0,0,38,175,175,0,0,0,0,0,0,1,37,37,0,0,0,38,176,176,0,0,0,0,0,0,1,37,37,0,0,0,38,177,177,0,0,0,0,0,0,1,37,37,0,0,0,38,178,178,0,0,0,0,0,0,1,37,37,0,0,0,179,0,38,0,0,0,0,0,1,37,37,0,0,0,38,180,180,0,0,0,0,0,0,1,37,37,0,0,0,38,181,181,0,0,0,0,0,0,1,37,37,0,0,0,38,182,182,0,0,0,0,0,0,1,37,37,0,0,0,38,183,183,0,0,0,0,0,0,1,184,184,0,0,0,185,0,0,0,0,0,0,1,184,184,185,1,185,187,185,186,1,188,186,1,189,1,190,1,186,186,1,37,37,0,0,0,38,191,191,0,0,0,0,0,0,1,37,37,0,0,0,38,192,192,0,0,0,0,0,0,1,37,37,0,0,0,38,193,193,0,0,0,0,0,0,1,37,37,0,0,0,38,194,194,0,0,0,0,0,0,1,37,37,0,0,0,38,195,195,0,0,0,0,0,0,1,37,37,0,0,0,38,196,196,0,0,0,0,0,0,1,37,37,0,0,0,38,197,197,0,0,0,0,0,0,1,37,37,0,0,0,38,198,198,0,0,0,0,0,0,1,199,199,0,0,0,200,0,0,0,0,0,0,1,199,199,200,1,200,202,200,201,1,203,201,1,204,1,205,1,201,201,1,37,37,0,0,0,38,206,207,208,206,207,208,0,0,0,0,0,0,1,37,37,0,0,0,38,209,209,0,0,0,0,0,0,1,37,37,0,0,0,38,210,210,0,0,0,0,0,0,1,37,37,0,0,0,211,0,38,0,0,0,0,0,1,37,37,0,0,0,38,212,212,0,0,0,0,0,0,1,37,37,0,0,0,38,213,214,213,214,0,0,0,0,0,0,1,215,215,0,0,0,216,0,0,0,0,0,0,1,215,215,216,1,216,218,216,217,1,219,217,1,220,1,221,1,217,217,1,37,37,0,0,0,38,222,222,0,0,0,0,0,0,1,37,37,0,0,0,38,223,223,0,0,0,0,0,0,1,224,224,0,0,0,225,0,0,0,0,0,0,1,224,224,225,1,225,227,225,226,1,228,226,1,229,1,230,1,226,226,1,37,37,0,0,0,38,231,231,0,0,0,0,0,0,1,37,37,0,0,0,38,232,232,0,0,0,0,0,0,1,37,37,0,0,0,38,233,234,233,234,0,0,0,0,0,0,1,37,37,0,0,0,38,235,235,0,0,0,0,0,0,1,37,37,0,0,0,38,236,236,0,0,0,0,0,0,1,237,237,0,0,0,238,0,0,0,0,0,0,1,237,237,238,1,238,240,238,239,1,241,239,1,242,1,243,1,239,239,1,37,37,0,0,0,38,244,244,0,0,0,0,0,0,1,37,37,0,0,0,38,245,245,0,0,0,0,0,0,1,37,37,0,0,0,246,0,38,0,0,0,0,0,1,37,37,0,0,0,38,247,248,249,250,247,248,249,250,0,0,0,0,0,0,1,37,37,0,0,0,38,251,251,0,0,0,0,0,0,1,37,37,0,0,0,38,252,252,0,0,0,0,0,0,1,37,37,0,0,0,38,253,253,0,0,0,0,0,0,1,37,37,0,0,0,38,254,254,0,0,0,0,0,0,1,37,37,0,0,0,38,255,255,0,0,0,0,0,0,1,37,37,0,0,0,38,256,256,0,0,0,0,0,0,1,37,37,0,0,0,38,257,257,0,0,0,0,0,0,1,37,37,0,0,0,38,258,258,0,0,0,0,0,0,1,37,37,0,0,0,38,259,259,0,0,0,0,0,0,1,37,37,0,0,0,38,260,260,0,0,0,0,0,0,1,261,261,0,0,0,262,0,0,0,0,0,0,1,261,261,262,1,262,264,262,263,1,265,263,1,266,1,267,1,263,263,1,37,37,0,0,0,38,268,268,0,0,0,0,0,0,1,37,37,0,0,0,38,269,269,0,0,0,0,0,0,1,37,37,0,0,0,38,270,270,0,0,0,0,0,0,1,37,37,0,0,0,38,271,271,0,0,0,0,0,0,1,37,37,0,0,0,38,272,272,0,0,0,0,0,0,1,37,37,0,0,0,38,273,273,0,0,0,0,0,0,1,37,37,0,0,0,38,274,274,0,0,0,0,0,0,1,275,275,0,0,0,276,0,0,0,0,0,0,1,275,275,276,1,276,278,276,277,1,279,277,1,280,1,281,1,277,277,1,37,37,0,0,0,38,282,283,282,283,0,0,0,0,0,0,1,37,37,0,0,0,38,284,284,0,0,0,0,0,0,1,37,37,0,0,0,38,285,285,0,0,0,0,0,0,1,37,37,0,0,0,38,286,286,0,0,0,0,0,0,1,37,37,0,0,0,38,287,287,0,0,0,0,0,0,1,37,37,0,0,0,38,288,288,0,0,0,0,0,0,1,37,37,0,0,0,38,289,289,0,0,0,0,0,0,1,290,290,0,0,0,291,0,0,0,0,0,0,1,290,290,291,1,291,293,291,292,1,294,292,1,295,1,296,1,292,292,1,37,37,0,0,0,38,297,297,0,0,0,0,0,0,1,37,37,0,0,0,38,298,298,0,0,0,0,0,0,1,37,37,0,0,0,38,299,299,0,0,0,0,0,0,1,37,37,0,0,0,38,28,28,0,0,0,0,0,0,1,300,300,0,0,0,301,0,0,0,0,0,0,1,300,300,301,1,301,303,301,302,1,304,302,1,305,1,306,1,302,302,1,37,37,0,0,0,38,307,307,0,0,0,0,0,0,1,37,37,0,0,0,38,308,308,0,0,0,0,0,0,1,37,37,0,0,0,38,309,309,0,0,0,0,0,0,1,310,310,0,0,0,311,0,0,0,0,0,0,1,310,310,311,1,311,313,311,312,1,314,312,1,315,1,316,1,312,312,1,37,37,0,0,0,38,317,317,0,0,0,0,0,0,1,37,37,0,0,0,38,318,318,0,0,0,0,0,0,1,319,319,0,0,0,320,0,0,0,0,0,0,1,319,319,320,1,320,322,320,321,1,323,321,1,324,1,325,1,321,321,1,37,37,0,0,0,38,326,326,0,0,0,0,0,0,1,37,37,0,0,0,38,327,327,0,0,0,0,0,0,1,37,37,0,0,0,38,328,328,0,0,0,0,0,0,1,329,329,0,0,0,330,0,0,0,0,0,0,1,329,329,330,1,330,332,330,331,1,333,331,1,334,1,335,1,331,331,1,37,37,0,0,0,38,336,337,338,336,337,338,0,0,0,0,0,0,1,37,37,0,0,0,38,339,339,0,0,0,0,0,0,1,37,37,0,0,0,38,340,340,0,0,0,0,0,0,1,37,37,0,0,0,38,341,341,0,0,0,0,0,0,1,37,37,0,0,0,342,0,38,0,0,0,0,0,1,37,37,0,0,0,38,343,343,0,0,0,0,0,0,1,37,37,0,0,0,38,344,344,0,0,0,0,0,0,1,37,37,0,0,0,38,345,345,0,0,0,0,0,0,1,37,37,0,0,0,38,346,346,0,0,0,0,0,0,1,347,347,0,0,0,348,0,0,0,0,0,0,1,347,347,348,1,348,350,348,349,1,351,349,1,352,1,353,1,349,349,1,37,37,0,0,0,38,354,354,0,0,0,0,0,0,1,37,37,0,0,0,38,355,355,0,0,0,0,0,0,1,37,37,0,0,0,38,356,356,0,0,0,0,0,0,1,357,357,0,0,0,358,0,0,0,0,0,0,1,357,357,358,1,358,360,358,359,1,361,359,1,362,1,363,1,359,359,1,37,37,0,0,0,38,364,364,0,0,0,0,0,0,1,37,37,0,0,0,38,365,365,0,0,0,0,0,0,1,37,37,0,0,0,38,366,366,0,0,0,0,0,0,1,37,37,0,0,0,38,367,367,0,0,0,0,0,0,1,37,37,0,0,0,38,368,368,0,0,0,0,0,0,1,369,369,0,0,0,370,0,0,0,0,0,0,1,369,369,370,1,370,372,370,371,1,373,371,1,374,1,375,1,371,371,1,37,37,0,0,0,38,376,376,0,0,0,0,0,0,1,37,37,0,0,0,38,377,377,0,0,0,0,0,0,1,37,37,0,0,0,38,378,378,0,0,0,0,0,0,1,379,379,0,0,0,380,0,0,0,0,0,0,1,379,379,380,1,380,382,380,381,1,383,381,1,384,1,385,1,381,381,1,37,37,0,0,0,38,386,386,0,0,0,0,0,0,1,37,37,0,0,0,38,387,387,0,0,0,0,0,0,1,37,37,0,0,0,38,388,388,0,0,0,0,0,0,1,37,37,0,0,0,38,389,389,0,0,0,0,0,0,1,37,37,0,0,0,38,390,390,0,0,0,0,0,0,1,37,37,0,0,0,38,391,391,0,0,0,0,0,0,1,37,37,0,0,0,392,0,38,0,0,0,0,0,1,37,37,0,0,0,38,393,393,0,0,0,0,0,0,1,37,37,0,0,0,38,394,394,0,0,0,0,0,0,1,37,37,0,0,0,38,395,395,0,0,0,0,0,0,1,37,37,0,0,0,38,396,396,0,0,0,0,0,0,1,397,397,0,0,0,398,0,0,0,0,0,0,1,397,397,398,1,398,400,398,399,1,401,399,1,402,1,403,1,399,399,1,37,37,0,0,0,38,404,405,404,405,0,0,0,0,0,0,1,37,37,0,0,0,38,406,406,0,0,0,0,0,0,1,37,37,0,0,0,38,407,407,0,0,0,0,0,0,1,37,37,0,0,0,38,408,408,0,0,0,0,0,0,1,37,37,0,0,0,38,409,409,0,0,0,0,0,0,1,37,37,0,0,0,38,410,410,0,0,0,0,0,0,1,37,37,0,0,0,38,411,411,0,0,0,0,0,0,1,412,412,0,0,0,413,0,414,0,0,0,0,0,1,412,412,414,1,414,416,414,415,1,417,415,1,418,1,419,1,415,415,1,37,37,0,0,0,38,420,420,0,0,0,0,0,0,1,37,37,0,0,0,38,421,421,0,0,0,0,0,0,1,37,37,0,0,0,38,422,422,0,0,0,0,0,0,1,37,37,0,0,0,38,30,30,0,0,0,0,0,0,1,423,423,0,0,0,424,0,0,0,0,0,0,1,423,423,424,1,424,426,424,425,1,427,425,1,428,1,429,1,425,425,1,37,37,0,0,0,38,430,0,0,0,0,0,0,1,37,37,0,0,0,38,431,431,0,0,0,0,0,0,1,37,37,0,0,0,38,432,432,0,0,0,0,0,0,1,37,37,0,0,0,38,433,433,0,0,0,0,0,0,1,37,37,0,0,0,38,434,434,0,0,0,0,0,0,1,37,37,0,0,0,38,435,435,0,0,0,0,0,0,1,37,37,0,0,0,436,0,38,0,0,0,0,0,1,37,37,0,0,0,38,437,437,0,0,0,0,0,0,1,37,37,0,0,0,38,438,438,0,0,0,0,0,0,1,439,439,0,0,0,440,0,0,0,0,0,0,1,439,439,440,1,440,442,440,441,1,443,441,1,444,1,445,1,441,441,1,37,37,0,0,0,38,446,446,0,0,0,0,0,0,1,37,37,0,0,0,38,447,447,0,0,0,0,0,0,1,37,37,0,0,0,38,448,448,0,0,0,0,0,0,1,449,449,0,0,0,450,0,0,0,0,0,0,1,449,449,450,1,450,452,450,451,1,453,451,1,454,1,455,1,451,451,1,37,37,0,0,0,38,456,457,456,457,0,0,0,0,0,0,1,37,37,0,0,0,38,458,458,0,0,0,0,0,0,1,37,37,0,0,0,459,0,38,0,0,0,0,0,1,37,37,0,0,0,38,460,460,0,0,0,0,0,0,1,37,37,0,0,0,38,461,461,0,0,0,0,0,0,1,37,37,0,0,0,38,462,462,0,0,0,0,0,0,1,37,37,0,0,0,38,463,463,0,0,0,0,0,0,1,37,37,0,0,0,38,464,464,0,0,0,0,0,0,1,37,37,0,0,0,38,465,465,0,0,0,0,0,0,1,37,37,0,0,0,38,466,466,0,0,0,0,0,0,1,37,37,0,0,0,38,467,467,0,0,0,0,0,0,1,468,468,0,0,0,469,0,0,0,0,0,0,1,468,468,469,1,469,471,469,470,1,472,470,1,473,1,474,1,470,470,1,37,37,0,0,0,38,475,476,475,476,0,0,0,0,0,0,1,37,37,0,0,0,38,477,477,0,0,0,0,0,0,1,37,37,0,0,0,478,0,38,0,0,0,0,0,1,37,37,0,0,0,38,479,479,0,0,0,0,0,0,1,37,37,0,0,0,38,480,480,0,0,0,0,0,0,1,37,37,0,0,0,38,481,481,0,0,0,0,0,0,1,37,37,0,0,0,38,482,482,0,0,0,0,0,0,1,37,37,0,0,0,38,483,483,0,0,0,0,0,0,1,37,37,0,0,0,38,484,484,0,0,0,0,0,0,1,37,37,0,0,0,38,485,485,0,0,0,0,0,0,1,486,486,0,0,0,487,0,0,0,0,0,0,1,486,486,487,1,487,489,487,488,1,490,488,1,491,1,492,1,488,488,1,37,37,0,0,0,493,0,38,0,0,0,0,0,1,37,37,0,0,0,38,494,495,494,495,0,0,0,0,0,0,1,37,37,0,0,0,38,496,496,0,0,0,0,0,0,1,37,37,0,0,0,38,497,497,0,0,0,0,0,0,1,37,37,0,0,0,38,498,498,0,0,0,0,0,0,1,37,37,0,0,0,38,499,499,0,0,0,0,0,0,1,37,37,0,0,0,38,500,500,0,0,0,0,0,0,1,37,37,0,0,0,38,501,501,0,0,0,0,0,0,1,502,502,0,0,0,503,0,0,0,0,0,0,1,502,502,503,1,503,505,503,504,1,506,504,1,507,1,508,1,504,504,1,37,37,0,0,0,38,509,509,0,0,0,0,0,0,1,510,510,0,0,0,511,0,0,0,0,0,0,1,510,510,511,1,511,513,511,512,1,514,512,1,515,1,516,1,512,512,1,357,357,0,0,0,358,517,517,0,0,0,0,0,0,1,37,37,0,0,0,38,518,518,0,0,0,0,0,0,1,37,37,0,0,0,38,519,519,0,0,0,0,0,0,1,37,37,0,0,0,38,520,520,0,0,0,0,0,0,1,37,37,0,0,0,38,521,521,0,0,0,0,0,0,1,37,37,0,0,0,38,522,522,0,0,0,0,0,0,1,37,37,0,0,0,38,523,523,0,0,0,0,0,0,1,37,37,0,0,0,38,524,524,0,0,0,0,0,0,1,37,37,0,0,0,38,525,525,0,0,0,0,0,0,1,37,37,0,0,0,38,526,526,0,0,0,0,0,0,1,37,37,0,0,0,38,527,527,0,0,0,0,0,0,1,528,528,0,0,0,529,0,0,0,0,0,0,1,528,528,529,1,529,531,529,530,1,532,530,1,533,1,534,1,530,530,1,37,37,0,0,0,535,0,38,536,537,536,537,0,0,0,0,0,1,37,37,0,0,0,38,538,539,540,541,542,543,544,545,538,539,540,541,542,543,544,545,0,0,0,0,0,0,1,37,37,0,0,0,38,546,547,548,546,547,548,0,0,0,0,0,0,1,37,37,0,0,0,38,549,549,0,0,0,0,0,0,1,37,37,0,0,0,38,550,550,0,0,0,0,0,0,1,37,37,0,0,0,38,551,551,0,0,0,0,0,0,1,37,37,0,0,0,38,552,552,0,0,0,0,0,0,1,37,37,0,0,0,553,0,38,0,0,0,0,0,1,37,37,0,0,0,38,554,554,0,0,0,0,0,0,1,37,37,0,0,0,38,555,555,0,0,0,0,0,0,1,37,37,0,0,0,38,556,556,0,0,0,0,0,0,1,37,37,0,0,0,38,557,557,0,0,0,0,0,0,1,37,37,0,0,0,38,558,558,0,0,0,0,0,0,1,37,37,0,0,0,38,559,559,0,0,0,0,0,0,1,37,37,0,0,0,38,560,560,0,0,0,0,0,0,1,37,37,0,0,0,561,0,38,0,0,0,0,0,1,37,37,0,0,0,38,562,562,0,0,0,0,0,0,1,37,37,0,0,0,38,563,563,0,0,0,0,0,0,1,37,37,0,0,0,38,564,564,0,0,0,0,0,0,1,37,37,0,0,0,38,565,565,0,0,0,0,0,0,1,566,566,0,0,0,567,0,0,0,0,0,0,1,566,566,567,1,567,569,567,568,1,570,568,1,571,1,572,1,568,568,1,37,37,0,0,0,38,573,573,0,0,0,0,0,0,1,37,37,0,0,0,38,574,574,0,0,0,0,0,0,1,37,37,0,0,0,38,575,575,0,0,0,0,0,0,1,37,37,0,0,0,38,576,576,0,0,0,0,0,0,1,37,37,0,0,0,577,0,38,0,0,0,0,0,1,37,37,0,0,0,38,578,578,0,0,0,0,0,0,1,37,37,0,0,0,38,579,579,0,0,0,0,0,0,1,37,37,0,0,0,38,580,580,0,0,0,0,0,0,1,37,37,0,0,0,38,581,581,0,0,0,0,0,0,1,37,37,0,0,0,38,582,582,0,0,0,0,0,0,1,583,583,0,0,0,584,0,0,0,0,0,0,1,583,583,584,1,584,586,584,585,1,587,585,1,588,1,589,1,585,585,1,37,37,0,0,0,38,590,590,0,0,0,0,0,0,1,37,37,0,0,0,38,591,592,591,592,0,0,0,0,0,0,1,37,37,0,0,0,38,593,593,0,0,0,0,0,0,1,37,37,0,0,0,38,594,594,0,0,0,0,0,0,1,37,37,0,0,0,38,595,595,0,0,0,0,0,0,1,37,37,0,0,0,38,596,596,0,0,0,0,0,0,1,37,37,0,0,0,597,0,38,0,0,0,0,0,1,37,37,0,0,0,38,598,598,0,0,0,0,0,0,1,37,37,0,0,0,38,599,599,0,0,0,0,0,0,1,37,37,0,0,0,38,600,600,0,0,0,0,0,0,1,37,37,0,0,0,38,601,601,0,0,0,0,0,0,1,37,37,0,0,0,38,602,602,0,0,0,0,0,0,1,37,37,0,0,0,38,603,603,0,0,0,0,0,0,1,37,37,0,0,0,38,604,604,0,0,0,0,0,0,1,37,37,0,0,0,38,605,605,0,0,0,0,0,0,1,606,606,0,0,0,607,0,0,0,0,0,0,1,606,606,607,1,607,609,607,608,1,610,608,1,611,1,612,1,608,608,1,37,37,0,0,0,38,613,613,0,0,0,0,0,0,1,37,37,0,0,0,38,614,614,0,0,0,0,0,0,1,37,37,0,0,0,38,615,615,0,0,0,0,0,0,1,37,37,0,0,0,38,616,616,0,0,0,0,0,0,1,37,37,0,0,0,38,617,617,0,0,0,0,0,0,1,37,37,0,0,0,38,618,618,0,0,0,0,0,0,1,37,37,0,0,0,619,0,38,0,0,0,0,0,1,37,37,0,0,0,38,620,620,0,0,0,0,0,0,1,37,37,0,0,0,38,621,621,0,0,0,0,0,0,1,37,37,0,0,0,38,622,622,0,0,0,0,0,0,1,623,623,0,0,0,624,0,0,0,0,0,0,1,623,623,624,1,624,626,624,625,1,627,625,1,628,1,629,1,625,625,1,37,37,0,0,0,38,630,631,630,631,0,0,0,0,0,0,1,37,37,0,0,0,38,632,632,0,0,0,0,0,0,1,37,37,0,0,0,38,633,633,0,0,0,0,0,0,1,37,37,0,0,0,38,634,634,0,0,0,0,0,0,1,37,37,0,0,0,38,635,635,0,0,0,0,0,0,1,37,37,0,0,0,636,0,38,0,0,0,0,0,1,37,37,0,0,0,38,637,637,0,0,0,0,0,0,1,37,37,0,0,0,38,638,638,0,0,0,0,0,0,1,37,37,0,0,0,38,639,639,0,0,0,0,0,0,1,37,37,0,0,0,38,640,640,0,0,0,0,0,0,1,37,37,0,0,0,38,641,641,0,0,0,0,0,0,1,37,37,0,0,0,642,0,38,0,0,0,0,0,1,37,37,0,0,0,38,643,643,0,0,0,0,0,0,1,37,37,0,0,0,38,644,644,0,0,0,0,0,0,1,645,645,0,0,0,646,0,0,0,0,0,0,1,645,645,646,1,646,648,646,647,1,649,647,1,650,1,651,1,647,647,1,37,37,0,0,0,38,652,652,0,0,0,0,0,0,1,37,37,0,0,0,38,653,653,0,0,0,0,0,0,1,37,37,0,0,0,38,654,654,0,0,0,0,0,0,1,37,37,0,0,0,38,655,655,0,0,0,0,0,0,1,37,37,0,0,0,38,656,656,0,0,0,0,0,0,1,37,37,0,0,0,38,657,657,0,0,0,0,0,0,1,37,37,0,0,0,658,0,38,0,0,0,0,0,1,37,37,0,0,0,38,659,660,659,660,0,0,0,0,0,0,1,37,37,0,0,0,38,661,661,0,0,0,0,0,0,1,37,37,0,0,0,38,662,662,0,0,0,0,0,0,1,37,37,0,0,0,38,663,663,0,0,0,0,0,0,1,37,37,0,0,0,38,664,664,0,0,0,0,0,0,1,37,37,0,0,0,38,665,665,0,0,0,0,0,0,1,37,37,0,0,0,38,666,666,0,0,0,0,0,0,1,37,37,0,0,0,38,667,667,0,0,0,0,0,0,1,37,37,0,0,0,668,0,38,0,0,0,0,0,1,37,37,0,0,0,38,669,669,0,0,0,0,0,0,1,37,37,0,0,0,38,670,670,0,0,0,0,0,0,1,37,37,0,0,0,38,671,671,0,0,0,0,0,0,1,37,37,0,0,0,38,672,672,0,0,0,0,0,0,1,37,37,0,0,0,38,673,673,0,0,0,0,0,0,1,37,37,0,0,0,38,674,674,0,0,0,0,0,0,1,37,37,0,0,0,38,675,675,0,0,0,0,0,0,1,37,37,0,0,0,38,676,676,0,0,0,0,0,0,1,37,37,0,0,0,38,677,677,0,0,0,0,0,0,1,678,678,0,0,0,679,0,0,0,0,0,0,1,678,678,679,1,679,681,679,680,1,682,680,1,683,1,684,1,680,680,1,37,37,0,0,0,38,685,685,0,0,0,0,0,0,1,37,37,0,0,0,38,686,686,0,0,0,0,0,0,1,37,37,0,0,0,38,687,687,0,0,0,0,0,0,1,37,37,0,0,0,38,688,688,0,0,0,0,0,0,1,37,37,0,0,0,38,689,689,0,0,0,0,0,0,1,690,690,0,0,0,691,0,0,0,0,0,0,1,690,690,691,1,691,693,691,692,1,694,692,1,695,1,696,1,692,692,1,37,37,0,0,0,38,697,697,0,0,0,0,0,0,1,37,37,0,0,0,38,698,698,0,0,0,0,0,0,1,37,37,0,0,0,699,0,38,0,0,0,0,0,1,37,37,0,0,0,38,700,701,702,703,704,700,701,702,703,704,0,0,0,0,0,0,1,37,37,0,0,0,38,705,705,0,0,0,0,0,0,1,37,37,0,0,0,38,706,706,0,0,0,0,0,0,1,37,37,0,0,0,38,707,707,0,0,0,0,0,0,1,37,37,0,0,0,38,708,708,0,0,0,0,0,0,1,37,37,0,0,0,38,709,709,0,0,0,0,0,0,1,37,37,0,0,0,38,710,710,0,0,0,0,0,0,1,37,37,0,0,0,711,0,38,0,0,0,0,0,1,37,37,0,0,0,38,712,712,0,0,0,0,0,0,1,37,37,0,0,0,38,713,713,0,0,0,0,0,0,1,37,37,0,0,0,38,714,714,0,0,0,0,0,0,1,37,37,0,0,0,38,715,715,0,0,0,0,0,0,1,716,716,0,0,0,717,0,0,0,0,0,0,1,716,716,717,1,717,719,717,718,1,720,718,1,721,1,722,1,718,718,1,37,37,0,0,0,38,723,723,0,0,0,0,0,0,1,37,37,0,0,0,38,724,724,0,0,0,0,0,0,1,37,37,0,0,0,38,725,725,0,0,0,0,0,0,1,726,726,0,0,0,727,0,0,0,0,0,0,1,726,726,727,1,727,729,727,728,1,730,728,1,731,1,732,1,728,728,1,37,37,0,0,0,38,733,733,0,0,0,0,0,0,1,37,37,0,0,0,38,734,734,0,0,0,0,0,0,1,37,37,0,0,0,38,735,735,0,0,0,0,0,0,1,736,736,0,0,0,737,0,0,0,0,0,0,1,736,736,737,1,737,739,737,738,1,740,738,1,741,1,742,1,738,738,1,37,37,0,0,0,38,743,743,0,0,0,0,0,0,1,37,37,0,0,0,38,744,744,0,0,0,0,0,0,1,37,37,0,0,0,38,745,745,0,0,0,0,0,0,1,37,37,0,0,0,38,746,746,0,0,0,0,0,0,1,37,37,0,0,0,38,747,747,0,0,0,0,0,0,1,37,37,0,0,0,38,748,748,0,0,0,0,0,0,1,37,37,0,0,0,38,749,749,0,0,0,0,0,0,1,750,750,0,0,0,751,0,0,0,0,0,0,1,750,750,751,1,751,753,751,752,1,754,752,1,755,1,756,1,752,752,1,37,37,0,0,0,38,757,757,0,0,0,0,0,0,1,37,37,0,0,0,38,758,758,0,0,0,0,0,0,1,37,37,0,0,0,38,759,759,0,0,0,0,0,0,1,37,37,0,0,0,38,760,760,0,0,0,0,0,0,1,37,37,0,0,0,761,0,38,0,0,0,0,0,1,37,37,0,0,0,38,762,762,0,0,0,0,0,0,1,37,37,0,0,0,38,763,763,0,0,0,0,0,0,1,37,37,0,0,0,38,764,764,0,0,0,0,0,0,1,37,37,0,0,0,38,765,765,0,0,0,0,0,0,1,37,37,0,0,0,38,766,766,0,0,0,0,0,0,1,37,37,0,0,0,767,0,38,0,0,0,0,0,1,37,37,0,0,0,38,768,768,0,0,0,0,0,0,1,37,37,0,0,0,38,769,769,0,0,0,0,0,0,1,770,770,0,0,0,771,0,0,0,0,0,0,1,770,770,771,1,771,773,771,772,1,774,772,1,775,1,776,1,772,772,1,37,37,0,0,0,38,777,777,0,0,0,0,0,0,1,37,37,0,0,0,38,778,778,0,0,0,0,0,0,1,37,37,0,0,0,38,779,779,0,0,0,0,0,0,1,37,37,0,0,0,38,780,780,0,0,0,0,0,0,1,37,37,0,0,0,781,0,38,0,0,0,0,0,1,37,37,0,0,0,38,782,782,0,0,0,0,0,0,1,37,37,0,0,0,38,783,783,0,0,0,0,0,0,1,37,37,0,0,0,38,784,784,0,0,0,0,0,0,1,37,37,0,0,0,38,785,785,0,0,0,0,0,0,1,37,37,0,0,0,38,786,786,0,0,0,0,0,0,1,787,787,0,0,0,788,0,0,0,0,0,0,1,787,787,788,1,788,790,788,789,1,791,789,1,792,1,793,1,789,789,1,37,37,0,0,0,38,794,794,0,0,0,0,0,0,1,37,37,0,0,0,38,795,795,0,0,0,0,0,0,1,37,37,0,0,0,38,796,796,0,0,0,0,0,0,1,37,37,0,0,0,38,797,797,0,0,0,0,0,0,1,37,37,0,0,0,798,0,38,0,0,0,0,0,1,37,37,0,0,0,38,799,799,0,0,0,0,0,0,1,37,37,0,0,0,38,800,800,0,0,0,0,0,0,1,37,37,0,0,0,38,801,801,0,0,0,0,0,0,1,37,37,0,0,0,38,802,802,0,0,0,0,0,0,1,37,37,0,0,0,38,803,803,0,0,0,0,0,0,1,37,37,0,0,0,38,804,804,0,0,0,0,0,0,1,37,37,0,0,0,38,805,805,0,0,0,0,0,0,1,37,37,0,0,0,38,806,806,0,0,0,0,0,0,1,37,37,0,0,0,38,807,807,0,0,0,0,0,0,1,37,37,0,0,0,38,808,808,0,0,0,0,0,0,1,37,37,0,0,0,38,809,809,0,0,0,0,0,0,1,37,37,0,0,0,38,810,810,0,0,0,0,0,0,1,37,37,0,0,0,38,811,811,0,0,0,0,0,0,1,812,812,0,0,0,813,0,0,0,0,0,0,1,812,812,813,1,813,815,813,814,1,816,814,1,817,1,818,1,814,814,1,37,37,0,0,0,38,819,819,0,0,0,0,0,0,1,37,37,0,0,0,38,820,821,820,821,0,0,0,0,0,0,1,37,37,0,0,0,38,822,822,0,0,0,0,0,0,1,37,37,0,0,0,38,823,823,0,0,0,0,0,0,1,37,37,0,0,0,38,824,824,0,0,0,0,0,0,1,37,37,0,0,0,38,825,825,0,0,0,0,0,0,1,37,37,0,0,0,38,826,826,0,0,0,0,0,0,1,37,37,0,0,0,38,827,827,0,0,0,0,0,0,1,37,37,0,0,0,828,0,38,0,0,0,0,0,1,37,37,0,0,0,38,829,829,0,0,0,0,0,0,1,37,37,0,0,0,38,830,830,0,0,0,0,0,0,1,37,37,0,0,0,38,831,831,0,0,0,0,0,0,1,37,37,0,0,0,38,832,832,0,0,0,0,0,0,1,37,37,0,0,0,38,833,833,0,0,0,0,0,0,1,37,37,0,0,0,38,834,834,0,0,0,0,0,0,1,37,37,0,0,0,38,835,835,0,0,0,0,0,0,1,37,37,0,0,0,38,836,836,0,0,0,0,0,0,1,837,837,0,0,0,838,0,0,0,0,0,0,1,837,837,838,1,838,840,838,839,1,841,839,1,842,1,843,1,839,839,1,37,37,0,0,0,38,844,844,0,0,0,0,0,0,1,37,37,0,0,0,38,845,845,0,0,0,0,0,0,1,37,37,0,0,0,38,846,846,0,0,0,0,0,0,1,37,37,0,0,0,38,847,847,0,0,0,0,0,0,1,37,37,0,0,0,848,0,38,0,0,0,0,0,1,37,37,0,0,0,38,849,849,0,0,0,0,0,0,1,37,37,0,0,0,38,850,850,0,0,0,0,0,0,1,37,37,0,0,0,38,851,851,0,0,0,0,0,0,1,852,852,0,0,0,853,0,0,0,0,0,0,1,852,852,853,1,853,855,853,854,1,856,854,1,857,1,858,1,854,854,1,37,37,0,0,0,38,859,859,0,0,0,0,0,0,1,37,37,0,0,0,38,860,860,0,0,0,0,0,0,1,37,37,0,0,0,38,861,861,0,0,0,0,0,0,1,37,37,0,0,0,862,0,38,0,0,0,0,0,1,37,37,0,0,0,38,863,863,0,0,0,0,0,0,1,37,37,0,0,0,38,864,864,0,0,0,0,0,0,1,37,37,0,0,0,38,865,865,0,0,0,0,0,0,1,37,37,0,0,0,38,866,866,0,0,0,0,0,0,1,37,37,0,0,0,38,867,867,0,0,0,0,0,0,1,37,37,0,0,0,38,868,868,0,0,0,0,0,0,1,37,37,0,0,0,38,869,869,0,0,0,0,0,0,1,37,37,0,0,0,38,870,870,0,0,0,0,0,0,1,871,871,0,0,0,872,0,0,0,0,0,0,1,871,871,872,1,872,874,872,873,1,875,873,1,876,1,877,1,873,873,1,37,37,0,0,0,38,878,878,0,0,0,0,0,0,1,37,37,0,0,0,38,879,879,0,0,0,0,0,0,1,37,37,0,0,0,38,880,880,0,0,0,0,0,0,1,37,37,0,0,0,38,881,881,0,0,0,0,0,0,1,37,37,0,0,0,38,882,882,0,0,0,0,0,0,1,37,37,0,0,0,38,883,883,0,0,0,0,0,0,1,37,37,0,0,0,884,0,38,0,0,0,0,0,1,37,37,0,0,0,38,885,885,0,0,0,0,0,0,1,37,37,0,0,0,38,886,886,0,0,0,0,0,0,1,37,37,0,0,0,38,887,887,0,0,0,0,0,0,1,37,37,0,0,0,38,888,888,0,0,0,0,0,0,1,37,37,0,0,0,38,889,889,0,0,0,0,0,0,1,37,37,0,0,0,38,890,890,0,0,0,0,0,0,1,37,37,0,0,0,38,891,891,0,0,0,0,0,0,1,37,37,0,0,0,892,0,38,0,0,0,0,0,1,37,37,0,0,0,38,893,893,0,0,0,0,0,0,1,37,37,0,0,0,38,894,894,0,0,0,0,0,0,1,895,895,0,0,0,896,0,0,0,0,0,0,1,895,895,896,1,896,898,896,897,1,899,897,1,900,1,901,1,897,897,1,37,37,0,0,0,38,902,902,0,0,0,0,0,0,1,37,37,0,0,0,38,903,903,0,0,0,0,0,0,1,904,904,0,0,0,905,0,0,0,0,0,0,1,904,904,905,1,905,907,905,906,1,908,906,1,909,1,910,1,906,906,1,37,37,0,0,0,38,911,912,911,912,0,0,0,0,0,0,1,37,37,0,0,0,38,913,914,913,914,0,0,0,0,0,0,1,37,37,0,0,0,38,915,915,0,0,0,0,0,0,1,37,37,0,0,0,38,916,916,0,0,0,0,0,0,1,37,37,0,0,0,38,917,917,0,0,0,0,0,0,1,37,37,0,0,0,38,918,918,0,0,0,0,0,0,1,919,919,0,0,0,920,0,0,0,0,0,0,1,919,919,920,1,920,922,920,921,1,923,921,1,924,1,925,1,921,921,1,37,37,0,0,0,38,926,926,0,0,0,0,0,0,1,37,37,0,0,0,38,927,927,0,0,0,0,0,0,1,37,37,0,0,0,38,928,928,0,0,0,0,0,0,1,929,929,0,0,0,930,0,0,0,0,0,0,1,929,929,930,1,930,932,930,931,1,933,931,1,934,1,935,1,931,931,1,37,37,0,0,0,38,936,936,0,0,0,0,0,0,1,37,37,0,0,0,38,937,937,0,0,0,0,0,0,1,37,37,0,0,0,938,0,38,0,0,0,0,0,1,37,37,0,0,0,38,939,940,939,940,0,0,0,0,0,0,1,37,37,0,0,0,38,941,941,0,0,0,0,0,0,1,37,37,0,0,0,38,942,942,0,0,0,0,0,0,1,37,37,0,0,0,38,943,943,0,0,0,0,0,0,1,37,37,0,0,0,38,944,945,944,945,0,0,0,0,0,0,1,37,37,0,0,0,38,946,946,0,0,0,0,0,0,1,37,37,0,0,0,38,947,947,0,0,0,0,0,0,1,37,37,0,0,0,38,948,948,0,0,0,0,0,0,1,37,37,0,0,0,38,949,949,0,0,0,0,0,0,1,37,37,0,0,0,38,950,950,0,0,0,0,0,0,1,37,37,0,0,0,38,951,951,0,0,0,0,0,0,1,37,37,0,0,0,38,952,952,0,0,0,0,0,0,1,953,953,0,0,0,954,0,0,0,0,0,0,1,953,953,954,1,954,956,954,955,1,957,955,1,958,957,955,1,959,1,955,955,1,37,37,0,0,0,38,960,960,0,0,0,0,0,0,1,37,37,0,0,0,38,961,961,0,0,0,0,0,0,1,37,37,0,0,0,38,962,962,0,0,0,0,0,0,1,37,37,0,0,0,38,963,963,0,0,0,0,0,0,1,37,37,0,0,0,38,964,964,0,0,0,0,0,0,1,37,37,0,0,0,38,965,965,0,0,0,0,0,0,1,37,37,0,0,0,38,966,966,0,0,0,0,0,0,1,37,37,0,0,0,38,967,967,0,0,0,0,0,0,1,968,968,0,0,0,969,0,0,0,0,0,0,1,968,968,969,1,969,971,969,970,1,972,970,1,973,1,974,1,970,970,1,37,37,0,0,0,38,975,975,0,0,0,0,0,0,1,37,37,0,0,0,38,976,976,0,0,0,0,0,0,1,37,37,0,0,0,38,977,977,0,0,0,0,0,0,1,37,37,0,0,0,38,978,978,0,0,0,0,0,0,1,37,37,0,0,0,38,979,979,0,0,0,0,0,0,1,37,37,0,0,0,38,980,980,0,0,0,0,0,0,1,981,981,0,0,0,982,0,0,0,0,0,0,1,981,981,982,1,982,984,982,983,1,985,983,1,986,1,987,1,983,983,1,37,37,0,0,0,38,988,989,990,991,988,989,990,991,0,0,0,0,0,0,1,37,37,0,0,0,38,992,992,0,0,0,0,0,0,1,37,37,0,0,0,38,993,993,0,0,0,0,0,0,1,994,994,0,0,0,995,0,0,0,0,0,0,1,994,994,995,1,995,997,995,996,1,998,996,1,999,1,1000,1,996,996,1,37,37,0,0,0,38,1001,1002,1003,1004,1005,1006,1007,1008,1001,1002,1003,1004,1005,1006,1007,1008,0,0,0,0,0,0,1,37,37,0,0,0,38,1009,1009,0,0,0,0,0,0,1,37,37,0,0,0,38,1010,1010,0,0,0,0,0,0,1,37,37,0,0,0,38,1011,1011,0,0,0,0,0,0,1,1012,1012,0,0,0,1013,0,0,0,0,0,0,1,1012,1012,1013,1,1013,1015,1013,1014,1,1016,1014,1,1017,1,1018,1,1014,1014,1,37,37,0,0,0,38,1019,1019,0,0,0,0,0,0,1,37,37,0,0,0,38,1020,1020,0,0,0,0,0,0,1,37,37,0,0,0,38,1021,1021,0,0,0,0,0,0,1,37,37,0,0,0,1022,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1023,1023,0,0,0,0,0,0,1,37,37,0,0,0,38,1024,1024,0,0,0,0,0,0,1,37,37,0,0,0,38,1025,1025,0,0,0,0,0,0,1,37,37,0,0,0,38,1026,1026,0,0,0,0,0,0,1,37,37,0,0,0,38,1027,1027,0,0,0,0,0,0,1,1028,1028,0,0,0,1029,0,0,0,0,0,0,1,1028,1028,1029,1,1029,1031,1029,1030,1,1032,1030,1,1033,1,1034,1,1030,1030,1,37,37,0,0,0,38,1035,1035,0,0,0,0,0,0,1,37,37,0,0,0,38,1036,1036,0,0,0,0,0,0,1,37,37,0,0,0,1037,0,38,1038,1038,0,0,0,0,0,1,37,37,0,0,0,38,1039,1040,1039,1040,0,0,0,0,0,0,1,37,37,0,0,0,38,1041,1041,0,0,0,0,0,0,1,37,37,0,0,0,38,1042,1042,0,0,0,0,0,0,1,1043,1043,0,0,0,1044,0,0,0,0,0,0,1,1043,1043,1044,1,1044,1046,1044,1045,1,1047,1045,1,1048,1,1049,1,1045,1045,1,37,37,0,0,0,38,1050,1050,0,0,0,0,0,0,1,1051,1051,0,0,0,1052,0,0,0,0,0,0,1,1051,1051,1052,1,1052,1054,1052,1053,1,1055,1053,1,1056,1,1057,1,1053,1053,1,37,37,0,0,0,38,1058,1058,0,0,0,0,0,0,1,37,37,0,0,0,38,1059,1059,0,0,0,0,0,0,1,37,37,0,0,0,1060,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1061,1061,0,0,0,0,0,0,1,37,37,0,0,0,38,20,20,0,0,0,0,0,0,1,1062,1062,0,0,0,1063,0,0,0,0,0,0,1,1062,1062,1063,1,1063,1065,1063,1064,1,1066,1064,1,1067,1,1068,1,1064,1064,1,37,37,0,0,0,38,1069,1069,0,0,0,0,0,0,1,37,37,0,0,0,38,1070,1070,0,0,0,0,0,0,1,37,37,0,0,0,38,1071,1071,0,0,0,0,0,0,1,37,37,0,0,0,1072,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1073,1073,0,0,0,0,0,0,1,37,37,0,0,0,38,1074,1074,0,0,0,0,0,0,1,37,37,0,0,0,38,1075,1075,0,0,0,0,0,0,1,37,37,0,0,0,38,1076,1076,0,0,0,0,0,0,1,37,37,0,0,0,38,1077,1077,0,0,0,0,0,0,1,37,37,0,0,0,38,1078,1078,0,0,0,0,0,0,1,37,37,0,0,0,38,1079,1079,0,0,0,0,0,0,1,1080,1080,0,0,0,1081,0,0,0,0,0,0,1,1080,1080,1081,1,1081,1083,1081,1082,1,1084,1082,1,1085,1,1086,1,1082,1082,1,37,37,0,0,0,38,1087,1087,0,0,0,0,0,0,1,37,37,0,0,0,38,1088,1089,1088,1089,0,0,0,0,0,0,1,37,37,0,0,0,38,1090,1090,0,0,0,0,0,0,1,37,37,0,0,0,38,1091,1091,0,0,0,0,0,0,1,37,37,0,0,0,38,1092,1092,0,0,0,0,0,0,1,1093,1093,0,0,0,1094,0,0,0,0,0,0,1,1093,1093,1094,1,1094,1096,1094,1095,1,1097,1095,1,1098,1,1099,1,1095,1095,1,37,37,0,0,0,1100,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1101,1101,0,0,0,0,0,0,1,37,37,0,0,0,38,1102,1102,0,0,0,0,0,0,1,1103,1103,0,0,0,1104,0,0,0,0,0,0,1,1103,1103,1104,1,1104,1106,1104,1105,1,1107,1105,1,1108,1,1109,1,1105,1105,1,37,37,0,0,0,38,1110,1110,0,0,0,0,0,0,1,37,37,0,0,0,38,1111,1112,1111,1112,0,0,0,0,0,0,1,37,37,0,0,0,38,1113,1113,0,0,0,0,0,0,1,37,37,0,0,0,38,1114,1114,0,0,0,0,0,0,1,37,37,0,0,0,1115,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1116,1116,0,0,0,0,0,0,1,37,37,0,0,0,38,1117,1117,0,0,0,0,0,0,1,37,37,0,0,0,38,1118,1118,0,0,0,0,0,0,1,37,37,0,0,0,38,1119,1119,0,0,0,0,0,0,1,37,37,0,0,0,38,1120,1120,0,0,0,0,0,0,1,37,37,0,0,0,38,1121,1121,0,0,0,0,0,0,1,37,37,0,0,0,38,1122,1122,0,0,0,0,0,0,1,37,37,0,0,0,38,1123,1123,0,0,0,0,0,0,1,37,37,0,0,0,38,1124,1124,0,0,0,0,0,0,1,37,37,0,0,0,38,1125,1125,0,0,0,0,0,0,1,37,37,0,0,0,38,1126,1126,0,0,0,0,0,0,1,1127,1127,0,0,0,1128,0,0,0,0,0,0,1,1127,1127,1128,1,1128,1130,1128,1129,1,1131,1129,1,1132,1,1133,1,1129,1129,1,37,37,0,0,0,38,1134,1134,0,0,0,0,0,0,1,37,37,0,0,0,38,1135,1135,0,0,0,0,0,0,1,1136,1136,0,0,0,1137,0,0,0,0,0,0,1,1136,1136,1137,1,1137,1139,1137,1138,1,1140,1138,1,1141,1,1142,1,1138,1138,1,37,37,0,0,0,38,1143,1143,0,0,0,0,0,0,1,37,37,0,0,0,38,1144,1144,0,0,0,0,0,0,1,37,37,0,0,0,38,1145,1145,0,0,0,0,0,0,1,37,37,0,0,0,38,1146,1146,0,0,0,0,0,0,1,37,37,0,0,0,38,1147,1147,0,0,0,0,0,0,1,37,37,0,0,0,1148,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1149,1149,0,0,0,0,0,0,1,37,37,0,0,0,38,1150,1150,0,0,0,0,0,0,1,37,37,0,0,0,38,1151,1151,0,0,0,0,0,0,1,37,37,0,0,0,38,1152,1152,0,0,0,0,0,0,1,37,37,0,0,0,38,1153,1153,0,0,0,0,0,0,1,37,37,0,0,0,38,1154,1154,0,0,0,0,0,0,1,37,37,0,0,0,38,1155,1155,0,0,0,0,0,0,1,37,37,0,0,0,38,1156,1156,0,0,0,0,0,0,1,1157,1157,0,0,0,1158,0,0,0,0,0,0,1,1157,1157,1158,1,1158,1160,1158,1159,1,1161,1159,1,1162,1,1163,1,1159,1159,1,37,37,0,0,0,38,1164,1164,0,0,0,0,0,0,1,37,37,0,0,0,38,1165,1165,0,0,0,0,0,0,1,37,37,0,0,0,1166,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1167,1167,0,0,0,0,0,0,1,37,37,0,0,0,38,1168,1168,0,0,0,0,0,0,1,37,37,0,0,0,38,1169,1169,0,0,0,0,0,0,1,37,37,0,0,0,38,1170,1170,0,0,0,0,0,0,1,37,37,0,0,0,38,1171,1171,0,0,0,0,0,0,1,1172,1172,0,0,0,1173,0,0,0,0,0,0,1,1172,1172,1173,1,1173,1175,1173,1174,1,1176,1174,1,1177,1,1178,1,1174,1174,1,37,37,0,0,0,38,1179,1179,0,0,0,0,0,0,1,37,37,0,0,0,38,1180,1180,0,0,0,0,0,0,1,37,37,0,0,0,38,1181,1181,0,0,0,0,0,0,1,1182,1182,0,0,0,1183,0,0,0,0,0,0,1,1182,1182,1183,1,1183,1185,1183,1184,1,1186,1184,1,1187,1,1188,1,1184,1184,1,37,37,0,0,0,38,1189,1189,0,0,0,0,0,0,1,37,37,0,0,0,38,1190,1190,0,0,0,0,0,0,1,1191,1191,0,0,0,1192,0,0,0,0,0,0,1,1191,1191,1192,1,1192,1194,1192,1193,1,1195,1193,1,1196,1,1197,1,1193,1193,1,1198,1198,0,0,0,1199,1200,1201,1202,1200,1201,1202,0,0,0,0,0,0,1,1198,1198,1199,1,1199,1204,1199,1203,1,1205,1203,1,1206,1,1207,1,1203,1203,1,37,37,0,0,0,38,1208,1209,1210,1208,1209,1210,0,0,0,0,0,0,1,37,37,0,0,0,38,1211,1211,0,0,0,0,0,0,1,37,37,0,0,0,38,1212,1212,0,0,0,0,0,0,1,37,37,0,0,0,38,1213,1213,0,0,0,0,0,0,1,37,37,0,0,0,38,1214,1214,0,0,0,0,0,0,1,37,37,0,0,0,38,1215,1215,0,0,0,0,0,0,1,37,37,0,0,0,1216,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1217,1218,1219,1217,1218,1219,0,0,0,0,0,0,1,37,37,0,0,0,38,1220,1220,0,0,0,0,0,0,1,37,37,0,0,0,38,1221,1221,0,0,0,0,0,0,1,37,37,0,0,0,38,1222,1222,0,0,0,0,0,0,1,37,37,0,0,0,38,1223,1223,0,0,0,0,0,0,1,37,37,0,0,0,38,1224,1224,0,0,0,0,0,0,1,1225,1225,0,0,0,1226,0,0,0,0,0,0,1,1225,1225,1226,1,1226,1228,1226,1227,1,1229,1227,1,1230,1,1231,1,1227,1227,1,37,37,0,0,0,38,1232,1232,0,0,0,0,0,0,1,37,37,0,0,0,38,1233,1233,0,0,0,0,0,0,1,37,37,0,0,0,38,1234,1234,0,0,0,0,0,0,1,37,37,0,0,0,38,1235,1235,0,0,0,0,0,0,1,37,37,0,0,0,38,1236,1236,0,0,0,0,0,0,1,1237,1237,0,0,0,1238,0,0,0,0,0,0,1,1237,1237,1238,1,1238,1240,1238,1239,1,1241,1239,1,1242,1,1243,1,1239,1239,1,37,37,0,0,0,38,1244,1244,0,0,0,0,0,0,1,37,37,0,0,0,38,1245,1245,0,0,0,0,0,0,1,37,37,0,0,0,38,1246,1246,0,0,0,0,0,0,1,37,37,0,0,0,38,1247,1247,0,0,0,0,0,0,1,37,37,0,0,0,38,1248,1248,0,0,0,0,0,0,1,1249,1249,0,0,0,1250,0,0,0,0,0,0,1,1249,1249,1250,1,1250,1252,1250,1251,1,1253,1251,1,1254,1,1255,1,1251,1251,1,37,37,0,0,0,38,1256,1256,0,0,0,0,0,0,1,37,37,0,0,0,38,1257,1258,1257,1258,0,0,0,0,0,0,1,37,37,0,0,0,38,1259,1259,0,0,0,0,0,0,1,1260,1260,0,0,0,1261,0,0,0,0,0,0,1,1260,1260,1261,1,1261,1263,1261,1262,1,1264,1262,1,1265,1,1266,1,1262,1262,1,37,37,0,0,0,38,1267,1267,0,0,0,0,0,0,1,37,37,0,0,0,38,1268,1268,0,0,0,0,0,0,1,37,37,0,0,0,1269,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1270,1270,0,0,0,0,0,0,1,37,37,0,0,0,38,1271,1271,0,0,0,0,0,0,1,37,37,0,0,0,38,1272,1272,0,0,0,0,0,0,1,37,37,0,0,0,38,1273,1273,0,0,0,0,0,0,1,37,37,0,0,0,38,1274,1274,0,0,0,0,0,0,1,1275,1275,0,0,0,1276,0,0,0,0,0,0,1,1275,1275,1276,1,1276,1278,1276,1277,1,1279,1277,1,1280,1,1281,1,1277,1277,1,37,37,0,0,0,38,1282,1282,0,0,0,0,0,0,1,37,37,0,0,0,38,1283,1283,0,0,0,0,0,0,1,37,37,0,0,0,38,1284,1284,0,0,0,0,0,0,1,37,37,0,0,0,38,1285,1285,0,0,0,0,0,0,1,37,37,0,0,0,1286,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1287,1287,0,0,0,0,0,0,1,37,37,0,0,0,38,1288,1288,0,0,0,0,0,0,1,37,37,0,0,0,38,1289,1289,0,0,0,0,0,0,1,37,37,0,0,0,38,1290,1290,0,0,0,0,0,0,1,37,37,0,0,0,38,1291,1291,0,0,0,0,0,0,1,37,37,0,0,0,38,1292,1292,0,0,0,0,0,0,1,37,37,0,0,0,38,35,35,0,0,0,0,0,0,1,1293,1293,0,0,0,1294,0,0,0,0,0,0,1,1293,1293,1294,1,1294,1296,1294,1295,1,1297,1295,1,1298,1,1299,1,1295,1295,1,37,37,0,0,0,38,1300,1300,0,0,0,0,0,0,1,37,37,0,0,0,1301,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1302,1303,1302,1303,0,0,0,0,0,0,1,37,37,0,0,0,38,1304,1304,0,0,0,0,0,0,1,37,37,0,0,0,38,1305,1305,0,0,0,0,0,0,1,37,37,0,0,0,38,1306,1306,0,0,0,0,0,0,1,1307,1307,0,0,0,1308,0,0,0,0,0,0,1,1307,1307,1308,1,1308,1310,1308,1309,1,1311,1309,1,1312,1,1313,1,1309,1309,1,37,37,0,0,0,38,1314,1314,0,0,0,0,0,0,1,37,37,0,0,0,1315,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1316,1316,0,0,0,0,0,0,1,37,37,0,0,0,38,1317,1317,0,0,0,0,0,0,1,37,37,0,0,0,38,1318,1318,0,0,0,0,0,0,1,37,37,0,0,0,38,1319,1319,0,0,0,0,0,0,1,37,37,0,0,0,38,1320,1320,0,0,0,0,0,0,1,1321,1321,0,0,0,1322,0,0,0,0,0,0,1,1321,1321,1322,1,1322,1324,1322,1323,1,1325,1323,1,1326,1,1327,1,1323,1323,1,37,37,0,0,0,38,1328,1329,1328,1329,0,0,0,0,0,0,1,37,37,0,0,0,38,1330,1331,1330,1331,0,0,0,0,0,0,1,37,37,0,0,0,38,1332,1332,0,0,0,0,0,0,1,37,37,0,0,0,38,1333,1333,0,0,0,0,0,0,1,37,37,0,0,0,38,1334,1334,0,0,0,0,0,0,1,1198,1198,0,0,0,1199,0,0,0,0,0,0,1,37,37,0,0,0,38,1335,1335,0,0,0,0,0,0,1,37,37,0,0,0,38,1336,1336,0,0,0,0,0,0,1,37,37,0,0,0,38,1337,1337,0,0,0,0,0,0,1,37,37,0,0,0,38,1338,1338,0,0,0,0,0,0,1,37,37,0,0,0,38,1339,1339,0,0,0,0,0,0,1,37,37,0,0,0,38,1340,1340,0,0,0,0,0,0,1,37,37,0,0,0,38,1341,1341,0,0,0,0,0,0,1,37,37,0,0,0,38,1342,1342,0,0,0,0,0,0,1,37,37,0,0,0,1343,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1344,1344,0,0,0,0,0,0,1,37,37,0,0,0,38,1345,1345,0,0,0,0,0,0,1,37,37,0,0,0,38,1346,1346,0,0,0,0,0,0,1,37,37,0,0,0,38,1347,1347,0,0,0,0,0,0,1,37,37,0,0,0,38,1348,1348,0,0,0,0,0,0,1,1349,1349,0,0,0,1350,0,0,0,0,0,0,1,1349,1349,1350,1,1350,1352,1350,1351,1,1353,1351,1,1354,1,1355,1,1351,1351,1,37,37,0,0,0,38,1356,1356,0,0,0,0,0,0,1,37,37,0,0,0,38,1357,1357,0,0,0,0,0,0,1,37,37,0,0,0,38,1358,1358,0,0,0,0,0,0,1,37,37,0,0,0,38,1359,1359,0,0,0,0,0,0,1,37,37,0,0,0,38,1360,1360,0,0,0,0,0,0,1,37,37,0,0,0,38,27,27,0,0,0,0,0,0,1,1361,1361,0,0,0,1362,0,0,0,0,0,0,1,1361,1361,1362,1,1362,1364,1362,1363,1,1365,1363,1,1366,1,1367,1,1363,1363,1,37,37,0,0,0,38,1368,1369,1370,1368,1369,1370,0,0,0,0,0,0,1,37,37,0,0,0,38,1371,1371,0,0,0,0,0,0,1,37,37,0,0,0,38,1372,1372,0,0,0,0,0,0,1,37,37,0,0,0,38,1373,1373,0,0,0,0,0,0,1,37,37,0,0,0,38,1374,1374,0,0,0,0,0,0,1,37,37,0,0,0,1375,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1376,1376,0,0,0,0,0,0,1,37,37,0,0,0,38,1377,1377,0,0,0,0,0,0,1,37,37,0,0,0,38,1378,1378,0,0,0,0,0,0,1,37,37,0,0,0,38,1379,1379,0,0,0,0,0,0,1,37,37,0,0,0,38,1380,1380,0,0,0,0,0,0,1,37,37,0,0,0,38,1381,1381,0,0,0,0,0,0,1,1382,1382,0,0,0,1383,0,0,0,0,0,0,1,1382,1382,1383,1,1383,1385,1383,1384,1,1386,1384,1,1387,1,1388,1,1384,1384,1,37,37,0,0,0,38,1389,1389,0,0,0,0,0,0,1,37,37,0,0,0,38,1390,1390,0,0,0,0,0,0,1,37,37,0,0,0,38,1391,1391,0,0,0,0,0,0,1,37,37,0,0,0,38,1392,1392,0,0,0,0,0,0,1,37,37,0,0,0,38,1393,1393,0,0,0,0,0,0,1,37,37,0,0,0,38,1394,1394,0,0,0,0,0,0,1,37,37,0,0,0,38,1395,1395,0,0,0,0,0,0,1,1396,1396,0,0,0,1397,0,0,0,0,0,0,1,1396,1396,1397,1,1397,1399,1397,1398,1,1400,1398,1,1401,1,1402,1,1398,1398,1,1403,1403,0,0,0,1404,0,0,0,0,0,0,1,1403,1403,1404,1,1404,1406,1404,1405,1,1407,1405,1,1408,1,1409,1,1405,1405,1,37,37,0,0,0,38,1410,1411,1410,1411,0,0,0,0,0,0,1,37,37,0,0,0,38,1412,1412,0,0,0,0,0,0,1,37,37,0,0,0,38,1413,1413,0,0,0,0,0,0,1,37,37,0,0,0,38,1414,1414,0,0,0,0,0,0,1,37,37,0,0,0,38,1415,1415,0,0,0,0,0,0,1,37,37,0,0,0,38,1416,1416,0,0,0,0,0,0,1,37,37,0,0,0,38,1417,1417,0,0,0,0,0,0,1,37,37,0,0,0,38,1418,1418,0,0,0,0,0,0,1,37,37,0,0,0,38,1419,1419,0,0,0,0,0,0,1,37,37,0,0,0,38,1420,1420,0,0,0,0,0,0,1,1421,1421,0,0,0,1422,0,0,0,0,0,0,1,1421,1421,1422,1,1422,1424,1422,1423,1,1425,1423,1,1426,1,1427,1,1423,1423,1,37,37,0,0,0,38,1428,1428,0,0,0,0,0,0,1,37,37,0,0,0,38,1429,1429,0,0,0,0,0,0,1,37,37,0,0,0,1430,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1431,1431,0,0,0,0,0,0,1,37,37,0,0,0,38,1432,1432,0,0,0,0,0,0,1,37,37,0,0,0,38,1433,1433,0,0,0,0,0,0,1,37,37,0,0,0,38,1434,1434,0,0,0,0,0,0,1,37,37,0,0,0,38,1435,1435,0,0,0,0,0,0,1,1436,1436,0,0,0,1437,0,0,0,0,0,0,1,1436,1436,1437,1,1437,1439,1437,1438,1,1440,1438,1,1441,1,1442,1,1438,1438,1,37,37,0,0,0,38,1443,1443,0,0,0,0,0,0,1,37,37,0,0,0,38,1444,1444,0,0,0,0,0,0,1,1445,1445,0,0,0,1446,0,0,0,0,0,0,1,1445,1445,1446,1,1446,1448,1446,1447,1,1449,1447,1,1450,1,1451,1,1447,1447,1,37,37,0,0,0,38,1452,1453,1452,1453,0,0,0,0,0,0,1,37,37,0,0,0,38,1454,1454,0,0,0,0,0,0,1,37,37,0,0,0,38,1455,1455,0,0,0,0,0,0,1,37,37,0,0,0,38,1456,1456,0,0,0,0,0,0,1,37,37,0,0,0,38,1457,1457,0,0,0,0,0,0,1,37,37,0,0,0,38,1458,1458,0,0,0,0,0,0,1,1459,1459,0,0,0,1460,0,0,0,0,0,0,1,1459,1459,1460,1,1460,1462,1460,1461,1,1463,1461,1,1464,1,1465,1,1461,1461,1,37,37,0,0,0,38,1466,1466,0,0,0,0,0,0,1,37,37,0,0,0,1467,0,38,0,0,0,0,0,1,37,37,0,0,0,38,1468,1468,0,0,0,0,0,0,1,37,37,0,0,0,38,1469,1469,0,0,0,0,0,0,1,37,37,0,0,0,38,1470,1470,0,0,0,0,0,0,1,37,37,0,0,0,38,1471,1471,0,0,0,0,0,0,1,37,37,0,0,0,38,1472,1472,0,0,0,0,0,0,1,37,37,0,0,0,38,1473,1473,0,0,0,0,0,0,1,37,37,0,0,0,38,1474,1474,0,0,0,0,0,0,1,37,37,0,0,0,38,1475,1475,0,0,0,0,0,0,1,37,37,0,0,0,38,1476,1476,0,0,0,0,0,0,1,37,37,0,0,0,38,1477,1477,0,0,0,0,0,0,1,37,37,0,0,0,38,1478,1478,0,0,0,0,0,0,1,37,37,0,0,0,38,1479,1479,0,0,0,0,0,0,1,1480,1480,0,0,0,1481,0,0,0,0,0,0,1,1480,1480,1481,1,1481,1483,1481,1482,1,1484,1482,1,1485,1484,1482,1,1486,1,1482,1482,1,69,69,0,0,0,70,44,45,46,44,45,46,0,0,0,0,0,0,1,310,310,0,0,0,311,206,207,208,206,207,208,0,0,0,0,0,0,1,1127,1127,0,0,0,1128,326,326,0,0,0,0,0,0,1,275,275,0,0,0,276,336,337,338,336,337,338,0,0,0,0,0,0,1,379,379,0,0,0,380,376,376,0,0,0,0,0,0,1,215,215,0,0,0,216,404,405,404,405,0,0,0,0,0,0,1,1080,1080,0,0,0,1081,446,446,0,0,0,0,0,0,1,237,237,0,0,0,238,456,457,456,457,0,0,0,0,0,0,1,1051,1051,0,0,0,1052,988,989,990,991,988,989,990,991,0,0,0,0,0,0,1,1403,1403,0,0,0,1404,1368,1369,1370,1368,1369,1370,0,0,0,0,0,0,1,159,159,0,0,0,160,1410,1411,1410,1411,0,0,0,0,0,0,1,1445,1445,0,0,0,1446,1443,1443,0,0,0,0,0,0,1,412,412,0,0,0,414,0,0,0,0,0,0,1,1,957,955,1,1484,1482,1,0];
_tsip_machine_parser_headers_trans_targs=[2,0,9,162,275,285,323,333,351,392,402,460,478,908,1105,1267,1307,1339,1348,1382,971,1383,1384,1385,1386,1387,1388,1260,249,1389,369,1390,1391,1392,1393,1193,1394,3,4,5,7,6,1395,8,10,86,123,11,12,13,14,15,21,16,17,19,18,1395,20,22,35,49,63,23,24,25,26,27,28,29,30,31,33,32,1395,34,36,37,38,39,40,41,42,43,44,45,47,46,1395,48,50,51,52,53,54,55,56,57,58,59,61,60,1395,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,84,83,1395,85,87,101,88,89,90,91,92,93,94,95,96,97,99,98,1395,100,102,103,104,110,105,106,108,107,1395,109,111,112,113,114,115,116,117,118,119,121,120,1395,122,124,125,126,147,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,144,1395,146,148,149,150,151,152,153,154,155,156,157,158,160,159,1395,161,163,184,266,164,165,166,167,168,175,169,170,171,173,172,1395,174,176,177,178,179,180,182,181,1395,183,185,186,187,196,188,189,190,191,192,194,193,1395,195,197,198,199,200,217,231,256,201,202,203,204,205,206,207,208,209,210,211,212,213,215,214,1395,216,218,219,220,221,222,223,224,225,226,227,229,228,1395,230,232,245,233,234,235,236,237,238,239,240,241,243,242,1395,244,246,247,248,250,251,252,254,253,1395,255,257,258,259,260,261,262,264,263,1395,265,267,268,269,270,271,273,272,1395,274,276,277,278,279,280,281,283,282,1395,284,286,301,311,287,288,289,290,291,292,293,294,295,296,297,299,298,1395,300,302,303,304,305,306,307,309,308,1395,310,312,313,314,315,316,317,318,319,321,320,1395,322,324,325,326,327,328,329,331,330,1395,332,334,335,336,337,338,339,340,341,342,343,344,345,346,347,349,348,1395,350,352,376,353,354,355,356,357,358,359,365,360,361,363,362,1395,364,366,367,368,370,371,372,374,373,1395,375,377,378,379,380,381,382,383,384,385,386,387,388,390,389,1395,391,393,394,395,396,397,398,400,399,1395,401,403,420,404,405,406,407,408,409,410,411,412,413,414,415,416,418,417,1395,419,421,437,422,423,424,425,426,427,428,429,430,431,432,433,435,434,1395,436,438,439,452,440,441,442,443,444,445,446,447,448,450,449,1395,451,453,454,455,456,458,457,1395,459,461,462,463,464,465,466,467,468,469,470,471,472,473,474,476,475,1395,477,479,826,835,480,561,626,702,719,744,783,802,481,505,522,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,503,502,1395,504,506,507,508,509,510,511,512,513,514,515,516,517,518,520,519,1395,521,523,524,544,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,542,541,1395,543,545,546,547,548,549,550,551,552,553,554,555,556,557,559,558,1395,560,562,582,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,580,579,1395,581,583,584,585,586,587,588,589,590,614,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,612,611,1395,613,615,616,617,618,619,620,621,622,624,623,1395,625,627,628,629,630,648,658,668,682,631,632,633,634,635,636,637,638,639,640,641,642,643,644,646,645,1395,647,649,650,651,652,653,654,656,655,1395,657,659,660,661,662,663,664,666,665,1395,667,669,670,671,672,673,674,675,676,677,678,680,679,1395,681,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,700,699,1395,701,703,704,705,706,707,708,709,710,711,712,713,714,715,717,716,1395,718,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,742,741,1395,743,745,746,768,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,766,765,1395,767,769,770,771,772,773,774,775,776,777,778,779,781,780,1395,782,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,800,799,1395,801,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,824,823,1395,825,827,828,829,830,831,833,832,1395,834,836,858,837,848,838,839,840,841,842,843,844,846,845,1395,847,849,850,851,852,853,854,856,855,1395,857,859,860,861,862,895,863,864,865,866,880,867,868,869,870,871,872,873,874,875,876,878,877,1396,879,881,882,883,884,885,886,887,888,889,890,891,893,892,1395,894,896,897,898,899,900,901,902,903,904,906,905,1395,907,909,918,1086,1096,910,911,912,913,914,916,915,1395,917,919,929,945,978,996,1018,1050,1071,920,921,922,923,924,925,927,926,1395,928,930,931,932,933,934,935,936,937,938,939,940,941,943,942,1395,944,946,947,948,966,949,958,950,951,952,953,954,956,955,1395,957,959,960,961,962,964,963,1395,965,967,968,969,970,972,973,974,976,975,1395,977,979,980,981,982,983,984,985,986,987,988,989,990,991,992,994,993,1395,995,997,998,1008,999,1000,1001,1002,1003,1004,1006,1005,1395,1007,1009,1010,1011,1012,1013,1014,1016,1015,1395,1017,1019,1020,1041,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1039,1038,1395,1040,1042,1043,1044,1045,1046,1048,1047,1395,1049,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1069,1068,1395,1070,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1084,1083,1395,1085,1087,1088,1089,1090,1091,1092,1094,1093,1395,1095,1097,1098,1099,1100,1101,1103,1102,1395,1104,1106,1107,1112,1200,1227,1108,1110,1109,1395,1111,1113,1156,1181,1114,1115,1116,1117,1118,1119,1120,1132,1144,1121,1122,1123,1124,1125,1126,1127,1128,1130,1129,1395,1131,1133,1134,1135,1136,1137,1138,1139,1140,1142,1141,1395,1143,1145,1146,1147,1148,1149,1150,1151,1152,1154,1153,1395,1155,1157,1158,1166,1159,1160,1161,1162,1164,1163,1395,1165,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1179,1178,1395,1180,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1194,1195,1196,1198,1197,1395,1199,1201,1202,1203,1213,1204,1205,1206,1207,1208,1209,1211,1210,1395,1212,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1225,1224,1395,1226,1228,1254,1229,1233,1230,1231,1232,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1252,1251,1395,1253,1255,1256,1257,1258,1259,1261,1262,1263,1265,1264,1395,1266,1268,1286,1300,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1284,1283,1395,1285,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1298,1297,1395,1299,1301,1302,1303,1305,1304,1395,1306,1308,1324,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1322,1321,1395,1323,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1337,1336,1395,1338,1340,1341,1342,1343,1344,1346,1345,1395,1347,1349,1361,1350,1351,1352,1353,1354,1355,1356,1357,1359,1358,1395,1360,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1380,1379,1397,1381];
_tsip_machine_parser_headers_trans_actions=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,43,0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,87,0,0,0,0,0,0,0,0,0,0,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,113,0,0,0,0,0,0,0,0,0,0,0,0,115,0,0,0,0,0,0,0,0,0,0,0,0,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,0,0,0,0,0,0,0,125,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,131,0,0,0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,0,0,0,0,0,0,0,0,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,143,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,151,0,0,0,0,0,0,0,0,0,0,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,0,0,0,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,179,0,0,0,0,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,183,0];
tsip_machine_parser_headers_start=1;tsip_machine_parser_headers_first_final=1395;tsip_machine_parser_headers_error=0;
tsip_machine_parser_headers_en_main=1;function tsip_header_parse(w,u){var f=0;var k=w.i_tag_start;var y=w.i_tag_end;
var h=y;var z=w.o_data;var o=w.s_data.substring(w.i_tag_start,w.i_tag_start+(w.i_tag_end-w.i_tag_start));
f=tsip_machine_parser_headers_start;var g,q,c,e,d,t,l;var r,j,b,s,x;var v;g=q=c=t=l=null;r=0;j=10;b=15;
s=20;x=30;v=40;while(true){_trigger_goto=false;if(r<=0){if(k==y){r=x;continue}if(f==0){r=v;continue}}if(r<=j){c=_tsip_machine_parser_headers_key_offsets[f];
q=_tsip_machine_parser_headers_index_offsets[f];g=_tsip_machine_parser_headers_single_lengths[f];_break_match=false;
do{if(g>0){_lower=c;_upper=c+g-1;while(true){if(_upper<_lower){break}_mid=_lower+((_upper-_lower)>>1);
if(z[k]<_tsip_machine_parser_headers_trans_keys[_mid]){_upper=_mid-1}else{if(z[k]>_tsip_machine_parser_headers_trans_keys[_mid]){_lower=_mid+1
}else{q+=(_mid-c);_break_match=true;break}}}if(_break_match){break}c+=g;q+=g}g=_tsip_machine_parser_headers_range_lengths[f];
if(g>0){_lower=c;_upper=c+(g<<1)-2;while(true){if(_upper<_lower){break}_mid=_lower+(((_upper-_lower)>>1)&~1);
if(z[k]<_tsip_machine_parser_headers_trans_keys[_mid]){_upper=_mid-2}else{if(z[k]>_tsip_machine_parser_headers_trans_keys[_mid+1]){_lower=_mid+2
}else{q+=((_mid-c)>>1);_break_match=true;break}}}if(_break_match){break}q+=g}}while(false);q=_tsip_machine_parser_headers_indicies[q];
f=_tsip_machine_parser_headers_trans_targs[q];if(_tsip_machine_parser_headers_trans_actions[q]!=0){t=_tsip_machine_parser_headers_trans_actions[q];
l=_tsip_machine_parser_headers_actions[t];t+=1;while(l>0){l-=1;t+=1;switch(_tsip_machine_parser_headers_actions[t-1]){case 0:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 1:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 2:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 3:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 4:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 5:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 6:var n=tsip_header_Allow.prototype.Parse(o);
u.add_headers(n);break;case 7:var n=tsip_header_Allow_Events.prototype.Parse(o);u.add_headers(n);break;
case 8:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 9:var n=tsip_header_Authorization.prototype.Parse(o);
u.add_headers(n);break;case 10:var n=tsip_header_Call_ID.prototype.Parse(o);u.add_headers(n);break;case 11:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 12:var a=tsip_header_Contact.prototype.Parse(o);for(var m=0;m<a.length;++m){u.add_header(a[m])
}break;case 13:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 14:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 15:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 16:var n=tsip_header_Content_Length.prototype.Parse(o);
u.add_headers(n);break;case 17:var n=tsip_header_Content_Type.prototype.Parse(o);u.add_headers(n);break;
case 18:var n=tsip_header_CSeq.prototype.Parse(o);u.add_headers(n);break;case 19:var n=tsip_header_Date.prototype.Parse(o);
u.add_headers(n);break;case 20:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 21:var n=tsip_header_Event.prototype.Parse(o);
u.add_headers(n);break;case 22:var n=tsip_header_Expires.prototype.Parse(o);u.add_headers(n);break;case 23:var n=tsip_header_From.prototype.Parse(o);
u.add_headers(n);break;case 24:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 25:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 26:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 27:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 28:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 29:var n=tsip_header_Max_Forwards.prototype.Parse(o);
u.add_headers(n);break;case 30:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 31:var n=tsip_header_Min_Expires.prototype.Parse(o);
u.add_headers(n);break;case 32:var n=tsip_header_Min_SE.prototype.Parse(o);u.add_headers(n);break;case 33:var n=tsip_header_Organization.prototype.Parse(o);
u.add_headers(n);break;case 34:var n=tsip_header_P_Access_Network_Info.prototype.Parse(o);u.add_headers(n);
break;case 35:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 36:var a=tsip_header_P_Asserted_Identity.prototype.Parse(o);
if(a){for(var m=0;m<a.length;++m){u.add_header(a[m])}}break;case 37:var a=tsip_header_P_Associated_URI.prototype.Parse(o);
if(a){for(var m=0;m<a.length;++m){u.add_header(a[m])}}break;case 38:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 39:var n=tsip_header_P_Charging_Function_Addresses.prototype.Parse(o);u.add_headers(n);
break;case 40:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 41:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 42:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 43:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 44:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 45:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 46:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 47:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 48:var a=tsip_header_P_Preferred_Identity.prototype.Parse(o);if(a){for(var m=0;
m<a.length;++m){u.add_header(a[m])}}break;case 49:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);
break;case 50:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 51:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 52:var a=tsip_header_Path.prototype.Parse(o);if(a){for(var m=0;m<a.length;
++m){u.add_header(a[m])}}break;case 53:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;
case 54:var n=tsip_header_Privacy.prototype.Parse(o);u.add_headers(n);break;case 55:var n=tsip_header_WWW_Authenticate.prototype.Parse(o);
u.add_headers(n);k=(y-1);break;case 56:var n=tsip_header_Authorization.prototype.Parse(o);u.add_headers(n);
break;case 57:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 58:var n=tsip_header_RAck.prototype.Parse(o);
u.add_headers(n);break;case 59:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 60:var a=tsip_header_Record_Route.prototype.Parse(o);
if(a){for(var m=0;m<a.length;++m){u.add_header(a[m])}}break;case 61:var n=tsip_header_Refer_Sub.prototype.Parse(o);
u.add_headers(n);break;case 62:var n=tsip_header_Refer_To.prototype.Parse(o);u.add_headers(n);break;case 63:var n=tsip_header_Referred_By.prototype.Parse(o);
u.add_headers(n);break;case 64:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 65:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 66:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 67:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 68:var n=tsip_header_Require.prototype.Parse(o);u.add_headers(n);break;case 69:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 70:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 71:var a=tsip_header_Route.prototype.Parse(o);
if(a){for(var m=0;m<a.length;++m){u.add_header(a[m])}}break;case 72:var n=tsip_header_RSeq.prototype.Parse(o);
u.add_headers(n);break;case 73:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 74:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 75:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 76:var n=tsip_header_Server.prototype.Parse(o);
u.add_headers(n);break;case 77:var a=tsip_header_Service_Route.prototype.Parse(o);if(a){for(var m=0;m<a.length;
++m){u.add_header(a[m])}}break;case 78:var n=tsip_header_Session_Expires.prototype.Parse(o);u.add_headers(n);
break;case 79:var n=tsip_header_SIP_ETag.prototype.Parse(o);u.add_headers(n);break;case 80:var n=tsip_header_SIP_If_Match.prototype.Parse(o);
u.add_headers(n);break;case 81:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 82:var n=tsip_header_Subscription_State.prototype.Parse(o);
u.add_headers(n);break;case 83:var n=tsip_header_Supported.prototype.Parse(o);u.add_headers(n);break;
case 84:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break;case 85:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 86:var n=tsip_header_To.prototype.Parse(o);u.add_headers(n);break;case 87:var n=tsip_header_Dummy.prototype.Parse(o);
u.add_headers(n);break;case 88:var n=tsip_header_User_Agent.prototype.Parse(o);u.add_headers(n);break;
case 89:var a=tsip_header_Via.prototype.Parse(o);if(a){for(var m=0;m<a.length;++m){u.add_header(a[m])
}}break;case 90:var n=tsip_header_Warning.prototype.Parse(o);u.add_headers(n);break;case 91:var n=tsip_header_WWW_Authenticate.prototype.Parse(o);
u.add_headers(n);k=(y-1);break;case 92:var n=tsip_header_Dummy.prototype.Parse(o);u.add_headers(n);break
}}}if(_trigger_goto){continue}}if(r<=s){if(f==0){r=v;continue}k+=1;if(k!=y){r=j;continue}}if(r<=x){}if(r<=v){break
}}if(f<1395){tsk_utils_log_error("Failed to parse header: "+o);return -2}return 0}tsip_transac.prototype.__magic_cookie="z9hG4bK";
var tsip_transac_event_type_e={INCOMING_MSG:0,OUTGOING_MSG:1,CANCELED:2,TERMINATED:3,TIMEDOUT:4,ERROR:5,TRANSPORT_ERROR:6};
var tsip_transac_type_e={NONE:-1,ICT:0,IST:1,NICT:2,NIST:3};function tsip_transac(){this.e_type=tsip_transac_type_e.NONE;
this.o_dialog=null;this.o_fsm=null;this.b_reliable=true;this.b_running=false;this.b_initialized=false;
this.s_branch=null;this.i_cseq_value=0;this.s_cseq_method=null;this.s_callid=null;this.fn_callback=null
}tsip_transac.prototype.init=function(c,b,h,f,e,g,d,a){if(!this.b_initialized){this.e_type=c;this.b_reliable=b;
this.i_cseq_value=h;this.s_cseq_method=f;this.s_callid=e;this.o_dialog=g;this.o_fsm=new tsk_fsm(d,a,null,this);
this.b_initialized=true}return 0};tsip_transac.prototype.deinit=function(){this.get_stack().o_layer_transac.remove(this);
this.b_initialized=false;return 0};tsip_transac.prototype.timer_schedule=function(T,N){this.timer_cancel(N);
var This=this;var s_code=tsk_string_format("This.o_timer{1} = setTimeout(function(){ __tsip_transac_{0}_timer_callback(This, This.o_timer{1})}, This.i_timer{1});",T,N);
eval(s_code)};tsip_transac.prototype.timer_cancel=function(N){var s_code=tsk_string_format("if(this.o_timer{0}) { clearTimeout(this.o_timer{0}); this.o_timer{0} = null; }",N);
eval(s_code)};tsip_transac.prototype.set_callback=function(a){this.fn_callback=a};tsip_transac.prototype.send=function(b,a){return this.get_stack().o_layer_transport.send(b,a)
};tsip_transac.prototype.callback=function(b,a){if(this.fn_callback){return this.fn_callback(this,b,a)
}tsk_utils_log_error("Invalid callback function");return -1};tsip_transac.prototype.get_type=function(){return this.e_type
};tsip_transac.prototype.get_fsm=function(){return this.o_fsm};tsip_transac.prototype.get_dialog=function(){return this.o_dialog
};tsip_transac.prototype.get_session=function(){if(this.o_dialog){return this.o_dialog.o_session}return null
};tsip_transac.prototype.get_stack=function(){var a=this.get_session();if(a){return a.o_stack}return null
};tsip_transac.prototype.fsm_act=function(a,b){if(!this.o_fsm){tsk_utils_log_error("Invalid argument");
return -1}return this.o_fsm.act(a,this,b,this,b)};tsip_transac.prototype.send=function(c,b){var a=this.get_stack();
if(!a||!a.o_layer_transport){tsk_utils_log_error("Invalid state");return -1}return a.o_layer_transport.send(c,b)
};tsip_transac.prototype.compare=function(a){return tsip_transac_compare(this,a)};function tsip_transac_compare(b,a){if(b&&a){if((b.s_branch==a.s_branch)&&(b.s_cseq_method==a.s_cseq_method)){return 0
}}return -1}if(!window.__b_release_mode){tsip_api_add_js_scripts("head","src/tinySIP/src/transactions/tsip_transac_ict.js","src/tinySIP/src/transactions/tsip_transac_ist.js","src/tinySIP/src/transactions/tsip_transac_layer.js","src/tinySIP/src/transactions/tsip_transac_nict.js","src/tinySIP/src/transactions/tsip_transac_nist.js")
}tsip_transac_ict.prototype=Object.create(tsip_transac.prototype);tsip_transac_ict.prototype.__b_debug_state_machine=false;
var tsip_transac_ict_actions_e={CANCEL:tsip_action_type_e.CANCEL,SEND:10001,TIMER_A:10002,TIMER_B:10003,TIMER_D:10004,TIMER_M:10005,I_1XX:10006,I_2XX:10007,I_300_to_699:10008,TRANSPOR_TERROR:10009,ERROR:10010};
var tsip_transac_ict_states_e={STARTED:0,CALLING:1,PROCEEDING:2,COMPLETED:3,ACCEPTED:4,TERMINATED:5};
function tsip_transac_ict(b,e,c,d){var a;if(!d||!(a=d.get_stack())){tsk_utils_log_error("Invalid argument");
return null}tsip_transac.call(this);this.init(tsip_transac_type_e.ICT,b,e,"INVITE",c,d,tsip_transac_ict_states_e.STARTED,tsip_transac_ict_states_e.TERMINATED);
this.set_callback(__tsip_transac_ict_event_callback);this.o_fsm.set_debug_enabled(tsip_transac_ict.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_transac_ict_onterm,this);this.o_timerA=null;this.o_timerB=null;
this.o_timerD=null;this.o_timerM=null;this.i_timerA=a.o_timers.getA();this.i_timerB=a.o_timers.getB();
this.i_timerD=b?0:a.o_timers.getD();this.i_timerM=a.o_timers.getM();this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.STARTED,tsip_transac_ict_actions_e.SEND,tsip_transac_ict_states_e.CALLING,__tsip_transac_ict_Started_2_Calling_X_send,"tsip_transac_ict_Started_2_Calling_X_send"),tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_ict_states_e.STARTED,"tsip_transac_ict_Started_2_Started_X_any"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING,tsip_transac_ict_actions_e.TIMER_A,tsip_transac_ict_states_e.CALLING,__tsip_transac_ict_Calling_2_Calling_X_timerA,"tsip_transac_ict_Calling_2_Calling_X_timerA"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING,tsip_transac_ict_actions_e.TIMER_B,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Calling_2_Terminated_X_timerB,"tsip_transac_ict_Calling_2_Terminated_X_timerB"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING,tsip_transac_ict_actions_e.I_300_to_699,tsip_transac_ict_states_e.COMPLETED,__tsip_transac_ict_Calling_2_Completed_X_300_to_699,"tsip_transac_ict_Calling_2_Completed_X_300_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING,tsip_transac_ict_actions_e.I_1XX,tsip_transac_ict_states_e.PROCEEDING,__tsip_transac_ict_Calling_2_Proceeding_X_1xx,"tsip_transac_ict_Calling_2_Proceeding_X_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING,tsip_transac_ict_actions_e.I_2XX,tsip_transac_ict_states_e.ACCEPTED,__tsip_transac_ict_Calling_2_Accepted_X_2xx,"tsip_transac_ict_Calling_2_Accepted_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING,tsip_transac_ict_actions_e.I_1XX,tsip_transac_ict_states_e.PROCEEDING,__tsip_transac_ict_Proceeding_2_Proceeding_X_1xx,"tsip_transac_ict_Proceeding_2_Proceeding_X_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING,tsip_transac_ict_actions_e.I_300_to_699,tsip_transac_ict_states_e.COMPLETED,__tsip_transac_ict_Proceeding_2_Completed_X_300_to_699,"tsip_transac_ict_Proceeding_2_Completed_X_300_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING,tsip_transac_ict_actions_e.I_2XX,tsip_transac_ict_states_e.ACCEPTED,__tsip_transac_ict_Proceeding_2_Accepted_X_2xx,"tsip_transac_ict_Proceeding_2_Accepted_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.COMPLETED,tsip_transac_ict_actions_e.I_300_to_699,tsip_transac_ict_states_e.COMPLETED,__tsip_transac_ict_Completed_2_Completed_X_300_to_699,"tsip_transac_ict_Completed_2_Completed_X_300_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.COMPLETED,tsip_transac_ict_actions_e.TIMER_D,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Completed_2_Terminated_X_timerD,"tsip_transac_ict_Completed_2_Terminated_X_timerD"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.ACCEPTED,tsip_transac_ict_actions_e.I_2XX,tsip_transac_ict_states_e.ACCEPTED,__tsip_transac_ict_Accepted_2_Accepted_X_2xx,"tsip_transac_ict_Accepted_2_Accepted_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.ACCEPTED,tsip_transac_ict_actions_e.TIMER_M,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Accepted_2_Terminated_X_timerM,"tsip_transac_ict_Accepted_2_Terminated_X_timerM"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ict_actions_e.TRANSPORT_ERROR,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Any_2_Terminated_X_transportError,"tsip_transac_ict_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ict_actions_e.ERROR,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Any_2_Terminated_X_Error,"tsip_transac_ict_Any_2_Terminated_X_Error"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ict_actions_e.CANCEL,tsip_transac_ict_states_e.TERMINATED,__tsip_transac_ict_Any_2_Terminated_X_cancel,"tsip_transac_ict_Any_2_Terminated_X_cancel"))
}tsip_transac_ict.prototype.start=function(a){var b=-1;if(a&&!this.b_running){this.s_branch=tsk_string_format("{0}{1}",tsip_transac.prototype.__magic_cookie,tsk_string_random(32));
this.b_running=true;this.o_request=a;b=this.fsm_act(tsip_transac_ict_actions_e.SEND,a)}return b};tsip_transac_ict.prototype.send_ack=function(c){if(!this.o_request||!c){tsk_utils_log_error("Invalid state");
return -1}if(!this.o_request.o_hdr_firstVia||!this.o_request.o_hdr_From||!this.o_request.line.request.o_uri||!this.o_request.o_hdr_Call_ID||!this.o_request.o_hdr_CSeq){tsk_utils_log_error("Invalid INVITE message");
return -2}if(!c.o_hdr_To){tsk_utils_log_error("Invalid response message");return -3}var d=-1;var b=null;
if((b=new tsip_request("ACK",this.o_request.line.request.o_uri,this.o_request.o_hdr_From.o_uri,c.o_hdr_To.o_uri,this.o_request.o_hdr_Call_ID.s_value,this.o_request.o_hdr_CSeq.i_seq))){b.o_hdr_firstVia=this.o_request.o_hdr_firstVia;
if(b.o_hdr_From){b.o_hdr_From.s_tag=this.o_request.o_hdr_From.s_tag}if(b.o_hdr_To){b.o_hdr_To.s_tag=c.o_hdr_To.s_tag
}if(this.get_stack().network.e_proxy_cscf_type==tsip_transport_type_e.WS||this.get_stack().network.e_proxy_cscf_type==tsip_transport_type_e.WSS){var e=this.get_stack().__get_proxy_outbound_uri_string();
if(e){b.add_header(new tsip_header_Dummy("Route",e),true)}}for(var a=0;a<this.o_request.ao_headers.length;
++a){if(this.o_request.ao_headers[a].e_type==tsip_header_type_e.Route){b.add_header(this.o_request.ao_headers[a])
}}b.s_sigcomp_id=this.get_session().s_sigcomp_id;d=this.send(b.o_hdr_firstVia.s_branch,b)}return d};function __tsip_transac_ict_Started_2_Calling_X_send(a){var b=a[0];
b.send(b.s_branch,b.o_request);if(!b.b_reliable){b.timer_schedule("ict","A")}b.timer_schedule("ict","B");
return 0}function __tsip_transac_ict_Calling_2_Calling_X_timerA(a){var b=a[0];b.send(b.s_branch,b.o_request);
b.i_timerA<<=1;b.timer_schedule("ict","A");return 0}function __tsip_transac_ict_Calling_2_Terminated_X_timerB(a){var b=a[0];
b.get_dialog().callback(tsip_dialog_event_type_e.TIMEDOUT,null);return 0}function __tsip_transac_ict_Calling_2_Completed_X_300_to_699(a){var b=a[0];
var c=a[1];var d;if(!b.b_reliable){b.timer_cancel("A")}b.timer_cancel("B");b.timer_schedule("ict","D");
if((d=b.send_ack(c))<=0){return d}return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)}function __tsip_transac_ict_Calling_2_Proceeding_X_1xx(a){var b=a[0];
var c=a[1];if(!b.b_reliable){b.timer_cancel("A")}b.timer_cancel("B");return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function __tsip_transac_ict_Calling_2_Accepted_X_2xx(a){var b=a[0];var c=a[1];b.timer_schedule("ict","M");
if(!b.b_reliable){b.timer_schedule("ict","A")}b.timer_schedule("ict","B");return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function __tsip_transac_ict_Proceeding_2_Proceeding_X_1xx(a){var b=a[0];var c=a[1];return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function __tsip_transac_ict_Proceeding_2_Completed_X_300_to_699(a){var b=a[0];var c=a[1];var d;if(!b.b_reliable){b.timer_cancel("A")
}b.timer_cancel("B");b.timer_schedule("ict","D");if((d=b.send_ack(c))<=0){return d}return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function __tsip_transac_ict_Proceeding_2_Accepted_X_2xx(a){var b=a[0];var c=a[1];b.timer_schedule("ict","M");
if(!b.b_reliable){b.timer_schedule("ict","A")}b.timer_schedule("ict","B");return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function __tsip_transac_ict_Completed_2_Completed_X_300_to_699(a){var b=a[0];var c=a[1];return(b.send_ack(c)<=0?-1:0)
}function __tsip_transac_ict_Completed_2_Terminated_X_timerD(a){return 0}function __tsip_transac_ict_Accepted_2_Accepted_X_2xx(a){var b=a[0];
var c=a[1];return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)}function __tsip_transac_ict_Accepted_2_Terminated_X_timerM(a){return 0
}function __tsip_transac_ict_Any_2_Terminated_X_transportError(a){var b=a[0];return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null)
}function __tsip_transac_ict_Any_2_Terminated_X_Error(a){var b=a[0];return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR,null)
}function __tsip_transac_ict_Any_2_Terminated_X_cancel(a){return 0}function __tsip_transac_ict_onterm(a){a.timer_cancel("A");
a.timer_cancel("B");a.timer_cancel("D");a.timer_cancel("M");return a.deinit()}function __tsip_transac_ict_event_callback(a,c,b){if(!a){tsk_utils_log_error("Invalid argument");
return -1}var d=0;switch(c){case tsip_transac_event_type_e.INCOMING_MSG:if(b&&b.is_response()){if(b.is_1xx()){d=a.fsm_act(tsip_transac_ict_actions_e.I_1XX,b)
}else{if(b.is_2xx()){d=a.fsm_act(tsip_transac_ict_actions_e.I_2XX,b)}else{if(b.is_3456()){d=a.fsm_act(tsip_transac_ict_actions_e.I_300_to_699,b)
}else{tsk_utils_log_warn("Not supported status code: "+b.get_response_code())}}}}break;case tsip_transac_event_type_e.CANCELED:case tsip_transac_event_type_e.TERMINATED:case tsip_transac_event_type_e.TIMEDOUT:break;
case tsip_transac_event_type_e.ERROR:d=a.fsm_act(tsip_transac_ict_actions_e.ERROR,b);break;case tsip_transac_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_transac_ict_actions_e.TRANSPORT_ERROR,b);
break}return d}function __tsip_transac_ict_timer_callback(b,a){if(b){if(a==b.o_timerA){b.fsm_act(tsip_transac_ict_actions_e.TIMER_A,null)
}else{if(a==b.o_timerB){b.fsm_act(tsip_transac_ict_actions_e.TIMER_B,null)}else{if(a==b.o_timerD){b.fsm_act(tsip_transac_ict_actions_e.TIMER_D,null)
}else{if(a==b.o_timerM){b.fsm_act(tsip_transac_ict_actions_e.TIMER_M,null)}}}}}}tsip_transac_ist.prototype=Object.create(tsip_transac.prototype);
tsip_transac_ist.prototype.__b_debug_state_machine=true;var tsip_transac_ist_actions_e={CANCEL:tsip_action_type_e.CANCEL,RECV_INVITE:10001,RECV_ACK:10002,SEND_1XX:10003,SEND_2XX:10004,SEND_300_to_699:10005,SEND_NON1XX:10006,TIMER_H:10007,TIMER_I:10008,TIMER_G:10009,TIMER_L:10010,TIMER_X:10011,TRANSPORT_ERROR:10012,ERROR:10013};
var tsip_transac_ist_states_e={STARTED:0,PROCEEDING:1,COMPLETED:2,ACCEPTED:3,CONFIRMED:4,TERMINATED:5};
function tsip_transac_ist(b,e,c,d){var a;if(!d||!(a=d.get_stack())){tsk_utils_log_error("Invalid argument");
return null}tsip_transac.call(this);this.o_lastResponse=null;this.init(tsip_transac_type_e.IST,b,e,"INVITE",c,d,tsip_transac_ist_states_e.STARTED,tsip_transac_ist_states_e.TERMINATED);
this.set_callback(__tsip_transac_ist_event_callback);this.o_fsm.set_debug_enabled(tsip_transac_ist.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_transac_ist_onterm,this);this.o_timerH=null;this.o_timerI=null;
this.o_timerG=null;this.o_timerL=null;this.o_timerX=null;this.i_timerH=a.o_timers.getH();this.i_timerI=b?0:a.o_timers.getI();
this.i_timerG=a.o_timers.getG();this.i_timerL=a.o_timers.getL();this.i_timerX=a.o_timers.getG();this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.STARTED,tsip_transac_ist_actions_e.RECV_INVITE,tsip_transac_ist_states_e.PROCEEDING,__tsip_transac_ist_Started_2_Proceeding_X_INVITE,"tsip_transac_ist_Started_2_Proceeding_X_INVITE"),tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_ist_states_e.STARTED,"tsip_transac_ist_Started_2_Started_X_any"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.PROCEEDING,tsip_transac_ist_actions_e.RECV_INVITE,tsip_transac_ist_states_e.PROCEEDING,__tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE,"tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE"),tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING,tsip_transac_ist_actions_e.SEND_1XX,__tsip_transac_ist_cond_is_resp2invite,tsip_transac_ist_states_e.PROCEEDING,__tsip_transac_ist_Proceeding_2_Proceeding_X_1xx,"tsip_transac_ist_Proceeding_2_Proceeding_X_1xx"),tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING,tsip_transac_ist_actions_e.SEND_300_to_699,__tsip_transac_ist_cond_is_resp2invite,tsip_transac_ist_states_e.COMPLETED,__tsip_transac_ist_Proceeding_2_Completed_X_300_to_699,"tsip_transac_ist_Proceeding_2_Completed_X_300_to_699"),tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING,tsip_transac_ist_actions_e.SEND_2XX,__tsip_transac_ist_cond_is_resp2invite,tsip_transac_ist_states_e.ACCEPTED,__tsip_transac_ist_Proceeding_2_Accepted_X_2xx,"tsip_transac_ist_Proceeding_2_Accepted_X_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED,tsip_transac_ist_actions_e.RECV_INVITE,tsip_transac_ist_states_e.COMPLETED,__tsip_transac_ist_Completed_2_Completed_INVITE,"tsip_transac_ist_Completed_2_Completed_INVITE"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED,tsip_transac_ist_actions_e.TIMER_G,tsip_transac_ist_states_e.COMPLETED,__tsip_transac_ist_Completed_2_Completed_timerG,"tsip_transac_ist_Completed_2_Completed_timerG"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED,tsip_transac_ist_actions_e.TIMER_H,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Completed_2_Terminated_timerH,"tsip_transac_ist_Completed_2_Terminated_timerH"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED,tsip_transac_ist_actions_e.RECV_ACK,tsip_transac_ist_states_e.CONFIRMED,__tsip_transac_ist_Completed_2_Confirmed_ACK,"tsip_transac_ist_Completed_2_Confirmed_ACK"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED,tsip_transac_ist_actions_e.RECV_INVITE,tsip_transac_ist_states_e.ACCEPTED,__tsip_transac_ist_Accepted_2_Accepted_INVITE,"tsip_transac_ist_Accepted_2_Accepted_INVITE"),tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.ACCEPTED,tsip_transac_ist_actions_e.SEND_2XX,__tsip_transac_ist_cond_is_resp2invite,tsip_transac_ist_states_e.ACCEPTED,__tsip_transac_ist_Accepted_2_Accepted_2xx,"tsip_transac_ist_Accepted_2_Accepted_2xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED,tsip_transac_ist_actions_e.TIMER_X,tsip_transac_ist_states_e.ACCEPTED,__tsip_transac_ist_Accepted_2_Accepted_timerX,"tsip_transac_ist_Accepted_2_Accepted_timerX"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED,tsip_transac_ist_actions_e.RECV_ACK,tsip_transac_ist_states_e.ACCEPTED,__tsip_transac_ist_Accepted_2_Accepted_iACK,"tsip_transac_ist_Accepted_2_Accepted_iACK"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED,tsip_transac_ist_actions_e.TIMER_L,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Accepted_2_Terminated_timerL,"tsip_transac_ist_Accepted_2_Terminated_timerL"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.CONFIRMED,tsip_transac_ist_actions_e.TIMER_I,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Confirmed_2_Terminated_timerI,"tsip_transac_ist_Confirmed_2_Terminated_timerI"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ist_actions_e.TRANSPORT_ERROR,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Any_2_Terminated_X_transportError,"tsip_transac_ist_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ist_actions_e.ERROR,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Any_2_Terminated_X_Error,"tsip_transac_ist_Any_2_Terminated_X_Error"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_ist_actions_e.CANCEL,tsip_transac_ist_states_e.TERMINATED,__tsip_transac_ist_Any_2_Terminated_X_cancel,"tsip_transac_ist_Any_2_Terminated_X_cancel"))
}tsip_transac_ist.prototype.start=function(a){var b=-1;if(a&&!this.b_running){this.b_running=true;b=this.fsm_act(tsip_transac_ist_actions_e.RECV_INVITE,a)
}return b};tsip_transac_ist.prototype.set_last_response=function(a){this.o_lastResponse=a};function __tsip_transac_ist_cond_is_resp2invite(a,b){return b.is_response_to_invite()
}function __tsip_transac_ist_Started_2_Proceeding_X_INVITE(a){var b=a[0];var c=a[1];var e=-1;if(c){var d;
if((d=new tsip_response(100,"Trying (sent from the Transaction Layer)",c))){e=(b.send(b.s_branch,d)>0?0:-1);
b.set_last_response(d)}}if(e==0){e=b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)}return e
}function __tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE(a){var b=a[0];var c=-1;if(b.o_lastResponse){c=(b.send(b.s_branch,b.o_lastResponse)>0?0:-1)
}return c}function __tsip_transac_ist_Proceeding_2_Proceeding_X_1xx(a){var b=a[0];var c=a[1];var d;d=(b.send(b.s_branch,c)>0?0:-1);
b.set_last_response(c);return d}function __tsip_transac_ist_Proceeding_2_Completed_X_300_to_699(a){var b=a[0];
var c=a[1];var d;if(!b.b_reliable){b.timer_schedule("ist","G")}d=(b.send(b.s_branch,c)>0?0:-1);b.set_last_response(c);
b.timer_schedule("ist","H");return d}function __tsip_transac_ist_Proceeding_2_Accepted_X_2xx(a){var b=a[0];
var c=a[1];var d;d=(b.send(b.s_branch,c)>0?0:-1);b.set_last_response(c);b.timer_schedule("ist","X");b.i_timerX<<=1;
b.timer_schedule("ist","L");return d}function __tsip_transac_ist_Completed_2_Completed_INVITE(a){var b=a[0];
var c;if(b.o_lastResponse){c=(b.send(b.s_branch,b.o_lastResponse)>0?0:-1)}return c}function __tsip_transac_ist_Completed_2_Completed_timerG(a){var b=a[0];
var c;if(b.o_lastResponse){c=(b.send(b.s_branch,b.o_lastResponse)>0?0:-1)}b.i_timerG=Math.min(b.i_timerG<<1,b.get_stack().o_timers.getT2());
b.timer_schedule("ist","G");return c}function __tsip_transac_ist_Completed_2_Terminated_timerH(a){var b=a[0];
return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null)}function __tsip_transac_ist_Completed_2_Confirmed_ACK(a){var b=a[0];
b.timer_cancel("G");b.timer_schedule("ist","I");return 0}function __tsip_transac_ist_Accepted_2_Accepted_INVITE(a){var b=a[0];
if(b.o_lastResponse){return(b.send(b.s_branch,b.o_lastResponse)>0?0:-1)}return 0}function __tsip_transac_ist_Accepted_2_Accepted_2xx(a){var b=a[0];
var c=a[1];var d;d=(b.send(b.s_branch,c)>0?0:-1);b.set_last_response(c);return d}function __tsip_transac_ist_Accepted_2_Accepted_timerX(a){var b=a[0];
if(b.o_lastResponse){var c=(b.send(b.s_branch,b.o_lastResponse)>0?0:-1);if(c==0){b.i_timerX<<=1;b.timer_schedule("ist","X")
}return c}return 0}function __tsip_transac_ist_Accepted_2_Accepted_iACK(a){var b=a[0];var c=a[1];b.timer_cancel("X");
b.timer_cancel("L");return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)}function __tsip_transac_ist_Accepted_2_Terminated_timerL(a){return 0
}function __tsip_transac_ist_Confirmed_2_Terminated_timerI(a){return 0}function __tsip_transac_ist_Any_2_Terminated_X_transportError(a){var b=a[0];
return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null)}function __tsip_transac_ist_Any_2_Terminated_X_Error(a){var b=a[0];
return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR,null)}function __tsip_transac_ist_Any_2_Terminated_X_cancel(a){return 0
}function __tsip_transac_ist_onterm(a){a.timer_cancel("H");a.timer_cancel("I");a.timer_cancel("G");a.timer_cancel("L");
a.timer_cancel("X");return a.deinit()}function __tsip_transac_ist_event_callback(a,c,b){if(!a){tsk_utils_log_error("Invalid argument");
return -1}var d=-1;switch(c){case tsip_transac_event_type_e.INCOMING_MSG:if(b&&b.is_request()){if(b.is_invite()){d=a.fsm_act(tsip_transac_ist_actions_e.RECV_INVITE,b)
}else{if(b.is_ack()){d=a.fsm_act(tsip_transac_ist_actions_e.RECV_ACK,b)}}}break;case tsip_transac_event_type_e.OUTGOING_MSG:if(b&&b.is_response()){if(b.is_1xx()){d=a.fsm_act(tsip_transac_ist_actions_e.SEND_1XX,b)
}else{if(b.is_2xx()){d=a.fsm_act(tsip_transac_ist_actions_e.SEND_2XX,b)}else{if(b.is_3456()){d=a.fsm_act(tsip_transac_ist_actions_e.SEND_300_to_699,b)
}}}}break;case tsip_transac_event_type_e.CANCELED:case tsip_transac_event_type_e.TERMINATED:case tsip_transac_event_type_e.TIMEDOUT:break;
case tsip_transac_event_type_e.ERROR:d=a.fsm_act(tsip_transac_ist_actions_e.ERROR,b);break;case tsip_transac_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_transac_ist_actions_e.TRANSPORT_ERROR,b);
break}return d}function __tsip_transac_ist_timer_callback(b,a){if(b){if(a==b.o_timerH){b.fsm_act(tsip_transac_ist_actions_e.TIMER_H,null)
}else{if(a==b.o_timerI){b.fsm_act(tsip_transac_ist_actions_e.TIMER_I,null)}else{if(a==b.o_timerG){b.fsm_act(tsip_transac_ist_actions_e.TIMER_G,null)
}else{if(a==b.o_timerL){b.fsm_act(tsip_transac_ist_actions_e.TIMER_L,null)}else{if(a==b.o_timerX){b.fsm_act(tsip_transac_ist_actions_e.TIMER_X,null)
}}}}}}}function tsip_transac_layer(a){if(!a){tsk_utils_log_error("Invalid argument");return null}this.o_stack=a;
this.ao_transacs=new Array()}tsip_transac_layer.prototype.transac_new=function(c,d,e){if(!d||!d.o_hdr_CSeq||!d.o_hdr_Call_ID){tsk_utils_log_error("Invalid argument");
return null}var a=null;while(this.b_locked){}this.b_locked=true;var b=true;if(this.o_stack.o_layer_transport.ao_transports.length>0){b=this.o_stack.o_layer_transport.ao_transports[0].is_reliable()
}if(d){if(d.is_request()){if(c){if(d.is_invite()){a=new tsip_transac_ict(b,d.o_hdr_CSeq.i_seq,d.o_hdr_Call_ID.s_value,e)
}else{a=new tsip_transac_nict(b,d.o_hdr_CSeq.i_seq,d.o_hdr_CSeq.s_method,d.o_hdr_Call_ID.s_value,e)}}else{if(d.is_invite()){a=new tsip_transac_ist(b,d.o_hdr_CSeq.i_seq,d.o_hdr_Call_ID.s_value,e)
}else{a=new tsip_transac_nist(b,d.o_hdr_CSeq.i_seq,d.o_hdr_CSeq.s_method,d.o_hdr_Call_ID.s_value,e)}if(a){a.s_branch=d.o_hdr_firstVia.s_branch
}}if(a){this.ao_transacs.push(a)}}}this.b_locked=false;return a};tsip_transac_layer.prototype.indexof=function(a){var c=-1;
if(a){while(this.b_locked){}this.b_locked=true;for(var b=0;b<this.ao_transacs.length;++b){if(a==this.ao_transacs[b]){c=b;
break}}this.b_locked=false}return c};tsip_transac_layer.prototype.remove=function(a){if(a){while(this.b_locked){}this.b_locked=true;
for(var b=0;b<this.ao_transacs.length;++b){if(a==this.ao_transacs[b]){this.ao_transacs.splice(b,1);break
}}this.b_locked=false}};tsip_transac_layer.prototype.cancel_by_dialog=function(d){if(!d){tsk_utils_log_error("Invalid argument");
return -1}var b=null;while(this.b_locked){}this.b_locked=true;for(var c=0;c<this.ao_transacs.length;++c){b=this.ao_transacs[c];
if(d.compare(b.get_dialog())==0){var a=b;setTimeout(function(){a.fsm_act(tsip_action_type_e.CANCEL,null)
},1)}}this.b_locked=false;return 0};tsip_transac_layer.prototype.find_client=function(c){if(!c){tsk_utils_log_error("Invalid argument");
return null}var d=null;var a;if(!c.o_hdr_firstVia||!c.o_hdr_CSeq){return null}while(this.b_locked){}this.b_locked=true;
for(var b=0;b<this.ao_transacs.length;++b){a=this.ao_transacs[b];if((a.s_branch==c.o_hdr_firstVia.s_branch)&&(a.s_cseq_method==c.o_hdr_CSeq.s_method)){d=a;
break}}this.b_locked=false;return d};tsip_transac_layer.prototype.find_server=function(c){var d=null;
var a;if(!c.o_hdr_firstVia||!c.o_hdr_CSeq||!c.o_hdr_Call_ID){return null}while(this.b_locked){}this.b_locked=true;
for(var b=0;b<this.ao_transacs.length;++b){a=this.ao_transacs[b];if(c.is_ack()&&(a.s_callid==c.o_hdr_Call_ID.s_value)){if(tsk_string_iequals(a.s_cseq_method,"INVITE")&&c.o_hdr_CSeq.i_seq==a.i_cseq_value){d=a;
break}}else{if(tsk_string_equals(a.s_branch,c.o_hdr_firstVia.s_branch)&&(1==1)){if(tsk_string_equals(a.s_cseq_method,c.o_hdr_CSeq.s_method)){d=a;
break}else{if(c.is_cancel()||c.is_response_to_cancel()){d=a;break}}}}}this.b_locked=false;return d};tsip_transac_layer.prototype.handle_incoming_message=function(b){if(!b){tsk_utils_log_error("Invalid argument");
return -1}var c=-1;var a=null;if(b.is_request()){a=this.find_server(b)}else{a=this.find_client(b)}if(a){c=a.callback(tsip_transac_event_type_e.INCOMING_MSG,b)
}return c};tsip_transac_nict.prototype=Object.create(tsip_transac.prototype);tsip_transac_nict.prototype.__b_debug_state_machine=false;
var tsip_transac_nict_actions_e={CANCEL:tsip_action_type_e.CANCEL,SEND:10001,TIMER_E:10002,TIMER_F:10003,TIMER_K:10004,I_1xx:10005,I_200_to_699:10006,TRANSPORT_ERROR:10007,ERROR:10008};
var tsip_transac_nict_states_e={STARTED:0,TRYING:1,PROCEEDING:2,COMPLETED:3,TERMINATED:4};function tsip_transac_nict(b,f,d,c,e){var a;
if(!e||!(a=e.get_stack())){tsk_utils_log_error("Invalid argument");return null}tsip_transac.call(this);
this.o_request=null;this.init(tsip_transac_type_e.NICT,b,f,d,c,e,tsip_transac_nict_states_e.STARTED,tsip_transac_nict_states_e.TERMINATED);
this.set_callback(__tsip_transac_nict_event_callback);this.o_fsm.set_debug_enabled(tsip_transac_nict.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_transac_nict_onterm,this);this.o_timerE=null;this.o_timerF=null;
this.o_timerK=null;this.i_timerE=a.o_timers.getE();this.i_timerF=a.o_timers.getF();this.i_timerK=b?0:a.o_timers.getK();
this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.STARTED,tsip_transac_nict_actions_e.SEND,tsip_transac_nict_states_e.TRYING,__tsip_transac_nict_Started_2_Trying_X_send,"__tsip_transac_nict_Started_2_Trying_X_send"),tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_nict_states_e.STARTED,"tsip_transac_nict_Started_2_Started_X_any"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING,tsip_transac_nict_actions_e.TIMER_E,tsip_transac_nict_states_e.TRYING,__tsip_transac_nict_Trying_2_Trying_X_timerE,"__tsip_transac_nict_Trying_2_Trying_X_timerE"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING,tsip_transac_nict_actions_e.TIMER_F,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Trying_2_Terminated_X_timerF,"__tsip_transac_nict_Trying_2_Terminated_X_timerF"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING,tsip_transac_nict_actions_e.TRANSPORT_ERROR,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Trying_2_Terminated_X_transportError,"__tsip_transac_nict_Trying_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING,tsip_transac_nict_actions_e.I_1xx,tsip_transac_nict_states_e.PROCEEDING,__tsip_transac_nict_Trying_2_Proceedding_X_1xx,"__tsip_transac_nict_Trying_2_Proceedding_X_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING,tsip_transac_nict_actions_e.I_200_to_699,tsip_transac_nict_states_e.COMPLETED,__tsip_transac_nict_Trying_2_Completed_X_200_to_699,"__tsip_transac_nict_Trying_2_Completed_X_200_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING,tsip_transac_nict_actions_e.TIMER_E,tsip_transac_nict_states_e.PROCEEDING,__tsip_transac_nict_Proceeding_2_Proceeding_X_timerE,"__tsip_transac_nict_Proceeding_2_Proceeding_X_timerE"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING,tsip_transac_nict_actions_e.TIMER_F,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Proceeding_2_Terminated_X_timerF,"__tsip_transac_nict_Proceeding_2_Terminated_X_timerF"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING,tsip_transac_nict_actions_e.TRANSPORT_ERROR,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Proceeding_2_Terminated_X_transportError,"__tsip_transac_nict_Proceeding_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING,tsip_transac_nict_actions_e.I_1xx,tsip_transac_nict_states_e.PROCEEDING,__tsip_transac_nict_Proceeding_2_Proceeding_X_1xx,"__tsip_transac_nict_Proceeding_2_Proceeding_X_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING,tsip_transac_nict_actions_e.I_200_to_699,tsip_transac_nict_states_e.COMPLETED,__tsip_transac_nict_Proceeding_2_Completed_X_200_to_699,"__tsip_transac_nict_Proceeding_2_Completed_X_200_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.COMPLETED,tsip_transac_nict_actions_e.TIMER_K,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Completed_2_Terminated_X_timerK,"__tsip_transac_nict_Completed_2_Terminated_X_timerK"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nict_actions_e.TRANSPORT_ERROR,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Any_2_Terminated_X_transportError,"__tsip_transac_nict_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nict_actions_e.ERROR,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Any_2_Terminated_X_Error,"__tsip_transac_nict_Any_2_Terminated_X_Error"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nict_actions_e.CANCEL,tsip_transac_nict_states_e.TERMINATED,__tsip_transac_nict_Any_2_Terminated_X_cancel,"__tsip_transac_nict_Any_2_Terminated_X_cancel"))
}tsip_transac_nict.prototype.start=function(a){var b=-1;if(a&&!this.b_running){if(a.is_cancel()){this.s_branch=a.o_hdr_firstVia?a.o_hdr_firstVia.s_branch:"engith"
}else{this.s_branch=tsk_string_format("{0}{1}",tsip_transac.prototype.__magic_cookie,tsk_string_random(32))
}this.b_running=true;this.o_request=a;b=this.fsm_act(tsip_transac_nict_actions_e.SEND,a)}return b};function __tsip_transac_nict_Started_2_Trying_X_send(a){var b=a[0];
var c=a[1];b.send(b.s_branch,c);b.timer_schedule("nict","F");if(!b.b_reliable){b.timer_schedule("nict","E")
}return 0}function __tsip_transac_nict_Trying_2_Trying_X_timerE(a){var b=a[0];b.send(b.s_branch,b.o_request);
b.i_timerE=Math.min(b.i_timerE<<1,b.get_stack().o_timers.getT2());b.timer_schedule("nict","E");return 0
}function __tsip_transac_nict_Trying_2_Terminated_X_timerF(a){var b=a[0];b.get_dialog().callback(tsip_dialog_event_type_e.TIMEDOUT,b.o_request);
return 0}function __tsip_transac_nict_Trying_2_Terminated_X_transportError(a){var b=a[0];b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,b.o_request);
return 0}function __tsip_transac_nict_Trying_2_Proceedding_X_1xx(a){var b=a[0];var c=a[1];if(!b.b_reliable){b.timer_cancel("E")
}b.timer_cancel("F");b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c);return 0}function __tsip_transac_nict_Trying_2_Completed_X_200_to_699(a){var b=a[0];
var c=a[1];if(!b.b_reliable){b.timer_cancel("E")}b.timer_cancel("F");b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c);
b.timer_schedule("nict","K");return 0}function __tsip_transac_nict_Proceeding_2_Proceeding_X_timerE(a){var b=a[0];
b.send(b.s_branch,b.o_request);b.i_timerE=Math.min(b.i_timerE<<1,b.get_stack().o_timers.getT2());b.timer_schedule("nict","E");
return 0}function __tsip_transac_nict_Proceeding_2_Terminated_X_timerF(a){var b=a[0];b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null);
return 0}function __tsip_transac_nict_Proceeding_2_Terminated_X_transportError(a){var b=a[0];b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null);
return 0}function __tsip_transac_nict_Proceeding_2_Proceeding_X_1xx(a){var b=a[0];var c=a[1];if(!b.b_reliable){b.timer_cancel("E")
}b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c);return 0}function __tsip_transac_nict_Proceeding_2_Completed_X_200_to_699(a){var b=a[0];
var c=a[1];if(!b.b_reliable){b.timer_cancel("E")}b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c);
b.timer_schedule("nict","K");return 0}function __tsip_transac_nict_Completed_2_Terminated_X_timerK(a){return 0
}function __tsip_transac_nict_Any_2_Terminated_X_transportError(a){var b=a[0];return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null)
}function __tsip_transac_nict_Any_2_Terminated_X_Error(a){var b=a[0];return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR,null)
}function __tsip_transac_nict_Any_2_Terminated_X_cancel(a){return 0}function __tsip_transac_nict_onterm(a){a.timer_cancel("E");
a.timer_cancel("F");a.timer_cancel("K");return a.deinit()}function __tsip_transac_nict_event_callback(a,c,b){if(!a){tsk_utils_log_error("Invalid argument");
return -1}var d=0;switch(c){case tsip_transac_event_type_e.INCOMING_MSG:if(b&&b.is_response()){if(b.is_1xx()){d=a.fsm_act(tsip_transac_nict_actions_e.I_1xx,b)
}else{if(b.is_23456()){d=a.fsm_act(tsip_transac_nict_actions_e.I_200_to_699,b)}else{tsk_utils_log_warn("Not supported status code: "+b.get_response_code())
}}}break;case tsip_transac_event_type_e.CANCELED:case tsip_transac_event_type_e.TERMINATED:case tsip_transac_event_type_e.TIMEDOUT:break;
case tsip_transac_event_type_e.ERROR:d=a.fsm_act(tsip_transac_nict_actions_e.ERROR,b);break;case tsip_transac_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_transac_nict_actions_e.TRANSPORT_ERROR,b);
break}return d}function __tsip_transac_nict_timer_callback(b,a){if(b){if(a==b.o_timerE){b.fsm_act(tsip_transac_nict_actions_e.TIMER_E,null)
}else{if(a==b.o_timerF){b.fsm_act(tsip_transac_nict_actions_e.TIMER_F,null)}else{if(a==b.o_timerK){b.fsm_act(tsip_transac_nict_actions_e.TIMER_K,null)
}}}}}tsip_transac_nist.prototype=Object.create(tsip_transac.prototype);tsip_transac_nist.prototype.__b_debug_state_machine=false;
var tsip_transac_nist_actions_e={CANCEL:tsip_action_type_e.CANCEL,RECV_REQUEST:10001,SEND_1XX:10002,SEND_200_to_699:10003,TIMER_J:10004,TRANSPORT_ERROR:10007,ERROR:10008};
var tsip_transac_nist_states_e={STARTED:0,TRYING:1,PROCEEDING:2,COMPLETED:3,TERMINATED:4};function tsip_transac_nist(b,f,d,c,e){var a;
if(!e||!(a=e.get_stack())){tsk_utils_log_error("Invalid argument");return null}tsip_transac.call(this);
this.o_lastResponse=null;this.init(tsip_transac_type_e.nist,b,f,d,c,e,tsip_transac_nist_states_e.STARTED,tsip_transac_nist_states_e.TERMINATED);
this.set_callback(__tsip_transac_nist_event_callback);this.o_fsm.set_debug_enabled(tsip_transac_nist.prototype.__b_debug_state_machine);
this.o_fsm.set_onterm_callback(__tsip_transac_nist_onterm,this);this.o_timerJ=null;this.i_timerJ=b?0:a.o_timers.getJ();
this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.STARTED,tsip_transac_nist_actions_e.RECV_REQUEST,tsip_transac_nist_states_e.TRYING,tsip_transac_nist_Started_2_Trying_X_request,"tsip_transac_nist_Started_2_Trying_X_request"),tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_nist_states_e.STARTED,"tsip_transac_nist_Started_2_Started_X_any"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.TRYING,tsip_transac_nist_actions_e.SEND_1XX,tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_Trying_2_Proceeding_X_send_1xx,"tsip_transac_nist_Trying_2_Proceeding_X_send_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.TRYING,tsip_transac_nist_actions_e.SEND_200_to_699,tsip_transac_nist_states_e.COMPLETED,tsip_transac_nist_Trying_2_Completed_X_send_200_to_699,"tsip_transac_nist_Trying_2_Completed_X_send_200_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_actions_e.SEND_1XX,tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx,"tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_actions_e.SEND_200_to_699,tsip_transac_nist_states_e.COMPLETED,tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699,"tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_actions_e.RECV_REQUEST,tsip_transac_nist_states_e.PROCEEDING,tsip_transac_nist_Proceeding_2_Proceeding_X_request,"tsip_transac_nist_Proceeding_2_Proceeding_X_request"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.COMPLETED,tsip_transac_nist_actions_e.RECV_REQUEST,tsip_transac_nist_states_e.COMPLETED,tsip_transac_nist_Completed_2_Completed_X_request,"tsip_transac_nist_Completed_2_Completed_X_request"),tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.COMPLETED,tsip_transac_nist_actions_e.TIMER_J,tsip_transac_nist_states_e.TERMINATED,tsip_transac_nist_Completed_2_Terminated_X_tirmerJ,"tsip_transac_nist_Completed_2_Terminated_X_tirmerJ"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nist_actions_e.TRANSPORT_ERROR,tsip_transac_nist_states_e.TERMINATED,tsip_transac_nist_Any_2_Terminated_X_transportError,"tsip_transac_nist_Any_2_Terminated_X_transportError"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nist_actions_e.ERROR,tsip_transac_nist_states_e.TERMINATED,tsip_transac_nist_Any_2_Terminated_X_Error,"tsip_transac_nist_Any_2_Terminated_X_Error"),tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any,tsip_transac_nist_actions_e.CANCEL,tsip_transac_nist_states_e.TERMINATED,tsip_transac_nist_Any_2_Terminated_X_cancel,"tsip_transac_nist_Any_2_Terminated_X_cancel"))
}tsip_transac_nist.prototype.start=function(a){var b=-1;if(a&&!this.b_running){this.b_running=true;b=this.fsm_act(tsip_transac_nist_actions_e.RECV_REQUEST,a)
}return b};function tsip_transac_nist_Started_2_Trying_X_request(a){var b=a[0];var c=a[1];return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG,c)
}function tsip_transac_nist_Trying_2_Proceeding_X_send_1xx(a){var b=a[0];var c=a[1];var d;d=b.send(this.s_branch,c)>0?0:-1;
b.o_lastResponse=c;return d}function tsip_transac_nist_Trying_2_Completed_X_send_200_to_699(a){var b=a[0];
var c=a[1];var d;d=b.send(this.s_branch,c)>0?0:-1;b.timer_schedule("nist","J");b.o_lastResponse=c;return d
}function tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx(a){var b=a[0];var c=a[1];b.o_lastResponse=c;
return b.send(this.s_branch,c)>0?0:-1}function tsip_transac_nist_Proceeding_2_Proceeding_X_request(a){var b=a[0];
if(b.o_lastResponse){b.send(this.s_branch,b.o_lastResponse)}return 0}function tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699(a){var b=a[0];
var c=a[1];var d;d=b.send(this.s_branch,c)>0?0:-1;b.timer_schedule("nist","J");b.o_lastResponse=c;return d
}function tsip_transac_nist_Completed_2_Completed_X_request(a){var b=a[0];if(b.o_lastResponse){b.send(this.s_branch,b.o_lastResponse)
}return 0}function tsip_transac_nist_Completed_2_Terminated_X_tirmerJ(a){return 0}function tsip_transac_nist_Any_2_Terminated_X_transportError(a){var b=a[0];
return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR,null)}function tsip_transac_nist_Any_2_Terminated_X_Error(a){var b=a[0];
return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR,null)}function tsip_transac_nist_Any_2_Terminated_X_cancel(a){return 0
}function __tsip_transac_nist_onterm(a){a.timer_cancel("J");return a.deinit()}function __tsip_transac_nist_event_callback(a,c,b){var d=-1;
switch(c){case tsip_transac_event_type_e.INCOMING_MSG:if(b&&b.is_request()){d=a.fsm_act(tsip_transac_nist_actions_e.RECV_REQUEST,b)
}break;case tsip_transac_event_type_e.OUTGOING_MSG:if(b&&b.is_response()){if(b.is_1xx()){d=a.fsm_act(tsip_transac_nist_actions_e.SEND_1XX,b)
}else{if(b.is_23456()){d=a.fsm_act(tsip_transac_nist_actions_e.SEND_200_to_699,b)}}}break;case tsip_transac_event_type_e.CANCELED:case tsip_transac_event_type_e.TERMINATED:case tsip_transac_event_type_e.TIMEDOUT:break;
case tsip_transac_event_type_e.ERROR:d=a.fsm_act(tsip_transac_nist_actions_e.ERROR,b);break;case tsip_transac_event_type_e.TRANSPORT_ERROR:d=a.fsm_act(tsip_transac_nist_actions_e.TRANSPORT_ERROR,b);
break}return d}function __tsip_transac_nist_timer_callback(b,a){if(b){if(a==b.o_timerJ){b.fsm_act(tsip_transac_nist_actions_e.TIMER_J,null)
}}}var tsip_transport_type_e={WS:0,WSS:1,TCP:2,TLS:3,UDP:4,SCTP:5,DTLS:6};var tsip_transport_event_type_e={STARTED:0,STOPPED:1,RECONNECTING:2,RECONNECTED:3,ERROR:4,};
function tsip_transport(d,c,b,f,e,a){if(!c){tsk_utils_log_error("Invalid argument");return null}switch(d){case tsip_transport_type_e.WS:this.b_reliable=true;
this.s_scheme="sip";this.s_protocol="ws";this.s_via_protocol="WS";this.s_service="SIP+D2W";this.o_ws=null;
this.__start=function(){return __tsip_transport_ws_start(this)};this.__stop=function(){return __tsip_transport_ws_stop(this)
};this.__have_socket=function(g){return __tsip_transport_ws_have_socket(this,g)};this.__send=function(h,g){return __tsip_transport_ws_send(this,h,g)
};break;case tsip_transport_type_e.WSS:this.b_reliable=true;this.s_scheme="sips";this.s_protocol="wss";
this.s_via_protocol="WSS";this.s_service="SIPS+D2W";this.o_ws=null;this.__start=function(){return __tsip_transport_ws_start(this)
};this.__stop=function(){return __tsip_transport_ws_stop(this)};this.__have_socket=function(g){return __tsip_transport_ws_have_socket(this,g)
};this.__send=function(h,g){return __tsip_transport_ws_send(this,h,g)};break;case tsip_transport_type_e.UDP:if(!tsk_utils_have_webrtc4all()){tsk_utils_log_error("Transport not supported");
return null}this.b_reliable=false;this.s_scheme="sip";this.s_protocol="udp";this.s_via_protocol="UDP";
this.s_service="SIP+D2U";this.o_transport=null;this.__start=function(){return __tsip_transport_webrtc4all_start(this)
};this.__stop=function(){return __tsip_transport_webrtc4all_stop(this)};this.__have_socket=function(g){return __tsip_transport_webrtc4all_have_socket(this,g)
};this.__send=function(h,g){return __tsip_transport_webrtc4all_send(this,h,g)};break;case tsip_transport_type_e.TCP:case tsip_transport_type_e.TLS:case tsip_transport_type_e.SCTP:case tsip_transport_type_e.DTLS:default:tsk_utils_log_error(d+" not supported as a valid SIP transport");
return null}this.e_type=d;this.o_stack=c;this.s_host=b;this.i_port=f;this.s_description=e;this.fn_callback=a;
this.b_started=false;this.b_close_positive=false;this.b_reconnect=false;this.i_reconnect_times=6;this.o_reconnect_timeout=null;
return this}tsip_transport.prototype.get_layer=function(){return this.o_stack.o_layer_transport};tsip_transport.prototype.is_reliable=function(){return this.b_reliable
};tsip_transport.prototype.start=function(){if(this.b_started){tsk_utils_log_warn("Already started");
return 0}return this.__start()};tsip_transport.prototype.stop=function(){return this.__stop()};tsip_transport.prototype.get_local_ip=function(){if(this.o_transport&&this.o_transport.localIP){return this.o_transport.localIP
}return"127.0.0.1"};tsip_transport.prototype.get_local_port=function(){if(this.o_transport&&this.o_transport.localPort){return this.o_transport.localPort
}return 5060};tsip_transport.prototype.get_uri=function(d){var c=false;var a=tsk_string_format("{0}:{1}{2}{3}:{4};{5};transport={6}",this.s_scheme,c?"[":"",this.o_stack.network.aor.s_ip,c?"]":"",this.o_stack.network.aor.i_port,d?"lr":"",this.s_protocol);
var b=tsip_uri.prototype.Parse(a);if(b){b.e_host_type=c?tsip_host_type_e.ipv6:tsip_host_type_e.ipv4}return b
};tsip_transport.prototype.have_socket=function(a){return this.__have_socket(a)};tsip_transport.prototype.send=function(e,b,d,a){var c=null;
if(b.is_request()&&(!b.is_ack()||(b.is_ack()&&!b.o_hdr_firstVia))&&!b.is_cancel()){this.message_addvia(e,b);
this.message_update_aor(b);this.message_update(b)}else{if(b.is_response()){if(b.o_hdr_Contact){this.message_update_aor(b)
}if(b.o_hdr_firstVia.i_rport==0){b.o_hdr_firstVia.i_rport=b.o_hdr_firstVia.i_port}}}c=b.toString();tsk_utils_log_trace("send="+c);
return this.__send(c,c.length)};function tsip_transport_event(c,a,b,d){this.o_transport=c;this.e_type=a;
this.s_description=b;this.o_data=d;return this}tsip_transport.prototype.signal=function(b,c,d){if(this.fn_callback){var a=this.fn_callback;
var e=new tsip_transport_event(this,b,c,d);setTimeout(function(){a(e)},1)}return 0};tsip_transport.prototype.message_addvia=function(b,a){if(!a.o_hdr_firstVia){a.o_hdr_firstVia=new tsip_header_Via(tsip_header_Via.prototype.__s_proto_name_default,tsip_header_Via.prototype.__s_proto_version_default,this.s_via_protocol,this.get_local_ip(),this.get_local_port());
a.o_hdr_firstVia.add_param("rport",null)}if(b){a.o_hdr_firstVia.s_branch=b}else{a.o_hdr_firstVia.s_branch=tsk_string_format("{0}{1}",tsip_transac.prototype.__magic_cookie,tsk_string_random(20))
}return 0};tsip_transport.prototype.message_update_aor=function(a){if(!a.b_update){return 0}if(!this.o_stack.network.aor.s_ip&&!this.o_stack.network.aor.i_port){this.o_stack.network.aor.s_ip=this.get_local_ip();
this.o_stack.network.aor.i_port=this.get_local_port()}if(a.o_hdr_Contact&&a.o_hdr_Contact.o_uri){a.o_hdr_Contact.o_uri.s_scheme=this.s_scheme;
a.o_hdr_Contact.o_uri.s_host=this.o_stack.network.aor.s_ip;a.o_hdr_Contact.o_uri.i_port=this.o_stack.network.aor.i_port;
tsk_params_add(a.o_hdr_Contact.o_uri.ao_params,"transport",this.s_protocol)}return 0};tsip_transport.prototype.message_update=function(a){if(!a.b_update){return 0
}if(a.s_sigcomp_id){if(a.o_hdr_firstVia){a.o_hdr_firstVia.add_param("comp","sigcomp");a.o_hdr_firstVia.add_param("sigcomp-id",tsk_string_format('"{0}"',a.s_sigcomp_id))
}if(a.o_hdr_Contact&&a.o_hdr_Contact.o_uri){tsk_params_add(a.o_hdr_Contact.o_uri.ao_params,"sigcomp-id",a.sigcomp_id)
}}a.b_update=false;return 0};function __tsip_transport_ws_start(b){if(!b){tsk_utils_log_error("Invalid argument");
return -1}var a=tsk_string_is_null_or_empty(b.o_stack.network.s_websocket_server_url)?tsk_string_format("{0}://{1}:{2}",b.s_protocol,b.s_host,b.i_port):b.o_stack.network.s_websocket_server_url;
tsk_utils_log_debug("webscoket(over sip) connecting to server: '"+a+"'");b.o_ws=new WebSocket(a,"sip");
b.o_ws.binaryType="arraybuffer";b.o_ws.o_transport=b;b.o_ws.onopen=__tsip_transport_ws_onopen;b.o_ws.onclose=__tsip_transport_ws_onclose;
b.o_ws.onmessage=__tsip_transport_ws_onmessage;b.o_ws.onerror=__tsip_transport_ws_onerror;return 0}function __tsip_transport_ws_stop(a){if(!a){tsk_utils_log_error("Invalid argument");
return -1}a.b_close_positive=true;if(a.o_ws){a.o_ws.close()}return 0}function __tsip_transport_ws_have_socket(a,b){return a.o_ws==b
}function __tsip_transport_ws_send(a,d,c){if(!a.o_ws){tsk_utils_log_error("Invalid state");return 0}try{a.o_ws.send(d)
}catch(b){c=0}return c}function __tsip_transport_ws_onopen(a){tsk_utils_log_debug("__tsip_transport_ws_onopen");
this.o_transport.b_started=true;if(this.o_transport.b_reconnect){this.o_transport.signal(tsip_transport_event_type_e.RECONNECTED,a.reason,null);
this.o_transport.b_reconnect=false}else{this.o_transport.signal(tsip_transport_event_type_e.STARTED,a.reason,null)
}}function __tsip_transport_ws_onclose(a){tsk_utils_log_debug("__tsip_transport_ws_onclose",a);this.o_transport.b_started=false;
this.o_transport.o_ws=null;if(this.o_transport.o_reconnect_timeout){clearTimeout(this.o_transport.o_reconnect_timeout)
}if(this.o_transport.b_close_positive){this.o_transport.signal(tsip_transport_event_type_e.STOPPED,a.reason,null)
}else{this.o_transport.b_reconnect=true;this.o_transport.signal(tsip_transport_event_type_e.RECONNECTING,a.reason,null);
var b=this;this.o_transport.o_reconnect_timeout=setTimeout(function(){b.o_transport.o_reconnect_timeout=null;
if(b.o_transport.i_reconnect_times-->0){b.o_transport.__start(b)}else{b.o_transport.signal(tsip_transport_event_type_e.STOPPED,a.reason,null)
}},5000)}}function __tsip_transport_ws_onmessage(a){var b=tsk_ragel_state_create();if(typeof(a.data)=="string"){tsk_ragel_state_init_str(b,a.data)
}else{tsk_ragel_state_init_ai(b,a.data)}var c=tsip_message.prototype.Parse(b,true);if(c){tsk_utils_log_trace("recv="+c);
c.o_socket=this;return this.o_transport.get_layer().handle_incoming_message(c)}else{tsk_utils_log_error("Failed to parse message: "+a.data);
return -1}}function __tsip_transport_ws_onerror(a){tsk_utils_log_debug("__tsip_transport_ws_onerror",a);
this.o_transport.signal(tsip_transport_event_type_e.ERROR,a.reason,null)}function __tsip_transport_webrtc4all_start(o_self){if(!o_self){tsk_utils_log_error("Invalid argument");
return -1}var b_isInternetExplorer=(WebRtc4all_GetType()==WebRtcType_e.IE);var s_url=tsk_string_is_null_or_empty(o_self.o_stack.network.s_proxy_outbound_host)?tsk_string_format("{0}://{1}:{2}",o_self.s_protocol,o_self.s_host,o_self.i_port):tsk_string_format("{0}://{1}:{2}",o_self.s_protocol,o_self.o_stack.network.s_proxy_outbound_host,o_self.o_stack.network.i_proxy_outbound_port);
tsk_utils_log_info("connecting to '"+s_url+"'");o_self.o_transport=WebRtc4all_GetPlugin().createNetTransport();
if(b_isInternetExplorer){eval("function o_self.o_transport::OnEvent(i_type, s_data) { return __tsip_transport_webrtc4all_onevent (o_self, i_type, s_data); }")
}else{o_self.o_transport.opaque=o_self;o_self.o_transport.setCallbackFuncName("__tsip_transport_webrtc4all_onevent")
}try{if(o_self.o_stack.network.s_proxy_outbound_host&&o_self.o_stack.network.i_proxy_outbound_port){o_self.s_host=o_self.o_stack.network.s_proxy_outbound_host;
o_self.i_port=o_self.o_stack.network.i_proxy_outbound_port}else{o_self.o_transport.SetDomain(o_self.o_stack.network.o_uri_realm.s_host)
}o_self.o_transport.Start(b_isInternetExplorer?WebRtc4all_GetLooper():0);if(o_self.o_transport.defaultDestAddr&&o_self.o_transport.defaultDestPort){o_self.s_host=o_self.o_transport.defaultDestAddr;
o_self.i_port=o_self.o_transport.defaultDestPort;tsk_utils_log_info("transport default destination="+o_self.s_host+":"+o_self.i_port)
}o_self.b_started=true;o_self.signal(tsip_transport_event_type_e.STARTED,"Network transport started",null)
}catch(e){tsk_utils_log_error(e);return -1}return 0}function __tsip_transport_webrtc4all_stop(a){if(!a){tsk_utils_log_error("Invalid argument");
return -1}if(a.o_transport){a.o_transport.Stop()}return 0}function __tsip_transport_webrtc4all_have_socket(a,b){return a.o_transport==b
}function __tsip_transport_webrtc4all_send(a,c,b){if(!a.o_transport){tsk_utils_log_error("Invalid state");
return 0}a.o_transport.SendTo(c,a.s_host,a.i_port);return b}function __tsip_transport_webrtc4all_onevent(a,e,c){if(c){var b=tsk_ragel_state_create();
tsk_ragel_state_init_str(b,c);var d=tsip_message.prototype.Parse(b,true);if(d){tsk_utils_log_info("recv="+d.toString());
d.o_socket=a.o_transport;return a.get_layer().handle_incoming_message(d)}else{tsk_utils_log_error("Failed to parse message: "+c);
return -1}}}function tsip_transport_layer(a){if(!a){tsk_utils_log_error("Invalid argument");return null
}this.o_stack=a;this.b_running=false;this.ao_transports=new Array()}function tsip_transport_layer_find_result(){this.o_transport=null;
this.s_dest_ip=null;this.i_dest_port=0}tsip_transport_layer.prototype.get_layer_transac=function(){if(this.o_stack){return this.o_stack.o_layer_transac
}return null};tsip_transport_layer.prototype.get_layer_dialog=function(){if(this.o_stack){return this.o_stack.o_layer_dialog
}return null};tsip_transport_layer.prototype.stop=function(){while(this.b_locked){}this.b_locked=true;
for(var a=0;a<this.ao_transports.length;++a){this.ao_transports[a].stop()}this.b_locked=false;return 0
};tsip_transport_layer.prototype.send=function(c,a){var b=this.transport_find(a);if(!b||!b.o_transport){tsk_utils_log_error("Failed to find transport");
return 0}return b.o_transport.send(c,a,b.s_dest_ip,b.i_dest_port)};tsip_transport_layer.prototype.transport_new=function(c,b,f,e,a){var d=null;
while(this.b_locked){}this.b_locked=true;d=new tsip_transport(c,this.o_stack,b,f,e,a);if(d){this.ao_transports.push(d)
}this.b_locked=false;return d};tsip_transport_layer.prototype.transport_remove=function(b){if(b){while(this.b_locked){}this.b_locked=true;
for(var a=0;a<this.ao_transports.length;++a){if(this.ao_transports[a]==b){this.ao_transports.splice(a,1);
break}}this.b_locked=false}};tsip_transport_layer.prototype.transport_find=function(b){if(!b){tsk_utils_log_error("Invalid argument");
return null}var c=new tsip_transport_layer_find_result();c.s_dest_ip=this.o_stack.network.s_proxy_cscf_host;
c.i_dest_port=this.o_stack.network.i_proxy_cscf_port;if(b.is_request()){for(var a=0;a<this.ao_transports.length;
++a){if(this.ao_transports[a].e_type==this.o_stack.network.e_proxy_cscf_type){c.o_transport=this.ao_transports[a];
break}}}else{if(b.o_hdr_firstVia){if(b.o_hdr_firstVia.is_transport_reliable()){}else{if(b.o_hdr_firstVia.s_maddr){}else{if(b.o_hdr_firstVia.s_received){if(b.o_hdr_firstVia.i_rport>0){c.s_dest_ip=b.o_hdr_firstVia.s_received;
c.i_dest_port=b.o_hdr_firstVia.i_rport}else{c.s_dest_ip=b.o_hdr_firstVia.s_received;c.i_dest_port=b.o_hdr_firstVia.i_port?b.o_hdr_firstVia.i_port:5060
}}else{if(!b.o_hdr_firstVia.s_received){c.s_dest_ip=b.o_hdr_firstVia.s_host;if(b.o_hdr_firstVia.i_port>0){c.i_dest_port=b.o_hdr_firstVia.i_port
}}}}}while(this.b_locked){}this.b_locked=true;for(a=0;a<this.ao_transports.length;++a){if(this.ao_transports[a].have_socket(b.o_socket)){c.o_transport=this.ao_transports[a];
break}}this.b_locked=false}}return c};tsip_transport_layer.prototype.handle_incoming_message=function(b){if(b){var a=this.get_layer_transac();
if(!a){tsk_utils_log_error("Invalid transaction layer");return -1}var c;if((c=a.handle_incoming_message(b))!=0){o_layer_dialog=this.get_layer_dialog();
if(!o_layer_dialog){tsk_utils_log_error("Invalid dialog layer");return -1}c=o_layer_dialog.handle_incoming_message(b)
}return c}return 0};SIPml={};SIPml.b_initialized=false;SIPml.b_initializing=false;SIPml.s_navigator_friendly_name="unknown";
SIPml.b_navigator_outdated=false;SIPml.s_navigator_version="unknown";SIPml.s_system_friendly_name="unknown";
SIPml.b_webrtc4all_plugin_outdated=false;SIPml.b_webrtc4all_supported=false;SIPml.s_webrtc4all_version="unknown";
SIPml.b_have_media_stream=false;SIPml.b_webrtc_supported=false;SIPml.setDebugLevel=function(a){tsk_utils_log_set_level(a==="fatal"?1:(a==="error"?2:(a==="warn"?3:(a==="info"?4:(a==="debug"?5:(a==="trace"?6:2))))))
};SIPml.setLogFunction=function(a){tsk_utils_log_set_print(a)};SIPml.startNativeDebug=function(){WebRtc4all_GetPlugin().startDebug()
};SIPml.stopNativeDebug=function(){WebRtc4all_GetPlugin().stopDebug()};SIPml.getWebRtcType=function(){switch(WebRtc4all_GetType()){case WebRtcType_e.W4A:case WebRtcType_e.IE:case WebRtcType_e.NPAPI:return"w4a";
case WebRtcType_e.ERICSSON:return"erisson";case WebRtcType_e.NATIVE:return"native";default:return"unknown"
}};SIPml.setWebRtcType=function(a){if(SIPml.isInitialized()){throw new Error("ERR_ALREADY_INITIALIZED: Engine already initialized.")
}return WebRtc4all_SetType(a)};SIPml.getRunningApps=function(){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: requires webrtc4all plugin")
}return WebRtc4all_GetPlugin().runningApps()};SIPml.setFps=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: Setting maximum video size requires webrtc4all plugin")
}WebRtc4all_GetPlugin().fps=a;return 0};SIPml.setMaxVideoSize=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: Setting FPS requires webrtc4all plugin")
}WebRtc4all_GetPlugin().maxVideoSize=a;return 0};SIPml.setMaxBandwidthUp=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin")
}WebRtc4all_GetPlugin().maxBandwidthUp=a;return 0};SIPml.setMaxBandwidthDown=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin")
}WebRtc4all_GetPlugin().maxBandwidthDown=a;return 0};SIPml.setZeroArtifacts=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin")
}WebRtc4all_GetPlugin().zeroArtifacts=a;return 0};SIPml.getWebRtc4AllVersion=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.s_webrtc4all_version};SIPml.getNavigatorVersion=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.s_navigator_version};SIPml.getNavigatorFriendlyName=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.s_navigator_friendly_name};SIPml.getSystemFriendlyName=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.s_system_friendly_name};SIPml.isNavigatorOutdated=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.b_navigator_outdated};SIPml.isWebRtc4AllPluginOutdated=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.b_webrtc4all_plugin_outdated};SIPml.isWebRtc4AllSupported=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.b_webrtc4all_supported};SIPml.isScreenShareSupported=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return(SIPml.getWebRtcType()==="w4a")||(navigator.userAgent.match("Chrome")&&parseInt(navigator.userAgent.match(/Chrome\/(.*) /)[1])>=26)
};SIPml.isWebRtcSupported=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.b_webrtc_supported};SIPml.isWebSocketSupported=function(){return tsk_utils_have_websocket()
};SIPml.haveMediaStream=function(){if(!SIPml.isInitialized()){throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first")
}return SIPml.b_have_media_stream};SIPml.isReady=function(){return(SIPml.isInitialized()&&SIPml.isWebRtcSupported()&&SIPml.haveMediaStream())
};SIPml.isInitialized=function(){return SIPml.b_initialized};SIPml.init=function(a,b){if(!SIPml.b_initialized&&!SIPml.b_initializing){SIPml.b_initializing=true;
tsk_utils_init_webrtc();tsk_utils_log_debug("User-Agent="+(navigator.userAgent||"unknown"));SIPml.b_have_media_stream=tsk_utils_have_stream();
SIPml.b_webrtc_supported=tsk_utils_have_webrtc();SIPml.b_webrtc4all_supported=tsk_utils_have_webrtc4all();
SIPml.s_webrtc4all_version=tsk_utils_webrtc4all_get_version();SIPml.s_navigator_friendly_name=tsk_utils_get_navigator_friendly_name();
SIPml.s_system_friendly_name=tsk_utils_get_system_friendly_name();tsk_utils_log_debug("WebSocket supported = "+(SIPml.isWebSocketSupported()?"yes":"no"));
if(tsk_utils_have_webrtc4all()){tsk_utils_log_debug("WebRTC type = "+WebRtc4all_GetType()+" version = "+tsk_utils_webrtc4all_get_version());
if(SIPml.s_webrtc4all_version!="1.35.981"){SIPml.b_webrtc4all_plugin_outdated=true}}tsk_utils_log_debug("Navigator friendly name = "+SIPml.s_navigator_friendly_name);
if(SIPml.s_navigator_friendly_name=="ie"){var e=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");if(e.exec(navigator.userAgent)!=null){SIPml.s_navigator_version=RegExp.$1
}}tsk_utils_log_debug("OS friendly name = "+SIPml.s_system_friendly_name);tsk_utils_log_debug("Have WebRTC = "+(tsk_utils_have_webrtc()?"yes":"false"));
tsk_utils_log_debug("Have GUM = "+(tsk_utils_have_stream()?"yes":"false"));if(!tsk_utils_have_webrtc()){if(SIPml.s_navigator_friendly_name=="chrome"){SIPml.b_navigator_outdated=true;
return}if(SIPml.s_system_friendly_name=="win"||SIPml.s_system_friendly_name=="windows"){if(SIPml.s_navigator_friendly_name=="ie"){var f=-1;
var c=navigator.userAgent;var e=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");if(e.exec(c)!=null){f=parseFloat(RegExp.$1)
}if(f<9){SIPml.b_navigator_outdated=true;return}if(!tsk_utils_have_webrtc4all()){return}}}}if(SIPml.b_webrtc_supported&&SIPml.b_have_media_stream){SIPml.b_initialized=true;
SIPml.b_initializing=false;tsk_utils_log_info("Engine initialized");if(a){a({})}}else{if(b){var d=!SIPml.b_webrtc_supported?"WebRTC not supported":(!SIPml.b_have_media_stream?"getUserMedia not supported":"Internal error");
b({description:d})}}}};SIPml.EventTarget=function(){this.ao_listeners=[];this.cache_events=[]};SIPml.EventTarget.prototype.addEventListener=function(b,a){if(!a){throw new Error("ERR_INVALID_PARAMETER_VALUE: 'listener' must not be null")
}if(!b){throw new Error("ERR_INVALID_PARAMETER_VALUE: 'type' must not be null")}if(!(b instanceof String||typeof b=="string"||b instanceof Array)){throw new Error("ERR_INVALID_PARAMETER_TYPE: 'type' must be a string or array")
}if(b instanceof Array){var c=this;b.forEach(function(d){if(!tsk_string_is_null_or_empty(d)&&tsk_string_is_string(d)){c.ao_listeners[d]=a
}})}else{this.ao_listeners[b]=a}};SIPml.EventTarget.prototype.removeEventListener=function(a){if(tsk_string_is_string(a)&&!tsk_string_is_null_or_empty(a)){this.ao_listeners[a]=undefined
}};SIPml.EventTarget.prototype.dispatchEvent=function(c){var a=(this.ao_listeners[c.s_type]||this.ao_listeners["*"]);
if(a){var b=this.cache_events.pop();while(b){a.call(this,b.o_value);b=this.cache_events.pop()}a.call(this,c.o_value)
}else{if(this.ao_listeners.length===0){this.cache_events.push(c)}}};SIPml.Event=function(a,c,d,b){this.type=a;
this.description=c?c.s_phrase:a;this.o_event=c;this.o_param=d;this.s_description=b};SIPml.Event.prototype.getSipResponseCode=function(){var a=this.o_event?this.o_event.get_message():null;
return(a&&a.is_response())?a.get_response_code():-1};SIPml.Event.prototype.getContent=function(){var a=this.o_event?this.o_event.get_message():null;
return a?a.get_content():null};SIPml.Event.prototype.getContentString=function(){var a=this.o_event?this.o_event.get_message():null;
return a?a.get_content_as_string():null};SIPml.Event.prototype.getContentType=function(){var a=this.o_event?this.o_event.get_message():null;
return a?a.get_content_type():null};SIPml.Event.prototype.getHeader=function(b){var a=this.o_event?this.o_event.get_message():null;
return a?a.get_header(b):null};SIPml.Event.prototype.getSession=function(){return this.o_event?this.o_event.get_session():null
};SIPml.Event.prototype.getParam=function(){return this.o_param};SIPml.Event.prototype.getDescription=function(){return this.s_description
};SIPml.Event.prototype.getUserData=function(){return this.o_event?this.o_event.get_usr_data():null};
SIPml.Event.prototype.getPhrase=function(){return this.o_event?this.o_event.get_phrase():null};SIPml.Stack=function(b){function a(f){throw new Error("ERR_INVALID_PARAMETER_VALUE: "+f.description)
}SIPml.init(null,a);SIPml.EventTarget.call(this);if(!b){throw new Error("ERR_INVALID_PARAMETER_VALUE: null configuration value")
}if(tsk_string_is_null_or_empty(b.realm)){throw new Error("ERR_INVALID_PARAMETER_VALUE: '"+b.realm+"' is not valid as realm value")
}if(tsk_string_is_null_or_empty(b.impi)){throw new Error("ERR_INVALID_PARAMETER_VALUE: '"+b.impi+"' is not valid as impi value")
}if(tsk_string_is_null_or_empty(b.impu)){throw new Error("ERR_INVALID_PARAMETER_VALUE: '"+b.impu+"' is not valid as impu value")
}var c=tsip_uri.prototype.Parse(b.impu);if(!c||!c.s_user_name||!c.s_host){throw new Error("ERR_INVALID_PARAMETER_VALUE: '"+b.impu+"' is not valid as SIP Uri")
}var e;var d;if(!SIPml.isWebSocketSupported()){e=5060;d=b.realm}else{e=((b.enable_rtcweb_breaker||(window.location&&window.location.protocol=="https:"))?10062:10060)+(((new Date().getTime())%5)*1000);
d="ns313841.ovh.net"}this.o_stack=new tsip_stack(b.realm,b.impi,b.impu,d,e);this.o_stack.oStack=this;
this.setConfiguration(b);this.o_stack.on_event_stack=function(m){var f;switch(m.i_code){case tsip_event_code_e.STACK_STARTING:f="starting";
break;case tsip_event_code_e.STACK_STARTED:f="started";break;case tsip_event_code_e.STACK_STOPPING:f="stopping";
break;case tsip_event_code_e.STACK_STOPPED:function j(q){if(q){try{var o=q.getTracks();for(var n in o){o[n].stop()
}}catch(p){tsk_utils_log_error(p)}try{q.stop()}catch(p){}}}try{for(var g in m.o_stack.o_layer_dialog.ao_dialogs){var k=m.o_stack.o_layer_dialog.ao_dialogs[g].o_session;
if(k){if(k.o_stream_remotes){for(var l in k.o_stream_remotes){j(k.o_stream_remotes[l])}}if(k.o_stream_locals){for(var l in k.o_stream_locals){j(k.o_stream_locals[l])
}}}else{tsk_utils_log_warn("no session in dialogs: "+g)}}}catch(h){tsk_utils_log_warn(h)}f="stopped";
break;case tsip_event_code_e.STACK_FAILED_TO_START:f="failed_to_start";break;case tsip_event_code_e.STACK_FAILED_TO_STOP:f="failed_to_stop";
break;case tsip_event_code_e.STACK_RESTARTING:f="restarting";break;case tsip_event_code_e.STACK_RESTARTED:f="restarted";
break;default:break}if(f){m.o_stack.oStack.dispatchEvent({s_type:f,o_value:new SIPml.Stack.Event(f,m)})
}};this.o_stack.on_event_dialog=function(j){var f=null;var g=j.o_session.i_id;var h=j.o_session.o_stack.oStack.ao_sessions[g];
if(!h){tsk_utils_log_warn("Cannot find session with id = "+g);return}switch(j.i_code){case tsip_event_code_e.DIALOG_TRANSPORT_ERROR:f="transport_error";
break;case tsip_event_code_e.DIALOG_GLOBAL_ERROR:f="global_error";break;case tsip_event_code_e.DIALOG_MESSAGE_ERROR:f="message_error";
break;case tsip_event_code_e.DIALOG_WEBRTC_ERROR:f="webrtc_error";break;case tsip_event_code_e.DIALOG_REQUEST_INCOMING:f="i_request";
break;case tsip_event_code_e.DIALOG_REQUEST_OUTGOING:f="o_request";break;case tsip_event_code_e.DIALOG_REQUEST_CANCELLED:f="cancelled_request";
break;case tsip_event_code_e.DIALOG_REQUEST_SENT:f="sent_request";break;case tsip_event_code_e.DIALOG_MEDIA_ADDED:f="media_added";
break;case tsip_event_code_e.DIALOG_MEDIA_REMOVED:f="media_removed";break;case tsip_event_code_e.DIALOG_CONNECTING:f="connecting";
break;case tsip_event_code_e.DIALOG_CONNECTED:f="connected";break;case tsip_event_code_e.DIALOG_BFCP_INFO:f="bfcp_info";
break;case tsip_event_code_e.DIALOG_TERMINATING:f="terminating";break;case tsip_event_code_e.DIALOG_TERMINATED:f="terminated";
j.o_session.o_stack.oStack.ao_sessions[g]=undefined;break;default:break}if(f){h.dispatchEvent({s_type:f,o_value:new SIPml.Session.Event(h,f,j)})
}};this.o_stack.on_event_message=function(j){var f=null;var g=j.o_session.i_id;var h=j.o_session.o_stack.oStack.ao_sessions[g];
switch(j.e_message_type){case tsip_event_message_type_e.I_MESSAGE:f="i_new_message";break;case tsip_event_message_type_e.AO_MESSAGE:f="i_ao_request";
break}if(f){if(f=="i_new_message"){var k=new SIPml.Stack.Event(f,j);k.newSession=new SIPml.Session.Message(j.o_session);
j.o_session.o_stack.oStack.ao_sessions[g]=k.newSession;j.o_session.o_stack.oStack.dispatchEvent({s_type:f,o_value:k})
}else{if(h){h.dispatchEvent({s_type:f,o_value:new SIPml.Session.Event(h,f,j)})}else{tsk_utils_log_warn("Cannot find session with id = "+g+" and event = "+j.e_invite_type)
}}}};this.o_stack.on_event_publish=function(j){var f=null;var g=j.o_session.i_id;var h=j.o_session.o_stack.oStack.ao_sessions[g];
if(!h){tsk_utils_log_warn("Cannot find session with id = "+g+" and event = "+j.e_invite_type);return}switch(j.e_publish_type){case tsip_event_publish_type_e.I_PUBLISH:break;
case tsip_event_publish_type_e.I_UNPUBLISH:break;case tsip_event_publish_type_e.AO_PUBLISH:case tsip_event_publish_type_e.AO_UNPUBLISH:f="i_ao_request";
break}if(f){h.dispatchEvent({s_type:f,o_value:new SIPml.Session.Event(h,f,j)})}};this.o_stack.on_event_subscribe=function(j){var f=null;
var g=j.o_session.i_id;var h=j.o_session.o_stack.oStack.ao_sessions[g];if(!h){tsk_utils_log_warn("Cannot find session with id = "+g+" and event = "+j.e_invite_type);
return}switch(j.e_subscribe_type){case tsip_event_subscribe_type_e.I_SUBSCRIBE:break;case tsip_event_subscribe_type_e.I_UNSUBSRIBE:break;
case tsip_event_subscribe_type_e.AO_SUBSCRIBE:case tsip_event_subscribe_type_e.AO_UNSUBSCRIBE:case tsip_event_subscribe_type_e.AO_NOTIFY:f="i_ao_request";
break;case tsip_event_subscribe_type_e.I_NOTIFY:f="i_notify";break}if(f){h.dispatchEvent({s_type:f,o_value:new SIPml.Session.Event(h,f,j)})
}};this.o_stack.on_event_invite=function(k){var f=null;var h=k.o_session.i_id;var j=k.o_session.o_stack.oStack.ao_sessions[h];
if(!j){switch(k.e_invite_type){case tsip_event_invite_type_e.I_NEW_CALL:case tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED:case tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED:case tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED:case tsip_event_invite_type_e.M_ICE_CANDIDATE:case tsip_event_invite_type_e.M_BFCP_INFO:break;
case tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED:case tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED:case tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED:case tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED:case tsip_event_invite_type_e.M_TRACK_LOCAL_REQUESTED:case tsip_event_invite_type_e.M_TRACK_LOCAL_ACCEPTED:case tsip_event_invite_type_e.M_TRACK_LOCAL_REFUSED:case tsip_event_invite_type_e.M_TRACK_LOCAL_ENDED:case tsip_event_invite_type_e.M_SWITCH_SOURCE_REQUESTED:case tsip_event_invite_type_e.M_SWITCH_SOURCE_ACCEPTED:case tsip_event_invite_type_e.M_SWITCH_SOURCE_REFUSED:case tsip_event_invite_type_e.I_AO_REQUEST:tsk_utils_log_error("Not notifying to session with id = "+h+" for event = "+k.e_invite_type);
return;default:tsk_utils_log_warn("Cannot find session with id = "+h+" and event = "+k.e_invite_type);
return}}var m=function(n,q,p){if(n){switch(n){case"i_new_call":case"m_ice_status":case"m_permission_requested":case"m_permission_accepted":case"m_permission_refused":var o=new SIPml.Stack.Event(n,k,q,p);
if(n=="i_new_call"){o.newSession=new SIPml.Session.Call(k.o_session);k.o_session.o_stack.oStack.ao_sessions[h]=o.newSession
}k.o_session.o_stack.oStack.dispatchEvent({s_type:n,o_value:o});break;default:if(j){j.dispatchEvent({s_type:n,o_value:new SIPml.Session.Event(j,n,k,q,p)})
}else{console.error("dispatch event error. event_type: "+n+" session_id: "+h+" param: "+q+" description: "+p)
}break}}};var l=function(o,t){var s=o?t.o_session.get_stream_locals():t.o_session.get_stream_remotes();
for(var q in s){var p=s[q];var r=p?p.getAudioTracks():[];if(r.length>0){m(o?"m_stream_audio_local_added":"m_stream_audio_remote_added",p)
}var n=p?p.getVideoTracks():[];if(n.length>0){m(o?"m_stream_video_local_added":"m_stream_video_remote_added",p)
}}};var g=function(o,u){var t=o?u.o_session.get_stream_locals():u.o_session.get_stream_remotes();for(var r in t){var q=t[r];
var s=q?q.getAudioTracks():[];if(s.length>0){for(var p in s){s[p].stop()}m(o?"m_stream_audio_local_removed":"m_stream_audio_remote_removed",q)
}var n=q?q.getVideoTracks():[];if(n.length>0){for(var p in n){n[p].stop()}m(o?"m_stream_video_local_removed":"m_stream_video_remote_removed",q)
}}};switch(k.e_invite_type){case tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED:return l(true,k);case tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED:return g(true,k);
case tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED:return l(false,k);case tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED:return g(false,k);
case tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED:f="m_permission_requested";break;case tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED:f="m_permission_accepted";
break;case tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED:f="m_permission_refused";break;case tsip_event_invite_type_e.M_TRACK_LOCAL_REQUESTED:f="m_track_local_requested";
break;case tsip_event_invite_type_e.M_TRACK_LOCAL_ACCEPTED:f="m_track_local_accepted";break;case tsip_event_invite_type_e.M_TRACK_LOCAL_REFUSED:f="m_track_local_refused";
break;case tsip_event_invite_type_e.M_TRACK_LOCAL_ENDED:f="m_track_local_ended";break;case tsip_event_invite_type_e.M_SWITCH_SOURCE_REQUESTED:f="m_switch_source_requested";
break;case tsip_event_invite_type_e.M_SWITCH_SOURCE_ACCEPTED:f="m_switch_source_accepted";break;case tsip_event_invite_type_e.M_SWITCH_SOURCE_REFUSED:f="m_switch_source_refused";
break;case tsip_event_invite_type_e.M_ICE_CANDIDATE:f="m_ice_status";break;case tsip_event_invite_type_e.I_NEW_CALL:f="i_new_call";
break;case tsip_event_invite_type_e.I_ECT_NEW_CALL:f="i_ect_new_call";break;case tsip_event_invite_type_e.I_AO_REQUEST:f="i_ao_request";
break;case tsip_event_invite_type_e.M_EARLY_MEDIA:f="m_early_media";break;case tsip_event_invite_type_e.M_LOCAL_HOLD_OK:f="m_local_hold_ok";
break;case tsip_event_invite_type_e.M_LOCAL_HOLD_NOK:f="m_local_hold_nok";break;case tsip_event_invite_type_e.M_LOCAL_RESUME_OK:f="m_local_resume_ok";
break;case tsip_event_invite_type_e.M_LOCAL_RESUME_NOK:f="m_local_resume_nok";break;case tsip_event_invite_type_e.M_REMOTE_HOLD:f="m_remote_hold";
break;case tsip_event_invite_type_e.M_REMOTE_RESUME:f="m_remote_resume";break;case tsip_event_invite_type_e.M_BFCP_INFO:f="m_bfcp_info";
break;case tsip_event_invite_type_e.O_ECT_TRYING:f="o_ect_trying";break;case tsip_event_invite_type_e.O_ECT_ACCEPTED:f="o_ect_accepted";
break;case tsip_event_invite_type_e.O_ECT_COMPLETED:f="o_ect_completed";break;case tsip_event_invite_type_e.I_ECT_COMPLETED:f="i_ect_completed";
break;case tsip_event_invite_type_e.O_ECT_FAILED:f="o_ect_failed";break;case tsip_event_invite_type_e.I_ECT_FAILED:f="i_ect_failed";
break;case tsip_event_invite_type_e.O_ECT_NOTIFY:f="o_ect_notify";break;case tsip_event_invite_type_e.I_ECT_NOTIFY:f="i_ect_notify";
break;case tsip_event_invite_type_e.I_ECT_REQUESTED:f="i_ect_requested";break;case tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING:if(k.o_message){if(k.o_message.is_info()){f="i_info"
}}break;default:break}m(f,k.o_session.get_param(),k.o_session.get_description())}};SIPml.Stack.prototype=Object.create(SIPml.EventTarget.prototype);
SIPml.Stack.prototype.ao_sessions=[];SIPml.Stack.prototype.setConfiguration=function(d){if(d.realm&&!tsk_string_is_string(d.realm)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.realm+"' not a valid type for realm. String is expected")
}if(d.impi&&!tsk_string_is_string(d.impi)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.impi+"' not a valid type for impi. String is expected")
}if(d.impu&&!tsk_string_is_string(d.impu)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.impu+"' not a valid type for impu. String is expected")
}if(d.password&&!tsk_string_is_string(d.password)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.password+"' not a valid type for password. String is expected")
}if(d.display_name&&!tsk_string_is_string(d.display_name)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.display_name+"' not a valid type for display_name. String is expected")
}if(d.websocket_proxy_url&&!tsk_string_is_string(d.websocket_proxy_url)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.websocket_proxy_url+"' not a valid type for websocket_proxy_url. String is expected")
}if(d.outbound_proxy_url&&!tsk_string_is_string(d.outbound_proxy_url)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.outbound_proxy_url+"' not a valid type for outbound_proxy_url. String is expected")
}if(d.sip_headers&&typeof d.sip_headers!="Array"&&!(d.sip_headers instanceof Array)){throw new Error("ERR_INVALID_PARAMETER_TYPE: '"+typeof d.sip_headers+"' not a valid type for sip_headers. Array is expected")
}if(d.events_listener){this.addEventListener(d.events_listener.events,d.events_listener.listener)}var f=!!d.enable_rtcweb_breaker;
var j=!!d.enable_click2call;var c=!d.enable_early_ims?true:!!d.enable_early_ims;var m=!!d.enable_media_stream_cache;
var a=!!d.media_pure;var g=d.constraint||{audio:undefined,video:undefined};var k=d.video_input_device_id||"default";
var l=d.audio_input_device_id||"default";var n=d.audio_output_device_id||"default";var e=d.s_call_type||"audiovideo";
var h=d.o_main_stream;var b=this.o_stack;tsk_utils_log_debug("s_websocket_server_url="+(d.websocket_proxy_url||"(null)"));
tsk_utils_log_debug("s_sip_outboundproxy_url="+(d.outbound_proxy_url||"(null)"));tsk_utils_log_debug("b_rtcweb_breaker_enabled="+(f?"yes":"no"));
tsk_utils_log_debug("b_click2call_enabled="+(j?"yes":"no"));tsk_utils_log_debug("b_early_ims="+(c?"yes":"no"));
tsk_utils_log_debug("b_enable_media_stream_cache="+(m?"yes":"no"));tsk_utils_log_debug("o_constraint="+JSON.stringify(g));
tsk_utils_log_debug("s_call_type="+e);tsk_utils_log_debug("s_video_input_device_id="+k);tsk_utils_log_debug("s_audio_input_device_id="+l);
tsk_utils_log_debug("s_audio_output_device_id="+n);b.set(tsip_stack.prototype.SetPassword(d.password),tsip_stack.prototype.SetDisplayName(d.display_name),tsip_stack.prototype.SetProxyOutBoundUrl(d.outbound_proxy_url),tsip_stack.prototype.SetRTCWebBreakerEnabled(f),tsip_stack.prototype.SetClick2CallEnabled(j),tsip_stack.prototype.SetSecureTransportEnabled((f||(window.location&&window.location.protocol=="https:"))),tsip_stack.prototype.SetEarlyIMSEnabled(c),tsip_stack.prototype.SetWebsocketServerUrl(d.websocket_proxy_url),tsip_stack.prototype.SetIceServers(d.ice_servers),tsip_stack.prototype.SetMediaPure(a),tsip_stack.prototype.SetMediaStreamCacheEnabled(m),tsip_stack.prototype.SetConstraint(g),tsip_stack.prototype.SetVideoInput(k),tsip_stack.prototype.SetAudioInput(l),tsip_stack.prototype.SetAudioOutput(n),tsip_stack.prototype.SetCallType(e),tsip_stack.prototype.SetMainStream(h));
if(d.sip_headers){d.sip_headers.forEach(function(o){if(o&&!tsk_string_is_null_or_empty(o.name)&&(!o.value||tsk_string_is_string(o.value))){b.set(tsip_stack.prototype.SetHeader(o.name,o.value))
}})}return 0};SIPml.Stack.prototype.start=function(){return this.o_stack.start()};SIPml.Stack.prototype.stop=function(a){return this.o_stack.stop(a)
};SIPml.Stack.prototype.newSession=function(a,c){var d;var b;if(a=="register"){d=new tsip_session_register(this.o_stack);
b=SIPml.Session.Registration}else{if(a=="message"){d=new tsip_session_message(this.o_stack);b=SIPml.Session.Message
}else{if(a=="publish"){d=new tsip_session_publish(this.o_stack);b=SIPml.Session.Publish}else{if(a=="subscribe"){d=new tsip_session_subscribe(this.o_stack);
b=SIPml.Session.Subscribe}else{if(a=="call-audio"||a=="call-audiovideo"||a=="call-video"||a=="call-screenshare"){d=new tsip_session_invite(this.o_stack);
d.s_type=a;b=SIPml.Session.Call}else{throw new Error("ERR_INVALID_PARAMETER_VALUE: '"+a+"' not valid as session type")
}}}}}d.b_local=true;var e=new b(d,c);this.ao_sessions[e.getId()]=e;return e};SIPml.Stack.Event=function(a,b,d,c){SIPml.Event.call(this,a,b,d,c)
};SIPml.Stack.Event.prototype=Object.create(SIPml.Event.prototype);SIPml.Session=function(c,a,b){SIPml.EventTarget.call(this);
if(!c){throw new Error("ERR_INVALID_PARAMETER_VALUE: Invalid session value")}this.s_classfiy=b;this.o_session=c;
this.setConfiguration(a)};SIPml.Session.prototype=Object.create(SIPml.EventTarget.prototype);SIPml.Session.prototype.o_session=null;
SIPml.Session.prototype.o_configuration=null;SIPml.Session.prototype.s_classfiy="";SIPml.Session.prototype.getId=function(){return this.o_session.get_id()
};SIPml.Session.prototype.getClassfiy=function(){return this.s_classfiy};SIPml.Session.prototype.setConfiguration=function(a){if(!a){return
}var b=this.o_session;if(a.events_listener){this.addEventListener(a.events_listener.events,a.events_listener.listener)
}if(this instanceof SIPml.Session.Call){b.set(tsip_session.prototype.SetConstraint(a.constraint||{audio:undefined,video:undefined}),tsip_session.prototype.SetScreencastWindowID(a.screencast_window_id||0),tsip_session.prototype.SetVideoInput(a.video_input_device_id||"default"),tsip_session.prototype.SetAudioInput(a.audio_input_device_id||"default"),tsip_session.prototype.SetAudioOutput(a.audio_output_device_id||"default"),tsip_session.prototype.SetCallType(a.call_type||"audiovideo"),tsip_session.prototype.SetMainStream(a.o_main_stream))
}if(a.sip_headers){a.sip_headers.forEach(function(c){if(c&&!tsk_string_is_null_or_empty(c.name)&&(!c.value||tsk_string_is_string(c.value))){b.set(tsip_session.prototype.SetHeader(c.name,c.value))
}})}if(a.sip_caps){a.sip_caps.forEach(function(c){if(c&&!tsk_string_is_null_or_empty(c.name)&&(!c.value||tsk_string_is_string(c.value))){b.set(tsip_session.prototype.SetCaps(c.name,c.value))
}})}if(a.expires){b.set(tsip_session.prototype.SetExpires(a.expires))}if(a.from){b.set(tsip_session.prototype.SetFromStr(a.from))
}};SIPml.Session.prototype.getRemoteUri=function(){return(this.o_session.b_local?this.o_session.o_uri_to:this.o_session.o_uri_from).toString()
};SIPml.Session.prototype.getRemoteFriendlyName=function(){var a=this.o_session.b_local?this.o_session.o_uri_to:this.o_session.o_uri_from;
return a.s_display_name?a.s_display_name:a.s_user_name};SIPml.Session.prototype.getHeader=function(b){var c=this.o_session.ao_headers;
for(var a=0;a<c.length;++a){if(c[a].s_name==b){return c[a].s_value}}return null};SIPml.Session.prototype.getHeaderAt=function(d,c){var a=0;
var e=this.o_session.ao_headers;for(var b=0;b<e.length;++b){if(e[b].s_name==d){if(a++>=c){return e[b].s_value
}}}return null};SIPml.Session.prototype.reject=function(a,b){this.setConfiguration(a);return this.o_session.reject(b)
};SIPml.Session.prototype.accept=function(a){this.setConfiguration(a);return this.o_session.accept()};
SIPml.Session.Event=function(d,a,c,e,b){SIPml.Event.call(this,a,c,e,b);this.session=d};SIPml.Session.Event.prototype=Object.create(SIPml.Event.prototype);
SIPml.Session.Event.prototype.getTransferDestinationFriendlyName=function(){var a=this.o_event?this.o_event.get_message():null;
if(a){var b=a.get_header(tsip_header_type_e.Refer_To);if(b&&b.o_uri){return(b.s_display_name?b.s_display_name:b.o_uri.s_user_name)
}}return null};SIPml.Session.Registration=function(b,a){SIPml.Session.call(this,b,a,"Registration")};
SIPml.Session.Registration.prototype=Object.create(SIPml.Session.prototype);SIPml.Session.Registration.prototype.register=function(a){this.setConfiguration(a);
return this.o_session.register()};SIPml.Session.Registration.prototype.unregister=function(a){this.setConfiguration(a);
return this.o_session.unregister()};SIPml.Session.Call=function(b,a){SIPml.Session.call(this,b,a,"Call");
switch(b.s_type){case"call-audio":this.mediaType=tmedia_type_e.AUDIO;break;case"call-audiovideo":this.mediaType=tmedia_type_e.AUDIO_VIDEO;
break;case"call-video":this.mediaType=tmedia_type_e.VIDEO;break;case"call-screenshare":this.mediaType=tmedia_type_e.SCREEN_SHARE;
break}};SIPml.Session.Call.prototype=Object.create(SIPml.Session.prototype);SIPml.Session.Call.prototype.videoLocal=null;
SIPml.Session.Call.prototype.videoRemote=null;SIPml.Session.Call.prototype.call=function(a,b){if(tsk_string_is_null_or_empty(a)){throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null")
}if(!SIPml.haveMediaStream()){throw new Error("ERR_NOT_READY: Media engine not ready yet")}this.o_session.set(tsip_session.prototype.SetToStr(a));
this.setConfiguration(b);return this.o_session.call(this.mediaType)};SIPml.Session.Call.prototype.hangup=function(a,b){this.setConfiguration(a);
return this.o_session.hangup(b)};SIPml.Session.Call.prototype.hold=function(a){this.setConfiguration(a);
return this.o_session.hold(this.mediaType)};SIPml.Session.Call.prototype.resume=function(a){this.setConfiguration(a);
return this.o_session.resume(this.mediaType)};SIPml.Session.Call.prototype.info=function(b,c,a){this.setConfiguration(a);
return this.o_session.info(b,c)};SIPml.Session.Call.prototype.dtmf=function(b,a){this.setConfiguration(a);
return this.o_session.dtmf(b)};SIPml.Session.Call.prototype.transfer=function(a,b){this.setConfiguration(b);
return this.o_session.transfer(a)};SIPml.Session.Call.prototype.acceptTransfer=function(a){this.setConfiguration(a);
return this.o_session.transfer_accept()};SIPml.Session.Call.prototype.rejectTransfer=function(a){this.setConfiguration(a);
return this.o_session.transfer_reject()};SIPml.Session.Call.prototype.startBfcpShare=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: BFCP sharing requires webrtc4all plugin")
}this.setConfiguration(a);return this.o_session.start_bfcp_share()};SIPml.Session.Call.prototype.stopBfcpShare=function(a){if(SIPml.getWebRtcType()!="w4a"){throw new Error("ERR_NOT_SUPPORTED: BFCP sharing requires webrtc4all plugin")
}this.setConfiguration(a);return this.o_session.stop_bfcp_share()};SIPml.Session.Call.prototype.mute=function(b,a){if((b!=="audio"&&b!=="video"&&b!=="screen")||typeof a!="boolean"){throw new Error("ERR_INVALID_ARGUMENT")
}return this.o_session.set_mute(b,a)};SIPml.Session.Call.prototype.switch_video=function(a){if(a!=="video"&&a!=="screen"){throw new Error("ERR_INVALID_ARGUMENT")
}return this.o_session.switch_video(a)};SIPml.Session.Call.prototype.switch_source=function(b,c,a){if((b!=="video"&&b!=="audio")||(c!=="input"&&c!=="output")||a.length===0){throw new Error("ERR_INVALID_ARGUMENT")
}return this.o_session.switch_video(b,c,a)};SIPml.Session.Message=function(b,a){SIPml.Session.call(this,b,a,"Message")
};SIPml.Session.Message.prototype=Object.create(SIPml.Session.prototype);SIPml.Session.Message.prototype.send=function(a,c,d,b){if(tsk_string_is_null_or_empty(a)){throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null")
}this.setConfiguration(b);this.o_session.set(tsip_session.prototype.SetToStr(a));return this.o_session.send(c,d)
};SIPml.Session.Publish=function(b,a){SIPml.Session.call(this,b,a,"Publish");b.set(tsip_session.prototype.SetToUri(b.get_stack().identity.o_uri_impu))
};SIPml.Session.Publish.prototype=Object.create(SIPml.Session.prototype);SIPml.Session.Publish.prototype.publish=function(b,c,a){this.setConfiguration(a);
return this.o_session.publish(b,c)};SIPml.Session.Publish.prototype.unpublish=function(a){this.setConfiguration(a);
return this.o_session.unpublish()};SIPml.Session.Subscribe=function(b,a){SIPml.Session.call(this,b,a,"Subscribe")
};SIPml.Session.Subscribe.prototype=Object.create(SIPml.Session.prototype);SIPml.Session.Subscribe.prototype.subscribe=function(a,b){if(tsk_string_is_null_or_empty(a)){throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null")
}this.o_session.set(tsip_session.prototype.SetToStr(a));this.setConfiguration(b);return this.o_session.subscribe()
};SIPml.Session.Subscribe.prototype.unsubscribe=function(a){this.setConfiguration(a);return this.o_session.unsubscribe()
};var id=1000;var postId=3000;var TESTHOST="testsos.lionking110.com";var HOST="norsos.lionking110.com";
VMEETING={};VMEETING.version="v1.0.15";VMEETING.host={getWs:function(a){return"wss://"+(a?TESTHOST:HOST)
},getCs:function(a){return"https://"+(a?TESTHOST:HOST)}};Promise.prototype.error=Promise.prototype["catch"];
VMEETING.EVENT={SDK:{ERROR:"event::sdk::error",SUCCESS:"event::sdk::success",WARN:"event::sdk::warn",WEBSOCKET:"event::session::websocket",},SESSION:{ROOM:"event::session::room",MEMBER:"event::session::member",MEDIA:"event::session::media",}};
VMEETING.ACTION={ROOM:{PROCESS:"action::room::process",CONNECTED:"action::room::connected",ONCHANGE:"action::room::onchange",TERMINATED:"action::room::terminated",},MEMBER:{INVITING:"action::member::inviting",JOINED:"action::member::joined",LEAVED:"action::member::leaved",},MEDIA:{PROCESS:"action::media::process",ONCHANGE:"action::media::onchange",}};
VMEETING.STATUS={MEMBER:{INVITING:"INVITING",JOINED:"ONLINE",LEAVED:"OFFLINE",ONLINE:"online",OFFLINE:"offline",},};
VMEETING.MEDIA={DEFINITION:{HIGH:4,MID:2,LOW:1,},};VMEETING.CODE={SUCCESS:0,REG_DISCONNECTED:1,APP_DISCONNECTED:2,NO_PERMISSION:3,GET_PROFILE_TIMEOUT:4,GET_CONFIG_ERROR:5,AUTH_ERROR:6,SDK_START_ERROR:7,LOGIN_CONFLICT:8,REG_TIMEOUT:9,SDK_STOPPED:10,MEDIA_NOT_READY:11,NO_RESPONSE:13,INVALID_RESPONSE_MESSAGE:14,ERROR_RESPONSE:15,NOT_EXIST_ROOM:16,REQ_ERROR:17,REQ_TIMEOUT:18,ERROR:-1,};
VMEETING.STREAM_TYPE={LOCAL_AUDIO:"local_audio",LOCAL_VIDEO:"local_video",REMOTE_AUDIO:"remote_audio",REMOTE_VIDEO:"remote_video",};
VMEETING.PERMISSION={NONE:"none",ALLOW:"allow",FORBIDDEN:"forbidden",};VMEETING.STACK_EVENT={STARTING:"starting",RESTARTING:"restarting",START_SUCCESS:"started",RESTART_SUCCESS:"restarted",START_ERROR:"failed_to_start",STOPPING:"stopping",STOP_ERROR:"failed_to_stop",STOP_SUCCESS:"stopped",PERMISSION_REQUESTED:"m_permission_requested",PERMISSION_ACCEPTED:"m_permission_accepted",PERMISSION_REFUSED:"m_permission_refused",NEW_CALL:"i_new_call",ICE_STATUS:"m_ice_status",};
VMEETING.REG_EVENT={CONNECTING:"connecting",CONNECTED:"connected",TERMINATING:"terminating",TERMINATED:"terminated",};
VMEETING.CALL_EVENT={CONNECTING:"connecting",CONNECTED:"connected",TERMINATING:"terminating",TERMINATED:"terminated",LOCAL_AUDIO_ADD:"m_stream_audio_local_added",LOCAL_AUDIO_REMOVED:"m_stream_audio_local_removed",LOCAL_VIDEO_ADD:"m_stream_video_local_added",LOCAL_VIDEO_REMOVED:"m_stream_video_local_removed",REMOTE_AUDIO_ADD:"m_stream_audio_remote_added",REMOTE_AUDIO_REMOVED:"m_stream_audio_remote_removed",REMOTE_VIDEO_ADD:"m_stream_video_remote_added",REMOTE_VIDEO_REMOVED:"m_stream_video_remote_removed",};
VMEETING.Sdk=function(a){this.restart=false;this.stack_call_back=a.eventListener;this.session_call_back=a.roomListener;
this.config=a||{};this.accountInfo=null;this.__attach_tasks={};SIPml.setDebugLevel(a.logLevel||"error");
SIPml.setLogFunction(a.logFun);id+=1;this.id=id;this.stopFlag=false;tsk_utils_log_info(this.id,"new",a);
if(this.config.password){this.__fetch("/cs/sos/v1/mntn/account/token",{body:{Account:this._encrypt(a.account),Password:this._encrypt(a.password),ProjectCode:"master",}}).then(function(b){if(b&&b.HttpStatus===200&&b.Status===0){this.__fetch("/cs/sos/v1/mntn/account/info",{headers:{Token:b.Token,}}).then(function(c){if(c&&c.HttpStatus===200&&c.Status===0){this.accountInfo=c;
this.config.appCode=c.AppInfo&&c.AppInfo.AppCode||"";this.config.appid=c.AppInfo&&c.AppInfo.AppId||"";
this.__initInfo(a)}else{this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.GET_CONFIG_ERROR))
}}.bind(this))}else{this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.AUTH_ERROR))
}}.bind(this))}else{this.__initInfo(a)}};VMEETING.Sdk.prototype._encrypt=function(b){var a=new window.JSEncrypt();
a.setPublicKey(PUBLIC_KEY);return a.encrypt(b)};VMEETING.Sdk.prototype._decrypt=function(b){var a=new window.JSEncrypt();
a.setPublicKey(PUBLIC_KEY);return a.decrypt(b)};VMEETING.Sdk.prototype.__callbackStack=function(a){tsk_utils_log_debug(this.id,"callbackStack",a);
if(this.stack_call_back){this.stack_call_back(a)}};VMEETING.Sdk.prototype.__callbackSession=function(a){tsk_utils_log_debug(this.id,"callbackSession",a);
if(this.session_call_back){this.session_call_back(a)}};VMEETING.Sdk.prototype.__getUserMedia=function(c,b,a){if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){tsk_utils_log_debug(this.id,"standar api");
navigator.mediaDevices.getUserMedia(c).then(b).error(a)}else{if(navigator.webkitGetUserMedia){tsk_utils_log_debug(this.id,"webkit api");
navigator.webkitGetUserMedia(c,b,a)}else{if(navigator.mozGetUserMedia){tsk_utils_log_debug(this.id,"firfox api");
navigator.mozGetUserMedia(c,b,a)}else{if(navigator.getUserMedia){tsk_utils_log_debug(this.id,"old api");
navigator.getUserMedia(c,b,a)}else{tsk_utils_log_error(this.id,"other api")}}}}};VMEETING.Sdk.prototype.__initDevice=function(){this.microphone={permission:VMEETING.PERMISSION.NONE,forbiddens:[],allows:[],};
this.loudspeaker={permission:VMEETING.PERMISSION.NONE,forbiddens:[],allows:[],};function b(){if(navigator&&navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices){tsk_utils_log_debug(this.id,"get device list");
navigator.mediaDevices.enumerateDevices().then(function(c){c.forEach(function(d){tsk_utils_log_debug(this.id,"device:",d);
var e=null;switch(d.kind){case"audioinput":e=this.microphone;break;case"audiooutput":e=this.loudspeaker;
break;default:break}if(e){if(d.deviceId===""){e.forbiddens.push(d.toJSON())}else{e.allows.push(d.toJSON())
}}}.bind(this))}.bind(this)).error(function(c){tsk_utils_log_error(this.id,"get device error. "+c.toString())
})}else{tsk_utils_log_error(this.id,"get device list error. ")}}function a(){this.__getUserMedia({audio:true,},function(c){c.getTracks().forEach(function(d){d.stop()
});this.microphone.permission=VMEETING.PERMISSION.ALLOW;b.bind(this)()}.bind(this),function(c){this.microphone.permission=VMEETING.PERMISSION.FORBIDDEN
}.bind(this));this.loudspeaker.permission=VMEETING.PERMISSION.ALLOW}if(navigator&&navigator.mediaDevices){navigator.mediaDevices.ondevicechange=function(){b.bind(this)();
a.bind(this)()}.bind(this)}this.__getUserMedia({audio:true,video:true,},function(c){c.getTracks().forEach(function(d){d.stop()
});b.bind(this)();a.bind(this)()}.bind(this),function(c){tsk_utils_log_error(this.id,c)}.bind(this))};
VMEETING.Sdk.prototype.__versionNo=function(){var a=0;try{var d=VMEETING.version.match(/v(\S*)/)[1].split("-")[0].split(".").reverse();
for(var c in d){a+=parseInt(d[c])*Math.pow(100,c)}}catch(b){a=1}return a};VMEETING.Sdk.prototype.__restart=function(a){if(this.stopFlag){return false
}clearTimeout(this.restartTimer);this.restartTimer=setTimeout(function(){this.restart=true;this.__initInfo(this.config,a)
}.bind(this),1000);return true};VMEETING.Sdk.prototype.__initInfo=function(a,b){this.sessionId=Math.floor(Math.random()*1000000000);
if(this.webSocket&&this.webSocket.socket){this.webSocket.socket.onopen=null;this.webSocket.socket.onmessage=null;
this.webSocket.socket.onclose=null}if(this.restart){this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.WARN,b))
}if(!a.appid||!a.appCode||!a.account){this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.GET_CONFIG_ERROR));
return}this.profileTimer=setTimeout(function(){this.profileTimer=0;this.__restart(VMEETING.CODE.GET_PROFILE_TIMEOUT)
}.bind(this),10*1000);this.__fetch("/appid/token",{method:"GET",headers:{Appid:a.appid,AppCode:a.appCode,Account:a.account,DeviceType:"SOS-SDK"}}).then(function(c){if(c.HttpStatus===200){this.token=c.token;
this.refreshToken=c.refreshToken;this.__fetch("/web/profile",{method:"GET",headers:{DeviceToken:this.token,}}).then(function(f){if(f.HttpStatus===200){this.profile=Object.assign(this.profile||{},{websocketUrl:f.websocketServer,sipRealm:f.sipDomain,conferenceServer:f.conferenceServer},a);
if(this.webSocket&&this.webSocket.closeReconnectTimer){clearTimeout(this.webSocket.closeReconnectTimer)
}var e="/as/websocket?DeviceToken="+this.token+"&DeviceType=SOS-SDK&Version="+this.__versionNo()+"&SessionId="+this.sessionId+"&VersionName="+VMEETING.version+(a.websocketParam?a.websocketParam:"");
if(a.host&&a.host.ws){e=a.host.ws+e}else{e=VMEETING.host.getWs(a.test)+e}tsk_utils_log_info(this.id,"connect websocket",e);
var d=new WebSocket(e);this.webSocket={hbTimer:0,socket:d,status:"disconnect",};d.onopen=function(g){this.__wsOnOpen(g,this.sessionId)
}.bind(this);d.onmessage=function(g){this.__wsOnMessage(g,this.sessionId)}.bind(this);d.onclose=function(g){this.__wsOnClose(g,this.sessionId)
}.bind(this)}else{this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.WARN,VMEETING.CODE.GET_CONFIG_ERROR))
}}.bind(this))}else{this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.WARN,VMEETING.CODE.AUTH_ERROR))
}}.bind(this))};VMEETING.Sdk.prototype.__wsParse=function(e){var a="{}";var d={};var c=null;if(e.startsWith("profile{")){c="profile";
a=e.substr("profile".length)}else{if(e.startsWith("Conference{")){c="conference";a=e.substr("Conference".length)
}else{if(e.startsWith("Screen{")){c="screen";a=e.substr("Screen".length)}else{if(e.startsWith("CallEnd{")){c="callEnd";
a=e.substr("CallEnd".length)}else{if(e.startsWith("CallCreate{")){c="callCreate";a=e.substr("CallCreate".length)
}else{if(e.startsWith("CallJoin{")){c="callJoin";a=e.substr("CallJoin".length)}else{if(e.startsWith("conferenceSendVideo{")){c="conferenceSendVideo";
a=e.substr("conferenceSendVideo".length)}else{if(e.startsWith("DesktopShare{")){c="screenShare";a=e.substr("DesktopShare".length)
}else{if(e.startsWith("deviceConflict")){c="deviceConflict"}else{if(e.startsWith("ShowOrHideSmallWindows{")){c="showOrHideSmallWindows"
}else{if(e.startsWith("WhiteBoard{")){c="whiteBoard";a=e.substr("WhiteBoard".length)}else{if(e.startsWith("UploadLog{")){c="uploadLog"
}else{if(e.startsWith("json{")){c="json";a=e.substr("json".length);try{d=a.length>0?JSON.parse(a):{};
return{type:d.Action,content:d,}}catch(b){d=a}}else{c="custom";a=e}}}}}}}}}}}}}try{d=a.length>0?JSON.parse(a):{}
}catch(b){d=a}return{type:c,content:d,}};VMEETING.Sdk.prototype.__wsOnOpen=function(a,b){tsk_utils_log_debug(this.id,"websocket on open",this.webSocket);
if(this.sessionId!==b){return}if(this.webSocket){this.webSocket.status="connected";this.webSocket.hbTimer=setInterval(function(){if(this.webSocket&&this.webSocket.status==="connected"&&this.webSocket.socket){this.webSocket.socket.send("Hearbeat{}")
}}.bind(this),10*1000)}};VMEETING.Sdk.prototype.__wsOnClose=function(a,b){if(this.sessionId!==b){return
}this.webSocket.status="disconnect";clearInterval(this.webSocket.hbTimer);this.webSocket.hbTimer=0;if(!this.deviceConflict){if(this.__restart(VMEETING.CODE.APP_DISCONNECTED)){tsk_utils_log_warn(this.id,"websocket disconnect, restarting",this.webSocket,this.deviceConflict)
}}else{tsk_utils_log_warn(this.id,"websocket disconnect",this.webSocket,this.deviceConflict)}};VMEETING.Sdk.prototype.__wsOnMessage=function(h,j){if(this.sessionId!==j){return
}var c=this.__wsParse(h.data);var f=c.content;switch(c.type){case"profile":if(!this.stack){var b=new RegExp("(^[\\s]*)|([\\s]*$)","g");
this.profile=Object.assign(this.profile,{sipPassword:f.password.replace(b,""),sipUsername:f.phone.replace(b,"")});
var a=this.__genConfig(this.profile);tsk_utils_log_debug(this.id,"config",a);this.stack=new SIPml.Stack(a);
if(this.stack.start()){this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.SDK_START_ERROR))
}}else{if(this.profileTimer){this.__callbackStack(new VMEETING.RegEvent(VMEETING.EVENT.SDK.SUCCESS,VMEETING.CODE.SUCCESS,{restart:this.restart,appid:this.profile.appid,appCode:this.profile.appCode,account:this.profile.account,userId:this.profile.sipUsername,userPassword:this.profile.sipPassword,}))
}}if(this.profileTimer){clearTimeout(this.profileTimer);this.profileTimer=0}break;case"conference":if(this.callSession&&((this.callSession.conference&&this.callSession.conference.id===f.id)||!this.callSession.conference)){var g=f;
var d=this.callSession.conference;if(!g.conference.valid){this.__callbackSession(new VMEETING.RoomEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.ROOM.TERMINATED,g.conference))
}else{if(!this.callSession.firstConferenceNofity){this.callSession.firstConferenceNofity=1;this.callSession.conference=g;
this.__connected()}else{if(!d||(g.conference.desktopSharerDeviceId!==d.conference.desktopSharerDeviceId||g.conference.creatorId!==d.conference.creatorId)){this.__callbackSession(new VMEETING.RoomEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.ROOM.ONCHANGE,g.conference))
}}if(g.participants){g.participants.forEach(function(k){var e=d&&d.participants&&d.participants.find(function(n){return n.user.id===k.user.id
})||undefined;var l=e&&e.status||undefined;switch(k.status){case VMEETING.STATUS.MEMBER.JOINED:if(l!==VMEETING.STATUS.MEMBER.JOINED){clearTimeout(this[k.user.id+"inviteTimer"]);
this.__callbackSession(new VMEETING.MemberEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.MEMBER.JOINED,k,g.participants))
}break;case VMEETING.STATUS.MEMBER.LEAVED:if(l===VMEETING.STATUS.MEMBER.JOINED||l===VMEETING.STATUS.MEMBER.INVITING){clearTimeout(this[k.user.id+"kickTimer"]);
this.__callbackSession(new VMEETING.MemberEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.MEMBER.LEAVED,k,g.participants))
}break;case VMEETING.STATUS.MEMBER.INVITING:if(l!==VMEETING.STATUS.MEMBER.INVITING){this.__callbackSession(new VMEETING.MemberEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.MEMBER.INVITING,k,g.participants))
}break;default:break}}.bind(this))}}this.callSession.conference=f}break;case"conferenceSendVideo":if(this.callSession&&this.callSession.conference&&this.callSession.conference.id===f.confId&&this.profile.sipUsername===f.sipNum&&this.mediaStreamCtrlSeq<=f.seq&&this.callSession.localVideoStream){this.mediaStreamCtrlSeq=f.seq;
clearTimeout(this.mediaStreamCtrlTimer);this.mediaStreamCtrlTimer=setTimeout(function(){this.mediaStreamCtrlTimer=0;
this.callSession.localVideoStream.forEach(function(e){if(window.tmedia_cmp(e.type,window.tmedia_type_e.HIGH_VIDEO)){e.getTracks().forEach(function(k){k.enabled=!!f.sendBig
})}else{if(window.tmedia_cmp(e.type,window.tmedia_type_e.LOW_VIDEO)){e.getTracks().forEach(function(k){k.enabled=!!f.sendSmall
})}}})}.bind(this),1000)}break;case"screen":if(this.callSession){this.callSession.media=f;clearTimeout(this.mediaTimer);
this.__callbackSession(new VMEETING.MediaEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.MEDIA.ONCHANGE,this.callSession.media))
}break;case"deviceConflict":this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.LOGIN_CONFLICT));
this.deviceConflict=true;break;case"callCreate":this.createRoom({subject:f.conference&&f.conference.subject||(this.profile.name+"'s room"),autoViewDisable:this.config.room&&!!this.config.room.autoViewDisable,ghost:this.config.room&&!!this.config.room.ghost,});
break;case"callJoin":this.joinRoom({accessCode:f.conference&&f.conference.confCode||"000000000",autoViewDisable:this.config.room&&!!this.config.room.autoViewDisable,ghost:this.config.room&&!!this.config.room.ghost,});
break;case"callEnd":if(this.callSession){this.__callbackSession(new VMEETING.RoomEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.ROOM.TERMINATED,this.callSession.conference&&this.callSession.conference.conference||{}))
}break;default:this.__callbackStack(new VMEETING.WebSocketEvent(c.type,f));tsk_utils_log_trace(this.id,"unsupported message",c.type,h.data);
break}};VMEETING.Sdk.prototype.__genConfig=function(a){return{outbound_proxy_url:null,enable_rtcweb_breaker:true,enable_early_ims:false,enable_media_stream_cache:false,websocket_proxy_url:a.websocketUrl,ice_servers:[{url:"stun:1.2.3.4:3478",addr:"1.2.3.4",internal:true,}],s_call_type:a.callType||"audiovideo",o_main_stream:a.mainStream||undefined,media_pure:a.mediaPure,realm:a.sipRealm,impi:a.sipUsername,impu:"sip:"+a.sipUsername+"@"+a.sipRealm,password:a.sipPassword,display_name:a.sipUsername,sip_headers:[{name:"User-Agent",value:"VMeeting-client-SDK-"+VMEETING.version},{name:"Organization",value:a.appid}],constraint:{audio:{bandwidth:256,autoGainControl:false,},video:{bandwidth:2048,bitrate:{start:1500,min:800,max:3000},mainstream:{width:1280,height:720,frameRate:20,},secondarystream:{width:320,height:180,frameRate:20,}}},video_input_device_id:a.video_input_device_id||"default",audio_input_device_id:a.audio_input_device_id||"default",audio_output_device_id:a.audio_output_device_id||"default",events_listener:{events:"*",listener:this.__stack_event.bind(this),},}
};VMEETING.Sdk.prototype.isTest=function(){return !!this.config.test};VMEETING.Sdk.prototype.__fetch=function(c,e){var a="";
if(c.indexOf("/cs")===0||c.indexOf("/as")===0){if(this.config.host&&this.config.host.cs){a=this.config.host.cs+c
}else{a=VMEETING.host.getCs(this.config.test)+c}}else{if(this.config.host&&this.config.host.cs){a=this.config.host.cs+"/as"+c
}else{a=VMEETING.host.getCs(this.config.test)+"/as"+c}}var b={method:e.method||"POST",mode:"cors",headers:Object.assign({"Content-Type":"application/json",},e.headers),body:e.body?JSON.stringify(e.body):undefined,};
var d=postId;postId+=1;tsk_utils_log_debug(this.id,d,e.method||"POST -> ",a,"header:",e.headers,"body:",e.body);
return fetch(a,b).then(function(f){const g=f.headers.get("content-type");if(200<=f.status||f.status<300){if(g&&g.indexOf("application/json")!==-1){return f.json().then(function(h){tsk_utils_log_debug(this.id,d,f.status,"<-",a,"body:",h);
h.HttpStatus=f.status;return Promise.resolve(h)})}return f.text().then(function(h){return Promise.resolve({HttpStatus:f.status})
})}else{if(g&&g.indexOf("application/json")!==-1){return f.json().then(function(h){return Promise.reject(f)
})}return f.text().then(function(h){return Promise.reject(f)})}}).then(function(f){return f||{}},function(f){return f||{}
},function(f){return f||{}}).error(function(f){return f})};VMEETING.Sdk.prototype.fetch=function(b,a){return new Promise(function(d,c){this.__fetch(b,{method:"POST",headers:{Token:this.token,},body:a}).then(function(e){if(e){if(e.Status===0){d(e)
}else{c({code:e.Status,message:e.StatusMsg})}}else{c({code:2,message:"fetch data error, please check your network"})
}}.bind(this)).error(function(e){c({code:-1,message:"unknown error"})}.bind(this))}.bind(this))};VMEETING.Sdk.prototype.__stack_event=function(h){var c=h.getParam()||{};
var l=h.getDescription()||{};var j=h.type;tsk_utils_log_debug(this.id,"stack event. type:",j);switch(j){case VMEETING.STACK_EVENT.RESTARTING:this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.WARN,VMEETING.CODE.REG_DISCONNECTED));
case VMEETING.STACK_EVENT.STARTING:break;case VMEETING.STACK_EVENT.RESTART_SUCCESS:case VMEETING.STACK_EVENT.START_SUCCESS:if(this.stack){this.sipRegSession=this.stack.newSession("register",{expires:300,events_listener:{events:"*",listener:this.__reg_session_event.bind(this),},})
}clearTimeout(this.delayRegisterTimer);this.delayRegisterTimer=setTimeout(function(){clearTimeout(this.registerTimer);
this.registerTimer=setTimeout(function(){this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.REG_TIMEOUT))
}.bind(this),5*1000);this.sipRegSession&&this.sipRegSession.register()}.bind(this),500);break;case VMEETING.STACK_EVENT.START_ERROR:this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.SDK_START_ERROR));
break;case VMEETING.STACK_EVENT.STOPPING:case VMEETING.STACK_EVENT.STOP_ERROR:case VMEETING.STACK_EVENT.STOP_SUCCESS:this.__restart(VMEETING.CODE.SDK_STOPPED);
break;case VMEETING.STACK_EVENT.NEW_CALL:var d=h.newSession;var f=d.getId();var k=d.getHeader("X-Conference-Code");
var m=d.getRemoteFriendlyName();var b=30;var a=Object.assign(this.__genConfig(this.profile),{sip_headers:[],call_type:this.config.callType||"audiovideo",events_listener:{events:"*",listener:this.__call_session_event.bind(this),},});
function g(){if(this.acceptAccessCode===m){tsk_utils_log_debug(this.id,"accept the call. confSipNum",m);
if(!this.callSession){this.__initCallSession();this.callSession={sipNum:m}}this.callSession.sipSession=d;
this.callSession.id=f;d.accept(a)}else{if(b>0&&this.acceptAccessCode!==null&&this.acceptAccessCode!==undefined){b-=1;
setTimeout(function(){g.bind(this)()}.bind(this),100)}else{tsk_utils_log_debug(this.id,"reject the call. confSipNum",m);
d.reject(a)}}}g.bind(this)();break;case VMEETING.STACK_EVENT.PERMISSION_REQUESTED:break;case VMEETING.STACK_EVENT.PERMISSION_ACCEPTED:break;
case VMEETING.STACK_EVENT.PERMISSION_REFUSED:this.callSession&&this.callSession.sipSession&&this.callSession.sipSession.hangup();
break;case VMEETING.STACK_EVENT.ICE_STATUS:this.iceStatus=c;break;default:break}};VMEETING.Sdk.prototype.setAcceptAccessCode=function(a){this.acceptAccessCode=a
};VMEETING.Sdk.prototype.__reg_session_event=function(c){var d=c.getParam()||{};var b=c.getDescription()||{};
var a=c.type;tsk_utils_log_debug(this.id,"register session event. type: "+a);switch(a){case VMEETING.REG_EVENT.CONNECTING:break;
case VMEETING.REG_EVENT.CONNECTED:clearTimeout(this.registerTimer);this.__callbackStack(new VMEETING.RegEvent(VMEETING.EVENT.SDK.SUCCESS,VMEETING.CODE.SUCCESS,{restart:this.restart,appid:this.profile.appid,appCode:this.profile.appCode,account:this.profile.account,userId:this.profile.sipUsername,userPassword:this.profile.sipPassword,}));
clearInterval(this.refreshTokenTimer);this.refreshTokenTimer=setInterval(function(){this.__fetch("/cs/v1/app/user/refresh/token",{method:"POST",body:{RefreshToken:this.refreshToken,}}).then(function(e){if(e.Status===0){this.token=e.Token;
this.refreshToken=e.RefreshToken}else{this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.AUTH_ERROR,e))
}}.bind(this))}.bind(this),1200*1000);break;case VMEETING.REG_EVENT.TERMINATING:case VMEETING.REG_EVENT.TERMINATED:if(!this.stopFlag){this.__callbackStack(new VMEETING.Event(VMEETING.EVENT.SDK.ERROR,VMEETING.CODE.REG_DISCONNECTED))
}break;default:break}};VMEETING.Sdk.prototype.__call_session_event=function(g){var d=g.getParam()||{};
var k=g.getDescription()||{};var j=g.getUserData();var h=g.type;var l=g.session;tsk_utils_log_debug(this.id,"call session event. type: "+h);
switch(h){case VMEETING.CALL_EVENT.CONNECTING:break;case VMEETING.CALL_EVENT.CONNECTED:if(this.callSession&&this.callSession.sipSession==l){if(this.joinTimer){clearTimeout(this.joinTimer);
this.joinTimer=0}var c=0;var b=100;var a=300;function f(){if(this.iceStatus!=="connected"&&this.iceStatus!=="completed"){setTimeout(function(){c+=1;
if(c<a){f.bind(this)()}else{this.callSession&&this.callSession.sipSession&&this.callSession.sipSession.hangup();
this.__callbackSession(new VMEETING.Event(VMEETING.EVENT.SESSION.ROOM,VMEETING.CODE.MEDIA_NOT_READY))
}}.bind(this),b)}else{if(this.iceStatus==="connected"){this.callSession.status="connected";this.__connected()
}else{if(!this.callSession){return}else{this.callSession&&this.callSession.sipSession&&this.callSession.sipSession.hangup();
this.__callbackSession(new VMEETING.Event(VMEETING.EVENT.SESSION.ROOM,VMEETING.CODE.MEDIA_NOT_READY))
}}}}f.bind(this)()}break;case VMEETING.CALL_EVENT.TERMINATING:case VMEETING.CALL_EVENT.TERMINATED:if(this.callSession&&this.callSession.sipSession==l){this.__callbackSession(new VMEETING.RoomEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.ROOM.TERMINATED,this.callSession.conference&&this.callSession.conference.conference||{}));
this.__initCallSession()}break;case VMEETING.CALL_EVENT.LOCAL_AUDIO_ADD:if(this.callSession&&this.callSession.sipSession==l){if(!this.callSession.localAudioStream){this.callSession.localAudioStream=[d]
}else{this.callSession.localAudioStream.push(d)}if(j){this.callSession.pc=j}this.__connected()}break;
case VMEETING.CALL_EVENT.LOCAL_VIDEO_ADD:if(this.callSession&&this.callSession.sipSession==l){if(!this.callSession.localVideoStream){this.callSession.localVideoStream=[d]
}else{this.callSession.localVideoStream.push(d)}if(j){this.callSession.pc=j}this.__connected()}break;
case VMEETING.CALL_EVENT.REMOTE_AUDIO_ADD:if(this.callSession&&this.callSession.sipSession==l){if(!this.callSession.remoteAudioStream){this.callSession.remoteAudioStream=[d]
}else{this.callSession.remoteAudioStream.push(d)}if(j){this.callSession.pc=j}this.__connected()}break;
case VMEETING.CALL_EVENT.REMOTE_VIDEO_ADD:if(this.callSession&&this.callSession.sipSession==l){if(!this.callSession.remoteVideoStream){this.callSession.remoteVideoStream=[d]
}else{this.callSession.remoteVideoStream.push(d)}if(j){this.callSession.pc=j}this.__connected()}break;
case VMEETING.CALL_EVENT.LOCAL_AUDIO_REMOVED:case VMEETING.CALL_EVENT.LOCAL_VIDEO_REMOVED:case VMEETING.CALL_EVENT.REMOTE_AUDIO_REMOVED:case VMEETING.CALL_EVENT.REMOTE_VIDEO_REMOVED:this.__stop(d);
break;default:break}};VMEETING.Sdk.prototype.__stop=function(b){if(b){if(b.stop){b.stop()}else{var a=b.getTracks()||[];
a.forEach(function(c){if(c.stop){c.stop()}})}}};VMEETING.Sdk.prototype.__initCallSession=function(a){this.callSession=null;
this.iceStatus="failed";this.nofityCallSessionSuccess=0;this.mediaStreamCtrlSeq=0};VMEETING.Sdk.prototype.__connected=function(a){if(this.callSession.localAudioStream&&this.callSession.localAudioStream.length>=1&&this.callSession.remoteAudioStream&&this.callSession.remoteAudioStream.length>=1&&this.callSession.status==="connected"&&!this.nofityCallSessionSuccess&&this.callSession.conference){this.nofityCallSessionSuccess=1;
this.__callbackSession(new VMEETING.RoomEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.ROOM.CONNECTED,this.callSession.conference&&this.callSession.conference.conference||{}))
}};VMEETING.Sdk.prototype.version=function(){return VMEETING.version};VMEETING.Sdk.prototype.uninit=function(){tsk_utils_log_info(this.id,"uninit");
this.stack_call_back=null;this.session_call_back=null;this.sessionId=null;this.config={};this.stopFlag=true;
clearInterval(this.refreshTokenTimer);clearTimeout(this.delayRegisterTimer);clearTimeout(this.registerTimer);
clearTimeout(this.restartTimer);clearTimeout(this.profileTimer);var a=this.webSocket;if(a){if(a.hbTimer){clearInterval(a.hbTimer);
a.hbTimer=0}if(a.socket){a.onopen=null;a.onmessage=null;a.onclose=null;a.socket.close()}this.webSocket={}
}if(this.callSession){if(this.callSession.sipSession){this.callSession.sipSession.hangup();this.callSession.sipSession=null
}}if(this.sipRegSession){this.sipRegSession.unregister();this.sipRegSession=null}if(this.stack){this.stack.stop();
this.stack=null}};VMEETING.Sdk.prototype.forceExitRoom=function(){tsk_utils_log_info(this.id,"forceExitRoom");
this.callSession&&this.callSession.sipSession&&this.callSession.sipSession.hangup()};var __dataRoom=function(a){return{sipNum:a.id,accessCode:a&&a.accessCode||"",subject:a&&a.subject||"",creatorId:a&&a.creatorId||"",desktopSharerUserId:a&&a.desktopSharerDeviceId||"",}
};VMEETING.Sdk.prototype.getRoom=function(){return __dataRoom(this.callSession&&this.callSession.conference&&this.callSession.conference.conference||{})
};VMEETING.Sdk.prototype.getSession=function(){return this.callSession};var __dataMembers=function(a){var b=Object.assign([],a||[]);
b.forEach(function(c){c.nickName=c&&c.user&&c.user.nickName||"";c.avatarUrl=c&&c.user&&c.user.avatarUrl||"";
c.userId=c&&c.user&&c.user.id||"";c.deviceId=c&&c.device&&c.device.id||"";delete c.user;delete c.device;
delete c.isInternalMs});return b};VMEETING.Sdk.prototype.getMembers=function(){tsk_utils_log_info(this.id,"getMembers");
return __dataMembers(this.callSession&&this.callSession.conference&&this.callSession.conference.participants||[])
};var __dataMedia=function(d){var a=[];if(d&&d.ssrc&&d.media&&d.definition){var b=d.ssrc||[];var e=d.media||[];
var c=d.definition||[];Array.from({length:9}).forEach(function(h,g){var f=b.findIndex(function(j){return j===g
});if(f!==-1){a.push({userId:e[f],streamId:b[f],definition:c[f],})}})}return a};VMEETING.Sdk.prototype.getMedia=function(a){tsk_utils_log_info(this.id,"getMedia");
return __dataMedia(this.callSession&&this.callSession.media||{})};VMEETING.Sdk.prototype.viewMediaMember=function(d){tsk_utils_log_info(this.id,"viewMediaMember");
var a=d&&d.medias||[];if(this.callSession){var e=[];for(var c in a){var b=a[c];if(b){e.push({SipNum:b.userId,StreamId:b.streamId,Definition:b.definition})
}}this.__fetch("/cs/v1/app/conference/select",{method:"POST",headers:{Token:this.token,},body:{SipCode:this.callSession.sipNum,SipNum:this.profile.sipUsername,Mode:"FiveSmallWindowsOverFullScreen",Views:e,}}).then(function(f){if(200<=f.HttpStatus&&f.HttpStatus<300){this.__callbackSession(new VMEETING.MediaEvent(VMEETING.CODE.SUCCESS,VMEETING.ACTION.MEDIA.PROCESS));
this.mediaTimer=setTimeout(function(){this.__callbackSession(new VMEETING.MediaEvent(VMEETING.CODE.REQ_TIMEOUT,VMEETING.ACTION.MEDIA.PROCESS))
}.bind(this),5*1000)}else{this.__callbackSession(new VMEETING.MediaEvent(VMEETING.CODE.REQ_ERROR,VMEETING.ACTION.MEDIA.PROCESS))
}}.bind(this)).error(function(f){this.__callbackSession(new VMEETING.MediaEvent(VMEETING.CODE.REQ_ERROR,VMEETING.ACTION.MEDIA.PROCESS))
}.bind(this))}};VMEETING.Sdk.prototype.addressBook=function(b){tsk_utils_log_info(this.id,"addressBook");
var a=b.pag;var l=b.onOk;var h=b.onError;var d=b.onOk2;var k=[];if(a&&a.filters){for(var f in a.filters){var e=a.filters[f];
var g=[];if(e){for(var c in e){var m=e[c];g.push({Key:m[0],Type:(m[1]==="like"||m[1]==="equal"||m[1]==="not equal")?"str":"int",Op:m[1]==="equal"?"=":(m[1]==="not equal"?"!=":m[1]),Value:m[2],})
}}if(g.length>0){k.push(g)}}}this.__fetch("/cs/v1/app/user/contacts",{method:"POST",headers:{Token:this.token,},body:{PageSize:(a&&a.page)&&a.page.size||100,PageNum:(a&&a.page)&&a.page.number||1,OrderKey:(a&&a.sort)&&a.sort.field||undefined,Desc:(a&&a.sort)&&a.sort.order||undefined,Filters:k.length>0?k:[[]],}}).then(function(o){if(200<=o.HttpStatus&&o.HttpStatus<300){if(l){var j=[];
var n=o&&o.RecordList||[];for(var p in n){var q=n[p];j.push({userId:q.Account,nickName:q.NickName,avatarUrl:q.AvatarUrl,status:(q.AppState==="online"&&q.SipState==="online")?(q.CallState==="idle"?VMEETING.STATUS.MEMBER.ONLINE:VMEETING.STATUS.MEMBER.JOINED):VMEETING.STATUS.MEMBER.OFFLINE,})
}l({total:o&&o.TotalNum||0,datas:j})}else{if(d){d(o)}}}else{h&&h(o.StatusMsg)}}.bind(this)).error(function(j){h&&h(j.toString())
}.bind(this))};VMEETING.Sdk.prototype.deviceList=function(g){tsk_utils_log_info(this.id,"deviceList");
var d=g&&g.pag;var a=[];if(d&&d.filters){for(var c in d.filters){var e=d.filters[c];var f=[];if(e){for(var b in e){var h=e[b];
f.push({Key:h[0],Type:(h[1]==="like"||h[1]==="equal"||h[1]==="not equal")?"str":"int",Op:h[1]==="equal"?"=":(h[1]==="not equal"?"!=":h[1]),Value:h[2],})
}}if(f.length>0){a.push(f)}}}return new Promise(function(k,j){this.__fetch("/sos/v1/dm/projectCode/list",{method:"POST",headers:{Token:this.token,},body:{PageSize:(d&&d.page)&&d.page.size||100,PageNum:(d&&d.page)&&d.page.number||1,OrderKey:(d&&d.sort)&&d.sort.field||undefined,Desc:(d&&d.sort)&&d.sort.order||undefined,Filters:a.length>0?a:[[]],}}).then(function(l){if(200<=l.HttpStatus&&l.HttpStatus<300){k(l)
}else{j(l)}}).error(function(l){j(rsp)})}.bind(this))};VMEETING.Sdk.prototype.__attach=function(c,d,a){if(!a){return
}var b=document.getElementById(c);if(this.__attach_tasks[c]){clearTimeout(this.__attach_tasks[c]);this.__attach_tasks[c]=0
}if(b&&d){tsk_utils_log_debug(this.id,"attach DOM<"+c+"> to media stream<"+d.id+">");window.attachMediaStream(b,d)
}else{if(b&&!d){tsk_utils_log_debug(this.id,"deattach DOM<"+b.id+">");window.attachMediaStream(b,null)
}else{if(!b){if(a>0){this.__attach_tasks[c]=setTimeout(function(){this.__attach(c,d,a-1)}.bind(this),1000)
}else{tsk_utils_log_warn(this.id,"attach DOM<"+c+"> to media stream<"+((d&&d.id)||null)+"> failed")}}}}};
VMEETING.Sdk.prototype.bindLocalVideo=function(a){tsk_utils_log_info(this.id,"bindLocalVideo",a);if(this.callSession&&this.callSession.localVideoStream){stream=this.callSession.localVideoStream[0];
this.__attach(a,stream,2)}};VMEETING.Sdk.prototype.bindRemoteVideo=function(b,a){a=a===undefined?0:a;
tsk_utils_log_info(this.id,"bindRemoteVideo",b,a);if(this.callSession&&this.callSession.remoteVideoStream){stream=this.callSession.remoteVideoStream[a];
this.__attach(b,stream,2)}};VMEETING.Sdk.prototype.bindRemoteAudio=function(e,d){d=d===undefined?0:d;
tsk_utils_log_info(this.id,"bindRemoteAudio",e,d);if(this.callSession&&this.callSession.remoteAudioStream){stream=this.callSession.remoteAudioStream[d];
this.__attach(e,stream,2);if(this.config){var a="default";if(this.config.audio_output_device_id){a=this.config.audio_output_device_id
}if(a==="default"){if(this.loudspeaker&&this.loudspeaker.allows&&this.loudspeaker.allows[0]){a=this.loudspeaker.allows[0].deviceId
}}tsk_utils_log_debug(this.id,"set audio sink. deviceId:",a);try{var c=document.getElementById(e);if(c&&c.setSinkId){c.setSinkId(a)
}else{tsk_utils_log_warn(this.id,"setSinkId not supported. deviceId:",a)}}catch(b){tsk_utils_log_error(this.id,"set audio sink error:",b,"deviceId:",a)
}}}else{tsk_utils_log_error(this.id,"bind remote audio error, I have no remote audio stream")}};VMEETING.Sdk.prototype.unbindLocalVideo=function(a){tsk_utils_log_info(this.id,"unbindLocalVideo",a);
this.__attach(a,null,2)};VMEETING.Sdk.prototype.unbindRemoteVideo=function(a){tsk_utils_log_info(this.id,"unbindRemoteVideo",a);
this.__attach(a,null,2)};VMEETING.Sdk.prototype.unbindRemoteAudio=function(a){tsk_utils_log_info(this.id,"unbindRemoteAudio",a);
this.__attach(a,null,2)};VMEETING.Sdk.prototype.rebindRemoteVideo=function(b,a){tsk_utils_log_info(this.id,"rebindRemoteVideo",b,a);
this.unbindRemoteVideo(b);this.bindRemoteVideo(b,a)};VMEETING.Sdk.prototype.rebindRemoteAudio=function(b,a){tsk_utils_log_info(this.id,"rebindRemoteVideo",b,a);
this.unbindRemoteAudio(b);this.bindRemoteAudio(b,a)};VMEETING.Sdk.prototype.unmute=function(b){tsk_utils_log_info(this.id,"unmute",b);
if(this.callSession&&this.callSession.pc){var c=this.callSession.pc.getSenders().find(function(d){return d.track.kind==="audio"
});var a=c&&c.track;if(a){a.enabled=!b}}};VMEETING.Sdk.prototype.mute=function(){this.unmute(true)};VMEETING.Event=function(a,b,c){this.type=a;
this.code=b;if(!c){switch(b){case VMEETING.CODE.SUCCESS:c="成功";break;case VMEETING.CODE.ERROR:c="失败";
break;case VMEETING.CODE.REG_DISCONNECTED:c="注册断开了排查1.账号密码是否错误2.信令服务器是否异常3.本机与信令服务器的连接是否通畅)";break;
case VMEETING.CODE.APP_DISCONNECTED:c="业务断开了排查1.业务服务器是否异常2.本机与业务服务器的连接是否通畅)";break;case VMEETING.CODE.NO_PERMISSION:c="无摄像头、麦克、扬声器权限排查1.外接设备是否正常2.用户是否进行过禁止获取设备权限操作 3.外接设备是否被其他应用占用)";
break;case VMEETING.CODE.GET_PROFILE_TIMEOUT:c="获取账户profile信息超时websocket建立了连接但是服务器没有发送profile的消息过来排查1.业务服务器是否正常2.本机与业务服务器的连接是否通畅)";
break;case VMEETING.CODE.GET_CONFIG_ERROR:c="获取配置信息失败了排查1. 配置参数是否有误2. 服务器是否正常2.本机与业务服务器的连接是否通畅)";
break;case VMEETING.CODE.AUTH_ERROR:c="认证失败排查1.appidappCode是否匹配账户是否存在";break;case VMEETING.CODE.SDK_START_ERROR:c="SDK启动失败排查1.配置是否有误2.信令服务器是否异常3.本机与信令服务器的连接是否通畅)";
break;case VMEETING.CODE.LOGIN_CONFLICT:c="账户在其他地方登陆排查1.是否重复分配了同一账户给其他设备2.本机的上一个SDK没停止再次用同一个账户进行了SDK的初始化两个实例在同抢";
break;case VMEETING.CODE.REG_TIMEOUT:c="注册超时了排查1.账号密码是否错误2.媒体服务器是否异常3.本机与媒体服务器的连接是否通畅)";break;case VMEETING.CODE.SDK_STOPPED:c="SDK停止了排查1.是否是自己主动停止的SDK2.信令服务器是否异常3.本机与信令服务器的连接是否通畅)";
break;case VMEETING.CODE.MEDIA_NOT_READY:c="媒体没有准备好排查1.ICE服务器是否异常2.媒体服务器是否异常3.本机与媒体服务器的连接是否通畅)";break;
case VMEETING.CODE.NO_RESPONSE:c="创建或者加入房间无响应排查1.信令/业务服务器是否异常2.本机与信令/业务服务器的连接是否通畅)";break;case VMEETING.CODE.INVALID_RESPONSE_MESSAGE:c="无效的响应消息排查1.业务服务器是否异常)";
break;case VMEETING.CODE.ERROR_RESPONSE:c="错误的响应排查1.业务服务器是否异常2.本机与业务服务器的连接是否通畅)";break;case VMEETING.CODE.NOT_EXIST_ROOM:c="房间号不存在排查1.房间是否正确创建)";
break;case VMEETING.CODE.REQ_ERROR:c="请求失败排查1.房间是否正确创建/加入2.本机与业务服务器的连接是否通畅)";break;case VMEETING.CODE.REQ_TIMEOUT:c="请求超时排查1.请求的成员是否已上线)";
break;default:break}}this.description=c};VMEETING.RegEvent=function(b,c,a){VMEETING.Event.call(this,b,c);
this.profile=a};VMEETING.RegEvent.prototype=Object.create(VMEETING.Event.prototype);VMEETING.RoomEvent=function(b,c,a){VMEETING.Event.call(this,VMEETING.EVENT.SESSION.ROOM,b);
this.action=c;this.room=__dataRoom(JSON.parse(JSON.stringify(a)))};VMEETING.RoomEvent.prototype=Object.create(VMEETING.Event.prototype);
VMEETING.WebSocketEvent=function(b,a){VMEETING.Event.call(this,VMEETING.EVENT.SDK.WEBSOCKET,VMEETING.CODE.SUCCESS);
this.action=b;this.content=JSON.parse(JSON.stringify(a))};VMEETING.WebSocketEvent.prototype=Object.create(VMEETING.Event.prototype);
VMEETING.MediaEvent=function(a,b,c){VMEETING.Event.call(this,VMEETING.EVENT.SESSION.MEDIA,a);this.action=b;
this.mediaOrg=JSON.parse(JSON.stringify(c||{}));this.media=__dataMedia(this.mediaOrg)};VMEETING.MediaEvent.prototype=Object.create(VMEETING.Event.prototype);
VMEETING.MemberEvent=function(b,c,d,a){VMEETING.Event.call(this,VMEETING.EVENT.SESSION.MEMBER,b);this.action=c;
this.member=__dataMembers([JSON.parse(JSON.stringify(d||{}))])[0];this.members=__dataMembers(JSON.parse(JSON.stringify(a||[])))
};VMEETING.MemberEvent.prototype=Object.create(VMEETING.Event.prototype);var flvManagers={};var releaseManager=function(b){var a=b.port;
if(a){a=String(a);if(flvManagers[a]){flvManagers[a]=flvManagers[a].filter(function(d){return d.id!==b.id
})}else{flvManagers[a]=[]}}};var allocManager=function(c,g,h){var b=String(Math.floor(Math.random()*1000000000));
var f={id:b,application:h,allocTime:new Date().getTime()};var d=c&&c.ServerPorts||[];for(var j in d){var e=String(d[j]);
var a=flvManagers[e]&&flvManagers[e].length||0;if(!a){f.port=e;flvManagers[e]=[f];break}else{if(a<6){f.port=e;
flvManagers[e].push(f);break}}}f.streamType=g;if(c&&c.PushedStreamTypes&&!c.PushedStreamTypes.includes(f.streamType)){f.streamType=c.PushedStreamTypes[0];
f.switchStreamType=true}f.serverAddr=c.ServerAddr;f.rtmpPort=c.RtmpPort;f.streamId=c.StreamId;if(f.port){f.url=f.serverAddr+":"+f.port+"/live?port="+f.rtmpPort+"&app="+f.streamType+"&stream="+f.streamId
}else{releaseManager(f);throw new Error("port not enought")}return f};var releaseManagerByApp=function(b){for(var a in flvManagers){a=String(a);
if(flvManagers[a]){flvManagers[a]=flvManagers[a].filter(function(d){return d.application!==b})}else{flvManagers[a]=[]
}}};var getflvManagers=function(){return flvManagers};FlvPlayer=function(a){this.id=a.id||Math.floor(Math.random()*1000000000);
this.videoElement=document.getElementById(a.videoDomId);this.started=false;this.application=a.application;
this.lastDecodedFrames=0;this.noDecodedFrameTimes=0;this.restartTimes=0};FlvPlayer.prototype._syncNowTime=function(c){if(this.player&&this.player.buffered&&this.player.buffered.length){var a=this.player.buffered.end(0);
var b=this.player.currentTime;if(c!=="interval"||(c==="interval"&&Math.abs(a-b)>0.5)){this.player.currentTime=a-0.001
}}else{setTimeout(function(){this._syncNowTime(c)}.bind(this),1000)}};FlvPlayer.prototype._internalStop=function(){this.stop();
this.stopped=false};FlvPlayer.prototype.start=function(a){tsk_utils_log_info("player",this.id,"start");
return new Promise(function(d,c){if(!this.player&&window.flvjs.isSupported()){if(!this.videoElement){c({code:-1,message:"player has no <video> element "})
}try{this.manager=allocManager(this.urlInfo,this.streamType,this.application);this.player=window.flvjs.createPlayer({type:"flv",isLive:true,url:this.manager.url,hasAudio:false,hasVideo:true,},{isLive:true,enableStashBuffer:false,statisticsInfoReportInterval:500,lazyLoad:false,});
this.manager.player={id:this.id};this.player.attachMediaElement(this.videoElement)}catch(b){c({code:-1,message:b});
this.stop();this.onError&&this.onError(b);return}this.started=true;this.stopped=false;this.startTimer=setTimeout(function(){c({code:408,message:"timeout"})
}.bind(this),a||10*1000);this.player.on(window.flvjs.Events.ERROR,function(f,e,g){tsk_utils_log_warn("player error. type:",f,"detail:",e,"info:",g)
}.bind(this));this.player.on(window.flvjs.Events.MEDIA_INFO,function(){this.onMediaInfo&&this.onMediaInfo(this.mediaInfo)
}.bind(this));this.player.on(window.flvjs.Events.METADATA_ARRIVED,function(e){this.mediaInfo=e;this.onMediaArrived&&this.onMediaArrived(e)
}.bind(this));this.player.on(window.flvjs.Events.STATISTICS_INFO,function(e){if(this.started){this.onMediaStatistics&&this.onMediaStatistics(e);
if(this.lastDecodedFrames<e.decodedFrames&&e.decodedFrames!==0){if(this.lastDecodedFrames===0){this._syncNowTime("first-time");
clearTimeout(this.startTimer);d()}if(this.isFrozen){this.isFrozen=false;this.onUnfrozen&&this.onUnfrozen();
this.noDecodedFrameTimes=0}this.restartTimes=0;this.lastDecodedFrames=e.decodedFrames}else{this.noDecodedFrameTimes++;
if(this.noDecodedFrameTimes>6){if(!this.isFrozen){this.isFrozen=true;this.onFrozen&&this.onFrozen()}if(this.noDecodedFrameTimes>20){tsk_utils_log_info("player",this.id,"decoded frame was frozen, re-start");
this._internalStop();if(this.noDecodedFrameTimes<30){this.start();this.restartTimes+=1;if(this.restartTimes>=3){this.restartTimes=0;
this.onRestartMany&&this.onRestartMany()}}else{this.onError&&this.onError({code:-1,message:"decode frame error, so many times"});
this.stop()}}else{this._syncNowTime("frame-frozen")}}}}}.bind(this));this.player.load();this.player.play();
this.syncNowTimeInterval=setInterval(function(){this._syncNowTime("interval")}.bind(this),1*1000)}else{c({code:-1,message:"not supported flv or player was started"})
}}.bind(this))};FlvPlayer.prototype.stop=function(){return new Promise(function(c,b){try{releaseManager(this.manager)
}catch(a){}if(this.player){tsk_utils_log_info("player",this.id,"stop");clearInterval(this.syncNowTimeInterval);
clearTimeout(this.startTimer);this.lastDecodedFrames=0;this.noDecodedFrameTimes=0;this.isFrozen=false;
this.mediaInfo=null;this.player.pause();this.player.unload();this.player.detachMediaElement();this.player.destroy()
}this.player=null;this.stopped=true;this.started=false;c()}.bind(this))};FlvPlayer.prototype.restart=function(){return new Promise(function(b,a){this.stop().then(function(){this.start().then(b).error(a)
}.bind(this))}.bind(this))};"use strict";function RecordRTC(r,j){if(!r){throw"First parameter is required."
}j=j||{type:"video"};j=new RecordRTCConfiguration(r,j);var q=this;function h(s){if(!j.disableLogs){console.log("RecordRTC version: ",q.version)
}if(!!s){j=new RecordRTCConfiguration(r,s)}if(!j.disableLogs){console.log("started recording "+j.type+" stream.")
}if(c){c.clearRecordedData();c.record();l("recording");if(q.recordingDuration){m()}return q}b(function(){if(q.recordingDuration){m()
}});return q}function b(s){if(s){j.initCallback=function(){s();s=j.initCallback=null}}var t=new GetRecorderType(r,j);
c=new t(r,j);c.record();l("recording");if(!j.disableLogs){console.log("Initialized recorderType:",c.constructor.name,"for output-type:",j.type)
}}function n(t){t=t||function(){};if(!c){d();return}if(q.state==="paused"){q.resumeRecording();setTimeout(function(){n(t)
},1);return}if(q.state!=="recording"&&!j.disableLogs){console.warn('Recording state should be: "recording", however current state is: ',q.state)
}if(!j.disableLogs){console.log("Stopped recording "+j.type+" stream.")}if(j.type!=="gif"){c.stop(s)}else{c.stop();
s()}l("stopped");function s(w){if(!c){if(typeof t.call==="function"){t.call(q,"")}else{t("")}return}Object.keys(c).forEach(function(y){if(typeof c[y]==="function"){return
}q[y]=c[y]});var u=c.blob;if(!u){if(w){c.blob=u=w}else{throw"Recording failed."}}if(u&&!j.disableLogs){console.log(u.type,"->",bytesToSize(u.size))
}if(t){var v;try{v=URL.createObjectURL(u)}catch(x){}if(typeof t.call==="function"){t.call(q,v)}else{t(v)
}}if(!j.autoWriteToDisk){return}f(function(y){var z={};z[j.type+"Blob"]=y;DiskStorage.Store(z)})}}function o(){if(!c){d();
return}if(q.state!=="recording"){if(!j.disableLogs){console.warn("Unable to pause the recording. Recording state: ",q.state)
}return}l("paused");c.pause();if(!j.disableLogs){console.log("Paused recording.")}}function g(){if(!c){d();
return}if(q.state!=="paused"){if(!j.disableLogs){console.warn("Unable to resume the recording. Recording state: ",q.state)
}return}l("recording");c.resume();if(!j.disableLogs){console.log("Resumed recording.")}}function p(s){postMessage(new FileReaderSync().readAsDataURL(s))
}function f(x,v){if(!x){throw"Pass a callback function over getDataURL."}var u=v?v.blob:(c||{}).blob;
if(!u){if(!j.disableLogs){console.warn("Blob encoder did not finish its job yet.")}setTimeout(function(){f(x,v)
},1000);return}if(typeof Worker!=="undefined"&&!navigator.mozGetUserMedia){var t=w(p);t.onmessage=function(y){x(y.data)
};t.postMessage(u)}else{var s=new FileReader();s.readAsDataURL(u);s.onload=function(y){x(y.target.result)
}}function w(y){try{var z=URL.createObjectURL(new Blob([y.toString(),"this.onmessage = function (eee) {"+y.name+"(eee.data);}"],{type:"application/javascript"}));
var B=new Worker(z);URL.revokeObjectURL(z);return B}catch(A){}}}function m(s){s=s||0;if(q.state==="paused"){setTimeout(function(){m(s)
},1000);return}if(q.state==="stopped"){return}if(s>=q.recordingDuration){n(q.onRecordingStopped);return
}s+=1000;setTimeout(function(){m(s)},1000)}function l(s){if(!q){return}q.state=s;if(typeof q.onStateChanged.call==="function"){q.onStateChanged.call(q,s)
}else{q.onStateChanged(s)}}var e='It seems that recorder is destroyed or "startRecording" is not invoked for '+j.type+" recorder.";
function d(){if(j.disableLogs===true){return}console.warn(e)}var c;var k={startRecording:h,stopRecording:n,pauseRecording:o,resumeRecording:g,initRecorder:b,setRecordingDuration:function(s,t){if(typeof s==="undefined"){throw"recordingDuration is required."
}if(typeof s!=="number"){throw"recordingDuration must be a number."}q.recordingDuration=s;q.onRecordingStopped=t||function(){};
return{onRecordingStopped:function(u){q.onRecordingStopped=u}}},clearRecordedData:function(){if(!c){d();
return}c.clearRecordedData();if(!j.disableLogs){console.log("Cleared old recorded data.")}},getBlob:function(){if(!c){d();
return}return c.blob},getDataURL:f,toURL:function(){if(!c){d();return}return URL.createObjectURL(c.blob)
},getInternalRecorder:function(){return c},save:function(s){if(!c){d();return}invokeSaveAsDialog(c.blob,s)
},getFromDisk:function(s){if(!c){d();return}RecordRTC.getFromDisk(j.type,s)},setAdvertisementArray:function(u){j.advertisement=[];
var t=u.length;for(var s=0;s<t;s++){j.advertisement.push({duration:s,image:u[s]})}},blob:null,bufferSize:0,sampleRate:0,buffer:null,reset:function(){if(q.state==="recording"&&!j.disableLogs){console.warn("Stop an active recorder.")
}if(c&&typeof c.clearRecordedData==="function"){c.clearRecordedData()}c=null;l("inactive");q.blob=null
},onStateChanged:function(s){if(!j.disableLogs){console.log("Recorder state changed:",s)}},state:"inactive",getState:function(){return q.state
},destroy:function(){var s=j.disableLogs;j={disableLogs:true};q.reset();l("destroyed");k=q=null;if(Storage.AudioContextConstructor){Storage.AudioContextConstructor.close();
Storage.AudioContextConstructor=null}j.disableLogs=s;if(!j.disableLogs){console.log("RecordRTC is destroyed.")
}},version:"5.6.2"};if(!this){q=k;return k}for(var a in k){this[a]=k[a]}q=this;return k}RecordRTC.version="5.6.2";
if(typeof module!=="undefined"){module.exports=RecordRTC}if(typeof define==="function"&&define.amd){define("RecordRTC",[],function(){return RecordRTC
})}RecordRTC.getFromDisk=function(a,b){if(!b){throw"callback is mandatory."}console.log("Getting recorded "+(a==="all"?"blobs":a+" blob ")+" from disk!");
DiskStorage.Fetch(function(d,c){if(a!=="all"&&c===a+"Blob"&&b){b(d)}if(a==="all"&&b){b(d,c.replace("Blob",""))
}})};RecordRTC.writeToDisk=function(a){console.log("Writing recorded blob(s) to disk!");a=a||{};if(a.audio&&a.video&&a.gif){a.audio.getDataURL(function(b){a.video.getDataURL(function(c){a.gif.getDataURL(function(d){DiskStorage.Store({audioBlob:b,videoBlob:c,gifBlob:d})
})})})}else{if(a.audio&&a.video){a.audio.getDataURL(function(b){a.video.getDataURL(function(c){DiskStorage.Store({audioBlob:b,videoBlob:c})
})})}else{if(a.audio&&a.gif){a.audio.getDataURL(function(b){a.gif.getDataURL(function(c){DiskStorage.Store({audioBlob:b,gifBlob:c})
})})}else{if(a.video&&a.gif){a.video.getDataURL(function(b){a.gif.getDataURL(function(c){DiskStorage.Store({videoBlob:b,gifBlob:c})
})})}else{if(a.audio){a.audio.getDataURL(function(b){DiskStorage.Store({audioBlob:b})})}else{if(a.video){a.video.getDataURL(function(b){DiskStorage.Store({videoBlob:b})
})}else{if(a.gif){a.gif.getDataURL(function(b){DiskStorage.Store({gifBlob:b})})}}}}}}}};function RecordRTCConfiguration(a,b){if(!b.recorderType&&!b.type){if(!!b.audio&&!!b.video){b.type="video"
}else{if(!!b.audio&&!b.video){b.type="audio"}}}if(b.recorderType&&!b.type){if(b.recorderType===WhammyRecorder||b.recorderType===CanvasRecorder||(typeof WebAssemblyRecorder!=="undefined"&&b.recorderType===WebAssemblyRecorder)){b.type="video"
}else{if(b.recorderType===GifRecorder){b.type="gif"}else{if(b.recorderType===StereoAudioRecorder){b.type="audio"
}else{if(b.recorderType===MediaStreamRecorder){if(getTracks(a,"audio").length&&getTracks(a,"video").length){b.type="video"
}else{if(!getTracks(a,"audio").length&&getTracks(a,"video").length){b.type="video"}else{if(getTracks(a,"audio").length&&!getTracks(a,"video").length){b.type="audio"
}else{}}}}}}}}if(typeof MediaStreamRecorder!=="undefined"&&typeof MediaRecorder!=="undefined"&&"requestData" in MediaRecorder.prototype){if(!b.mimeType){b.mimeType="video/webm"
}if(!b.type){b.type=b.mimeType.split("/")[0]}if(!b.bitsPerSecond){}}if(!b.type){if(b.mimeType){b.type=b.mimeType.split("/")[0]
}if(!b.type){b.type="audio"}}return b}function GetRecorderType(b,c){var a;if(isChrome||isEdge||isOpera){a=StereoAudioRecorder
}if(typeof MediaRecorder!=="undefined"&&"requestData" in MediaRecorder.prototype&&!isChrome){a=MediaStreamRecorder
}if(c.type==="video"&&(isChrome||isOpera)){a=WhammyRecorder;if(typeof WebAssemblyRecorder!=="undefined"&&typeof ReadableStream!=="undefined"){a=WebAssemblyRecorder
}}if(c.type==="gif"){a=GifRecorder}if(c.type==="canvas"){a=CanvasRecorder}if(isMediaRecorderCompatible()&&a!==CanvasRecorder&&a!==GifRecorder&&typeof MediaRecorder!=="undefined"&&"requestData" in MediaRecorder.prototype){if(getTracks(b,"video").length||getTracks(b,"audio").length){if(c.type==="audio"){if(typeof MediaRecorder.isTypeSupported==="function"&&MediaRecorder.isTypeSupported("audio/webm")){a=MediaStreamRecorder
}}else{if(typeof MediaRecorder.isTypeSupported==="function"&&MediaRecorder.isTypeSupported("video/webm")){a=MediaStreamRecorder
}}}}if(b instanceof Array&&b.length){a=MultiStreamRecorder}if(c.recorderType){a=c.recorderType}if(!c.disableLogs&&!!a&&!!a.name){console.log("Using recorderType:",a.name||a.constructor.name)
}if(!a&&isSafari){a=MediaStreamRecorder}return a}function MRecordRTC(a){this.addStream=function(b){if(b){a=b
}};this.mediaType={audio:true,video:true};this.startRecording=function(){var b=this.mediaType;var h;var f=this.mimeType||{audio:null,video:null,gif:null};
if(typeof b.audio!=="function"&&isMediaRecorderCompatible()&&!getTracks(a,"audio").length){b.audio=false
}if(typeof b.video!=="function"&&isMediaRecorderCompatible()&&!getTracks(a,"video").length){b.video=false
}if(typeof b.gif!=="function"&&isMediaRecorderCompatible()&&!getTracks(a,"video").length){b.gif=false
}if(!b.audio&&!b.video&&!b.gif){throw"MediaStream must have either audio or video tracks."}if(!!b.audio){h=null;
if(typeof b.audio==="function"){h=b.audio}this.audioRecorder=new RecordRTC(a,{type:"audio",bufferSize:this.bufferSize,sampleRate:this.sampleRate,numberOfAudioChannels:this.numberOfAudioChannels||2,disableLogs:this.disableLogs,recorderType:h,mimeType:f.audio,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp});
if(!b.video){this.audioRecorder.startRecording()}}if(!!b.video){h=null;if(typeof b.video==="function"){h=b.video
}var g=a;if(isMediaRecorderCompatible()&&!!b.audio&&typeof b.audio==="function"){var e=getTracks(a,"video")[0];
if(isFirefox){g=new MediaStream();g.addTrack(e);if(h&&h===WhammyRecorder){h=MediaStreamRecorder}}else{g=new MediaStream();
g.addTrack(e)}}this.videoRecorder=new RecordRTC(g,{type:"video",video:this.video,canvas:this.canvas,frameInterval:this.frameInterval||10,disableLogs:this.disableLogs,recorderType:h,mimeType:f.video,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp,workerPath:this.workerPath,webAssemblyPath:this.webAssemblyPath,frameRate:this.frameRate,bitrate:this.bitrate});
if(!b.audio){this.videoRecorder.startRecording()}}if(!!b.audio&&!!b.video){var c=this;var d=isMediaRecorderCompatible()===true;
if(b.audio instanceof StereoAudioRecorder&&!!b.video){d=false}else{if(b.audio!==true&&b.video!==true&&b.audio!==b.video){d=false
}}if(d===true){c.audioRecorder=null;c.videoRecorder.startRecording()}else{c.videoRecorder.initRecorder(function(){c.audioRecorder.initRecorder(function(){c.videoRecorder.startRecording();
c.audioRecorder.startRecording()})})}}if(!!b.gif){h=null;if(typeof b.gif==="function"){h=b.gif}this.gifRecorder=new RecordRTC(a,{type:"gif",frameRate:this.frameRate||200,quality:this.quality||10,disableLogs:this.disableLogs,recorderType:h,mimeType:f.gif});
this.gifRecorder.startRecording()}};this.stopRecording=function(b){b=b||function(){};if(this.audioRecorder){this.audioRecorder.stopRecording(function(c){b(c,"audio")
})}if(this.videoRecorder){this.videoRecorder.stopRecording(function(c){b(c,"video")})}if(this.gifRecorder){this.gifRecorder.stopRecording(function(c){b(c,"gif")
})}};this.pauseRecording=function(){if(this.audioRecorder){this.audioRecorder.pauseRecording()}if(this.videoRecorder){this.videoRecorder.pauseRecording()
}if(this.gifRecorder){this.gifRecorder.pauseRecording()}};this.resumeRecording=function(){if(this.audioRecorder){this.audioRecorder.resumeRecording()
}if(this.videoRecorder){this.videoRecorder.resumeRecording()}if(this.gifRecorder){this.gifRecorder.resumeRecording()
}};this.getBlob=function(c){var b={};if(this.audioRecorder){b.audio=this.audioRecorder.getBlob()}if(this.videoRecorder){b.video=this.videoRecorder.getBlob()
}if(this.gifRecorder){b.gif=this.gifRecorder.getBlob()}if(c){c(b)}return b};this.destroy=function(){if(this.audioRecorder){this.audioRecorder.destroy();
this.audioRecorder=null}if(this.videoRecorder){this.videoRecorder.destroy();this.videoRecorder=null}if(this.gifRecorder){this.gifRecorder.destroy();
this.gifRecorder=null}};this.getDataURL=function(d){this.getBlob(function(e){if(e.audio&&e.video){b(e.audio,function(f){b(e.video,function(g){d({audio:f,video:g})
})})}else{if(e.audio){b(e.audio,function(f){d({audio:f})})}else{if(e.video){b(e.video,function(f){d({video:f})
})}}}});function b(h,j){if(typeof Worker!=="undefined"){var g=c(function f(k){postMessage(new FileReaderSync().readAsDataURL(k))
});g.onmessage=function(k){j(k.data)};g.postMessage(h)}else{var e=new FileReader();e.readAsDataURL(h);
e.onload=function(k){j(k.target.result)}}}function c(e){var f=URL.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"}));
var h=new Worker(f);var g;if(typeof URL!=="undefined"){g=URL}else{if(typeof webkitURL!=="undefined"){g=webkitURL
}else{throw"Neither URL nor webkitURL detected."}}g.revokeObjectURL(f);return h}};this.writeToDisk=function(){RecordRTC.writeToDisk({audio:this.audioRecorder,video:this.videoRecorder,gif:this.gifRecorder})
};this.save=function(b){b=b||{audio:true,video:true,gif:true};if(!!b.audio&&this.audioRecorder){this.audioRecorder.save(typeof b.audio==="string"?b.audio:"")
}if(!!b.video&&this.videoRecorder){this.videoRecorder.save(typeof b.video==="string"?b.video:"")}if(!!b.gif&&this.gifRecorder){this.gifRecorder.save(typeof b.gif==="string"?b.gif:"")
}}}MRecordRTC.getFromDisk=RecordRTC.getFromDisk;MRecordRTC.writeToDisk=RecordRTC.writeToDisk;if(typeof RecordRTC!=="undefined"){RecordRTC.MRecordRTC=MRecordRTC
}var browserFakeUserAgent="Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45";
(function(a){if(!a){return}if(typeof window!=="undefined"){return}if(typeof global==="undefined"){return
}global.navigator={userAgent:browserFakeUserAgent,getUserMedia:function(){}};if(!global.console){global.console={}
}if(typeof global.console.log==="undefined"||typeof global.console.error==="undefined"){global.console.error=global.console.log=global.console.log||function(){console.log(arguments)
}}if(typeof document==="undefined"){a.document={documentElement:{appendChild:function(){return""}}};document.createElement=document.captureStream=document.mozCaptureStream=function(){var b={getContext:function(){return b
},play:function(){},pause:function(){},drawImage:function(){},toDataURL:function(){return""},style:{}};
return b};a.HTMLVideoElement=function(){}}if(typeof location==="undefined"){a.location={protocol:"file:",href:"",hash:""}
}if(typeof screen==="undefined"){a.screen={width:0,height:0}}if(typeof URL==="undefined"){a.URL={createObjectURL:function(){return""
},revokeObjectURL:function(){return""}}}a.window=global})(typeof global!=="undefined"?global:null);var requestAnimationFrame=window.requestAnimationFrame;
if(typeof requestAnimationFrame==="undefined"){if(typeof webkitRequestAnimationFrame!=="undefined"){requestAnimationFrame=webkitRequestAnimationFrame
}else{if(typeof mozRequestAnimationFrame!=="undefined"){requestAnimationFrame=mozRequestAnimationFrame
}else{if(typeof msRequestAnimationFrame!=="undefined"){requestAnimationFrame=msRequestAnimationFrame}else{if(typeof requestAnimationFrame==="undefined"){var lastTime=0;
requestAnimationFrame=function(e,b){var a=new Date().getTime();var c=Math.max(0,16-(a-lastTime));var d=setTimeout(function(){e(a+c)
},c);lastTime=a+c;return d}}}}}}var cancelAnimationFrame=window.cancelAnimationFrame;if(typeof cancelAnimationFrame==="undefined"){if(typeof webkitCancelAnimationFrame!=="undefined"){cancelAnimationFrame=webkitCancelAnimationFrame
}else{if(typeof mozCancelAnimationFrame!=="undefined"){cancelAnimationFrame=mozCancelAnimationFrame}else{if(typeof msCancelAnimationFrame!=="undefined"){cancelAnimationFrame=msCancelAnimationFrame
}else{if(typeof cancelAnimationFrame==="undefined"){cancelAnimationFrame=function(a){clearTimeout(a)}
}}}}}var AudioContext=window.AudioContext;if(typeof AudioContext==="undefined"){if(typeof webkitAudioContext!=="undefined"){AudioContext=webkitAudioContext
}if(typeof mozAudioContext!=="undefined"){AudioContext=mozAudioContext}}var URL=window.URL;if(typeof URL==="undefined"&&typeof webkitURL!=="undefined"){URL=webkitURL
}if(typeof navigator!=="undefined"&&typeof navigator.getUserMedia==="undefined"){if(typeof navigator.webkitGetUserMedia!=="undefined"){navigator.getUserMedia=navigator.webkitGetUserMedia
}if(typeof navigator.mozGetUserMedia!=="undefined"){navigator.getUserMedia=navigator.mozGetUserMedia}}var isEdge=navigator.userAgent.indexOf("Edge")!==-1&&(!!navigator.msSaveBlob||!!navigator.msSaveOrOpenBlob);
var isOpera=!!window.opera||navigator.userAgent.indexOf("OPR/")!==-1;var isFirefox=navigator.userAgent.toLowerCase().indexOf("firefox")>-1&&("netscape" in window)&&/ rv:/.test(navigator.userAgent);
var isChrome=(!isOpera&&!isEdge&&!!navigator.webkitGetUserMedia)||isElectron()||navigator.userAgent.toLowerCase().indexOf("chrome/")!==-1;
var isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);if(isSafari&&!isChrome&&navigator.userAgent.indexOf("CriOS")!==-1){isSafari=false;
isChrome=true}var MediaStream=window.MediaStream;if(typeof MediaStream==="undefined"&&typeof webkitMediaStream!=="undefined"){MediaStream=webkitMediaStream
}if(typeof MediaStream!=="undefined"){if(typeof MediaStream.prototype.stop==="undefined"){MediaStream.prototype.stop=function(){this.getTracks().forEach(function(a){a.stop()
})}}}function bytesToSize(a){var b=1000;var d=["Bytes","KB","MB","GB","TB"];if(a===0){return"0 Bytes"
}var c=parseInt(Math.floor(Math.log(a)/Math.log(b)),10);return(a/Math.pow(b,c)).toPrecision(3)+" "+d[c]
}function invokeSaveAsDialog(a,h){if(!a){throw"Blob object is required."}if(!a.type){try{a.type="video/webm"
}catch(c){}}var d=(a.type||"video/webm").split("/")[1];if(d.indexOf(";")!==-1){d=d.split(";")[0]}if(h&&h.indexOf(".")!==-1){var g=h.split(".");
h=g[0];d=g[1]}var b=(h||(Math.round(Math.random()*9999999999)+888888888))+"."+d;if(typeof navigator.msSaveOrOpenBlob!=="undefined"){return navigator.msSaveOrOpenBlob(a,b)
}else{if(typeof navigator.msSaveBlob!=="undefined"){return navigator.msSaveBlob(a,b)}}var f=document.createElement("a");
f.href=URL.createObjectURL(a);f.download=b;f.style="display:none;opacity:0;color:transparent;";(document.body||document.documentElement).appendChild(f);
if(typeof f.click==="function"){f.click()}else{f.target="_blank";f.dispatchEvent(new MouseEvent("click",{view:window,bubbles:true,cancelable:true}))
}URL.revokeObjectURL(f.href)}function isElectron(){if(typeof window!=="undefined"&&typeof window.process==="object"&&window.process.type==="renderer"){return true
}if(typeof process!=="undefined"&&typeof process.versions==="object"&&!!process.versions.electron){return true
}if(typeof navigator==="object"&&typeof navigator.userAgent==="string"&&navigator.userAgent.indexOf("Electron")>=0){return true
}return false}function getTracks(b,a){if(!b||!b.getTracks){return[]}return b.getTracks().filter(function(c){return c.kind===(a||"audio")
})}function setSrcObject(b,a){if("srcObject" in a){a.srcObject=b}else{if("mozSrcObject" in a){a.mozSrcObject=b
}else{a.srcObject=b}}}function getSeekableBlob(c,f){if(typeof EBML==="undefined"){throw new Error("Please link: https://www.webrtc-experiment.com/EBML.js")
}var a=new EBML.Reader();var e=new EBML.Decoder();var d=EBML.tools;var b=new FileReader();b.onload=function(l){var j=e.decode(this.result);
j.forEach(function(m){a.read(m)});a.stop();var k=d.makeMetadataSeekable(a.metadatas,a.duration,a.cues);
var h=this.result.slice(a.metadataSize);var g=new Blob([k,h],{type:"video/webm"});f(g)};b.readAsArrayBuffer(c)
}if(typeof RecordRTC!=="undefined"){RecordRTC.invokeSaveAsDialog=invokeSaveAsDialog;RecordRTC.getTracks=getTracks;
RecordRTC.getSeekableBlob=getSeekableBlob;RecordRTC.bytesToSize=bytesToSize;RecordRTC.isElectron=isElectron
}var Storage={};if(typeof AudioContext!=="undefined"){Storage.AudioContext=AudioContext}else{if(typeof webkitAudioContext!=="undefined"){Storage.AudioContext=webkitAudioContext
}}if(typeof RecordRTC!=="undefined"){RecordRTC.Storage=Storage}function isMediaRecorderCompatible(){if(isFirefox||isSafari||isEdge){return true
}var f=navigator.appVersion;var e=navigator.userAgent;var g=""+parseFloat(navigator.appVersion);var b=parseInt(navigator.appVersion,10);
var a,d,c;if(isChrome||isOpera){d=e.indexOf("Chrome");g=e.substring(d+7)}if((c=g.indexOf(";"))!==-1){g=g.substring(0,c)
}if((c=g.indexOf(" "))!==-1){g=g.substring(0,c)}b=parseInt(""+g,10);if(isNaN(b)){g=""+parseFloat(navigator.appVersion);
b=parseInt(navigator.appVersion,10)}return b>=49}function MediaStreamRecorder(m,d){var l=this;if(typeof m==="undefined"){throw'First argument "MediaStream" is required.'
}if(typeof MediaRecorder==="undefined"){throw"Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder."
}d=d||{mimeType:"video/webm"};if(d.type==="audio"){if(getTracks(m,"video").length&&getTracks(m,"audio").length){var k;
if(!!navigator.mozGetUserMedia){k=new MediaStream();k.addTrack(getTracks(m,"audio")[0])}else{k=new MediaStream(getTracks(m,"audio"))
}m=k}if(!d.mimeType||d.mimeType.toString().toLowerCase().indexOf("audio")===-1){d.mimeType=isChrome?"audio/webm":"audio/ogg"
}if(d.mimeType&&d.mimeType.toString().toLowerCase()!=="audio/ogg"&&!!navigator.mozGetUserMedia){d.mimeType="audio/ogg"
}}var f=[];this.getArrayOfBlobs=function(){return f};this.record=function(){l.blob=null;l.clearRecordedData();
l.timestamps=[];c=[];f=[];var n=d;if(!d.disableLogs){console.log("Passing following config over MediaRecorder API.",n)
}if(b){b=null}if(isChrome&&!isMediaRecorderCompatible()){n="video/vp8"}if(typeof MediaRecorder.isTypeSupported==="function"&&n.mimeType){if(!MediaRecorder.isTypeSupported(n.mimeType)){if(!d.disableLogs){console.warn("MediaRecorder API seems unable to record mimeType:",n.mimeType)
}n.mimeType=d.type==="audio"?"audio/webm":"video/webm"}}try{b=new MediaRecorder(m,n);d.mimeType=n.mimeType
}catch(o){b=new MediaRecorder(m)}if(n.mimeType&&!MediaRecorder.isTypeSupported&&"canRecordMimeType" in b&&b.canRecordMimeType(n.mimeType)===false){if(!d.disableLogs){console.warn("MediaRecorder API seems unable to record mimeType:",n.mimeType)
}}b.ondataavailable=function(q){if(q.data){c.push("ondataavailable: "+bytesToSize(q.data.size))}if(typeof d.timeSlice==="number"){if(q.data&&q.data.size){f.push(q.data);
e();if(typeof d.ondataavailable==="function"){var p=d.getNativeBlob?q.data:new Blob([q.data],{type:g(n)});
d.ondataavailable(p)}}return}if(!q.data||!q.data.size||q.data.size<100||l.blob){if(l.recordingCallback){l.recordingCallback(new Blob([],{type:g(n)}));
l.recordingCallback=null}return}l.blob=d.getNativeBlob?q.data:new Blob([q.data],{type:g(n)});if(l.recordingCallback){l.recordingCallback(l.blob);
l.recordingCallback=null}};b.onstart=function(){c.push("started")};b.onpause=function(){c.push("paused")
};b.onresume=function(){c.push("resumed")};b.onstop=function(){c.push("stopped")};b.onerror=function(p){if(!p){return
}if(!p.name){p.name="UnknownError"}c.push("error: "+p);if(!d.disableLogs){if(p.name.toString().toLowerCase().indexOf("invalidstate")!==-1){console.error("The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.",p)
}else{if(p.name.toString().toLowerCase().indexOf("notsupported")!==-1){console.error("MIME type (",n.mimeType,") is not supported.",p)
}else{if(p.name.toString().toLowerCase().indexOf("security")!==-1){console.error("MediaRecorder security error",p)
}else{if(p.name==="OutOfMemory"){console.error("The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.",p)
}else{if(p.name==="IllegalStreamModification"){console.error("A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.",p)
}else{if(p.name==="OtherRecordingError"){console.error("Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.",p)
}else{if(p.name==="GenericError"){console.error("The UA cannot provide the codec or recording option that has been requested.",p)
}else{console.error("MediaRecorder Error",p)}}}}}}}}(function(q){if(!l.manuallyStopped&&b&&b.state==="inactive"){delete d.timeslice;
b.start(10*60*1000);return}setTimeout(q,1000)})();if(b.state!=="inactive"&&b.state!=="stopped"){b.stop()
}};if(typeof d.timeSlice==="number"){e();b.start(d.timeSlice)}else{b.start(3600000)}if(d.initCallback){d.initCallback()
}};this.timestamps=[];function e(){l.timestamps.push(new Date().getTime());if(typeof d.onTimeStamp==="function"){d.onTimeStamp(l.timestamps[l.timestamps.length-1],l.timestamps)
}}function g(n){if(b&&b.mimeType){return b.mimeType}return n.mimeType||"video/webm"}this.stop=function(n){n=n||function(){};
l.manuallyStopped=true;if(!b){return}this.recordingCallback=n;if(b.state==="recording"){b.stop()}if(typeof d.timeSlice==="number"){setTimeout(function(){l.blob=new Blob(f,{type:g(d)});
l.recordingCallback(l.blob)},100)}};this.pause=function(){if(!b){return}if(b.state==="recording"){b.pause()
}};this.resume=function(){if(!b){return}if(b.state==="paused"){b.resume()}};this.clearRecordedData=function(){if(b&&b.state==="recording"){l.stop(a)
}a()};function a(){f=[];b=null;l.timestamps=[]}var b;this.getInternalRecorder=function(){return b};function h(){if("active" in m){if(!m.active){return false
}}else{if("ended" in m){if(m.ended){return false}}}return true}this.blob=null;this.getState=function(){if(!b){return"inactive"
}return b.state||"inactive"};var c=[];this.getAllStates=function(){return c};if(typeof d.checkForInactiveTracks==="undefined"){d.checkForInactiveTracks=false
}var l=this;(function j(){if(!b||d.checkForInactiveTracks===false){return}if(h()===false){if(!d.disableLogs){console.log("MediaStream seems stopped.")
}l.stop();return}setTimeout(j,1000)})();this.name="MediaStreamRecorder";this.toString=function(){return this.name
}}if(typeof RecordRTC!=="undefined"){RecordRTC.MediaStreamRecorder=MediaStreamRecorder}function StereoAudioRecorder(t,y){if(!getTracks(t,"audio").length){throw"Your stream has no audio tracks."
}y=y||{};var q=this;var o=[];var v=[];var a=false;var r=0;var x;var w=2;var b=y.desiredSampRate;if(y.leftChannel===true){w=1
}if(y.numberOfAudioChannels===1){w=1}if(!w||w<1){w=2}if(!y.disableLogs){console.log("StereoAudioRecorder is set to record number of channels: "+w)
}if(typeof y.checkForInactiveTracks==="undefined"){y.checkForInactiveTracks=true}function d(){if(y.checkForInactiveTracks===false){return true
}if("active" in t){if(!t.active){return false}}else{if("ended" in t){if(t.ended){return false}}}return true
}this.record=function(){if(d()===false){throw"Please make sure MediaStream is active."}j();m=l=false;
a=true;if(typeof y.timeSlice!=="undefined"){h()}};function z(C,D){function B(Y,S){var X=Y.numberOfAudioChannels;
var P=Y.leftBuffers.slice(0);var K=Y.rightBuffers.slice(0);var H=Y.sampleRate;var T=Y.internalInterleavedLength;
var E=Y.desiredSampRate;if(X===2){P=J(P,T);K=J(K,T);if(E){P=N(P,E,H);K=N(K,E,H)}}if(X===1){P=J(P,T);if(E){P=N(P,E,H)
}}if(E){H=E}function N(ac,af,ab){var ag=Math.round(ac.length*(af/ab));var ak=[];var aj=Number((ac.length-1)/(ag-1));
ak[0]=ac[0];for(var ad=1;ad<ag-1;ad++){var ae=ad*aj;var ai=Number(Math.floor(ae)).toFixed();var aa=Number(Math.ceil(ae)).toFixed();
var ah=ae-ai;ak[ad]=G(ac[ai],ac[aa],ah)}ak[ag-1]=ac[ac.length-1];return ak}function G(ab,ac,aa){return ab+(ac-ab)*aa
}function J(ae,af){var aa=new Float64Array(af);var ag=0;var ac=ae.length;for(var ad=0;ad<ac;ad++){var ab=ae[ad];
aa.set(ab,ag);ag+=ab.length}return aa}function R(ac,ab){var ae=ac.length+ab.length;var aa=new Float64Array(ae);
var af=0;for(var ad=0;ad<ae;){aa[ad++]=ac[af];aa[ad++]=ab[af];af++}return aa}function I(aa,ae,ac){var ab=ac.length;
for(var ad=0;ad<ab;ad++){aa.setUint8(ae+ad,ac.charCodeAt(ad))}}var Q;if(X===2){Q=R(P,K)}if(X===1){Q=P
}var F=Q.length;var L=44+F*2;var U=new ArrayBuffer(L);var O=new DataView(U);I(O,0,"RIFF");O.setUint32(4,36+F*2,true);
I(O,8,"WAVE");I(O,12,"fmt ");O.setUint32(16,16,true);O.setUint16(20,1,true);O.setUint16(22,X,true);O.setUint32(24,H,true);
O.setUint32(28,H*X*2,true);O.setUint16(32,X*2,true);O.setUint16(34,16,true);I(O,36,"data");O.setUint32(40,F*2,true);
var Z=F;var M=44;var W=1;for(var V=0;V<Z;V++){O.setInt16(M,Q[V]*(32767*W),true);M+=2}if(S){return S({buffer:U,view:O})
}postMessage({buffer:U,view:O})}if(C.noWorker){B(C,function(E){D(E.buffer,E.view)});return}var A=c(B);
A.onmessage=function(E){D(E.data.buffer,E.data.view);URL.revokeObjectURL(A.workerURL);A.terminate()};
A.postMessage(C)}function c(A){var B=URL.createObjectURL(new Blob([A.toString(),";this.onmessage = function (eee) {"+A.name+"(eee.data);}"],{type:"application/javascript"}));
var C=new Worker(B);C.workerURL=B;return C}this.stop=function(A){A=A||function(){};a=false;z({desiredSampRate:b,sampleRate:g,numberOfAudioChannels:w,internalInterleavedLength:r,leftBuffers:o,rightBuffers:w===1?[]:v,noWorker:y.noWorker},function(C,B){q.blob=new Blob([B],{type:"audio/wav"});
q.buffer=new ArrayBuffer(B.buffer.byteLength);q.view=B;q.sampleRate=b||g;q.bufferSize=k;q.length=r;m=false;
if(A){A(q.blob)}})};if(typeof RecordRTC.Storage==="undefined"){RecordRTC.Storage={AudioContextConstructor:null,AudioContext:window.AudioContext||window.webkitAudioContext}
}if(!RecordRTC.Storage.AudioContextConstructor||RecordRTC.Storage.AudioContextConstructor.state==="closed"){RecordRTC.Storage.AudioContextConstructor=new RecordRTC.Storage.AudioContext()
}var e=RecordRTC.Storage.AudioContextConstructor;var n=e.createMediaStreamSource(t);var s=[0,256,512,1024,2048,4096,8192,16384];
var k=typeof y.bufferSize==="undefined"?4096:y.bufferSize;if(s.indexOf(k)===-1){if(!y.disableLogs){console.log("Legal values for buffer-size are "+JSON.stringify(s,null,"\t"))
}}if(e.createJavaScriptNode){x=e.createJavaScriptNode(k,w,w)}else{if(e.createScriptProcessor){x=e.createScriptProcessor(k,w,w)
}else{throw"WebAudio API has no support on this browser."}}n.connect(x);if(!y.bufferSize){k=x.bufferSize
}var g=typeof y.sampleRate!=="undefined"?y.sampleRate:e.sampleRate||44100;if(g<22050||g>96000){if(!y.disableLogs){console.log("sample-rate must be under range 22050 and 96000.")
}}if(!y.disableLogs){if(y.desiredSampRate){console.log("Desired sample-rate: "+y.desiredSampRate)}}var l=false;
this.pause=function(){l=true};this.resume=function(){if(d()===false){throw"Please make sure MediaStream is active."
}if(!a){if(!y.disableLogs){console.log("Seems recording has been restarted.")}this.record();return}l=false
};this.clearRecordedData=function(){y.checkForInactiveTracks=false;if(a){this.stop(f)}f()};function j(){o=[];
v=[];r=0;m=false;a=false;l=false;e=null;q.leftchannel=o;q.rightchannel=v;q.numberOfAudioChannels=w;q.desiredSampRate=b;
q.sampleRate=g;q.recordingLength=r;u={left:[],right:[],recordingLength:0}}function f(){if(x){x.onaudioprocess=null;
x.disconnect();x=null}if(n){n.disconnect();n=null}j()}this.name="StereoAudioRecorder";this.toString=function(){return this.name
};var m=false;function p(E){if(l){return}if(d()===false){if(!y.disableLogs){console.log("MediaStream seems stopped.")
}x.disconnect();a=false}if(!a){if(n){n.disconnect();n=null}return}if(!m){m=true;if(y.onAudioProcessStarted){y.onAudioProcessStarted()
}if(y.initCallback){y.initCallback()}}var D=E.inputBuffer.getChannelData(0);var C=new Float32Array(D);
o.push(C);if(w===2){var B=E.inputBuffer.getChannelData(1);var A=new Float32Array(B);v.push(A)}r+=k;q.recordingLength=r;
if(typeof y.timeSlice!=="undefined"){u.recordingLength+=k;u.left.push(C);if(w===2){u.right.push(A)}}}x.onaudioprocess=p;
if(e.createMediaStreamDestination){x.connect(e.createMediaStreamDestination())}else{x.connect(e.destination)
}this.leftchannel=o;this.rightchannel=v;this.numberOfAudioChannels=w;this.desiredSampRate=b;this.sampleRate=g;
q.recordingLength=r;var u={left:[],right:[],recordingLength:0};function h(){if(!a||typeof y.ondataavailable!=="function"||typeof y.timeSlice==="undefined"){return
}if(u.left.length){z({desiredSampRate:b,sampleRate:g,numberOfAudioChannels:w,internalInterleavedLength:u.recordingLength,leftBuffers:u.left,rightBuffers:w===1?[]:u.right},function(B,A){var C=new Blob([A],{type:"audio/wav"});
y.ondataavailable(C);setTimeout(h,y.timeSlice)});u={left:[],right:[],recordingLength:0}}else{setTimeout(h,y.timeSlice)
}}}if(typeof RecordRTC!=="undefined"){RecordRTC.StereoAudioRecorder=StereoAudioRecorder}function CanvasRecorder(f,e){if(typeof html2canvas==="undefined"){throw"Please link: https://www.webrtc-experiment.com/screenshot.js"
}e=e||{};if(!e.frameInterval){e.frameInterval=10}var j=false;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(q){if(q in document.createElement("canvas")){j=true
}});var d=(!!window.webkitRTCPeerConnection||!!window.webkitGetUserMedia)&&!!window.chrome;var o=50;var m=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
if(d&&m&&m[2]){o=parseInt(m[2],10)}if(d&&o<52){j=false}if(e.useWhammyRecorder){j=false}var g,p;if(j){if(!e.disableLogs){console.log("Your browser supports both MediRecorder API and canvas.captureStream!")
}if(f instanceof HTMLCanvasElement){g=f}else{if(f instanceof CanvasRenderingContext2D){g=f.canvas}else{throw"Please pass either HTMLCanvasElement or CanvasRenderingContext2D."
}}}else{if(!!navigator.mozGetUserMedia){if(!e.disableLogs){console.error("Canvas recording is NOT supported in Firefox.")
}}}var b;this.record=function(){b=true;if(j&&!e.useWhammyRecorder){var q;if("captureStream" in g){q=g.captureStream(25)
}else{if("mozCaptureStream" in g){q=g.mozCaptureStream(25)}else{if("webkitCaptureStream" in g){q=g.webkitCaptureStream(25)
}}}try{var r=new MediaStream();r.addTrack(getTracks(q,"video")[0]);q=r}catch(s){}if(!q){throw"captureStream API are NOT available."
}p=new MediaStreamRecorder(q,{mimeType:e.mimeType||"video/webm"});p.record()}else{k.frames=[];a=new Date().getTime();
n()}if(e.initCallback){e.initCallback()}};this.getWebPImages=function(r){if(f.nodeName.toLowerCase()!=="canvas"){r();
return}var q=k.frames.length;k.frames.forEach(function(v,s){var u=q-s;if(!e.disableLogs){console.log(u+"/"+q+" frames remaining")
}if(e.onEncodingCallback){e.onEncodingCallback(u,q)}var t=v.image.toDataURL("image/webp",1);k.frames[s].image=t
});if(!e.disableLogs){console.log("Generating WebM")}r()};this.stop=function(r){b=false;var q=this;if(j&&p){p.stop(r);
return}this.getWebPImages(function(){k.compile(function(s){if(!e.disableLogs){console.log("Recording finished!")
}q.blob=s;if(q.blob.forEach){q.blob=new Blob([],{type:"video/webm"})}if(r){r(q.blob)}k.frames=[]})})};
var h=false;this.pause=function(){h=true;if(p instanceof MediaStreamRecorder){p.pause();return}};this.resume=function(){h=false;
if(p instanceof MediaStreamRecorder){p.resume();return}if(!b){this.record()}};this.clearRecordedData=function(){if(b){this.stop(c)
}c()};function c(){k.frames=[];b=false;h=false}this.name="CanvasRecorder";this.toString=function(){return this.name
};function l(){var r=document.createElement("canvas");var q=r.getContext("2d");r.width=f.width;r.height=f.height;
q.drawImage(f,0,0);return r}function n(){if(h){a=new Date().getTime();return setTimeout(n,500)}if(f.nodeName.toLowerCase()==="canvas"){var q=new Date().getTime()-a;
a=new Date().getTime();k.frames.push({image:l(),duration:q});if(b){setTimeout(n,e.frameInterval)}return
}html2canvas(f,{grabMouse:typeof e.showMousePointer==="undefined"||e.showMousePointer,onrendered:function(r){var s=new Date().getTime()-a;
if(!s){return setTimeout(n,e.frameInterval)}a=new Date().getTime();k.frames.push({image:r.toDataURL("image/webp",1),duration:s});
if(b){setTimeout(n,e.frameInterval)}}})}var a=new Date().getTime();var k=new Whammy.Video(100)}if(typeof RecordRTC!=="undefined"){RecordRTC.CanvasRecorder=CanvasRecorder
}function WhammyRecorder(m,f){f=f||{};if(!f.frameInterval){f.frameInterval=10}if(!f.disableLogs){console.log("Using frames-interval:",f.frameInterval)
}this.record=function(){if(!f.width){f.width=320}if(!f.height){f.height=240}if(!f.video){f.video={width:f.width,height:f.height}
}if(!f.canvas){f.canvas={width:f.width,height:f.height}}e.width=f.canvas.width||320;e.height=f.canvas.height||240;
c=e.getContext("2d");if(f.video&&f.video instanceof HTMLVideoElement){b=f.video.cloneNode();if(f.initCallback){f.initCallback()
}}else{b=document.createElement("video");setSrcObject(m,b);b.onloadedmetadata=function(){if(f.initCallback){f.initCallback()
}};b.width=f.video.width;b.height=f.video.height}b.muted=true;b.play();a=new Date().getTime();l=new Whammy.Video();
if(!f.disableLogs){console.log("canvas resolutions",e.width,"*",e.height);console.log("video width/height",b.width||e.width,"*",b.height||e.height)
}h(f.frameInterval)};function h(o){o=typeof o!=="undefined"?o:10;var p=new Date().getTime()-a;if(!p){return setTimeout(h,o,o)
}if(j){a=new Date().getTime();return setTimeout(h,100)}a=new Date().getTime();if(b.paused){b.play()}c.drawImage(b,0,0,e.width,e.height);
l.frames.push({duration:p,image:e.toDataURL("image/webp")});if(!k){setTimeout(h,o,o)}}function n(s){var q=-1,r=s.length;
(function p(){q++;if(q===r){s.callback();return}setTimeout(function(){s.functionToLoop(p,q)},1)})()}function g(o,p,A,r,B){var v=document.createElement("canvas");
v.width=e.width;v.height=e.height;var q=v.getContext("2d");var s=[];var u=p===-1;var w=(p&&p>0&&p<=o.length)?p:o.length;
var t={r:0,g:0,b:0};var C=Math.sqrt(Math.pow(255,2)+Math.pow(255,2)+Math.pow(255,2));var z=A&&A>=0&&A<=1?A:0;
var x=r&&r>=0&&r<=1?r:0;var y=false;n({length:w,functionToLoop:function(D,G){var F,J,E;var I=function(){if(!y&&E-F<=E*x){}else{if(u){y=true
}s.push(o[G])}D()};if(!y){var H=new Image();H.onload=function(){q.drawImage(H,0,0,e.width,e.height);var N=q.getImageData(0,0,e.width,e.height);
F=0;J=N.data.length;E=N.data.length/4;for(var L=0;L<J;L+=4){var K={r:N.data[L],g:N.data[L+1],b:N.data[L+2]};
var M=Math.sqrt(Math.pow(K.r-t.r,2)+Math.pow(K.g-t.g,2)+Math.pow(K.b-t.b,2));if(M<=C*z){F++}}I()};H.src=o[G].image
}else{I()}},callback:function(){s=s.concat(o.slice(w));if(s.length<=0){s.push(o[o.length-1])}B(s)}})}var k=false;
this.stop=function(p){p=p||function(){};k=true;var o=this;setTimeout(function(){g(l.frames,-1,null,null,function(q){l.frames=q;
if(f.advertisement&&f.advertisement.length){l.frames=f.advertisement.concat(l.frames)}l.compile(function(r){o.blob=r;
if(o.blob.forEach){o.blob=new Blob([],{type:"video/webm"})}if(p){p(o.blob)}})})},10)};var j=false;this.pause=function(){j=true
};this.resume=function(){j=false;if(k){this.record()}};this.clearRecordedData=function(){if(!k){this.stop(d)
}d()};function d(){l.frames=[];k=true;j=false}this.name="WhammyRecorder";this.toString=function(){return this.name
};var e=document.createElement("canvas");var c=e.getContext("2d");var b;var a;var l}if(typeof RecordRTC!=="undefined"){RecordRTC.WhammyRecorder=WhammyRecorder
}var Whammy=(function(){function b(d){this.frames=[];this.duration=d||1;this.quality=0.8}b.prototype.add=function(e,d){if("canvas" in e){e=e.canvas
}if("toDataURL" in e){e=e.toDataURL("image/webp",this.quality)}if(!(/^data:image\/webp;base64,/ig).test(e)){throw"Input must be formatted properly as a base64 encoded DataURI of type image/webp"
}this.frames.push({image:e,duration:d||this.duration})};function c(d){var e=URL.createObjectURL(new Blob([d.toString(),"this.onmessage = function (eee) {"+d.name+"(eee.data);}"],{type:"application/javascript"}));
var f=new Worker(e);URL.revokeObjectURL(e);return f}function a(p){function k(z){var w=q(z);if(!w){return[]
}var t=30000;var x=[{id:440786851,data:[{data:1,id:17030},{data:1,id:17143},{data:4,id:17138},{data:8,id:17139},{data:"webm",id:17026},{data:2,id:17031},{data:2,id:17029}]},{id:408125543,data:[{id:357149030,data:[{data:1000000,id:2807729},{data:"whammy",id:19840},{data:"whammy",id:22337},{data:d(w.duration),id:17545}]},{id:374648427,data:[{id:174,data:[{data:1,id:215},{data:1,id:29637},{data:0,id:156},{data:"und",id:2274716},{data:"V_VP8",id:134},{data:"VP8",id:2459272},{data:1,id:131},{id:224,data:[{data:w.width,id:176},{data:w.height,id:186}]}]}]}]}];
var A=0;var C=0;while(A<z.length){var y=[];var v=0;do{y.push(z[A]);v+=z[A].duration;A++}while(A<z.length&&v<t);
var u=0;var B={id:524531317,data:j(C,u,y)};x[1].data.push(B);C+=v}return r(x)}function j(u,v,t){return[{data:u,id:231}].concat(t.map(function(w){var x=s({discardable:0,frame:w.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(v)});
v+=w.duration;return{data:x,id:163}}))}function q(x){if(!x[0]){postMessage({error:"Something went wrong. Maybe WebP format is not supported in the current browser."});
return}var v=x[0].width,t=x[0].height,w=x[0].duration;for(var u=1;u<x.length;u++){w+=x[u].duration}return{duration:w,width:v,height:t}
}function f(t){var u=[];while(t>0){u.push(t&255);t=t>>8}return new Uint8Array(u.reverse())}function n(t){return new Uint8Array(t.split("").map(function(u){return u.charCodeAt(0)
}))}function h(v){var u=[];var w=(v.length%8)?(new Array(1+8-(v.length%8))).join("0"):"";v=w+v;for(var t=0;
t<v.length;t+=8){u.push(parseInt(v.substr(t,8),2))}return new Uint8Array(u)}function r(A){var v=[];for(var x=0;
x<A.length;x++){var w=A[x].data;if(typeof w==="object"){w=r(w)}if(typeof w==="number"){w=h(w.toString(2))
}if(typeof w==="string"){w=n(w)}var y=w.size||w.byteLength||w.length;var z=Math.ceil(Math.ceil(Math.log(y)/Math.log(2))/8);
var t=y.toString(2);var u=(new Array((z*7+7+1)-t.length)).join("0")+t;var B=(new Array(z)).join("0")+"1"+u;
v.push(f(A[x].id));v.push(h(B));v.push(w)}return new Blob(v,{type:"video/webm"})}function m(v){var u="";
var w=(v.length%8)?(new Array(1+8-(v.length%8))).join("0"):"";v=w+v;for(var t=0;t<v.length;t+=8){u+=String.fromCharCode(parseInt(v.substr(t,8),2))
}return u}function s(v){var t=0;if(v.keyframe){t|=128}if(v.invisible){t|=8}if(v.lacing){t|=(v.lacing<<1)
}if(v.discardable){t|=1}if(v.trackNum>127){throw"TrackNumber > 127 not supported"}var u=[v.trackNum|128,v.timecode>>8,v.timecode&255,t].map(function(w){return String.fromCharCode(w)
}).join("")+v.frame;return u}function g(A){var u=A.RIFF[0].WEBP[0];var y=u.indexOf("\x9d\x01\x2a");for(var w=0,z=[];
w<4;w++){z[w]=u.charCodeAt(y+3+w)}var x,t,v;v=(z[1]<<8)|z[0];x=v&16383;v=(z[3]<<8)|z[2];t=v&16383;return{width:x,height:t,data:u,riff:A}
}function o(t,u){return parseInt(t.substr(u+4,4).split("").map(function(v){var w=v.charCodeAt(0).toString(2);
return(new Array(8-w.length+1)).join("0")+w}).join(""),2)}function l(u){var w=0;var y={};while(w<u.length){var x=u.substr(w,4);
var t=o(u,w);var v=u.substr(w+4+4,t);w+=4+4+t;y[x]=y[x]||[];if(x==="RIFF"||x==="LIST"){y[x].push(l(v))
}else{y[x].push(v)}}return y}function d(t){return[].slice.call(new Uint8Array((new Float64Array([t])).buffer),0).map(function(u){return String.fromCharCode(u)
}).reverse().join("")}var e=new k(p.map(function(u){var t=g(l(atob(u.image.slice(23))));t.duration=u.duration;
return t}));postMessage(e)}b.prototype.compile=function(e){var d=c(a);d.onmessage=function(f){if(f.data.error){console.error(f.data.error);
return}e(f.data)};d.postMessage(this.frames)};return{Video:b}})();if(typeof RecordRTC!=="undefined"){RecordRTC.Whammy=Whammy
}var DiskStorage={init:function(){var b=this;if(typeof indexedDB==="undefined"||typeof indexedDB.open==="undefined"){console.error("IndexedDB API are not available in this browser.");
return}var c=1;var f=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),a;var e=indexedDB.open(f,c);
function d(h){h.createObjectStore(b.dataStoreName)}function g(){var j=a.transaction([b.dataStoreName],"readwrite");
if(b.videoBlob){j.objectStore(b.dataStoreName).put(b.videoBlob,"videoBlob")}if(b.gifBlob){j.objectStore(b.dataStoreName).put(b.gifBlob,"gifBlob")
}if(b.audioBlob){j.objectStore(b.dataStoreName).put(b.audioBlob,"audioBlob")}function h(k){j.objectStore(b.dataStoreName).get(k).onsuccess=function(l){if(b.callback){b.callback(l.target.result,k)
}}}h("audioBlob");h("videoBlob");h("gifBlob")}e.onerror=b.onError;e.onsuccess=function(){a=e.result;a.onerror=b.onError;
if(a.setVersion){if(a.version!==c){var h=a.setVersion(c);h.onsuccess=function(){d(a);g()}}else{g()}}else{g()
}};e.onupgradeneeded=function(h){d(h.target.result)}},Fetch:function(a){this.callback=a;this.init();return this
},Store:function(a){this.audioBlob=a.audioBlob;this.videoBlob=a.videoBlob;this.gifBlob=a.gifBlob;this.init();
return this},onError:function(a){console.error(JSON.stringify(a,null,"\t"))},dataStoreName:"recordRTC",dbName:null};
if(typeof RecordRTC!=="undefined"){RecordRTC.DiskStorage=DiskStorage}function GifRecorder(q,f){if(typeof GIFEncoder==="undefined"){var l=document.createElement("script");
l.src="https://www.webrtc-experiment.com/gif-recorder.js";(document.body||document.documentElement).appendChild(l)
}f=f||{};var k=q instanceof CanvasRenderingContext2D||q instanceof HTMLCanvasElement;this.record=function(){if(typeof GIFEncoder==="undefined"){setTimeout(o.record,1000);
return}if(!j){setTimeout(o.record,1000);return}if(!k){if(!f.width){f.width=a.offsetWidth||320}if(!f.height){f.height=a.offsetHeight||240
}if(!f.video){f.video={width:f.width,height:f.height}}if(!f.canvas){f.canvas={width:f.width,height:f.height}
}e.width=f.canvas.width||320;e.height=f.canvas.height||240;a.width=f.video.width||320;a.height=f.video.height||240
}m=new GIFEncoder();m.setRepeat(0);m.setDelay(f.frameRate||200);m.setQuality(f.quality||10);m.start();
if(typeof f.onGifRecordingStarted==="function"){f.onGifRecordingStarted()}d=Date.now();function r(s){if(o.clearedRecordedData===true){return
}if(g){return setTimeout(function(){r(s)},100)}n=requestAnimationFrame(r);if(typeof p===undefined){p=s
}if(s-p<90){return}if(!k&&a.paused){a.play()}if(!k){c.drawImage(a,0,0,e.width,e.height)}if(f.onGifPreview){f.onGifPreview(e.toDataURL("image/png"))
}m.addFrame(c);p=s}n=requestAnimationFrame(r);if(f.initCallback){f.initCallback()}};this.stop=function(r){r=r||function(){};
if(n){cancelAnimationFrame(n)}h=Date.now();this.blob=new Blob([new Uint8Array(m.stream().bin)],{type:"image/gif"});
r(this.blob);m.stream().bin=[]};var g=false;this.pause=function(){g=true};this.resume=function(){g=false
};this.clearRecordedData=function(){o.clearedRecordedData=true;b()};function b(){if(m){m.stream().bin=[]
}}this.name="GifRecorder";this.toString=function(){return this.name};var e=document.createElement("canvas");
var c=e.getContext("2d");if(k){if(q instanceof CanvasRenderingContext2D){c=q;e=c.canvas}else{if(q instanceof HTMLCanvasElement){c=q.getContext("2d");
e=q}}}var j=true;if(!k){var a=document.createElement("video");a.muted=true;a.autoplay=true;a.playsInline=true;
j=false;a.onloadedmetadata=function(){j=true};setSrcObject(q,a);a.play()}var n=null;var d,h,p;var m;var o=this
}if(typeof RecordRTC!=="undefined"){RecordRTC.GifRecorder=GifRecorder}function MultiStreamsMixer(l,p){var s="Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45";
(function(v){if(typeof RecordRTC!=="undefined"){return}if(!v){return}if(typeof window!=="undefined"){return
}if(typeof global==="undefined"){return}global.navigator={userAgent:s,getUserMedia:function(){}};if(!global.console){global.console={}
}if(typeof global.console.log==="undefined"||typeof global.console.error==="undefined"){global.console.error=global.console.log=global.console.log||function(){console.log(arguments)
}}if(typeof document==="undefined"){v.document={documentElement:{appendChild:function(){return""}}};document.createElement=document.captureStream=document.mozCaptureStream=function(){var w={getContext:function(){return w
},play:function(){},pause:function(){},drawImage:function(){},toDataURL:function(){return""},style:{}};
return w};v.HTMLVideoElement=function(){}}if(typeof location==="undefined"){v.location={protocol:"file:",href:"",hash:""}
}if(typeof screen==="undefined"){v.screen={width:0,height:0}}if(typeof g==="undefined"){v.URL={createObjectURL:function(){return""
},revokeObjectURL:function(){return""}}}v.window=global})(typeof global!=="undefined"?global:null);p=p||"multi-streams-mixer";
var k=[];var q=false;var c=document.createElement("canvas");var a=c.getContext("2d");c.style.opacity=0;
c.style.position="absolute";c.style.zIndex=-1;c.style.top="-1000em";c.style.left="-1000em";c.className=p;
(document.body||document.documentElement).appendChild(c);this.disableLogs=false;this.frameInterval=10;
this.width=360;this.height=240;this.useGainNode=true;var m=this;var f=window.AudioContext;if(typeof f==="undefined"){if(typeof webkitAudioContext!=="undefined"){f=webkitAudioContext
}if(typeof mozAudioContext!=="undefined"){f=mozAudioContext}}var g=window.URL;if(typeof g==="undefined"&&typeof webkitURL!=="undefined"){g=webkitURL
}if(typeof navigator!=="undefined"&&typeof navigator.getUserMedia==="undefined"){if(typeof navigator.webkitGetUserMedia!=="undefined"){navigator.getUserMedia=navigator.webkitGetUserMedia
}if(typeof navigator.mozGetUserMedia!=="undefined"){navigator.getUserMedia=navigator.mozGetUserMedia}}var h=window.MediaStream;
if(typeof h==="undefined"&&typeof webkitMediaStream!=="undefined"){h=webkitMediaStream}if(typeof h!=="undefined"){if(typeof h.prototype.stop==="undefined"){h.prototype.stop=function(){this.getTracks().forEach(function(v){v.stop()
})}}}var t={};if(typeof f!=="undefined"){t.AudioContext=f}else{if(typeof webkitAudioContext!=="undefined"){t.AudioContext=webkitAudioContext
}}function u(w,v){if("srcObject" in v){v.srcObject=w}else{if("mozSrcObject" in v){v.mozSrcObject=w}else{v.srcObject=w
}}}this.startDrawingFrames=function(){r()};function r(){if(q){return}var w=k.length;var y=false;var x=[];
k.forEach(function(z){if(!z.stream){z.stream={}}if(z.stream.fullcanvas){y=z}else{x.push(z)}});if(y){c.width=y.stream.width;
c.height=y.stream.height}else{if(x.length){c.width=w>1?x[0].width*2:x[0].width;var v=1;if(w===3||w===4){v=2
}if(w===5||w===6){v=3}if(w===7||w===8){v=4}if(w===9||w===10){v=5}c.height=x[0].height*v}else{c.width=m.width||360;
c.height=m.height||240}}if(y&&y instanceof HTMLVideoElement){o(y)}x.forEach(function(A,z){o(A,z)});setTimeout(r,m.frameInterval)
}function o(B,z){if(q){return}var w=0;var C=0;var A=B.width;var v=B.height;if(z===1){w=B.width}if(z===2){C=B.height
}if(z===3){w=B.width;C=B.height}if(z===4){C=B.height*2}if(z===5){w=B.width;C=B.height*2}if(z===6){C=B.height*3
}if(z===7){w=B.width;C=B.height*3}if(typeof B.stream.left!=="undefined"){w=B.stream.left}if(typeof B.stream.top!=="undefined"){C=B.stream.top
}if(typeof B.stream.width!=="undefined"){A=B.stream.width}if(typeof B.stream.height!=="undefined"){v=B.stream.height
}a.drawImage(B,w,C,A,v);if(typeof B.stream.onRender==="function"){B.stream.onRender(a,w,C,A,v,z)}}function j(){q=false;
var w=b();var x=n();if(x){x.getTracks().filter(function(y){return y.kind==="audio"}).forEach(function(y){w.addTrack(y)
})}var v;l.forEach(function(y){if(y.fullcanvas){v=true}});return w}function b(){e();var w;if("captureStream" in c){w=c.captureStream()
}else{if("mozCaptureStream" in c){w=c.mozCaptureStream()}else{if(!m.disableLogs){console.error("Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features")
}}}var v=new h();w.getTracks().filter(function(x){return x.kind==="video"}).forEach(function(x){v.addTrack(x)
});c.stream=v;return v}function n(){if(!t.AudioContextConstructor){t.AudioContextConstructor=new t.AudioContext()
}m.audioContext=t.AudioContextConstructor;m.audioSources=[];if(m.useGainNode===true){m.gainNode=m.audioContext.createGain();
m.gainNode.connect(m.audioContext.destination);m.gainNode.gain.value=0}var v=0;l.forEach(function(x){if(!x.getTracks().filter(function(y){return y.kind==="audio"
}).length){return}v++;var w=m.audioContext.createMediaStreamSource(x);if(m.useGainNode===true){w.connect(m.gainNode)
}m.audioSources.push(w)});if(!v){return}m.audioDestination=m.audioContext.createMediaStreamDestination();
m.audioSources.forEach(function(w){w.connect(m.audioDestination)});return m.audioDestination.stream}function d(w){var v=document.createElement("video");
u(w,v);v.className=p;v.muted=true;v.volume=0;v.width=w.width||m.width||360;v.height=w.height||m.height||240;
v.play();return v}this.appendStreams=function(v){if(!v){throw"First parameter is required."}if(!(v instanceof Array)){v=[v]
}v.forEach(function(y){var z=new h();if(y.getTracks().filter(function(A){return A.kind==="video"}).length){var x=d(y);
x.stream=y;k.push(x);z.addTrack(y.getTracks().filter(function(A){return A.kind==="video"})[0])}if(y.getTracks().filter(function(A){return A.kind==="audio"
}).length){var w=m.audioContext.createMediaStreamSource(y);m.audioDestination=m.audioContext.createMediaStreamDestination();
w.connect(m.audioDestination);z.addTrack(m.audioDestination.stream.getTracks().filter(function(A){return A.kind==="audio"
})[0])}l.push(z)})};this.releaseStreams=function(){k=[];q=true;if(m.gainNode){m.gainNode.disconnect();
m.gainNode=null}if(m.audioSources.length){m.audioSources.forEach(function(v){v.disconnect()});m.audioSources=[]
}if(m.audioDestination){m.audioDestination.disconnect();m.audioDestination=null}if(m.audioContext){m.audioContext.close()
}m.audioContext=null;a.clearRect(0,0,c.width,c.height);if(c.stream){c.stream.stop();c.stream=null}};this.resetVideoStreams=function(v){if(v&&!(v instanceof Array)){v=[v]
}e(v)};function e(v){k=[];v=v||l;v.forEach(function(x){if(!x.getTracks().filter(function(y){return y.kind==="video"
}).length){return}var w=d(x);w.stream=x;k.push(w)})}this.name="MultiStreamsMixer";this.toString=function(){return this.name
};this.getMixedStream=j}if(typeof RecordRTC==="undefined"){if(typeof module!=="undefined"){module.exports=MultiStreamsMixer
}if(typeof define==="function"&&define.amd){define("MultiStreamsMixer",[],function(){return MultiStreamsMixer
})}}function MultiStreamRecorder(a,d){a=a||[];var c=this;var b;var e;d=d||{elementClass:"multi-streams-mixer",mimeType:"video/webm",video:{width:360,height:240}};
if(!d.frameInterval){d.frameInterval=10}if(!d.video){d.video={}}if(!d.video.width){d.video.width=360}if(!d.video.height){d.video.height=240
}this.record=function(){b=new MultiStreamsMixer(a,d.elementClass||"multi-streams-mixer");if(f().length){b.frameInterval=d.frameInterval||10;
b.width=d.video.width||360;b.height=d.video.height||240;b.startDrawingFrames()}if(d.previewStream&&typeof d.previewStream==="function"){d.previewStream(b.getMixedStream())
}e=new MediaStreamRecorder(b.getMixedStream(),d);e.record()};function f(){var g=[];a.forEach(function(h){getTracks(h,"video").forEach(function(j){g.push(j)
})});return g}this.stop=function(g){if(!e){return}e.stop(function(h){c.blob=h;g(h);c.clearRecordedData()
})};this.pause=function(){if(e){e.pause()}};this.resume=function(){if(e){e.resume()}};this.clearRecordedData=function(){if(e){e.clearRecordedData();
e=null}if(b){b.releaseStreams();b=null}};this.addStreams=function(g){if(!g){throw"First parameter is required."
}if(!(g instanceof Array)){g=[g]}a.concat(g);if(!e||!b){return}b.appendStreams(g);if(d.previewStream&&typeof d.previewStream==="function"){d.previewStream(b.getMixedStream())
}};this.resetVideoStreams=function(g){if(!b){return}if(g&&!(g instanceof Array)){g=[g]}b.resetVideoStreams(g)
};this.getMixer=function(){return b};this.name="MultiStreamRecorder";this.toString=function(){return this.name
}}if(typeof RecordRTC!=="undefined"){RecordRTC.MultiStreamRecorder=MultiStreamRecorder}function RecordRTCPromisesHandler(b,c){if(!this){throw'Use "new RecordRTCPromisesHandler()"'
}if(typeof b==="undefined"){throw'First argument "MediaStream" is required.'}var a=this;a.recordRTC=new RecordRTC(b,c);
this.startRecording=function(){return new Promise(function(f,d){try{a.recordRTC.startRecording();f()}catch(g){d(g)
}})};this.stopRecording=function(){return new Promise(function(f,d){try{a.recordRTC.stopRecording(function(e){a.blob=a.recordRTC.getBlob();
if(!a.blob||!a.blob.size){d("Empty blob.",a.blob);return}f(e)})}catch(g){d(g)}})};this.pauseRecording=function(){return new Promise(function(f,d){try{a.recordRTC.pauseRecording();
f()}catch(g){d(g)}})};this.resumeRecording=function(){return new Promise(function(f,d){try{a.recordRTC.resumeRecording();
f()}catch(g){d(g)}})};this.getDataURL=function(d){return new Promise(function(g,f){try{a.recordRTC.getDataURL(function(e){g(e)
})}catch(h){f(h)}})};this.getBlob=function(){return new Promise(function(f,d){try{f(a.recordRTC.getBlob())
}catch(g){d(g)}})};this.getInternalRecorder=function(){return new Promise(function(f,d){try{f(a.recordRTC.getInternalRecorder())
}catch(g){d(g)}})};this.reset=function(){return new Promise(function(f,d){try{f(a.recordRTC.reset())}catch(g){d(g)
}})};this.destroy=function(){return new Promise(function(f,d){try{f(a.recordRTC.destroy())}catch(g){d(g)
}})};this.getState=function(){return new Promise(function(f,d){try{f(a.recordRTC.getState())}catch(g){d(g)
}})};this.blob=null;this.version="5.6.2"}if(typeof RecordRTC!=="undefined"){RecordRTC.RecordRTCPromisesHandler=RecordRTCPromisesHandler
}function WebAssemblyRecorder(j,c){if(typeof ReadableStream==="undefined"||typeof WritableStream==="undefined"){console.error("Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js")
}c=c||{};c.width=c.width||640;c.height=c.height||480;c.frameRate=c.frameRate||30;c.bitrate=c.bitrate||1200;
c.realtime=c.realtime||true;function g(l,m){return URL.createObjectURL(new Blob([l],{type:m||""}))}var e;
function k(){return new ReadableStream({start:function(l){var o=document.createElement("canvas");var m=document.createElement("video");
var n=true;m.srcObject=j;m.muted=true;m.height=c.height;m.width=c.width;m.volume=0;m.onplaying=function(){o.width=c.width;
o.height=c.height;var q=o.getContext("2d");var p=1000/c.frameRate;var s=setInterval(function r(){if(e){clearInterval(s);
l.close()}if(n){n=false;if(c.onVideoProcessStarted){c.onVideoProcessStarted()}}q.drawImage(m,0,0);if(l._controlledReadableStream.state!=="closed"){try{l.enqueue(q.getImageData(0,0,c.width,c.height))
}catch(t){}}},p)};m.play()}})}var d;function b(n,l){if(!c.workerPath&&!l){e=false;fetch("https://unpkg.com/webm-wasm@latest/dist/webm-worker.js").then(function(o){o.arrayBuffer().then(function(p){b(n,p)
})});return}if(!c.workerPath&&l instanceof ArrayBuffer){var m=new Blob([l],{type:"text/javascript"});
c.workerPath=URL.createObjectURL(m)}if(!c.workerPath){console.error("workerPath parameter is missing.")
}d=new Worker(c.workerPath);d.postMessage(c.webAssemblyPath||"https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm");
d.addEventListener("message",function(o){if(o.data==="READY"){d.postMessage({width:c.width,height:c.height,bitrate:c.bitrate||1200,timebaseDen:c.frameRate||30,realtime:c.realtime});
k().pipeTo(new WritableStream({write:function(p){if(e){console.error("Got image, but recorder is finished!");
return}d.postMessage(p.data.buffer,[p.data.buffer])}}))}else{if(!!o.data){if(!f){a.push(o.data)}}}})}this.record=function(){a=[];
f=false;this.blob=null;b(j);if(typeof c.initCallback==="function"){c.initCallback()}};var f;this.pause=function(){f=true
};this.resume=function(){f=false};function h(l){if(!d){if(l){l()}return}d.addEventListener("message",function(m){if(m.data===null){d.terminate();
d=null;if(l){l()}}});d.postMessage(null)}var a=[];this.stop=function(m){e=true;var l=this;h(function(){l.blob=new Blob(a,{type:"video/webm"});
m(l.blob)})};this.name="WebAssemblyRecorder";this.toString=function(){return this.name};this.clearRecordedData=function(){a=[];
f=false;this.blob=null};this.blob=null}if(typeof RecordRTC!=="undefined"){RecordRTC.WebAssemblyRecorder=WebAssemblyRecorder
}var PUBLIC_KEY="-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7qY7rpCBeN18I0GwuHQZFGVxOB+nw6AwokOhU5+t5EHwWEfN6hWmvA7NRNFH85ncSS3+Z25gk878It3cD1dI0Wgh1iR1nJt0n38JQAGArsGR3a4VkhRVEuz5ygjq6DzWxJcGpqiQsmCr41oFiCbwZjhn+NyyjahuJzzUdlGmukwIDAQAB-----END PUBLIC KEY-----";
SOS={};SOS.EVENT={SDK_STATE:"sos::event::state",SDK_STATE_CODE:VMEETING.EVENT.SDK,DEVICE_STATE:"sos::event::device::state",DEVICE_STATE_CODE:{ONLINE:"deviceOnline",OFFLINE:"deviceOffline",},DEVICE_ALARM_STATE:"sos::event::device::alarm",DEVICE_ALARM_STATE_CODE:{RING:"operatorAlarmReport",ACCEPT:"operatorAlarmAccept",NOANSWER:"operatorAlarmNoAnswer",FINISHED:"operatorAlarmFinished",},};
SOS.RECORDING_STATE={FAILED:"failed",INPROGRESS:"inprogress",FINISHED:"finished",};SOS.ERROR_CODE=VMEETING.CODE;
SOS.VIDEO={STREAM_TYPE:{MAIN:"big",SECONDARY:"little",}};SOS.PERMISSION={getAudio:function(a){return new Promise(function(c,b){var d=Object.assign({audio:true},a);
navigator.getUserMedia(d,function(g){var e=g.getTracks();for(var f in e){if(e[f].stop){e[f].stop()}}if(g.stop){g.stop()
}c()},function(e){b(e)})})},getVideo:function(a){return new Promise(function(c,b){var d=Object.assign({video:true},a);
navigator.getUserMedia(d,function(g){var e=g.getTracks();for(var f in e){e[f].stop()}c()},function(e){b(e)
})})},};var g_gpioList;SOS.SDK=function(a){this.config=a||{};this.ver=VMEETING.version;this.listeners={};
this.videoMonitor={};this.internalListener={};this.transferSessions={};this.monitorSessions={};this.videoRecordTasks={};
if(this.config.ServerAddr){this.config.Host={ws:"wss://"+this.config.ServerAddr,cs:"https://"+this.config.ServerAddr,}
}};SOS.SDK.prototype._addInternalListener=function(a,b){this.internalListener[a]=b};SOS.SDK.prototype._removeInternalListener=function(a){this.internalListener[a]=null;
delete this.internalListener[a]};SOS.SDK.prototype._reinit=function(){this.initStatus="process";var a={logLevel:this.config.LogLevel,logFun:this.config.LogFun,appid:this.config&&this.config.AppId,appCode:this.config&&this.config.AppCode,account:this.config&&this.config.Account,password:this.config&&this.config.Password,mediaPure:true,test:this.config&&this.config.Test,callType:"audio",eventListener:this._sdkListener.bind(this),roomListener:this._roomListener.bind(this),room:{autoViewDisable:true,},host:this.config.Host,websocketParam:this.config.WebsocketParam,};
this.sdk=new VMEETING.Sdk(a)};SOS.SDK.prototype._getNode=function(d,a){var b=null;a=(a||[]);for(var c in a){var e=a[c];
if(e&&e.key===d){b=e;break}else{if(e&&e.children){b=this._getNode(d,e.children);if(b){break}}}}return b
};SOS.SDK.prototype._getAuthDeviceIds=function(){var e=this.authNodeIds||[];var a=this.tree||[];var c=new Set();
var f=function(h){if(h){if(h.NodeType==="device"){c.add(h.DeviceId)}if(h.children){for(var g in h.children){f(h.children[g])
}}}};for(var d in e){var b=e[d];f(this._getNode(b,a))}return c.size?Array.from(c):undefined};SOS.SDK.prototype._getParent=function(c,a){var d;
var f=a&&a.length||0;for(var b=0;b<f;b++){var e=a[b];if(e&&e.children){if(e.children.some(function(h){return h.key===c
})){d=e;break}else{var g=this._getParent(c,e.children);if(g){d=g;break}}}}return d};SOS.SDK.prototype._getNodeRelations=function(h,k){var g;
var a;var e;var c=k&&k.length||0;for(var f=0;f<c;f++){var b=k[f];if(b&&b.children){var d=b.children.find(h);
if(d){a=b;g=d;e=b.children.filter(h);break}else{var j=this._getNodeRelations(h,b.children);if(j&&j.node){g=j.node;
a=j.parent;e=j.brothers;break}}}}return{node:g,parent:a,brothers:e,}};SOS.SDK.prototype._hasPermission=function(b){var j=this.tree;
var e=this.authNodeIds;var f=this._getNodeRelations(function(k){return k&&k.DeviceId===b},j);var a=f&&f.node;
var g=f&&f.parent;var d=f&&f.brothers;var h=false;if(!e){h=true}else{if(a){var c=function(l,k){if(!k){k=this._getParent(l.key,j)
}h=e.includes(k&&k.key);if(!h&&k){return c(k)}return h}.bind(this);h=c(a,g)}}return{node:a,parent:g,brothers:d,permission:h}
};SOS.SDK.prototype._getTree=function(){return new Promise(function(b,a){this.fetch("/sos/v1/mntn/device/groupTree/node/get",{key:0}).then(function(c){if(c){this.tree=c.Tree?[c.Tree]:[]
}b(this.tree)}.bind(this)).error(a)}.bind(this))};SOS.SDK.prototype._authTree=function(){this._addInternalListener("tree",{onMessage:function(e,f){switch(e){case"operatorAuthChanged":this.authNodeIds=f&&f.NodeIds;
this.authDeviceIds=this._getAuthDeviceIds();break;case"deviceTreeNodeChanged":this._getTree().then(function(k){this.authDeviceIds=this._getAuthDeviceIds()
}.bind(this));break;case"deviceOffline":case"deviceOnline":var b=f;if(b){var a=this._hasPermission(f.DeviceId);
var c=a&&a.node;var j=a&&a.permission;if(c&&j){var g=this.listeners[SOS.EVENT.DEVICE_STATE];g&&g(e,c.DeviceInfo)
}else{tsk_utils_log_debug("not in my permission. deviceId:",f.DeviceId)}}break;case"operatorAlarmReport":case"operatorAlarmNoAnswer":case"operatorAlarmAccept":case"operatorAlarmFinished":var d=f&&f.TaskInfo;
var h=f&&f.OperatorInfo;if(d){var a=this._hasPermission(d.DeviceId);var c=a&&a.node;var j=a&&a.permission;
if(c&&j){var g=this.listeners[SOS.EVENT.DEVICE_ALARM_STATE];g&&g(e,c.DeviceInfo,d,h)}else{tsk_utils_log_debug("not in my permission. deviceId:",d.DeviceId)
}}break;default:break}}.bind(this),});return new Promise(function(b,a){this.authNodeIds=undefined;this.fetch("/sos/v1/mntn/account/info").then(function(c){if(c){this.accountInfo=c.AccountInfo;
tsk_utils_log_debug("get account info:",this.accountInfo);if(this.accountInfo.AccountType===2){tsk_utils_log_debug("this account role is operator");
this.fetch("/sos/v1/mntn/account/operator/groupAuth/get",{OperatorId:this.accountInfo&&this.accountInfo.Id}).then(function(d){if(d){this.authNodeIds=d&&d.NodeIds;
tsk_utils_log_debug("get auth nodes:",this.authNodeIds)}this._getTree().then(function(e){this.authDeviceIds=this._getAuthDeviceIds();
tsk_utils_log_debug("get auth devices:",this.authDeviceIds);b()}.bind(this)).error(a)}.bind(this)).error(a)
}else{tsk_utils_log_debug("this account role is admin");this._getTree().then(function(d){b()}.bind(this)).error(a)
}}}.bind(this)).error(a)}.bind(this))};SOS.SDK.prototype._sdkListener=function(f){var h=f&&f.type;var a=f&&f.code;
var l=f&&f.description;tsk_utils_log_info("sos sdk listener type",h,"code:",a);switch(h){case VMEETING.EVENT.SDK.SUCCESS:this.profile=f&&f.profile;
this.initStatus="ok";this.reason=null;this._initResolve&&this._initResolve(this.profile);this._initResolve=null;
this._initReject=null;var j=this.listeners[SOS.EVENT.SDK_STATE];j&&j(SOS.EVENT.SDK_STATE_CODE.SUCCESS);
this._authTree();break;case VMEETING.EVENT.SDK.WARN:this.reason=l;var j=this.listeners[SOS.EVENT.SDK_STATE];
j&&j(SOS.EVENT.SDK_STATE_CODE.WARN,a,l);if(a===VMEETING.CODE.SDK_STOPPED&&!this.destroyFlag){this._destroy();
clearTimeout(this.reinitTimer);this.reinitTimer=setTimeout(function(){this.initStatus="process";this._reinit(this.config)
}.bind(this),3000)}break;case VMEETING.EVENT.SDK.ERROR:this.initStatus="error";this.reason=l;if(this.destroyFlag){this.destroyFlag=false;
return}else{this._destroy();if(a!==VMEETING.CODE.LOGIN_CONFLICT){if(a===VMEETING.CODE.SDK_STOPPED){this._initReject&&this._initReject();
this._initResolve=null;this._initReject=null}clearTimeout(this.reinitTimer);this.reinitTimer=setTimeout(function(){if(this.initStatus==="error"){this.initStatus="process";
this._reinit(this.config)}}.bind(this),3000)}}var j=this.listeners[SOS.EVENT.SDK_STATE];j&&j(SOS.EVENT.SDK_STATE_CODE.ERROR,a,l);
break;case VMEETING.EVENT.SDK.WEBSOCKET:var c=f&&f.action;var g=f&&f.content;for(var d in this.internalListener){var b=this.internalListener[d];
b&&b.onMessage&&b.onMessage(c,g)}break;default:break}};SOS.SDK.prototype._roomListener=function(g){var h=g&&g.type;
var c=g&&g.action;var a=g&&g.code;var j=g&&g.description;tsk_utils_log_info("sos room listener type:",h,"action:",c);
switch(h){case VMEETING.EVENT.SESSION.ROOM:switch(c){case VMEETING.ACTION.ROOM.PROCESS:if(a!==VMEETING.CODE.SUCCESS){for(var d in this.internalListener){var b=this.internalListener[d];
b&&b.onRoomError&&b.onRoomError(a,j)}}break;case VMEETING.ACTION.ROOM.CONNECTED:this.room=g&&g.room;for(var d in this.internalListener){var b=this.internalListener[d];
b&&b.onRoomOk&&b.onRoomOk(this.room)}break;case VMEETING.ACTION.ROOM.TERMINATED:for(var d in this.internalListener){var b=this.internalListener[d];
b&&b.onRoomDestroy&&b.onRoomDestroy(this.room)}this.sdk&&this.sdk.setAcceptAccessCode(null);this.members=[];
this.room=null;break;case VMEETING.ACTION.ROOM.ONCHANGE:this.room=g&&g.room;if(a!==VMEETING.CODE.SUCCESS){return
}clearTimeout(this.roomChangeTimer);this.roomChangeTimer=setTimeout(function(){this.roomChangeTimer=0;
for(var e in this.internalListener){var m=this.internalListener[e];m&&m.onRoomChange&&m.onRoomChange(this.room)
}}.bind(this),500);break;default:break}break;case VMEETING.EVENT.SESSION.MEMBER:var f=g&&g.member;var l=g&&g.members||[];
if(a!==VMEETING.CODE.SUCCESS){return}this.members=l;for(var d in this.internalListener){var b=this.internalListener[d];
b&&b.onMemberChange&&b.onMemberChange(c,f,l)}break;default:break}};SOS.SDK.prototype._commonCheck=function(a){if(!(a instanceof Object)){return{code:400,message:"the parameters is illegal, Params must be a Object"}
}if(this.initStatus!=="ok"||!this.sdk){return{code:500,message:"sdk status: "+this.initStatus+" is not ok, please try again later"}
}return null};SOS.SDK.prototype.__transferMessage=function(a,b){return new Promise(function(e,d){if(!b.Id&&!b.DeviceId){d({code:400,message:"the parameters Id or DeviceId is illegal, Id or DeviceId must not be empty"});
return}var g=String(Math.floor(Math.random()*1000000000));var c={Type:a,SessionId:g,SipNum:this._mySipNum(),TimeStamp:Math.floor(new Date().getTime()/1000),Body:b.Body};
var f=setTimeout(function(){d({code:408,description:"timeout"})}.bind(this),10*1000);this.transferSessions[g]={id:g,timer:f,resolve:e,};
this._addInternalListener(g,{onMessage:function(k,j){switch(k){case"deviceTransferToOperatorMsg":tsk_utils_log_debug("on message:",k,j);
var h=j&&j.Body||{};var m=h.SessionId;var l=this.transferSessions[m];if(l){clearTimeout(l.timer);l.resolve(h);
delete this.transferSessions[m];this._removeInternalListener(m)}else{tsk_utils_log_warn("not find the session. id:",m)
}break;default:break}}.bind(this),});this.fetch("/sos/v1/mntn/device/transfer/msg",{DeviceId:b.Id||b.DeviceId,Body:JSON.stringify(c),}).then(function(h){}.bind(this)).error(function(h){d(h);
this._removeInternalListener(g);delete this.transferSessions[g]}.bind(this))}.bind(this))};SOS.SDK.prototype._mySipNum=function(){return this.profile&&this.profile.userId
};SOS.SDK.prototype._destroy=function(){return new Promise(function(b,a){this.destroyFlag=true;this.audioSpeakStop({}).then(function(c){}).error(function(c){});
this.microphoneMutilBoradcastStop({}).then(function(c){}).error(function(c){});this.deviceAlarmDone({}).then(function(c){}).error(function(c){});
this.videoMonitorStopAll();if(this.sdk){this.sdk.uninit()}b()}.bind(this))};SOS.SDK.prototype._getAudioOnlineInstance=function(b){var c=this.sdk.getSession();
if(!c){return null}var a=c.pc;if(!a){return null}if(b==="local"){return a.getSenders().find(function(d){return d.track.kind==="audio"
})}else{return a.getReceivers().find(function(d){return d.track.kind==="audio"})}};SOS.SDK.prototype.isTest=function(a,b){return this.sdk&&this.sdk.isTest()
};SOS.SDK.prototype.version=function(){return this.ver};SOS.SDK.prototype.addEventListener=function(a,b){tsk_utils_log_info("sos add event",a);
this.listeners[a]=b};SOS.SDK.prototype.removeEventListener=function(a){tsk_utils_log_info("sos remove event",a);
this.listeners[a]=null};SOS.SDK.prototype.init=function(){tsk_utils_log_info("sos init");g_gpioList=null;
return new Promise(function(c,b){this._initResolve=c;this._initReject=b;try{this.initStatus="process";
this._reinit();this.destroyFlag=false}catch(a){this.initStatus="error";b(a)}}.bind(this))};SOS.SDK.prototype.destroy=function(){tsk_utils_log_info("sos destroy");
this.listeners={};clearTimeout(this.reinitTimer);return this._destroy()};SOS.SDK.prototype.isMe=function(a){return this.profile&&this.profile.userId===a
};SOS.SDK.prototype.api=function(a){tsk_utils_log_info("sos api Params:",a);return new Promise(function(d,c){var b=this._commonCheck(a);
if(b){c(b);return}}.bind(this))};SOS.SDK.prototype.fetch=function(b,a){return this.sdk&&this.sdk.fetch(b,a)
};SOS.SDK.prototype.deviceList=function(a){tsk_utils_log_info("sos device list Params:",a);return new Promise(function(f,e){var c=this._commonCheck(a);
if(c){e(c);return}var d=a.Filters||[];if(this.accountInfo&&this.accountInfo.AccountType===2){d.push([{Key:"Id",Type:"int",Op:"in",Value:this.authDeviceIds}])
}var b=a.PageSize>100?100:a.PageSize;this.fetch("/sos/v1/mntn/device/list",{PageSize:b,PageNum:a.PageNum,OrFirst:true,Filters:d,OrderKey:a.OrderKey,Desc:a.Desc?1:0,}).then(f).error(e)
}.bind(this))};SOS.SDK.prototype.deviceBaseInfoGet=function(a){tsk_utils_log_info("sos device info Params:",a);
return new Promise(function(d,c){var b=this._commonCheck(a);if(b){c(b);return}if(!a.DeviceId){c({code:400,message:"the parameters DeviceId is illegal, DeviceId must not be empty"});
return}this.fetch("/sos/v1/mntn/device/base/get",{Id:a.DeviceId,}).then(function(e){d(Object.assign(e,{Status:undefined,StatusMsg:undefined,HttpStatus:undefined,Timestamp:undefined,Id:undefined,DeviceId:e.Id,}))
}.bind(this)).error(c)}.bind(this))};SOS.SDK.prototype.deviceBaseInfoMod=function(a){tsk_utils_log_info("sos device mod Params:",a);
return new Promise(function(d,c){var b=this._commonCheck(a);if(b){c(b);return}if(!a.DeviceId){c({code:400,message:"the parameters DeviceId is illegal, DeviceId must not be empty"});
return}this.fetch("/sos/v1/mntn/device/base/mod",Object.assign({Id:a.DeviceId,},a)).then(d).error(c)}.bind(this))
};SOS.SDK.prototype.deviceAlarmRecordList=function(a){tsk_utils_log_info("sos device alarm record list Params:",a);
return new Promise(function(f,e){var c=this._commonCheck(a);if(c){e(c);return}var b=a.PageSize>100?100:a.PageSize;
var d=[];if(a.Filters){d=a.Filters}if(this.accountInfo&&this.accountInfo.AccountType===2){d.push([{Key:"DeviceId",Type:"int",Op:"in",Value:this.authDeviceIds}])
}var g={PageSize:b,PageNum:a.PageNum,OrFirst:true,Filters:a.Filters,OrderKey:a.OrderKey,Desc:a.Desc?1:0,};
this.fetch("/sos/v1/mntn/business/alarm/list",g).then(f).error(e)}.bind(this))};SOS.SDK.prototype.audioSpeakStart=function(a){tsk_utils_log_info("sos audio speak start Params:",a);
return new Promise(function(g,f){var d=this._commonCheck(a);if(d){f(d);return}if(!a.DeviceId&&!a.SipNum){f({code:400,message:"the parameters DeviceId or SipNum is illegal, DeviceId or SipNum must not be empty"});
return}if(!a.AudioDomId){f({code:400,message:"the parameters AudioDomId is illegal, AudioDomId must not be empty"});
return}if(!document.getElementById(a.AudioDomId)){f({code:400,message:"the parameters AudioDomId is illegal, document.getElementById(AudioDomId) is null"});
return}if(this.audioSpeakTask){f({code:-1,message:"there have another speak task, please stop it first and try again"});
return}if(this.alarmTask){f({code:-1,message:"there have another alarm task, please stop it first and try again"});
return}if(this.micMutilBoradcastTask){f({code:-1,message:"there have another micphone mutil-boradcast task, please stop it first and try again"});
return}var e=Math.floor(Math.random()*1000000000);this.audioSpeakTask={status:"process",key:e,};this._addInternalListener(e,{onRoomOk:function(j){var h=this._mySipNum();
tsk_utils_log_debug("room ok, mySipNum:",h,"room:",j);if(this.audioSpeakTask){this.audioSpeakTask.room=j
}}.bind(this),onRoomDestroy:function(h){tsk_utils_log_debug("room destory, room:",h,"task:",this.audioSpeakTask);
if((this.audioSpeakTask&&this.audioSpeakTask.room&&this.audioSpeakTask.room.sipNum)===(h&&h.sipNum)){tsk_utils_log_debug("room destory, unbind audio element, room:",h);
this.sdk&&this.sdk.unbindRemoteAudio(a.AudioDomId);a.OnStop&&a.OnStop(this.audioSpeakTask.task);this._removeInternalListener(e);
if(this.audioSpeakTask&&this.audioSpeakTask.task){this.audioSpeakStop({TaskCode:this.audioSpeakTask.task.TaskCode})
}}}.bind(this),onMemberChange:function(m,o,k){var l=this._mySipNum();k=k||[];tsk_utils_log_debug("room member changed. action:",m,"sipNum:",o.userId,"(",o.nickName,")","status:",o.status);
var n=k.find(function(p){return p.status==="ONLINE"&&p.userId===l});var j=(k.filter(function(p){return p.status==="ONLINE"
})||[]).length>=2;if(n&&j){tsk_utils_log_debug("room member all joined");if(this.audioSpeakTask){this.audioSpeakTask.status="done";
if(a.Mute){this.sdk&&this.sdk.mute()}clearTimeout(this.audioSpeakTask.timer);var h=function(){if(this.audioSpeakTask&&this.audioSpeakTask.task&&this.audioSpeakTask.room){this.sdk&&this.sdk.bindRemoteAudio(a.AudioDomId,0);
g(this.audioSpeakTask.task)}else{this.audioSpeakTask.taskTimer=setTimeout(function(){h.bind(this)()}.bind(this),500)
}};h.bind(this)()}else{f({code:-1,message:"audio speak start error, task has not exist"})}}switch(m){case VMEETING.ACTION.MEMBER.LEAVED:a.OnDisconnected&&a.OnDisconnected({TaskCode:taskCode,SipNum:o.userId,});
break;default:break}}.bind(this),onMessage:function(j,h){switch(j){case"operatorBoardcastFinished":if(this.audioSpeakTask&&h&&this.audioSpeakTask.task&&this.audioSpeakTask.task.TaskCode===h.TaskCode){if(this.sdk&&this.room){this.sdk.forceExitRoom()
}a.OnStop&&a.OnStop(this.audioSpeakTask.task)}break;default:break}}.bind(this),});try{this.sdk.setAcceptAccessCode("");
var b="monitor";if(a.Mute){b="listener"}this.fetch("/sos/v1/mntn/business/boardcast/p2pStart",{TaskName:String(a.TaskName||""),DeviceId:a.DeviceId,SipNum:a.SipNum,ForceStart:a.Force,TaskType:b,Extra:JSON.stringify(a.Extra)}).then(function(h){if(h&&h.Status===0&&((h.FailedInfos instanceof Array&&!h.FailedInfos.length)||(!(h.FailedInfos instanceof Array))&&!h.FailedInfos)){this.audioSpeakTask.task=h;
if(this.sdk){this.sdk.setAcceptAccessCode(h.TaskSipCode);if(this.audioSpeakTask.status!=="done"){this.audioSpeakTask.timer=setTimeout(function(){f({code:408,message:"audio speak start timeout"});
if(this.audioSpeakTask&&this.audioSpeakTask.task){this.audioSpeakStop({TaskCode:this.audioSpeakTask.task.TaskCode})
}}.bind(this),(a.Timeout||10)*1000)}}else{f({code:-1,message:"audio speak start error, sdk has stopped"});
if(this.audioSpeakTask&&this.audioSpeakTask.task){this.audioSpeakStop({TaskCode:this.audioSpeakTask.task.TaskCode})
}}}else{f({code:h.FailedInfos&&h.FailedInfos[0]&&h.FailedInfos[0].Status||h.Status,message:"audio speak start error"});
this.audioSpeakTask=null}}.bind(this)).error(function(h){this.audioSpeakTask=null;f(h)}.bind(this))}catch(c){f({code:-1,message:"audio speak start error"});
this.audioSpeakTask=null}}.bind(this))};SOS.SDK.prototype.audioSpeakStop=function(a){tsk_utils_log_info("sos audio speak stop Params:",a);
return new Promise(function(f,e){var d=this._commonCheck(a);if(d){e(d);return}var c=(a&&a.TaskCode)||(this.audioSpeakTask&&this.audioSpeakTask.task&&this.audioSpeakTask.task.TaskCode);
try{if(c&&this.audioSpeakTask&&this.audioSpeakTask.key){this._removeInternalListener(this.audioSpeakTask.key);
clearTimeout(this.audioSpeakTask.taskTimer);this.audioSpeakTask=null;if(this.sdk){this.sdk.setAcceptAccessCode(null);
this.fetch("/sos/v1/mntn/business/boardcast/stop",{TaskCode:c,}).then(function(g){if(g&&g.Status===0){}else{e({code:g&&g.Status||-1,message:"audio speak stop error"})
}}.bind(this)).error(e);setTimeout(function(){if(this.sdk&&this.room){this.sdk.forceExitRoom()}f()}.bind(this),1000)
}else{e({code:-1,message:"sdk has stopped"})}}else{this.audioSpeakTask=null;e({code:-1,message:"there have no audio speak task"})
}}catch(b){this.audioSpeakTask=null;e({code:-1,message:"audio speak stop error"})}}.bind(this))};SOS.SDK.prototype.audioListenStart=function(a){tsk_utils_log_info("sos audio listen start Params:",a);
a.Mute=true;return new Promise(function(d,c){try{d(this.audioSpeakStart(a))}catch(b){c(b)}}.bind(this))
};SOS.SDK.prototype.audioListenStop=function(a){tsk_utils_log_info("sos audio listen stop Params:",a);
return new Promise(function(d,c){try{d(this.audioSpeakStop(a))}catch(b){c(b)}}.bind(this))};SOS.SDK.prototype.videoRecordStart=function(a){tsk_utils_log_info("sos video record start Params:",a);
return new Promise(function(j,h){var f=this._commonCheck(a);if(f){h(f);return}if(!a.VideoDomId){h({code:400,message:"the parameters VideoDomId is illegal, VideoDomId must not be empty"});
return}if(!document.getElementById(a.VideoDomId)){h({code:400,message:"the parameters VideoDomId is illegal, document.getElementById(VideoDomId) is null"});
return}if(this.videoRecordTasks[a.VideoDomId]){h({code:-1,message:"there have another VideoDomId record task, please stop it first and try again"});
return}var e={type:"video",mimeType:"video/webm;codecs=h264",getNativeBlob:true,timeSlice:1000,recorderType:RecordRTC.MediaStreamRecorder,ondataavailable:function(k){if(a.DataCb){a.DataCb(a.VideoDomId,k)
}},};var c={};try{var d=document.getElementById(a.VideoDomId);var b=d.captureStream();c.VideoDomId=a.VideoDomId;
c.Recorder=RecordRTC(b,e);c.Recorder.startRecording();c.StateCb=a.StateCb;if(c.StateCb){c.StateCb(a.VideoDomId,SOS.RECORDING_STATE.INPROGRESS)
}this.videoRecordTasks[a.VideoDomId]=c;j()}catch(g){if(a.StateCb){a.StateCb(a.VideoDomId,SOS.RECORDING_STATE.FAILED)
}h({code:-1,message:"record start failed! err = "+g})}}.bind(this))};SOS.SDK.prototype.videoRecordStop=function(a){tsk_utils_log_info("sos video record stop Params:",a);
return new Promise(function(e,d){var c=this._commonCheck(a);if(c){d(c);return}if(!a.VideoDomId){d({code:400,message:"the parameters VideoDomId is illegal, VideoDomId must not be empty"});
return}var b=this.videoRecordTasks[a.VideoDomId];if(!b){d({code:-1,message:"the VideoDomId record task not exist!"});
return}if(b.Recorder){b.Recorder.stopRecording(function(){b.Recorder.destroy();b.Recorder=null;if(b.StateCb){b.StateCb(b.VideoDomId,SOS.RECORDING_STATE.FINISHED)
}})}this.videoRecordTasks[a.VideoDomId]=null;e()}.bind(this))};SOS.SDK.prototype.audioRecordStart=function(a){tsk_utils_log_info("sos audio record start Params:",a);
return new Promise(function(m,n){var j=this._commonCheck(a);if(j){n(j);return}if(this.audioRecordTask){n({code:-1,message:"another audio record task exist, stop it and try again!"});
return}if(!a.EnableLocal&&!a.EnableRemote){n({code:-1,message:"you need set EnalbeLocal or EnableRemote true to start record!"});
return}var c=null;var b=null;if(a.EnableLocal){c=this._getAudioOnlineInstance("local");if(!c){n({code:-1,message:"local audio instance not exist!"})
}}if(a.EnableRemote){b=this._getAudioOnlineInstance("remote");if(!b){n({code:-1,message:"remote audio instance not exist!"})
}}this.audioRecordTask={EnableLocal:false,EnableRemote:false};if(a.EnableLocal){var k={type:"audio",mimeType:"audio/webm",getNativeBlob:true,timeSlice:1000,recorderType:RecordRTC.MediaStreamRecorder,ondataavailable:function(o){if(a.LocalDataCb){a.LocalDataCb(o)
}},};try{var e=new MediaStream([c.track]);var h=RecordRTC(e,k);h.startRecording();this.audioRecordTask.EnableLocal=true;
this.audioRecordTask.LocalRecorder=h;if(a.LocalStateCb){this.audioRecordTask.LocalStateCb=a.LocalStateCb;
a.LocalStateCb(SOS.RECORDING_STATE.INPROGRESS)}}catch(d){console.log("start local reording failed! err = %o",d);
this.audioRecordTask=null;if(a.LocalStateCb){a.LocalStateCb(SOS.RECORDING_STATE.FAILED)}n({code:-1,message:"start local reording failed! err = "+d})
}}if(a.EnableRemote){var g={type:"audio",mimeType:"audio/webm",getNativeBlob:true,timeSlice:1000,recorderType:RecordRTC.MediaStreamRecorder,ondataavailable:function(o){if(a.RemoteDataCb){a.RemoteDataCb(o)
}},};try{var f=new MediaStream([b.track]);var h=RecordRTC(f,g);h.startRecording();this.audioRecordTask.EnableRemote=true;
this.audioRecordTask.RemoteRecorder=h;if(a.RemoteStateCb){this.audioRecordTask.RemoteStateCb=a.RemoteStateCb;
a.RemoteStateCb(SOS.RECORDING_STATE.INPROGRESS)}}catch(d){console.log("start remote reording failed! err = %o",d);
if(this.audioRecordTask.EnableLocal&&this.audioRecordTask.LocalRecorder){if(this.audioRecordTask.RemoteStateCb){this.audioRecordTask.RemoteStateCb(SOS.RECORDING_STATE.FAILED)
}var l=this.audioRecordTask.LocalRecorder;this.audioRecordTask.LocalRecorder.stopRecording(function(){l.destroy()
})}this.audioRecordTask=null;n({code:-1,message:"start remote reording failed! err = "+d})}}m()}.bind(this))
};SOS.SDK.prototype.audioRecordStop=function(){tsk_utils_log_info("sos audio record stop");return new Promise(function(c,b){if(!this.audioRecordTask){b({code:-1,message:"the audio record task not exist!"});
return}var a=this.audioRecordTask;if(a.EnableLocal){if(a.LocalRecorder){a.LocalRecorder.stopRecording(function(){a.LocalRecorder.destroy();
if(a.LocalStateCb){a.LocalStateCb(SOS.RECORDING_STATE.FINISHED)}})}}if(a.EnableRemote){if(a.RemoteRecorder){a.RemoteRecorder.stopRecording(function(){a.RemoteRecorder.destroy();
if(a.RemoteStateCb){a.RemoteStateCb(SOS.RECORDING_STATE.FINISHED)}})}}this.audioRecordTask=null;c()}.bind(this))
};SOS.SDK.prototype.deviceAlarmDone=function(a){tsk_utils_log_info("sos alarm done Params:",a);return new Promise(function(f,e){var d=this._commonCheck(a);
if(d){e(d);return}var c=(a&&a.TaskCode)||(this.alarmTask&&this.alarmTask.task&&this.alarmTask.task.TaskCode);
try{if(c&&this.alarmTask){this._removeInternalListener(c);this.alarmTask=null;if(this.sdk){this.sdk.setAcceptAccessCode(null);
this.fetch("/sos/v1/mntn/business/alarm/finish",{TaskCode:c,}).then(function(g){if(g&&g.Status===0){}else{e({code:g.Status,message:"alarm task done error"})
}}.bind(this)).error(e);setTimeout(function(){if(this.sdk&&this.room){this.sdk.forceExitRoom()}f()}.bind(this),1000)
}else{e({code:-1,message:"sdk has stopped"})}}else{this.alarmTask=null;e({code:-1,message:"there have no alarm task"})
}}catch(b){this.alarmTask=null;e({code:-1,message:"alarm task done error"})}}.bind(this))};SOS.SDK.prototype.deviceAlarmAccept=function(b,a){tsk_utils_log_info("sos alarm accept Params:",b,a);
return new Promise(function(g,f){var e=this._commonCheck(b);if(e){f(e);return}e=this._commonCheck(a);
if(e){f(e);return}if(!a.AudioDomId){f({code:400,message:"the parameters AudioDomId is illegal, AudioDomId must not be empty"});
return}if(!document.getElementById(a.AudioDomId)){f({code:400,message:"the parameters AudioDomId is illegal, document.getElementById(AudioDomId) is null"});
return}if(this.audioSpeakTask){f({code:-1,message:"there have another speak task, please stop it first and try again"});
return}if(this.alarmTask){f({code:-1,message:"there have another alarm task, please stop it first and try again"});
return}if(this.micMutilBoradcastTask){f({code:-1,message:"there have another micphone mutil-boradcast task, please stop it first and try again"});
return}this.alarmTask={status:"process",task:b,};var d=(b&&b.TaskCode);try{this._addInternalListener(d,{onRoomOk:function(l){var k=this._mySipNum();
tsk_utils_log_debug("room ok, room:",l);if(this.alarmTask){this.alarmTask.room=l;var k=this._mySipNum();
var j=this.alarmTask.curMembers||[];var m=j.find(function(n){return n.status==="ONLINE"&&n.userId===k
});var h=(j.filter(function(n){return n.status==="ONLINE"})||[]).length>=2;if(m&&h){if(this.alarmTask){this.alarmTask.status="done";
clearTimeout(this.alarmTask.timer);this.sdk&&this.sdk.bindRemoteAudio(a.AudioDomId,0);g({TaskCode:d,ExpireIn:this.alarmTask.acceptInfo.ExpireIn,})
}else{f({code:-1,message:"alarm accept error, task has not exist"})}}else{tsk_utils_log_debug("room member not ready, me:",!!m,"device:",!!h)
}}}.bind(this),onRoomDestroy:function(h){tsk_utils_log_debug("room destory, room:",h,"task:",this.alarmTask);
if((this.alarmTask&&this.alarmTask.room&&this.alarmTask.room.sipNum)===(h&&h.sipNum)){this.sdk&&this.sdk.unbindRemoteAudio(a.AudioDomId);
a.OnStop&&a.OnStop(b);this._removeInternalListener(d);if(this.alarmTask){this.deviceAlarmDone({TaskCode:d})
}}}.bind(this),onMemberChange:function(j,k,h){if(this.alarmTask){tsk_utils_log_debug("room member changed. action:",j,"sipNum:",k.userId,"(",k.nickName,")","status:",k.status);
this.alarmTask.curMembers=h}switch(j){case VMEETING.ACTION.MEMBER.LEAVED:a.OnDisconnected&&a.OnDisconnected({TaskCode:d,SipNum:k.userId,});
break;default:break}}.bind(this),onMessage:function(k,j){switch(k){case"operatorAlarmFinished":var h=j.TaskInfo;
if(h&&this.alarmTask&&this.alarmTask.task&&this.alarmTask.task.TaskCode===h.TaskCode){if(this.sdk&&this.room){this.sdk.forceExitRoom()
}a.OnStop&&a.OnStop(b)}break;default:break}}.bind(this),});if(this.sdk){this.sdk.setAcceptAccessCode("");
this.fetch("/sos/v1/mntn/business/alarm/accept",{TaskCode:d,}).then(function(h){if(h){switch(h.Status){case 0:this.alarmTask.timer=setTimeout(function(){this.deviceAlarmDone(this.alarmTask.task)
}.bind(this),3000);this.alarmTask.acceptInfo=h;this.sdk.setAcceptAccessCode(b.ConfSipCode);break;case 3602:f({code:409,message:"task conflict",info:h});
break;default:break}}else{f({code:-1,message:"accept alarm error"})}}.bind(this)).error(f)}else{f({code:-1,message:"sdk has stopped"})
}}catch(c){this.alarmTask=null;f({code:-1,message:"accept alarm error"})}}.bind(this))};SOS.SDK.prototype.deviceVolumeGet=function(a){tsk_utils_log_info("sos device volume get Params:",a);
return new Promise(function(d,c){var b=this._commonCheck(a);if(b){c(b);return}this.__transferMessage("/device/config/getAudioConfig",a).then(function(e){d({SpeakerVolume:e&&e.SpeackerVolume,MicrophoneVolume:e&&e.MicVolume,})
}).error(c)}.bind(this))};SOS.SDK.prototype.deviceVolumeSet=function(a){tsk_utils_log_info("sos device volume set Params:",a);
return new Promise(function(d,c){var b=this._commonCheck(a);if(b){c(b);return}if(a.SpeakerVolume===undefined&&a.MicrophoneVolume===undefined){c({code:-1,message:"the parameters SpeakerVolume or MicrophoneVolume is illegal, SpeakerVolume and MicrophoneVolume must be set at least one"});
return}this.__transferMessage("/device/config/audio",{Id:a.Id||a.DeviceId,Body:{SpeackerVolume:a&&a.SpeakerVolume,MicVolume:a&&a.MicrophoneVolume,}}).then(d).error(c)
}.bind(this))};SOS.SDK.prototype.videoMonitorStart=function(a){tsk_utils_log_info("sos video start Params:",a);
return new Promise(function(e,d){var b=this._commonCheck(a);if(b){d(b);return}if(!(a.Device instanceof Object)&&!a.DeviceId){d({code:400,message:"the parameters DeviceId is illegal, DeviceId must not be empty"});
return}if(!a.VideoDomId){d({code:400,message:"the parameters VideoDomId is illegal, VideoDomId must not be empty"});
return}if(!document.getElementById(a.VideoDomId)){d({code:400,message:"the parameters VideoDomId is illegal, document.getElementById(VideoDomId) is null"});
return}var c=a.StreamType===undefined?SOS.VIDEO.STREAM_TYPE.SECONDARY:a.StreamType;this.fetch("/sos/v1/mntn/monitor/start",{DeviceId:a.DeviceId||a.Device.Id,StreamType:c}).then(function(f){if(f){if(f.Status===0){var h=new Date().getTime();
var g=new FlvPlayer({videoDomId:a.VideoDomId,application:"sdk",});var j=setTimeout(function(){this.fetch("/sos/v1/mntn/video/disabled",{TaskCode:f.TaskCode,TaskType:"monitor",StreamId:f.FlvPlayInfo.StreamId,})
}.bind(this),5*1000);this.monitorSessions[f.TaskCode]={player:g,Device:a.Device||{Id:a.DeviceId},mediaRetryTimer:j,};
g.urlInfo=f.FlvPlayInfo;g.streamType=c;g.start().then(function(){var k=(new Date().getTime()-h)/1000;
clearTimeout(j);e(Object.assign(f,{ExpireIn:f.ExpireIn-k}));this._addInternalListener(f.TaskCode,{onMessage:function(m,l){switch(m){case"operatorMonitorFinished":tsk_utils_log_debug("on message:",m,l);
this.videoMonitorStop(l);a.OnStop&&a.OnStop(f);break;default:break}}.bind(this)})}.bind(this)).error(function(k){clearTimeout(j);
this.videoMonitorStop(f);d(k)}.bind(this))}else{d({code:f.Status,message:f.StatusMsg})}}else{d({code:2,message:"fetch data error, please check your network"})
}}.bind(this)).error(d)}.bind(this))};SOS.SDK.prototype.videoMonitorStop=function(a){tsk_utils_log_info("sos video stop Params:",a);
return new Promise(function(d,c){var b=this._commonCheck(a);if(b){c(b);return}if(!a.TaskCode){c({code:-1,message:"the parameters TaskCode is illegal, TaskCode must not be empty"});
return}var e=this.monitorSessions[a.TaskCode];if(!e){c({code:-1,message:"not find the task code:"+a.TaskCode});
return}this._removeInternalListener(a.TaskCode);e.player&&e.player.stop();clearTimeout(e.mediaRetryTimer);
this.fetch("/sos/v1/mntn/monitor/stop",{DeviceId:e.Device&&e.Device.Id,TaskCode:a.TaskCode}).then(d).error(c);
delete this.monitorSessions[a.TaskCode]}.bind(this))};SOS.SDK.prototype.videoMonitorStopAll=function(){tsk_utils_log_info("sos video stop all");
return new Promise(function(c,b){for(var a in this.monitorSessions){var d=this.monitorSessions[a];if(!d){continue
}this._removeInternalListener(a);d.player&&d.player.stop();clearTimeout(d.mediaRetryTimer);this.fetch("/sos/v1/mntn/monitor/stop",{DeviceId:d.Device&&d.Device.Id,TaskCode:a})
}this.monitorSessions={};c()}.bind(this))};SOS.SDK.prototype._gpioCtrlSwitch=function(b,a){tsk_utils_log_info("sos gpio control switch "+a+" Params:",b);
return new Promise(function(f,e){var c=this._commonCheck(b);if(c){e(c);return}var d=function(h){var l=false;
for(var m in (h||[])){var g=h[m];if(g&&g.FeatureCode===b.Code){l=true;for(var k in (g.ActionList||[])){var n=g.ActionList[k];
if(n&&(n.ActionType==="switchOpen"&&a==="on")||(n.ActionType==="switchClose"&&a==="off")){this.fetch("/sos/v1/mntn/company/gpioFeature/cmd/send",{DeviceId:b.DeviceId,FeatureId:g.Id,ActionId:n.Id,}).then(f).error(e);
return}}}}if(l){e({code:404,message:"the parameters Type "+a+" is not match any gpio actions, please make sure gpio actions including cmd switch "+a+" in Code "+b.Code})
}else{e({code:404,message:"the parameters Code is not match any gpio configs, please check your code "})
}}.bind(this);if(!b.Code){e({code:400,message:"the parameters Code is illegal, Code must not be empty"});
return}if(!g_gpioList){this.fetch("/sos/v1/mntn/company/gpioFeature/list",{PageNum:1,PageSize:9999,}).then(function(g){if(g&&g.Status===0){g_gpioList=g.RecordList;
d(g_gpioList)}}.bind(this)).error(e)}else{d(g_gpioList)}}.bind(this))};SOS.SDK.prototype.gpioCtrlSwitchOn=function(a){return this._gpioCtrlSwitch(a,"on")
};SOS.SDK.prototype.gpioCtrlSwitchOff=function(a){return this._gpioCtrlSwitch(a,"off")};SOS.SDK.prototype.microphoneMutilBoradcastStart=function(a){tsk_utils_log_info("sos microphone mutil-boradcast start Params:",a);
return new Promise(function(f,e){var c=this._commonCheck(a);if(c){e(c);return}if(!a.DeviceIds){e({code:400,message:"the parameters DeviceIds is illegal, DeviceIds must not be empty"});
return}if(this.audioSpeakTask){e({code:-1,message:"there have another speak task, please stop it first and try again"});
return}if(this.alarmTask){e({code:-1,message:"there have another alarm task, please stop it first and try again"});
return}if(this.micMutilBoradcastTask){e({code:-1,message:"there have another micphone mutil-boradcast task, please stop it first and try again"});
return}var d=Math.floor(Math.random()*1000000000);this.micMutilBoradcastTask={status:"process",key:d,};
this._addInternalListener(d,{onRoomOk:function(h){var g=this._mySipNum();tsk_utils_log_debug("room ok, mySipNum:",g,"room:",h);
if(this.micMutilBoradcastTask){this.micMutilBoradcastTask.room=h}}.bind(this),onRoomDestroy:function(g){tsk_utils_log_debug("room destory, room:",g,"task:",this.micMutilBoradcastTask);
if((this.micMutilBoradcastTask&&this.micMutilBoradcastTask.room&&this.micMutilBoradcastTask.room.sipNum)===(g&&g.sipNum)){tsk_utils_log_debug("room destory, unbind audio element, room:",g);
a.OnStop&&a.OnStop(this.micMutilBoradcastTask.task);this._removeInternalListener(d);if(this.micMutilBoradcastTask&&this.micMutilBoradcastTask.task){this.microphoneMutilBoradcastStop({TaskCode:this.micMutilBoradcastTask.task.TaskCode})
}}}.bind(this),onMemberChange:function(h,j,q){var o=this._mySipNum();q=q||[];tsk_utils_log_debug("room member changed. action:",h,"sipNum:",j.userId,"(",j.nickName,")","status:",j.status);
var p=false;var r=false;var n=0;for(var k in q){var g=q[k];if(g.status==="ONLINE"){if(g.userId===o){p=true
}else{n+=1}}}r=n===a.DeviceIds.length-1;if(p&&r){tsk_utils_log_debug("room member all joined");if(this.micMutilBoradcastTask){this.micMutilBoradcastTask.status="done";
clearTimeout(this.micMutilBoradcastTask.timer);var l=function(){if(this.micMutilBoradcastTask&&this.micMutilBoradcastTask.task&&this.micMutilBoradcastTask.room){f(this.micMutilBoradcastTask.task)
}else{this.micMutilBoradcastTask.taskTimer=setTimeout(function(){l.bind(this)()}.bind(this),500)}};l.bind(this)()
}else{e({code:-1,message:"microphone mutil-boradcast start error, task has not exist"})}}switch(h){case VMEETING.ACTION.MEMBER.LEAVED:a.OnDisconnected&&a.OnDisconnected({TaskCode:taskCode,SipNum:j.userId,});
break;default:break}}.bind(this),onMessage:function(h,g){switch(h){case"operatorBoardcastFinished":if(this.micMutilBoradcastTask&&g&&this.micMutilBoradcastTask.task&&this.micMutilBoradcastTask.task.TaskCode===g.TaskCode){if(this.sdk&&this.room){this.sdk.forceExitRoom()
}a.OnStop&&a.OnStop(this.micMutilBoradcastTask.task)}break;default:break}}.bind(this),});try{this.sdk.setAcceptAccessCode("");
this.fetch("/sos/v1/mntn/business/boardcast/start",{TaskName:String(a.TaskName||""),DeviceIds:a.DeviceIds,ForceStart:a.Force,TaskType:"microphone",Extra:JSON.stringify(a.Extra)}).then(function(g){if(g&&g.Status===0&&((g.FailedInfos instanceof Array&&!g.FailedInfos.length)||(!(g.FailedInfos instanceof Array))&&!g.FailedInfos)){this.micMutilBoradcastTask.task=g;
if(this.sdk){this.sdk.setAcceptAccessCode(g.TaskSipCode);if(this.micMutilBoradcastTask.status!=="done"){this.micMutilBoradcastTask.timer=setTimeout(function(){e({code:408,message:"microphone mutil-boradcast start timeout"});
if(this.micMutilBoradcastTask&&this.micMutilBoradcastTask.task){this.microphoneMutilBoradcastStop({TaskCode:this.micMutilBoradcastTask.task.TaskCode})
}}.bind(this),(a.Timeout||10)*1000)}}else{e({code:-1,message:"microphone mutil-boradcast start error, sdk has stopped"});
if(this.micMutilBoradcastTask&&this.micMutilBoradcastTask.task){this.microphoneMutilBoradcastStop({TaskCode:this.micMutilBoradcastTask.task.TaskCode})
}}}else{e({code:g.FailedInfos&&g.FailedInfos[0]&&g.FailedInfos[0].Status||g.Status,message:"microphone mutil-boradcast start error"});
this.micMutilBoradcastTask=null}}.bind(this)).error(function(g){this.micMutilBoradcastTask=null;e(g)}.bind(this))
}catch(b){e({code:-1,message:"microphone mutil-boradcast start error"});this.micMutilBoradcastTask=null
}}.bind(this))};SOS.SDK.prototype.microphoneMutilBoradcastStop=function(a){tsk_utils_log_info("sos microphone mutil-boradcast stop Params:",a);
return new Promise(function(f,e){var d=this._commonCheck(a);if(d){e(d);return}var c=(a&&a.TaskCode)||(this.micMutilBoradcastTask&&this.micMutilBoradcastTask.task&&this.micMutilBoradcastTask.task.TaskCode);
try{if(c&&this.micMutilBoradcastTask&&this.micMutilBoradcastTask.key){this._removeInternalListener(this.micMutilBoradcastTask.key);
clearTimeout(this.micMutilBoradcastTask.taskTimer);this.micMutilBoradcastTask=null;if(this.sdk){this.sdk.setAcceptAccessCode(null);
this.fetch("/sos/v1/mntn/business/boardcast/stop",{TaskCode:c,}).then(function(g){if(g&&g.Status===0){}else{e({code:g&&g.Status||-1,message:"microphone mutil-boradcast stop error"})
}}.bind(this)).error(e);setTimeout(function(){if(this.sdk&&this.room){this.sdk.forceExitRoom()}f()}.bind(this),1000)
}else{e({code:-1,message:"sdk has stopped"})}}else{this.micMutilBoradcastTask=null;e({code:-1,message:"there have no microphone mutil-boradcast task"})
}}catch(b){this.micMutilBoradcastTask=null;e({code:-1,message:"microphone mutil-boradcast stop error"})
}}.bind(this))};