var __awaiter=this&&this.__awaiter||function(n,e,t,r){function i(n){return n instanceof t?n:new t((function(e){e(n)}))}return new(t||(t=Promise))((function(t,u){function o(n){try{c(r.next(n))}catch(n){u(n)}}function f(n){try{c(r["throw"](n))}catch(n){u(n)}}function c(n){n.done?t(n.value):i(n.value).then(o,f)}c((r=r.apply(n,e||[])).next())}))};var __generator=this&&this.__generator||function(n,e){var t={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},r,i,u,o;return o={next:f(0),throw:f(1),return:f(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function f(n){return function(e){return c([n,e])}}function c(f){if(r)throw new TypeError("Generator is already executing.");while(o&&(o=0,f[0]&&(t=0)),t)try{if(r=1,i&&(u=f[0]&2?i["return"]:f[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,f[1])).done)return u;if(i=0,u)f=[f[0]&2,u.value];switch(f[0]){case 0:case 1:u=f;break;case 4:t.label++;return{value:f[1],done:false};case 5:t.label++;i=f[1];f=[0];continue;case 7:f=t.ops.pop();t.trys.pop();continue;default:if(!(u=t.trys,u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){t=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]