declare var Reflect ; var extendStatics = function ( d , b ) : any { extendStatics = Object . setPrototypeOf || ( { __proto__ : [ ] } instanceof Array && function ( d , b ) { d . __proto__ = b ; } ) || function ( d , b ) { for ( var p in b ) if ( Object . prototype . hasOwnProperty . call ( b , p ) ) d [ p ] = b [ p ] ; } ; return extendStatics ( d , b ) ; } ; export function __extends ( d , b ) { if ( typeof b !== 'function' && b !== null ) throw new TypeError ( 'Class extends value ' + String ( b ) + ' is not a constructor or null' ) ; extendStatics ( d , b ) ; function __ ( ) { this . constructor = d ; } d . prototype = b === null ? Object . create ( b ) : ( __ . prototype = b . prototype , new __ ( ) ) ; } export var __assign = function ( ) { __assign = ( < any > Object ) . assign || function __assign ( t ) { for ( var s , i = 1 , n = arguments . length ; i < n ; i ++ ) { s = arguments [ i ] ; for ( var p in s ) if ( Object . prototype . hasOwnProperty . call ( s , p ) ) t [ p ] = s [ p ] ; } return t ; } ; return __assign . apply ( this , arguments ) ; } ; export function __rest ( s , e ) { var t = { } ; for ( var p in s ) if ( Object . prototype . hasOwnProperty . call ( s , p ) && e . indexOf ( p ) < 0 ) t [ p ] = s [ p ] ; if ( s != null && typeof Object . getOwnPropertySymbols === 'function' ) for ( var i = 0 , q = Object . getOwnPropertySymbols ( s ) ; i < q . length ; i ++ ) { if ( e . indexOf ( q [ i ] ) < 0 && Object . prototype . propertyIsEnumerable . call ( s , q [ i ] ) ) t [ q [ i ] ] = s [ q [ i ] ] ; } return t ; } export function __decorate ( decorators , target , key , desc ) { var c = arguments . length , r = c < 3 ? target : desc === null ? desc = Object . getOwnPropertyDescriptor ( target , key ) : desc , d ; if ( typeof Reflect === 'object' && typeof Reflect . decorate === 'function' ) r = Reflect . decorate ( decorators , target , key , desc ) ; else for ( var i = decorators . length - 1 ; i >= 0 ; i -- ) if ( d = decorators [ i ] ) r = ( c < 3 ? d ( r ) : c > 3 ? d ( target , key , r ) : d ( target , key ) ) || r ; return c > 3 && r && Object . defineProperty ( target , key , r ) , r ; } export function __awaiter ( thisArg , _arguments , P , generator ) { function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; } return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) { function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } } function rejected ( value ) { try { step ( generator [ 'throw' ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } } function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; } step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ; } ) ; } export function __generator ( thisArg , body ) { var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : < any > [ ] , ops : < any > [ ] } , f , y , t , g ; return g = { next : verb ( 0 ) , 'throw' : verb ( 1 ) , 'return' : verb ( 2 ) } , typeof Symbol === 'function' && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ; function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; } function step ( op ) { if ( f ) throw new TypeError ( 'Generator is already executing.' ) ; while ( _ ) try { if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ 'return' ] : op [ 0 ] ? y [ 'throw' ] || ( ( t = y [ 'return' ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ; if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ; switch ( op [ 0 ] ) { case 0 : case 1 : t = op ; break ; case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ; case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ; case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ; default : if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { ( < any > _ ) = 0 ; continue ; } if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; } if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; } if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; } if ( t [ 2 ] ) _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ; } op = body . call ( thisArg , _ ) ; } catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; } if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ; } } export function __spreadArray ( to , from , pack ) { if ( pack || arguments . length === 2 ) for ( var i = 0 , l = from . length , ar ; i < l ; i ++ ) { if ( ar || ! ( i in from ) ) { if ( ! ar ) ar = Array . prototype . slice . call ( from , 0 , i ) ; ar [ i ] = from [ i ] ; } } return to . concat ( ar || Array . prototype . slice . call ( from ) ) ; }