!function(n){function t(){return{type:48,children:Array.prototype.slice.call(arguments)}}function e(n){return{type:6,content:n}}function r(n){return{type:3,encapsulates:n}}function o(n){return{type:2,out:n}}function i(n){return{type:4,out:n}}function u(n,t){function e(){return n.charCodeAt(i++)}function r(){var n=e();if(128&n){var t=127&n;if(t>2||0==t)throw"Unsupported length";n=0;for(var r=0;r<t;r++)n+=e()<<8*(t-1-r);return n}return n}function o(t){var c=e(),a=r();if("type"in t&&t.type!=c)throw"Unexpected type";if("content"in t&&t.content!=n.substr(i,a))throw"Unexpected content";if("out"in t&&(u[t.out]=new BigInteger(n.substr(i,a),256)),"children"in t){var f,h;for(f=0,h=i+a;i<h;f++){if(f>=t.children.length)throw"Too many children";o(t.children[f])}if(f<t.children.length)throw"Too few children";if(i>h)throw"Children too large"}else if("encapsulates"in t){if(0!=e())throw"Encapsulation expected";o(t.encapsulates)}else i+=a}var i=0,u={};if(o(t),i!=n.length)throw"Too much data";return u}function c(n){try{return u(atob(n),f)}catch(t){return console.log("Invalid RSA public key: "+t),null}}function a(n,t,e){function r(){return a.charCodeAt(f++)}var o=c(n);if(!o)return!1;o.e=parseInt(o.e.toString(16),16);var i=new BigInteger(atob(t),256),a=i.modPowInt(o.e,o.n).toString(256);try{var f=0;if(1!=r())throw"Wrong padding in signature digest";for(;255==r(););if(0!=a.charCodeAt(f-1))throw"Wrong padding in signature digest";var l=u(a.substr(f),h).sha1,s=new BigInteger(SHA1(e),16);return 0==l.compareTo(s)}catch(d){return console.log("Invalid encrypted signature: "+d),!1}}var f=t(t(e("*H÷\r"),{}),r(t(o("n"),o("e")))),h=t(t(e("+"),{}),i("sha1"));n.verifySignature=a}(this);