ÿØÿà JFIF    ÿÛ „  ( %!1"%)+...383-7(-.+  -%%--------+------------/----------------------------ÿÀ  ¶" ÿÄ     ÿÄ @    !1AQaq‘¡"±ÁÑð2’BRráS‚ñ3b¢CT²Ò #cÿÄ    ÿÄ '   1!AQ2a"‘±#ÿÚ   ? ò(/p‘—–¢·,M|¯G»R£üešT. ôŸEoCFñ‡ 4ÔkåóxR|µÁ¨ÓDà!Ç´µ˜‡p ÍQ‹§!þž^õWsŒy  åÁ§$á«%ºq˜™JyyË0y«^Ϗ -3ÃÏËÈ£Æ\P’ä„s&•‹Üs üô'àWt¹pñCp$bÚF`·7.^)¾!)ÒÙ˜–ÅÏš^h¾ø³·ìe±ŒaeÖ—Í,e=B}Jéߦ$$½—šÙÜCC¯¶è8β–Åkèwx LÉngT±æ¹£Ócœ¿Í/©Éÿ ‰ÚCÒ­mq;Tt¶–}0"zÖPcd1š­¤tˆ„ÐÓâqú[™öUCŠ2޿د­É(¸ßúçšmW,Ò ºf‹Ån™ÄLêÁ8üÁkÁ€L¥ÍuJ1œôrÂSŒÓöt!7EUíïb)AËi¬â-ÙHk8òÁiXYwÅ)O^"ÇØriÛô{»wRUKÙÏÚlÓ¬€‚’שT ] ªb—ÊîKC^×M“xùäñz¬zJ× {4[¹M'IÆeH1LCWÕ]œûº WDæà°OÅ‚¹c²ÞuA–rL`HšpCez‡V’— Ž‚Ë„–ñ­'µR0ÕÖ=À:±G»C\nÆÉ5*¢ †3šhQ4ýÒi$Õ1"Ü]¢p-q3zcQ$ªö¨¥æf›‘»´ÝÚHá„e²JÇ–iÊ:·à¬Øc5Åk»Laª*wi [0Ówk ¦a¦0Õ²ÅÅ‚T¸’³q:Æ<¹ú Ò˜Æ}2VE•Ѐp¡Ô3Úº …h³^LJºçì¥Ánó|˜ÖˆÎˆ+« ¦dø‘Mº–d\ªDðÛ„Ì×LÝ——Ð9Ç|•FèçVm™¨€™3õS–9Äå¢<̉Ìm¢±`·º˜&Z²ž Ë®D«¶»6™‰©­HÈ Àá«h­i³04æ’hxœi3ï¨(ÓL·†‹¶ËpŒ ƒÜÒ? :õdsÀ –3æÓ·Üjâ¬9—]8n¼&]I F£¼…ì–—Œ0v°LǐÅfÛ2TÖ’aµ˜N@ÖBSÏ^à´4-±°b×nÈÈœÆD=KdŒø…ÄÈK,›ÖR§fjü$^ÔÎ!„6^ s:Üun\ôkCÞò÷<—Lúl Í›G¹ÀPá¼Nc¡šÒ…ÙWͳœ±vÊáЄ×9‹P‰cEØ‘™›µŸP<×g1 º©Ø¬wiÁ^l5× I/';Ë+´Z‡ÓÄFÕp[Èð’ HÄ ó 9¬Dl4“é±Ï”V=^Hð;žLädÉa‚°Ë,#/Ž~²BÔÛ QãñQtIeórVB,ÏÂf‹4#Μc‹É3ZIÖ Œ¢¥·üxa‡Ãçè„jŠ[5 Ä!U?,3žÎ×…ðdÓ÷háŠA‰ìÄ4÷ÃÜZÃE{‰®+W\ZÍE[‰»µk»MÝ­`¢©†˜ÃV‹-f¢¡†¢a«eŠ%«Y¨©q%jâd,Ôq`) ¤¦…šˆ ¦E>0Ùb²t–Ÿ  ÷jsςҒKÈcø(é›;k(’#ôŒQ ™C> õ³M9óºÆµ¤çâ;uÀ)5>RÔ¸fÓ~Ȧ—’-$fe«"FâUˆÊwµPÏu w+"åÉó¨6s™Û9(À¨ù©hE°½†n`m~“@©›p!Vkhµ Á1šbEqqÊ@ºèl›2 –Yã%‘‚hÛ{a¶‡ÅÞM²¬çL34®Çl]®‹ŽØŒm'RÜe35æöˆ­Á­ cP9šeÁköo´L³Ì=p8]”‡B¶,šº|ɏdzXˆØk*ÇÚ{#ñ‰pã(€¶‡9ý'šÜ³½¯kƒ†Â’ëSOƒ•Å®H6+a¢µˆ‹Y¨b˜b+XˆÖ!°u!¢"µˆˆn2ˆ Å0Ä`Å Ô®c(ÓÜGº•Ä»Œ âWî%q.áÐÄ÷î%umÍ£+ÜQ,Vn¦-GphU¸¢X­&,Gt ·K¢ÅÅ·¥RÄÊÉbKn N­R2g$VµÕó Qr#–ÓZUÏð0ÎtÙÀœz ëöo“Îk¯n„T°"SÞ+³/…€½"ižãO%Í%&Δâ‘ËØ´IˆÓ°Ë‰ÞM3.™yçÁzit›`4C`k¢¼á!álÄï sÂ[×!¤l¾æo"ƒIÔ'@ªu)3›ô®“@Z à¾] üœ'‡4¸PÞkÁ-qÄH‰ÓÍBd´ÿ —¹°ÄA&ÊUC„öz‚‚RæŠtf¬>˜ÑidšEçÑL÷áý¡V±h§­c¿¥¨ƒ@g¼…Ýö^ÞËc.ž„æ“I[ ª+·zÐÒÚ,½Ð»¶€C›7jk$๖€Ž¾ÅÙpp¶ÍþéΤ ½ØÎŒq ñpæžÅ¥#Øâ49ÃÂK^MYV“,¶Éz_òæ:…;Õ«¦I3âJ£¤û5$7Èxün\â]Êe¯(Ÿ&Ž‹¶2<6Ćf× æ¢ƱqWı[(ÙÂŽç‚T7¨@ÈÉÍß‚ïÙ"&3TYlGށ†)†#5ŠA©^T2ÆÁ†)©†©†¤yGXÁ†©"†)©¼ÅV WS†#©]R–r‹q5ÕbâWþBh¯u+ªÅÄ×ü„nÑ^êkªÁj‰jeœWˆÕÕ`µDµ2Ì+Ä µDµµ5Ô{¤Þ0RF’H÷AÛ<ÊÁ§ ƈæ0Ñ£ê4 öÚµ[¬/1²€â<-¬šö²r×0o×w ´xÐÒË„ g01¬„åEM蛇Ã\6µE›‘fÙO k÷CºnÓ1`iîÒ² áÂ!ÑLÄÿ ³¬\õ*:M=Ç»c‹2[‰ØsÕLò\ŒK L^™üÄN\¶#» Ç\……ßïIœÉ$¸ÎñÍ®ÔHÇ Ûí/´>Li”„†g^$ 7NÍÑÑ2M2ªNg=k½Ð}Ÿl6‡ —JWˆ”ÞéT·+µ¦üÂFè¢Vs6ýÆ4»2+2IÝ9ô9®ÇGÙÇ1+Ä8;*Õ§ž½D*îÑWÚçá3Ma¤·ˆ¥t}š²Ü…Q+Æüµ8HíS”üxGéÁˆ¦Ël„éÈ 5 µÄƒ6äÜ(kIš¯S†fÖ&¸®×v|Äyˆ*禌Éù@7-®Ä[]ÎÖ¿ê`º…=:…žJVnݳvðÖKE¼‚ »mà ÷f®:Ë ™–4rð¡4` ܹçž~‹C=œ…¾Ïj|VDtK.ƒ"9 Ï ­–éXá³6WÒïIL-Ї Ç PKǨ\eV   helpers.phpnu[.+)\>\.\+\)+)/U', $pattern, $captures); $names = $captures['name'] ?? []; foreach ($names as $name) { $result[$name] = $matches[$name] ?? null; } return $get ? $result[$get] ?? $default : $result; } function wrap_str($str = '', $first_delimiter = "'", $last_delimiter = null) { if (!$last_delimiter) { return $first_delimiter . $str . $first_delimiter; } return $first_delimiter . $str . $last_delimiter; } function getExtensionImageFromUrl($url) { $url = explode('.', $url); $extension = end($url); return $extension; } function clearCacheNode() { try { Http::withOptions(['verify' => false]) ->asForm() ->post(env('WA_URL_SERVER') . '/backend-clearCache'); return true; } catch (\Throwable $th) { return false; } } function setEnv(string $key, string $value) { $env = array_reduce( file(base_path('.env'), FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES), function ($carry, $item) { list($key, $val) = explode('=', $item, 2); $carry[$key] = $val; return $carry; }, [] ); $env[$key] = $value; foreach ($env as $k => &$v) { $v = "{$k}={$v}"; } file_put_contents(base_path('.env'), implode("\r\n", $env)); } ?> PKǨ\Console/Kernel.phpnu[command('schedule:cron')->everyFiveMinutes(); $schedule->command('subscription:check')->daily(); $schedule->command('start:blast')->everyMinute(); // $schedule->command('schedule:blast')->everyMinute(); } /** * Register the commands for the application. * * @return void */ protected function commands() { $this->load(__DIR__.'/Commands'); require base_path('routes/console.php'); } } PKǨ\!Console/Commands/ScheduleCron.phpnu[get(); try { $url = env('WA_URL_SERVER').'/backend-initialize'; Log::info('Auto connect whatsapp running'); foreach ($numbers as $n) { $campaign = $n->campaigns()->where('status','processing')->count(); if($campaign == 0){ $result = Http::withOptions(['verify' => false])->asForm()->post($url,['token' => $n->body]); Log::info($result); } // delay 2 seconds } } catch (\Throwable $th) { Log::error($th); Log::info('Failed auto connect whatsapp'); } } } PKǨ\/|gg&Console/Commands/CheckSubscription.phpnu[where('subscription_expired', '<', date('Y-m-d'))->get(); Log::info('Checking subscription'); foreach ($user_with_active_subscription as $user) { $numbers = Number::whereUserId($user->id)->whereStatus('Connected')->get(); foreach ($numbers as $number) { // delete folder in credentials $path = base_path('credentials/'.$number->body); if(file_exists($path)){ // delete all file from path $files = glob($path.'/*'); // get all file names foreach($files as $file){ // iterate files if(is_file($file)) unlink($file); // delete file } rmdir($path); // delete folder } $number->status = 'Disconnected'; $number->save(); } $user->active_subscription = 'inactive'; $user->subscription_expired = null; $user->save(); } } } PKǨ\Ol Console/Commands/StartBlast.phpnu[wa = $wa; } /** * Execute the console command. * * @return int */ public function handle() { $waitingCampaigns = Campaign::where('schedule', '<=', now()) ->whereIn('status', ['waiting', 'processing']) ->with('phonebook', 'device') ->get(); foreach ($waitingCampaigns as $campaign) { $countPhonebook = $campaign->phonebook->contacts()->count(); if ($countPhonebook == 0) { $campaign->update(['status' => 'failed']); continue; } try { if ($campaign->device->status != 'Connected') { $campaign->update(['status' => 'paused']); continue; } $campaign->update(['status' => 'processing']); $pendingBlasts = $this->getPendingBlasts($campaign); if ($pendingBlasts->count() == 0) { continue; } // send progress $blastdata = []; foreach ($pendingBlasts as $blast) { $blastdata[] = [ 'receiver' => $blast->receiver, 'message' => $blast->message, ]; } $data = [ 'data' => $blastdata, 'delay' => $campaign->delay > 20 ? 20 : $campaign->delay, 'campaign_id' => $campaign->id, 'sender' => $campaign->device->body, ]; $results = $this->wa->startBlast($data); $campaign->update(['status' => 'processing']); } catch (\Throwable $th) { $campaign->blasts()->where('status','pending')->update(["status" => "failed"]); $campaign->update(['status' => 'failed']); Log::error($th); } } return 0; } public function getPendingBlasts($campaign) { $pendingBlasts = $campaign ->blasts() ->where('status', 'pending') ->limit(15) ->get(); if ($pendingBlasts->count() == 0) { $campaign->update(['status' => 'completed']); return collect(); } return $pendingBlasts; } } PKǨ\=22Models/Blast.phpnu[belongsTo(User::class); } public function getUpdatedAtAttribute($value) { return \Carbon\Carbon::parse($value)->format('D M Y H:i:s'); } } PKǨ\ Models/User.phpnu[ */ protected $fillable = [ 'username', 'email', 'password', 'api_key', 'chunk_blast' ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; public function devices(){ return $this->hasMany(Device::class); } public function autoreplies(){ return $this->hasMany(Autoreply::class); } public function contacts(){ return $this->hasMany(Contact::class); } public function phonebooks(){ return $this->hasMany(Tag::class); } public function blasts(){ return $this->hasMany(Blast::class); } public function campaigns(){ return $this->hasMany(Campaign::class); } public function messageHistories(){ return $this->hasMany(MessageHistory::class); } // get expired subscription public function getExpiredSubscriptionAttribute(){ if($this->active_subscription == 'inactive'){ return 'No subscription'; } else if($this->active_subscription == 'lifetime'){ return '-'; } else if($this->active_subscription == 'active'){ $expired_date = $this->subscription_expired; $expired_date = strtotime($expired_date); $current_date = strtotime(date('Y-m-d')); if($expired_date < $current_date){ return Carbon::parse($this->subscription_expired)->diffForHumans(); } else { // count days $days = $expired_date - $current_date; $days = $days / (60 * 60 * 24); $days = round($days); return $days.' days left'; } } } // get booliean expired subscription public function getIsExpiredSubscriptionAttribute(){ if($this->active_subscription == 'inactive'){ return true; } else if($this->active_subscription == 'lifetime'){ return false; } else if($this->active_subscription == 'active'){ $expired_date = $this->subscription_expired; $expired_date = strtotime($expired_date); $current_date = strtotime(date('Y-m-d')); if($expired_date < $current_date){ return true; } else { return false; } } } // get total device connect and disconnect public function getTotalDeviceAttribute(){ $connectedDevice = Device::whereUserId($this->id)->whereStatus('Connected')->count(); $disconnectedDevice = Device::whereUserId($this->id)->whereStatus('Disconnected')->count(); return 'Connected: '.$connectedDevice.', Disconnected: '.$disconnectedDevice; } } PKǨ\Q+;Models/Device.phpnu[belongsTo(User::class); } public function autoreplies(){ return $this->hasMany(Autoreply::class,'device','body'); } public function campaigns(){ return $this->hasMany(Campaign::class); } } PKǨ\݉Models/Campaign.phpnu[hasMany(Blast::class); } public function phonebook(){ return $this->belongsTo(Tag::class); } public function device(){ return $this->belongsTo(Device::class); } public function scopeFilter ($query, $request) { return $query->when($request->device , function($q) use ($request){ return $q->whereHas('device', function($q) use ($request){ return $q->where('body','=', $request->device); }); })->when($request->status , function($q) use ($request){ if ($request->status == 'all') { return $q; } else { return $q->where('status','=', $request->status); } }); } public function getScheduleAttribute($value){ return $value ? date('d M y H:i', strtotime($value)) : null; } } PKǨ\Jˏ{{Models/Autoreply.phpnu[belongsTo(User::class); } public function device (){ return $this->belongsTo(Device::class); } public static function boot(){ parent::boot(); static::updated(function($autoreply){ clearCacheNode(); }); static::created(function($autoreply){ clearCacheNode(); }); } } PKǨ\33Models/Tag.phpnu[hasMany(Contact::class); } } PKǨ\AModels/MessageHistory.phpnu[belongsTo(Device::class); } } PKǨ\dAAModels/Contact.phpnu[belongsTo(Tag::class); } } PKǨ\hfModels/Schedule.phpnu[ PKǨ\ p$4%Services/Impl/WhatsappServiceImpl.phpnu[url = env('WA_URL_SERVER'); } public function fetchGroups($device): object { $fetch = Http::withOptions(['verify' => false])->asForm()->post($this->url .'/backend-getgroups',['token' => $device->body]); return json_decode($fetch->body()); } public function startBlast($data): object { $res = Http::withOptions(['verify' => false]) ->asForm() ->post( $this->url . '/backend-blast', [ 'data' => json_encode($data), 'delay' => 1, ] ); return json_decode($res->body()); } public function sendText($request,$receiver): object | bool { $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-text', [ 'token' => $request->sender, 'number' =>$receiver, 'text' => $request->message, ]); return json_decode($results->body()); } public function sendMedia($request,$receiver): object | bool { // GET FILE NAME from $request->url $fileName = explode('/', $request->url); $fileName = explode('.', end($fileName)); $fileName = $fileName[0]; $data = [ 'token' => $request->sender, 'url' => $request->url, 'number' => $receiver, 'caption' => $request->caption ?? '', 'filename' => $fileName, 'type' => $request->media_type, 'ptt' => $request->ptt ? ($request->ptt == 'vn' ? true : false) : false, ]; $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-media', $data); return json_decode($results->body()); } public function sendButton($request,$receiver): object | bool { $buttons = []; foreach ($request->button as $button) { $buttons[] = ['displayText' => $button, ]; } // check url if exists,set to image if not exists cheeck thumbnail if exists set to image $image = $request->url ? $request->url : ($request->image ? $request->image : ''); $data = [ 'token' => $request->sender, 'number' => $receiver, 'button' => json_encode($buttons), 'message' => $request->message, 'footer' => $request->footer ?? '', 'image' => $image, ]; ; $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-button', $data); return json_decode($results->body()); } public function sendTemplate($request,$receiver): object | bool { $templates = []; $ii = 1; foreach ($request->template as $template) { $ii++; $typedest = explode('|', $template)[0] == 'url' ? 'url' : (explode('|', $template)[0] == 'call' ? 'phoneNumber' : 'id'); $type = explode('|', $template)[0] == 'id' ? 'quickReplyButton' : explode('|', $template)[0] . 'Button'; $templates[] = [ 'index' => $ii, $type => [ 'displayText' => explode('|', $template)[1], $typedest => explode('|', $template)[2], ], ]; } $image = $request->url ? $request->url : ($request->image ? $request->image : ''); $data = [ 'token' => $request->sender, 'number' => $receiver, 'button' => json_encode($templates), 'text' => $request->message, 'footer' => $request->footer ?? '', 'image' => $image, ]; $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-template', $data); return json_decode($results->body()); } public function sendList($request,$receiver) : Object | bool { $section['title'] = $request->title; $i = 1; foreach ($request->list as $menu) { $i++; $section['rows'][] = [ 'title' => $menu, 'rowId' => 'id' . $i, 'description' => '', ]; } $data = [ 'token' => $request->sender, 'number' => $receiver, 'list' => json_encode($section), 'text' => $request->message, 'footer' => $request->footer ?? '', 'title' => $request->title, 'buttonText' => $request->buttontext, ]; $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-list', $data); return json_decode($results->body()); } public function sendPoll ($request ,$receiver) : Object | bool { $optionss = []; foreach ($request->option as $opt) { $optionss[] = $opt; } $data = [ "token" => $request->sender, "number" => $receiver, "name" => $request->name, "options" => json_encode($optionss), "countable" => $request->countable === "1" ? true : false, ]; $results = Http::withOptions(['verify' => false])->asForm()->post($this->url . '/backend-send-poll', $data); return json_decode($results->body()); } } ?>PKǨ\Z$Services/Impl/MessageServiceImpl.phpnu[ $text]; } public function formatImage($url, $caption = ''): array { return ['image' => ['url' => $url], 'caption' => $caption]; } // formating buttons public function formatButtons($text, $buttons, $urlimage = '', $footer = '' ): array { $optionbuttons = []; $i = 1; foreach ($buttons as $button) { $optionbuttons[] = [ 'buttonId' => "id$i", 'buttonText' => ['displayText' => $button], 'type' => 1, ]; $i++; } $valueForText = $urlimage ? 'caption' : 'text'; $message = [ $valueForText => $text, 'buttons' => $optionbuttons, 'footer' => $footer, 'headerType' => 1, ]; if ($urlimage) { $message['image'] = ['url' => $urlimage]; } return $message; } // formating templates public function formatTemplates( $text,$buttons, $urlimage = '', $footer = ''): array { $templateButtons = []; $i = 1; foreach ($buttons as $button) { $type = explode('|', $button)[0] . 'Button'; $textButton = explode('|', $button)[1]; $urlOrNumber = explode('|', $button)[2]; $typeIcon = explode('|', $button)[0] === 'url' ? 'url' : 'phoneNumber'; $templateButtons[] = [ 'index' => $i, $type => ['displayText' => $textButton, $typeIcon => $urlOrNumber], ]; $i++; } $valueForText = $urlimage ? 'caption' : 'text'; $templateMessage = [ $valueForText => $text, 'footer' => $footer, 'templateButtons' => $templateButtons, 'viewOnce' => true, ]; //add image to templateMessage if exists if ($urlimage) { $templateMessage['image'] = ['url' => $urlimage]; } return $templateMessage; } public function formatLists ($text,$lists,$title,$name,$buttonText,$footer = '') : array { $section = [ 'title' => $title, ]; $i = 1; foreach ($lists as $menu) { $i++; $section['rows'][] = [ 'title' => $menu, 'rowId' => 'id' . $i, 'description' => '', ]; } $listMessage = [ 'text' => $text, 'footer' => $footer, 'title' => $name, 'buttonText' => $buttonText, 'sections' => [$section], 'viewOnce' => true, ]; return $listMessage; } public function format ($type, $data) : array { switch ($type) { case 'text': $reply = $this->formatText($data->message); break; case 'image': $reply = $this->formatImage($data->image, $data->caption ); break; case 'button': $buttons = []; foreach ($data->button as $button) { $buttons[] = $button; } $reply = $this->formatButtons( $data->message,$buttons,$data->image ? $data->image : '',$data->footer ?? '' ); break; case 'template': $buttons = []; foreach ($data->template as $button) { $buttons[] = $button; } try { $reply = $this->formatTemplates( $data->message,$buttons, $data->image ? $data->image : '',$data->footer ?? '' ); } catch (\Throwable $th) { throw new \Exception('Invalid button type'); } break; case 'list': $reply = $this->formatLists($data->message,$data->list,$data->title,$data->name,$data->buttontext,''); break; default: # code... break; } return $reply; } } ?>PKǨ\l deeServices/WhatsappService.phpnu[PKǨ\k-Imports/ContactImport.phpnu[tag = $tag; $this->user = Auth::user()->id; } public function collection(Collection $collection) { Log::info($collection); foreach($collection as $row){ if(strtoupper($row[0]) == 'NAME' && strtoupper($row[1]) == 'NUMBER') continue; if($row[0] == null || $row[1] == null) continue; Contact::create([ 'user_id' => $this->user, 'tag_id' => $this->tag, 'name' => $row[0], 'number' => (string)$row[1] ]); } } } PKǨ\^d^U U Http/Kernel.phpnu[ */ protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, \App\Http\Middleware\TrustProxies::class, \Fruitcake\Cors\HandleCors::class, \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, ]; /** * The application's route middleware groups. * * @var array> */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\appInstalled::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\isVerifiedLicense::class, ], 'api' => [ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'checkApiKey' => \App\Http\Middleware\CheckApiKey::class, 'admin' => \App\Http\Middleware\AdminMiddleware::class, ]; } ?>PKǨ\e̊.Http/Controllers/MessagesHistoryController.phpnu[user()->messageHistories()->with('device')->latest()->paginate(15); return view('pages.histories.message', compact('messages')); } public function resend (Request $request, WhatsappService $wa){ try { $history = MessageHistory::find($request->id); $device = $history->device; if ($history->status == 'success') { return response()->json(['error' => true , 'msg' => 'Message already sent, refresh page to update status']); } if ($device->status != 'Connected') { return response()->json(['error' => true , 'msg' => 'Device is not connected']); } $params = json_decode($history->payload); if ($history->type == 'text') { $res = $wa->sendText($params, $history->number); }else if ($history->type == 'media') { $res = $wa->sendMedia($params, $history->number); }else if ($history->type == 'button') { $res = $wa->sendButton($params, $history->number); }else if ($history->type == 'template') { $res = $wa->sendTemplate($params, $history->number); }else if ($history->type == 'list') { $res = $wa->sendList($params, $history->number); } if($res->status){ $history->update(['status' => 'success']); return response()->json(['error' => false , 'msg' => 'Resend message success']); } else { return response()->json(['error' => true , 'msg' => 'Failed to resend message to this number,make sure the receiver is registered on whatsapp']); } } catch (\Throwable $th) { Log::error($th->getMessage()); return response()->json(['error' => true , 'msg' => 'Something went wrong while resending message']); } } } PKǨ\'((&Http/Controllers/Api/ApiController.phpnu[wa = $wa; } private static function validateparams($request) { $rules = (new SendMessageRequest())->rules(); $validated = validator($request->all(), $rules); if ($validated->fails()) { return response()->json(['status' => false, 'msg' => 'Invalid data!', 'errors' => $validated->errors(),],Response::HTTP_BAD_REQUEST); } return true; } public function messageText(Request $request) { $request->merge(['type' => 'text']); if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendText($request, $number); self::inputDate($request,$number,$sendMessage); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } public function messageMedia(Request $request) { $request->merge(['type' => 'media']); if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendMedia($request, $number); self::inputDate($request,$number,$sendMessage); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } public function messageButton(Request $request) { $request->merge(['type' => 'button']); // if the method is GET, change $request->button , to params button explode by comma if ($request->isMethod('get')) { $request->merge(['button' => explode(',', $request->button)]); } if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendButton($request, $number); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { Log::error($th); return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } public function messageTemplate(Request $request) { $request->merge(['type' => 'template']); // if the method is GET, change $request->button , to params button explode by comma if ($request->isMethod('get')) { $request->merge(['template' => explode(',', $request->template)]); } if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendTemplate($request, $number); self::inputDate($request,$number,$sendMessage); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } public function messageList(Request $request) { $request->merge(['type' => 'list']); // if the method is GET, change $request->button , to params button explode by comma if ($request->isMethod('get')) { $request->merge(['list' => explode(',', $request->list)]); } if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendList($request, $number); self::inputDate($request,$number,$sendMessage); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } public function messagePoll(Request $request) { $request->merge(['type' => 'poll']); // if the method is GET, change $request->button , to params button explode by comma if ($request->isMethod('get')) { $request->merge(['option' => explode(',', $request->option)]); } if (self::validateparams($request) !== true) { return self::validateparams($request); } $receivers = explode('|', $request->number); $receivers = array_unique($receivers); $success = 0; try { foreach ($receivers as $number) { $sendMessage = $this->wa->sendPoll($request, $number); self::inputDate($request,$number,$sendMessage); $success = $sendMessage->status ? $success + 1 : $success; } return $this->handleResponse($success); } catch (\Throwable $th) { return response()->json(['status' => false,'msg' => 'Failed to send message!','errors' => 'Failed to access whatsapp server',], Response::HTTP_BAD_REQUEST); } } private function handleResponse($success) { if ($success > 0) { return response()->json( ['status' => true,'msg' => 'Message sent successfully!'],Response::HTTP_OK); } else { return response()->json(['status' => false,'msg' => 'Failed to send message!'],Response::HTTP_BAD_REQUEST ); } } private static function inputDate($request,$number,$result) : void { try { $device = Device::whereBody($request->sender)->first(); // exclude _token and _method from $request->all() $data = array_diff_key($request->all(), array_flip(['_token', '_method'])); MessageHistory::create([ 'user_id' => $device->user_id, 'device_id' => $device->id, 'number' => $number, 'message' => $request->message ? $request->message :($request->caption ? $request->caption : ''), 'payload' => json_encode($data), 'status' => $result->status ? 'success' : 'failed', 'type' => $request->type, 'send_by' => 'api', ]); $device->update([ 'message_sent' => $device->message_sent + 1, ]); } catch (\Throwable $th) { Log::error('Error input data to database: ' . $th->getMessage()); } } public function generateQr(Request $request) { $validated = validator($request->all(), [ 'api_key' => 'required|exists:users,api_key', 'device' => 'required|exists:devices,body', ]); if ($validated->fails()) { return response()->json(['status' => false, 'msg' => 'Invalid data!', 'errors' => $validated->errors(),],Response::HTTP_BAD_REQUEST); } $user = User::whereApiKey($request->api_key)->first(); if($user->api_key != $request->api_key){ return response()->json(['status' => false,'msg' => 'Wrong api key!'],Response::HTTP_BAD_REQUEST); } if ($user->is_expired_subscription) { return response()->json( ['status' => false,'msg' => 'Your subscription has expired!',], Response::HTTP_BAD_REQUEST); } if (!$request->has('device') || !$request->has('api_key')) { return response()->json(['status' => false,'msg' => 'Wrong parameters!', ],Response::HTTP_BAD_REQUEST); } $device = Device::whereBody($request->device)->first(); if ($device->status == 'Connected') { return response()->json(['status' => false,'msg' => 'Device already connected!', ],Response::HTTP_BAD_REQUEST); } try { $post = Http::withOptions(['verify' => false])->asForm()->post(env('WA_URL_SERVER') . '/backend-generate-qr', ['token' => $request->device,]); } catch (\Throwable $th) { return response()->json( [ 'status' => false, 'msg' => 'Failed to access the whatsapp server!', ], Response::HTTP_BAD_REQUEST ); } // send respon json from post return response()->json(json_decode($post->body()), Response::HTTP_OK); } } PKǨ\H.##&Http/Controllers/SettingController.phpnu[middleware('admin')->except( 'activate_license', 'install', 'test_database_connection' ); } public function index() { return view('pages.admin.settings'); } public function setServer(Request $request) { $request->validate([ 'typeServer' => ['required'], 'portnode' => ['required'], 'urlnode' => ['required_if:typeServer,other', 'nullable', 'url'], ]); $urlnode = $request->typeServer === 'other' ? $request->urlnode . ':' . $request->portnode : ($request->typeServer === 'hosting' ? url('/') : 'http://localhost:' . $request->portnode); setEnv('TYPE_SERVER', $request->typeServer); setEnv('PORT_NODE', $request->portnode); setEnv('WA_URL_SERVER', $urlnode); return back()->with('alert', [ 'type' => 'success', 'msg' => 'Success Update configuration!', ]); } public function activate_license(Request $request) { try { $push = Http::withOptions(['verify' => false]) ->asForm() ->post( 'https://license-management.m-pedia.my.id/api/license/activate', [ 'email' => $request->email, 'host' => $_SERVER['HTTP_HOST'], 'licensekey' => $request->license, ] ); return json_decode($push); } catch (\Throwable $th) { return false; } } public function test_database_connection(Request $request) { $data = json_decode(json_encode($request->database)); $error_message = null; try { $db = new \mysqli( $data->host, $data->username, $data->password, $data->database ); $error_message = $db->connect_errno ? 'Connection Failed .' . $db->connect_error : $error_message; } catch (\Throwable $th) { $error_message = 'Connection failed'; } return response()->json([ 'status' => $error_message ?? 'Success', 'error' => $error_message === null ? false : true, ]); } public function install(Request $request) { if (env('APP_INSTALLED') === true) { return redirect('/'); } if ($request->method() === 'POST') { $request->validate([ 'database.*' => 'string|required', //'licensekey => 'required', //'buyeremail =>'required|email', 'admin.username' => 'required', 'admin.email' => 'required|email', 'admin.password' => 'required|max:255', ]); /** CREATE DATABASE CONNECTION STARTS **/ $db_params = $request->input('database'); Config::set( 'database.connections.mysql', array_merge(config('database.connections.mysql'), $db_params) ); try { DB::connection()->getPdo(); } catch (\Exception $e) { Log::error($e->getMessage()); $validator = Validator::make($request->all(), []) ->errors() ->add('Database', $e->getMessage()); return back() ->withErrors($validator) ->withInput(); } /** CREATE DATABASE CONNECTION ENDS **/ try { // delete old tables DB::transaction(function () { DB::unprepared( File::get(base_path('database/db_tables.sql')) ); }); // cache clear artisan Artisan::call('cache:clear'); } catch (\Throwable $th) { Artisan::call('migrate:fresh', [ '--force' => true, ]); } /** SETTING .ENV VARS STARTS **/ if (isset($_SERVER['REQUEST_SCHEME'])) { $urll = "{$_SERVER['REQUEST_SCHEME']}://{$_SERVER['HTTP_HOST']}"; } else { $urll = $_SERVER['HTTP_HOST']; } $env['DB_HOST'] = $db_params['host']; $env['DB_DATABASE'] = $db_params['database']; $env['DB_USERNAME'] = $db_params['username']; $env['DB_PASSWORD'] = $db_params['password']; $env['APP_URL'] = $urll; $env['APP_INSTALLED'] = 'true'; if($request->input('licensekey') != null){ $env['LICENSE_KEY'] = $request->input('licensekey'); } if($request->input('buyeremail') != null){ $env['BUYER_EMAIL'] = $request->input('buyeremail'); } foreach ($env as $k => &$v) { setEnv($k, $v); } /** SETTING .ENV VARS ENDS **/ /** CREATE ADMIN USER STARTS **/ if ( !($user = User::where( 'email', $request->input('admin.email') )->first()) ) { $user = new User(); $user->username = $request->input('admin.username'); $user->email = $request->input('admin.email'); $user->password = Hash::make($request->input('admin.password')); $user->email_verified_at = date('Y-m-d'); $user->level = 'admin'; $user->active_subscription = 'lifetime'; $user->limit_device = 10; $user->chunk_blast = 0; $user->save(); } /** CREATE ADMIN USER END **/ Auth::loginUsingId($user->id, true); return redirect()->route('home'); } // get method $mysql_user_version = [ 'distrib' => '', 'version' => null, 'compatible' => false, ]; if (function_exists('exec') || function_exists('shell_exec')) { $mysqldump_v = function_exists('exec') ? exec('mysqldump --version') : shell_exec('mysqldump --version'); if ( $mysqld = str_extract( $mysqldump_v, '/Distrib (?P.+),/i' ) ) { $destrib = $mysqld['destrib'] ?? null; $mysqld = explode('-', mb_strtolower($destrib), 2); $mysql_user_version['distrib'] = $mysqld[1] ?? 'mysql'; $mysql_user_version['version'] = $mysqld[0]; if ( $mysql_user_version['distrib'] == 'mysql' && $mysql_user_version['version'] >= 5.6 ) { $mysql_user_version['compatible'] = true; } elseif ( $mysql_user_version['distrib'] == 'mariadb' && $mysql_user_version['version'] >= 10 ) { $mysql_user_version['compatible'] = true; } } } $requirements = [ 'php' => ['version' => "8.0", 'current' => phpversion()], 'mysql' => ['version' => 5.6, 'current' => $mysql_user_version], 'php_extensions' => [ 'curl' => false, 'fileinfo' => false, 'intl' => false, 'json' => false, 'mbstring' => false, 'openssl' => false, 'mysqli' => false, 'zip' => false, 'ctype' => false, 'dom' => false, ], ]; $php_loaded_extensions = get_loaded_extensions(); foreach ($requirements['php_extensions'] as $name => &$enabled) { $enabled = in_array($name, $php_loaded_extensions); } return view('install', [ 'requirements' => $requirements, ]); } } ?>PKǨ\#Http/Controllers/ScanController.phpnu[ $number ]); } } PKǨ\+ܬff'Http/Controllers/CampaignController.phpnu[user()->campaigns()->withCount(['blasts','blasts as blasts_pending' => function($q){ return $q->where('status', 'pending'); }])->withCount(['blasts as blasts_success' => function($q){ return $q->where('status', 'success'); }])->withCount(['blasts as blasts_failed' => function($q){ return $q->where('status', 'failed'); }])->with('device')->filter($request)->latest()->paginate(10); return view('pages.campaign.index', compact('campaigns')); } public function create(Request $request) { return view('pages.campaign.create' ); } public function getPhonebookList (Request $request) { $phonebooks = $request->user()->phonebooks()->when($request->search, function($q) use ($request){ return $q->where('name', 'like', '%'.$request->search.'%'); })->withCount('contacts')->latest()->get(); return view('pages.campaign.phonebook-list', compact('phonebooks')); } public function store (Request $request, MessageService $messageService){ try { $device = $request->user()->devices()->find($request->device_id); $phonebook = $request->user()->phonebooks()->with('contacts')->find($request->phonebook_id); if($device->status != 'Connected'){ return response()->json(['error' => true, 'message' => 'Device is not connected,please scan the QR code to connect your device.']); } if($phonebook->contacts()->count() == 0){ return response()->json(['error' => true, 'message' => 'Phonebook is empty, please add contact to phonebook.']); } if($device->campaigns()->whereIn('status',['waiting','processing'])->count() > 0 && $request->tipe != 'schedule'){ return response()->json(['error' => true, 'message' => 'You have a campaign that is still in progress, please wait until it is finished.']); } $message = $messageService->format($request->type, (object) $request); $blasts = []; foreach ($phonebook->contacts as $contact) { try { $newmsg = str_replace('{name}', $contact->name, $message); } catch (\Throwable $th) { $newmsg = $message; } Log::info(json_encode($message)); $blasts[] = [ 'user_id' => $request->user()->id, 'sender' => $device->body, 'status' => 'pending', 'receiver' => $contact->number, 'type' => $request->type, 'message' => json_encode($newmsg), ]; } // db transaction $campaign = $device->campaigns()->create([ 'user_id' => $request->user()->id, 'name' => $request->campaign_name, 'type' => $request->type, 'delay' => $request->delay, 'status' => 'waiting', 'message' => json_encode($message), 'phonebook_id' => $request->phonebook_id, 'schedule' => $request->tipe == 'schedule' ? $request->datetime : now(), ]); $campaign->blasts()->createMany($blasts); return response()->json(['error' => false, 'message' => 'Success create campaign!, please wait until the campaign is finished.']); } catch (\Throwable $th) { Log::error($th); return response()->json(['error' => true, 'message' => 'Failed create campaign, errors (fc)!']); } } public function destroyAll (Request $request) { try { $request->user()->campaigns()->delete(); session()->flash('alert' , ['type' => 'success','msg' => 'All campaign deleted',]); } catch (\Throwable $th) { Log::error($th); session()->flash('alert' , ['type' => 'danger','msg' => 'Something went wrong (dac)',]); } return response()->json(['error' => false, 'message' => 'Success delete all campaign!']); } public function pause (Request $request, $id) { try { $campaign = $request->user()->campaigns()->find($id); $campaign->update([ 'status' => 'paused']); session()->flash('alert' , ['type' => 'success','msg' => 'Campaign paused',]); } catch (\Throwable $th) { session()->flash('alert' , ['type' => 'danger','msg' => 'Something went wrong (pc)',]); } return json_encode(['error' => false,'msg' => 'Campaign paused',]); } public function resume (Request $request, $id) { try { $campaign = $request->user()->campaigns()->find($id); $check = $request->user()->campaigns()->whereDeviceId($campaign->device_id)->whereIn('status',['waiting','processing'])->where('id','!=',$id)->count(); $isDeviceConnected = $campaign->device->status == 'Connected'; if ($check > 0) { session()->flash('alert' , ['type' => 'danger','msg' => 'You have another campaign in status processing or waiting in same device']); } else if (!$isDeviceConnected) { session()->flash('alert' , ['type' => 'danger','msg' => 'Device is not connected, please connect your device to resume campaign']); } else { $campaign->update([ 'status' => 'processing']); session()->flash('alert' , ['type' => 'success','msg' => 'Campaign resumed',]); } } catch (\Throwable $th) { Log::error($th); session()->flash('alert' , ['type' => 'danger','msg' => 'Something went wrong (rc)',]); } return json_encode(['error' => false,'msg' => 'Campaign resumed',]); } public function destroy (Request $request, $id) { try { $campaign = $request->user()->campaigns()->find($id); $campaign->delete(); session()->flash('alert' , ['type' => 'success','msg' => 'Campaign deleted',]); } catch (\Throwable $th) { Log::error($th); session()->flash('alert' , ['type' => 'danger','msg' => 'Something went wrong (dc)',]); } return json_encode(['error' => false,'msg' => 'Campaign deleted',]); } } PKǨ\+{{$Http/Controllers/BlastController.phpnu[blasts()->orderBy('updated_at', 'desc')->paginate(20); $campaign_name = $campaign->name; return view('pages.campaign.datablasts', compact('blasts', 'campaign_name')); } } PKǨ\D籍iiHttp/Controllers/Controller.phpnu[wa = $wa; } public function index(Request $request) { $devices = $request ->user() ->devices() ->latest() ->paginate(10); return view('pages.messagetest', compact('devices')); } public function store(SendMessageRequest $request) { $receivers = explode('|', $request->number); $unique = array_unique($receivers); $success = 0; foreach ($unique as $number) { try { if ($request->type == 'text') { $send = $this->wa->sendText($request, $number); } else if ($request->type == 'media') { $send = $this->wa->sendMedia($request,$number); } else if ($request->type == 'button') { $send = $this->wa->sendButton($request,$number); } else if ($request->type == 'template') { $send = $this->wa->sendTemplate($request,$number); } else if ($request->type == 'list') { $send = $this->wa->sendList($request,$number); } else if ($request->type == 'poll'){ $send = $this->wa->sendPoll($request,$number); dd($send); } self::inputDate($request,$number,$send); $success = $send->status ? $success + 1 : $success; } catch (\Exception $e) { return redirect()->back()->with('alert', ['type' => 'danger','msg' => 'Error sending message to ' . $number . ': ' .$e->getMessage()]); Log::error('Error sending message to ' . $number . ': ' .$e->getMessage() ); } } if ($success > 0) { return redirect()->back()->with('alert', ['type' => 'success','msg' => 'Success send message to ' . $success . ' number(s)',]); } else { return redirect()->back()->with('alert', ['type' => 'danger','msg' => 'Something went wrong,make sure your device is connected and the receiver number is valid',]); } } private static function inputDate($request,$number,$result) : void { try { $device = $request->user()->devices()->whereBody($request->sender)->first(); // exclude _token and _method from $request->all() $data = array_diff_key($request->all(), array_flip(['_token', '_method'])); MessageHistory::create([ 'user_id' => $request->user()->id, 'device_id' => $device->id, 'number' => $number, 'message' => $request->message ? $request->message :($request->caption ? $request->caption : ''), 'payload' => json_encode($data), 'status' => $result->status ? 'success' : 'failed', 'type' => $request->type, 'send_by' => 'web', ]); $device->update([ 'message_sent' => $device->message_sent + 1, ]); } catch (\Throwable $th) { // Log::error('Error input data to database: ' . $th->getMessage()); } } } ?>PKǨ\KN0Http/Controllers/Admin/InformationController.phpnu[ User::latest()->paginate(10)]); } public function store(Request $request){ $request->validate([ 'username' => 'required|unique:users', 'email' => 'required|unique:users', 'password' => 'required', 'limit_device' => 'required|numeric|max:10', 'active_subscription' => 'required|', ]); if($request->active_subscription == 'active'){ $request->validate([ 'subscription_expired' => 'required|date', ]); // subscription expired must be greater than today if($request->subscription_expired < date('Y-m-d')){ return redirect()->back()->with('alert' , ['type' => 'danger', 'msg' => 'Subscription expired must be greater than today']); } } $user = new User(); $user->username = $request->username; $user->email = $request->email; $user->password = bcrypt($request->password); $user->api_key = Str::random(32); $user->chunk_blast = 0; $user->limit_device = $request->limit_device; $user->active_subscription = $request->active_subscription; $user->subscription_expired = $request->subscription_expired ?? null; $user->save(); return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User created successfully']); } public function edit(){ $id = request()->id; $user = User::find($id); // return data user to ajax return json_encode($user); } public function update(Request $request){ $request->validate([ 'username' => 'required|unique:users,username,'.$request->id, 'email' => 'required|unique:users,email,'.$request->id, 'limit_device' => 'required|numeric|max:10', 'active_subscription' => 'required|', ]); if($request->active_subscription == 'active'){ $request->validate([ 'subscription_expired' => 'required|date', ]); // subscription expired must be greater than today if($request->subscription_expired < date('Y-m-d')){ return redirect()->back()->with('alert' , ['type' => 'danger', 'msg' => 'Subscription expired must be greater than today']); } } if($request->password != ''){ $request->validate([ 'password' => 'min:6', ]); } $user = User::find($request->id); $user->username = $request->username; $user->email = $request->email; $user->password = $request->password != '' ? bcrypt($request->password) : $user->password; $user->limit_device = $request->limit_device; $user->active_subscription = $request->active_subscription; $user->subscription_expired = $request->subscription_expired ?? null; $user->save(); return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User updated successfully']); } public function delete($id){ $user = User::find($id); if($user->level == 'admin'){ return redirect()->back()->with('alert', ['type' => 'danger', 'msg' => 'You can not delete admin']); } $user->delete(); return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User deleted successfully']); } } PKǨ\Ȳ*Http/Controllers/FileManagerController.phpnu[table; $column_message = $request->column; $data = DB::table($table) ->where('id', $request->id) ->first(); $type = $data->type; // if not exists $data->keyword, fill keyword with name table $keyword = $data->keyword ?? 'Preview ' . $table; $message = ($data->$column_message); switch ($type) { case 'text': $msg = [ 'keyword' => $keyword, 'text' => json_decode($message)->text, ]; break; case 'image': $msg = [ 'keyword' => $keyword, 'caption' => json_decode($message) ->caption, 'image' => json_decode($message)->image ->url, ]; break; case 'button': $msg = [ 'keyword' => $keyword, 'message' => json_decode($message)->text ?? json_decode($message)->caption, 'footer' => json_decode($message)->footer, 'buttons' => json_decode($message) ->buttons, 'image' => json_decode($message)->image->url ?? null, ]; break; case 'template': $msg = [ 'keyword' => $keyword, 'message' => json_decode($message)->text ?? json_decode($message)->caption, 'footer' => json_decode($message)->footer, 'templates' => json_decode($message) ->templateButtons, 'image' => json_decode($message)->image->url ?? null, ]; break; default: return view('ajax.messages.emptyshow')->render(); break; } return view( 'ajax.messages.' . $type . 'show', $msg )->render(); } catch (\Throwable $th) { Log::error($th); return view('ajax.messages.emptyshow')->render(); } } public function getFormByType($type, Request $request) { if ($request->ajax()) { return view('ajax.messages.form' . $type)->render(); } return 'http request'; } } PKǨ\0 0 &Http/Controllers/ContactController.phpnu[when($request->search,function($query) use ($request){ $query->where('name','like','%'.$request->search.'%') ->orWhere('number','like','%'.$request->search.'%'); })->whereUserId($request->user()->id)->latest()->paginate(15); $start_page = $contacts->currentPage(); $last_page = $contacts->lastPage(); $html = view('pages.phonebook.datacontact',compact('contacts'))->render(); return response()->json([ 'html' => $html,'last_page' => $last_page,'start_page' => $start_page]); } public function store(Request $request){ try { $request->validate(['number' => ['required','min:8','max:13']]); $chck = $request->user()->contacts()->where('number',$request->number)->whereTagId($request->tag_id)->first(); if($chck) return response()->json(['error' => true,'msg' => 'Number already exists in this phonebook!']); $request->user()->contacts()->create($request->all()); return response()->json(['error' => false,'msg' => 'Success add contact!']); } catch (\Throwable $th) { return response()->json(['error' => true,'msg' => 'Something errors!']); } } public function destroy(Contact $contact){ $contact->delete(); return response()->json(['error' => false,'msg' => 'Success delete contact!']); } public function destroyAll(Request $request,$id){ try { $request->user()->contacts()->whereTagId($id)->delete(); return response()->json(['error' => false,'msg' => 'Success delete all contact!']); } catch (\Throwable $th) { return response()->json(['error' => true,'msg' => 'Something errors!']); } } public function import(Request $request){ try { Excel::import(new ContactImport($request->phonebook_id),$request->file('fileContacts')->store('temp')); return response()->json(['error' => false,'msg' => 'Success import contact!']); } catch (\Throwable $th) { return response()->json(['error' => true,'msg' => $th->getMessage()]); } } public function export(Request $request,$id){ try { //code... $tag = Tag::find($id); $name = $tag->name . '.xlsx'; return Excel::download(new ContactsExport($tag->id,$request->user()->id),$name); } catch (\Throwable $th) { return 'something errors'; } } } PKǨ\2&*Http/Controllers/Auth/LogoutController.phpnu[flush(); try { Artisan::call('config:clear'); } catch (\Throwable $th) { //throw $th; } Auth::logout(); return back(); } } PKǨ\)R)Http/Controllers/Auth/LoginController.phpnu[only(['username','password']))){ return redirect('/home'); } throw ValidationException::withMessages([ 'username' => 'The provided credentials do not match our records.', ]); } } PKǨ\t,ss&Http/Controllers/RestapiController.phpnu[user()->devices()->latest()->paginate(15); $user = $request->user()->withCount(['devices','campaigns'])-> withCount(['blasts as blasts_pending' => function($q){ return $q->where('status', 'pending'); }])->withCount(['blasts as blasts_success' => function($q){ return $q->where('status', 'success'); }])->withCount(['blasts as blasts_failed' => function($q){ return $q->where('status', 'failed'); }])->withCount('messageHistories')->find($request->user()->id); $user['expired_subscription_status'] = $user->expiredSubscription; $user['subscription_status'] = $user->isExpiredSubscription ? 'Expired' : $user->active_subscription; return view('home',compact('numbers','user')); } public function store(Request $request){ $validate = validator($request->all(),[ 'sender' => 'required|min:8|max:15|unique:devices,body', ]); if($request->user()->isExpiredSubscription){ return back()->with('alert',['type' => 'danger','msg' => 'Your subscription has expired, please renew your subscription.']); } if($validate->fails()){ return back()->with('alert',['type' => 'danger','msg' => $validate->errors()->first()]); } if($request->user()->limit_device <= $request->user()->devices()->count() ){ return back()->with('alert',['type' => 'danger','msg' => 'You have reached the limit of devices!']); } $request->user()->devices()->create(['body' => $request->sender,'webhook' => $request->urlwebhook]); return back()->with('alert',['type' => 'success','msg' => 'Devices Added!']); } public function destroy(Request $request){ try { //code... $request->user()->devices()->find($request->deviceId)->delete(); Session::forget('selectedDevice'); return back()->with('alert',['type' => 'success','msg' => 'Devices Deleted!']); } catch (\Throwable $th) { //throw $th; return back()->with('alert',['type' => 'danger','msg' => 'Something went wrong!']); } } public function setHook(Request $request){ clearCacheNode(); return $request->user()->devices()->whereBody($request->number)->update(['webhook' => $request->webhook]); } public function setSelectedDeviceSession(Request $request){ $device = $request->user()->devices()->whereId($request->device)->first(); if(!$device){ return response()->json(['error' => true, 'msg' => 'Device not found!']); Session::forget('selectedDevice'); } session()->put('selectedDevice', [ 'device_id' => $device->id, 'device_body' => $device->body, ]); return response()->json(['error' => false, 'msg' => 'Device selected!']); } } PKǨ\Z͕E'Http/Controllers/RegisterController.phpnu[validate([ 'username' => 'unique:users|min:4|required', 'email' => 'unique:users|email|required', 'password' => 'required|min:6' ]); User::create( [ 'username' =>$request->username, 'email' => $request->email, 'password' => bcrypt($request->password), 'api_key' => Str::random(30), 'chunk_blast' => 0 ] ); return redirect(route('login'))->with('alert',[ 'type' => 'success', 'msg' => 'Registrasi success,please sign in' ]); } } PKǨ\#/=  #Http/Controllers/UserController.phpnu[validate([ 'current' => ['required', 'string' ], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); $newPassword = bcrypt($request->password); $request->user()->fill([ 'password' => $newPassword ])->save(); return back()->with('alert', ['type' => 'success', 'msg' => 'Password Changed' ]); } public function generateNewApiKey(Request $request) { $newApiKey = Str::random(30); $request->user()->fill([ 'api_key' => $newApiKey ])->save(); return back()->with('alert', [ 'type' => 'success', 'msg' => 'Success set new Api Key' ]); } } PKǨ\QZ  (Http/Controllers/AutoreplyController.phpnu[msgservice = $msgservice; } public function index(Request $request) { $autoreplies = $request->user() ->autoreplies()->whereHas('device', function ($q) { $q->where( 'id',session()->has('selectedDevice')? session()->get('selectedDevice')['device_id'] : ''); }); $autoreplies->when($request->keyword != null, function ($query) use ($request) { return $query->where('keyword', 'like', '%' . $request->keyword . '%'); }); $autoreplies = $autoreplies->latest() ->paginate(15); return view('pages.autoreply', compact('autoreplies')); } public function store(StoreAutoreplyRequest $request) { $type = $request->type; try { //code... $reply = $this->msgservice->format($type, (object) $request->all()); } catch (\Throwable $th) { return back()->with(['alert' => ['type' => 'danger', 'msg' => $th->getMessage()]]); } $data = $request->all(); $data['reply'] = json_encode($reply); $data['device_id'] = $request->device; $request ->user() ->autoreplies()->create($data); return redirect(route('autoreply'))->with('alert', ['type' => 'success','msg' => 'Your auto reply was added!']); } public function destroy(Request $request) { Autoreply::whereId($request->id)->delete(); return redirect(route('autoreply'))->with('alert', ['type' => 'success','msg' => 'Deleted', ]); } public function update (Request $request, Autoreply $autoreply){ try { // if $request->keyword and exists in $autoreply with same device_id if ($request->keyword && $request->keyword != $autoreply->keyword) { $keyword = $request->keyword; $device_id = $autoreply->device_id; $check = Autoreply::where('keyword', $keyword)->where('device_id', $device_id)->first(); if ($check) { return response()->json(['status' => 'error', 'msg' => 'Keyword already exists']); } } $autoreply->update([ 'keyword' => $request->keyword ?? $autoreply->keyword, 'status' => $request->status ?? $autoreply->status, 'is_quoted' => $request->quoted ?? $autoreply->is_quoted, ]); return response()->json(['error' => false, 'msg' => 'Updated']); } catch (\Throwable $th) { //throw $th; } } } PKǨ\*"Http/Controllers/TagController.phpnu[wa = $whatsappService; } public function index(){ return view('pages.phonebook.index'); } public function getPhonebook(Request $request){ if($request->ajax()){ $phonebooks = $request->user()->phonebooks()->when($request->search, function($query) use ($request){ $query->where('name','like','%'.$request->search.'%'); })->latest()->paginate(15); $html = view('pages.phonebook.dataphonebook',compact('phonebooks'))->render(); $last_page = $phonebooks->lastPage(); $current_page = $phonebooks->currentPage(); return response()->json([ 'html' => $html,'last_page' => $last_page,'current_page' => $current_page]); } } public function store(Request $request){ $request->validate([ 'name' => ['required','min:3','unique:tags'] ]); Tag::create([ 'user_id' => Auth::user()->id, 'name' => $request->name ]); return back()->with('alert',[ 'type' => 'success', 'msg' => 'Success add tag!' ]); } public function destroy(Request $request){ try { //code... $t = Tag::with('contacts')->find($request->id); $t->delete(); return back()->with('alert',[ 'type' => 'success', 'msg' => 'Success delete tag!' ]); } catch (\Throwable $th) { return back()->with('alert',['type' => 'danger','msg' => 'Something went wrong! (dt)']); } } public function fetchGroups(Request $request){ try { if(!$request->device){ return back()->with('alert',[ 'type' => 'danger','msg' => 'Please select device first!']); } $device = Device::find($request->device); if($device->status != 'Connected'){ return back()->with('alert', ['type' => 'danger', 'msg' => 'Your sender is not connected!' ]); } // add cache for 60 minutes $respon = Cache::remember('groups'.$device->body, 60, function () use ($device) { return $this->wa->fetchGroups($device); }); if($respon->status === false){ return back()->with('alert',['type' => 'danger','msg' => $respon->message ]); } if (count($respon->data) < 1) { Cache::forget('groups'.$device->body); return back()->with('alert',['type' => 'danger','msg' => 'No groups found!,try in a few minutes']); } foreach ($respon->data as $group) { // insert to tags $namePhoneBook = $group->subject . '( ID : ' . $group->id . ' )'; $validNamePhoneBook = preg_replace('/[^a-zA-Z0-9():\s@.-]+/', '', $namePhoneBook); $tag = $request->user()->phonebooks()->firstOrCreate(['name' => $validNamePhoneBook]); foreach ($group->participants as $member) { $number = str_replace('@s.whatsapp.net','',$member->id); $cek = $request->user()->contacts()->where('tag_id',$tag->id)->where('number',$number)->count(); if($cek < 1){ $tag->contacts()->create(['user_id' =>$request->user()->id,'name' => $number,'number' => $number]); } } } return back()->with('alert',[ 'type' => 'success', 'msg' => 'Generate success' ]); } catch (\Throwable $th) { throw $th; return back()->with('alert',['type' => 'danger','msg' => 'Something went wrong! (fg)']); } } public function clearPhonebook(Request $request){ try { $request->user()->phonebooks()->delete(); return response()->json(['error' => false,'msg' => 'Success clear phonebook!']); } catch (\Throwable $th) { return response()->json(['error' => true,'msg' => 'Something went wrong! (cp)']); } } } PKǨ\7mm+Http/Middleware/RedirectIfAuthenticated.phpnu[check()) { return redirect(RouteServiceProvider::HOME); } } return $next($request); } } PKǨ\m2#Http/Middleware/VerifyCsrfToken.phpnu[ */ protected $except = [ 'blast', 'campaign/pause/*', 'campaign/resume/*', ]; } PKǨ\+<< Http/Middleware/appInstalled.phpnu[route()->getName(),$allowedRoute) && !env('APP_INSTALLED')) { return redirect()->route('setting.install_app'); } return $next($request); } } ?>PKǨ\ P Http/Middleware/Authenticate.phpnu[expectsJson()) { return route('login'); } } } PKǨ\~}}Http/Middleware/TrimStrings.phpnu[ */ protected $except = [ 'current_password', 'password', 'password_confirmation', ]; } PKǨ\Kd4߿%Http/Middleware/isVerifiedLicense.phpnu[level != 'admin') { return redirect('/'); } return $next($request); } } PKǨ\L{ ttHttp/Middleware/TrustHosts.phpnu[ */ public function hosts() { return [ $this->allSubdomainsOfApplicationUrl(), ]; } } PKǨ\"q33"Http/Middleware/EncryptCookies.phpnu[ */ protected $except = [ // ]; } PKǨ\{{nn4Http/Middleware/PreventRequestsDuringMaintenance.phpnu[ */ protected $except = [ // ]; } PKǨ\_wrDHttp/Middleware/CheckApiKey.phpnu[api_key)->first(); $device = Device::whereBody($request->sender)->first(); if ($device->user_id != $user->id) { return response()->json( [ 'status' => false, 'msg' => 'Invalid data!', 'errors' => 'Invali api_key or sender,please check again', ], Response::HTTP_BAD_REQUEST ); } return $next($request); } catch (\Throwable $th) { return response()->json( [ 'status' => false, 'msg' => 'Invalid data!', 'errors' => 'Invali api_key or sender,please check again', ], Response::HTTP_BAD_REQUEST ); } } } ?>PKǨ\j Http/Middleware/TrustProxies.phpnu[|string|null */ protected $proxies; /** * The headers that should be used to detect proxies. * * @var int */ protected $headers = Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB; } PKǨ\1||'Http/Requests/StoreAutoreplyRequest.phpnu[ ['required', 'unique:autoreplies,keyword,NULL,id,device_id,' . $this->device], 'image' => 'required_if:type,image', 'caption' => 'required_if:type,image', 'button' => 'required_if:type,button|array|min:1|max:5', 'template' => ['required_if:type,template|array|min:1|max:3',function($attribute, $value, $fail) { $i = 0; foreach ($value as $val) { $i++; // must separator by | and must have 3 value $count = count(explode('|', $val)); $type = explode('|', $val)[0]; if ($count != 3) { $fail('The ' . $attribute . ' ' . $i . ' is wrong format'); return; } if ($type != 'call' && $type != 'url') { $fail('Invalid type for ' . $attribute . ' ' . $i . ' must be call or url like this : call|+6282298859671|Call me or url|https://google.com|Visit Google'); return; } } }], 'list' => 'required_if:type,list', 'title' => 'required_if:type,list', 'buttontext' => 'required_if:type,list', ]; } } PKǨ\r$Http/Requests/SendMessageRequest.phpnu[ [ 'required', function ($attribute, $value, $fail) { $device = Device::where('body', $value) ->where('status', 'connected') ->first(); if (!$device) { $fail( 'The ' . $attribute . ' is invalid or disconnected.' ); } }, ], 'number' => [ 'required', function ($attribute, $value, $fail) { $numbers = explode('|', $value); if (count($numbers) > 10) { $fail( 'The ' . $attribute . ' may not have more than 10 numbers.' ); } foreach ($numbers as $number) { if(!strpos($number,'@g.us')){ if (!preg_match('/^\d+$/', $number)) { $fail( 'The ' . $attribute . ' must have only numeric values separated by |.' ); } } } }, ], 'type' => 'required', 'message' => 'required_if:type,text,button,template', // for media 'url' => 'required_if:type,media', 'media_type' => 'required_if:type,media', // button required and array if type is button,and required and string if type is list 'button' => 'required_if:type,button|array|min:1|max:5', // for template 'template' => ['required_if:type,template', function($attribute, $value, $fail) { if (!is_array($value)) { $fail('The ' . $attribute . ' must be array'); return; } if (count($value) > 3) { $fail('The ' . $attribute . ' may not have more than 3 items'); return; } $i = 0; foreach ($value as $val) { $i++; // must separator by | and must have 3 value $count = count(explode('|', $val)); $type = explode('|', $val)[0]; if ($count != 3) { $fail('The ' . $attribute . ' ' . $i . ' is wrong format'); return; } if ($type != 'call' && $type != 'url') { $fail('Invalid type for ' . $attribute . ' ' . $i . ' must be call or url like this : call|+6282298859671|Call me or url|https://google.com|Visit Google'); return; } } }], // for list 'buttontext' => 'required_if:type,list', 'name' => 'required_if:type,list', 'title' => 'required_if:type,list', // 'list' must array and min 1 'list' => 'required_if:type,list|array|min:1', 'name' => 'required_if:type,poll', 'option' => [ 'required_if:type,poll', 'array', 'min:2', 'max:5', function ($attribute, $value, $fail) { try { //code... if (count($value) !== count(array_unique($value))) { $fail('The '.$attribute.' field must contain unique values.'); } } catch (\Throwable $th) { $fail('The '.$attribute.' must an array.'); } }, ], ]; return $rules; } protected function failedValidation(Validator $validator) { $errors = $validator->errors(); // jika permintaan adalah permintaan web, maka kembalikan respon dengan redirect ke halaman sebelumnya throw (new ValidationException($validator)) ->errorBag($this->errorBag) ->redirectTo($this->getRedirectUrl()); } public function messages() { return [ 'button1.required_if' => 'Please add BUTTON at least one', 'button1.required' => 'Please add BUTTON at least one', 'template1.required_if' => 'Please add template at least one', 'template1.required' => 'Please add template at least one', 'buttonlist.required_if' => 'The name of list button is required', 'namelist.required_if' => 'The name of list is required', 'titlelist.required_if' => 'The title of list is required', ]; } } PKǨ\oFFExports/ContactsExport.phpnu[tag = $tag; $this->user = $userid; } public function collection() { return Contact::whereUserId($this->user)->whereTagId($this->tag)->get(['name','number']); } } PKǨ\EwN88Exceptions/Handler.phpnu[> */ protected $dontReport = [ // ]; /** * A list of the inputs that are never flashed for validation exceptions. * * @var array */ protected $dontFlash = [ 'current_password', 'password', 'password_confirmation', ]; /** * Register the exception handling callbacks for the application. * * @return void */ public function register() { $this->reportable(function (Throwable $e) { // }); } } PKǨ\/Y="Providers/EventServiceProvider.phpnu[> */ protected $listen = [ Registered::class => [ SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. * * @return void */ public function boot() { // } } PKǨ\Dp)) Providers/AppServiceProvider.phpnu[ */ protected $policies = [ // 'App\Models\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); // } } PKǨ\||&Providers/BroadcastServiceProvider.phpnu[configureRateLimiting(); $this->routes(function () { Route::middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } } PKǨ\Q#Providers/CustomServiceProvider.phpnu[app->bind( MessageService::class, MessageServiceImpl::class ); $this->app->bind( WhatsappService::class, WhatsappServiceImpl::class ); } /** * Bootstrap services. * * @return void */ public function boot() { } } PKǨ\,UD`` View/Components/SelectDevice.phpnu[devices()->latest()->get(); return view('components.select-device', compact('numbers')); } } PKǨ\)ϿView/Components/NoData.phpnu[text = $text; $this->colspan = $colspan; } /** * Get the view / contents that represent the component. * * @return \Illuminate\Contracts\View\View|\Closure|string */ public function render() { return view('components.no-data', [ 'text' => $this->text, 'colspan' => $this->colspan ]); } } PK\ WDcaca db/master.sqlnu[-- -------------------------------------- -- Modifikasi Struktur DB -- Source Server : origrata -- Source Server Type : MySQL -- Source Server Version : 50739 -- Source Host : origrata:3306 -- Source Schema : master_cbt -- Target Server Type : MySQL -- Target Server Version : 50739 -- File Encoding : 65001 -- Date: 06/06/2023 22:01:03 -- -------------------------------------- SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- ---------------------------- -- Table structure for api_setting -- ---------------------------- -- DROP TABLE IF EXISTS `api_setting`; CREATE TABLE `api_setting` ( `id` int NOT NULL, `auto_sync` int NOT NULL DEFAULT '0', `edit_profile_siswa` int NOT NULL DEFAULT '0', `edit_profile_guru` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT; -- -------------------------------------------------------- -- -- Struktur dari tabel `api_token` -- CREATE TABLE `api_token` ( `id_api` int NOT NULL, `timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `id_user` int NOT NULL, `address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `agent` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `device` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `token` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT; -- -------------------------------------------------------- -- -- Struktur dari tabel `buku_induk` -- CREATE TABLE `buku_induk` ( `id_siswa` int NOT NULL, `uid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `rombel_awal` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nama_panggilan` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `bahasa` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jml_saudara_kandung` int NOT NULL DEFAULT '0', `jml_saudara_tiri` int NOT NULL DEFAULT '0', `jml_saudara_angkat` int NOT NULL DEFAULT '0', `yatim` int NOT NULL DEFAULT '0' COMMENT '0=ada orang-tua, 1=yatim, 2=yatim piatu', `tinggal_bersama` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '1=orang-tua, 2=saudara, 3=wali, 4=asrama/pesantren, 5=kost, 6=lainnya', `jarak` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `gol_darah` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `penyakit` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `kelainan_fisik` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kegemaran` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `beasiswa` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `no_ijazah_sebelumnya` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tahun_lulus_sebelumnya` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pindahan_dari` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alasan_kepindahan` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `agama_ayah` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tempat_lahir_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `wn_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `penghasilan_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `hidup_meninggal_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `agama_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tempat_lahir_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `wn_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `penghasilan_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `hidup_meninggal_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tempat_lahir_wali` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `agama_wali` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `wn_wali` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `penghasilan_wali` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status` int DEFAULT '1' COMMENT '1= aktif, 2=lulus, 3=pindah, 4=keluar', `tahun_lulus` int DEFAULT NULL, `no_ijazah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kelas_akhir` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `lanjut_ke` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pindah_ke` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alasan_pindah` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_pindah` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `bekerja_di` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `catatan_penting` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `bulan` -- CREATE TABLE `bulan` ( `id_bln` int NOT NULL, `nama_bln` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `bulan` -- INSERT INTO `bulan` (`id_bln`, `nama_bln`) VALUES (1, 'Januari'), (2, 'Februari'), (3, 'Maret'), (4, 'April'), (5, 'Mei'), (6, 'Juni'), (7, 'Juli'), (8, 'Agustus'), (9, 'September'), (10, 'Oktober'), (11, 'November'), (12, 'Desember'); -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_bank_soal` -- CREATE TABLE `cbt_bank_soal` ( `id_bank` int NOT NULL, `bank_jenis_id` int NOT NULL DEFAULT '0', `bank_kode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `bank_level` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bank_kelas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bank_mapel_id` int DEFAULT NULL, `bank_jurusan_id` int NOT NULL DEFAULT '0', `bank_guru_id` int DEFAULT NULL, `bank_nama` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kkm` int DEFAULT '0', `jml_soal` int NOT NULL DEFAULT '0', `jml_esai` int NOT NULL DEFAULT '0', `tampil_pg` int NOT NULL DEFAULT '0', `tampil_esai` int NOT NULL DEFAULT '0', `bobot_pg` int NOT NULL DEFAULT '0', `bobot_esai` int NOT NULL DEFAULT '0', `opsi` int NOT NULL DEFAULT '0', `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `status` int NOT NULL DEFAULT '0', `soal_agama` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `jml_kompleks` int NOT NULL DEFAULT '0', `tampil_kompleks` int NOT NULL DEFAULT '0', `bobot_kompleks` int NOT NULL DEFAULT '0', `jml_jodohkan` int NOT NULL DEFAULT '0', `tampil_jodohkan` int NOT NULL DEFAULT '0', `bobot_jodohkan` int NOT NULL DEFAULT '0', `jml_isian` int NOT NULL DEFAULT '0', `tampil_isian` int NOT NULL DEFAULT '0', `bobot_isian` int NOT NULL DEFAULT '0', `status_soal` int NOT NULL DEFAULT '0' COMMENT '0=belum selesai, 1=sudah selesai' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_durasi_siswa` -- CREATE TABLE `cbt_durasi_siswa` ( `id_durasi` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_jadwal` int DEFAULT NULL, `status` int NOT NULL DEFAULT '0' COMMENT '0=belum ujian, 1=sedang ujian, 2=sudah ujian', `lama_ujian` time DEFAULT NULL, `mulai` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `selesai` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `reset` int NOT NULL DEFAULT '0' COMMENT '0=tidak, 1=reset dari 0, 2=reset dari sisa waktu, 3=ulangi semua', `time_create` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_jadwal` -- CREATE TABLE `cbt_jadwal` ( `id_jadwal` int NOT NULL, `id_tp` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_smt` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_bank` int DEFAULT NULL, `id_jenis` int DEFAULT NULL, `tgl_mulai` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tgl_selesai` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `durasi_ujian` int NOT NULL, `pengawas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `acak_soal` int NOT NULL, `acak_opsi` int NOT NULL, `hasil_tampil` int NOT NULL, `token` int NOT NULL, `status` int NOT NULL, `ulang` int NOT NULL, `reset_login` int NOT NULL, `rekap` int NOT NULL DEFAULT '0', `jam_ke` int NOT NULL DEFAULT '0', `jarak` int NOT NULL DEFAULT '0', `time_create` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_jenis` -- CREATE TABLE `cbt_jenis` ( `id_jenis` int NOT NULL, `nama_jenis` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_jenis` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `cbt_jenis` -- INSERT INTO `cbt_jenis` (`id_jenis`, `nama_jenis`, `kode_jenis`) VALUES (1, 'Penilaian Harian', 'PH'), (2, 'Penilaian Tengah Semester', 'PTS'), (3, 'Penilaian Akhir Semester', 'PAS'), (4, 'Penilaian Akhir Tahun', 'PAT'), (5, 'Ujian Madrasah Berbasis Komputer', 'UMBK'), (6, 'Try Out', 'TO'), (7, 'Simulasi', 'SIML'); -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_kelas_ruang` -- CREATE TABLE `cbt_kelas_ruang` ( `id_kelas_ruang` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_kelas` int DEFAULT NULL, `id_ruang` int NOT NULL, `id_sesi` int NOT NULL DEFAULT '0', `id_tp` int NOT NULL, `id_smt` int NOT NULL, `set_siswa` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_kop_absensi` -- CREATE TABLE `cbt_kop_absensi` ( `id_kop` int NOT NULL, `header_1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_4` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `proktor` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pengawas_1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pengawas_2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_kop_berita` -- CREATE TABLE `cbt_kop_berita` ( `id_kop` int NOT NULL, `header_1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_4` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_kop_kartu` -- CREATE TABLE `cbt_kop_kartu` ( `id_set_kartu` int NOT NULL, `header_1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `header_4` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tanggal` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_nilai` -- CREATE TABLE `cbt_nilai` ( `id_nilai` int NOT NULL, `pg_benar` int DEFAULT '0', `pg_nilai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', `essai_nilai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', `id_siswa` int DEFAULT NULL, `id_jadwal` int DEFAULT NULL, `kompleks_nilai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', `jodohkan_nilai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', `isian_nilai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', `dikoreksi` int NOT NULL DEFAULT '0', `time_create` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_nomor_peserta` -- CREATE TABLE `cbt_nomor_peserta` ( `id_nomor` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL DEFAULT '1', `nomor_peserta` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_pengawas` -- CREATE TABLE `cbt_pengawas` ( `id_pengawas` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_jadwal` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_ruang` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_sesi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_guru` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_rekap` -- CREATE TABLE `cbt_rekap` ( `id_rekap` int NOT NULL, `id_tp` int NOT NULL, `tp` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_smt` int NOT NULL, `smt` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_jadwal` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_jenis` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_jenis` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_bank` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bank_kelas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bank_kode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bank_level` int NOT NULL, `id_mapel` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama_mapel` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tgl_mulai` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tgl_selesai` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tampil_pg` int NOT NULL, `jawaban_pg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tampil_esai` int NOT NULL, `jawaban_esai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bobot_pg` int NOT NULL, `bobot_esai` int NOT NULL, `id_guru` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama_guru` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama_kelas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_kompleks` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_jodohkan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_isian` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_essai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_rekap_nilai` -- CREATE TABLE `cbt_rekap_nilai` ( `id_rekap_nilai` int NOT NULL, `id_jadwal` int DEFAULT NULL, `id_tp` int NOT NULL, `tp` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_smt` int NOT NULL, `smt` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_jenis` int NOT NULL, `kode_jenis` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_bank` int DEFAULT NULL, `id_mapel` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_kelas` int DEFAULT '0', `kelas` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `mulai` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `selesai` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `durasi` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bobot_pg` int NOT NULL, `jawaban_pg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nilai_pg` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `bobot_esai` int NOT NULL, `jawaban_esai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nilai_esai` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_guru` int DEFAULT NULL, `nama_siswa` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `no_peserta` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `soal_kompleks` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_jodohkan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_isian` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `soal_essai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `time_create` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_ruang` -- CREATE TABLE `cbt_ruang` ( `id_ruang` int NOT NULL, `nama_ruang` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_ruang` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `cbt_ruang` -- INSERT INTO `cbt_ruang` (`id_ruang`, `nama_ruang`, `kode_ruang`) VALUES (1, 'Ruang 1', 'LAB-KOM'), (2, 'Ruang 2', 'R2'), (3, 'Ruang 3', 'R3'), (4, 'Ruang 4', 'R4'), (5, 'Ruang 5', 'R5'); -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_sesi` -- CREATE TABLE `cbt_sesi` ( `id_sesi` int NOT NULL, `nama_sesi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_sesi` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `waktu_mulai` time NOT NULL, `waktu_akhir` time NOT NULL, `aktif` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `cbt_sesi` -- INSERT INTO `cbt_sesi` (`id_sesi`, `nama_sesi`, `kode_sesi`, `waktu_mulai`, `waktu_akhir`, `aktif`) VALUES (1, 'Sesi 1', 'S1', '07:30:00', '09:30:00', 1), (2, 'Sesi 2', 'S2', '09:00:00', '12:30:00', 1), (3, 'Sesi 3', 'S3', '10:30:00', '14:00:00', 1); -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_sesi_siswa` -- CREATE TABLE `cbt_sesi_siswa` ( `siswa_id` int NOT NULL, `kelas_id` int DEFAULT NULL, `ruang_id` int NOT NULL, `sesi_id` int NOT NULL, `tp_id` int NOT NULL, `smt_id` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_soal` -- CREATE TABLE `cbt_soal` ( `id_soal` int NOT NULL, `bank_id` int DEFAULT NULL, `mapel_id` int DEFAULT '0', `jenis` int NOT NULL COMMENT '1=ganda, 2=ganda kompleks, 3=menjodohkan, 4=isian singkat, 5=uraian', `nomor_soal` int DEFAULT '0', `file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `file1` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `tipe_file` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `soal` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `opsi_a` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `opsi_b` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `opsi_c` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `opsi_d` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `opsi_e` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `file_a` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `file_b` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `file_c` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `file_d` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `file_e` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jawaban` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `created_on` int DEFAULT NULL, `updated_on` int DEFAULT NULL, `tampilkan` int NOT NULL DEFAULT '0', `deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kesulitan` int NOT NULL DEFAULT '1' COMMENT 'tingkat kesulitan 1-10', `timer` int NOT NULL DEFAULT '0' COMMENT '0=tidak, 1=ya', `timer_menit` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_soal_siswa` -- CREATE TABLE `cbt_soal_siswa` ( `id_soal_siswa` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_bank` int DEFAULT NULL, `id_jadwal` int DEFAULT NULL, `id_soal` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `jenis_soal` int NOT NULL, `no_soal_alias` int NOT NULL, `opsi_alias_a` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `opsi_alias_b` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `opsi_alias_c` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `opsi_alias_d` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `opsi_alias_e` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jawaban_alias` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `jawaban_siswa` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `jawaban_benar` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `point_essai` int DEFAULT '0', `soal_end` int NOT NULL DEFAULT '0', `point_soal` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `nilai_koreksi` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `nilai_otomatis` int NOT NULL DEFAULT '0' COMMENT '0=otomatis, 1=dari guru', `time_create` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `cbt_token` -- CREATE TABLE `cbt_token` ( `token` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `auto` int NOT NULL, `id_token` int NOT NULL, `jarak` int NOT NULL DEFAULT '0', `updated` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `cbt_token` -- INSERT INTO `cbt_token` (`token`, `auto`, `id_token`, `jarak`, `updated`) VALUES ('HILZCX', 0, 1, 0, '2022-03-25 08:05:15'); -- -------------------------------------------------------- -- -- Struktur dari tabel `groups` -- CREATE TABLE `groups` ( `id` mediumint UNSIGNED NOT NULL, `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `description` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `groups` -- INSERT INTO `groups` (`id`, `name`, `description`) VALUES (1, 'admin', 'Administrator'), (2, 'guru', 'Pembuat Soal dan ujian'), (3, 'siswa', 'Peserta Ujian'); -- -------------------------------------------------------- -- -- Struktur dari tabel `hari` -- CREATE TABLE `hari` ( `id_hri` int NOT NULL, `nama_hri` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `hari` -- INSERT INTO `hari` (`id_hri`, `nama_hri`) VALUES (1, 'Senin'), (2, 'Selasa'), (3, 'Rabu'), (4, 'Kamis'), (5, 'Jum\'at'), (6, 'Sabtu'), (7, 'Minggu'); -- -------------------------------------------------------- -- -- Struktur dari tabel `jabatan_guru` -- CREATE TABLE `jabatan_guru` ( `id_jabatan_guru` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_guru` int DEFAULT NULL, `id_jabatan` int NOT NULL, `id_kelas` int DEFAULT '0', `mapel_kelas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `ekstra_kelas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `id_tp` int NOT NULL, `id_smt` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_catatan_mapel` -- CREATE TABLE `kelas_catatan_mapel` ( `id_catatan` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `type` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_mapel` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_guru` int DEFAULT NULL, `level` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `tgl` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `text` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `readed` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `reading` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'array id_siswa yang membaca', `jml` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_catatan_wali` -- CREATE TABLE `kelas_catatan_wali` ( `id_catatan` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `type` int NOT NULL COMMENT '1=semua siswa, 2=per siswa', `level` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '1=saran, 2=teguran, 3=peringatan, 4=sangsi', `tgl` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `id_siswa` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `text` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `readed` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', `reading` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `jml` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_ekstra` -- CREATE TABLE `kelas_ekstra` ( `id_kelas_ekstra` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_kelas` int DEFAULT NULL, `ekstra` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_jadwal_kbm` -- CREATE TABLE `kelas_jadwal_kbm` ( `id_kbm` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_kelas` int DEFAULT NULL, `kbm_jam_pel` int NOT NULL, `kbm_jam_mulai` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kbm_jml_mapel_hari` int NOT NULL, `istirahat` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_jadwal_mapel` -- CREATE TABLE `kelas_jadwal_mapel` ( `id_jadwal` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_kelas` int DEFAULT NULL, `id_hari` int NOT NULL, `jam_ke` int NOT NULL, `id_mapel` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_jadwal_materi` -- CREATE TABLE `kelas_jadwal_materi` ( `id_kjm` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_materi` int DEFAULT NULL, `id_mapel` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `jadwal_materi` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `jenis` int DEFAULT NULL COMMENT '1=materi, 2=tugas' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_materi` -- CREATE TABLE `kelas_materi` ( `id_materi` int NOT NULL, `id_tp` int NOT NULL DEFAULT '1', `id_smt` int NOT NULL DEFAULT '1', `kode_materi` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_guru` int DEFAULT NULL, `materi_kelas` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_mapel` int DEFAULT '0', `kode_mapel` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `judul_materi` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `isi_materi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `file` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `link_file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_mulai` datetime DEFAULT NULL, `created_on` datetime DEFAULT NULL, `updated_on` datetime DEFAULT CURRENT_TIMESTAMP, `status` int DEFAULT NULL, `youtube` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `jenis` int NOT NULL DEFAULT '1' COMMENT '1=materi, 2=tugas' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_siswa` -- CREATE TABLE `kelas_siswa` ( `id_kelas_siswa` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_kelas` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `kelas_struktur` -- CREATE TABLE `kelas_struktur` ( `id_kelas` int NOT NULL, `ketua` int DEFAULT NULL, `wakil_ketua` int DEFAULT NULL, `sekretaris_1` int DEFAULT NULL, `sekretaris_2` int DEFAULT NULL, `bendahara_1` int DEFAULT NULL, `bendahara_2` int DEFAULT NULL, `sie_ekstrakurikuler` int DEFAULT NULL, `sie_upacara` int DEFAULT NULL, `sie_olahraga` int DEFAULT NULL, `sie_keagamaan` int DEFAULT NULL, `sie_keamanan` int DEFAULT NULL, `sie_ketertiban` int DEFAULT NULL, `sie_kebersihan` int DEFAULT NULL, `sie_keindahan` int DEFAULT NULL, `sie_kesehatan` int DEFAULT NULL, `sie_kekeluargaan` int DEFAULT NULL, `sie_humas` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `level_guru` -- CREATE TABLE `level_guru` ( `id_level` int NOT NULL, `level` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `level_guru` -- INSERT INTO `level_guru` (`id_level`, `level`) VALUES (1, 'Kepala Sekolah'), (2, 'Wakil Kepala Sekolah'), (3, 'Bimbingan Konseling'), (4, 'Walikelas'), (5, 'Guru'); -- -------------------------------------------------------- -- -- Struktur dari tabel `level_kelas` -- CREATE TABLE `level_kelas` ( `id_level` int NOT NULL, `level` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `level_kelas` -- INSERT INTO `level_kelas` (`id_level`, `level`) VALUES (1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'); -- -------------------------------------------------------- -- -- Struktur dari tabel `log` -- CREATE TABLE `log` ( `id_log` int NOT NULL, `log_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `id_user` int NOT NULL, `id_group` int NOT NULL, `name_group` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `log_type` int NOT NULL, `log_desc` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `agent` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `device` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `login_attempts` -- CREATE TABLE `login_attempts` ( `id` int UNSIGNED NOT NULL, `ip_address` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `login` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `time` int UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `log_materi` -- CREATE TABLE `log_materi` ( `id_log` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `log_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `id_siswa` int DEFAULT NULL, `jam_ke` int NOT NULL, `id_materi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `id_mapel` int DEFAULT NULL, `log_type` int NOT NULL, `log_desc` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `file` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `nilai` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `catatan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `agent` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `device` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `finish_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `log_ujian` -- CREATE TABLE `log_ujian` ( `id_log` int NOT NULL, `log_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `id_siswa` int DEFAULT NULL, `id_jadwal` int DEFAULT NULL, `log_type` int NOT NULL, `log_desc` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `agent` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `device` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `reset` int NOT NULL COMMENT '0=tidak reset, 1=reset', `finish_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `master_ekstra` -- CREATE TABLE `master_ekstra` ( `id_ekstra` int NOT NULL, `nama_ekstra` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_ekstra` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_ekstra` -- INSERT INTO `master_ekstra` (`id_ekstra`, `nama_ekstra`, `kode_ekstra`) VALUES (1, 'Pramuka', 'PRAM'), (2, 'Baca Tulis Al Quran', 'BTQ'), (3, 'Tahfidz', 'TFZ'); -- -------------------------------------------------------- -- -- Struktur dari tabel `master_guru` -- CREATE TABLE `master_guru` ( `id_guru` int NOT NULL, `id_user` int DEFAULT NULL, `nip` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama_guru` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `email` varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kode_guru` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `password` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `no_ktp` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tempat_lahir` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_lahir` date DEFAULT NULL, `jenis_kelamin` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `agama` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `no_hp` varchar(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alamat_jalan` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `rt_rw` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `dusun` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kelurahan` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kecamatan` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kabupaten` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `provinsi` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kode_pos` int DEFAULT NULL, `kewarganegaraan` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nuptk` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jenis_ptk` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgs_tambahan` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status_pegawai` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status_aktif` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status_nikah` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tmt` date DEFAULT NULL, `keahlian_isyarat` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `npwp` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `foto` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `master_hari_efektif` -- CREATE TABLE `master_hari_efektif` ( `id_hari_efektif` int NOT NULL, `jml_hari_efektif` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `master_jurusan` -- CREATE TABLE `master_jurusan` ( `id_jurusan` int NOT NULL, `nama_jurusan` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_jurusan` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `mapel_peminatan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `status` int NOT NULL DEFAULT '1', `deletable` int NOT NULL DEFAULT '1' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_jurusan` -- INSERT INTO `master_jurusan` (`id_jurusan`, `nama_jurusan`, `kode_jurusan`, `mapel_peminatan`, `status`, `deletable`) VALUES (0, 'NON JURUSAN', 'NON', NULL, 1, 0), (1, 'IPA', 'IPA', NULL, 1, 0), (2, 'IPS', 'IPS', NULL, 1, 0), (3, 'BAHASA', 'BAHASA', NULL, 1, 0), (4, 'KEAGAMAAN', 'AGAMA', NULL, 0, 1); -- -------------------------------------------------------- -- -- Struktur dari tabel `master_kelas` -- CREATE TABLE `master_kelas` ( `id_kelas` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `nama_kelas` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode_kelas` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jurusan_id` int DEFAULT NULL, `level_id` int NOT NULL, `guru_id` int DEFAULT NULL, `siswa_id` int DEFAULT NULL, `jumlah_siswa` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `set_siswa` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `master_kelompok_mapel` -- CREATE TABLE `master_kelompok_mapel` ( `id_kel_mapel` int NOT NULL, `kode_kel_mapel` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nama_kel_mapel` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kategori` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `id_parent` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_kelompok_mapel` -- INSERT INTO `master_kelompok_mapel` (`id_kel_mapel`, `kode_kel_mapel`, `nama_kel_mapel`, `kategori`, `id_parent`) VALUES (1, 'A', 'Kelompok A (Wajib)', 'WAJIB', 0), (2, 'B', 'Kelompok B', 'WAJIB', 0), (3, 'C', 'Kelompok C', 'PEMINATAN', 0), (4, 'MULOK', 'Muatan Lokal', 'MULOK', 0), (5, 'C1', 'Kelompok C1', 'PEMINATAN', 3), (6, 'PAI', 'PAI', 'PAI (Kemenag)', 0); -- -------------------------------------------------------- -- -- Struktur dari tabel `master_mapel` -- CREATE TABLE `master_mapel` ( `id_mapel` int NOT NULL, `nama_mapel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kelompok` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '-', `bobot_p` int NOT NULL DEFAULT '0', `bobot_k` int NOT NULL DEFAULT '0', `jenjang` int NOT NULL DEFAULT '0', `urutan` int NOT NULL, `status` int NOT NULL DEFAULT '1', `deletable` int NOT NULL DEFAULT '1', `urutan_tampil` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_mapel` -- INSERT INTO `master_mapel` (`id_mapel`, `nama_mapel`, `kode`, `kelompok`, `bobot_p`, `bobot_k`, `jenjang`, `urutan`, `status`, `deletable`, `urutan_tampil`) VALUES (1, 'Al Quran-Hadis', 'QH', 'PAI', 0, 0, 1, 1, 1, 0, 1), (2, 'Fiqih', 'FQH', 'PAI', 0, 0, 1, 1, 1, 0, 3), (3, 'Akidah Akhlak', 'AA', 'PAI', 0, 0, 1, 1, 1, 0, 2), (4, 'Sejarah Kebudayaan Islam', 'SKI', 'PAI', 0, 0, 1, 1, 1, 0, 4), (5, 'Bahasa Arab', 'BAR', 'A', 0, 0, 1, 2, 1, 0, 3), (6, 'Bahasa Indonesia', 'BIND', 'A', 0, 0, 1, 2, 1, 0, 2), (7, 'Bahasa Inggris', 'BING', 'A', 0, 0, 1, 2, 1, 0, 7), (8, 'Matematika', 'MTK', 'A', 0, 0, 1, 2, 1, 0, 4), (9, 'Ilmu Pengetahuan Alam', 'IPA', 'A', 0, 0, 1, 2, 1, 0, 5), (10, 'Ilmu Pengetahuan Sosial', 'IPS', 'A', 0, 0, 1, 2, 1, 0, 6), (11, 'Pendidikan Pancasila dan Kewarganegaraan', 'PPKn', 'A', 0, 0, 1, 2, 1, 0, 1), (12, 'Pendidikan Jasmani Olah Raga dan Kesehatan', 'PJOK', 'B', 0, 0, 1, 3, 1, 0, 2), (13, 'Seni Budaya', 'SB', 'B', 0, 0, 2, 3, 1, 0, 1), (14, 'Prakarya', 'PRA', 'B', 0, 0, 2, 3, 1, 0, 3), (15, 'SBdP', 'SBDP', 'B', 0, 0, 0, 3, 0, 0, 1), (16, 'Akhlak', 'AK', 'C', 0, 0, 3, 0, 0, 0, 19), (17, 'Antropologi', 'ANT', 'C1', 0, 0, 3, 0, 1, 0, 4), (18, 'Bahasa Arab (Peminatan)', 'BAR-P', 'C', 0, 0, 3, 0, 1, 0, 3), (19, 'Bahasa dan Sastra Asing Lainnya', 'BSAL', 'C', 0, 0, 3, 0, 1, 0, 16), (20, 'Bahasa dan Sastra Indonesia', 'BSIN', 'C', 0, 0, 3, 0, 1, 0, 15), (21, 'Bahasa dan Sastra Inggris', 'BSING', 'C', 0, 0, 3, 0, 1, 0, 14), (22, 'Bahasa Jepang', 'JPN', 'C', 0, 0, 3, 0, 1, 0, 18), (23, 'Bahasa Jerman', 'JRM', 'C', 0, 0, 3, 0, 1, 0, 12), (24, 'Biologi', 'BIO', 'C', 0, 0, 3, 0, 1, 0, 2), (25, 'Ekonomi', 'EKN', 'C', 0, 0, 3, 0, 1, 0, 11), (26, 'Fikih (Peminatan)', 'FQH-P', 'C', 0, 0, 3, 0, 1, 0, 4), (27, 'Fikih - Ushul Fikih', 'UFQH', 'C', 0, 0, 3, 0, 1, 0, 5), (28, 'Fisika', 'FIS', 'C1', 0, 0, 3, 0, 1, 0, 3), (29, 'Geografi', 'GEO', 'C', 0, 0, 3, 0, 1, 0, 10), (30, 'Hadis - Ilmu Hadis', 'HA', 'C', 0, 0, 3, 0, 1, 0, 6), (31, 'Ilmu Kalam', 'IK', 'C', 0, 0, 3, 0, 1, 0, 7), (32, 'Informatika', 'INF', 'C', 0, 0, 3, 0, 0, 0, 13), (33, 'Keterampilan', 'KTR', 'C', 0, 0, 3, 0, 0, 0, 17), (34, 'Kimia', 'KIM', 'C1', 0, 0, 3, 0, 1, 0, 2), (35, 'Prakarya dan Kewirausahaan', 'PK', 'B', 0, 0, 3, 0, 0, 0, 3), (36, 'Sejarah', 'SEJ', 'C', 0, 0, 3, 0, 1, 0, 8), (37, 'Sejarah Indonesia', 'SJI', 'A', 0, 0, 3, 0, 1, 0, 5), (38, 'Sosiologi', 'SOS', 'C', 0, 0, 3, 0, 1, 0, 9), (39, 'Tafsir - Ilmu Tafsir', 'TT', 'C1', 0, 0, 3, 0, 1, 0, 1), (40, 'Bahasa Sunda', 'BSUND', 'MULOK', 0, 0, 1, 0, 1, 1, 1), (41, 'Pendidikan Agama dan Budi Pekerti', 'PABP', 'A', 0, 0, 1, 1, 1, 0, 1), (42, 'Matematika (Peminatan)', 'MTK-P', 'C', 0, 0, 3, 0, 1, 1, 1); -- -------------------------------------------------------- -- -- Struktur dari tabel `master_siswa` -- CREATE TABLE `master_siswa` ( `id_siswa` int NOT NULL, `nisn` int(10) UNSIGNED ZEROFILL NOT NULL, `nis` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `jenis_kelamin` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `password` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `kelas_awal` int NOT NULL, `tahun_masuk` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `sekolah_asal` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tempat_lahir` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tanggal_lahir` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `agama` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `hp` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `email` varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `foto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'siswa.png', `anak_ke` int DEFAULT NULL, `status_keluarga` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alamat` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `rt` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `rw` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kelurahan` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kecamatan` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kabupaten` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `provinsi` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kode_pos` int DEFAULT NULL, `nama_ayah` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_lahir_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pendidikan_ayah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pekerjaan_ayah` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nohp_ayah` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alamat_ayah` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `nama_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_lahir_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pendidikan_ibu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pekerjaan_ibu` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nohp_ibu` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alamat_ibu` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `nama_wali` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_lahir_wali` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pendidikan_wali` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `pekerjaan_wali` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nohp_wali` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `alamat_wali` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `nik` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `warga_negara` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `master_smt` -- CREATE TABLE `master_smt` ( `id_smt` int NOT NULL, `smt` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `nama_smt` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `active` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_smt` -- INSERT INTO `master_smt` (`id_smt`, `smt`, `nama_smt`, `active`) VALUES (1, 'Ganjil', 'I (satu)', 1), (2, 'Genap', 'II (dua)', 0); -- -------------------------------------------------------- -- -- Struktur dari tabel `master_tp` -- CREATE TABLE `master_tp` ( `id_tp` int NOT NULL, `tahun` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `active` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Dumping data untuk tabel `master_tp` -- INSERT INTO `master_tp` (`id_tp`, `tahun`, `active`) VALUES (1, '2020/2021', 0), (2, '2021/2022', 0), (3, '2022/2023', 1), (4, '2023/2024', 0); -- -------------------------------------------------------- -- -- Struktur dari tabel `post` -- CREATE TABLE `post` ( `id_post` int NOT NULL, `dari` int DEFAULT NULL, `dari_group` int DEFAULT NULL, `kepada` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'group', `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tanggal` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `post_comments` -- CREATE TABLE `post_comments` ( `id_comment` int NOT NULL, `id_post` int DEFAULT NULL, `dari` int DEFAULT NULL, `dari_group` int DEFAULT NULL, `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tanggal` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `type` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '1:pengumuman, 2:materi, 3:tugas' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `post_reply` -- CREATE TABLE `post_reply` ( `id_reply` int NOT NULL, `id_comment` int DEFAULT NULL, `dari` int DEFAULT NULL, `dari_group` int DEFAULT NULL, `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tanggal` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `type` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_admin_setting` -- CREATE TABLE `rapor_admin_setting` ( `id_setting` int NOT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `kkm_tunggal` int NOT NULL DEFAULT '0', `kkm` int DEFAULT NULL, `bobot_ph` int DEFAULT NULL, `bobot_pts` int DEFAULT NULL, `bobot_pas` int DEFAULT NULL, `bobot_absen` int DEFAULT NULL, `tgl_rapor_akhir` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_rapor_kelas_akhir` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tgl_rapor_pts` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nip_kepsek` int DEFAULT '0', `nip_walikelas` int DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_catatan_wali` -- CREATE TABLE `rapor_catatan_wali` ( `id_catatan_wali` int NOT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `nilai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_data_catatan` -- CREATE TABLE `rapor_data_catatan` ( `id_catatan` int NOT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `id_kelas` int DEFAULT NULL, `jenis` int NOT NULL COMMENT '1=desk absensi, 2=desk catatan, 3=desk ranking', `kode` int NOT NULL, `deskripsi` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `rank` varchar(7) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_data_fisik` -- CREATE TABLE `rapor_data_fisik` ( `id_fisik` int NOT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `id_kelas` int DEFAULT NULL, `jenis` int NOT NULL COMMENT '1=pendengaran, 2=penglihatan, 3=gigi, 4=lain-lain', `kode` int NOT NULL, `deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_data_sikap` -- CREATE TABLE `rapor_data_sikap` ( `id_sikap` int NOT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `id_kelas` int DEFAULT NULL, `jenis` int NOT NULL COMMENT '1=spiritual, 2=sosial', `kode` int NOT NULL, `sikap` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_fisik` -- CREATE TABLE `rapor_fisik` ( `id_fisik` int NOT NULL, `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `kondisi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tinggi` int NOT NULL, `berat` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_kikd` -- CREATE TABLE `rapor_kikd` ( `id_kikd` int NOT NULL, `id_mapel_kelas` int DEFAULT NULL, `aspek` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `materi_kikd` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_kkm` -- CREATE TABLE `rapor_kkm` ( `id_kkm` int NOT NULL, `kkm` int DEFAULT '0', `bobot_ph` int DEFAULT '0', `bobot_pts` int DEFAULT '0', `bobot_pas` int DEFAULT '0', `bobot_absen` int DEFAULT '0', `beban_jam` int DEFAULT '0', `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `jenis` int NOT NULL, `id_kelas` int DEFAULT NULL, `id_mapel` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_naik` -- CREATE TABLE `rapor_naik` ( `id_naik` int NOT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `id_siswa` int NOT NULL, `naik` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_nilai_akhir` -- CREATE TABLE `rapor_nilai_akhir` ( `id_nilai_akhir` int NOT NULL, `id_mapel` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `nilai` int DEFAULT '0', `akhir` int DEFAULT NULL, `predikat` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_nilai_ekstra` -- CREATE TABLE `rapor_nilai_ekstra` ( `id_nilai_ekstra` int NOT NULL, `id_ekstra` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `nilai` int NOT NULL, `predikat` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `deskripsi` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_nilai_harian` -- CREATE TABLE `rapor_nilai_harian` ( `id_nilai_harian` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_mapel` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `p1` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p2` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p3` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p4` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p5` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p6` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p7` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p8` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p_rata_rata` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p_predikat` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `p_deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `k1` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k2` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k3` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k4` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k5` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k6` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k7` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k8` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k_rata_rata` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k_predikat` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `k_deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `jml` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_nilai_pts` -- CREATE TABLE `rapor_nilai_pts` ( `id_nilai_pts` int NOT NULL, `id_mapel` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `nilai` int DEFAULT '0', `predikat` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_nilai_sikap` -- CREATE TABLE `rapor_nilai_sikap` ( `id_nilai_sikap` int NOT NULL, `id_siswa` int DEFAULT NULL, `id_kelas` int DEFAULT NULL, `id_tp` int NOT NULL DEFAULT '0', `id_smt` int NOT NULL DEFAULT '0', `jenis` int DEFAULT NULL, `nilai` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `deskripsi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `rapor_prestasi` -- CREATE TABLE `rapor_prestasi` ( `id_ranking` int NOT NULL, `id_kelas` int DEFAULT NULL, `id_siswa` int DEFAULT NULL, `id_tp` int NOT NULL, `id_smt` int NOT NULL, `ranking` int NOT NULL, `deskripsi` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p1_desk` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p2_desk` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `p3_desk` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `running_text` -- CREATE TABLE `running_text` ( `id_text` int NOT NULL, `text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `setting` -- CREATE TABLE `setting` ( `id_setting` int NOT NULL, `kode_sekolah` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `sekolah` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `npsn` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nss` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `jenjang` int DEFAULT NULL, `kepsek` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nip` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `tanda_tangan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `alamat` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `desa` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kecamatan` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kota` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `provinsi` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `kode_pos` int DEFAULT NULL, `telp` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `fax` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `web` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `nama_aplikasi` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `logo_kanan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `logo_kiri` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `versi` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `ip_server` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `waktu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `server` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `id_server` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `sekolah_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `db_versi` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `satuan_pendidikan` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT; -- -------------------------------------------------------- -- -- Struktur dari tabel `users` -- CREATE TABLE `users` ( `id` int UNSIGNED NOT NULL, `ip_address` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `username` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `email` varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `activation_selector` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `activation_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `forgotten_password_selector` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `forgotten_password_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `forgotten_password_time` int UNSIGNED DEFAULT NULL, `remember_selector` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `remember_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `created_on` int UNSIGNED NOT NULL, `last_login` int UNSIGNED DEFAULT NULL, `active` tinyint UNSIGNED DEFAULT NULL, `first_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `last_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `company` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `users_groups` -- CREATE TABLE `users_groups` ( `id` int UNSIGNED NOT NULL, `user_id` int UNSIGNED NOT NULL, `group_id` mediumint UNSIGNED NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -------------------------------------------------------- -- -- Struktur dari tabel `users_profile` -- CREATE TABLE `users_profile` ( `id_user` int NOT NULL, `nama_lengkap` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `jabatan` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `level_access` int NOT NULL DEFAULT '0', `foto` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; -- -- Indexes for dumped tables -- -- -- Indeks untuk tabel `api_setting` -- ALTER TABLE `api_setting` ADD PRIMARY KEY (`id`) USING BTREE; -- -- Indeks untuk tabel `api_token` -- ALTER TABLE `api_token` ADD PRIMARY KEY (`id_api`) USING BTREE; -- -- Indeks untuk tabel `buku_induk` -- ALTER TABLE `buku_induk` ADD PRIMARY KEY (`id_siswa`) USING BTREE; -- -- Indeks untuk tabel `bulan` -- ALTER TABLE `bulan` ADD PRIMARY KEY (`id_bln`) USING BTREE; -- -- Indeks untuk tabel `cbt_bank_soal` -- ALTER TABLE `cbt_bank_soal` ADD PRIMARY KEY (`id_bank`) USING BTREE, ADD UNIQUE KEY `kode_bank_soal` (`bank_kode`(100)); -- -- Indeks untuk tabel `cbt_durasi_siswa` -- ALTER TABLE `cbt_durasi_siswa` ADD PRIMARY KEY (`id_durasi`) USING BTREE, ADD KEY `Cbt_index_id_durasi` (`id_durasi`) USING BTREE COMMENT 'id durasi', ADD KEY `id_siswa` (`id_siswa`) USING BTREE; -- -- Indeks untuk tabel `cbt_jadwal` -- ALTER TABLE `cbt_jadwal` ADD PRIMARY KEY (`id_jadwal`) USING BTREE, ADD UNIQUE KEY `idjawal_relation` (`id_jadwal`) USING BTREE, ADD UNIQUE KEY `id_bank_soal` (`id_bank`) USING BTREE, ADD KEY `idx_jns_fc` (`id_jenis`) USING BTREE; -- -- Indeks untuk tabel `cbt_jenis` -- ALTER TABLE `cbt_jenis` ADD PRIMARY KEY (`id_jenis`) USING BTREE, ADD UNIQUE KEY `idx_jns` (`id_jenis`) USING BTREE; -- -- Indeks untuk tabel `cbt_kelas_ruang` -- ALTER TABLE `cbt_kelas_ruang` ADD PRIMARY KEY (`id_kelas_ruang`) USING BTREE; -- -- Indeks untuk tabel `cbt_kop_absensi` -- ALTER TABLE `cbt_kop_absensi` ADD PRIMARY KEY (`id_kop`) USING BTREE; -- -- Indeks untuk tabel `cbt_kop_berita` -- ALTER TABLE `cbt_kop_berita` ADD PRIMARY KEY (`id_kop`) USING BTREE; -- -- Indeks untuk tabel `cbt_kop_kartu` -- ALTER TABLE `cbt_kop_kartu` ADD PRIMARY KEY (`id_set_kartu`) USING BTREE; -- -- Indeks untuk tabel `cbt_nilai` -- ALTER TABLE `cbt_nilai` ADD PRIMARY KEY (`id_nilai`) USING BTREE, ADD UNIQUE KEY `id_nilai_idx` (`id_nilai`) USING BTREE; -- -- Indeks untuk tabel `cbt_nomor_peserta` -- ALTER TABLE `cbt_nomor_peserta` ADD PRIMARY KEY (`id_nomor`) USING BTREE; -- -- Indeks untuk tabel `cbt_pengawas` -- ALTER TABLE `cbt_pengawas` ADD PRIMARY KEY (`id_pengawas`) USING BTREE; -- -- Indeks untuk tabel `cbt_rekap` -- ALTER TABLE `cbt_rekap` ADD PRIMARY KEY (`id_rekap`) USING BTREE; -- -- Indeks untuk tabel `cbt_rekap_nilai` -- ALTER TABLE `cbt_rekap_nilai` ADD PRIMARY KEY (`id_rekap_nilai`) USING BTREE; -- -- Indeks untuk tabel `cbt_ruang` -- ALTER TABLE `cbt_ruang` ADD PRIMARY KEY (`id_ruang`) USING BTREE; -- -- Indeks untuk tabel `cbt_sesi` -- ALTER TABLE `cbt_sesi` ADD PRIMARY KEY (`id_sesi`) USING BTREE; -- -- Indeks untuk tabel `cbt_sesi_siswa` -- ALTER TABLE `cbt_sesi_siswa` ADD PRIMARY KEY (`siswa_id`) USING BTREE; -- -- Indeks untuk tabel `cbt_soal` -- ALTER TABLE `cbt_soal` ADD PRIMARY KEY (`id_soal`) USING BTREE, ADD UNIQUE KEY `id_soal_idx` (`id_soal`) USING BTREE, ADD KEY `id_bank_idx` (`bank_id`) USING BTREE; -- -- Indeks untuk tabel `cbt_soal_siswa` -- ALTER TABLE `cbt_soal_siswa` ADD PRIMARY KEY (`id_soal_siswa`) USING BTREE, ADD UNIQUE KEY `is_soal_siswa` (`id_soal_siswa`) USING BTREE, ADD KEY `id_siswa` (`id_siswa`) USING BTREE, ADD KEY `id_jadwal` (`id_jadwal`) USING BTREE, ADD KEY `id_soal_fc` (`id_soal`) USING BTREE, ADD KEY `id_bank_fc` (`id_bank`) USING BTREE; -- -- Indeks untuk tabel `cbt_token` -- ALTER TABLE `cbt_token` ADD PRIMARY KEY (`id_token`) USING BTREE; -- -- Indeks untuk tabel `groups` -- ALTER TABLE `groups` ADD PRIMARY KEY (`id`) USING BTREE; -- -- Indeks untuk tabel `hari` -- ALTER TABLE `hari` ADD PRIMARY KEY (`id_hri`) USING BTREE; -- -- Indeks untuk tabel `jabatan_guru` -- ALTER TABLE `jabatan_guru` ADD PRIMARY KEY (`id_jabatan_guru`) USING BTREE; -- -- Indeks untuk tabel `kelas_catatan_mapel` -- ALTER TABLE `kelas_catatan_mapel` ADD PRIMARY KEY (`id_catatan`) USING BTREE; -- -- Indeks untuk tabel `kelas_catatan_wali` -- ALTER TABLE `kelas_catatan_wali` ADD PRIMARY KEY (`id_catatan`) USING BTREE; -- -- Indeks untuk tabel `kelas_ekstra` -- ALTER TABLE `kelas_ekstra` ADD PRIMARY KEY (`id_kelas_ekstra`) USING BTREE; -- -- Indeks untuk tabel `kelas_jadwal_kbm` -- ALTER TABLE `kelas_jadwal_kbm` ADD PRIMARY KEY (`id_kbm`) USING BTREE; -- -- Indeks untuk tabel `kelas_jadwal_mapel` -- ALTER TABLE `kelas_jadwal_mapel` ADD PRIMARY KEY (`id_jadwal`) USING BTREE; -- -- Indeks untuk tabel `kelas_jadwal_materi` -- ALTER TABLE `kelas_jadwal_materi` ADD PRIMARY KEY (`id_kjm`) USING BTREE; -- -- Indeks untuk tabel `kelas_materi` -- ALTER TABLE `kelas_materi` ADD PRIMARY KEY (`id_materi`) USING BTREE; -- -- Indeks untuk tabel `kelas_siswa` -- ALTER TABLE `kelas_siswa` ADD PRIMARY KEY (`id_kelas_siswa`) USING BTREE, ADD UNIQUE KEY `id_kelas_siswa_idx` (`id_kelas_siswa`) USING BTREE, ADD KEY `id_siswa_idx` (`id_siswa`) USING BTREE, ADD KEY `Id_kelas` (`id_kelas`) USING BTREE; -- -- Indeks untuk tabel `kelas_struktur` -- ALTER TABLE `kelas_struktur` ADD PRIMARY KEY (`id_kelas`) USING BTREE; -- -- Indeks untuk tabel `level_guru` -- ALTER TABLE `level_guru` ADD PRIMARY KEY (`id_level`) USING BTREE; -- -- Indeks untuk tabel `level_kelas` -- ALTER TABLE `level_kelas` ADD PRIMARY KEY (`id_level`) USING BTREE, ADD KEY `index_id_level` (`id_level`) USING BTREE; -- -- Indeks untuk tabel `log` -- ALTER TABLE `log` ADD PRIMARY KEY (`id_log`) USING BTREE; -- -- Indeks untuk tabel `login_attempts` -- ALTER TABLE `login_attempts` ADD PRIMARY KEY (`id`) USING BTREE; -- -- Indeks untuk tabel `log_materi` -- ALTER TABLE `log_materi` ADD PRIMARY KEY (`id_log`) USING BTREE; -- -- Indeks untuk tabel `log_ujian` -- ALTER TABLE `log_ujian` ADD PRIMARY KEY (`id_log`) USING BTREE; -- -- Indeks untuk tabel `master_ekstra` -- ALTER TABLE `master_ekstra` ADD PRIMARY KEY (`id_ekstra`) USING BTREE; -- -- Indeks untuk tabel `master_guru` -- ALTER TABLE `master_guru` ADD PRIMARY KEY (`id_guru`) USING BTREE; -- -- Indeks untuk tabel `master_hari_efektif` -- ALTER TABLE `master_hari_efektif` ADD PRIMARY KEY (`id_hari_efektif`) USING BTREE; -- -- Indeks untuk tabel `master_jurusan` -- ALTER TABLE `master_jurusan` ADD PRIMARY KEY (`id_jurusan`) USING BTREE; -- -- Indeks untuk tabel `master_kelas` -- ALTER TABLE `master_kelas` ADD PRIMARY KEY (`id_kelas`) USING BTREE, ADD KEY `index_level_Id` (`level_id`) USING BTREE; -- -- Indeks untuk tabel `master_kelompok_mapel` -- ALTER TABLE `master_kelompok_mapel` ADD PRIMARY KEY (`id_kel_mapel`) USING BTREE; -- -- Indeks untuk tabel `master_mapel` -- ALTER TABLE `master_mapel` ADD PRIMARY KEY (`id_mapel`) USING BTREE; -- -- Indeks untuk tabel `master_siswa` -- ALTER TABLE `master_siswa` ADD PRIMARY KEY (`id_siswa`,`uid`,`nisn`,`nis`) USING BTREE, ADD UNIQUE KEY `Id_siswa_idx` (`id_siswa`) USING BTREE, ADD UNIQUE KEY `uid_idx` (`uid`) USING BTREE, ADD UNIQUE KEY `nisn` (`nisn`) USING BTREE; -- -- Indeks untuk tabel `master_smt` -- ALTER TABLE `master_smt` ADD PRIMARY KEY (`id_smt`) USING BTREE; -- -- Indeks untuk tabel `master_tp` -- ALTER TABLE `master_tp` ADD PRIMARY KEY (`id_tp`) USING BTREE; -- -- Indeks untuk tabel `post` -- ALTER TABLE `post` ADD PRIMARY KEY (`id_post`) USING BTREE; -- -- Indeks untuk tabel `post_comments` -- ALTER TABLE `post_comments` ADD PRIMARY KEY (`id_comment`) USING BTREE; -- -- Indeks untuk tabel `post_reply` -- ALTER TABLE `post_reply` ADD PRIMARY KEY (`id_reply`) USING BTREE; -- -- Indeks untuk tabel `rapor_admin_setting` -- ALTER TABLE `rapor_admin_setting` ADD PRIMARY KEY (`id_setting`) USING BTREE; -- -- Indeks untuk tabel `rapor_catatan_wali` -- ALTER TABLE `rapor_catatan_wali` ADD PRIMARY KEY (`id_catatan_wali`) USING BTREE; -- -- Indeks untuk tabel `rapor_data_catatan` -- ALTER TABLE `rapor_data_catatan` ADD PRIMARY KEY (`id_catatan`) USING BTREE; -- -- Indeks untuk tabel `rapor_data_fisik` -- ALTER TABLE `rapor_data_fisik` ADD PRIMARY KEY (`id_fisik`) USING BTREE; -- -- Indeks untuk tabel `rapor_data_sikap` -- ALTER TABLE `rapor_data_sikap` ADD PRIMARY KEY (`id_sikap`) USING BTREE; -- -- Indeks untuk tabel `rapor_fisik` -- ALTER TABLE `rapor_fisik` ADD PRIMARY KEY (`id_fisik`) USING BTREE; -- -- Indeks untuk tabel `rapor_kikd` -- ALTER TABLE `rapor_kikd` ADD PRIMARY KEY (`id_kikd`) USING BTREE; -- -- Indeks untuk tabel `rapor_kkm` -- ALTER TABLE `rapor_kkm` ADD PRIMARY KEY (`id_kkm`) USING BTREE; -- -- Indeks untuk tabel `rapor_naik` -- ALTER TABLE `rapor_naik` ADD PRIMARY KEY (`id_naik`) USING BTREE; -- -- Indeks untuk tabel `rapor_nilai_akhir` -- ALTER TABLE `rapor_nilai_akhir` ADD PRIMARY KEY (`id_nilai_akhir`) USING BTREE; -- -- Indeks untuk tabel `rapor_nilai_ekstra` -- ALTER TABLE `rapor_nilai_ekstra` ADD PRIMARY KEY (`id_nilai_ekstra`) USING BTREE; -- -- Indeks untuk tabel `rapor_nilai_harian` -- ALTER TABLE `rapor_nilai_harian` ADD PRIMARY KEY (`id_nilai_harian`) USING BTREE; -- -- Indeks untuk tabel `rapor_nilai_pts` -- ALTER TABLE `rapor_nilai_pts` ADD PRIMARY KEY (`id_nilai_pts`) USING BTREE; -- -- Indeks untuk tabel `rapor_nilai_sikap` -- ALTER TABLE `rapor_nilai_sikap` ADD PRIMARY KEY (`id_nilai_sikap`) USING BTREE; -- -- Indeks untuk tabel `rapor_prestasi` -- ALTER TABLE `rapor_prestasi` ADD PRIMARY KEY (`id_ranking`) USING BTREE; -- -- Indeks untuk tabel `running_text` -- ALTER TABLE `running_text` ADD PRIMARY KEY (`id_text`) USING BTREE; -- -- Indeks untuk tabel `setting` -- ALTER TABLE `setting` ADD PRIMARY KEY (`id_setting`) USING BTREE; -- -- Indeks untuk tabel `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`) USING BTREE, ADD UNIQUE KEY `id_user` (`id`) USING BTREE, ADD UNIQUE KEY `username_idx` (`username`) USING BTREE; -- -- Indeks untuk tabel `users_groups` -- ALTER TABLE `users_groups` ADD PRIMARY KEY (`id`) USING BTREE, ADD UNIQUE KEY `uc_users_groups` (`user_id`,`group_id`) USING BTREE, ADD KEY `fk_users_groups_users1_idx` (`user_id`) USING BTREE, ADD KEY `fk_users_groups_groups1_idx` (`group_id`) USING BTREE; -- -- Indeks untuk tabel `users_profile` -- ALTER TABLE `users_profile` ADD PRIMARY KEY (`id_user`) USING BTREE; -- -- AUTO_INCREMENT untuk tabel yang dibuang -- -- -- AUTO_INCREMENT untuk tabel `api_setting` -- ALTER TABLE `api_setting` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `api_token` -- ALTER TABLE `api_token` MODIFY `id_api` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `buku_induk` -- ALTER TABLE `buku_induk` MODIFY `id_siswa` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `bulan` -- ALTER TABLE `bulan` MODIFY `id_bln` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; -- -- AUTO_INCREMENT untuk tabel `cbt_bank_soal` -- ALTER TABLE `cbt_bank_soal` MODIFY `id_bank` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `cbt_jadwal` -- ALTER TABLE `cbt_jadwal` MODIFY `id_jadwal` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `cbt_jenis` -- ALTER TABLE `cbt_jenis` MODIFY `id_jenis` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; -- -- AUTO_INCREMENT untuk tabel `cbt_rekap` -- ALTER TABLE `cbt_rekap` MODIFY `id_rekap` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `cbt_rekap_nilai` -- ALTER TABLE `cbt_rekap_nilai` MODIFY `id_rekap_nilai` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `cbt_ruang` -- ALTER TABLE `cbt_ruang` MODIFY `id_ruang` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; -- -- AUTO_INCREMENT untuk tabel `cbt_sesi` -- ALTER TABLE `cbt_sesi` MODIFY `id_sesi` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT untuk tabel `cbt_soal` -- ALTER TABLE `cbt_soal` MODIFY `id_soal` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `cbt_token` -- ALTER TABLE `cbt_token` MODIFY `id_token` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; -- -- AUTO_INCREMENT untuk tabel `groups` -- ALTER TABLE `groups` MODIFY `id` mediumint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT untuk tabel `hari` -- ALTER TABLE `hari` MODIFY `id_hri` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; -- -- AUTO_INCREMENT untuk tabel `kelas_catatan_mapel` -- ALTER TABLE `kelas_catatan_mapel` MODIFY `id_catatan` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `kelas_catatan_wali` -- ALTER TABLE `kelas_catatan_wali` MODIFY `id_catatan` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `kelas_materi` -- ALTER TABLE `kelas_materi` MODIFY `id_materi` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `kelas_struktur` -- ALTER TABLE `kelas_struktur` MODIFY `id_kelas` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `level_guru` -- ALTER TABLE `level_guru` MODIFY `id_level` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; -- -- AUTO_INCREMENT untuk tabel `log` -- ALTER TABLE `log` MODIFY `id_log` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `login_attempts` -- ALTER TABLE `login_attempts` MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `log_ujian` -- ALTER TABLE `log_ujian` MODIFY `id_log` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `master_ekstra` -- ALTER TABLE `master_ekstra` MODIFY `id_ekstra` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT untuk tabel `master_guru` -- ALTER TABLE `master_guru` MODIFY `id_guru` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `master_hari_efektif` -- ALTER TABLE `master_hari_efektif` MODIFY `id_hari_efektif` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `master_jurusan` -- ALTER TABLE `master_jurusan` MODIFY `id_jurusan` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT untuk tabel `master_kelas` -- ALTER TABLE `master_kelas` MODIFY `id_kelas` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `master_kelompok_mapel` -- ALTER TABLE `master_kelompok_mapel` MODIFY `id_kel_mapel` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- AUTO_INCREMENT untuk tabel `master_mapel` -- ALTER TABLE `master_mapel` MODIFY `id_mapel` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=43; -- -- AUTO_INCREMENT untuk tabel `master_siswa` -- ALTER TABLE `master_siswa` MODIFY `id_siswa` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `master_smt` -- ALTER TABLE `master_smt` MODIFY `id_smt` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT untuk tabel `master_tp` -- ALTER TABLE `master_tp` MODIFY `id_tp` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT untuk tabel `post` -- ALTER TABLE `post` MODIFY `id_post` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `post_comments` -- ALTER TABLE `post_comments` MODIFY `id_comment` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `post_reply` -- ALTER TABLE `post_reply` MODIFY `id_reply` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_admin_setting` -- ALTER TABLE `rapor_admin_setting` MODIFY `id_setting` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_catatan_wali` -- ALTER TABLE `rapor_catatan_wali` MODIFY `id_catatan_wali` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_data_catatan` -- ALTER TABLE `rapor_data_catatan` MODIFY `id_catatan` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_data_fisik` -- ALTER TABLE `rapor_data_fisik` MODIFY `id_fisik` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_data_sikap` -- ALTER TABLE `rapor_data_sikap` MODIFY `id_sikap` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_fisik` -- ALTER TABLE `rapor_fisik` MODIFY `id_fisik` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_kikd` -- ALTER TABLE `rapor_kikd` MODIFY `id_kikd` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_kkm` -- ALTER TABLE `rapor_kkm` MODIFY `id_kkm` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_nilai_akhir` -- ALTER TABLE `rapor_nilai_akhir` MODIFY `id_nilai_akhir` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_nilai_ekstra` -- ALTER TABLE `rapor_nilai_ekstra` MODIFY `id_nilai_ekstra` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_nilai_harian` -- ALTER TABLE `rapor_nilai_harian` MODIFY `id_nilai_harian` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_nilai_pts` -- ALTER TABLE `rapor_nilai_pts` MODIFY `id_nilai_pts` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_nilai_sikap` -- ALTER TABLE `rapor_nilai_sikap` MODIFY `id_nilai_sikap` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `rapor_prestasi` -- ALTER TABLE `rapor_prestasi` MODIFY `id_ranking` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `running_text` -- ALTER TABLE `running_text` MODIFY `id_text` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `setting` -- ALTER TABLE `setting` MODIFY `id_setting` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `users` -- ALTER TABLE `users` MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `users_groups` -- ALTER TABLE `users_groups` MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT untuk tabel `users_profile` -- ALTER TABLE `users_profile` MODIFY `id_user` int NOT NULL AUTO_INCREMENT; -- -- Ketidakleluasaan untuk tabel pelimpahan (Dumped Tables) -- -- -- Ketidakleluasaan untuk tabel `cbt_jadwal` -- ALTER TABLE `cbt_jadwal` ADD CONSTRAINT `id_bank_soal` FOREIGN KEY (`id_bank`) REFERENCES `cbt_bank_soal` (`id_bank`), ADD CONSTRAINT `id_jns_idx_ifc` FOREIGN KEY (`id_jenis`) REFERENCES `cbt_jenis` (`id_jenis`); -- -- Ketidakleluasaan untuk tabel `cbt_soal_siswa` -- ALTER TABLE `cbt_soal_siswa` ADD CONSTRAINT `id_bank_fc` FOREIGN KEY (`id_bank`) REFERENCES `cbt_bank_soal` (`id_bank`), ADD CONSTRAINT `id_jadwal_fc` FOREIGN KEY (`id_jadwal`) REFERENCES `cbt_jadwal` (`id_jadwal`), ADD CONSTRAINT `Id_siswa_fc` FOREIGN KEY (`id_siswa`) REFERENCES `master_siswa` (`id_siswa`), ADD CONSTRAINT `id_soal_fc` FOREIGN KEY (`id_soal`) REFERENCES `cbt_soal` (`id_soal`); -- -- Ketidakleluasaan untuk tabel `master_kelas` -- ALTER TABLE `master_kelas` ADD CONSTRAINT `key_id_cek` FOREIGN KEY (`level_id`) REFERENCES `level_kelas` (`id_level`); COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; PK\A̧db/database.phpnu[ '', 'hostname' => '%HOSTNAME%', 'username' => '%USERNAME%', 'password' => '%PASSWORD%', 'database' => '%DATABASE%', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); PK\:db/database.jsonnu[{ "api_setting": [ { "name": "id", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "auto_sync", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "edit_profile_siswa", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "edit_profile_guru", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "api_token": [ { "name": "id_api", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "timestamp", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "id_user", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "address", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "agent", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "device", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "token", "type": "text", "max_length": null, "default": null, "primary_key": 0 } ], "buku_induk": [ { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "uid", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "rombel_awal", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "nama_panggilan", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "bahasa", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "jml_saudara_kandung", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jml_saudara_tiri", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jml_saudara_angkat", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "yatim", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "tinggal_bersama", "type": "varchar", "max_length": 1, "default": "1", "primary_key": 0 }, { "name": "jarak", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "gol_darah", "type": "varchar", "max_length": 4, "default": null, "primary_key": 0 }, { "name": "penyakit", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "kelainan_fisik", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kegemaran", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "beasiswa", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "no_ijazah_sebelumnya", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tahun_lulus_sebelumnya", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "pindahan_dari", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "alasan_kepindahan", "type": "varchar", "max_length": 200, "default": null, "primary_key": 0 }, { "name": "agama_ayah", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "tempat_lahir_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "wn_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "penghasilan_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "hidup_meninggal_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "agama_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tempat_lahir_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "wn_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "penghasilan_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "hidup_meninggal_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tempat_lahir_wali", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "agama_wali", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "wn_wali", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "penghasilan_wali", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 }, { "name": "tahun_lulus", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "no_ijazah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kelas_akhir", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "lanjut_ke", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pindah_ke", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "alasan_pindah", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tgl_pindah", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "bekerja_di", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "catatan_penting", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "bulan": [ { "name": "id_bln", "type": "int", "max_length": 10, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_bln", "type": "varchar", "max_length": 25, "default": null, "primary_key": 0 } ], "cbt_bank_soal": [ { "name": "id_bank", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "bank_jenis_id", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "bank_kode", "type": "varchar", "max_length": 255, "default": "0", "primary_key": 0 }, { "name": "bank_level", "type": "varchar", "max_length": 225, "default": null, "primary_key": 0 }, { "name": "bank_kelas", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "bank_mapel_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "bank_jurusan_id", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "bank_guru_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "bank_nama", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "kkm", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "jml_soal", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "jml_esai", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "tampil_pg", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "tampil_esai", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "bobot_pg", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "bobot_esai", "type": "int", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "opsi", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "date", "type": "timestamp", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0, "extra": "on update CURRENT_TIMESTAMP" }, { "name": "status", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "soal_agama", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jml_kompleks", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "tampil_kompleks", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_kompleks", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "jml_jodohkan", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "tampil_jodohkan", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_jodohkan", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "jml_isian", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "tampil_isian", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_isian", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "status_soal", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "cbt_durasi_siswa": [ { "name": "id_durasi", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "lama_ujian", "type": "time", "max_length": null, "default": null, "primary_key": 0 }, { "name": "mulai", "type": "varchar", "max_length": 22, "default": null, "primary_key": 0 }, { "name": "selesai", "type": "varchar", "max_length": 22, "default": null, "primary_key": 0 }, { "name": "reset", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 } ], "cbt_jadwal": [ { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_bank", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_jenis", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "tgl_mulai", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "tgl_selesai", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "durasi_ujian", "type": "int", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "pengawas", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "acak_soal", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "acak_opsi", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "hasil_tampil", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "token", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "ulang", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "reset_login", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "rekap", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "jam_ke", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "jarak", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 } ], "cbt_jenis": [ { "name": "id_jenis", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_jenis", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kode_jenis", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 } ], "cbt_kelas_ruang": [ { "name": "id_kelas_ruang", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_ruang", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_sesi", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "set_siswa", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "cbt_kop_absensi": [ { "name": "id_kop", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "header_1", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_2", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_3", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_4", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "proktor", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "pengawas_1", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "pengawas_2", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "cbt_kop_berita": [ { "name": "id_kop", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "header_1", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_2", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_3", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_4", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "cbt_kop_kartu": [ { "name": "id_set_kartu", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "header_1", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_2", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_3", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "header_4", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tanggal", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "cbt_nilai": [ { "name": "id_nilai", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "pg_benar", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "pg_nilai", "type": "varchar", "max_length": 10, "default": "0", "primary_key": 0 }, { "name": "essai_nilai", "type": "varchar", "max_length": 10, "default": "0", "primary_key": 0 }, { "name": "id_siswa", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_jadwal", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kompleks_nilai", "type": "varchar", "max_length": 10, "default": "0", "primary_key": 0 }, { "name": "jodohkan_nilai", "type": "varchar", "max_length": 10, "default": "0", "primary_key": 0 }, { "name": "isian_nilai", "type": "varchar", "max_length": 10, "default": "0", "primary_key": 0 }, { "name": "dikoreksi", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 } ], "cbt_nomor_peserta": [ { "name": "id_nomor", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 }, { "name": "nomor_peserta", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 } ], "cbt_pengawas": [ { "name": "id_pengawas", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_jadwal", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_ruang", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_sesi", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_guru", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 } ], "cbt_rekap": [ { "name": "id_rekap", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "tp", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "smt", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_jadwal", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "id_jenis", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "kode_jenis", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_bank", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "bank_kelas", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "bank_kode", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "bank_level", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "nama_mapel", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kode", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tgl_mulai", "type": "varchar", "max_length": 22, "default": null, "primary_key": 0 }, { "name": "tgl_selesai", "type": "varchar", "max_length": 22, "default": null, "primary_key": 0 }, { "name": "tampil_pg", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "jawaban_pg", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tampil_esai", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "jawaban_esai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "bobot_pg", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "bobot_esai", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "id_guru", "type": "varchar", "max_length": 250, "default": null, "primary_key": 0 }, { "name": "nama_guru", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "nama_kelas", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_kompleks", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_jodohkan", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_isian", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_essai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "cbt_rekap_nilai": [ { "name": "id_rekap_nilai", "type": "bigint", "max_length": 100, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "tp", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "smt", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_jenis", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "kode_jenis", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_bank", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "kelas", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "mulai", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "selesai", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "durasi", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "bobot_pg", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jawaban_pg", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nilai_pg", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "bobot_esai", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jawaban_esai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nilai_esai", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "id_guru", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nama_siswa", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "no_peserta", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "soal_kompleks", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_jodohkan", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_isian", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "soal_essai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "cbt_ruang": [ { "name": "id_ruang", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_ruang", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kode_ruang", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 } ], "cbt_sesi": [ { "name": "id_sesi", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_sesi", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kode_sesi", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "waktu_mulai", "type": "time", "max_length": null, "default": null, "primary_key": 0 }, { "name": "waktu_akhir", "type": "time", "max_length": null, "default": null, "primary_key": 0 }, { "name": "aktif", "type": "int", "max_length": 1, "default": null, "primary_key": 0 } ], "cbt_sesi_siswa": [ { "name": "siswa_id", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "kelas_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "ruang_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sesi_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "tp_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "smt_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "cbt_soal": [ { "name": "id_soal", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "bank_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "mapel_id", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "nomor_soal", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "file", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "file1", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tipe_file", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "soal", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "opsi_a", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "opsi_b", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "opsi_c", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "opsi_d", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "opsi_e", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "file_a", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "file_b", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "file_c", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "file_d", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "file_e", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "jawaban", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "created_on", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "updated_on", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "tampilkan", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "kesulitan", "type": "int", "max_length": 2, "default": "1", "primary_key": 0 }, { "name": "timer", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "timer_menit", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 } ], "cbt_soal_siswa": [ { "name": "id_soal_siswa", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_bank", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_soal", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jenis_soal", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "no_soal_alias", "type": "int", "max_length": 4, "default": null, "primary_key": 0 }, { "name": "opsi_alias_a", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "opsi_alias_b", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "opsi_alias_c", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "opsi_alias_d", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "opsi_alias_e", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "jawaban_alias", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jawaban_siswa", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jawaban_benar", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "point_essai", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "soal_end", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "point_soal", "type": "varchar", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "nilai_koreksi", "type": "varchar", "max_length": 5, "default": "0", "primary_key": 0 }, { "name": "nilai_otomatis", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "cbt_token": [ { "name": "id_token", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "token", "type": "varchar", "max_length": 6, "default": null, "primary_key": 0 }, { "name": "auto", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "jarak", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "updated", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 } ], "groups": [ { "name": "id", "type": "mediumint", "max_length": 8, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "name", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "description", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "hari": [ { "name": "id_hri", "type": "int", "max_length": 10, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_hri", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 } ], "jabatan_guru": [ { "name": "id_jabatan_guru", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_guru", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_jabatan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "mapel_kelas", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "ekstra_kelas", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "kelas_catatan_mapel": [ { "name": "id_catatan", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "type", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_guru", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "level", "type": "varchar", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "tgl", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "text", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "readed", "type": "varchar", "max_length": 22, "default": "0", "primary_key": 0 }, { "name": "reading", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jml", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "kelas_catatan_wali": [ { "name": "id_catatan", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "type", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "level", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "tgl", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0, "extra": "on update CURRENT_TIMESTAMP" }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "text", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "readed", "type": "varchar", "max_length": 22, "default": "0", "primary_key": 0 }, { "name": "reading", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jml", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "kelas_ekstra": [ { "name": "id_kelas_ekstra", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "ekstra", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "kelas_jadwal_kbm": [ { "name": "id_kbm", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "kbm_jam_pel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "kbm_jam_mulai", "type": "varchar", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "kbm_jml_mapel_hari", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "istirahat", "type": "text", "max_length": null, "default": null, "primary_key": 0 } ], "kelas_jadwal_mapel": [ { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_hari", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jam_ke", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "kelas_jadwal_materi": [ { "name": "id_kjm", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_materi", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jadwal_materi", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 } ], "kelas_materi": [ { "name": "id_materi", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 }, { "name": "kode_materi", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "id_guru", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "materi_kelas", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "kode_mapel", "type": "varchar", "max_length": 300, "default": null, "primary_key": 0 }, { "name": "judul_materi", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "isi_materi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "file", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "link_file", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "tgl_mulai", "type": "datetime", "max_length": null, "default": null, "primary_key": 0 }, { "name": "created_on", "type": "datetime", "max_length": null, "default": null, "primary_key": 0 }, { "name": "updated_on", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "youtube", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": "1", "primary_key": 0 } ], "kelas_siswa": [ { "name": "id_kelas_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "kelas_struktur": [ { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "ketua", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "wakil_ketua", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sekretaris_1", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sekretaris_2", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "bendahara_1", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "bendahara_2", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_ekstrakurikuler", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_upacara", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_olahraga", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_keagamaan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_keamanan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_ketertiban", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_kebersihan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_keindahan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_kesehatan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_kekeluargaan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "sie_humas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "level_guru": [ { "name": "id_level", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "level", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 } ], "level_kelas": [ { "name": "id_level", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "level", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "log": [ { "name": "id_log", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "log_time", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "id_user", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_group", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "name_group", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "log_type", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "log_desc", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "address", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "agent", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "device", "type": "text", "max_length": null, "default": null, "primary_key": 0 } ], "log_materi": [ { "name": "id_log", "type": "varchar", "max_length": 50, "default": null, "primary_key": 1 }, { "name": "log_time", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jam_ke", "type": "int", "max_length": 2, "default": null, "primary_key": 0 }, { "name": "id_materi", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "log_type", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "log_desc", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "text", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "file", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "catatan", "type": "mediumtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "address", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "agent", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "device", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "finish_time", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 } ], "log_ujian": [ { "name": "id_log", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "log_time", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_jadwal", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "log_type", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "log_desc", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "address", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "agent", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "device", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "reset", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "finish_time", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 } ], "master_ekstra": [ { "name": "id_ekstra", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_ekstra", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kode_ekstra", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 } ], "master_guru": [ { "name": "id_guru", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_user", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nip", "type": "char", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "nama_guru", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "email", "type": "varchar", "max_length": 254, "default": null, "primary_key": 0 }, { "name": "kode_guru", "type": "varchar", "max_length": 6, "default": null, "primary_key": 0 }, { "name": "username", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "password", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "no_ktp", "type": "varchar", "max_length": 16, "default": null, "primary_key": 0 }, { "name": "tempat_lahir", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "tgl_lahir", "type": "date", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jenis_kelamin", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "agama", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "no_hp", "type": "varchar", "max_length": 13, "default": null, "primary_key": 0 }, { "name": "alamat_jalan", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 }, { "name": "rt_rw", "type": "varchar", "max_length": 8, "default": null, "primary_key": 0 }, { "name": "dusun", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kelurahan", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kecamatan", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "kabupaten", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "provinsi", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "kode_pos", "type": "int", "max_length": 6, "default": null, "primary_key": 0 }, { "name": "kewarganegaraan", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "nuptk", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "jenis_ptk", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tgs_tambahan", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "status_pegawai", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "status_aktif", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "status_nikah", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "tmt", "type": "date", "max_length": null, "default": null, "primary_key": 0 }, { "name": "keahlian_isyarat", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "npwp", "type": "varchar", "max_length": 16, "default": null, "primary_key": 0 }, { "name": "foto", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "master_hari_efektif": [ { "name": "id_hari_efektif", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "jml_hari_efektif", "type": "int", "max_length": 3, "default": null, "primary_key": 0 } ], "master_jurusan": [ { "name": "id_jurusan", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_jurusan", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "kode_jurusan", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "mapel_peminatan", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 }, { "name": "deletable", "type": "int", "max_length": 11, "default": "1", "primary_key": 0 } ], "master_kelas": [ { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nama_kelas", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "kode_kelas", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "jurusan_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "level_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "guru_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "siswa_id", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jumlah_siswa", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "set_siswa", "type": "varchar", "max_length": 1, "default": "0", "primary_key": 0 } ], "master_kelompok_mapel": [ { "name": "id_kel_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "kode_kel_mapel", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "nama_kel_mapel", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kategori", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "id_parent", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "master_mapel": [ { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_mapel", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kode", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "kelompok", "type": "varchar", "max_length": 5, "default": "-", "primary_key": 0 }, { "name": "bobot_p", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "bobot_k", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jenjang", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "urutan", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "status", "type": "int", "max_length": 1, "default": "1", "primary_key": 0 }, { "name": "deletable", "type": "int", "max_length": 1, "default": "1", "primary_key": 0 }, { "name": "urutan_tampil", "type": "int", "max_length": 3, "default": null, "primary_key": 0 } ], "master_siswa": [ { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nisn", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "nis", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "nama", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "jenis_kelamin", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "username", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "password", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "kelas_awal", "type": "int", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "tahun_masuk", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "sekolah_asal", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tempat_lahir", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tanggal_lahir", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "agama", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "hp", "type": "varchar", "max_length": 15, "default": null, "primary_key": 0 }, { "name": "email", "type": "varchar", "max_length": 254, "default": null, "primary_key": 0 }, { "name": "foto", "type": "varchar", "max_length": 255, "default": "siswa.png", "primary_key": 0 }, { "name": "anak_ke", "type": "int", "max_length": 2, "default": null, "primary_key": 0 }, { "name": "status_keluarga", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "alamat", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "rt", "type": "varchar", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "rw", "type": "varchar", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "kelurahan", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kecamatan", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kabupaten", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "provinsi", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kode_pos", "type": "int", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "nama_ayah", "type": "varchar", "max_length": 150, "default": null, "primary_key": 0 }, { "name": "tgl_lahir_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pendidikan_ayah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pekerjaan_ayah", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "nohp_ayah", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "alamat_ayah", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nama_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "tgl_lahir_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pendidikan_ibu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pekerjaan_ibu", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "nohp_ibu", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "alamat_ibu", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nama_wali", "type": "varchar", "max_length": 150, "default": null, "primary_key": 0 }, { "name": "tgl_lahir_wali", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pendidikan_wali", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "pekerjaan_wali", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "nohp_wali", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "alamat_wali", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "nik", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "warga_negara", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "uid", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 } ], "master_smt": [ { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "smt", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "nama_smt", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "active", "type": "int", "max_length": 1, "default": null, "primary_key": 0 } ], "master_tp": [ { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "tahun", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "active", "type": "int", "max_length": 2, "default": null, "primary_key": 0 } ], "post": [ { "name": "id_post", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "dari", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "dari_group", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "kepada", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "text", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tanggal", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "updated", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 } ], "post_comments": [ { "name": "id_comment", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_post", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "dari", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "dari_group", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "text", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tanggal", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "updated", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0, "extra": "on update CURRENT_TIMESTAMP" }, { "name": "type", "type": "varchar", "max_length": 1, "default": "1", "primary_key": 0 } ], "post_reply": [ { "name": "id_reply", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_comment", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "dari", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "dari_group", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "text", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tanggal", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0 }, { "name": "updated", "type": "datetime", "max_length": null, "default": "CURRENT_TIMESTAMP", "primary_key": 0, "extra": "on update CURRENT_TIMESTAMP" }, { "name": "type", "type": "varchar", "max_length": 1, "default": "1", "primary_key": 0 } ], "rapor_admin_setting": [ { "name": "id_setting", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "kkm_tunggal", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "kkm", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "bobot_ph", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "bobot_pts", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "bobot_pas", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "bobot_absen", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "tgl_rapor_akhir", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tgl_rapor_kelas_akhir", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "tgl_rapor_pts", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "nip_kepsek", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 }, { "name": "nip_walikelas", "type": "int", "max_length": 1, "default": "0", "primary_key": 0 } ], "rapor_catatan_wali": [ { "name": "id_catatan_wali", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "rapor_data_catatan": [ { "name": "id_catatan", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "kode", "type": "int", "max_length": 2, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "varchar", "max_length": 150, "default": null, "primary_key": 0 }, { "name": "rank", "type": "varchar", "max_length": 7, "default": null, "primary_key": 0 } ], "rapor_data_fisik": [ { "name": "id_fisik", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "kode", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "rapor_data_sikap": [ { "name": "id_sikap", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "kode", "type": "int", "max_length": 2, "default": null, "primary_key": 0 }, { "name": "sikap", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "rapor_fisik": [ { "name": "id_fisik", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "kondisi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "tinggi", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "berat", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "rapor_kikd": [ { "name": "id_kikd", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_mapel_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "aspek", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "materi_kikd", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "rapor_kkm": [ { "name": "id_kkm", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "kkm", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_ph", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_pts", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_pas", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "bobot_absen", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "beban_jam", "type": "int", "max_length": 2, "default": "0", "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "rapor_naik": [ { "name": "id_naik", "type": "int", "max_length": 11, "default": null, "primary_key": 1 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "naik", "type": "int", "max_length": 11, "default": null, "primary_key": 0 } ], "rapor_nilai_akhir": [ { "name": "id_nilai_akhir", "type": "bigint", "max_length": 20, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "akhir", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "predikat", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 } ], "rapor_nilai_ekstra": [ { "name": "id_nilai_ekstra", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_ekstra", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "predikat", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "text", "max_length": null, "default": null, "primary_key": 0 } ], "rapor_nilai_harian": [ { "name": "id_nilai_harian", "type": "bigint", "max_length": 20, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p1", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p2", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p3", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p4", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p5", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p6", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p7", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p8", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "p_rata_rata", "type": "varchar", "max_length": 4, "default": null, "primary_key": 0 }, { "name": "p_predikat", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "p_deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "k1", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k2", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k3", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k4", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k5", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k6", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k7", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k8", "type": "varchar", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "k_rata_rata", "type": "varchar", "max_length": 4, "default": null, "primary_key": 0 }, { "name": "k_predikat", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "k_deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jml", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 } ], "rapor_nilai_pts": [ { "name": "id_nilai_pts", "type": "bigint", "max_length": 20, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_mapel", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "int", "max_length": 3, "default": "0", "primary_key": 0 }, { "name": "predikat", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 } ], "rapor_nilai_sikap": [ { "name": "id_nilai_sikap", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "jenis", "type": "int", "max_length": 1, "default": null, "primary_key": 0 }, { "name": "nilai", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "longtext", "max_length": null, "default": null, "primary_key": 0 } ], "rapor_prestasi": [ { "name": "id_ranking", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "id_kelas", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_siswa", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_tp", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "id_smt", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "ranking", "type": "int", "max_length": 3, "default": null, "primary_key": 0 }, { "name": "deskripsi", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p1", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p1_desk", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p2", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p2_desk", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p3", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "p3_desk", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 } ], "running_text": [ { "name": "id_text", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "text", "type": "varchar", "max_length": 255, "default": null, "primary_key": 0 } ], "setting": [ { "name": "id_setting", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "kode_sekolah", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "sekolah", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "npsn", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "nss", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "jenjang", "type": "int", "max_length": 5, "default": null, "primary_key": 0 }, { "name": "kepsek", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "nip", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "tanda_tangan", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "alamat", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "desa", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kecamatan", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "kota", "type": "varchar", "max_length": 30, "default": null, "primary_key": 0 }, { "name": "provinsi", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "kode_pos", "type": "int", "max_length": 11, "default": null, "primary_key": 0 }, { "name": "telp", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "fax", "type": "varchar", "max_length": 20, "default": null, "primary_key": 0 }, { "name": "web", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "email", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "nama_aplikasi", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "logo_kanan", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "logo_kiri", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "versi", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "ip_server", "type": "varchar", "max_length": 100, "default": null, "primary_key": 0 }, { "name": "waktu", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "server", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "id_server", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "sekolah_id", "type": "varchar", "max_length": 50, "default": null, "primary_key": 0 }, { "name": "db_versi", "type": "varchar", "max_length": 10, "default": null, "primary_key": 0 }, { "name": "satuan_pendidikan", "type": "varchar", "max_length": 1, "default": null, "primary_key": 0 } ], "users_profile": [ { "name": "id_user", "type": "int", "max_length": 11, "default": null, "primary_key": 1, "auto_increment": true }, { "name": "nama_lengkap", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "jabatan", "type": "text", "max_length": null, "default": null, "primary_key": 0 }, { "name": "level_access", "type": "int", "max_length": 11, "default": "0", "primary_key": 0 }, { "name": "foto", "type": "text", "max_length": null, "default": null, "primary_key": 0 } ] } PK\ {5"5"img/ic_digital_learning.pngnu[PNG  IHDRQQ!IDATx^XTWdS~I-qd +bi,QQc/Q#h, ⦚[h5 UPiy00s3#y~̽9?N瞱B!B!B!B!B!B!B!l:ݸ} ˛K{ jt0fн/j㯝ƾfzAޮ<]GBVLQ;vuޱm)|oU[hkmd^X4}72U3rGێG,ˠkm۶ǚtZs G]mBCK9F k0g=}`j o8atv3u7xAFPSЂh%1ΞP8r&vXUCӠF4ʱC&k`k`pZ4=[cXߧ{Ucn:u]zٵ&M^kҷ/T:OpVOሙЉp8PX s$@5ag􃁗`}[ l=]°-,ihzׇM?w#9WL(ΐY;KֹKlg"](-1^h˷L[ՠ$5hQӠ{uОvzɴ$}୑~0k2цz:5,E_Xڜf~_3x~ֹTөoӅ\Jтiw-Hlmǖy!OM6np3VAY c͜&maj>8L35iY5\p\Z\v}6Ii`oGPMdS Q1"=B Hw.n}{:F_vfJ k KҘdZz꧍>#M>FBѹh\Z\%M+f_DlwI+cQ?S1yhḱ0fA4sѾ'/` D4"ZҶIs@Ѻ:k:c4<otD"xt.?DHyUw\Z\-0QRI!D  @T-F{c?YR?UC^9;[+hO dgxkE)h5䖲35#ff+[;L4S ;nk :ONmPyD*0~fI35"5IH-V+O\v˥ń=ѯO>N<^`kZ&\1ݖ_M~}i6T xV.`C4׳'hi¢K2 geqZh#~J'bIc*NԀ7;ep|Iq_9D{Li\ѺxcǺs||2Es:.1,ќ~\aenv6[7ygÏϵ&z~SjZ&cy{xr%JsVvUWPh1۽rLMK >RGNu#h\ 2Z*.Zh^֩O҂ԋB]|.so2f[ދap._F@omC8shxE[a-Mpit %K6NA: ~3àk`gAwv E7+^aF:noh_?a}-<ZKZa{wٮ6*gLż>wR}5Mv}`%j_ B5ڗ+D :=Pǽ9)h{teD%' r.)~%.%& [XimT3MՋYEB'`X#pc O5V z;uѓ } hx̼Ci,hѦ&U9K3y/uO .6ҁp}|=p^~0j\tM?+ЗSP;Y񸅓CBoBäHE)Z>wƷeK.`lL@QѦ,Hpxâ!=D‘hl4> pRw{p6Z€kauu9ru5} qN3X\\>{v' mDc"bh#5Ԃ}2sӶF}gX$Kv &h͡] ͙LCCMI|`EE` gOtTttk|@6(ZG'BWϡC3f,F<ּGM#Im&-u?+Ǫ,¤VAp JUu2&kK8@sck4jEp1@i \v ҂{|deT4¸=5Wwm"C|^P732+cgxkae:_Z3~`%v˅thh[ZGgrv&Teg@eD 8=nvg IND[CjoSؙ(8 qog4{]~3!0hAAFBęSO"e)`s摺[DEB:qm Z1h@ >邷h >od PJ M`Ѱ[䖴c5'n/ H 'fC4b|/bx~$w;%~YDKeF9t:ﳄNm&׋`99G=Rk ^h d1E*>zRK4夸c\oCSZVE(ZXwK!(J'@"Z"尞ss$-40HHPBQ3 Sud3h3?sm׿16߫1rHS@lH̨B@#?'(rݦyT%#K2SD*0wGeH\opo;ZKEmZF1#] %(!rn1`hͭʹ`3z>%MOUvz嘾OWZKs ?5&Z.@SH{b`ّS%)iGI],y햍]ݏRk |jNM[h9v8*nоM$3E4M4QV>KGk"JH-Բ u1m}y8SthZI56MyCp ՊG4@fi0"r\B*3-*fa(#G~u J `x%.,#B [p "+3-w+g29'{/GCQ4DnFh;XFgRU: f--[FF;Y[4$:gsfQgh ,S[edgE4qPkX,RlE4$D{`VC:Qf-hHΠ5:FE#]#D+G|W5!YjO<`e|k1+lSvYw晁:q|EKLǐHZI):gdVA $"D\v2[6|&7s^JyLxD;v\%L?cH4l tqy6ocKDH՟-A~](-LIq?Be H̒ )/~*lOS#7 v5S!9x-QCYP![D} %vJ HT eKDF/F~Ij(RBXcX]4lﵳ7݄gЉ4U+ )y'i 1DiV'/%JhSNj&]|EӞ+C6SD;Zf;Ej,NoJh*skfnh;pxF˔ד3M;+b2UI-n M(_d_pRMr{ѧ!Tžt[-LH d!+ZάoXڼZ(M)I*.WCMmYuvRtW#ϐhx W? څ"҇UBIOҥBJ Ӟhqv?6㑱P^XI SMuPVITTPh9up>Q>DͤkÚw (NTf/a8zdNx w2t/ u=]?-P]?p^mG>k!dM1v U_!5L[")WjJyƤsl8 foz w^.X]r~g]Ix:k$1M%}>O}f--tA[=F\M7G\HPÈ6QUPͮHY}of9SuEw[2GÉ g Qj뚈hZFf()bSRQ ꬉOE4i^t9[={c)f? r/v?TiD4ӼEYܢ1!y+`Hp/3{NlZU3.6.);}ls.>yESIB?p@|$聀C᳐8K7h2AZx\I4f n<]6F*xF5!2C4"t/PRX0,y6 > H/k9ޢSŬk"\aXQE>a^Dٌ~vή\vę"ZA{{ѴoV3JstmNIEÍgUM\mI磯+:c f~E9`NuTlm..^1>a:Me BPy̅BR*W-@Y\3W4d ͬ<}["ý4qˍ\ bMqi $L֋F~'˘ @ )YD Go|%> Og=7H;yO!1t9$%W+J]Y#Nq7|2jv¾l I`]I Q[bD+-+uYEsejatg&hEO]W *^iR$Ӽ*2w cElX.Z?P^ i%kqѦjEڌi=R]*}=]%ls"sLHNd]KhF(P,S֠颩㬣Lm6 ;0N?' TP "f}y*(,UW;z(V 2ͨ5Sdve f7\}_'W̋%YsD'ݎE=9.HNKƾ)|(ziK4$&@"% k9)N&CuSf1Й-PM˜2掜štΔA ~inKтi 7x#qN0!)nKg!^H~q,Te3̦7,5&L w 4'fRXDIQ%+ۇDGPW؂iQ,I9H1Tb WDž5A VDŽka93%M`N-}MԡN, < m>.OaDd$sb Ɛ %a2`J#nlyUddvAwd{vbe>ECb* g(zs6AIoŔ@9kes$٬אOUD9r~WǾ8%$.TR0sf۷Mo'M(kj b"3qͅ>!LߑܡѹicoV?Ԓ⹘=t->Mw&:I^C6.4iF-Rv"sGIFs,;AW4d*X] wReX݊ij`͒oQ(y}~CD%2ӈWs^4n˽O7۵2#<2!5GUŊµl`_I܆}ls-f_|^h.q;z:rԕhS)r }#؜)9*NP4: !EnQ[_ JUӢrf]N޸9L%=WF>1p#GSMC>:3ōZ@;G[Z:*,)bx9UOXd0Ѱ_l_D,~P\Qd>-#r9E.^ >zV[TSX5HWUW/` g:t/ߊLRfuNQRRL)-%^]6$혌oBZ/\K*j֑RNL ո%1hk+AQ:/O(o~tȝs~Łl(cv%doHA̅&dp^"oA|-t d4:N_0<=.gؘh]/K6hop<)%CEU.cBEH'`\CMHWpZ`zͰ<10s3<l0z}fh,$uh;"A2yW#_MI;_ "8;&+؍~|Eܻ |{+FLb \#W˜|se>>xpcle F֛0?;^ss|6V/niZ0tEs䡍0r%[^ ifIizDW*IrոP3v`aܮBnz9QG|).Y> koL>!xo)Mi8NR21hF~k=|z@n`^C3Z8hը?݀!:sk΅ҒcXI07c6]ВeҾrX_d6-{BcɆ閡B :0;cm 7-: ",E|.يN6f)`Yjc)KqHԬDosBލ6'2 %28\"\.-BG֞i9%FMIieO^_߬%~j'6dwJnkSXH699R*Hvè/4s*K1fdBsuٷ4"-C%zUm.m-Ht^h|z_C3Lh!=[[x㓇QOVc>)SĖ)5-Jl_w5,qvÎ6Dg~WS#Hl 1!, _uVxEA-M,%Nr=߻WJM#&0ǶaT'cT43PѰ@Y55ժ4֨!BAӎfGמ"+Jܣ4C,G.0\, ՚S4*ch<wK.$l}-2Qub|_V}$مCRT43Xь}EH9pq-)!+ڈЌqK"mK-\F^L|A_Fi'xl_۱h YY RCW4?~.<гX\44?9x<+my|~ Serr$U*5 %mwBat֪yAiʦ;!XRBfލ4/SJAnq>{ 421aP;}N g :bIܷ^d Fdujֱ.c~|L_6j_aúaa6XL44dN%!|XK0Q4M{-6~i0vK  ,z0hfh'6nu lO/=$ܢaf,g fhGg c,hF 7N'<>lnw7̌-W K2}EÔ\U1J4lOl2D?^dV~xB  {R^[p^ہ' PHȽ|^KY@4X"Wv^d:/N|ci0"9B,IᖧќI9mIH!REf5,>UY4\r 0"YOq> PxT4XL4ԎN֤07V(껿i}ED[!7+k!29]#450_ЍV&Ò3-h5#d*Z#2_$kgSaF`LI9>V\*DhN B[2h4㞆q&Z3W?B̏K:!j1߳@"@p6MF*؟YmaCWۼ s}6oɡ"Se8g~\ޞGD&Ʊھ;hQyEx5xDkȴhi %1Uϰ ~F9%HZb[}} 5!Zkvg(ڡ'~S4)xFf.dl"-7^49-fKbh 86U\>hZIe&ܫOoR6Pn-|C_і#2 oz=hE5ðihxnCaޢA܆O-+24y]p*ZQE7UT>bh"ꃘ*SS ӬZ񠌛3 OB4Ա{ئ CD7Ashۏ~;. gЁM! y ٮ"Oi¦EOG Ymv`9G-(];a xI`a~Va!TQJ K| Zz>pbu8Ɩ'MQDF/Mȝm;ڮ%)֡`2ZgEbhE406/ɱS2WCq]ub<zNm0Ep~"@֋ܓзdmYƒV@v~݋ _ASkbh/>D UI-ٽhco*ZPǼpG?a~m ~4EKUyF];)Wqo8d׋0GVQZӶN ɝ2mPch"3*g")Wq6XVQɢYGsv- Y{VwՉdѬtLnnEr;1U4|g_ 2  MTBښ|BCws*7*_ĺ:KSd r &=X cBESD|Q(ݏH֟mOb#іeO2k$;/T4n0E4+AL-P駎8iZa!*7"(_ɼ/kR#$q)Q.cgGkް4W@ 3| I9@EcE["݄|4D JShgv _$a#Qg( *7#40V>PKi鐡'wƙSD3|T4n0F4Di9n/V7CE#S&~[ސᓊ lu)wAxDgvTϧQѸPBfݎqِK.h`hhDRhY[+:+P/q!-J+] 8㼖 wS ϯߛ)_Ϣ P;Ȃ6 CZFHhܠhc؛8xFf.kFE}DC6՛u䅹%6o=}輿'YC·r|cT4nK4 >V<:7z-(E/Ev6ɏ8JE]/nc͋=g0q.і*'{/Nf31``Su'! =Z3Z|!|40U^OER4{JMf箳x*qKwѰdO%dS};iۢ;>ڠh"GIJٴh1hP;:g Y~3baluMyUT>E )w$0t^36qum VQMX)OIO=Yba<*,86D>z?[!N} R ءz>h>Rh; pψǠ釿DݓÀiGs!jpC.C~Y+ !)h*j$J+KQ -u^Ve;0uݓ^hFAYNcuZb=j%e t ɦr9^䩷 (&{ħfM}e3+*)b%5A֖#\]&{|rUYh})(iֈg)?$$Xk7+2NƸ0t4{cOM.gTV.(.aPܝ R܋)Zή 7l 37,ECPY*2#Cp93 J dJ4[P#n&?^8=PV+f}/mƘ]g @ B݅dvQ 9_iOv'w+\%148%yޒ_([72JW224O∅p뒫>Ԃ[{PDӜT ``0@vwjJՇ 8ST뒮B bݬWZ%E²='ND1p/]T_ВN#TֵꖣYyyy+toLqgl|ޔm+ s [.+U\hſmʛ͵k"NJD0ǁA+{x|[MY̼yꦛۍZf675m2v[hQl֭/OV*Rs k4 pz о?0\ X< & xf |  Qx|g*8B@:kL=ʱsK55jlZm`;Cx*. ɤ-6nax6IcL$/Ha0e>ckr\~;;ze%up2Wag1DOsSX~:ش?xb k~#_QM$v>)Q%PxA$? g1@ufT&lABֳR$Lp F}( 媒LDI ,[&ɏx'!O])A>gmr\޷Ҏ^Q6,~Pf@ %$wݭeJSWܟV&CvC絷H9^Gf·v^t>z*sqf.$ y2Ն0J!q+ŕ@-U~(Κ[|6X ۫yԉ+}LR,:HDQF~b .LYt /Yiְ%_٬<è^q&|vB+FqaarE;脣8a^B?ML 0EnoW6{RA>!%[lEL ꯈMcѧt)!(!ne#K}eR*fGfwR9en>cסGWLڻ}jCm`0bWJj:ـq; <6/`Ϗ泜ADa8 t7n&RɇH B Q!*[ѥb H4Re K?J7*E (ha~Hbb( G^n2{'zOOQA8F?=0pAc4 dMJą < c2N'[ئa<;n&;5ܤnfW|~<#NLA!0U"(.Cq)zͩ"1Z2&kdt"j )3&pY2!i΢}5V.onA.߰Pҏ J^/q|ȱsDY͜A*tK8ClhGn0ϪRPL˝6TM0fN9#K %?i)FOu US@>DY@,Gf)H_x| UQtefOUAi|-u&I}X0pnȨ K%I'ȑcCDMnS_4N4É˿1B& 7̈́PL`ɜSrZ$ۡX0 aɨc*wSo8~)$A>X,PE7A֖NsFmVDkeb9ꗉBO}<i*DܕUUfm ҏ! eCêBp_w^XROS f%O+TkkqsI0O*o|_B.)P:sMվ\ 9"@9CIJYXL}ET~clDӳEl 3eH{h86m D5M `\_ L5yt$ĺOk!dPo3d5qw'dd6&lɃYKad8IT|c\DkqM&mRdDuq8p]+{+PGnyΨjFCWIOy9u_dCa)Ns#D7B%wOIټGRM+$*"6S1Qt M7d1b!}`L'?hAV鮠\`Q0>͇8hih}{ؖm2F羫eNkN!zhE4!ˠB0IB6\Oߧc 7v?! )JCn@x8\2û#ÑEiP8f»p8EKFEW{F.]"yé Ͱhܠ -GrUsp6a0*BkoÒ΁^C7Ua4nL&3PlRKe2{U-^ @H$e'D]h5g4JEdbt1[]#]}{Ҕð~QJdQ-5P>ќFLs$ ]3#3e^|qb0">ˊhjk0.`劶[ncȁ@0xrѡ3CosRI&Mw޹ڛL<%2-Z ofϭl3 Jvl7q!v asGW\lǓ,Z'] ' ꭧk\_ѨZ dUPk:l&@@CSw`]A.V%B}˚eG4,7a0dH&3lN vGGaM$QP |I~@"؝XPˌgG~]|08ِi*;~kjuk޶ 3K/Z/΄Y{(SY!W `Ov!?[7Ѱ COWm%ړ,Yc($oC&TXe㥶]s%Zj*;NVlȴX@Me[]Kh?KO21v'Q6\HT>"h ` 6 ǓFwmК$v#ђpx]{OMcH.WF#ZahxCEr%^-DadMs`p_-| )g^/}ߊ&``2Fݯ2aL<5I *-څ+BE5(Bgyϋ05&XXoAU4Y.}I "%HR-E}= gexٓ"t(Z4 e^qtpV;֍Mpv)=iB}A߲q&0V_!!eƙjPb;3 {#=J.$2Dh=2c o,'e wqp#|aƓ ShDخ} }i8IrjBuښ( X+O$n5J,# 0bI8y^-$ FڅRr@e`ƺk*#ڹ+?)S4ݵ7x.\2A l["&2_VVIVA5!IJUJ#Y&3-my%*#Z姖H22E_sv/[A]Lቅ 8v,A=%U$VolǞ,2QѮ$/3ea9rX.l{gbi$ܫ#d)ihCVʈpc#t6DMP?z?&wagP0SZ2̑9\t\8P ;r W -@TEbaR,D \a2s(~㗤%?sx 7+ŖS,.렷knBPgѐTϲ`OF %OwV1G`b>9 s9!0 kpJ jCeDK)*Rh?aoa4%Fln2$7\cr²\4!N]h9%060^Q' 8STf52<9$|O\hwJy)FMnL +đsPt#dvzpC*ٮp(]*Yzt .#WO!<uDx2b'd|J)q*\0!$C`CJ pkH^d'i'>&ka8g xs[TO|Es#\=˥IBu,k %75LD-CkLf],7I!EIH$  Dȥr%emQFktl2(e._#'$@3zN:!ʉZ\)YcfMʠL-9%nD0 9T%DKB%Dhb|׉HpiE$ ;U55QO g0RIjbg7TJ&TBtqhFhFEtM03B^Ń=B4̠HMTt&pl2UJY鬚{*YJ4^4/'#0*őeZ?kOW%P$kNl?]yE@>z+zB]P 23-\rQ (>v\pM=B@|)y1oW$,#ߥ{wq nYqh'xpK$)`d|p'5JS%CJW?s-ep{(duxNw׭JaRhI}%zb@p:dwgPYZ2$~(x@.^ TG0`$.I.d2dwNUR2d,!?FMl / >`xNeDKJ/ę.&5 yZ r ^^ MJS$EsjbFϕ:6Ѱhٹ<8L>ʘQ*#Z %|š i47:Bi : fԺ@,j9lMkɢrY,jrTӉ3Z,FCeәw,F"cBDA5-LTI^ IRr)$%~T&%S2ix]M<V ̼+Ճϝ!hh ׏x 7 !#~P Oa4drTԥ(eB@U&0$, p ys8>ItcCխP|$%"b"r+#VnJ6qį%}h^g׍wz*?$*?|Uʼ(?j";m (GP~m7ZVN9BޫW*m\֏3ԗ2U6Y9TSE覆e&qDE8C%} ٴIW26 x$>8^E'O{tgދ U%ߧ8g(ۆytY(&QMM*[`~̊!XXΛ*Z=H?7T+s& Lq7i< y 54V $rdqR_  VnS Nmйr~ ?9Bv$J4Hz}7e|ދEr{8~?8up#Uoj›'9ԇW_`G8kQB{ ݴa<6s};4K/@GtE5PzSLK?B%V,vInn;Ln9'wiz8ie& ]T!.oWE ڻDmAU"Zz @fA0q28RU |{S jNWc6#~U)>o3QHH, !NZĂ9^Wݠ9(5/ FX }[>ں}k}Q_WGCޥmDŪX=m%sup䵿ҫTe~;yCI.Dxϫ ՞q&c8:jugx\YxhfG ouzv;=ۏui~4AI}kMz@ťD X[c#=:8E9ʥ%햜j3cO˿BU֒^&:뮡뚫 B.dG `ɮڄ<ibbY?'w飡G,dh4,Mdu]˖^PjU]g $ДF.b?dhKhJxt`NnZr Xe|!"jkw_qUQ F^AOÛv@%;vh]̾ClFCil"za*\͡%O3U9$C5tw~dзŚzn% rH Ku=[dz%ڴ^lu#R4E5]ÑLYmz,C2\&O낾-NãYﻯتZA/ |? AAp/e^2$Ce翚mFs.j:fP#+¯ 3s>V?ءͫQo 3=B<|Q{.z!AECϽXTai"lI 7bvm!fW:W͞E=ڴ1nC/6-;2 j:k躕4%3PdÜ"bK(E䣃aյtrt=tu>wzahVkzP'dcF8Cab% ЊqG a0)L]?,-(cqQ:Afگ[t޳M(Zʹq~&$sii#ŧlN.+-ڗa<6Ehۂ@7ocYkܳY _P}~g+V8 S 6@O5_52}lb 6` 6` 6` 6` 6` 6` 6` 6` 6(NIENDB`PK\U66 img/bgx.jpgnu[JFIFHHExifMM*; JiV >divisionit7777 2017:11:27 07:21:202017:11:27 07:21:20divisionit XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km http://ns.adobe.com/xap/1.0/ 2017-11-27T07:21:20.771divisionit CCA@"7 !"1#A234qst$57Far 1!1"2AQ3a4Bqrst#$ ? @ɟQ`ޢVd-A = ƱkJ+IMw١nra *;ti-jRHڊ&3ji|8;*r)P3곚-VXٲE4Kb_ǁWe Nr-kjX𖅇w`HGnp( wӹ=0U^sѿ Σɮ$6Z-8&@5Xg_Qv Kq:MKa#IЖ1,/Goɑe{'=;xj(zOA] S"9R{ JuQG$FR i&==4U7"vlbɟ2 :Vrvngt}U/ҭiKV`;|bڒם+9|l[G%= # 'ktMQ+5n4lB焒Rc 2sU@mJ2=äu>.)kSu<\R9'j3fjHK;n0^+r.aS)|v̼vؐy]^CӒGyɟAb|}zB?>0>;gC涫eld.z4~ 䃧yO?ueǨ:-Qt'I':kNDMN(BV|j{ey2,&12 r)W'͌   GGKu#/>)h WOMuV],{Q7V.vc W?\bSϖws>#(g!_3hYg3s\, d:;Uma`*H>r3Xr\mHfѦX(25S3l`k| ެhVҥE-b⌃-,f]X8krZhLu%|KffaK4/|) 5q YbGE?=ra[Z0à>ҍjᬄ޹Eͮ rU?M"}=jyg!#KneM,fJrcTAIx72*yW`ЖYыmW:ݤ*cf,H{Fe:9Z!42֟%F%Jt> izj.'!鞬[Iofś8< n'@LPD߭_JR#Nm_b&SiYd 1REKŚB1EEb<wf+>Lz3{8u"M1K<xЅXTR2~ˎ eǯD*UyI,>ά+h,ugw~6œVn0{HB]d+[ ҏ2/D_ڎ22``56ЁT[qfHB(LAwe<ID#)Υ%9N}Q$JHJ,ేuHʲ u9e7'Vm5+V} Gο.mltɧYhڝw6g+u!i6(5`o~o:|q:ksK*uW^z ѵ /ߨ- _ TOvnYf4|!Lw((OwHFW2 ( =4&’S3ߘ.||'3|)OxK?Vp?>=[9|2廟~~_O|}7g}[_Ï'|n 8,/PK\ 55img/ic_clipboard.pngnu[PNG  IHDRQQIDATx^XTWb&TOu F!H6bX"FQ%QךMbb(XbFATTiJ30?fΝNyއg{^NÇ>|Ç>|Ç>|ÇOמn; ;'FL}bcp:mQ|“SG|,;)Li96GHIKF-jܙ"a@#@x~UG^DG[T fĂUOt4yG~/g]w)>M6iP0QWP##>jnH!j4i[H.XZֻy؈Z8a4-ed1[4v?O%r˚0y+3 %ȍY&-c%r'\%@'v4万f~zG8lV5ד2Þ׈iȒCV;?~NwBEGb_3.=?-k[ 8fGT 鶴&]7?{5bAtܱ~䀵N62i4! ZS);F !'Yc5cֽ#^oXqH -JOט:QhN-&pY4%BEw|^w t<8r!ʹ$=ԎY"c&9rV  -yP[+c 'KQ+6Xȥ77mCӍCb/Gea BiYky`iIԐ :s T-F(B VrN'H*q"Gh/mMѝ gqp4) r1a@3/v ВpqEC9XԈP2B;@]Gbs<|ՏMů1?,lM IkLd^+6q$\YXɉVEڲSr`3]&}2}1EPrQ5hc`~{`j+> ќG.r wE[`A %}5—FhkE}4z-&u?xsZg$NW_4ozZ6 yOS g0 fԧue۲^5I뻎K-eP{!s3K˥&a#yޖ>}T'юL{ڷX̎?Κ}"4ctqo1_kzw[_4%[]>?95[mpѡ@:?aGgmGԿ鷡N"}ֹq-rc F6?Y-pO.=VG?j3PWsбTAs^04zj ?8"kK0M) Is"n~#胷Df[ ]K @$i6)ZMIB.fgh?}DcֺO?Cd3hxS9/zI92gG yH]X9 b doh^ ᰆv miX(;iFۣTghL͖Vzk,D;D٩7i' E3}lmqw6h/Q`Ω${ЅcYY"eFlv!=M)hrAuGDCpmEH'Mg#"BqNU|EWG~$]x)h~ jF4f27~7hƄ#3ޠ ͘p(#NУWnE3&FP[H ]!V~dHp,-/>ϭf?pZ.^40h80p $kVZN@\:$A Ft|rm`= ׾:utZd=t'Z/ p +Z5g*h- _ejq 0/I"^Yp LG%$0g?jQO(OxS4DO鲵.E3. KjH'b~7L]&w w "2v'kl +4,ӾG0hXYƶ ,qcFX-RTk({cxLjK89Y6~>cM$RrP BIHNdT>` 9O3UOH!)2ŝ4B;\nkmLad0gȨQ+:|Ԃ1h|',XR7CDir-Zrv|y¸{ԙ?])q^i;PѧH"b-ܠm*R4&;0O ъw0{qSdȔ1cS[{čvS"k|t+zE RBp62ޘ'ޣ${xDTC͝B*hgژ.|Sb*7K&m}n'ɥhQj/fvI6'%DՅ!()$o3b"t2KcEԛ>Ï OKTINѐ!*=dElT ^oT!Ѣ\Ӭ'|M.ENQUM)ۨànد`BFh=0raJH?t# OZVdxҵ|ᝋiNp]xBkͅzˆ>gs(@wT E'(d;.[t0r:Ҝ*΅a_4J?Ɣ#ffO ޤAjG $v60^_ _Me=u z߸L`Ή[~INEK'hd%CFъXjgimBM-OlA9?54cr2jwp)Vx5Lm:~p c?UM2ok *lg RI՚k3Sxs9}O.O R4PdeWN4PU6-Ԣ~x)nX2Oµhȹ&X<.|c6o7%dB%ir}S(Uyl۾5hrY֠JBϒbjZ@ `XϋԢRvMvNo`?YZ2%WZ4sVy6}1aR~6.ce%TM"ZIe7?3-:BK - Br\!&-5T}U bɢ) ˒ϗ>w5Zj|>Z_Ԣamh־FFr*۾E3=mA 3Σ R$>hԢ-L5GMŽN!&z e^/  hj] >m૧fz$7TQ~B8brC bV'53ى?׋óA%wai<_/:KH&ͻzcZXH'f,bӄ̍;qYnaci$>ZjaKe L(V] Wۤr&.lכK=Y|^v w>"ړ %=ŕzV٩¬Gi<$0z4YhȞe8%$apkGԤmpA4↜5  oz¥m,yiY\"6/y+lI}@z-xkz1m[{~Rv*YxWG_ꎑsĹ?>I >Z䱹dij`4YuDxfik&4Xex 7M~&VK%ۃ§ÈcH3K2TYظr5.%cA(l'WvỶnĝFL͡ʬL%Ts D n,Q*CwAM˶ 1ɾ3y76ndsC7$s- $jP~UzRNFuPfm=/{~Vi|HGO~`ĝ,hkYr=I ףj5?f 5NTO4NZvK:F6"k;s6(96njL?B |DZIS,T!v-X[/d0|s:2jsĩI/aN|\(_<rzSݔ0}ޜD>֠]9 e*7 [p`gS{#s˓(a,>%N"ui] mX³7zE ĵh1eWY2vwi׉\!#ܒv[ MgT#|uJsbؒhޔh[t+h=O3hlC~3iB4U1]DÖ%(ot-j;յfsK2dѸٸmA2-!"@ra)ZZGIr)Z\O2>FL_T 6Vh72iZ c(Wr%ږ\0ҝh4KbB'j|r)ZNi;-T7# cfw} /$SUr\%3 1D5&ި}5O#Gr wwREc.2oCw%#tv SyU -ڳab@B4jhUYEf[IRk"CIzFa6S}ixآ!YEw‡lpsْ/"LtzK Q홥 ' q˰{KSW9 ђECOU,e.V72+rS.sREQw\̷q0eҒq%ZA7wL cMo_ 9{u{4s%ZVD^J @ kUS|ai}|s,7.4pb]1D^.E.t>mS:ج ss0+~X0 Sm0/΍*3w pyS&KgVxJ4#T]ߵLCm9lL}}gqJ5T\œU1:}Եì]^mwK5b+>`G]ߝ\Ch޸!ɗ[#?˪nͷCĆK W:*G${7U}'>cgo3,4s+]OUX˩/s\IڡhQ0{`u<4Kx-]8utk4CӉOO2tz|KY0yŊԗoW9'ڙ`EUv˜o60' WU/ ChG@Mo;7.><Ȳ7#ZTjm[Nmm079c' O.fL W?W_ꚠ%.5ۉ.>su 9agl"ܺܝq >c.Ҽ* m7 V f ,c׹r $&rG=}5ѹs."bl]-Kն\%)1*84*ZZneWoV0A^_R)^ngIL--"FmVPed:m*zDf,{ k\Ru `۷n|R"^hQ6uɐ_G]KwӢሒ~?Jҹz-bwcĻ7*ZwhW:NodJKlͿp#< +MEWb TkڤÇ-y0VYͅRD2!}uMpp@tIdʅ [ES*^Gz*6gߑ< w1fϏNoyoR2A;;.9WY"9B4IUi̙+zָ/=5)Ѯ:ʯ8|Ç>|Ç>|Ç>|Gs't0؍IENDB`PK\Z""img/ic_university.pngnu[PNG  IHDRQQ"wIDATx^ XTV[eݺޮF$is7q4D3wDD Eqa_aTo{Йssa 6` 6` 6` 6` 6` 6` 6`MG!<=[ }6+lll^([~D%N_Dn:GJ`xT ՃUr{6:Ԁ ˾z>lh#_™m%a M }^^(*I ֔.٢mܾ]"Ml1ޮK?Fۍg[*s4D{]b؞ \5uåAӼ?0R[5; `#d۔Ah*-2 I_+Xۑ@l#S?K ~uI J4;-2t ,cTe29쐈Ar*jR ҇.A3vPl%"%V(}E F0hM8s%5rXvtϺL 5H4;.}pKAl#$ }M!T ;N^Gą3hnIbXZK~lwtέBH4eUv \A4_1 UG[=^:@@w`09g%ܝ˨ X-Y& L=ݐy51~$KJATJ1k^$/V+f 3)ԁkvk}Ŗ(֜@"$/1GO %h5]L!!m3W Aٲ̶*j}r-ږJ Ӡ |([g9clsƾ@^"\".9yaLnlA2\ (KI%1*d7&Ǯ-Xmt9wY{E1w;2hʈH/2t.'8O8=RK 5+޹t*­a$/pkRdś{Ca;@q4%1>+OvɏF-0[S- r`Y DP8G4in  MIOӖ) v&:Y y=.p $$3I hA*#DKHl7Jg;F OJ0E%m>3dL= e #y7$Γ,F%A* iE,"dh m5 ߒj`Y|nkp aA`MUY_D0 #$+BN2r4m+#zV!F9 n36dȏa_|ɸ&n-7,V3X/ý'`H[_וوdVK@/ 'ˮU܀Ѩڒn,v9H5bX,}QR.M62FWdA٭h?.x`1;"w<d?á㢨|M<];ͲXGri%z,ӳ/,ﴒ2HHmd HQvMPV N &[@]e.VBT^liHPK_\'Fon)H*Bd7ʲ/y,GNUȊRMRjBDYl- b{W"R `5nrɳw ' \-*#<WH3jyPC E؅QERP7ͫIM:Jvd+w`jf97^il|e^NEԡK `Ex0 "D[,W, {yߡ춑x.ENzp\Əf%R_OJ:T"GY,=;-J.Y;$jĆ:=Ql1xzgq4W&CM(R),2?>ؙ/ jUvWBCg%v d4V'g1T)$e^DNoiL $/5Y^66wT{3ԃM ʤ2ȹ -2PA/ kJ5' 1)ֺg&tޥĢJ۾|ۢHaiVN 5i>Yhz$bčʸ1DWݳXi]2MhݮB٭* uvZ])f_:1JxF<1Wr:5Р~JiWP$Y ӧqP{Oh $Z8!ˋ!,cΞC񗘒FDJRLʜKm(cs7u46`H'G4HߢJ^|+9\kh:w7' 5Լ+_X4 0r8XH4-xx=ATh0nu9ͨHBB 60IVB|Md:WExp>OʗVۇDbьf_ 2a})AFK8;TfKsgu)p$V$k7f=ZTI9ףI []xq@F$m} I +d-)npq-Xxf@U7IɚHEP- mn~ވX3]MWVw-3.]ٟK!=գ8}F˥^vu]&{0- x8)'5 [PU{$0SM*=n{Pw)98 v+à1m_2D#{ӵǯkґmZsq]"ܜI)"!\K}1jbB_ K1b (!"y^ ;'KEM"T>@x?\ڴh{9L8-*SP"pEnQ cgSǿ/aB' ,((]hgBHb[x_\0%i)O1h >BEҗg=|C(qJy(~ ]˼Fn -D砬D_C]K^/s0m*YvsB=Iڰ!"MDi!ܧ~{߮dx{D]iV75]ly# "$}a '8p2 析M]7C0|COd-ޑ2m\HF!Xh)AS*IAl;Ilm]~ML:2$fo$O}2+jE#B7hc5YfމoN i&+(?ݕD"8Uj(loڡSv+v4#􋡶%;$(Zv'+#veקǣ }E VdaW&;p~~-gRޙ NBms6a[*F{$5!է3=/ BmOyJ4I 3ږ=&sۜjsBưi?pQ >j2PMוb)U\x{u=Hh8}G-I NRs5hEbMqHf|9yeN C")ʦJ4ea^ǯөh;Ja--2 (s\x61^u|_h=L˫< -ZùϠOɐ]00=KuDגdm>ŬJaV9kgZ@X}=&$/D{f83=F|S5HcWgpΈomInJ%k}/o+d5|wD*%(<˻m !-Dl /~:4KEٺKnTx]#)ɚ e͋DEhLT.~/ $ۘս/Kq!Ey7+k畢uy,)@s! U}SWтDI+֏rrb{=Zk5hա q`lVil]iSKNվd̗!ڏGRovfrq2}ګzl6hC{-D}Yp@wТyFE'ٖ.i7BXy[}te-m2mEFMA9mMt[Ϸs})YhXU y;ءVV#POuG_юxۻU"5h^rxOfbcίfè\ǻus9=u : 8XeE]VJgOmEˎ9ʐh⮫;^*ί0npqÞ~WUr޴~|1dkΗv-vG!Hcѿ%|J$wY߀dER3'<畽=3罹!ajuq:9CtkV,6` 6` 6` 6` 6` 6` 6` 6`Cy?B&YRIENDB`PK\og2"2"img/ic_innovation.pngnu[PNG  IHDRQQ!IDATx^xSS"^E-ftWFtTׁl׉LV'"\P(@ h&MI&;I.y~O!9~wH$B!B!B!B!B!B!B!E+9+0BD@2r 3Cb!1~UBG4hb$3{djxzJ{g'I#Gb Y5ArV *~g0Yn) hBh+1'mPg .RթĊcYEYXrUNˢi);Z&ő) `S @核?@%zDv'QCs#!mtCŬM<'§な @Yd,3IF4UgcLtVc%#;)WB}h'Cj?*>1kJ8=D[Ǒ6Xu~0LJ'D&0EDbWǗNJߖ$=1 [:KdLd%XB4k` 0 ƿckI؁ ʈ k+Cxr+eoX@yj}x*3oꕔP_* P! RUñ~\`Jf\(GE1VBx" 38'0b6i7fN,3)l(TҀ4?d"ؾ2ȝh""XtϰdQfIq?%nn%S{̊l5K&w}b1b 9xcÔGtR#(4'"Kviܼwq3p2޽!풸6]Ie9l^M EzEbPL9({#4!Z-,C$("TaHk;B[`Ֆl"iI>c*IR1Pv(#DGq仜2'9aʬ9^,8[D9GHbR ll %i̍!.0%Dd_%HfK@Yxa->2!wc wL`sh/or4N`UǽMRK%,W؆≀+<0pɌ!a.lH| QozP.U%WYD\8BJ$?~QH+{H$lGxJ eLIQA:gߙ,<@"KҴH_I آlbhRuR ,ѤMcN2$e2@۞E]DcWd*fsI^%z0S+ 'F*aoVMpe89lPIڶL ]`;/4 ǓvTVDa`Xҳl LHOr6LEQ6&7g@a9%XYyz0JGP$Sxk'Kiql: |1jtBIb4P dxjs~GJ8_e@|qmk"YF7Tb{*Fe%GLd˾Tl"n& qJ[Lgk0cxZ;;` *4|̏t^ C-$VIbѥ};kwJ{@GK7GM%Yn e28zLWϥ^ jJ5"ڒ0ﵕVr[Fԝ/-Td[1"/-b60zT5)+cgL{Piyʵ$"M&=HI--4b 7j"!Dp㬆HXظ)3O.)1öǗLe"yaCvjNUkIm~_}Z4&mstQIL1S E]S8Di/IXi%eV9)ݓvM43.04x9_cL_ehTl\ 9}n0X.k8h˪LkLQXlr3m8VBuYh`d83seD<lb]M"mdC R髟8G? DKgPyբ+3eFК2Gpv&I p7Nc9?WCdn*tj _yKF×#j]Ƴu$UA`f(BNŋr60zf(giqr|ӒC8LtM)Q3b_/w(ŊI $g*)+fw8=~mˁLl&|Pwn(9` jߘLa rE>~"6UZ"@zS"_ d 7VjL /K 5;iqRoņ[(B/ϋi2X'@6W[GgnRᯧ*Q6[f2Q-bIT/%ip4~hɩ'08`ߨϴI>|ysLj8/@(8sN$ K7. y-K64=N=~"ê,큹p 6{\0g됙 G%8zxzf= nzm\GCNoÎ|0`H]TRFv+} ea0~s&gΟɎ?obv٤_^Njp'J ӹ3a_[:{HɖK<< <1dC 󣡊~) jBZ~O|_2pe( ;:G"r}"t+^wݕ|Kx*}sQ|~;7_8IoggTl]ΙqAY6(2~7.K~aɺ93o}*FJHY}^|T Oi. jZi=K2!Wh{)~:?WQKpspCT.sI$Xc!Տov˖nhPl5@Ġ1)WHқd}; .@s}unQf[v-g곤:x= 9M m1gWJAKUοi9"[q`/ %}4بzss-0\ F2^0 uĉD8Q@d,nFByJ0&NB> ZEG1"? 8#mz:%%}֗XZh 5} tIi5#i5Ԟ#.)]'.;Q8>ZRmSM%cGIMgC䞆?h'Uj_)V-,b*9uy$h\ P_LID,U/UyQSSK"RZi?L u7@KBg/ZHսo:B%_슆էDqLd߁OĀv=DxTX/tÒMNIuQәnѐP>bh/&kcWn4&X:ye).J}4PWO{#4UI4EM;#V&ϙBEhhR$ $myŕgV{a*6~T|$By"he EȒR 42GoL ,, kB9.GDl?ؙhAgPRm @nlwH:f2Փ^fCS#=W lzǑp*iŬX,>һt |.HAO5څ&:lWi}sDF?J!'r244V|WY4Y0 b3=# hgJ$J]uBg&UbbNejaΐLpƁE6'Ek\WNv:lFR h%êxi ]%3PwFjas.[,8g$/H//8v$SO8q'E[&TS,2B+PHlBPg5UDAϰl qhdUI@+1P%V|I>8.ZV7=#겗IUJ5և?P_K滨 {|J3sGGnWS4uḈx*u*~d~)wT}~s;Um4p%Q_ xES|BciWE=*x&M:iEWbJ)j+yۣ%JK4YbW~Px hfbdj9MYhz޾_ѼYy8-P&fM4lz6@-Mhs>WP 5vEkϢ)W{Բķ<)*+([n HOQ>9*Ihh/zZY@|-٬T5OhsoSޛF?ɹNdaFa-S >llꪡ#5}P52bqUдv*Zk~[k} >"ouzx*Xi3R:GUa/`/ H62|D z4iړnWf Ze V|JBh=oRhIȽh ^aj\@Y\SSbsO\LrKڨ58F+lE3dUB%YKm .iLlX6k~q<΢žh&NSb[BeiH^έZTߔiR |_Tnk(gdI!SKth \łn)-9Armgƾ} 5L@Z-6T\>?-Dr08#:M;{{ wAS4O}k դ5)r> mv@I juLߖrp'{pGv\{#7\)nBff;X >ܿ n7`4FX ҙ`աR 96\_Wກ`Nl µ7p5!W3l\͋cM--_Tu:aF䤊zW\#G|jB$IVic<%:%1%3d[)^3v+tlD K<u+3ý'羜 *MM`SQ ʖWl\DS'FBKOohXr`TkdD~^/u3vE#%5l}*u;:a-Wl*\)+ `'=t 3#}?'];dW5 or!ua.Kt}Y,718qD2+ECN [QԣB:!3jp/,M}_z}1x1W?c+EC^:NaWl̷(ޛ?ww+%3`[m XA&=Zueh?ΰ S9Վ+X][>)E]̪~Wf;?Cӎws% S\D^+HLfٜ6HI$R 9R֘--o vc )l^YPnQtа}Q̌b 9+e8'ƅVPʕ1䢍S^ ʻc+{2®sOF; ˵LqRT~FWSCd#.8Z7m^]q0ӿ)ݞ(]7S˾,TT~isrՊ[|g#/uɉEgt-LRZ~ʉP撙H;׫5HV_| P[0ޡڽrOuS!=> IUM燫Wo񽽙^ :mSg+&S2)ѰZeԨV %{v]X}6Ї':(c6J^4gϷ/HIIr;v_fncq6<8ݐ]PV{5C?2ƗfoXfh) )Xxy. 5^˶f?StZ j>Vr;(Y并{Bp2uګJϹ6PibŊ0Nb·>~QI(^u DWPר>UTוgƪҚR@ ,J~Xź2 [ C 5K>?vtXbء…r̘yπ$yPG< QdRv'Y#Kn t"#CȒ۝N5 ؗI,GRPYS];G y) M"_eXµ?<)`)N}'dIZ"X~QH#ƾĀ!I\!Nh&2?'bp ^ 8p{m2A?YRJ"_6!:nΈ`>~/5 ("Tj\~ D.PC+((Vvc,I SJZHɼ._2Ǘ(eeĥbE֤[KIKZ&[j@$y=%ۗOxEY"*ue CUA*O[ޑd>AN=Μ"%Y/Z9$KXXQ7|0oLRoBZeYI:E%K讽QwXr0Im2J"8sa"[GvWt)-Z[*>)~p\S.aAcƌ{^ޚY'ӎ7T9pD]I$SsAVYPޭ'bu˴'˺7կ8[?;{3-"A,!B!B!B!B!B!B!B!Z?ݭPRIENDB`PK\Ν; Lpw;-Hwou~,]wm`JM>}c; :?sLvg+t *N.B >{{=6>,uůzZ@ե;o_ޢ|)е;o8S;vGFriѝK'I1MEȃK!qe9kNmڟ?Q]$M ҀÈ,UKN۽+XLDJ :MZ9ߎ8m]W`-2o~uwEyJ/AH>t^rz-t5ۿ]]f/wVzNw4=Kq|;8NdZX^QT ZǠ{z=\y|8z+  :=xr-*op뭻BSgDmֱxO6LhHmm`c(f"媥>=%w>1u`bzZb ?.;fv0AUfVɃ3TprZkA} 9.0t6ց'c(_}1&CSkn;̻o$x=Y7n5Age`bzlfI[2goALL0>lZH2 σ<8t`N`⻺ǫZЛ>5 f3~Ѷ' 7пMO}' g6twF}^5xbk$"E6})V4XEZΪ i>mRFNLkf|wMh5XUD1F.b2};;NI&H:r;òi%Zn Zb7hzv)RhΌhF7%qpQB Oh%Eьh,hlp׹pgԊpCF81:ޤZ*b\FBcu>X`R:;3FW+&cLV=Mxq"M}_X]2-UbJ>u;Q03ݡo`mA4|ߘõLXS8BC`/-X[XL%8oB ht)a FES*ZT4*ZQhT4@E*M-PѨhjFES T4*ZQhT4EpVKDPhӢuZxr[EQhuz:Ni֔h7 iU!򄣢Ebzg*IH0 8TȊE(bZ%k3͉6j_!""i^3cڟaI&IZ+ Xk];/ Xa+w)`>ќh ܏T_1aHu7f̢QLl/AQGOaߙvɇt< K"}sO[^>YJhBYJd yoO#kU 4֬\]}R7%R_aER,pmH^E64f,|7X!aI dE /.d}%s̏u&&f5!ÒC0b>HMedK#EYX&>q] ;ft.N&0%.!  IVE$6k/-MS0;zJ:,j,Jk88yd$@ǕÍG0,HZmQvM ͆p(%,("d5׊0Vhepn X;H #/# +lՇiXq< ~ .`#+eQކd5YHS`GU,ZNLz/ LW /޼Ӱp/ hWs%>xpOs/v$אm:g(.a7z%\!,N[SiWe٦*D{ށu^,(O41O”eaT8*^C=˧ThQ`_pmٲ)_41xơcV K,EKUy$ ~vR KaY-%N41KĒK9@` Yw'h:ک*N*A?`,ʰ>`7c S2WuwzW[@Ջ&mri-I)*sB5B|`3}Gl`)%~-r19wEwg yLamc(Sh?rBG{k"O@?=w=l& SdɢXa,"Z<\5' Qi*a y?C)o~.REIjɢOzVAD|g/)E[«51EvN)acX@_X+=& fEyoԃ;KiaQa o#GQ^FFhGX;D0,#H> 4Phb $61~ KDEh<(΢rF_m6 ([4Ld|%Gn~%JRyQh|3&)T}d<^T)E4DQE0Gga^FNJEU,Yȋ:EݨXY9;]M<Viʭ;9x+Ph )ắJDwx<SHZ 4AxM&Ϲy?;t_ CPdB)QpO>J8 Z 8'u7n78(_Ҡh%7Hԕ%B?Kj~}%S4.,(h[ *pVEۭ%4zk%QգFZJV-Ox^Y)ZIޢoKi:vDp>*rv:gkhE22"PWڗZ.AW'B~_#1Tkmٲih+8E _XwG`blp+Ւ3f.0z~ |Mwc--_e8@]iWFw ~a諿r!q#m۪o)By]kdTq7 oΐntS|L¢ixS%@& 7;osn/HubjU'' KU% a̧ hy I hV7;W["vJKEcBRoB!+Xgɜ 'bٮ0]&'{e#0QļD6I0Xl(&&BѢ-4{?ZQ=T}ŢEr5,A?7)Z-yD wYǰ"QL4>]8>3 /_A%al p.%-E^ƚ}fì"dyslKUsr4rxR1gQL4~YMdscS-,|%hlC _ >~ ,d ^)DKSW" <.SSa2GG&yH1z ]h~fBK^up0aKyS"UpF8ED+Ԏ'9W@jPJ?Y%"Z,DH)rA CRX(<WǐlFƬako|!sBՄE,\̈\8q>9 s71G-ca-" ǥ* bPϳD0P(K0)D 6%kKih 2Adضf963~` @DEb.U &z mװ%*pu" Qƣ3Fմbx#rh `<,q_!i+ZCrpRMbZ9<+<fAPT:F£8.y 훈$OB_@ r!Y$Hϭ`tV%LjEYiL]!-E4UuuDKkZ8r4J,)YhGpt.<7XAVv fBNV4j$|F#ZqE<~YgysJv9=iECfIZ^燏>V쓊,3~CkM®qhv!hE7\}g+Φ!h ʸj]"M AECъv:uպUS]ZhuH-_^7F':w9SiҊV$r^ү3YPͦ}&8H'SE'ܓ$LHrDW4endMu#h",_Lwycf6e#>}&$3S >=s27_؜W9 n:Zڰ|Zgd ZXF&LrS5`ZfL0QIlbЋ iN4]69z_IovR2M 6,ٸ-,bp'Mٚ kaa E9UyN< I&#قdxNI4&Z{7*S{n-1:kwN+D{*wwD+K"iqxzBZcuwłdZn߾I?͋&¿YȂT~4Ԛu?1,UOGMt/kT4Ԓ|%,G/ڔ] ̖b%B޿pZIIFô_.<ǜjJ[Y#-dF\ax>2i.Y֔:ڝލk u? =X:IydwOs%/Z{ٝy,Lh>uW3%1zR iߝ A iYN` F,Z"Kjٌ ^V,d\'w3SXjhVvG:Wgٝx+0DY4&&4# YI)b/5` is^0QKJ  &nfI$-%,$a~O\=4,_cMJ)3=Ѥ\n(#EQD$_`;Ɏ3ȭ̴'Ȟ;{@PfFZ2Fnn$|[;щUJMĤVBRN9^MLV$d3$/^j4!KQ|ѣ-b snYU)"Z+DV͍d]84(U2~+)UPKVZ… ڳ86fժ_eD+&[[- ѳK켭sX|ّ )D%x,-RFԻd5M뗮>YmDҀװMaE^f )y53`ɞKZAtn<rBy4 %R0 RٿJ28,yΝ{!XkʕFF%T25EL|% (;~%2H+x/k[Ԑw#x!хi[7yi˽(hr--XWPRaŊMFYlǵըʗF8yO )ULwx׿Yp'hٿ,P7YGz:W[t<=FA' EM '|._-V*)8?4vѣڻT+OKG+$>LɔU$yPV$z&zIK?MµV 2,1^@X4*]PPl+7—DD!=OitY`BcN%yTOO^>j)4iWo ^eE&TfkGZ#|UN!x:UтWn𞦔{R \ jN+(EbfJf'!||{4ʂ^q'Ή^مP|@j30M!c-,t‹BAJVO 666xE/z`M0y/&!k2ʬd睙_(j_!*!*ye>(=sEi9 O>e Jĩ~Fr߉GZ}IENDB`PK\F8((img/ic_questions.pngnu[PNG  IHDRQQ(IDATx^XSVjZZZ].pԅ@j~ZG'ne*Ȱ*!@F!s u=Ę=# !B!B!B!B!B!B!B!>^ 4296 /6}LGO\ 6Ǫc7\%ְXuU[ϤVνԢ7f}|&ސKS}ʜ!-(n>wס՚M7>_bkt[P2,7dZŝ風e_7sÐ%h֗4Nn;\َ.z-BZ Ch|*Xz6Fz<-EuΙ|Z'袩W}V_JKAʬck KK'jыq^FLKUlCw;w~g X=GnB片` Z+}@?G nbZ0>YK2s/={5iַWnwa2]D"^C [|Z0䕙G0%ؘ.πfL={j6k^ n| vsqS<*w Z}n - e7C "Yizk?}̭x/»Cq[sNВ!~7X>,8QWp^QqK|y&X \wV[}l62`?`#FCÌ8*}|8s(>ޏ41`AF31)Dk{)Ft9W4\? _.RJ80d.\߁9r:hMtIVkȇZ]hΔ#{Q`9;hGE[HM-d:s*IV~\c=i*$Ԋg;'X|g6 *!ZwLYZ͂eWq ;?:g=N 'VCO-Tcv4e3V_T<7q"^OYqt iGIJ^=Fz#>scA~r`Ǡ'kཀྵG[B :=15A4צ mwΠt#itokt3E k\3(~{ 5Llv"R FBX\A|X lF$xgaA-B2"hFM"hhFA͈ U QD DD3hL) ECRKBhY!D3hȣ4 ; V'or A:)lagfMz(_}M-Uhj[ ܱ MZ `C邪oQA;Hf,ѐp }^]0ǒHBp2!Q1'KB1Ipq1N.ȴRxQ 55&O?AV".Nu?֯4+ѷCMWQ%p03=!_H҃b|q8~h_+DĈOJXEY]F. 8R  "Kl*B] J" (TE ;dUfyK؛gDhTE+IۺYuiqɇCc^>g܌V!DH|a2aCj۩P4v.L YRwQ"(n˥ B#2I!ULR8w_{| zC F,kkx1s-w惕³5>o/U֣Lxi'&DV%b&jDh" Eg,_#fOp'}@cq-yW`Y`kp!lW?ƻ|~!VƮ0V.>0]M*zD a0{9tw ]fhLpcʍ9Z tX07W{dl]hYM&e"2&B9HzP2z<*Ų<"G75g/2RVrto6ٔgg&l+q `)L ,"MDƝd*nD*nJ2|dd6ρI?][v[e]chh3vJht!9+(ʣ7$=[#*I‘`Uk(H.%&bsZ9ooLR9`:r.Pś*ݾHV4GI{3&]:DXDe4Ŵ8zCٞfno̍GD&0ᠾYLFVJ-a$҃<5N:~QE}z켤|G\ʼKs6SDd{ZU4pIUK۽jk n>tsa҇n`0jCeMgeoh*-K@lSHKυ'9q ~1t,Vi{ ptۑȥ-͖^Ӝج,R"#yO[p-#>t!̾;DgB&x7#| |0JOcOfz1_F}i JY3"id"g$2>8g":wۭ\a&!>#|F? V˵tháT0L }=1KO9p/E&h 4@[,(UfS7lO`_qTOyZ]FJBƤ]Ku~[۱"mAD ; =gVT;7%z]b"HdQ0|EY]\A1I3\ЇBdH XH/8H}{ P3NTK7*1rh5+i^2yZ|(t#&J?ސgl%!bu%ϮB/lʅQai! > g@eDD07~%un{nKq=gV#\ȣ/DKYMmŢJK=# $:e0 xȾYȤR k8 7Lxȅbu= z*\jUnYm->PL16Z' ൘ QnUfm {($BG_HVLHkdP߱3~410X`EuK#6\fmn$i{>" 9t$HWbn(f)!ͼ,%B7W1$d0rgԸŪs鏌Ht |3y)&J\D$8UJVFx=Ѱ}q&M` 8̛IHϳBF$m12+xC3_Rn"=̬ܘkp'LEgdFR~F+9yێ0B#}-t;Ȥ{YqC{}ڏU%Yns]$:SsLmHcq߿gEƈM&12i3 &C~ [D5%P0BQl9 fHU6cC_.vYH5Eï62(zadRK 0u_j uEO$j$~qϩ"oi:ğ|bt xv7*π?]q\\yum3]Iթϴ:p_y|y11փ\{aFhަ[DEciԈÆ Т~N7d[\?H{4"Y ,sVD#@mٍ|$נ@7[~}Q!f'Z(W>ƊF1VhCw¨3t;|McVhTV\uz72aɍ,BlhY1-Ze~ -Z=ΰoq(ST P9p^~=ep[] =̍-тDeEtKC{!N&> )Ze7hʯҿP 7fr͞ ڶƦD_@ h쁻M(=meDS7`,nUk(=x٠x@˄e2!!E*l=4l΀{s &X;Thx GuV˄=tQYѼ"Ki dFu٠E҆C OsⲗbR]E^R\ =4 wjrᣩif- TA`B2ZCG6t5|͙N\7-"4H(֨u܌.ԶϷU$JRD B煍˼9*+Dh4;y|cEUʭ=DW"_CϠn4nN?GW$Rs'R 'pWʸGDzRZ]=DU4<̠ř.xcG]<++vvfsYLIA"NsRDr9zJIP 9R-Xkܤ\|)7$_ƭ:\*Wx(# &iE^+]F+3oʊMH 'DX~7 D<ݔ?s4-7,F6(hhB~XsYv [KEw;UmXDyME.̛4hWa<$.emt厂ΝIg(ֻ$kfPe2pAUEVJ3?2zaeD*n+A486E(+)Kv0B6 )ZnYXtyXD KI7jHѐa8xto~i-ݶ SUיzA.ԑGH3`Pp6_Qm:(v./E2oݍ-ƚ Kʝ:nPau꘤A X;9K;qhdMUɐ)AD{hQ3d2]5&C!||><#uUTĭ#U7G&uL%<>{N]. Bў "Z렷肮80hV[GÉw/u+;T @7w[fh>38z`;l%vMTI44;% t,&g~Y( ,M@ ³zx Iժl!V ]uoh?ky Q%,#˸D6h8-u;' ]I퀤U@%Z@s` IVM vR'#H*ʢ%X;Nl'SplJ6TwڑŭtEub59Kd[&0XRv".a#3e2d G$mTJ4 rñ B$ް tV.ѐ!led ܋<)߀-{0,)?dy$;@hUYם˴ֆ~C)vgאi]s :I|تMuMW8 Wf(UJ475{ |wWj)B̆B;t-y)kiBmU\(/dURɾC責ܯ6,%BsaE==e*RIrlx:ݎbo&&_@cTRs\4U(I[D(jL{b$HS-Rܷ4EYӷ!<آ!E!$Y͇xkj:U8B_(^(gn .}jؠ04h$H"Fq3majjGd+5h΋ a+~N{^ӜPD\Σ,a{mv~5)JM+e+Dߴktչ8C5!?ݶޒiN2"tEz2{}hNN(հ>ap!2VoY:cl`dDCB6[]p[xRm'Bv›F7^V~O ׄ.egadvo/%3h gzt JRyCʂ[K'%>LCMŇl\ԣ涢hkmݬ9Y)@Iz"DtN4rarM(ȴR+M~NeToS4 2(.;2nhCi7 X5F,*-O+=םi*K7j1dQm N*Ipkh(ϫ6RYKkMbH.#Jϸf#CDϷ=lF4QZݗ DKo܅.C5s@m %{̳p]\u~Y.tG />Ұ=ދApńP^[.9f* G_^ ݃Y'Β}TǧiLb鶰EIC=`*IAg,DY=wB#l2Z TOaDM&eݺ|j;F/ZG%<04(JR%޸_Vc܍)v[b=?+>A+֯?Ҕ !^?CKhI \GUebr~o@HQ}ؿsBfF%d2jHV"iڷTc.~7TvfOv^S JϻxL U5E&sFdmHsv_؛"a|~qkIu*pu)ɊK] &}gPpuNKŌ[x  qQgL=ag6:`Goގ`oo"fvQw%Y5I)FQDPL &f;R`?L_q9>82Bdb Vh,{&#EGnz%.(RT*!g:4I 3$PRaDEy l x471dU} 8so 9zh!z8]OPK{ݼ3W)۔D(8diPLd)UGIJ} Ǹ2s!ID(xZ^r+JĬ% Mɇ#MI[k#z 5'6?t/ /tl}O dAA>/B!B!B!B!B!B!B!B!Zdn.IENDB`PK\/EEimg/word-icon.pngnu[PNG  IHDRF pHYs  IDATxilTUǯP0!#1D#-"BPK4n Ĥ 3*;Bˢ"0H!PY e)emgNkfia%/3{sο{ߔ1H>E[e񻈁p—ݼ ӁD7u0 8tS<${[m`/06zmۦfYnZ {@d,+Қhmx6il d9!zyL8^Zz I5yu{. h[^Z @|6 JB>.ܰAc㇂V/ٻ"C]U lw"}|0y©$Nr@'[Ȏ%6etoi--]`\Hm x4ٶvZ` _َY~ӣg?%E;*Pia;d^΃kw>kM\ٿَp-@Su3 ׺W*>_v}G Zv={D[Zwg#ʵ=úW^*`˪w~ǧ߱ͱµK[w kv[<-Pxl!?&ulnq3S藚VJ6(k]1n@u˴]*$M9ipMю#w-V22U1 ~hnZ @퇅Ėz[|y!窅kh֮[vSknHĘbeu7+u>HUuNfOt;hVhYXV.& +n yq* x@6q4wkם4J,V @l-! 澤uݓ$jjÁ^IJ ~k &2KXcҀcЁbk!Ǡ` SsF=NbZSr,84 de KAΏ߃!As܋II`Ӯ,Tb9` S 4ܵ1h?* {$jgMyz@NX?&24PU_>*JV[ NOStOg9S#=NvUU3ٴ%1IpzDǑ?U"*WsQ )W_}DœIENDB`PK\<img/dashboard.svgnu[ PK\1)1)img/ic_wenibar.pngnu[PNG  IHDRQQ(IDATx^\ǃZmݫ"SA"[Z@T2Dq Eaτx@rN$|>Jy<笄a5Xc5Xc5Xc5Xc5Xc5Xc5Xc흰V5v{kha4b[ Yo͝5sւv[so;wz׵68vq}<ڭ~wRLp*sG>:+3*j3`%B p,/5/)5M }PtOΝ;꒎ލxMz۝iz68eqy@162͑HhLxH| GIwtn9lnWܧ_nk5e;($lC%8{"i&$b6 Lڭ~?bWڱLg60gۆ[F K=TEK nHpO+l~2z8bML7C>vy62鸤Sfe͵PCPkܪrS?ȶp-oa6WkJ]b`K#;Eӭ\^5U`?Ɓ\mĜ[Qd<cO9HG|%E|EwtPH5/i돽z#+5РAm޳-TW+&M=TA[].nuƚӻӫv6'uۊ]N [u3qJҷDՆ?7,}<ʺ dk+(]v*e,pH14' к5iPVlbaoQ>vMo*ZlDɗ GqSi>TN nPe7-k_ yl~KnY`a;QI(\(? sWBPwx%#*r3D`V@[DTtOcAf{C-Eg % +  }XwRA(2-97ѐs6ae;12{rwHJgV ^dijB %p,{h`O]6qmG,qZ~_H.wY8MNVTA ={wk]R[~xPdb]hxPf~]'z!"rq%BNx{_E E .HO %0VoiEƬ5 ej$/Cd|52+()£dXOVB [9(7{<|hUn+f$$=,]2s? w޺Pm3A^b찂ZCp6lfZ'ArR %"EHAYYpAz7RQԪ "h)Kn 6oKT; q Rd|"RQ~G Tr_ ;OD Gh-0紶i=X2P-6m**4 y+!75 iso<Lo1SC2Zm?Z6SJ@0x98*0OT-nl}a:޳J%nUTJw3 u*n(OlQPd(S(=s#M.inRy;Aw#S$4}08W6jfƟHSBfY">av}gsw>-@B+9HBX8d-[k"&fOX60!Ӟ~x?le%'#4/4tr3U-Wӹa[3Lf3 *!}şVLGVSBjܢ ׼e& V>p%+\d~2Ihe6Ҋi15ZZ!4}V?BX+crܔ4LbH)BoॗBj $k$ˢqC{U [RXH)BөiŮ*~蘀_ . kܪz/k3+hcJ EhxeJ@в7e2xǫ*Yt5zH6FhSPkxmJKP2 1gw_Y*bHyt mS+ Hhf5*&@ڢ3:S= ̈pv 0t2ޚefx6 i^Q"R{E2jF^ZOYClQ#4(|8ݘ Fy6 p5%"EI) %Ypg 驐y]B}D\S Lt#cKϰ&̿0I)ʳ] r˼4j$-nmӒ .&4̫;T0࿕Oҕ\4<'G$RB+sͫQ(vLJ(MkuDс4RBś4޾ԜTV c$=V4T}<~U|-)4ڢ =ǑoQ3c&j홁F[lqKSٛȅ4u!М sGAG<(JSF,fm7! {9PdQ#kܞqPs )Ѩk>A :ڄL׉9\`s9  poVhrQԵM(]6=~?HiN:P5t][8q9ח,Ӂkf'Ւ ;~cN-REB+whC1~SGۡ֎*SUؗ} Dm" f?6Iw(T⋴g3P&q^?@e;­u Wv0vSBYV8;ńQTʂs#0-}?'#B)L6f|3N;T\I^t2 XpE#j97L')t#$"7mC~fAy| _+bGn7q71fdW'n4-K򅾾,k\_NB&oai^*bi}mg/B[22-n{)/apSDTy>!l`=Ƕ %GmpL;W(¹~A/˨kK`l^I (~Xh%?kbN(3HJCGOAa|0~ Q2:UB+/nThY]3F(.>-Եe-^ro#NH.?&\m8E&6Oc-B  -ք*[YJLP9lA2ըвϮavg#z։ửe3a ϝӔ% O@@bmKWA*~(lT@~vf 6A`EhD*˜-ԵI;S낥"aiOxdY_@R sRe+Fa"#2{?xH(CH.\d |2V` >7x6c8s E\FB)7sw,сS*59Ō42嗵ΐ@e_J} }%SUTp[ L#SA9B^\U?OpvW=$ڗ: wD+{Fi*EN/HhCIWhPl__=߹>hܸ&n^ˆ1vtB܉~Qp]{*.k ~O #4Z4(؇ ez̓rE,w!.HIʯ|M/ʪ[8ִ)_+oqIPPee= N)U2'4D[ujŃG7А/! R/Ss"l ;Q/7u$q;t MH1oT:7 0fUy(_v@ B|9wW\hG@ɍ*p-ʣӡ20f+}ma<>~n |>U? q7 ^SԨ+(_L M@ ܢ3kL\/^ a kCVANv <婆s Qg b Eɯ *`Vy2ZcAy}-W/SkƧ7{ "]~eDDH+Rqu/jLiwf$ȗ}I(͛>}ju[%K7^e9;i9d7;'X9*o_" [bI8 ?qrSKƋhIAUV ,WɔM?/X2TGލQ}0`2F+e|XjOj x^S0po"Y_$r'֋Bk}si6͝5`z  5]%TwpoĭYwFL3NF9ҥ+ᘓ! :[}%țǃ͛d|A[hOolût:,K+’\\*Ԛ(¬W5v"]iKgC4}# ՇID\evc(ۂ ks[h$r._Vs˾@gooe_Xeԓe=ym^u Q/rS[`r0|svP>8? 5Pzr t1!rlC̀Fan:@;NM #po,ga^,cÉ5ȇ Q++BAƃ>8 &;YH=`̢FƗ~/7ҥ̮jYQ "7^-8fu(z->i%im>ycyh>j=p`%U'1J.0v+̓?꾁NO=~zemU+ |lW:>A)b,@|sx/8od>a>#(W>` t./Err:1~0RW7ϏyboUqLFXǮSyߕ7 X])AoIY2%y0kLz)*ܕq2!g\!_&m&3%VFhǐ/f!~/n%;i. Awu:n,]¥CƯ5Nn3w Yڗ`> (Ae`̇AqSBq B$㲸CT%J䃯i/dޓK6|j;jg Rpd/'qJ]k;_ оR7rbh vg`JP6'L҈uN^ p)0Rw?FB>"a.WĘoIb_A<6޹ ;z,)`*ty&  d+ *e|P'FEu ?J{Fh%gTaWK\J䋸$F҈11Ev^ t8"dZ?) 2QA(CBPMNT2 /cl`=P`a_pZ!{/.MRY/u( I"l^V·~I\ykP<0Z,O,K(xeaAo\I@> i (*8Ecc_p }yv?m%EWqZhStOY=>D@J\sVgb]%xy{B{ts󴞌 .5#7Z$?s桠zJ*v$@2]Ϩ鶥|)AlX$Zf{vr(Π05pFlǾ?]`UYnUJh9قRXL'd( PQ(aQq 2St:!SQ!+!mCXrKw>k/2ptǞ=GK%՞B <<*UݥGnJgS+{!WjMu*(ls?ՍM`_kmVlB -48-8Fs()y# [EG砮*_r^|1vy1hR8o$WP0]@&j*A'H.)s>p%,T6%r*Nӓx.ߍI貕罓POyxA=ݦN"S Oom>H.Wp0$ޚ~]ן+9zYf$m*Д-憤Cy8 LYaLU"Cr#$ҔT2Xh'_`9Cq(q)|a#ςࣦ|Ra>(0 .ݯV_f"ED^ MIf`Ej$7́e uŽ -?$ 1uJCZh~]}ڸȚShCr4|XL}0|3Xh|pEgDʱ/s.50Ӣe__6}6ӱ{Z@s =.E*?B#pA sh^~+3>5gXyCIu۞eĶIEV1[G^Fj|Yƒ.t颋+-S%WBO U b~1{-չr>M{r&Af<{bM`hgE 1J22p};( MO濻4h`tlyߕW1tA|/8-8 {'Fe6Q?)^AkZ%2- Jツ8t z{Ndٟ׿u0d~$oF9ٮ'0b3f{bp *7Gx'E0 I,b\=#L42|9x %.ŶS܋|ُ| ,b[둻:^_􃥉%SҐ/({\g:qnKVkM:c3T:n,ɜWPtf?9z]AjI0۞p\Fd&a<חf^`2^2XGP'e 9pZa6ad0 ר —öT@(wVK|1<ϥBрsU ^RuuZ O8S uʸ\%$R?.us 6KL5ֿ@%m(;B^LVk7pa}BӴAY>*H`v MVlBjs0 @Wlܚa_#ZBS+4P \_UB{.Glo -LB-.j&_Ǵ0.QAVh7 mגhBhe~ӈ0x. aG˶oNo4tiդ-!4ܕK YY5v>VBcFVEz@ByDT[>ʍjGZr[c/…8ҾPet]$t)_o^yP}wިd]kkkkkkkkYnoIENDB`PK\]Ij&"&"img/ic_presentation.pngnu[PNG  IHDRQQ!IDATx^XSYڀoyvw;#vett lPm3:vXPBo!=ɽ{9sq\p\p\p\p\p\p\pѢ[k=TL)zM={.5EҍҢe@BeO\paTO${ G4@BvHCH&%S*̎> .*RȻ "_q!%{1I/2 %,2HW:va[i \G?L;?-"?*WX[zys^Bf5JwPxOƐsS ת!.SRqc)kfDvyzW? NƯ&yÃ+8E"TiPD* H" D*'Xu,HT%4Y EOL߄ӎyN[йMo-,>n#2)J&} hq(?Z+z%H(qp Oί5}\4pˎⅾ?ȔIV]ªƱ;[ )9lr% I}Wd62e=7HDqUl c|~(o*?4uq`rIýq\ H?/ ύY @O ɕ)>%]w^F)O,ĉJHU,C~[p^(3EޔxA8T#za{ V.{ɏ+^Ke64 cKT$E1X:n/նp /*t, gs~|ɷD01ݨߙ+5yI`C bJGy-)R@(8R0nJ(6 [S]ǖa\=)\FbiNP5Y{I6Sf(l ;an ka v\*,m8V',ٜGnHB{߆incrm#YfL7u便;%_\q/|1h#|Uci_9`͖Q/4G UCgD^9zM;^K/>8ɷ$lf%]b%@펼* 9E'iGJ5KմcTFiϥ&ss"/]I5P~+M%峞߳k'McY5d>lvs>O*&"O{d62TlNfzm783`$Czy.V%:RIa3Ky-Yw>HUy,!E[cQR+7+`M2|:ن>uגf|{v_Uܶj梛e{Ji7x#ss Sk u2ljf>&m23!b ć݂CO$X !0`ipZ a90l u̸:rx*B+ 03 >0Wx Fmgp~A4*#= YI0:8t tf[aҎ"3L*D3${8FGAPl4iTL{LS‰f"IT9ڨF76Q,u:z>li('hI=ю#X75-_^_[4mݝuF>]7`8.KԸ#CBГȃoG%dt" S0tH [f%ש%]omijќtH֡ TDMR2H}TH;<^塹PI <[ !^'yM]}\@7g-ژW_p_g:a2&LtGv_G4<ˠvܞN4O`igM ߜ-̿4Ґ,FFDY1hOe{}9y!C4u]m:G#8 ]*DiR0Cy)F:7h)h\h)*}5,t$#9D%Y{"ޞ,+ PV -R""yll=_ сP=нPCM4,BqksB=SK2$\ RVI CrLUN')M=I;ڌc5";刹 ܔ vTtF GDfnYsT=SKˡgUkFo*X6ImapOU3V29Λp@{`um"~{]!o GQ'~cDkq1t=tBd.!wH_[㾜Tq bˑaa6^0-}3j@Z)J Bk>ѰPpȞkF3nVjhmrcm0?[*x([wMg"RvA+_Ba J抒y@hKX3Lp{A^} 7DSjXH ppzifhvY D2U베\]0B5L^;D6EۯCџaQb ļHْUhy_{_u "r9p?; jhKb\'"`.Ξ~ iWDOv0|3%c>cA"ka'OJ\sAxd2T"aPTD|cEC} D6ihaULδHnYQWGW°O .eͪT]_a}Y28̎An "QL?~c,[ ReR mP􏆇/2q$v^|-n].ˌiLI2*#J4}[d yFovݥbDEZ2d̩jٓ)D[ƈ*-A'ڪ1#֟2ZJ/H&H)s"6J5T{_"/-oJ,^*|Lq8~NcD302gKէ<'ԗ>Y݈m%sS C |_xOl9K2g"ÔcL5bx"BJpqh7}ci߄!1!8QO]V6q6-%CH^(M2JNTXz $[ D+V ͗%0Ku F*fK6hu}31*|c~?*s+ ðj-0CQ99<#:֊_ĖH%EנPb1(FIh7aLu|2DƑG٩Oaџ`OJ_l j/l6Y{1LǔÌO]Od,L ~Ro/#IL1j)5,h"Yg /W]$0bƊxF-L&qIZRt\C5?m 5!,&O1M5@Kj9klA ǿ!Yd[ƊDy6NO\}]4GsJ|\DLK " +f\SWu!d$3=rIV1vZ,j-.'Gc  U˄P&zI*33(̝leJ2'%~>|SbhQ~8xKǯ%铣h>½jnȃ}v/ /wߌ3J<\r㦞*4D2z~3Xʌɶ&ƈ"߂2쓳h|e)S2fGi >XՠdZ${:7:F6yHr| IO^ onyTǵ[Ȃ2 }r4M#N!m(UYIzGFI֝H3R%v30:4&ěr٘<_=3J^Xey:Phr2:EѰ|];K%yђ=#u pE|p J׋"H%ߢS""{XbcDC|bxyN;Ez D%w ?=s'N-G%2Ȕ+it[o&GPZ_CC-6{4idoķR1m+]rLD-,JȿUXکf73Ty'oYmAU/GmYZ%MD2Z: e}j7I=I>\8Z Sch*cEV²*Z0>J9{,!|EzﴍdH5y6 aHۊx%ӠQۘhvYbRYEKU*B `h͏jC6Oyp~OPviO%{+,)Dww߂~|; 1V+϶m-OJ(mGcJ PAIƬXW[z^=⌏ tƮ|_ 1Z"ڡ޴־e'tPEC:5JypZinbnEQO`IR3m7Yd˒!FFJ4ți,66 "hqZ%Cp"3}b8 yBqӔ=m^2XѰ6ÊmVIow6w|J:~/]"BEH6H?#XM1ѻl^2hHsTOz%V)%nCkpWo?MWE0^o!Ɗh38[*$ aڊxd܉f!bh 2n_~Hbq8o}RhIyGj K+?ggr cRm$C'4gS" Ji1 Ln!ƈ&|4F-0QdYE7º3lyx8ئ 7Ko|cE+⛑d1j<Zww*(}u .}~E:7߳EVVAĺΆ&K32c+sRu1ƌD'1`xrB]ny)q4RklcD#="5{pۗIC{o8^a[Xp^3Q{o^c0>[',&0=NOHnBHbEπB_Zs.):ާ)tKleNU+2mmV(9V E_ kޫ"ۧ=VIM3;sk%1~ϔJQ`\5˶O[-<"rSt_k o~KؽU&2.8 ն_XZ[} CwxM^F:g٠ڿO xO?̖\*`75T@Jjh+[}(F?K4K7]%}+74i2NӏM!@˦\A% -z /%3"L+O?h7t.4~s60/0~C8-K :q^AM-mz;{&=p}`ΩggSeAL`{զ*Ǽ o =Όp Qf7E  r*vݕ؞N̈́ہADe􉛂Rthy,-XƾOMG >"!vݎ7_}`a%mM^XIuc[ Ct|XSYU(VglͽL[2ސ3 Py<XkLV O_Sh9!n< xJH Dgʞt"m>^/~@_qEĒKo_/8K1BHJf  <6Q57,l1P0kV'~/@Ѣhϰ\; w ~Oۅ7hS!?-AgW,!WJvSx[c!Nǔ•JIKIpR8kwT\8{K ww[ է@(~s kwLq9P,K DQBbfQ } )E?@t'ɅdkC\5Yi@`S%ULm >gMC2dO4eYBL:"Ǒn 7G4ͭ@ud8y-:QyԄy_y6'wtZRsBq|KX$q \d"Ze l2W PWrԲ!|>Jg-²IթgJ}f+= sb-F ]m"g3/-4Ҕ|iTVfN4rv%ƪs˅KH'4!0zgȮtqd)ѳS-٦MZ#-Yk+NR6' ieʱ'2>aJgdc(qe];i; vӏ&+ot)%7>&E>$ޓCE va|aYJPtO9,AqWIgDh¬+?s\^+] KK{Kkj` 1qW C^_CP͙8NJw0Zi73{yyOYށDhB1W*Akȿi9u`6-9 Mz"(f?缋Ϝf_|#Uq 5'\p\p\p\p\p\p\p\p=l6,|\mzӱ4_`Lξ'M0f " " " HRwS"0vF j{  " "U3@ G@#0ZU'U."0Z 73cF)E@S8G@` zi;<p j-?Uǫ=k#֕Ƴ?6, F`wٲQ# 0p-ǫ-gt_׾j*"0_fcjv#     gg-;sX}B#8 ޲3l  U=mٙsZ^ߙY@@x  ,9/`Y@@r:aٙl  ̹T]۝Gq]@@X'o-;s. ~ @@=9ת+0}{H0`  TegEù@@6uXn;"7ז x]WmE@@X望.ۊl       7cՓ}MTG-|&  |X}dOS Sl      gGb@? "IIENDB`PK\^J''img/ic_trophy.pngnu[PNG  IHDRQQ&IDATx^ xSUO"" """TJ)M6IW 6iSatqPfFeܾA\XGtTJ}kR 龤~$mR'h{ss{9!g>|3g>|3g>|3g>c"o ޾)Co cOau>~k;mTOE<ؾ=,7m)wPQ҄7H 87 f+iօn > ?3Y;)-KƅkrCcȕhQf1DV|yWիQl"3pYB- L}F83=LƞS{@%DOd2Էq}|[v0JmIwWA*\!p"T":7KNX6~4}3Of$ry.kC_yHKV\/חTu3 k[DUiQ}](oUvhCp .5vI|'[mjm h.ڑ\U+ooঋ}/NFJD| xOIJ ǾCnчX¸DsJx{N+ђd(1bM;o}a>澮RD n9[εӎ; >؂o茛ôDhF'@mH^aJ#MZ+ R}S3⫠Vk6[1OyiJxe^ wP[D `9<PկW&4`ױC+G50~ZH`_Gҁ?Љe2SsѴWϟ}ach)fP=Sp:״A#H^nԗH8v3z~pTL't%;d&_E dj-asM_R[Ar?o1W˷s'N+;n iUy.7Z=tg੡/|ـma[h F\p"#r%mڼH9sk/ 2:/6%z]=,= er]苭ȸ[BrO,,{p5Z7 &ͤSq@u ^4n }6lMR̭XP"nRyM8+Wa 8'd@"<[̘^25mF_i)il /:;!,\b_i4qp9R,BJ+QvWn4V(";Í >+5(0?p9e7J@GlKWi.=ck5ǫl'!#L\qCG^@[y[X8Kg)UX Ɨ#,\Rk$9|ZGv Zݼ"V52; W4v<7lRy(?r'UюEݔYL7*!5&:ˉtX+:xc.E+xd3Ɛ~3;);h/묠 FS"9Gn.#} Y-lR{oeF G,bS.sy>(<~OITи~ExMLN{ "?7 fW_员ghgAY$+1Lit#, LypͤL1Gυ\Wp+ ^kGrCcyDV\1(!8x+ nY܋EԆ#HfP/JY h. tLSa~:c 7t)A6ݵ&7hDPW q[ #E#/=B}՝0]Vuљf6۝wdYxѫDl\t_ I-H*_6n}Ūhd\?ңY靶%AFX}w 8JշB!<͊(@NtRs7 ϒX^ƉZkSuQ) Q O[i H(Xr7gdfF#lRC To4(1[Y'5w+R୯oBk]pelf x铅[__'!Y`$f: ꎥ$ɰZD {Ojj[&dkaM'BQy iiYC31vvPi=#; iZ擄HR><@e PB'ʃ`CBe t1BNz, c6nY8CG|t:2mzb}IAN'X,\<^XzP G4$e G7 4txa(NSR6ay# +} \ srli;tB|RImv=JU`C5n$Z͝h! @4L k(?4!GB(C3׺/"rFvPa+ f Y~Zmfwدqk )wmQr4P׼t"l )KFhsgTO}= /cλ|@ܿ!CG> sdQ=b?{M{ 1`^zBy | n mк,UqVVT"o oމ$Q&:.<[qz0ljy58jƲۀ3Z"lL/]ބ28we?Nhgs@Gl5ù8 :LHmĦD?o]:Ӓ=SoR҉.SJn 撸i0!;Z L4B0(,6:,꛺_d().62P8X:6]8TdL\$úUɸfreÙmyyP6ҸU?}-\oqO78`|}wߣ%%C`up>׎l:q2Wwj:&Bi٭=*S#_D%W,nۙLA&ci19s/Y>6-+w +UD/V}C697XݟQ35ߐl(VLO/ ߤW=ym[qf?cRyyr%ͣ?hnMqd9n!8 +d:2<-&{d㼌kbEMƪec=  7#6Ց\$UxojL:D$sC&AF3vE*'> ;⃗}^7CLkaD};27f A7k-"b|jo3.(km0őTGej-4Gt=(Du;0"6{FSBfoAfDja?Y 9v!tg}^o nh'$E)뫉T|*6a=n*- >;E[倦?ZqB<Aw~9€PZ=e-=%4:t0蜙]7`jYcai:EG!.ku'[BR2gw 00s_SO h*M.#.J\l+4WG0&$^:8a:.5w-A|,sZˆ1+ Me /.Y mIaR^\16D @p#ُ4D繧iU6ZaNXOÍD^ D@$#2NhD\+طtܕ4k)4f 2Hq{dESSbHBttI2{#<=AS7}b$s~eތ%8#և(9v,8,Uy|i Dؚ'KT"X7QqFZp6/)ZQ1ޓ#N;:1q hzS qӻFt଄f.;4 BZ*MdǤ )L"= DYE>_u]DLp.ǚCߺ@h@_+t=i6•5[FRВ F RH,7}╣M t{JH2Ii#@hҽ FJd5 ѳNiQz Gm&FQN'Оb7!.:3mU梐:;Ii  4B@?0$Dh;]h)jv[r:[4:pXKlV=Or05FGc6x[չ~ e9e-8%* v ytw Ly 4?=:D^W<)5S8 1$t&p%k't%0o~,od8V>*V0({RP0)e6sƚGU-2F3"遚E[KUA;g7"iĺkog i6|+ !/=x2juљ|lV\|\%vdTwB]?%Bq͉縚 |Ѻ;(1+]Zr-4Tx4]&!v:e3ű'9X\eo` >`SK~vSjM\#(ߑ) ŲIo2 @h qN^fi -,!v?T>jwߍ[f}-13X=,W fyxwvQ} -ɋ-Z /->q089aiP|?v8JB0|@wosZ\xNjgD&FhܴHeTK( qvcM_.{8e#'zE VTͥhϠq7I4|)lMv juhv+ ]0[ Jh$ h(qzQ?kN OhKG{҆!g(f\Q).B׉FfvzPҸ ZpBF4B\RqU=]6ֱlf,G{Q"0 >>*ze֗0wJ!9BВ@` yȘF {KD];AeZe+$Gei**qT\-6D]1&. Dh=. 肁x ӗsVDtԹw^lF |*1"nׁl]C Јtkm/ϔ)_.q1oX}s-7;T\j1D@LMFk_4Wj)~t㶢La`>_hh*';N9TXN+*5n/.5^&hM_R]_U߮jꪺs {յ|kOzy8N g>|3g>|3g>|3g>|3+EIENDB`PK\BT!!img/ic_document.pngnu[PNG  IHDRQQ IDATx^\Ue/92Y .e(LLӦ#LW*{fܥbކqտ̜y9w{/r~c)\y/ r!r!r!r!r!r!r!5&|sǚz‘g1#gbY9uܟ_EOYWq-!=v汭@vnL y g0LEV)G_"r8X4wHBc*CN? qp֣3f)_D:Va1CϰXlP4^Ƣ(Eeߨs\vf4Gϙ V<ѰMFK!X%g4ԮB9يgKeQ@I8o6^[Z]4mbMQWN^F^/F"CI#-T%[޲gذ+_tZS~ a&+rR?r* d%fyV*xids܍+&o>t!]mfW(7uaU@J nI&S0+Smckl>9 Nt[ntaP7pMZ H-dѸjS RK9lg݂EJ=~c}^ :X84mԴjQ$E$8+>NtaE]-sfmBF݂G K?tax84iNc`WjdE!bEmQzɵr %ڊUrȶ\!'ܲ'nOYz؝N@9s>Dˆ^xt\u鄕C-Z qUfhѢƔ,_IVDCp`7anjY݁fu&< p#gMXSTM6BӅbf'G)"aGK'ЌjH$]{`kYT[}c¥S4SV.]IC-!sƊf(>N8HƑ[ N|Qrpm;:H?SJ1K2,v+C->Ύpl)Êv)d {+|*0-`gudF4$+:0Z6?0V)7P%|4DIgD%5g=wSq*sNJڰTw37u·V~1z%C,3?E"&FkYǦEiտD)qN=v#jLQ;J8!LH_3OrdݽsOPD]]|c~5W2? ; h4݁kh{gf_jlN0ՅΧ C\\}c3 ݯhDjh(Ӭ\4o}hQ=:jdpcd~,ɐcm] *%N`5mѐ:EQ(jͻ4R7[]"mOEXD-7=L.?@fp* Ջ|EC~)\VlPyWs/?a%$áhm.U\n"dG!J>rZLtL>Lz:fމ5tȣ_R"ĨB.ffRF2)D+D*.E#i'Y8g3áyWU)whaLE0v&AҢU3T*N`>TDCs0W_{}!jάmT)iaL噡[2)DF|9)!0rWg`?DDC&"2}3u:?2pE_s1xp.sܖLiMwL pKwzAOTql;&.V_Bu_V$K4y:J4^f¥ey dmgE҇hmCLK'>[pPSvg_3֮+32iYLd&Y\+K۵FkqD:+6s_ߢA\n?(-96bWTy൬<) gYJ5M^}0c{c,Yeg}q3"f]/w"Q:Oiv 8ncNv4Lx-p[fqV*r`[1_錶ih L)e1.@b&x^[U-';ăGvy6+hoæOAy' t ոZ4C:% 3rxOŜdF>Axœ:9zvS!8M (v >x~:OzB<(Lh*2n*hJ3DCg3֤?z!Z,iǓj:$D#ܓ7g+dqd]W,*C6OT“ +f&`Q# 6=78kٹ:DjRMluǼ7~u۟4fpr)-1{{NBso$ӂX Ml Wz,e%3Z A<{c[~ 4{m6MyLE]]2(H>CTt -gaz=ah6u9X4zE+"-$2H*i9, $&ڰ¢\azYV.#Eӕ4M--e,zS-D]?mH%J4dޣlFۚeXhMD#ܥ},\^5lCѷ|'HՉ`[%RGR)5Xd{îr4@;4*.Z!d3v3UɢEZ3 :1-kC %^pCtK#\},K,EYYY:ypxCGMlxcFi6dT[vϦ.P[n0 #D]O4hlŎ"M-B Y( &`((hb'Z4˔h-sn[m;-Fwtzj&tNAeϧ}$T~iT$q"(ZOA ngZ,鼗Y@4{u~m~(S[48Pe?vBpHV-N#W .BDC:Xmh8Zr)nU%CV|[*(5fo<aф  ǙObшohì`U䖕R I??I14zL)rP(ѐI;϶yl!;<5ht!*pGXrvږh'$ U,t>܃phbk EyHz7τ֢!N8MO;!IR#ܬ$v9$w@=NHŃy'nPXXQ*RHE;xSX; Ozx*wsbctH Ub3|?y,-bv OEaÖ*a O}]T3N ,nϱb68S]Y[>H*(Z)vZv%Ons ͩlMiŎ"Mݧ><>{-u :I:ʥ͒ 2w7=q닞F-Qe"x{1rU$L*Ol7&wT4l?.mn.W||Dr1$E}kYR&6f#Tx]Pg_!yA֝I ʘ57a݆iK7;4E i0ϭ ;Vb/sWǸU[sۖQMx[-:V]|KE#!%ۨy6^ u,Fll bS.{.3qi߇yKgMg:ӭ V1+ F0mS %Lwǯ͆\fH "c'{9x&m2]>-=ʀgTW(:mOzk+=P%ٵrF, OޭJw6. !3k $`İ!PDyY/N LAۏJAZRf'ݜlDUrj [ĎUV[]adKSҙ#^eUH}8M~FՆ =ۚ;K8UGao&.>1E2jUOWD\hB=$P/n$# Uu.J{ `hb"8p M)n9ضK n~1:׶J o y.*]׬CQN& X+Κx/dҕ:v%!v>G̋E2%٩ס}Ϲkqu.=]<1xPYʡ\8)>|ZP|AOqΦ3gOiQOr/c I10v ; P<$E$/YgKkeTQYx* `n灆3fݬ&?~Cw6j 7Dq4s[)O͌ZHP<:B "${ oBPl{MMI/!r՟FnدaD7I%Mɧ~xq:+Sw3W'Ns:n ݫ58r A+ RU%Yu19`= ;n'\UkJƪ;(QïL!zG!t[h@/ 摫:Oضs¥娖ń@ɰcNTWfv5iWhDd gm8H5OMetդppgHN e݌[Pa_6I"YKƃT/`_8,QIF"0 }a36&~W8+:jT4kֹz1AƷE&HVɽ!ջrLL-L{5eD,Kᰚ6c'M{q{5\Hr%%r0CrBlG뉦 (n%vo,&7fEg``ܦk0aM| Fp /<oLڂT/~-;|}բ*ރZ0gZ-Ӗ hwC&Qm / Vs4["t ۄyAg7e-xiŸϿ gVNA)񊇭]&|P{n.[>2ĕ+?ՑNZi ?uӲFEC:YHW Cj"EѮ-Z5@lCW3cIW v, X]ڠy%޵:&-^ct jPXgvÁSLh4cw5tL$^f7 .meɄJ2u7Us;pM4EW0"BdqLhP$SOL {NW9tz;Z,Kf )>ኰ5s {wNR=Ng$觕$T!㗹jNZVZ?Ff S[kٞ&ם<#ĩYj@8G)YF;HVT/m>R¨M+@U ӀN9$ 5wIs>+bDRáfQ1Ju3USIP_u1Iw_^'wzbZKd'=20\U?q~%^ _6U2IMt= KIQ.[V 9C9C9C9C9C9C9C9C@*MlIENDB`PK\ g;$$img/ic_device.pngnu[PNG  IHDRQQ$IDATx^XSڭr{oǿ*zeՊց(Z+m=Z7::MnEd `rސEB|$A9=XL0a„ &L0a„ &L0a„ &L0a„4exOy>st{zVU ,VOX12%zsL%[VVp׆٦Ik!Q iI 0 B{Ud}e^+8G{x\YoocNLP`p[uM%X7E#Y&,犐mǤ)֬.8WsAJJ:ײ^qE7n h,,|pG3 Fۺ6_;࣡kcKȤ E[IU7܏~⟁ e7@Z=r@}_;^;&dy6س m_Rm]m® (DgنzFqNmxm@oӥiV\pfۆ؅xKc|>R_53|$~! 5H!3H/$\ nL&PB. Zmbɪ3re.6Ў8-mZ&*v|%i"ZU j܆h1B.A#~: gr9 B,yÿ5%E/()~nzco)p(ӏf")ͅ?" ?\Yl軉n1>qP̴xF"m-YS}3aV_[&;?wMw!`-- ECrS\@k> J`55A (pϭF*&48&-5WGޘב|4w諃9+joZBZQY=<Eã΢%|h5 r, nfV;T}WGOZFD͠Z,b1gs>͍1mLUZBxD%V %urѩM @l&BGZ9[rLOΙX%Kq|WKXl%H(9# 3rԈ3C+Y/wsTچlƧبëdTDVhtn(6 %}?7<{ `kT*%W [y!oME.}g6d`3DÕL^&ѤhUkr! ᚳ*\nҏAGj]<>Uw7u;wG eh jNMa#8o[MxՃWP;"Z;B(nԧ1W=X F"2ln5=sPI"DA#OGzf5;C!V>h9x aI^8mK?$-次ޟZ FZLS0Dh[-lrqW!,:P7}/_5acrX4lZ ;W4Rb,&0%rkqkz 5ex87X"D }6t$GTE H g&) ƧQĒ]Tc.}~^]m`M{t ٙ N4y&F_ٿcj5- ~GH Md. !,/w$pDTt|"EŭYꠧY#6 V*| kHН߫뷿P2gٙB  74-G,$yњaKɏd+8 R$)MbFPȧ̜W+K3! H;UMUK&|g}LUI֒hPm*!]ˠyjEkb"jNHU jP(AW臨caxT$uU2EpUKUA7X ^MVk"״߶<!*n7@qPޢl?>^Gwʡ,DLB;,rU@P"D0-4,sֈu+sN(43L,Y f5 K.Gg tUE:j.U25ʖY^so=KH(hzuX4yL>'p^a`MxEM`h/u!NDҽ{bf]-kx1%}(v&1bٗ_eUquX LZPDKS!piU`&oklF!b5Ws5UQԩ4?Ցf_EJ d6 eefU<wvI_dP@˹x=྘DHb^{<@ZBhx0ٵw%TSl# EoϲVk;.|u9hoGLs%rɓ^(EUM6|tE0[w,dKUŔ+]&oh0JDE?@ iHҡ !xrDSf0xm({ 7u WRh*)+dOvrIĔȻ?i{hd>Wd?P$[.LvQ_ԉU6 };䝄 h?(b3~U5iJ4XHk2~}~;\N=%¿6Q|# s0kɷik'XUM@u=S&YH2B&wu\m 8^h!>L!Ҝ!YK`ut"V;:i6ج k $k͆(~Fvj~)hDT*4VaѵVQJ&lqsIȞzNJIUQ 1PU@S{xEl%D[ 5p~.TH.a :pԈ2US"CΡ\\U,!@Dzw ɒrݽ^UA? wDOS鹲98ci"#ٯtd18t73X3eEC͉k ɴ-,.|CA0 .4N@7 !LrU >H!j|C /^s _Ȏ`f-V(W-;DuaeϴO[xr?op_l3dڈ'dU$]&%hְ3LJ_R!? P:$FAF !sP  NZ/݅qW3a0{HOYĐh4s$5 t U3?o0gi#&: j)*]ɩ D!ڀ-]NQk7ϥ_7B߷&]cN6^k].nU ˡV4J6fnn` g=|^O$b}ҽcd@4l%0wqb$"AQ;n:w$r)cW"sAEuÂDP ӂ7OBCaX 4q% _CxK1T,½|Y8ՁoPL 0h;؁JDG}39K6 P nXhy\hd@Ö8bmjBXOVج-E6pٮ&c+JCiv\ -! (M Lita(?ρ&Jx2lz~,k%RJ߄$J5N9DCh7d H S WZ3Pd_Ú7ZB5! P dn&DRr#SֱL tSI6F*6Ɖd>jp.U ^bh B} ܝr#CxM.JZ%{I܎ަtلY\"5diFsRԠzzmV6H4}nO|:;EGߏ~l8|OhKfhP>LVzUW"Kk(_,8RR5OYKH+î.K?FIz2<LoNv>l;[]pcxf'OK,R?$ hB<< 8 % V# @Y4|l i3"!D|ۊ94<֚XKJ x2~}Ԓ*g SG X˲ \$`G%C<В*\G; u[k/v.u:qW?8 V|ZEAM4[ShVmhnUH|C{cq%3d^g7j^ a?&,$B&M(r; 7 ܑ}>V4ܒ2G64wi#◪VD B Vr̾n;!:֫#}h]H 2浟Nڢ*!}hҬ*NI l'$R$X>'ڈ!:˘OYpbC|FV8MpZ?Z>#XvX7 [ /ܻ?}P1GuǏEKé{d}K6spݐ~Z'īeK}4Kv 9T4\Fgo&ǘ[F?mX?oSE { ZQm7.2/Q"u5yɴ#MYҏ[!gAE ~}`_D|FC &FDEiX~b%Hđ^?J4PQ%?˼-.@[.wS _=$E3b H&A+P|_eno b&)Q2iӨ9ŋv(_*8jL+Ev3S6ݥ6t*^ǩ' RF*ߚ Oe4{̈́M D aʅ15>R:\~N񯷠2%RW.Dl:hUg;A)m-Z#N!{k0) ja&YiN y#NhJ>x)h{\,M6߉s eGcwwR 3$o ң[K0ݓLCDV*.FW4;il:ycwAhrh?[Zy3ঢ়H*Z'@ ρ0NEM[qlEZD /EB!&^o:fn7l2NRY#BݎPT,&䒧cg"fQ}zS Q]R$YI,^ mIM4!2Ѥ_φt$fB$ut$Ѩ[#Ze,O]3hxz#{J7@Øɒ=^ )E|!3 4% hK{O˫W{j"4H:h*(3j8X4z#g^U u=GM+!&t$Ѩ:4ugMrPw@[2~M '^ @ˤ a#6*y}1GMphFDü0 YtԳ*YDq15K FhpbքТ57L͵a8擩)#ѕ"wY6YS>>:Mx*Nih:\n+U}'`v/uo,S-KvW(Zzߦĺ7l&Z6<[XA)iEȠ3nNP~C>EdˬQpox(ZxP7ʀ#P;P'jB( c^g䴞qKu~rJK5'҈bJQQP"Y{Mln0[˥m~O}!Mд3ф6'*eb19*ZAl7 IQ)cXu_e70T1)rJ?*~|@ќIЏeq׹Z!y*ݎeM΢h(RFFfh9r*~hۋhhPf:;\,]uhLuhym9\B+VT7P7,[+PK" E&7Oi<~{D'CtPd+^DÃ}Y&:,œed׃hy^+Q.=K!7.L>5lhrNt-qS_֌ʍzy [.XW23jd+a$wZY(ψ)8wf.UI5kձ;4մ (0$cg57Tʽ _ʶ#*v>vUA*tr$OC=;<7Nw"4cR7}>hwu9[n%[>hTeKbJPܞUKmN*M6nOBnJ .;JH{MvED }p`ʢj&u<U :5o1 j7GƷ |ԯ#^7,ژMpz~M9;w a_50k_vshS U3%hkw?p-U4_$ X͗i>E׍k62zY.?:gTn!.]ZKQML'C_S K/XM_w뗺}.^"ëT!!@[/0#oǪݧ;D4\8J.$i-V_SOWҥ ꦤuX&ruci DD)p%9tnAm>ExrȸS[UH;͑dD$g IKRrDp@wi{"!~[O=]܏壹vhЫhM!ERS6s_Ĭ뷻8mk#aFm$djFT?*/`d8,Oqw2mc^ULta js<5i8NgƪB-7=hM fgmTu[Lo5X& \F4έ9=^,m!+_ӻl136WW/Zg#]C&-=*}#uFTc6|õaiwe䈩>eTyFu^"}G3a=5}Y}I6]xFJ z{f"%K6K-Uizc~ffuSKzϲe{dޭ_ ]$u%cC}~[')c \ün <3 ߈:t|҈ИltI(#㮤W2 J眩}Y3}IFWJUɦ4Wd=MSѐ`BP6gyL7g=q3"5'sZ$?Eh1^˃+]Z'OcY&酓q+7_( շtyTNoHz,bd o~LUɟť׭Y!M6i<bptŗ?~N3 gdr8i!tȌq]WPS^RuH1BJku2+@X^ j3 UO{* مs̨zTK?V\4CIxZTT/Zd*BUC5$2a„ &L0a„ &L0a„ &L0a„ &Lio7zq5IENDB`PK\3Q>>img/pdf-icon.pngnu[PNG  IHDRx pHYs+ IDATxwUwmnM$Ф( (` H@HDTD """MBBWҳ[g~f7{l# oẞE*/8T`$`a ;7+ʶ{ 8>%k*CE;W7)LPc$`XhtnE0tiq&T iqF@`#~2 ~ $)\Uɭ~! # ЯkkX &@ ~%ʃ}B@o@㄂T@/P,F%>|X ! ! ! ! ! ! ! ! !!!!! @B@B@B@B@B@B@B@B@B@B@B@BBBBBBBBBBB@ @@@@@@@@@@@@@ḮLà" O6S+0 C@3ݏ VeQ)ܛ.H@ŵYS]jE%/OS"R1&0JH.`_ilRK(4Hzj}E& .2 @ah2+z %Һ20 a$_qk[ ;g,C􉆅 {ak(hL4@K #=R*iz5!@dA`,C0NyTNid@ZN׶i c50/a$p GTtfΝ*%(2@3FB@T>vckСQR$4,B@s]o *tIz5z +*!SY(Db(7#C%9PfZ@i>lb9FRKlKK۹F46RiYǣ.g\#@Ċ^\}u@wo@ I%>!5~*z3#^LKpwLm)*Q}$ ! 0T*.UC4 @03 x㷝G-(溊b BЫ)?@@@@@@@o~2ƎWTV ómhT /pu5e׫NՀSOW at߰t2Fƃ@,_ڇP @k~"A䟴Gk @RQ) oX%ɐ!0LlX_Tɧ/9T}T2j2'LLX|:Uo 9U eږmlRuG/zzGS@AIkVmwZ4 5(r@݆ *pJf?3d x U*̮o*zT1oՋ/磒TM2ZZ䵻_%0۶5$m互a( R@ʍde%,:hDwLpף ejܲYkjT}40{I0MeٖQIR,`e \HhU3C5Dc\խ[!Gd   ɓ`@O̶-G]pr]߱L4"H1y^QKj֯W: h5y CRI~#HX$= IYpS>YpsS@JCI,KMͪ\L:@RN1aOZvlU H9ze|rB8]/Z[|j# ɝY *>ҢJz $X\R*`CrGC% f @Nn7Xڸ)|ZڟoQn7gi&yMJ@R+XW'n=|_An7{xy_hdJj./KLScOH`HMe۔?n|#%I3ch-E@R4jNb"``ࠤ3c 0hm[g(XM>'au Yi+\Sc9ò3m6I*HUP͚I 0d +=]&*HUaafB!Y>_eGRG {,3c$@R)toX1c{,1zLm- OJP5 @zǣSSu&,1j ˒u?kdY$) ?U Ii]&a9S`P⮁3knbTIr@2ƌM*jN k'n)Tr_Y&KXLNcd[T.|)׉zrO;8aNASdz`mLץb>) Car`l 8iP@J3Ptq²l Tpt 552E@R4UdqReNtexMC6( ofV`Ti˰N#A@R?亪ZL9DzYSu|U6f_dq>|<يKr=ZF>c;(P3T VQ;K@R!oX(9U[o(c VK }4UWQ-9Dz >˾`E2No{e ' ReM\'Pe% }'`)%,?0;ok2 C $U~:jڶ;g]F:srvnE-Tk,E 4׭['HR= kVs s#֎;DUI@;A C'F7ԤMg "/\A/\ q`jJ[~[l @_}Ems?ح6CyLO,P咏nj7#`*.Q:@hTpyTN4&ӲuTWx:7#C?52`Z"6ggiRy@_Ljh/++ 1SWT l< =6et!*Ҭxhܼ))>T}GF `ɴ]8ĤǛ#V[oP@_3M ?x >2$M<+}'){TJ@aTpu5 BgQVGIhIԼn- sh ϩBqI< `vZzT0@r'gVO82ߛm[%Is{=Ic5i,T2g{,ٿ{K/o^04i7ϓ8T6@ 3LVzkqGM52Ǎ׀gTP+)>/'mMutR3o774o$,g]C&˿UwBSgRQ=#լZ? S\\W԰q:%zN9Me/ 4$,d*Bm K:t$~AIÎ\r#߸@5sQR.cwa=qmw T1p_~3gɗ ؛n#C@ E=.+I۞g2lBG[;J}^ysrӆ +kCTpq -{zv 閥tRs,־m3Ok4p!I,gEK L ޜ\ϫOZuoԙϾԥrys}WRONR۽~˔ocتJ`s6<[Pw߯E]ȭ0xz,mmժk:jF>gϕ5 J}~$7KS[nl}_ϧi*zmyJaÓJz.Vz% {N,%}ٶ-3cgږcN# o\N}/}1 j^Z-/}Rr^~I[O"W-/;7Pޕܭ~Vz&?s- 0) ػE{~ {IBG Ik^ 'I}-2TH]~byxv}G˗ۻf۶1vX@>.3g%u4X0H11M[^ϫ /8޸jg1``R?Hz.D`zW.]u秫0Tjk]5zKtLn IB^p$zlګͰ,e۶wZاvju⣿%uW|G2 moyCdzE'\MZ_g۶ݘ+>Z%l|*JKwr @rÓZu筪z ~? Ҥ//tG_;|zg$-ͯ\^n]fy5{U;km ?| ?6nКр2rL y55~9j$}')k$-j\_."a2^ǖ)BGp7?zG~-n^bPM{ԓZ_4A ET.p`?A?Dk6Sg05<ͿNHD. >‰vء $阹h<ï2s ~N<_y#וj"݇mz[nOޭc 4{UkZ7=GvZLdgzegdHFQ+  :1ŚF4+Z_A.FHΜY$,Wv־Ҏ0mӲ Uղeu͵I??`}^yG?y"F̔X|y ͓@޼|y̔ T+TV`6nQ?ӃT~%2to$}շ)yS"lW2l7p!:{^TGѺy>͛+$;oaR͛ysUh\|P &}_r 45,O&QUQܡ~_#UUxem{9| !@8O(??#}|K|^e٩yU!UY(n81+ko˰״׏u&2'%N4ie۲ C[Cn ,((PM9_LSE?AGUwݦEPG.,q0Ӈ?| cp\eiHZ@M%;~MP *0A,~_~|/) ˭zu&ʽo^2'NRIʜ8Y&oK1n,Hm"uunkPNzE mnˉD v]زɲd͕7/?wnC*mPY֕j^F5@|墭ˇw{RoX2MPAS /ruݺy6 )TQHmµR$uHWrf mo!~IDAT)C!Ym,Ðe]+oA2FVӕ3}2OɏQ߽^~n >+ʛ?^-;2?5w-YRiʞ2U'ڍu@` r{I}pZu]E]7KSz3 yLCacmScEOsO[i20MY)I} <,Yi/VG.F>m׾ue?`Y7}>eO;c2OHD{ 77n'[:ծ]M:-w,:U0a'-M&|\{%}c^b?&j&eڸIޯJzU 3O#g)3}7Sf鰪`_dT=0ΜS钸mj^JMVyJ5^7*N~04ē5ʫ9W~m>_S,Eϴmx=>Bo]c Q2Fh腗$l%igV4vfr=LFy.n<7~m,kԴjE[cJMW)ذ GP8Zjݫ/ki_K.WA{1SfTF{V6nد'Ѩb1YХiҽ(mpN 0@`2W"=9R{hhX' 2FQaG((kw]nڨeKհl/UrB"aQqrG!ǑKLGcN?C.LiiՆސS _coUKk&Sw|E 7e۶}Ϫc+.CJ K>Vc[c߸|no`/6=֨NA߼PFV^{Eu/2ydv7m;溊GݣdAj\}I47Ou7C_v3^̘cSQȓ?_H ?RGܺeG'7`QO3 9M"Lѫ߯WԴjcHjqb \oӟ@ 5=cX8z;<&Q׳F?ϨSG{V5.]>REjXBpYm VɚxٲzyrcOTkW,ﴨn,Uc,hF *mH5᎟&,{jjwr6ML=XųOR3c-_Pu ~<5Xi9u8j9jrT{k򚦼yW hָQzQq=Uj_Ɏ},U]$hRaZ:PG>qx<Գ |ZNOxB ;BWcTt‰* a#kmQE[0O qN ~~C{4x٩fpX=mA1}QCl?aG?OKabEjkhT&UiPzq 儍$-/:5TQqJN:EųOR<. "@u?KRgCao|)_7Yi1UG"fp6yW+oFF0[cNNK87#a*{4eOlVÒjXX-+mBehԐ /QQZd0FZ!^vVv7l3$'atz9*9؄ yZ~?}_ (ڥg7ͱbQ13=iKjFUì!C55{V„W*n٢hS`P2 +0xpe߼#} .JK?'GcN?S󼷇|2e5=2˶:4lܠ?\'i豟c>1cPނ„EUU2>Z irRFCjX.T_mj1:U=yG+WtJj9jyffD1UM$;A4c5ǩpL }ekRq}`@@ʛt߃QrhSj羯99 Tw5M85Ͷ'ŗ"&-u{T5#T8u2 y='{8)K@y׍M[?Z(hݶƮ1+![~cjM}ަ[-KAQ]$hL{{#ԤկK_W|t 7WVԃ9~LЏ65iCkC#8{4#N֌??Gn[\u}KUo浫wY%1U^6a(O,@u]GDɤG0i*;N#F(}( &oQn={!u*^}Y[~}Ǖ-VדpEHF <׉lmxum|uVr5D=oexmŽXnyA-/-X>zL^W\,Ov,Y2GڪH}Uj^FNv$ ;NoAR''G.4_xNS ^Kϵ!޳m {um<{m[L)&E$C45'-vBG;7mG9i"@0oJXZymKzLS9XLݽv5M[,SWgm[ٶ몾mxQqq52+m3R|*Ӳ$@J3VN?#s=룱Z2 YV{/a1 x] :Nu;\7ч1@Rah OjW%Z6{{C4[fP6.i5U ";,ZJx} JJdz}jݸ}[))kA uvYm= z@Vn_B%Sсr<B`4|ilԦ?>ֈ+L+yZU˖&z^~2ga(Ӷi[-ėVnuzAJaQG.~aT4ܯii+-Onn5z]0Meؖ2f#/ 28rGam;#=LRf`0,K%~Q.L\vm{Ne2'NҀӒ+XW(`{'.~_!u*~;gqq%-2dl#E'w!yյJ5Zn$7}_~s!koW/_Ӷ,V~?Ð}HY'hwVXk}:.e}ʜ8)A]Wu\gD?0Tu'7O#F'H}|;jXKy_q_T6^m4Ux}iW]5?gu7JKOxpS>}Ãi*(1rf괽yZ-*+r?9uLR1Ӷb@>mmk_ /uW7ou66v!ސԮ^eO>i[f>Ӗ9n'J5˾^;ntHDT AaqGGrb'D75oعv]mo7:JFU(J?LþxfR/QG ;m?׸oU!uGZu*{Nۛc1U#m*oM2}L%]OKC4-(G"ZUڷGH#Z @WSVAIoQӶ"}x4[Ws Sw$'U#jFXA~Jfg~)]+eٶ}ʓwߧ)ӺBZz55Fcp2 }JmYANLP>>r&3 U;E\Weppv^ O+vӶ|' RGk-rXk\{jHDՑh,K|^#Ԁӓ7f^Tg}uFZT* fwe*'yr4 -7u^coF]s}ή8Vr G$]y<;|IsnIV@a?5/XlChϩekmQ<_;<ak+/u>A S샶45G?Q'Xn~w~N3;6^eXVc4[W&3TT"@z,*: =Ο޼{ޡ5ez?u=ö; 'l+7~;5cp҆ KjK:ۙ"@z߰.M8RY_]9VKs ?~eK5l/zmE?AC/2PH]yZ**m|JiYެI5W%3D[[ ,W̘q7ݒwo*͞xߛ wߛ;m CEIyp۝ eV=lJ7^M%s,L01]gؖ2@z׀TGX&U,/Qn7>)J.-P1C@ ȫIXnz.۳lG Ҥ~'}W]@zЋ/HLقw,sgIL&;nնv;΂?@ = ot^2 I|Sj=?Kj?IZأZS]LS,a_&#A{͛:m3 C.3ƌդ'=@.WqXJu^OfzDvffR_h r{1@+e>rT?z;̗rF'5lܠ.FJI}> Pؗoזh57hg%z+W.RKee7{ Xbͻ칯{N Xr۞(-ոܡI~mo_pSc|.n,Onn6Ύai|z2}_nW^R{˖h^ < zEJ9:;=>cv[&cG6o8DC>˾ps &LÎФ/#AuJy56o.,K%>;c6~DUjɧˮP֐;@SPժ߫`m.LS>LR1sqr-cMҨOմˮP!{t5[TpAm?O OZ iYuitה?n|R=?>/c"dt WRm$HTHm/Ӳ(^WRS4HDaٍW0Tൕ> exlbwtdJ :Zb1Gc]& &bYH1A~QUGuA9̲́mz=,VmCؓg*zрA6U(a4RVz7 e :1GaǕ#W}4TeP?p^      1$5 S~-6gB-ITنEMO"@8|9п>@V,ϱc /Z kKZL PQ ~7-906"j@u݊ǶT,&Z䔇¯Χ6B[" w_=uO>]^L o+k˿6hөPWm6]D}'[~~aZM8E]5|_u_ I ̭iP%D74n}}mۗAjd2DҠ_<=uӨpg/Zz{M[$Q3,]Ҹ_{<'?Ӷjbѹ~H I;H~6~=Yu(U/kw57kmm9"iJ*|y=R=P˗iu$iW@&u~<0~e_g≁fڗJZ")LM7TRAw;>{ }SX,@rHy(o~u(V)i#E̓ s<|xvTq݊Pn+{$-mt/iXBiyѰAdf̳qjFe(}Ïj:nEP-qc,kYI5$ê$mR+O dEbJIphV]"mq9@Ug@,@IL#`ي?0( @ sz[ŭ~*¶ ~RE_)V#`K))M-Xq?|ZS pIENDB`PK\cF33img/ic_online_library.pngnu[PNG  IHDRQQIDATx^\K EKbT,yv0hbGQ4AI$3֨HQi;(ł"Hr?oNvkqKxw_f3p-iUo544ROG=Vϊڽ/TZp]}]t ;\1kpQ=5Qo8L ~>KGh]R񀎁Cd'NF.UHA'#gEcY:/zPgchk_J+KGm-_YiŤԝDXmzݶJǹ:U烐wgb"[~e͟P3l 72uFf\ 3 1fg@{j\бXrkmxݺ. ےifTײI'`F~6t3.VULX .T@sfU2LNQ5@NiD:Yھo3|Ua__Rhh-fKE,TJ&|#oR1< $8kECuy<$4rFc7T ɑ[B*6M0+++Q*%6KTlsbXls(O4uc¿.x]P.?}R!hdl$6[%Rf+ X qTײA04wWY$)"ZϡH41?R2Ѩ􋸟at 4ң1pܰig W6܊)$k̤"Lal՞uĤ0>a z]!Oҵ,33ilKqoKJo'#mnϧIfR*6dmt  gpZF;Ī+k]+/=2x~vdTË"oydh,jq>aSeoH2yEs=}mԔAMIdJCF\`W&>_ng!rɁB!2KF~|Btom4 36xdپ(QWM{CPg.r--gn*A2yD<)ک>H`R,&Uhy+W4|ͭ D][R*\qFS?m|͆K^p}a}b1ik 0AeC;i.vPl ) !AےBڢfCȥhO+g!|d_6tq4-Yh!2dT4B.EDW9M` ylN*4 > T4剆We:́E3N ^8!挝5)O4LJ^ˆXR ?LlKCk3*rE{_%)}! ˉ`b[hNPl wn"bu?8!Z'j%r)*hZu]٦F8BWĶ$ 4.FSeC~VTle? % c.9_ ,<+v{tY\_y6\ /kKH^6ļ|Cy-tEk  3b.BbufD]?dXI #$bCeC3#˵lH_pzJVmru.5,:E䵙k,"b"h+12OGɳl(.7VC_Y~Y2EvT[K4"'(3bCeCOm5EӚvpgET4R,&@_ܑ*v|)UClLO4aʾŨERT'좎|C֫DžȼlHiMٻho$IFhX(<@Lzbs\W2\ɾls =i5M1ѰX_Y GSDA/ɯ;B*6,%b%dIHņEJQM^-$eFqy)rRkha!bK/,ŷpx Ÿ !* KV(I BHFCˆj9.gg]2nQjMkh6|(ޕ>O2{Zx3"DdځM 7]"qlHJņ$>o%"ޤBFcŔLtaqL| BsimYPhHpLe`S:J$w!% Vgҗw_\& [Uv2a OԚ%HB b:wDwO%]U˶ mRk3ܤijMs!mThV /cҥ0w?Қ),ڄTlLM  8%ZeTQq ؘr8%oߞ{=my ,^&$ ϏIV4)4VC)0!B*6LPF$.Rh( O+~j]eW l+ݓ 9D+n/5HUϹHjb8HVpf@X&4=ƚL7dqJN+Jf+_, 7J4̆8_;6f!sEkNe_BEk)e0*ԙ YI j46vTafvVɢy*_"pJL gX1?J=+LNq< 'DӜ#OYDQ4̐E"1b[Tlx<` -W˂dhbDQ\YNs4F9Ô]{J. b xڠgX{Ơ0l*ak`T 'wQT(EyKyPzK"N*yh-" \K}(< wLO+j g3ωZ)>L sNduS+ nN?@sL<~N5NG4: Xio]|/k\I~#lYBh1@S7!])Db[$͑dժ wɝAQgD[}Z4`|Ғ-x< EmƣOU>pM4ԟh.=WhNEkr8'gҺݢT)=*ZSAx,2S*0œ;:8)O߬mc3(X]͔CSBQ K{|D8ZOk8+΋1)5J 1WHQ5/p+n;XY[o*&a5 _PAi/Uψ 5LAMpC4os IMpE4LI:Eݡ@LCK#ekԪ 4u< " E!V-wNƳBOew Kv7B++s0pK4܅&g 4 wUdSyH̐~rU <QÇ8eeN~ =y+r5F4b )w\f_ruuy0>q_d).wZ+ʓh<%~ ÓѨ"geÿq%S g/+¢̎lm1>x%ĤOJO5tH]s+7RB I^B'ne&'wsM>nO'C*V}MaS.YNH"~X x_|nw[ݡ0MRs]te(&~ߐrB*&X*B YJ.?ۗQ+Qo8O;FIied.NF.dNDL'(.&2 Bl_ϊ>g۵lO6hhXKa[T3ő4>~8nҥRGD{4OOz/Uԥmpq.!х(,jx1Վ|?+4}ZnPL^h=b1W>1ő,|3{x^W2u3Q8VZ}QjYW%jjdVo #4REp=8Ł/g}F_BYD0MmU3t.v2P;"E?bܺWFUegEbC{3p8g5է4˴J\CE۽^r U&UGtʯ:\#M4uogOZ}Z]8{)z^CxE^olp'VnzxbZ444444444444444444444444444444444444Vs B?IENDB`PK\##img/ic_online.pngnu[PNG  IHDRQQ#gIDATx^ xչjA*[jV$p!ŀUQ-\+"m;jK[= BVAI.ʚmI2?ߜf23Iy$m's޳L@n馛n馛n馛n馛n馛n馛n馛nYTOЭcfuRיCy;Hxz-}okEG-w:'.3}hsѤˌ nQ1):뻿isibm3|~?-S?u7E@ܥ_MR;nl77YK:|2#,.uZZT zixfw^Ý@Su;61ve]'w_ٛ*E0<;Q~Ⱥ~hPw X[VSB^}$T:ߊjv3*=rĵ kܢO'=_r?Σn vs{Ot(u>#w x|`tϐHtH7n ve;ÔG`[u'F@vCTd% /#㦼L.$woyg0=>MIO+&Li4 ?c= h Dz $2k7ݜ T%brGL%Ъɉh j<N&<2mڥMq X¡P_8UiVh=!KxǨOX,hwSm|pV N=KzQPEs"ʡAصiOZbw r!R^| YB,'_~~DpIhx^(*A'M{=p/~\:h@-F#*1=w+hHJ'v頵/i947wCJE|a՗v~\h^!mp&´y{ u\/&bd|L[#Yi"ftL-H7yttмtмڔ-FŇߑ%&֑iJty 47y4hf A:h.6!*s$}}j$ӷ1ʹjV?m3iɛkO0JgIZe"of֓wJhߢ}-[r_t0оz4g{Yo$d}$ɞ:*#ٝ 1II?K$z3#y:keefr֊?0g&',i I'I9 9}״/8o!* Z$O4-#N+H\*J?`$J̤x=)*+ҢWI|q޷EBmԩzQo?Y JW鲏Գuf~L}.[:} (/%ʯ-!?w3\aY~i (LhՈv?&};[qTTTg_j^\&W!Sե3*9ѠpR%1d yWO)5hZnGXA{旖9{|Q))՞@t\}sջKT߾?>y[f*pS 47xH_YyhQO5h ddi4>$yoRn*h?\v鉳% ˥buR>){ί~u?{u3LzeRk+1@6$;+6$^gڼRq=wL^&47x!ՓS,U5Хk%dcž݅KV޺MS`bDJӶ+j$@;ʼ"hGN7*> .s.]'=p}CO3ѡhA+Zx*uv 5Zq-!w&B "hh8`?}}Ȥ 4H\05ޮc}ʊ>LB n4D6&U]dtI k "/]j 9E&Vnj1@FmӀѽGvڼx_$+R|dXe\UИc#k? m4WĦ JӇ+`ovu i]# CA|sEҹː`pk{g|۠-A|ٰ9(5*<ݱV 5JD#FkjsՐ$ﰉ # d!6hG#MFX*[lf>϶'{Q_ʿ?Dtt[ۍ5.* hJ$HfUp8xƮ)iIj|֑w^%Kgyx.: ڎ Kѧ;M$iPJaa苢_DAۼ~͖j TJ]Ib>;iO2{:gaF-ujjޣ3?&ޑp݉3vh*~hЗE_<Ύja`+=T.8QH! :ZNb#65ZAKsb+zξXjfU?JCE3Gp}p?W>2&Lw]^sgACؑZl\-px:ZOR",T!-5-4+ʃ_bfթ Gm'>II<DP@}EuZą)Ѷ&W'F)g45hRl/=N5%wRAq7TZ:"ץ#uHrs8h毆%?FG4( 4 W-k=?R6Ь*<*E.ghγwV |7d&]m]y(PTw[ cǿtEa5fO (4f-H@CdGLn twHC՝ǟh!KY{MI7CDtHO:E h˞g94ր$.IaԆ=Yt5 Nq>YY^g@yuO^:P-j#J^5*Q=Zl~<Hf 4$F5*p헶BūeO8bFF=YSs޲#*hh&^)fzؚ3D<UnKlP|\lZAGftshC!?&?9i. ycؔ5h2xK2t8hZam}ʩ(&L]p˃1βS lͥE3.+?ȆDGh#;qS]ؤ ho2Xs hy#IwI*A* 1-9Pi,SzR ;O;hADekMeq4gdK#2]^]rqHc4d=Q*Q^r!2a>ϛaO ZSɠ1"޲u'ohrPbmH檯: P-W]5Mf@ْ#DɁ<]l|?$ <!.g@+!,r;@0R@z@js0#) g@9&ֶyGOKy4V2:T#"޲N4}Ӛ6MNDŽHu"*(ֈ ʚh,iKikOO;p_?) ړ5}nd (d+AhǥְUNbrV΀&^a#Iέek|aOؤк?Zd@8#[i*cH`f}`,l/%igoASa.z7M% Q=bAZi<+eK΂ƣ xЦ\2WmM|o;e=ѽ3l&ەY˶Gy4w(|U(c$iD5iCh@lɀ5ZoM6xm7rm <*h+{YwqAf V!^ K[.xXp|+hf a\mI*D+۷*̬a_8mHs5ukPr.Z[eH1 rj ;my4`.9Rnm|+|ݿC@6siZ-e͡YלGi}'ȣЮ?"v r3=ĿÑW,MbTm| ; j>rm>3p裑gA0GbY 4m _2Ց-hD4 ExY思W丸 V90m4f<Ж=NnlkќKB|L?XϑS:;mc?!K<%!.}sy@*޸WM+i|oLNm2,ÖhtBĪJ4JGVɫ@. )a?`4m}op?WG ~Ry[ Uc'rhrR\4L]iėIi Lh'Iz*&Ec7;=MA@gkx:C\Gr҈ڼЈߊo3+1b;>ʅȄw}O b,K h48~Ly4g`rUT% fX1/ϸՃpndFL oHbČjՍ Mv{ʁQ|͢XVǠV*ֹ6vn5L{^#INB--ŃPήa &fְib.M-^JV 4D :ڒjshJi$gCJ֊Ec@?2=j. eWhAo6Ț>h-bmf?&0m5,c$[TLk:[Ҭy4ob6:1bwيb*GO3)ojS'SfaWd+tFS{Osͣnxr=oV!M_462 a($* +T>4[‡-aK>|q"xDu!c2̺[o\Bȿ X h4l ^c&NF!Li+`< =P!)![ј҃wcPV~~} ?ZPVq;hN/Gѯ>g &vFC )7 +Ai5hqA>U ,|Sh|-CnJÚRY4Py}iU1Gg$Fĕ=Ct Bfx N1hH"aH*Ex+5yZu'r`㻡_)Nd}pnj \=GZL >MiزzD oq4 Jx^kcfb $\WJMZ@7ZK@`Yp?"?<_&:mn<-]4 ,) U޴Ԩ{styLN}Rخ|0%,4*&,n ;w%>za/Gj}֎3'U(>(]Bvak/ᅢį KqMr^q!>3f֍–?& p$X7-[7ymGrj9$iSι"a pV㆐ӉT*߳&qC訽KggW6eCI1-L#3kI-%T@Hv@I^qO+,HvvwؔcZk!s2jU1uUO3W3ڔL7TSMHMWZǿ.7'JoUčWk2 9A2`UOdɛzR4ӣKzUf4Ӣa+n ZYCb7CJA4 Rg{5% K3+=JTvﴨ?8pVsZ 8:%i'YC\zԡ!!z/vc8Gվ6oo&8Utt[Z%9 U Vl⋱c >g[:+g5Ԡ-Q˲88oOifl({eu,Xa?Unjyɕ;%_$Q0,V0GEf솚yO]3㻒0W!l>'={>xӋ[/z1lK-ɳ,u3;e gRx^4/0]?gQ6.jxg3~K N_[]J:X馛n馛n馛n馛n馛n馛n馛n馛?U㤆>SIENDB`PK\##img/ic_quiz.pngnu[PNG  IHDRQQ"IDATx^ XSWN+uujg=jED0.,jG8u˫Xj]}ou_PPEQd5HXDYE֐$9s$I,p8llllllllN .w4'79o05I;.;e{y!:Ew!_ Bĝ"k!N/#:h}`oO_OvB-Cqy8,{ :c)JIJ 8oeN tk8/? 98~ghZBwpizKή[g.$gй*fkCa׸y~t! pu= " Cp5TWQ, t#.AJ)4i[wo%`jf\6Ag$ǽK[o굮ދ`н sѵnVAi6pvHLWm$EK5UE.j ({̃ (.*Ŵ#&L `;jםиtP-F7|{|:v姷}ΔSꒌ{2 d\5Ѯ}4B}w%1j3\ȅ#sϢ|o)8_ –Cn%QKTj87Zs;pړ9JDNT p0W;ua̓_@fHuWЭos2j%|~j8ǃk fZp{46*Y?PqY'4Cdʃ!+)^2 _@%U4Zp4S~^@ˆmlx0X Jc.H*A=N->GTG^b#ғiY=Z]LjSA2C%ZEÌAy'l .Rvc ХjǼ|o-ze7Otpiv44%+Z~EFo8RͽA1c>$x4&Z%a*XtWbVߗ/Z5~8"`&4/*Qo&\jihVK ̋rFhT4߫ܗ 2ؓ*ERL#V\] I J-qF%D0z ']*CLQЕ wTskw mM4=Α _י47{ 4^ox:4lj2(>.>q j?JV^:g1)/bH[瘠 jtp=E4.6#I 0 F.Q}.-֦]W̵^0)ڊ(N'9^P;#fJ.,|0Z]|?~ȍFgҖ>OEj82js*Tk̈(>BXTN׬s4}9Ib}(.SP.]8og4-ڂ{2tAink/FD 8hZwQjwRK r,mhԂј}"tK-׆CqW^\(jS# RoV㴶Iu t=Zm6>>V %06[LXx-Ѥj ,./nj *9i&wܢ}J+RStI'L3>Ue^ԄDV~i 24ZBF.4RU uGJis+ә;anѺQ4ZГt AR9z6 D_IR5R0LiP^A IƐc[_̈́hT?Y=NckݏEIRC}.IKw1B~(#pv]Z25%hLbJJ*A~w*]29E41Wr7XZާ%0\*x }IuEm6b-)z,%ELqy*xm/W~6z KT?IaнM"}R F-ՂPk4߃vme Azg]2|ZzD0"kN6!.I!Te _8dpAw GtONϯ@)>(c.3$~vO@<!,lB%['Ȏ 5SMHk%EÇDܪ'{&m`Z4\U~w[jTJ 5%ʎ ""~Abv%]Q<7e0 T罰trEc mP4qz m@fk ςS` _X ODڗcwjxb8,}%ǚd0-ڈKuI&ST (T"]ISmI#ane*%q;"EvC;Ppg9َהtr$gE'@;<!TטA%IpC:wM#OQ{ {PJSP)9QN[2h5:TӆT|IF%fghﶓnٕz9`R/R.VGXKiC T3r5<CL ?dŧP~Ug W wJ[z_P;RO1@ŭ026L6"Gu?'tPzB}F2sD2IpPR O z6M8CWoO|mk}mbH-eH@I>xK2\!cQUxԣu )/{MEË9Rܻ .pg9Ri/53`p=l$26;#,Rd~Ұ2RsAcq/J(IӚـ|jMvDQEfI&7n4-6N2]k2dkCiR՜Z:$ͥ%GU;tg ^,9ҫNpBlS㑸6ǑcOm2Ƕ Nha>_RFDv)N~$&Z8Fs3e1P.Rj\㞤!0xL94T p.aѴ. ң6$lRoTiF{_ ޏ02*5wdˋ/aM ,6O4Y\ -'-["rxlN|̵Uc3]U1)p^N@+*OuRjhy䐢8a14֤ht jPǡ_HCCa`͡ 0. Ƥo1m\)xut!gf?׻{i0M6*ՉT5=MI8imhO@UbORÏBUᡸ:|<4'/oQ:%K ƟTi,R﯎^g/wz-dl2V=F[Kjӓ5W$𷓚=ڧ赴Cd1UL K0n"]3  <7]X{6\CqQRnmְ9^z~̹Ubȍ Խ3FsK<ӓkKآh#na9FJ| 74-ywAj = p'a_3䵸h(nW}{nn<62h$z?))*BUXER)Sc0!WꖣkoJq ]ɨKIAPrACDu'5 /wͷ7KH(DxڠP_/o:K\x8_$%5hE;Cp|lA4(3@WԞ^٘mp겾d66h3lA|%m:()!!dL|^;a K4=RP6&DL/C&x8c7d H2KZlL-a-wo 7d xr󫁟Ve4BAz{ϣ(A7c90)ѼRX;xnސEKk_Py|,%p7FJ#qH$葦%0!+e?Zsw-]s@#P wJNtm2&g3*dxLƘhxi7JK]n,`T֮͘]8D`hRsc.٘9vguQY;[h}X sƜh8ꮭI{8y*Sy$mq%UjMŤ6@+1a{Lf{Ѣ 0,Zbzkpˆ3DbMzD4MO/ g2 ǔhVuR{3.Z~mŷ2hPxO*)aJ- 5U2-8M9eEAx%Dä'84rM."3GY&=QB<.6^$)MKyX !%3hEg{me7Kj yMnk/[_zEdQlb陼VDý82KmNީwV4swIJ e7ZJz6+yE&w u%snܧ ֈEJR%#snМRE5$P1hMT,*|`8hܢjRԉhԉAԣRܥ)IB~ctsaD\J̅ŴAXc Zns \YR4|K^d.v9E=Id w@% b !%EJْN߲|eN钵\HD`hҚwbl "x6,$l}f) 2{`SdhRsmx}]:&%Ѣ-j-Ry$nBaqۥhޜ_B),!Ȍm*ԹB&צmÐhr-ygnr K晼 uWk4ݸfIG֫:XzpXLan4XqٶϞ+M4ےcgߨg,mT*W93Ngۛhx )&Hfnpi晲iNJoMnfa$0W}*Ed.m;p6,Db7>qQ <K&Q(_ 9*)4"|]RbPir ^m_iluKEӀg<9f敲% dԃ\cwۍf6D@䘑 ""ȂAsoBhƂ<-Cf Fĭo2CRH$X)#_&1"RUCf&v6iz;}S b <0+ڨn/M&Uv?Duz{Lf)fh#3wV ]2ӚMsDasKt1E&E v \y%FVV\R1-Z7`ٞEjD`md㴦S% ϴhIis{j-F3ިLf!MQ3 Z{ߝu䰒5m/_ QV0-^m)X'-6I>X- M4y'ʆh9;!]hhS$õV<Ց;=d3Σ#~ LE- `Tɴ ɑ/\ad,^&Kb!2)M|[\=.a{fsRN.yå4HLMKTbըY$Yv~>_ulUip^7UI`+@RFI]PbdiAEl&Z2^V/* j2E&yplm~0?UT'Oɒ O\GK+ŵK-Zg2<%SA^ ^?F&^T$rݻ8ؘuwn~QâᓯɄXJ &m#||9:1O4:PWPj獻DlV0[ GG/?&ڞ9(pȄP/RWXÿ>&&`+$N!>)kӸ%r?-Ɲ1`þ]RR;)cr J% EV2%QV$Iur3ɚ<[jіvK(VT&ۍ؄U/SzZHaC9Ϻ*+@VxaQ7"rz$=bKqɒ.*%|\2L չ/*7BDMq 9EQ 9WԾX&LO J>Em?ǨblllllllNҪIENDB`PK\jLimg/icArrowUp.pngnu[PNG  IHDR5Y ^tEXtSoftwareAdobe ImageReadyqe<&iTXtXML:com.adobe.xmp  aIDATxbLKKc@@wX$A> Ć@$Ȅ Xq#F\A= #):5 f9@ RĬXz l3 IENDB`PK\*}44img/ic_global_network.pngnu[PNG  IHDRQQ4IDATx^\T׶1ɽ}$7[L!HkbcbQ (Vl4Ƃ"ދ L9SΙ:ɬ)U^{iMkZӚִ5iMkZӚִ5iMkZӚִ5iMkZ~ox4Y4)qɥl:FӋu^kZS^_6:aϦF,QQ˥8戁|m(:^[^{k_tuDZӚREK'&(1l(L\9䘋Rsy=fddy5?0: )\EWcE`#mxN4E舚ΦT95;7wW[f&EBv]L.p N4ΣUl࢜ZnS6ǵ>^l&^ Z/n}X-\ #u.j$VN-| m۝ΐy7|Q _Pk<3 vvLF}9gx-Sl4194X) 5j @Avh X~7Oa8=Ń뿦]g7&#?@^g)~Ԩ|}j5LPxb\Rht'NW v̄w}C寫J= ۂ=dԫ0o;- / Hؐ_.6p 13s;i+l:q^5/1 )OQ<Is2FsaX Mw6Pjq "{{[煆`R- 7 WȨ7d :(XhgZMK#oB9Ѓ%Roxov0yؙZhhBeѰBcD"C tյzo~3?$z;^%UdZ8*Ѱ;B7C-){2T 4NW:$Ո* qދ"tF(QCA`VI&T>`E~Tw]u[ :ؐQӵ4fRvP ޶b#)f̯!9 5#9$?05#p -pg},tt17̏ ڴHv>2Ț@p+ah)(YQ-ꀦ &^Abvqڐef蝿&RS.&?[ ӈA&VAkp@4iY$*2l}w;nr#h~5?G/U9ثT !0 uhZ=q%XGU,[LA[G@y?j ?XOӌ,Hk4_Y8 zF n{T&5 m677ד=[HBE-S53Coׂlzk72WX\ Ydʿ jU|m]5Ԛr?o4/i{N> 5;8a{t-aɆQ%YuB2~)Y9Rb()y/U36L0G#VT9{=~;)\fWqDR No>OAeh= BEܒCuKZVYAo+ WPg2io[)!\/'@H p,Ss<[фlq)K9ne;tLM"}|F:YH<4HVh>#%d;@Tsd+Nڪjhx5 )hBC?^aP&OczӼsڝ!`9a{J0 c,aD%: sl9k3m&~v 2C,-0@Zy-m^ ! +=!H%i3^ Bhm 4Zxϊ>N='Y7s@M\{D c>m1n!Ʉ=c3qaB"|qIu/7}z?O uSo6v Mv2N%B .\\)UDk tḂ e $^hI`H2 (/]iD0yAdGmBKs%0Wex68!Ɠxqہ&q`t%j P^PZ PRS $SrKIn#UaDo.lh Z,ϼg5䢑`$[;w&W^ȸc;[ u~ok^QOFX 7 0Éed]h9ZBӱ$l>60\8.8Ik}aFy1 cԟ@졜krX2X vIak[>}lrb,HH> CeM<Gzb#Zfcc Q{IToM޳Ih`SWjr XFʵcd4A/o\Ux z9yܾRx'k6k102f?k6n/7ډl= v́+P֟0r76=Ҝm\ANk=0Ul5 1;Q}_TfQt pmPDѲ3`2v¡g eh1%kWUUW0H@rΩr!KeRPW~/ɹ%蹍\cԵb[ Z1ά2P (Vlyv‘^esO'L@M}?IG~ߔbăzlM>#A4y04C(pNS &@D˧8LD` QyHR*N`E*jЫڕ>uw3Ywy&o.=x4CGڮ(W8p*$oxrM ]PM}up!9 NA}tFҙBtOy3?Eo֏i , hwd,bÜk^-l8mj^mrڑt A\]@.Pyl']˃S)hۂģr@nί_Bk&.欅48Mdsn81W#$P?gt="=iΧٶT|넸MtneģM7.AnT~G8 A{hXN2H€hһk1=W:~и)GU>JA+s*\0FQGf$+ `@!+ N?HIR/9E(RvS]} P] ~mU*-/ _倆s3%2а\~w](.h8&]ʶ+uft~>CM|m'SQ=49m"PqAC5M-O"Ok&-;)$TT/ۤADb̓ h*y/le"9 :/[m( l`yTMH= Ɛ!-H//[ڣ5B-!CҠP9́&WB$hÃ^wB`(#I p`No-q0djċ#ފtLzTmy&d-[t\8̆i)䬃]1lX{ hR w+hJ'BWl--Y8@{:l"RwJ2gJ+9y4t~$tR"!Ud@S m|:1t&,6 d^24Ɂ]nW6˃K= C}0Z.XI؀- @>=@Ņãe`}'/<ZdJ|{,z~AA\$uAS6A㹰J+N4+i10'cNo\dOVhE_㯴Dݲ0aɹ`(Iө!Ҫ33> K_1 `˂|L CcdXyrv[ѫfTCm$ޟ(J"'a#|\(O %%9ɒx9w9)z6z>Vp1[\?{@7h/|r cTΫ&-0܌јm &.$tzGo$WՄle=k#p=\RA!> !܄y>̃#gp#R `3$yK / T.])lpp# ?Ӧ=jw/nh+\FYlcTE?'XN==LMioZ~ O*Z+Shu%ݛĤ(J TƁfU/oaWА\*% .=U3l2R>QX7b_ax,}«{.Gl1_-nfT&=wawlt&gU{5Zp](`tY ŷ%$:pk3vuB|$tE60='0uwQyg":== (P$-Wm D hDFUCTVH@PTYuPU)&Fy l"d2zTڔe0c| h4@O56ʵdQ?<b/0fK>d-C2g`B-ХA)?z.*&Z@}P͠&? U ! KKBQ8Lʦ!y COğ`mߡr< Y:"ޭdG1πﲁ`q _&it31Axs$4od7D2xH|`SC=!K#RG6WAe2).)$[,y tKu!9[,ZAUqG@S5y\-[c&_ ޛ"caneqNR[3rYnM$7kՅRȊp( Fn +лl }-1,xl(tv {{%7 S0GxN<JΦS&^EiJ,wIz˛ev-=b,<["OS*:K^oVB빖rM#!Ԃ2!t#_Y$7`X|mu! boH{Q/(OO]%*k?i<(N KG`f8uI쟡V{OIakl}K?j I>qSMQz0Ӹ`q%szv!t5~=# gM ?\9zK`Ϯ^<2e߳dDoP}EFiԪ{THvI"UZ_6D3`LWfkCI$I| %0F_By*6T) m~ zRX+&ZٓۖSlTi*ORG3зVdCJ|2FLriD)^/ Y̛l$R`ǠnDYtNnBH# E6b:HЊ S}n1@~#X*4lVְHSkҿ^`äZQsWu&TiZHTWjfYztzBZЙM5wh-+^<%&-̺SlMRn)o+v. rTFii:= O#3.bvg6T݊髳QJN~R }먥JH%wIb_ FP&ƀ`6߯-ŞqXEx!cPj`.,*@|NYBi].8JMРظ!!x ~}7֙} *& R)p-ө>v@͙`\["Q =xOLِ1S> 炣P姫4d*Іs%,?['aGcT!55>pHaE{- s`_%l p= R{<ڟZKw-L:4C[ z;Zx߸Ӌ)J>Ј@)D-] 2+.$x3ryZuh$-j5ܭӝ~C%4Lځ_ԇ0cɺ6x0оSkضc@| SkHЍЭ-&o:Th20vM.N46y;M.hDtdMh$orm^ZdSkB_3ZP&mFʵ:ϋ) y4HT☹Շ & 4޳ @Wk|]ڠ1VOkm\lMk1tjY`}llfm£4 /qk]=ǭm;Ț4@ڥr amezGF¬eUxv*hroКGm9ږWhGR 9-]vkL=wL6P{7%?J\9}R1h5ڟغhJ/8Pu]H E~F*{Ce֕mTD3Ԇ`<y5uhʕZm !/Ľl/d`;\x4&uG{]+s¥KPؾ/ixJkWYHr2Skꨕ`Ԛp< ;vΧ_*-SƅGiZ7h sD鑋+9ϓ݋Fw; 9>~_qΆLuZ:_u:(<6Aհ޿fQ\@$?9D|uW.w{٥h&Nԁ+̠ &Tߞ+8g^Ej.M)xHYA#M }eYB0SRR9q1G.{uo[dv-hOyy!#ge&• 'BQUpXt_GNחK3y'Qv=a?vRRX~5[ 'ۣ%@r!CU0GSiZqCVX ]Օa6!M:@8pbV dlliZh T$] ڷSHi>Q__(JFDTW srTGπ<)e\h"uA~lG[riD3QPqA+OKslFuZj=} "O얟֘ڍ M[6hF[3u{P'J6L3Wսh]/VnN>SC6woȇM~c}Cd#%?@ ZשMTV]ڠamqލ "YD ([.zxzp[ 3JMudސ׈r5W.;K- XL+AA^xfk5K Vp[2 -sEv^LiKH?3gvhXβUH1/<\ \#Zn yOj}jޝ.ݑ% wRat,U1dOؕZLsN"ޞӺ4Ԑ'_1\鏟"5Obx߶ /% /.׶{ZIIwd^jFM0ؐM!CAR'a,w3Ш]'>G#\VظZ,OX>ma'04KrOE5hBXS({$A%%%}(u.YNnӱ:'gI~.PPKIqnpAɐr{6p+gh*`w,|AAu(sDV%ܧ¼{ Tܼ $ʟ "hǢ+pQOJߪl{ܝ![q(z60UecŜ]~ jneI%9uHҹl䅭BBx+\}X:#/׫Am}:Sǝ%8a Ocl?QJUӚ"먖l6\2 al_iNdx<@4~#{i) V#f9+1vTMaiبU}C2 6㜘h͗eNs!sHmCQk5qak\ 4)O*V~KPJ\ x*`wzefp1l x PjaR{7h@{d(;d0{{%{}7ՠ kϹ89s_8݄, krPAMMֶ*? 73Xps:Щj4RmܻX^eՠ v{!% 6snZ.^|w[QFq*dsXqB/wcnl)CKKk%+RZt3c,{ѻOthx&Ǩ9J. /d;a?2_ TM%\%eQ9M CN>i^Txg+Rir.N4 _ 0!M 0 0 *P5!+{0.L$/%{VK)xC%K_?fFmkR֙}"!y$ZU0+TF'LC# 8M%G#`74@tؠ튀rFo#4TYΰxN܋pGSalx<Z=d" V<:&a-6h%כO@|j?\zAFٚy\q<`Xt.=É s<8Z V׳aM$܏_u 5Ɂ]}u1{{uī5w&h_WhJ/6~u*{z9_ 2iKMzA#t2L+UX\w@w2G̢&6(4U^P:_N=@'{=9.K{ԕ@֛TZ/=wg[ڼVґuhس~PZu N5f,,]O(ACRs/*:Y%ܿF:=ayWZbZɗY+дE ZqY WHbRDjyR3~+-$'lp4Ug,-*,AC(G/xq9f}ܮi II6d4յ:AFφu‗:RŜ)BHsJGnᛴ6qs=`(*F5k$u>4VM nnH- jN> VjKt'$f !CqJCyUl"a/ҋ۰{ PTcO_˙hg8a*2aAzvp %.2=L5*a\vHX0ByPګk3w}ցfg9䯩~߯U5|wB|Pّ5֥{F_z62SrOx]{,hNF< J:h.y=Td6H 1颩vnO^mh!mAAo ;8bSE0[*Sf!TG`鹡Cb6!C}Fxpɹ)T칻֔Q T%<2 r BO3c0l i+\K1'pb ;5 0&㼦"\W3<5?0di>mQkfbtYEx2 '5 C3oƀV[ O{ þNUjǘ !!S? 7ޑ `*sb+5 zz^NxX^~0O1?yiC62[HkSO :ExkeI`PtM}Ĵa-l`VLrԧef s .7 )SK?= +]ڲ?"Q| xD3H&AFAK̢YZ%gU,H,k_;-XZӚִ5iMkZӚִ5iMkZӚִ5iMkZӚִ5iMlIENDB`PK\M0img/icArrowDown.pngnu[PNG  IHDR5Y ^tEXtSoftwareAdobe ImageReadyqe<&iTXtXML:com.adobe.xmp ![IDATxbLKKɀlgE@oH Eto$A IIH=ׁ*π )9#; bbIENDB`PK\.][![!img/ic_desk.pngnu[PNG  IHDRQQ!"IDATx^XSǃ{U+Ip8VZwъ$DZmuU@jmIWq`{ (;}}O$>籅uyÆ 6lذaÆ 6lذaÆ 6lذaÆ 6ljmdIhdIоi&[ګS& FۨGn uYh\$H@&Py/4}6lpޒN9RWHC"|Zr"mӎ6< QP%D E!qH|huaSӠAƨ,D >U)LM?+؃sk>.l9 +lyw~^.t,l^u \J5NJfԝ;Ԃ^λ} W(/|i5͛F ǶAw o&x"=RFl Eq̈́$ >"+(3+fH[nHeD;:۪B8-[Ӭu@'Cy1\(9ʥh&{DSb5FC2]KC4Tɗ_`E3wu\wyRW|sUZ.YE,OuJ.6-c=ns{|hRðaȯE0bU$ `J"/XLKn0TĜa_ڬ7+$5l\sxo'J {IF]o  d>J,DmA&?gܷD}2Z*6]"Cͦ uN.AghJ2Js|>W%0G\yH ) nqই9yI.HZ,Fі49fOUkZ1V!MZqV %D$HJf5DC7gEۮmߜ1r!`j\ے}myp V~GɹB5X ?_F5i0RepTHe[n4j4̶;UiowT_:yļdξam[vzD3FâU|.M|ɡ7cÔQaac3^"Q8*Py1<<^*6KqS-hdf${$3^aɒJ&lU;KV6QFD{d׎Z2F˯I-*DhI${I,,gi ZvgEAaT!"ZW'poX$L;ITߋ.v-jܸkXZ(ARYĢ ݘ@ wGw&M+SwCWE1FoMƄvۤg3׺|zKةR)#K );4"CW!MFr F/۽>R'M]Cpj@wƣɊqm, L>+K]_!$-Dht1&ǏǛ,Z;sxu$-$%ۂd<]!g3>PGwwiy*EB TS1Hń$}Sp3LȥM]avfwߟ}t9hdOh믗fd&Ò5biV ƆkEЪJ>`_+=2R倓m-<}|- n:SzRad7>C gJp2%t |K-lN]\ޞ٧K|U ^TRL˃fY+B%a]=&sKHki!^t}GmV©cg_C 0ػ}$b0a JUE9W}vrAy+OƓ?{)?O |m%zO٣'OT'ԙȓAo#Ѷbv+Ѳ^)/ytؐy pj{gsd@#iZQ4l8mm=9-)yXt-΂q#aFp{a){4|/Fȿo&JD>̀SkBN))\SrM&rP31ÇjVh+M˛:k\<<Ͱ=#rp%Am{\qƒa|QAC7z*Hχo{d bx3X4U;wH;Ov<8 ImG?VC]Hm26cXP,-Z[I!F6d?A ΑB~| MpU vx=kkݕr)%i =? P|c/0rNwxBq2U=m< n˄rdCE1*VAKϹ0)pApǞSO8`5 &fJ(GȒ4qԫ3,%S H ɷdv0є.ueSKb FX@]ղ6LicAz3dԪJߎвɢY|ˤdD!M1U:ɄE wwAmyh BA>n-شhʚRıũ@) -L+ѐ s_<)b lX4%q&sl㻉`VF1QY8,t xnR@1ȟl\4ז4u ċNƨ,$w)ZVpJ l>Q#C!7>JAIJl1[_;7cKͧK$rg={RҊ(`H9i/N^c 6.+Q=&RAfiJtVEݞg<_k 5@4{LqV-V Dȝ4hFo4HWHrާ_o 5@4Dk ί GQS#!5%%VP)3NG14jhK;WrlRo6Aù|r'Ŝ9[+OPUZ4',dѵX%H>YjhPtc4;pngx)Z7N?Q OsR#; q4PCD+RxˆΙE{Vo ]̡$SL(Qr[FER1Zc)EI[ v3ȬKO]4cِrKJF,GLƈh2,jC GGL1s` p_ZTps 1>jhnykN6u OU;g  Sg$ܝ;|s$d$ 0@EAbpA^aCdxx-^@ ſmYT`10f{^n>,GͨrSA $A49pzV-!ٮ给C} MF:8y:P;e"=*^>B r RnJ#4wN % Dk9EDr[%9ӐçRǟ @doj5̜SK\ k,!^R^A,|]"-N@lFc^`#VW.UBM4|eB '6 6R; oEw f ,KR.TSD{DUT[ 5~L~'>Jqytl/>3uuʸ|l ;q:JњJv?P`; Rmh]Lb%e Pٻv$ D;eNѰz}&"~V 9BV1 ۠U~fիme2 ,ڪ Ԕ)ໞtW3K?oиt>H*sez[Nl(*vR]R Ŀ鴀h˵|S.}h_|3`@ F(:HIJQ~8:ډ*ÓՕ\7vcsц%D{hN^([ hcUa׿;^<w^FBW1y_ >߉w T[;Lh=aƳfr5j<-?RjfwX褅ę0H{ߓ>Lwf":+ g&rdìe? =!Œ^=I#-Q]φFZ 5F E9ks;fNpko-bEh4`r.:t]|жT pp>HE毉4pJ-,uhG$2C'lWJDNVLs\ 6U1!HC(Ó>GáH-q%:{&E'蹈ڎw_&UJ>.&fQ+J FT̀M\aQ<9[_nR]A 4lx )Z8Kg)*F*rdWwqx!AhOh%Sgj;mƫ>*ZT: N|uuZÑ*vRޫޞ.• "Zzr̢=$ h}TU4{LQAXc=̴b75g=`\˔B5VRz)-J =;^;Ndd~|lsv;oC.~3ƝꜦ&D֛m Kg9>Ya^ s3h1ڦ6{/;ٌ?`5p9O7$Y C"hK:W ^ű78f^M9CIIJ7TO{nPՆg_D8IueShL;*"h=L{TySd[+uBGïn{/ XB1;[ K}ސ*G}$\ɇV#̈́geH6dJm.8o ?#mMgP 2qм~e]K4Ts9qYP볢Zit~!(2$0Lb>#Svǘv?i3mBi|c{ A1NC6B +ˌ+ʱYEj3|J.5\{.}C6A϶C1Xt;GpHU˹EXyL=mW۶D0ʢ.Ƃ{eb7=gUСJJBj6"Nspd9[=<޴ܙҲӗV<,}L'hL]YPgCN PmuR})ut/$ fvR?@^5h 33ZR|V}jc:xݾ L1 ?ݎlNѕ| fŕpbɇӗ_™+ŗxAT R2!n17_{ek\&xʡd\ۅN6( E=f^;s;nH3L\r,`q=k M|Ӥr4ljYTLɢaYR*&   ssJA2ٷ mNVDCDN>ֿ$44 "bɢ+BⓘM PٱM ;6󯳯O4 >5|ufbmZT4ahDͧq ˆ\x NF)bd>0!ywmXR4>ٷ Ha VUD;pO 7?KEbIxnsqWO ڣm!]`Ez-)sp'&IkW9PV4Kcwsc6h MDaϞo&&PV4-Nޟ,[ݢ0+{o \J@iwJ!D2)g) 2,M掝ˤ|(ifESWz>>>>>>>8G~kxj/۾vþ1<6tsВտ^ g/}\gJhuEt^ u}Bg?0=qΊv>iIW'C7h: ZTI j 橎׵Yh߃at<9ijSrӞ e~LPx[(LAƞT Zޓ'TDaLn!_yt[nc8سF 2݇ x9tۺ z|~F3'C78lֶ\֩Я[>I7O R}ݖצ ~.ޅ>^' S>\ br }BxB\0t[zL%2n!s\>z pno1Yͬ3tN,|gwڴ,V{ <X[g@;X/4,_ zQz}|tΞXW\JI3F=|#.d{.C7(齨8!RIi `KRUKhhKΘ AcEK8Ked}H{ތhC/[OL8W mTs]IKogHD]Lf#Xr4㫫yTYЮ]U5`L$%e,l inCpD!t%ϺoAj{Nq k_Ro7oz4HyCJz]g+3nO 'rp`ey&L>J.%L=6tn+D8l~%sRi$c3jK0T{\cm%agp֡_"h!V&=1//>/^F}7vyIUmf1`϶ ۥ)h}c"ڇ϶JAѰD5ny8=l=[o{QO32~c ~g|#tc'6sWߗ%h*|B M-A%1 p6/xlMUD[J8ѝD‹ VjV{RyXxњHHWxњ@H5!ZsD625!4ful)ؕ2$^%a28yM % i$bPZɢ޷krE@ɯ"{(2o8hȟh'k!/؅ Li:o-IW+: IaB,ѪMRVOZ$4^44shF$cO}EEs hF$eO}E:=I<ͧ*hP\ P2 Sg.O:LuMݺدAWc?Zhgx+.]'K_7JWCCf2&d)ɲu* M_ A{7;yIKX粊rHyAEr nCͭm.#'h{xMzmWO?^R34lJHD g.O?><,HX2UPRNMoTTS_ypG8? SAT^M@E|ЋX8GعTzHT#|`[Gw-%q ̱.k{aadEiJѭԹ/ ?IhhW T..u$5Dq4n9BO06 T T0,?(Zp]'B^JPwoD)ַ͸ F(xLU5 I!Rphl}]nomiLEHEXH u991,p=D+*2BYE=r;.9Ѭ7VD3ȶi ~ c}am )R>s1}O Ri%mq#EӡiY4i!%B`ҳu1F K_BI5H(2!} f+)$ 's'uwHI{Vڌ3+Ep#e<CCNxP_Q59 ɛz tb0'"Q63l-wcі(4~Μ@ׅ֭AKcUJ{V Ѱd \uqS`m|_Z3'a`4~"+- 2#|dƱ E[ĶIίDOwb'5l`ws]Q3v@ם#hKTТ ? {tx[]1XT4ǩj'tϗs ɐD~K{CkƽW `д=fd 78{@!i/9&UDŽw xr_2\xYP˒˶s4EbQTM:f`OѮy>U鲵߁kWW#ÒJD:ӆ4,bz !rN67NEJs;  gWGH=hfVicM%`JZ"D`(]ctL%9ܴmfTL7h{?d=2>P{RB &ASen@ԥ &٘2%1><MT26ij38ƽ7wiR(ѐۖwr2N!3R{_ߡ&Q 64Z2,Jx٪BC}DS@Eܧ&ݕ\l 8Mts;MN$CuƊl鮗 FL0q8}hHP i^KbjVkMc$+[P4m?F\Y ܤL+p"Zdx Aav޾vZh0Rr>8@ϖA$3bhA!:T[ ]~ R.z`85Ik:a:'!ꆙl`M1 );;:SQBE%C6"3b+*הcBgwUøuh${ȆZ8[3zD[ܓ>NS# ITװ@ю}T2&E0R(+Yl5 egvĚh2׾'`_z*}p폮le*ڎGN:S@XQNJe?sԌh K *JGbIxYC D[% =0W 8D4,Ѿ{̰\uO'P$b|loE8ɖF=k k=q_8CKPg"d[G2r6'g")RecI%aW+)t0~f~y$bAcKylDæQPԵ3lxd9*oT2NK-O'M)[nn*\D[]=οg_ҋTQᲰ'JV: 2MXaY:['_:A_6[3^p]PfЋbh@kA^D}\wmz4PGMͩro) .*E9M6[]P^VN$lGLe;כ ޠgqay"6U  (T xnj'rܝM 1XV&KKID0IAٞ6#sd @MIvW6N`K4i?go4W4=ޓdm ([X ɆI,~P#9wS&H7y@ "4!{h@ 崌X$eu*/p[d9HfH٬$֍&DUPks4 тF4iY ~'#CoTX^R$۳D]%3$bM4ƢK'>S4lHl=DDu$@CfZv?~0YLG`PnbkX-L%3CLߓ$>P ( vQLO{Uݸ dKd tl F-52jh0R;]}hH#e3#91Tgz^a7 sh*D S)?cd}ECPset96ҵP-F0.-˼aEn%EI^t]R\f78R4l$8}Ny}t-ő/Fj%qIfvTX)+DW5nWmuiէpdφz d@Ko[Dtxfx̊\:nUyhٰaF/#iO4 -64 hdDR3nSw {.LHfX5:w³fkYDѰ $7ږ ;deu I(,WkFgYQl#ISk:oM oJ8ѴQ@ءhrќ PEUPF:r"{$R\"f͆'yl[HV$[4B4L*lw/Y2>֗ Ht<>]2YhFnMBձ {Uf Z{dxFB9 oN;r¨$G5[JCf͖Gh%A4lxTw,xE"cg"M$P~XstbZ\,[78c1 ʇžhD/m &AMlb`:'-6mժ|V, s%:V6ReOF& Zhb$d(;ejYZhPd¥EiD2m^l5:bR{dk+Y!y:4Ģ,MeF`׉Wk%dz`2攇 mpV.tVo߸1/hDK%[~f:ha3 kO*}:ٹ6I&޶sNϽXMlhyJ( 5gg iM?s7s8-,~7Ax]N"ʦLRfՙ%K4 zIUΝ){;Ē%k']%rgsб=*:67{u_)NdRjѽ-JP9.OOm6ˢd7'KrKZ@x#jU4:ڐ5kx4ӕkUnHpZ 8O~%5sƑMܹsK|vuHunENJj\/m9z2_Ow~"}S=JKXRtǡKF&dOC^SbjbR%ңZX jgW_jiuMQݏiS/c{4ϥ>xWXYN*ʫA3tB`aCiREkLL͞]E{0ׯ_$2ăr d; Uwv+J\*sSEPwLHIĖIR^]{bfv7P-"Uq 5/||||||||a>*~>I IENDB`PK\erimg/document-icon.svgnu[PK\K 3 66img/ic_network.pngnu[PNG  IHDRQQ6GIDATx^XTIqvvmQGA%$$sQA (A\Q1b@E H0AA2tWuۆ{ fG\J[}̟ϕs8۫sv9T/=G*tv;ǀ՘o0oD_Xeb!'5=2y]P$-;A $t((;&eo5:YiW$ViPp x+s/j|.@o6s K J&vыadNg6/H%kn2O1P6(T-9Cê|@ $jCr?wjʜչ,) g%2p;¨dax9vܙm5poa0+43M z_.8,?nn;æ0u|$W6 Z.%P>#֍+aY_XmhAd[AXxMU^`۳g5uS{7Yf]zj+hyykx>53^[lg9)d s: Ċio~- m]?,zߠk O+yM<mjm_nٟ=ȰL($)f0*"/JjP0i ݵ}5kßYf]AS^ӣU^mw-R@Z6z+ؕ_nGq\4 xi` GyL,cHr缦C- &u=\EFA8Z V2\+z(|k52:-#`YWl{(sS/%44@ђ4NW? Xq,vz(9 xF%PsBEJT3Ç5pڔ-v(ƋQBOd򺑗 /wK2:S{W!J$&fvr*p\0BȐ~P}ԉN6ޙ \ Àvp hX58^(2P.V?}GᐊQIɬM^oUk~X*P|SVt)ֻ>\΋ՃFVQ:h̠%jxH+C4{fZ#3~Xtr?[N)nω2 s}n^QXk5Q܊vFldo& ch""j믂; VwҦ!MfMN߫/Vu0IwO0px̒ XBg4dX (Hᐍ hXu(N \J:?y4%teg^e_ QS70JN M`p:@⧮"U6pnmpTڏ vÂf=ꣻzKyeֈulnZ8ŗQS4haqG?vX#Kug4ua)bvmhM^p,)h4O77T:8U9KeA}#m 3M r'ZD};(*޳"h=W!nzwնo,'Ғl]{v!~BIp#)^42TďE!,~d)Jأ2)`2#Y2%0Wm6@+dqkEZHh>Gɻ4A+)4~J %FDp#pZx=he[u`@&>Xe-YT}zȋ} \aNV6ms)N`B ,0 ' h,A A x,?uVYWD[As١|>sAKA0m"2QoƀFJhsϠP &lotJ\yM-r%e?h8kIOP hx doJWpIuփ6$v"il3lrzߩG8͖*<뢻+`[HƆk!uj{J($gFjNm*W*I^vDkAR Z˨l+Cf t ׀>+)Yxb[%A΍w؊U6%K)U 46=wغNEMR5^:6-͖ 4'+^Ya4wY4u1sAA% O{F˦HSA\u: KH'%Oxi{\M5#pj$KpEgUAduDe 0wE^ z4$-!$CS4yp;x\žFtb9*?CEeʇuHkrA2CN_QBg\G pc̀#) 1+^3q׻ dWBƥjF 3/!+yKnE?=w>TP$+ eP._E]kkKAۯ1YtGD Ixv>/w~/;"ت\!=ǝ)Đ޽  R2bUCV* B]cI3.#벝_o:=j HPn`oQ! dgQ]-ތ'p'$@V Eߣ6[軖 Qm)P ے5!ujgjȂhIi믆'#b# n&<d z <~΃3g$/ӖΔ h/ ʶݢgLocݿcm7Zky7^Kv!}͇E U >T"U! /J(=>/]B=8u5_sg6_xfiK&҄~%YP}lb0,e{;PK%&yP^ O_je6T> ŢTkގdRZajF=id/BŚ=t=":0@KV˴9ǘ!SEu"Nۣu2Bfu^M,Uݕyj^Lk€؆kR5R4 y0LXn`jX~k t~c^1'FY.fcQo_k =G D{EXwʐ[inPp\%  nAC@ y*X]Q ƴZ q> JWQ 㺃\I0~0zRg\Y!kU058G"`by\wk`q~&c { yyS%+noH rn =cgJX#c@b@& f O\h[ B ,. 5xf%Uuwlp6ݑ pɫ oiG0쥠vjB9#e`drq9 \/3GЍ„O8$,/xs;ʢfi0= lFZu`f,ˬZ/&"YblH%UoܿC׫S,zko/^0 01\ `0tXn50=&u w{map+z/w%ea]f?R*&b}4R'qAkaegLj[Yƾ)G`^DXYvKTgº3- >kzzsTG{kWn[09 bDMU!dH_.H{gϪ `FF ` -Ix=J Ƅ4g"hQaME-0)5eE·>jlYgs=EQHDXdoNogs.i 8a >V R;.lu Pm!TE|JcRPD* @j0p#=eÖƾ"-mgFއՃ돁 ֏,o Q[|c0YmU91LXb=s aP6;sDx6l=E-0 z_Ũ 2,eX@w6S1-eH3$@=l[NٯE tiLO|G6qusbzr5OE7U1>Sk$|"sCӗRpezV3O *K&pG<a-n0p?MzumSX I*Ғ.y Zek:D2|GV;r @k*6qD @k'bz Fi6u3P6h.4>5{Fr~.x Ǡz``tz6xIXXxF:t $ B&?67-_m{. @k׽f%A담.d<(M"5Ftf-vWǨۡNT#K(zFWS 'CdG'J VeY! - Ok#5`}4]Ol%l ZO7ϡ>j&,>y5olۯ{׃ -bûxP7&Q@{}`ӰWz>ij=zl@$z 3s^@d?B@wn ؟u$uE xW3A^U4 ̹mѧAG$ 9EBY(,yUʂ vFuDxGs YD>4HU#Fs,-S9P Da+ i=Ft%mgyLmPO ke&Ѱf+S7~в 5$sZsv"b$- J8/ćζQm49Pi @KġG=<;N8RSI_vM*ug!X6j0?V*xi Z}:HQ!՗x6%ǖBA$*#r$($S }d{u!efjGIY5ȣ^FEשJc+LG;z_ a=ZQ0E&mr#a]vAkQݸi [Ӹ8pֹ : @kWj)Ѱlm$КuV%#v`,,R׸-TRiВbp=Q(}#z@A&mYV\[ΰkmJHĚ}Ҏj1s$tX'qDdh¡gumH p4y:nWS& £^*>^7*-w_=,1 %+* gHjP%!䱎!z r2șòB@Ѱɪ8GM cxA1Y l8q*4?j v3dt8eq"W3? YmTO]#)Ěh U ܷӍ~a(5Rvkt$ w}{*A頶ںGL ~A^y1 /2E*JzZT_ȫٜl󏽁H;FSpyZ!|PNp<V;&! ` I{lRD>n3s>yT-,̎`m6oTJcc'_\I\{{CYY.>({ yo 52J$ڇQh{zxJ,}x^ Aa1)x ^õ/aO0o585U`[=G~l1а'#9›[!x"r!b@ɹՐW͜Wt8.wAoP@Y#ga}}O1.~ 5{7&oP,V(K b .(q q-?KRz*`jH_mؐxfiզTXەWC/n9E k׳JsL ; ACFa@(譐n ]N 3$_.RO)ذQƸM /{ =:EA0/"1"m`Ɨp#\ A,xq/nAҫ{pkyXx{PL.W OPFxkJ`U, uZFxO@>B}#r_!)`M>\1uWɵ4z9iqL )}ePP{ܕ'xd(H$|_sx5֑YmQSuwܓYP4A> w =|Z7T6XM3a+J<L@|9X{ANNG_xQ<\p;Ad i66/5y0^;L X, -šP?c2-Kw}ݸ'i*Y:;[2 =G@>(cUHޠj |8\lu(jFmSv$p&΄qgݽȀkz*?zmw( o-۱:h$T; 3;;u^SWu;׺~'5EA׿#+ڿYHHǒ/(^7 fBQc(pJ>HGvfܵD3:F&Goi)\ͬpgoL*aUwQ_dJ\{٪)ҖR@<>ẄBB>@ I]0~zա&<xKCrZ%i,㾱>KE8(ct4<6jYo:uV[n]$س,w\SEd:ua=xmwOQF>x9FPGu~Z uyB@diz &?o+:bQc߄ bxzJc9 |:lguR܌0X] a/Cw%Ҁ^UdUux>_Y0)ӗBM~ݮA@ϻ Cw*γ?2XqC`PҥJQ &3}J֍rIZ.TGPkh;f!;=&ABq"!4bB9oGlHkZCE(@#a%FiЉ@>Xu5)^FggTNR!e:puƾ>**.6YM5ൊ'" |H7nYWvx6 wB4&.pu]kfVoMۯ|3l}ݘi1pvBcҟgKW~(XJ҇]D[h8|F΢6 d@K"@F-q4X0h,V@DИJNWUC?ڐR+؟-2PWLԉH0hnN>"Q j[| 3cL&Aás-'t$T/Wmߐ$#EQ^ӯ㖊ID Wpx[tM>1/M8|RZG|Ae.޼Xo%􏮋t )$̆-!{6w#hb&#ޕ/=}9WZAu.9Xr3Y2k5="PHm 밭Ƀm!go2@I^'`=xxrAa5=owh\o{9@/Q ɪ\ɓi ڄT䟖~//}=Y=I!:Єo#|JQ糖o zp2;O~7h}U}M˾k8 &CՈ a9X7ZH%Mx:oVkDGlNeY@[WmZjM6Njt-?Xא,ӄjhCY󐄔8ϹuUthdi4xuY/W£Q̘S^͍VȄSI{hKF赺qAScsg:`aцGHY'9٬V)U3O (j+i wqo>?`:s݁ NkMapٸgܯ1XLГ.\0QC耾EtFWZ& wʃkw[ #m'3 'w0A'L\6q]Aڼ ?5pB)}ݛ[Nt֥l6d&3Lf2d&3Lf2d&3Lf2d&3Lf2l7%IENDB`PK\>_ img/ic_graduation_cap.pngnu[PNG  IHDRQQIDATx^XTWgn6Y+Q UPA Ɔ e&RĆ((EԘDC%-fI$l;`ù3sy{Ë/^xŋ/^xŋ/^xŋ/^xŋפK܉%Δw> ?=ѯ\2uS^pZYTQ]|\ 3v]p6 _ӑԄکt _q&tŠqE%jH P[Bq\QEELAš 3DY _FY^Z&+x%Gb PVSJ5~2qio,~00wtW^ moNJy* p5e t53U\ :|òⷱ6*ަSt@ [7y k!ߟ㎄'/r[%MxZj]~?hԬ"`KPuPs9t!q !\.=`_fjSgB}qWKg챊j8`>| ]Cmnsd_܁oT>0/9?Lֿ\K!1)9Nˏ׋;uOVMbqO!f^i`vFB&kW,HL. <[6dE@RѠa-\uXF1?feG&/4㲉Y = ~#8vV? m5r umJ<;/#S`(f-q Gkl2 "ld<хt3.L( bAB F 6!>sLknS&'aΗc+RHa\0~^'0*x9$D)8:=l܌ Y\]do>>IoܾWbUǰ`BOEF2e Ȼ I%P{ëhש4I-| .;c`p`4lo04 {oL9q+\3:_pj~j ډ* e:2[ ;׭_;A)(oؔ: *W?m %Ձf`;VaQ}{iڗLxl'Im9|-+\< NZ?֬KI^PoPzIs65jUm'3@(@ fJ8D\;ys44CdӡbV ^ɼ'9j,sqlzyz9I+Ma,!p,T(y~f!yߕ∭F y4-wGi~?OmߢyP:SxW5 6D[%kyp2<в6d!M@29Sifg \˞Z4 me gsMFP=Ob?tv̓dC^$Bc5\k:+Lv˥Z-7utzAe2qO9+[0W@?fr54á',"?2,T&f#0[T'`Rc#n hRuZ\&eJfkXvnfk`)vi8Γ]'vzH0MG(X `e京Z;"hhfhKF->{Vl,/nwT8ᨂ o6ai昬q([:jPRӁW;2hhKTq+̽Ne}֊vȲ F$fAkoM en&Bb'<7DH4ŭJ'(B9n$n`,:J_mc5M 4bG%?G*TМt&Mߒxu[@5|L}&,9I:xh2>7|eMhoCFAs  I_h35ZANE 5X^wyv񘃰]x-h9́raصP6 t_RG]i<#k3~ `g7MXK~+r4C 8:jI8p5M{W ||Y|i-mϽ0v|I*AK8YDuֈeR9+0WБ,s\`yn6Ň-V~—kB ,fnKXgx*L]C,G㿙Wq< /zy.ka){ 0n5i׉ >n<^ ̉T3*ИD2S+&U'RxPV@#D[cm][Ӥ0>QɈdxsqs Z푂9JX!@ɁLjݎ2=0S Uh e5O'er&|ICP!{πj(<@3W๹'6N`Cޕ ]54Xyu*b |ZJX[Hɀ5X S*yƓwAW> ؐa}1.ڧo A-RhmK'hjpS5h@$w3_9)|s}t5eOm􀤯Ų51?@UZB:0gͫHhVVSpMA1 !jؔ"??룡?K H_Sh at-Lfx-] N֑gɁZI1l*!( I}t`H2hLC_;Af30\$`HlkJ]4&t5i)Md3I)OVDՂy1K?ɨ/,[m ZG~OEǗKb>4 *L[΄ _6`ਭxv*vX[hTmfDGӫ5^$#Ʌ@ҎZ~*<&x=kħdm~6vՈFǕsДhTi()4pAMi[{򤡷7'EA/tTmz3C$KԬI3+S,?-D\sAKU7c翛S~PD:/C%fV;$gR9~8`9b:/>6o58 g|0\vΪdtolu 0^]~ъhI78:Xŷ8 PV)SB38{P Ȭtp`Bo F챁.E t7~eA< Gi<^Yzv]'y`5]mнis@[w_886,»t9/쫙x8G%,C Y=0<OKm0x,(_Ig?LT6zz_@F/,ِ/8^($hQؘi, eIzv)\JRq\6 d: "E$9PtMZX6ZpƄ=98ݤ:/Zxs1ҟZA]6,mNM&~ o I7<67Io4 tր,nD@[k0.9=%l{ʂSP_y=8 4EЧt9$a3 CnS'! 4g0sMj7{JY(Nݭg"MCajdxA&A>nۓ܆MO^8a &~qXv%܌oå|φfۜ[CZ9ktοIЄCalЈݛ\90u,h7ؒN;fz:ouBhV`r0ppP{ÖqP )] pg52}EX`ѐEuF&v2;X. E285 2=fA6Furj?xs{n" .YǕT{a:Bg@ޣ=!$LgY^njWdXí~!hƷAc6y~}!,ẑKҚ;`LI|4e&AhfՆIV Ae:~=  '40YpI_V{?4`;t{ 5O?NMolЈ/ OzV f&˹ X3fo9\xI B#`Ȋ|1/m*I;pkzV0ee\]s;x5 ,[;E&g.ȌAnћ,ХIz_Mc(z6!#$>֍s5d\gVAs᎜{ LGC\qP7,zK^I͹36񇇫dfdS^>fχ&&_ T2N֍8mOa /dɚD\S`pf?՜l#t7 $I#:7ox9P8gTqgyﷻjT^FTSG >H%JTG{ X:mLMeH(yB;I*~uao/=t bʒC/ɔui`4l1xɛ/ŒC&L55c`0udzI$i'ؕ2fj*LmL3#%`)W`zP7X&t!j# E=c@a^˛W$J!pf! l&e\&m!{~&`Ue^7 ބK"L Aij"p. ^W EQo瑀TcPb^Aм9M<߃@ĸ zZKk#QGGc:lmLx1܄DziGd5y8(agֳF+q:*/3r"c_uGb +>M#d)EY$b:ǀ58KHΥ)!;Jw4/KfBD/^")xPp)ifۢ֓yZg|Sp?+tHQE߅rگ:Mr΍ ' ,z[X縢ӵISPZSE}դv Ҥu1_ f?YҌc4x5489F[x.[f ɾ :/K桹s &Ɔm{&yŋ/^xŋ/^xŋ/^xŋ/^xūy?t`IENDB`PK\=o((img/ic_student.pngnu[PNG  IHDRQQ(IDATx^XSA׿UѶV.Tp=pnqՉRB@""* "KeH~LY}߃f{yo44` 6` 6` 6` 6` 6` 6` 6` 6`CBQ QQ~ ?_R ҽànNxcVw{>&ct8?ȃj4VYuDž0O޳:>f+pِ)r=v˰Ҹy':08v )G&~h>cі?6ߍӤ~W{(zb'Al]ܘλv->=oI[5Fpܶ7NG?s@>3#/Ÿ2L<6|Xlx rMLgBmwGO8)3}o^Jma~c-1pԺ#9,}y!=5HE?1)7ެGݻ2 #sSJA2yũ,OEp^oz`J`)  ݄#Tm~Pي.0t(ڀ} eg ˀʒ`VpY%^s^2C"I#a&"7ާg~E㟂DTr x}M6hGHEga;82Ip!.}!q~P  =7T%jF!_4JP$++[Ei|w'[x=4P!>1%l2k/W6cސqސ(#z$.4!&,S!@6g7&&unv42Qd ;-;BTmB ^G"ICQyX\!ݏ/s/]vXH0摉DބL?ZCebe]B$i(CĒki&^Cw$XasL;RqaC>[9 ߄l & ?֙Jaqؙ9d|¨Rrp ><σ+7mE!4Ct ^)!2AgQ;BE% Uh %D Gf4\~|ᷲ9XNe0)A} Y5mca`i{1UBxD95|Lg WH DK2 PhY)J2H}ͅW\x erI,/q!ܧ}j6)5VP= JfWA|<Wӓ S/-_}Ap{-Xy6'dl1u' Ⱥ.~C xYY|yY"m2E>H%7 |7%DSd1 {:Tl}az4RLD#/]j/{6 _l& 5o',^-ȉaShӟÑ;p+3 'ݞ>BRofʚ%{ &۹&M /Uvt:fsAH:J  IdNO6M/ȎH/$0<B'0t0$w=#2 jhMLfb׃nr@2K٥C&"BلP( ^KS͈sI'en%a?H7|o OJ+, P 8v˒Reib5D> 6ޫe Jhv &:sjY?϶TO ^0\T4sD#~OHG g0Ƿ QFzYђ(YʀW Z;$_2oiaHha8]D;A<]FSYhܬED;lZ\ ʍa 7-E"7/{=“2y+N!Zz6-ֲeDcDHp*6Ga %R]s$D-(8mNȦ$O+Yk.Մ%$&p^ h?rϡK$  D&eŊvJD4RܒDȶɆ3XE OL.]hd'ΝxM$ 퇖7^,Ѡ@{FLtV :w B-;хb\f4ӽDD[3~4q(w `t|a\J~A=&fd2:93&PsoW+o[d Xn舧6Mλ@ kP,:2ʒ(3=ԅTB.&p3h2e4<MIǙuxB !6zN`14[u!% 톮C6S!nfkhE63~ Z $W\[ѥ8KMuYAEd8Lck>.yDK2dSs:qwW @F˼D̰3"b!{6;"@0x xM4cHiçVh-@rFSV(0 x,t/%Y}&%qK*iwu]Ţal vNGuo^si ?6zDOx@ Y86i68AO3L&,Zs%i㚉ef¢%oH,щIμ5D X P OR(q(ʔTp2̇n?yEK)C`Ýp8-2*p/D^5V h0oeI6Xel#"f͉h 04pD}5m]ԯ :l *c>z"ޭ!뎍3xVCiвa٬8RK7pتGA'ՂK/*xPBtѨZVy[uTp3qdH}lk/#JSL *rXP޿Ƹ@kwdB3R2L!WE&"U(Zj)8=&gjdG|YThx##KMEkivȱο`7z' ?W_$09è+=atڋ ٟOA*1(bXȳb Eff&bR4ҭB>w]>BVCB`InGW1ItF:ͻ{E/LFTx$f2~ٙyP(D szϡ20w`-[GUtD͢ A*8j#/]fYʡRUuoR0fo^$ %ܴPx N1\.f09&wd5a"bHOiС^T*Z6O3ʠې{A<Iېh99J,g* 'Re*EO>>! %"^fE|}cłetJAu5,BA~@8〻qN~j( J4,>*S`j{(72RX6eԢ{ړL [du> C*MGG?"$Q݆cDz(ǯTIr<)mY_D&^yVCtJ!hYGxtoGT$^ZOd+Ch$I i wOW,jġNLi <(ӺBY4ј'^ŢKW{keS tn'*C >yDS\Z3M4EOH d@%}5ToPh=G *C & OhWh$U;۴:C(R4%RյR@u4oD G _VBE> Q6&*#ZZf,*_Xw2*X*L|E2DTpE>x+Hk\5&26&0SrFB0M6F0x <")xOm-Be 3d!(u_է93ʼnƗ-ɶAD2 u!] ;oɦ5->re]ZSD}k6J gUy''M " I d٢BԳ_Zg}]shG0h!ځ+lْD!M4#4 _#N񲉆ktO4-{c2D(2 pv}Й2yJCYD#N4-"j>%7ZS $Sh=G׿<E"W.;2Qh*⠿VFQ^yM}h2paxz!8JB627βk2 є@d֥_+FMkLu }j< *0WlaEF3wCbelVy-uᆬK%,)( |€ s +P4r6ѢݹQ)! Q|Q',߁dg J6̆ ZN?ObN4$:D9ƒRm@I{&&hRKT^-=\<^}vGSVXфh"7⷟xEBNcN(%g7"EtATlhk ޙOBSk(^Z~)4!HLr"3k86 w($ǟӉ'tכɉ$/hzZUap#|&Bžs4iR_v]J J4!ɪC4L;nBL6x 0%Óe [c/r30beW6}QyZ.Je7m;tx|#-|g /?Uhao$+47ېB{!8(9>C^8 DCRh{6tJQEpcA*:$ vG\\r'ɲC@9`/O?8}M^\p>DXNlPfːG2·,Nd 0D PH-͘0$zW[4p L> bǣQ`:ݣh!Au hGA_mhEkozMS90ŸCU"9U)B,q}1OwWVi=1515L9VaLCR}*ZMz&@6dH)7Sࣟ3l1 q"7jK$UdJVx|7/ }۪e8%}s*^~?zנּF k >*Wrpvs~)wMhnۗ^>^ mvv]zڝA޹ x7Id} b+ifok%ä7 s2upRhZ"i=@ͥ4(JjĴ`^SOkꩊHW4]c0tY K5 &b*/E)-e ıDe^wM:^ qdæ]-(-/['h(c HSyw ?hV#)OobO5aW jhvV"h=&"a,K6:aVE7O)YW`=B.<3ή;KJX,. #%FG|'M4Ndǔ~\Et~De6dC^6W-'b$.d"0%ihh6tq*;A.,TuAZBO [=< p e+Ǔ 0,98(Qo亮Zv>Ius0?ńe制6,ʂzJ8` s5FlQsPh7¿.,(S4~ehfԷ:hp]؛V6M!Ρ̻x&:{VZeYr;>[0֍;ۉߤv_7㦚ıoƙoB4Wj :)e=HvqlHIV:@S\*Eƭo_eDu詛dbHVGdR7m\W+ ]Fe-YHwê"p]g!S| br/BM542C=z2Q? UqdtjXj ~u%6 l|m6Um6M!z?z>=N@{5Kn%nJv8$+04ݩYpq4^t XKe In7$/!(^ ׁ+&f]}ltXTCe ~؇^Q_Ch6E?Tѯ8"4]F| ,Kh)Nj+髉÷`ґ?OpN!|m~]?Gs E.\}h2>]WU3 Vcޒu͢B+C分%:XYU+}/^W5?Vs68zdTB[i)EqcT#*Vx@&\]7}61[ ,\LR D%(%^dg1~u'ݘgRJAQ`dML2WW&&&u.xl():iP3B~*>7cČǯI>;j|7}PB(zlJ N9ITGAl;/Ky9~֭[-6U47iYuu9Ro]J,-ofM4jv 6k)(jk4XI[&gniq`󎋳u܊wv-Y]ė,)q_;-hqvӿ5ԣ7u46szfFv֬\w 4(EKβ|$K!i?^Ztrڼ|,$|l|\l!xnFPEngܬvܸn6Ӹt쌟kj>,Sfplllllllll!=?_)IENDB`PK\G img/icon_restart_black.pngnu[PNG  IHDR  gAMA a IDATxY$WQc(40$>"J*` "DA\}AcĨPDe FH5F_'7m{T[w=u骮{F @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @v8&@@Y| '@uϖy ,> Po&@`S`(@BM@/ۊ A )[Qv*{: X W|G 4)> PUr MB@UU7e hٯ&Ц(@ D`m׌ TR|* )е(@|Ț@gG @`y׎ tY|N%P(@zT#pY| EwAyψǻ#4 E@_g7ꏯX<^qCĿ"4$iWzck"q8B#@`c)>pI["j|J4Z|6Q3xD^GTbto6KX(?A`%O`S.BYSM|X>E Le!dwC~K~s(B7x; ,Y`E؁\Nc^ݞ k"jwU1_9FwB#>ӈ\]&FhLPvjJ>q"k@"TU7Et-Do-\!P&?f!=m!kB@"5k;m =ݳ#4&(еJu1P~1M5O4&(ХLY1Ɉ6E5b,h[j6EMc<hSX]~KE&o@i+{E}-ȸ #PR\Q~BvKDIOk'hZNҘTDIkHhRH1ItXR^,Bʹ}i^} 0UE rNLڴ} hNX~g>x) d:OMP^F(mj O.hZOD_wGwDc11 ݂9sh&pvtoDӰ?W@X 86F$lD;R~^S :4iz8^0e}uH@4 zYA; (@l|%=MmST.Mj*5`?h@lSU()@>; Lg^xO#_%$(u_ߒ9b-soꔦlSrjk%U1U)@ܩ%5݃%MԯV0}ֵ$ӹ96hD[גKL4|q;|KL* Gh idMc܃4Zʚ\ ͢eM}RSՒ~V+ ΥkI%sD xwuK[߾*ɹIJ]W$Rkz_I8wY97IKBۢӃ읅cO{% 5Z|:iz}pJ9fM]P#@scZoϽe%&i RXlU2Ǧi AضaoXF@cۻ#xwF9ޘ9enM,4: |"ozeoGt9F@'% e̥UiT\Srf߫*}dyF@EX"J{*arCIiVV^s}řbbO,ךk.3mt}BR"H$?_3\cIh,?~u>זkl[h $𵘧́|%d\Km>i 0@Q"ywr mN?P:(<g18w9rZdΙF "OZE<"9x^Df_د8 0B"JY;^#|YM|"^X[_搹*C%1h~TA>3 <2Fl+ךkεk@iÏ"6;טk#VxrM6qf9w!ע @E!bwE9WΙsk p#ws/S#Q䵝"TdFE%UF]OwG;X<&B#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @v/3 IENDB`PK\wFFimg/bg_frame.jpgnu[ExifMM*; JiT >ServerMts4646 2021:12:17 13:30:532021:12:17 13:30:53ServerMts http://ns.adobe.com/xap/1.0/ 2021-12-17T13:30:53.464ServerMts C   '!%"."%()+,+ /3/*2'*+*C  ***************************************************iI" ?@PK\5 AAimg/ic_video_tutorials.pngnu[PNG  IHDRQQIDATx^ \ǗC㑤jĤyִ1TjHTjHDxExx"c51*W/9eog`}]p~f>|Ç>|Ç>|Ç>|0!'',8Asvس\Imq5_n`M[|1g8aw}H %f6 O[b`[_荑1GY&Occ3k|k]V'VO0f^ z}alWz90 ٞt hXt! aT?s8 @;.B8б [^ri Gw?Jp [OPMH6viDžyV;ӽHц9sŠרհ]PRCYx¸O ^&y pHn:64畏fۿ/6qBER )?4A AE!fx;Z;5dy9mJM Rx3U$A6=kklЂ#ok7 a}\Hj'723.8Yu1dQ h2t|_CP~;|S"K@HN6x|&maӮ_ybhfkhɜii$ڀ$KRAbCH83Q0&q4wǑTMH,F@:mj5%I$YHA Jil'W4j5<}BmˎS|tf5jޑHodתkWd  &ˆ-D! SҠ]--v,c \<|4ch|0kѤdip~Ex- Fi;/%bh  BDR u:e{/bDGĭ%/# ګ\In vȋf,40_@WϔP )ka 676OF9d "P/ych&5c0- )!/FKr ^4UѨN!^4aEER.'h"bL*GJEF˥rvMW_-|ml4/ g `q]3R&]+ڸBՇ6L D_>(|;'Mܪ0 %Ǐbx)&YO9,Kh}U^Ѳs}<ϏsfW(c!,%ڢ)4 _23V3D4kRj$t'`(y˸~oBIwvcU4Dhd>*uH6cۃ A' `lV. پ0F4 %[l{`gs<7i]L{ )D s|t$ۢfےG郱uҡZ}UI=p2Tährs2 f:!i%(1Kl}#rt^rZ5;RVG>0)ڥjvK0gET7(iEÕKA?Zj5f&E4),1j:hExEq%A('3f&EKxj mBb$1&D[*2d\BRwr7 zUO QDM'qeS=$˕Syuw4yC`ZzzrD+e,[NuޝLW~0%:a]G m&!A&E+1m$$̉yߒ̉,92?Qk`R*^f?:e,3e$ 2邺={:\,BJƴh|Uy{{=g-ˠtpXpP/@кG< ➂5+blUƟȂf5+rG'(;k ƈ&P+xWo-_9$J4ԚG1-n>.5Ρ|ݥ cD+>MIu6 `\ s#~ 0ޑdTf+ޑLm1X(_LI'"FkBxENAy=ENEB \fFXx!alP." ,:"ꟵFav-ыeԟ7%ighjbec[4VhnFwŴ+ɝ4fDR@$CUi[S!軌TmK_ )pfNؼ\3YEAQhw5J/тtBXK..i\RQɝ3ˊUhmж% ޣIM4ȭSAA}#~*Sжa\WYL  m)S`B4 Tp2tٴ4\ /y_6^矨h0&Fl'^4P=o5m9qz.vrL1ѐdIt4X4BnkyG7 |KH3f" KAܟ&X_wgV5vhNrg kqA4g8U3F9rL좕MQ hb\}_uH kN*@{WDCp *nk1ƬY!Gt U v^qShxߘy4}57[Np^4$u\} OX0+aZOh~VY&`*6^QM8!P:MXoިhq6 ^df!0(D:4HuWDu6Een[[HwN14Cs aE6.$PXM6zE6(_C(t]5I)kJHQRRVE5Z{5Z.L XNf*lGefͅQ 5 Nami+laxϣ}t`)cĕE \CS? wTh*ȬCP,Seqp:ɆBI>@XNn7L Ѫ$ Xzs={'G1'o?- G+)gDcͻ7h~qm䎙@ L'33>X-P͖hhQ,ߏm5KV)ìOhr fA!'=Mz@9SHUHo7{$?m/M05B[!Tw\ɂg:^,?e5{s|Ng6;g7M05nEAP+\Í-SPKN<ӱղɜSI4LLM9j.R25'm FfT_ݽDu. LM /n3)q\Qc0U6AP'VjPۈO%Vׯl[(_azdld|+ZލRzjHo|EArwiU5Σ㉩TP Ѱ%_۷|6kȽU ;Wt?/g0]TMsJ3q?_0usJa~r&.UhLj6ϹfSp)SOcD+_es\'^__ [ۖy,`94u&Q9`h ~TKii j5DXa f V" b(HYy h]4@5kޢ1 LSb|&y1}5&E]xEJkpx$YT |SW7C۶#ʍW5sI~ 54ݕ,~Yo2y`h*h U4-F bty)Rz)ѼeI7,~G=o200hxzP)*(Qq#Zߖҗh{z^67xYyME#bXlxn ՜{ﲴh,]&"˪x ~q y$Fy&.Zwwo0 Ep.i2X9L|dy&:{Biζ܏kOu\aVߨyiRl<%jB _rj/F-ԋx >\D+$yoQ.z,~{EH&1Q7xo !(C^5Lsh e2`qDb'XьqzWخXO3c}diuDJ hϸ{ 5#Q^1V4EY%==;aٯhXUZY-7T4,wdӉi>{lX^zm vO 0Kes_ l,NW&BMc)ļ8j/#h `WNY>U|ɣ;O mORڈ|M%nT5aG48-^=k'mG5.Q_4|ժ}\ s6>cߋV!7oo S4]r$ԶmWqx948/i'l-Z;̼&hVV)ږĭQg_{AhR,J=H'[Sz [%[ЕGSGX !L4Lf]ΗZLK\{aNW`&]@Fyyrۘg%ɩ¡p @xzó,~C B@Yc=Et4'[I[~3_5x5I-H,F-c}7W?C >fÊQ37ee <%*u2(ZX315pn*ks T)ն%O'3xo$BI5Kd 'E%+E>Gb Nϗ˯PI .:lGMd{y̓IfJ3de):*k>)PXQ,WtצryE>wr=2])wtI[j5j$p$9~ٳ_nSܲ%%G[j*R(zWReZX&h+iNHskoo+X,V)S_!iki [v܏N˻ߔ[l'R*]bЄх3]S⾖<(|[z|Ç>|Ç>|Ç>|=~=>(IENDB`PK\[UUimg/excel-icon.pngnu[PNG  IHDRF pHYs  IDATx{lSUl 1UFbB B#5'0l E AC 1B1QWd1l+=4ܮ{I~snH~~5Eܺ-ugmue,\1)xjXʲ(f_D7}+L(.+o[B\ ۙbVrkڨ@ŬjbB^`L1+2XBjj P$Z$92@ ɡI Hre@C-j P$Z$92@ ɡI Hre@C-j /f<QV!&B #{'Ȱʓ NGl%rf{ubsǰM>pĦ+*Yata@IMw@ }!O(b@R10İ.X1,!.,0}!O(b؅QK İ @̲'{i{1vk蔿_\ -(B P ܩ) SFٺ o|@Us;{B2A 5Eqwpp95qٴQϖ#*-h ױX, :WZwPZO%}5ߺ=l[O'*M\2K~i@:cxՁ>9y5~ |ֻ+KrO˔sHґϳ5P/S?Ůh#gdBz-ӇlaW/PߑR  ~bjBQ&ܮo;:v V>^&)#QzF(ȯy`U_@! E(41Y3Mxk_!?*jM>׸$螄ۄc BhB!iQIGWT|̆*B6]┿ū"?yp2@va:CPvq PT0k QW,U Et&:CPbO-*JwS'5m1ˍ76Ħ)@z3R'6]q[鈈yqϬ҅j9`"PPE=ZvA3Fs8 PfGByPQ2j P$Z$92@ ɡI Hre@C-j P$Z$92@ ɡI Hre@C-j 87y#F-*(fun +/+f^(qE0@|=y+ffO&$gXyt Jd:WZDx2} _`ϋ5>IENDB`PK\@ img/ic_exam.pngnu[PNG  IHDRQQ GIDATx^ XiL6Yf*䮅5ZYKZVuI}PԔoaX7̜3/{Йaa9{> . . . . . . . .4/5Mk l2/paS@&M3օ>_=C狼վ+?H ~AR6"?PSE>o }&pבϡ'/CXnukb1IW0gyOYk;\<$u~tdlk+T!5}'߹1-z \tCNclx#qV!L*5個 פZa&щ'uHŶA-IaD>Onupzsaϯ?N94"9d\quM۷pKW]W r+pVEyycU0"{/K#06HFC;6&MɅ>Ww-/]Cd3A죿q,\jϗ#"gGےP;D6ĺd3NجxG3#XO(9JT%{m>,lQGYQuu{kIIA B4_y-_"`Ju B:|e2tE"Z0 H%ZMY+a{Xv@o9>E~y\6M۫*c$+-70vDRbβl 8+(pO6/ȅ&zVn?:B0(>09J8 wrFSxvɡ΄W!I^HQJN~c" H[\j(Kȧk6~^Pn*E[/oBHSLTQ5Tͮ#5SG5^ RPM S>_ulR->0c@H)yVt[28&޸j[eJ\߁x~_ʹ #X޼C S>/Vϩ!hԝh4iA@m 0 EeR%QLuZTg?E'@"L 7j>+A,} A5[|z#i(4wϷ_;QJczvG{?9^ D۝f8lQ?,\2\s |~MT\4<)9 YHͺ|z 6Ũ奍HAM)j[GWYT x[d dag;zOJ&*I0zH 9N-I7$0`8lM]gaUR0@s6%.0;K"z7m:P*B hA  $DUǬY}=hOZ/| HzHY u"i%}-%1'BיϺh=ӎS2h j.&B.zz]O%+I)`;-T?,+k8s)-\ Lt +Kx6c~Bt)хDMr'0ΫК__qxsj&CU~ 2" $[+-:EhQȗjSYI +ׅ2G&,O.j"U+mtě"ZFKbCeȱssi#ZJN=8q+ py nf}Ox{Ȧ0Ш㕭pNEuL`UM[ڷ'0(@el;T<_qUO*rN88~䦊rG5\CK/7/܁{gPi Sۂ"bZg="sb #o)4v 0  ~ZEqF.Z~HˢW7yS9"*"%yQ.YcHmhd͠ \=zaOZ (T&PS=A˼vX1)&s+Zfd9Zt,~E?jE+^ϧ)%2m` nʧE9n6CͦBCfԣQoaw_Dh $Ia= =Nx=SNZ]0ͼDC݊q%AEFp㏉f.GߢDP$By1SJ@{0S"S+a'}#(䵚:/""#-tk &şDPOTCrz&0SoIAO"ɧH K0QmF?)Ll8 µ `IPbO9[ )!|QmVG~xk SgNM!sQ!,$H Ey\[ٕ_q=*#ƞu1v3%`*ц1~E-|o_! ""x^!BP$y/+0h 8OIB㾚gSǝg&FPPF/MB*/ܼ%\|j$F[Lg \R~ZИx$Yf=oA؎'oLo6w2Ku:@ͧ(}%5iǝƣa#:hA=`Ea Jkx)lhT-pDT6W ݷmQE ˁ鿄TByoژזD(!/nRG}H:h^<}0vAF`uCPJ{ZlD_^OSCn>Kي!D{FGq2nI Z7*9b!\R>.0Zh]A@ ^6ԯ?J #\w,aw1IhdH}H-&VnYGo& ~|ƿZZ,qFl19!~E'BRV=ĥiEڍz(떤Xj| tAMXh~Zi61a-.]S׬C0Wd-, Qp)j7,jNK%`bvtWK H\A  ? Y|3j ixufϔTqpv\>x,|okldN%^0c.6مHSHkԿV B wfp@JDb5XLjp"ې=T=n!i T|B|߫:lS@*N$|>.̆.΂/廕ES!X$ٙ&[2j!L dÍn|J×)=Fs v]_~_xʇ#ƂhHl޲Q)*K%- 卤wCI2Z,boKfeJ9{p]&;SA5u-%іF[?[NCc[MҔ?JgA}?@gPx?UVO.W faPeش)Z3-tnIy& Ϝݦ44>m:ges$kN1.aT[x{UaAA_JOE4_20umT;6F}Eͤ*̆a6R4yqs~f-erg_OY>~} Q=vWthKcC^ר[2]ILxW}E$e5k׫(bR%f; 04*1Ke$9NQ ! w"%۸l&^N0H47& 8iST wNHT^5h4F;U4HcEhrz#dƬ}4[q>k oJO&WV  If2Ш3PRSMmF\QoY"2& .Z. ccy4$}fN .ZIM2PƌCC} *D3hlaOU?suf0 ]na-9wo䂆ٵԗE3@ ݏvgh!NV L7d=宋Ј9:nA>dSµ,i )XhY\~mpԗa`3j`Ֆp| X) ba፣lN; *8*99uªEKbz|>a#{aG93_.A%2'{٬Z;\# <y#ZXl:d#R j1IIyEfx:s<{r6.em??ߕ)Id#NO6twGV4?C#P1ۑnWn.}DJyJ}DuHF']j[VV4D27WV}V?MѶ)' ^9T)s bե_S̍Պvۯ6ӫd-d?53xml~^ .Q+aTV߾_eeP` [ht[?k | $yVQ_Dͤ*͆a74y7Lx#U`mB Ϫ7, [,ݶMlF۴OFh&-Fh*,dSB_&T .yM5&.5O7]zAr!+Oz\7leMS u^x@S$m4.8.xm 7l]UF[$:]1m.kƂ&`W-&CЗQO~9&kB ,~HFK`_ˉ?ю?Vm̝5/G_ѴAhQ?-f;4&F4h߆""'˰;タd@TjECs HQcI黨-V;Y N-&>]B-lmEV#mSC$ bcg{ZؒDa41V!-nvMZӒf.A4Qwf;QXdۇ8,\_iE%<+Z#f٢dzg_Н,?Aang8,Xߺ_\Feguyp`JN4  oվup9 6GTZ6m{HϺ]EYZA G.i )XhxƦ/S( sg_et+rHU N4sb¿} 닙,lJ{=bg6,( D7< ̳'.L/ L*?uQ0đ׳:u]? .=W%&% ۜh%Z<_" wz `’z$f.|P)ZK 8mݑ^qwqH GGΗ/G j>A*Ab.Ԉ{]tU'Cx>ʞ?S/vJA@qy⊦EM@UHzDNP$b*@^Y\tJnQټ[%n3Oӭ\p\p\p\p\p\p\p\pF?EbIENDB`PK\- img/ic_brain.pngnu[PNG  IHDRQQIDATx^ \ZVW'y#MDQR@K+Ӵ̲63y)*0K<`\>g8`ϳ6y/}k> . . . . . . .h7,?1{߾gŽ~_לr XxyW뺎;^wŸ`}/JwF_UQXsN?"x}d:}9!{t U wY|/wўpޫ sirٕK$BRovg95ny_IӅ{H^b0 'a첀~1sM>p߭=tp{YK FsB3yw9 2sKjw?3 |`}v-+NPre8E߭$uelR.- AL1l5wI_t=& zg)4J/<*ʼnLT{-/#rf8$A0`xlc#'k#VQ:wY.ndc(5\upR0M5 IDq?Ի{9n E#|6w"('BW`Ԡ}b*y6^CD T2lmVʷk w:z }--M {J B؉,\u3+W?{^MIsADG AC"aKP; hB ǧ"QҝA]iaU0x L̳/} /z)cfWԼEp$;Scgj}lVg_JyDQi+Z؉"'ZxH8v<٫o]GI9B4TL'T׾6X!Hph2`تfQ"<˺UƣYWd*/a 2uJdj&Axo]ў' ŸNRSaı-͠>0׈/~7cDZ|dD3AA\( ?ZLXO_?vxn-=<) Vێ0N5MJm9[omD3A4- G4y.\\ؠh`% p/u>8|5%Q*$\<3%X!)[yWrVu9. ,u9G!Q @(Tu]ͮDcS&Mp,Znzӻ"h,V|]E]N4E*TSozWeѮU:h5y p,Ub/Ϳ\O%$*j"4B6k*(ȉƲhGRҏNQk޻!>zU&Lp's!e+Q'~mJxW6kE+3>1mhJmQyphMg%\vl&Xc ; sC($eBN,ʇ)EWғ6Ph 8hi_87!օILM+۲(Z^G!4$4ę(1t6M_ojd:L!ZRa.7 B'3ch(iHd;D!&!]q,dK+b$j+, 7ş:bʖhAV=Mz4iB75,qi G{9L&44 6.2 OsN5PkDCMwg<2 C6gQz〧?e-?8࣪ty\#Z#5H@b[+ztذh -`wZDOԧƁ(M)A _ӌ0xx+G "^ Fnq}| eι$֠*\p`ɜ:d;!.~Il)D^%2)YĹD_F}td~Il-Z~j  V 5?tjTh (R<b?*u̫C#w9x%ƒdC@\"ىDP~ ԡtPݢyL\*RH ”P-AS: hr hD<,j2ѢX -&{M֡bގK Z5hjiӯV|j@AJ@X _ n3A鳆^KPmJR"p߬`<-4QrzDj[5OV?p=0pp%ZVY2I=6V9µ^1=[KSQ&v2 za!!ZTPoun=W y&2h o#D5'Rl)?[EQ ] (KޠFTZZds=Px<ҷ |='1Wh4(k"2hx Qh\]ϑy{R)-;o? WPyk{\o E"iy'Q״PiT1 =IU4:C^ЈBcDP_6ivuDI/:';FUml!Z^R(Fӏ@ >jx9*zC à o X }Ohn851E(DɛHS2I3=SȄ%y-/(_5O2jӲHԝ@MvK8gDB#a f 7izH9Vo?{'\ŦhO&M2,!j_XfVj@6l1#ƁEDI3xOs S<AMW8k&z5ŐhgGZ)P?gK-=}QlϬ+s)ybof"3.^ KOIԍ b A,Eh|ld[,bB =c:z`Sɴ82$UG;4 1>ю G29|c̅mP/؝6LMc/%(:;ZsA<+p:hδLsvEݢ59q/mDH|-Ѳ |͇GEIDj#gz'TMfY;Ϟ`;Mb4+l.K)i,UP# } "@a9+:/I. M s0n f No`P?\maNm0.e!a&NX3JP.9ȷ}}ʦhx+a|[^ª"-Θh`C25z /c)9llY$L4O4Ӵ FD'=Jd<}rYD jݟ )[@t>VE+P@+U(L:񦂪W#~ͯjD+`@_D;;9R[E9ȍ*QYG&fPUZFB|{(UnN47I;% bR4e1T mzWզ-oEHQLAhgK? 4g -L絙{^GޣN琸z c@=ezԭjPiO5 =fzz5TKE+`HR4<7REW|%Py'! #[ L$7-yT8KD׳w %K*dq'彶/ZѲ  ܨh]7hp0^lD 4C+\#QKDĎE}wg[9M~TLj,y-+ff"0O.PfZCO/\cwcюD̡dFo |GF!Fr|$O KM'8s*_׋M YbdZтckÖo`J4M/d<(Pg\4\iMcNZ7 UW ɹ9LZ?g IDdj= Q #[➨o .[!*qiK1 FXྶE]G^@$15ha&ܽivHĢU~%O x> =2 ^5#1gvvL7o -gSyZ#ȥRW=iB@6Kb>MUPW ;ju&%2DC-V*Ϟ#Nmxoɳ7ozJh347KD#-XfhOWB(S/vP`C4PUyp1%n>kVljM0Ve_,$J=KvP=|)pc"3MLvglPߛ2̸9 Zfh|#,#F+KPY,ʲ*N66DCz_c|4ܝ-+L|#l{O4uzCK&,QR-;]ڿ MP0%U tD&l d')!؂ip +g:TSǔh<0PݯdާfbUS|54i)؀i4r}9!,|>3k5DOP<_.ڿi4so.L#-ŸE1{[r|r ?Voi^oA< !̄^3 H!Q̄QxSer,@0`>*a Ɣ Ԑ]k"1[hxgg2N=;hYg.%>2c> HF%VKP g &&5M6&D L wy0U՘ E4%>`Y 5򪨤% U2,)+X+ҘRA4 SϷ?&e!mjJ,}d!qHp^ 8|@ X & Chް֊%Hi>FW_Pլ%\=ShH{i$;CӂkX0Է>4Prdh7 lb#M-D(ՇLa_ybM4Ln#di,۽(>dQ;\_BUJ X3MQ!H7ZF7upe3%2!@d|D@:= d^ _!}ĽOqJ%PQM(XsX#g3ƢC{- ahKLÇ˴u<O5-?PriߴKs j֖xLqRspcx8P0EAu;`kCj+*Ȏ>߱SEÒ-܋+7 4mmi _g))I`uf$ፖ9|N^GtXiKR8ire DI'cBfWVLȑ0EЋMuwe'si#(hY)5 &` d7\Dut-^? 匛O甪Ť0 /&JR]b=!Ix5̗WrU;:d6Xs] u\wqnC88b^ZJ`)&Jɨ+抠k63NtŪFRK';(lb.u%%?19SsknE:4~bȮ WZuq`,_סcyWTRkãώRՐdMՇ{ޕumNb|/UY#\U,4\J?77fpkr~"TǵJ[jLğߡ\]|&-O\mv=`jި=&``g7-0%6 0U2ȦK * 7jT n|"{J/ۘ¯D2+]d5UIꠦFɹiiyTE_ W"e2u}fQJxJ!F2RnU-K׊IL͟uBww SO&agAMA a IDATxKeQ1D 4x˜DۚBwk^ ʌjqo]פ7&6*UQF醌ղG.|Fi1҄XjlN&=.-BnIy=iȄ ,x/HI[261 1L`.%&b#Ɛ1*ǥWub%؎oVx'fJ vBN!#L99,"_^u'Grm!/ⰴn/9{Rvrt@@ ꒔Y ҫԯL U$#.N:٭$-^C7I9*|ߋhܡLKˮEH(7c0cfcȻ "c.')/,[zPtt˜M 2`F bIb)Fjii8GVU5OjL|+1i~sNMm)1!%F]sWs_ɟպ9K*R8MMuW S*0×2.iSRva ZjEyQvv"|Ac"La[ia<b?YC"MΒӜޤ4]MJʔ\kPݻOcXWN:S|lg- :V瓲z7o'W.I3,nn MC}W=x@~0Ej]Zcf?} ۾Ejc]ZP #0i`x+mb8!q넄gͬLD(:ٚOH8d(X"*8fu]bɬ6T-.ظS,ٶFւ{J056.If_:Fya^}:56.Ii1asU<5Ya #Ƃ[2E5qKj>sl;n +YZP6}ۗo3xjzg̓Z~4|"?n|LFi?ZfZlը֪qeb?ћE)Y6%K cU9BH/ ;/c+~J=ů̿!ǥ7 td2GOa JIGxvW2('xu uSz':yp~ܽߜ0u%uEil!9++L^0'M_ ȕ`k i9Z^zІ9|a ZfE &`{CrnaKJv+Zot;ZctWdL4aƐ<]<°ɍClBVFsvu]aߒxLM̻2f]Xg3!ܹtq<퓮VUՓb[XQBBy !*]hJ,Ĕrx0j\Ӭg tPtt˜M Ē-u6W.}THֻ"{l{i7c0c%5WK8M,K24|_à留: ]'-J(%yUo⒕]e~=yHFĵ]Z@~ҪfO"|8齞jECZ7SvG8RIېc[餋TxRkFԠxɁ\BrH\*eC2f6^QaccH Cq̿+j'M8Y.4N&=eOȼ㌴҄X ^'2V,cfzN'L7Fü>YӾ%a7!A  @A  @A l )IENDB`PK\[``img/ic_certificate.pngnu[PNG  IHDRQQ'IDATx^tTUP׿g]Yue+.AD$(HCIH" "*eQXQA."EB*ˤ6SL{3iy90ސ~C 1C 1C 1C 1C 1C 1C 1< nޝ+_k+Wu-iT4\Z]}/{"))'EP[ U"Z:Z )[f)N*+hvKe_ q&9r1e mM(ܨnF~=6qdөyVIfPVZ wS%ܦD+`5Unlk*Q@9GC;h6&ZZu(hM5^%o|tk,j*D)z,K 8F n- E"FG@vywx;ؚh%JV#9I4^_!EY8~lY4t'ĵ;zy^#9l%ڤvT_lVd -2BK<""C}P 4` 3W? B6&jR *jPQc[8mS$=fd$Zjv;dA_<|yPyP{9q 0q.䷠c|Au㿱^wŤwNCIWv`R<*XW.MqHc"m9&H,2k ~'B^KÇ amL9LC_#*&no{"rd5gC%&yZ$!O-( >(ftmTpuv+ /aÕ6Xv֜B=0dʗ,1~,΅A2oV(3tNaKL ~VIK/PUĒثh=o7D2xh.YxN 0s30K${(Z~Tm$-fWXls6Z eϬCڭоch=l/{ ﶳÜ Fʥ'3mo+ hY˂$=:t3<: ~#0 ̺ /0Uħײ`FO2)-'nLw.Dt f3xߙKǖ1YϜ _{hL.:ًR; FfGbX4}IwJPw߫2vv[cxm)(\?&I `(|f(LK~0}i{fqU²6!T*̻D/aX5Mku}##-)XR45L؈W .M(G2y/E? jjJX" hG`}ѓw=N3WL0JXC43d'0o~v~ LC$- :.s,ٴh]؟Ax3ӕѰ$3uXK4eYbu v~́LuCi)tH&ΩLWJ $D#(&z7R޲d &Nbg,Í5EWW8\DIA!yuN](󧓌f DqWp'KK~Y>W /.? ] sJxPM'@an!jX"6π},AJ\,}/`2S$ڢnOC>=ߛ]V %$D"vv`x6L%&xΒXSYOv%HnX[ChQտK Xx_Q,Í5E[E%˻a_[%A\KG`]=ǗE( \,u}$BoE3hBm 8ђSXŕ`UJ2Bh8\z/ZvBԿCPoت .+S0BŕQpB0D+mjħ/'J~vBGN(P==S0H".P+n`}F -ݠJ6(Ñ.TN.54m%c?d ` m 3Y拪34dg]`XC4EÛFEyO4B A[dzwJ4W*\ki lVurJ2$깮 4 aI& RORn0N'hwDr +Z0;!">2 >p=O όS?ߞ-vLWr3Ys0x"{,HJ6-@ˤ |.Ѽ#dR A;Rur(J.BYMp[_ubh=)ڥ*2vUFIDFQ1O4N>5ɹ&fb~h77؉Y^2P](0T[ +;guKF2Z. s}294s`9ѐE~@R%R*@R:NJM;!HӅLq/@*xbVY"N$YKmHJm .t&h' 6F+Yblxe KKkfh}bncWjX&tM;!Lܼ!TH m9_gKF>B>zs O4<a/F;B&^}b`MilnQ}%mrS4V/mcyC_w!0.o[GV0uK]v\f| v?L) F!ރג!xl:4n32K0#t{P%b%`. † | %(Z(m3ɩ6O^w}4@ ?[ w'eAbFĦ4UKkf^*z‰ *%XHeXωkmC֢ 3H%g)-|#d7,I10wS)$1[7b!Di;=ChĜaV+Cے)%B$㽆n@{Ah;'&">N Hϭ %>4  L&oB;G&zi.  J %kY$]ȿ+&GPCi;ic,m CE{i~w?Qm|y{?^TADRݧ(`K4a|ѱedEDӻ6*Tռ训SdZ,zގGVXah)V2[b#p߂1+M?Z4F4KrFGhѰ|`-OeMпEتhy &s fТy; hDEK%_تh%d6G׭l Z&]hFz%SVmnp o|WPB2g` $gwQמ3X~ ɍ ޫnPReB2\ɺV\;!I/8R-(y[_G1w4CECbIV o8KAΠhhk9YrIpc`cDC-L!@4Aˤ |`AGí_ ҒcE3x0ǞArNX|G@Bd5kgu5Rhc8%b갶h7_/W0W4}d &}QE+3i5W٘bA ZSh8>sk Lfzcѱd7s;M(0\З~41t^rBJ߿rҙ1zz\c.PђsR&rz@ >dȐ L@f tge8ep5RC7E;zy5dB }aA>6 *W]@>&ee\_do]&~Lh1CEs 9.􉆷Ǧs0CEӷXE+veǷ:ee@f y!1؝6#Z63\ SB9fx<F!ό xL<>%߹[7oa6fo;ugpSkƈD;{G4{ sm21q^.U%ࣰi`hD#]?$J|cށ'}i`h| ;]0wÔsEҭN2|d29lcD,XB;fX _ǟb? p4< 3n=g8ף (JV9IFiu$c4Rj#~ep^w}oܠu։4,sp[ WhVxXעυ[ܥUk։[?Я]12:JSwラnGO7ah|h4P+'KK2>.pWTan=%%aw{j+nrݩ1!ev.,R`<}Lf6Zr[`p?7ȦnwCESs-K5Fn5|jJp6yhv#K}\aUjCbq~+3_v\p1S"U&U\2u8/=qmOkXşcuM؝wa'Y{wXv&GPD[QTLPѬ [M L 5ֿ3"L?Ek~bQ+DcgMDѴK} ˚NlӿH1CaO\s7hF"XD,w>V Wmw/:rUE}rnׇZck^BY,gĮlTlZٔ\[%4X:4&}۶mӑb 1#))tg B:ҍnInuE;}}?ńw?emBOB}`Rh d'7:R8/]ၳ7,rKT hS-z/F$^ ;_-']j2N&TDV#uT7BCIenf2jk~q)?d*Bd,/sd/=hM_y>!oNbi3<)鋓2,hB̕pl%09eŀȑmak1 ;Rb¸ڣd>ZVc#=E"W|jh&*LL1kFSqQE/qR='^GZ)qbX5p}c*F'^8cOztz",=_q#=_ٜ'd7gZ##_)Q D8]رjIf^̴QW>ԇy8C 1C 1C 1C 1C 1C 1C 1C 1AIENDB`PK\ gj>img/ic_audiobook.pngnu[PNG  IHDRQQIDATx^XTֆE7&ވQPTƒ+fT55 QS-. 2X)Xb0 u5Ñs`i{8sgp-ߗ x=S1%~5Р7|St/l;JS??KK|_jxf͠:5{ͣtZK'%֙,xs.Wn a8f5{}5Z,^Z Z\±`=NQ`F\>1gk_33@'gfGv-Ij|jZjMZv08, >S NU UNbC7PMm.MѽaMj { mSaj)hy0p|z0y0zw|Kk?1y@~6\y}g%]醪b caXx>HtX-TCv_J?^H5ޣ<@9eyoeh%VE JG[r_+ijMēDOyxldV3]E_q(~z]4[}Jv4l$i[܏]iRpU>>z8ԀP $ZXMP;ɜvVU"lpX{mQs `:1KS-n$;-KLVkAG 76uވQ0!hƌhBc0%V ۰_'rմeG{&O%6IsKIOJݟda L,TOUց%)% /+2mSANE)}koXA`ycN-|A 62FuU@ #eC֜t{@8{-R8b10>2p@ wt^z*ՍNٗq/ҍiɪUQ|òE }sŐ{nUi KY0xcF?FM">hzaԺϸjԅpr|ReQb]/_T.Ȕx\C#7jQY1aDz.zybc7RUk@;5H"N5AnI?/,ev{hکW;>؝>&_;eJ<, (Zt(5Ae6ejX3$}ڥ`4hi$@@W~ ^F7%r@%ל7 F^lykr\8y!_zOj>/#{Dp셦3L~ z]CR}/}XUښA[T@y\iP_I;S%*8-F51h$+j8vXC8[sNm)l~Q `-|Z$4xA#>+Chbp|efMeG3rǹkp| (c:0}"0vk܃I7F(m`b=g$hSьQ\[3A9˞ű=~,#8 ]C 3p.v'+ĉN0%P夔ael;j4h˴M0m2hqyp~,ФIdm4jN-<)R_NXЊdL;?[ \.hۏ@W9~iIk]p,,vr@s$zl0kVIBv&Mmbf4P(M!H .;vB@Ƭ?I7r@k1v/齟Ӆ-KoК.3PHЧ.Jg|y/CƔF5NG31߆T\$wwC`'f/\/D5,w{p`Q#qypsHɃ%hQ( ZKo(Z} 6zߨ)a`{݇I4{ `zCrڴiF3oRE\tLZ!4 @$v&44tdcnCٻ3SCbն'Rҟ-ӂAM)CklUAnm0o/r~=c_QML9yZl.}k4#,qS#˭I.]CF gě]K"7I ]앀9z>\|WQrY|[_@ѩw+^?a4zD J8g<ۢd93r紶ƗJKLe}[E]PߍiyZtd}B5]nK ǘܡ,/&zOSqk:3fllC&MW.>k$v\is |k =A~ocNҩv!eߕ1]kv{Df`ف%u]uj?,.t>Fި0pCM8Z񭨻6h2ץJ n=;֝.,wxⷰꬦiOpڇZ7 f5SDy7tjݹ/xO=H n'?1+a4:&ozyftKe+#yq*b@܅H >rNhj$ݥڕhx2,i﷊L3$ocZ'$ 0hSQEvB_QF% 2:H̏JW+tqT{x0&@}wVL&f'fBۻifY9͞\a EqZܐwU)h,o~[uU <4PU=jJ+YdUQ4'dAn $FJ6M7eoցF.*w p~+rc0IrkD7jЃnxSޫ2 ‡Dxp2x|: T=5lowia4\b7q nxʮcGy94Pt MOCsl.cep\ ]YZgYm:NUnдر\:'}iastۮSA*́VZWwI^& m$N R+ރa$a׊ym>*Fx>%ݵ8a>vK9_H6tJM=|@m+|ΉnrpגwTd| ڕ@>\\z-Sk>GS#h<`d8F7x#ɟ= xp4 P^'?T\ϼY 'F\/WY6εw hC`*ػmd% ';5iGuGçג6{c^"8uJ;XelSA& bFw$V{| t^2ͻMZW4)K)>5l! ͻ}"q˘4-XYu V,?"hvO~&lXylcJxHY;}Ydm\'S}Z WWp:0q6lc4kY+hAd'0kgvM|C 4ٔVܨ8?M-[{(|C 4Ġٵ۝nxS3hViF4KI2O7\@3M YNuf;{fTk2R0!p_bΦcNQrf-2h 4{ƮcZ n6f8fTOs0>4sOh)@Ӝ<3sm3y846 hsN7լa;)@Ve4c}.llØmhF۴E>tLbQL-GZ3չl@W BhZmldt;Nju B3Ъl\hjm-Ng|V`6&hnA7WnWӗr ?XgJ`-\MRę@,K] jcF@4YhI,Yc=CgTcU=N= iZFjw%p0ЪlCZ۰HTOK1ЪlC>+~F_q/d.9@3 \] f|Re]^B 4Pij.#dC[uYAZm(dA7FtU[m6f4ZMUW̺m`c<.U|g! -cuF Z=(Z q @5FgC@0*iGGY&cK] Ը2-'6W=j4e4iЋnCnsAW 4_%G VT~HS7A m.ƨ~Њg~ՐzYeeתaW,YY?DIRiA?p2_lY G /(^g!P.\sAR ͙AVqSqpP$O_=7R fjOÕ}Z"^ѽbvM)@6[#Rs q0]^N@m W)rS^ߠ[/5eʗ/ْ<#dA'i{pBY6h!\ 9Ǣd}eq9Ԁl3)G ZW;̽eGIpYؙ̟eCvM(sw6>3EΩr˱&6oUfq]݌(YE/ =|wxire5q s|sbN"uv"t+$-;ﹸԣcL*{dF9K/Ïyb ":[Fqs׿cSGZV~ 炸rrpX" \ӎaS ?r%!)rۜf2`]$. |*@ѾCKsgszi,rBzhp!U䧡ܪ!Χ˹[OJ@|JOCNDL '>=pc6jn?҉I{IENDB`PK\ {0~s=+oooooooš9x% qLhMp$6_w׹~q+{^r{^%@LzĔMX`!y+<,Xw_/3w)M"{$Lo^[X q%y[zKV>5p|kx{y{qEY5vwv^]-nkeH=ȄAD{X %3}cۀ!&Ρ8JKxF842n:Dh%G xfGo~d;򻝝WhaIe5#mh.>9nrJޞOkqqk:;(ãk}{o|f?lq$|d8\{ܮAᵡ7[d7ӊ[{т@-5 ^qZi;dcdWy~wkaL)D M&a.tkm;b%le׾-%0 &mnf^Z#(8dG\nϯV x x^|ͧK&ׄn_@t"4)i̻Co ֩_>ӊ ".|M1s["z,zgiнd_!ļ¾^l*[.3D71 BK M[BcCyaXK߈Jz[g+a >>[lGV^u| } f:Af6BϯcנXb8TmFGh]6I>MukNBO'&QGо{kh11,YhyX} B[rB=:9IEZWf'aE`]ryb/9g/C00råZR?Wwf2 ^AĵX-a53)B mgE7tR={Z~9+Bݢ]!Rf4n~ٵ%(2dJzT>+cK |?ٚ OhүNr<&H`lm"6~rǬ5RmWrJ%$aVf5 ,+Dnz1 h4ABC -"q͢,vYI6xeėZ?ڙtH1A Ɛ3n6nW=8 aΘ$`4EB%0;a0# fbKXs<"s;fܧ;F.Y0![٤RC MK]I)0rO2OI-'xٶ9 |wBCTcr }:Kq/荗^o~zte׆qEl> 6-tgl0\L'acl1h߼hBs}&)"u[[52#=&/|a"?k*z }!fE$|!3bHfs" !}{/ЬcxbN90;z!ltLnٹuBrBCPlS^|f֚ק)NeȔ/4ՙS[=" =Vϳ|f.kZ\/sª>Յ}} ^{с카r>s gssk T #3?4I7WZVBP Ya5J \KmXrVitG*% &/pt 7|6>MZ}U}+ݿK5,ܵ&&c\Yb E܁7KU(L<;N.fB{B'% da)oo#Ջϸ< 9c OSz}Z m鹦W$,,8yy;oGIwó\Y+4Cy`a}00VEui(Y~NXIᐷ9N%CƦp[aMP8̝mdhYBY{*X6 *~ .a*£DHvͅF!k };xUڋl?i :Uy}ϑW3 9W+o&!"4Bðأ @j;C͎Ɍ!<:ʅGZ`a0X,SKh8sĴ'm^W::Q> +u͐u=$B{ 6aV?qPOhs^zD蠻LUnFۖiqWeaH t L<^-hɱt<{UZtOmȐc{)P{f lL=FyCgSPl~YܮbhaHD[xIk2SQoB7^]7x4n`}3ݟe쳢bЉ7S,EeDɀB35;q sl4la}syֲ  = (vlެnԤiyB-9Nkb:̱Ѭ*dHWD,,ZkN$@ Pq=1ƸxBR  Tݛj.f)rvt9Y1|L's\4qҐ1%7lv7kЍ% [1p3 G^G5&Ռ`4QhijdH wz8OraM,/T67)ޛ?nYvtYeU]Yӷ;G&u*?C8eH-=ZgAF];>.<ήfDT<Ĝgūk \4;fIf3 JJ>;=KmnlguX,eI}6I)9 IeP{5/x1(~+&%Mhq=̱д h5yp6iŏn=cׂ2!@p?ynВƉn; -fc1B'- W=WZ`k?\ЍkiB Y~IhdBnCxd# ]#<Ƈ3sb~N=CR>h_}8%`ǁtx-/345 QuZy5j$zI.iH[dJrubu!;XjսoW+8OܬMdJCu B{붡^f' sV{rPg0Z?us_ XH%|}znxzLBҡS.4Ŏ"^eYDlM-{hj/~|1zTAٯA'8%6;BW}{Cz1e7NVkBD&M8a(UUps{֥ɪ!J@Wd/UF5Ob]XndK4,z%0W;/6FBxI[ZxE/XU }s!#tN\M |?N8sC+y% -qSqߙ2BލZx kDTMOIX)S@dM\'DdM9wY,&Z`mjJ$?_˴MSPpx[|XGm/# 3Mݞ/ɢ |ms0""˙T=(k.(X'dڨ-f$WuVM+;SFqsu# ^Pƈ?7;I{gCbF`y0?B:>9ItsDhvWnIΏ\/a yn_D7gehfvSXqn AM\'|1#,䡦7 >`ES~(CC!!ȮԸ֦!$[Y(ǧ Ipbq6p_sNUp+p?U {DM& j ֈ 9.ޮ!b3;Kܬ=FT4C!GORᩰ2ͮ"ǣ*Ň'8 76 ヿ>#Q`s,lJ앩Gc(fUBL` O׽k4mۃTOlьYP/h φBJR̴Ug10~uϼ֝hwe9 o fXt.a"mhWXa@?q5x_bTQ2Jň8[K^5;;"EB,-MoO8]י+ЭdX3zC<.ݬbDvn/G<͎S0 J^gE%_BJu} 2#V@2D:c{űhǰiUޑUJx7Г5YUw7ʦQ<,.NCkipX;7aLsfcqmuf̷fW<@]d?΄MЈ=-ͩ'𗼴FCĈC,*(< IѧӹȼOZde ňF;z@^!7=˴_q )V3X0MIv?Evd{?&/{UEmr!ӌ uO(}"ª(4C볃΅IshZW<6=ljg]iSqqt ylCY^QM={(weq$e7!bC0*tA+-i31I&κ ہHJW3ѯ@e&6O:ɈJ&߫=,y1TrB5Yɭp0N3#ʛIjL?Vq> ie ]d0 RG-##NVPry S?݆ eEq2W\LJdLq,:"#0܎!A4 c1|n{8]LBlFzˮD e*R1 ٢47^}̯㧟AT(!. 52qxV @M<[[q#߫x|ga[nR||b^^G &#/j Gۖ$!{'0w'dXdȉUpG0`xP8JV%ךD{1߮Ƚq[ m{lg7#Sr\na:Tv~ 5VXv~¾WESLLc>S+~hH)w@%W\mΈ !}:7Yk^vtzEYېWFg+cG'2{lة.^!RUBLʮpVdNC֚} .eiz^7b57-&^[`lf"Ð9rz3"_Nm)gkD'2i: +gIm pky:r&LYsV "S.Ն8HDvNLw DNdz&2 O%KAшA 怱C#2*Cd啾$,G74.>`Ʊ'0iQEWlcŌh>4oPpJD08PX-_&}P6&4\;2U<9$EڛNg ef誼ұ3:;V#?n=MW95 '3k6wn`B[BBid, *SVuݸ-rr܃#kJFaRז>+xYgڛ٣YUI(lUp&tUxWUW-QmK*x7,X|'aQ/=#B0涳,ua0NGPcӠjwfbn=4[E ,b߷<%w~t88/{֗kIIJ3m=N;_>=(~w#^~G֓5"ΰ%q*|16i:oyl9hcPGoޢ;7{0w]23TI<\FCd"J[ܔ{1,\8޾Xv߸SNOdFm=4v i)j<- Âu&Evqp1Yn}~dJmoRjMNk 9:&\2“O[12;[2f4pVJz`0w%BA*p9gb{l+n׎Xk5mMfeg콒5rOyM=+*)+Fn,堸Dm7E Zyn!~!YZEb^w{!\I"2㫰:l،m^~p{)Opk|tl4Jλ3"pp7"rC9EkbaqWy.E5s pagAMA a IDATxϋEǣd#IIO t9,b<&dAݓga5iOJr؍CN*/1;9讻O|T:vVuUO=띪>ߧU*P TU@U*P TU@U*P_=ܫoJ%fos1G  ?fcsg pLJXsU=O{Fn]BνS5̶s>>V(+wU#\nC@>M dz_x$ kUM]{DŽcbjgo㟄GRwj7? O jKEmoo4@cg¹?Q7mmƦ$&wU?=$ IcbSn!&m. mhƭB8Npլ >ƈu_B78uh5N)m/[c:?03oiW'Gp~MJ] u}|QO|:aƵP;=7Q:+|Cy<.m-Ѵ;$_ %KEx8$>\DSX7rcGg%l=H6潉^rGN ~+2>9qvXm;ᴿ,`n1ZggYO9OBVݚSy7kOΉTbmZX:Zg!O^1:Ȝ(C bgXzaOnm,ZvY ,Yۏmo؍Dm,Z/!KqshJ2A#dy]K[tVFiR ,jb0P![HenUa-U+hB4mvF-|[V&d+iH@+*!Hj{-6Rv҈ޔdf-gߖXd||}4_*aH@3$m6d6pfH8}w,Shӷ'&IlZO'auo#!Ѯ{=_ĤbݞS >2m>o, h-1ِ䓆SYƱmM!ldF0, r_|=O%i=|6BNC&THyIbw;t4$!Zm 1 68CBDkGÿ 6(BVxMl/ɹ9,ZZb|4K;vMl/)ȆH2A0gQ8Ǖb@gMCB*t|Kw 8|Xߨ)4];1 6|-\6Dz!!TSbA-%Fym ̢ip,ӛ(ksBC͢ipbu÷SM1$X4 qK1$LD5TuCEXYψ\׷kWocPFK*؊|TkXDm?Wum,T2W*,dc ^ 1/Mce9IP{8`bX4 y=Zr)N]i,2otY-Ԓ6S9)OĈXPa GT6h+*xEm%Xhpjz2%ij |ź󹆖hbYt>me:X,Ot=(0=)+EKKx½@‡t/}C@H[Q~1 ʵ%,}ٛrz7[,66lC#jumdZtǢCŲoQƝ˂d_UvlomĨm|h?Kʗf2#&hGɍ W/}UKchG!rjL\p¤J /h5b#=+!]]|izX >n>=jg3'uXIUulnhBH2ɲ:ⳫAHmCVi쐚Jq-Ù`' !i4E"韄2suGDӢ ukI7wNO ܲhYkK9u 5nnl Ce}zJ38,>eѮDE=䇂5T2^W4CY_L:i䉇J WoݲhO-phyG\ .pry >.m8byah4/_5&5g"moϼ%0Ɯ4Q7mmne$&wUqm;d'.O cؗ::׾5 &Οz]խϟ5pSw>v`k\7yS#xGŽC| $둖[y|jRۜ r j|טgU_F{e GgEHXKvyb0y6O bqHpLJl"7, *+X.Ulu npY=Tl XhpSq6K}RI6֘LS9t1G fJ"<cX.ݿ(#0E^TU@U*P TU@U*P TU?3N=?IENDB`PK\-u=J#J#img/ic_coding.pngnu[PNG  IHDRQQ#IDATx^XSWmnm+@P+ھU'8Z+u:޶jkE  !7熐, \y=\ 6` 6` 6` 6` 6` 6` 6` 6 {7r]=]w&}{\K`p:?mO~к>~>{jzC(JC٭[ē: 'qmswGkG~OvsdCՇ"dBP%ގОS_}l<9ѮB.?0 @eH0mQ8vtè `1W{LF6(&7) aImm9:Sοo /!t\-G. 䎼m;XUulb+[ϪI篮{~'pU%zV <+%BneE2BUY)VT&zݏ'y.Mt)l7hjG.fjahN \}!l[ ՐΫC(!<ƌEg aN|tw]ʑٰ`B9V9!JaHJ$\"=b48C.hZd07(꿞߄~6..v7 ${TҖE^(뾆!D٭|v:JL~RS8{lB4o*g5d[g3Y' {rK ճHRP|-g o^Iϡk<Ɔaaҵ\ջ*L{  ` Ƒ#C_'o͇**D!ǧ܂aD@ALtjuZ{C}'VlY!ad⽚!RsXM'>{d=W '̰O sXy\u0Ȥۙn%y;: ,yc٨yR ,o )&{Cwe4EW87a$U٣f"y@u T1Ir9C067TpwpxOls5x:jMo)i|կϬ)zR, *yW4b#Axp톀RyED^; _.}ܠ1}n~`s)dCEy]7ܣ yIgM?짫c:poKփaҷ??@/"K6Pd嶥Z;r=&>]]ll\'d΁=g ٍ){g ~qEtZu$9T%PCa+Ⴈ1k8Q11lI_;O}wVٍ bRo18 9Q,U܎>Y_ԈpBORSևӝ?%yBI b*}p!Ao)ES $[bdjhrR6<˰:=gwKFnQ:ǐEأ?;t"-:mӆtyG7b GBhapyB[)Z.۞nK xAcX}/:$ \+^g?> m8ӓQ@ׇ7R_3ko`Ab 08`Dl[ec9N-{_d~.xa fHWV_6i8=]$$B͑X.H ,zt ZG<-8 =[e<MAF{=ct]9L~_Cd/,: 4 e5}ȼJrq׷T#҂:t Ɛ L'ŰjI!t'q 8V$ڊp+fSm@9$ _i븎T"! L:Y 1cRdV?VR㨣CWZ笸LK'ᶂK&Sk6#!ѐ` C-Zk)VPoV.HlTJ f]gbKdÏ9tEE2ԁ9HQ˔nJ2#=d3P::?I a K-C šH$l,au?pX3NoHx C m+[_Pv.Z>Vk>Wk2'G2DKUkkg\٥A(K7QnU H'r((/LmR"ղǨo 9GUẙ!d̜ J%q{k `2"NfywQ?#E ZPFJQRa&0D1)F3Ѕ!cG n8 J{{h_ato(O y&8/K)Mヾav߮%lU .fT. ZͲ'nymcqx}?lP=ܡ*J$]g?(] _#m2ZU/|a>COD5"*s F g0dN9]4ʡ/X6bN007hwxN? ^ӎ408dCԀ0a$Fd &ԃ S4DU3 2Am2&=73hӿRE!5b,yRxF`&-8 Ay6[܀Cx0vZ}ޫlEᏊ ?iL18 s5ģ*6 !.KZWkk1d w:C Sd HMe5C9qbj\?> ÙѨze.jS$y%ojTQcH!^ 4gD Az&d%AXL-|{: }.A_tm6q]y(7oj0+1$3hK9F@2jrB~_DddM7ņ_Ԧ4{m!ڒJ{0lh$.-Š+B^6r hW1{6ԥf,~Mxs?2m"u@-G^D, í0nK8]Qun&2K N ILZh㾆hȆ2 -vu. N6-jJ)nӯؤD+"EkMH':$n ~֎"\l @Sl ͅ {hx)\]ۀJZH{ތj /^F&UCtD0/¢D10[eC7{당D5$k7+P`#@ŧ$)ǖτ~ y-8(Du-RDo GC:^rf-0ҊDuzM}K[k2ƍ5,sEzn%P,) %Tfbޒ nxJƸ'D4B9,thCD-U/Bōב]ܸ]c J YH+ 2xJådQoc^"gL|! 9RC_EYKTüW슦%TdpX5 yC4nylCAzo9#4ECszLJ~.J'L45pt m7H8hqH0푐e âґ` -Ӹ զꪟ=i_$3RwУuJqe{F1\*T}d( *!A/pxGO}=瀞ݬ>Sm{qqh=+ςrAK])L[tLb`pj8V40$j.Bq'S@0noPL]"U_9Տ(m+(>? 8鍤xPy-)Jg JnfV4׵1VSȷIUP{3>jhwѽT w{tOAuiQa4n}!zx(jemfD=%i(}Sr<տ=y`r [$nqF=xmf'OgۭI;I,^ښh(ysSfP 0o*^xj6@Mfc(&M ֆ64oj d6>GJ܅E-Kr?*) -_rőRѦF=fa ڎCPB%-`rJA1e)SC0hPpކ!@"}+z1U9JnޮCwl djq<)Mm2Pm)E+ߛ8V'&-m*$#^ET1(a}j֛242[ȱNGo#19ݏ8>GS2 YčI^hh L"ģh=j~:ǓSbhŮ!IDw8|mnFbIr,ҿ*[Ajd81j".6ρEx[8\*_K=`9'fxv<6 O`1X4<-J6d[,;jƈdv!& BHߟEB:a"/H}MAߦh|JXs-*8gp?xQF?&JTNY ;JFY8d&MI,[ E).YwZEOYS4&r5GSͧSh'9Cb1-Z:_*hWUⰴh ^ 7XZ˙郙E, Eold^'G6iyZC4\k [H_, &W4.ǚ-NuDͳFD-mRgË%g+Tu5h9% )!)K~,~wR߃3ge^Fo~a-{Tx)To8`xW6})I5sY\˚z2䙓PP/#:Lsk=^W=ڢQaɐ{s 伵U-q+]A^cEE20M2MO9fQ:mN4TBIҩ5lm*Z*6Ѩ\-8:̄3S e]rTPc S@|(NҐfM8m*<2.8eaZ.A7Kr\ M}h+Eyw{lHiStfn5![MUl~FDZhL,~MIW'2m&bAZG^M'ɐ[g&Zh!ݎ3kVUیh!%g?R1fU\u]pM|ф" vxղT)dA(VIʅ_B77DD6hWoƒqcE426V8,q  kzΚa>xw_n_ tiWR@tshӋGDme9ι,XyȶapefhT)P]L:*&’U~H5ȁ(NuCCYo 狺D&G_PF 2F4c_ϣd:Ec̀͋W$X^ё>C6#&. !?zujb6u~LV69/Oׅ7%Z/b35B: n<߇vYF[ߋl5&pYUEM^_;D`+]|mcd%,MGë5&y}i?ah/*E- /YJvXV IVJY\ %䚭"ʔScʹ%~K)rw'[==dWUfD'{#'Lv^{۝.g re`ʖwod+ovyB[M/&|qG$/#qԪDK5֙5hx"P*aRPwN+oX[2 ٢k \e $YȌC{Ȇa*DY[sdb2T&lӦV< ۖoS蒽WoJkɮmD&n:uMHQzdhs>L8,V\%PFZA: pږt6& Ų+%^y0a,]zSOVjk>u8lbawJw%e*(FݽaMp]׈n\sY+87,pDZ+*x~`Ѩ`I^wE[,~w4l%"b*d+=z#/’C~ fa|krdYZEpS+x_*/qFnӫ-G/}Wn](+DE4kwG?âcS'l_W]8ǎLdL{AYͪUUP[uDsA  ]Ɩwyxiᑎڒ.:ED ׬~XWīC(JL -ABg=+[600ijCaqXQ<<<󺋳xEʤ K=W( TC<*($+(}$/{:& eོ̢Aw2p*B͎` 6` 6` 6` 6` 6` 6` 6` 6%vY+IENDB`PK\img/ic_website.pngnu[PNG  IHDRQQIDATx^ \Uu}ֶ^B2M%Ue`@}]lTdMS r{Yjn~X ^Pn3 r̅wypp8gfg><39<F#pb8:V.3ob=R8xk 3F͊X>&/}hc)R:H<4Z {{'*p^~rHX t9qGl=T&Dƞ`>!*}O} L3kɽ!OavB#arA@ٟ!{X%`^!?c'd<2:7Gj%3バ̥hxz=̌Zwh_!fɮw{ɨSs?Чvä>Fb?3g>M#|Ѱ! KEThJ J4 D2zof}6Ja͔Rm#z2}ܫ 1h7}*0n[<; ZR03xx|/x1,$:=v1Xd?wLYޒ\ &==ogq;swsrH\k^{gmyP?ޙ_ca~% [z޿/0w뫩 %|.tJiQ0djޙ?2s<!3^3(yU7&D,>k%[{ E;߉n0g 3ʯ{89mOqtd$# `=CֹD |C&bA9Py.o{j|&z FFxwh0sB;sKY j?ߜlSW}uJ$ El8?;I}$Idיj+0rhh|]pޱ0HS4L.a!hQ47uN mNe0{5ɏzCR=BcHeZ80Iho1OC]( fuZȨ4y4'+g8YE8`9Oj/`Y-liᳲn>-e ZFE{ 6O ;,FZD$40,@C/l,wc0,ff\&`Y&Af;pCFyH̪SsW~vb[8CF;s 5Wz>:8RsPH[Tv`}^qϬ(2m>SSTQR 赅k>Pпw騝?; .E?#QI{ӥK*ՔHP^c _3MAid<*TF"ZEuBr Zf ,P%ѷG$c~5aJ+ep;tQofa,L G#r>1($0J}z8Y z7gDe>&j: :/%è;l}F)w+?W*F Zu2)qb)%S4E0=p.Yp^r[bj$@̧q>{4Cyn;ѷh蔅n dFFY4|*c<1G33-7;()\AUyH$yWWyj[3wwKJ[Mɇ_bg{m'9uZ 6))\=Ѡ6Bw$dݝj8D=%5g PӬZZ AY/zeh:Y(Yxwq"FY*%ɔ@QDS^&]?j'g=Vy;%+p@4,[s@&Beqn sr%')W8wEKبcߦ7B<9g `Eʲ">OJ3QCTxMѬ Ooެ3{3445;|PDE¾hߠr g!Ӳ fB:>EBm|3cy%fg>Gr]b9GdH-ڕVD #4B-m-(߈d;ZQ0c^ ~ P}AuwYڂߕZEʾNm!I Y˨B:"GbsP ynMCR*k8"+eIG0LWEԠ ?BrNN^An&6!sdȻŲz7rC4UQz7)2Bvf0h$HMHD,Ȇ|׎#dx۽iQGYcfY:\q<5Jݻ9$EXRweTE~j[p h6_j,0S-JѬDs.VW{hU.YvdRw*𽵫j&F?٢EMZ!^m;B# MD,X޲9$Ze8#h*)2B#hGvI* 'pWkd1G3DlnvL4~hô· yPQZ ) ԛl$ZU^TK4e+t=f DCh;A{db+O} Jr2#ȆGɈٵEuӣDsN h.Jbh@w8ڦ ͵u=?Y%'mu3h6RyRh( 4ףY̑9\Ry9O c B:KM">? ꍾpT4U>{$m>,[kU%t*ꍲ|K6̣E= TgS09۸nhAketvԖvAxvEף{D|>]EhW!%#{$G>Ʀ.hX ]9[{m?o!l;/xVPDs$Z:p>_fW0 .(GCc;[XB]MwAy*$}⸡E{}ACj+ZmE)w+S.]QmuDSE|qwN`)^{43; jB`M8 h iL4V44R%I? 0#Tє%B_!)= *>mX&MְTFa)>`S}?ܯA*hZyмGv$P%Ns%ZХ ƽ`&e%Ud! DrqŜ9C֙pONƓSꚸKy )/!^ªhxجܰiНѧEklւgy&}V%ќN ,`rHP=Kp2šhqpn'ZtM/ܐh 4;q,3Y@ZU~}y,>&=H2q͒%1NLԨߩLugE3:;&~,!KT`DC뢌%dMwТzeCr-,y9{TPDCYʅ_hVz^%7S4|6{ UD]`6 po\%ƫ(5pI7vݪhDS_,=fEl<% N㒔yAIJ5W ]v*'hxEj67b%ʋ-4P"٣ѩϛfR2s[]AuҪ_Y0MB_-j%EsxTKStQawq- Zy|>slli/J*5y-h͗ÕQ2x}; R'$E:NS [~KhE2"_| OCS/j/GUdkeI̦O&W%6vos^ zy쏡ٹhhՉEdMlV|sN)-\(UQnw < XM;CƑh:wgruceUfR*[RCz*`@MXi ِMV"JJe ,[Ms!ՙ" 쏸[6&N$yWF,FJe ,ۅZSϲll_ڥT[ak6% 9u E58b5\R -MRD]kND@VGshEҕ;v]'"*~3FgмJN".siҔJ6l$K禎єt݇.k@V7(;/儐u#ok/gLH*;џ~TJ3/[yV¸diC.%T82?s=e78iTs4Z/#o&W `rt 2 lM ~g SntI yt}*xNȄ%)`tdB̓\4#Бߏ#:Q#xl s~ڦʮM:dhG0G@Wցz\&n#6]*L_ҌaCґx˚_G&O:2xNH1!?ZG'vwj;bĕ..R \]BJ|BIk `DA&8¹yg:λ9}tFj5pl5cxWF*ERiǯɻb$ [GlҒQ:f08g֤5|WZ X&4wj=lD7"$)Xb54o"*`}y]{x }:2:?~=f.NEMBViCC4*lh>O4qs7Y }<3$dc }AK?fT ٩#8*7kH\=!q3A NuS֪U9`Aa+.*H՘fݞhω\>!cMBnN k I|.p{-Rڍ;Af9:=5񆛭G{$ !bJkDzBtQ~^+=}@n{](6ۜNޙT; x38Z=䫨\ICrECօzԋ!^ZQ(9:ͩ7r `l(}kؼy O5=ͥ]b7)z[>|NjX= I^L,Sՠp:VO%5G dyL֓~CPء#D921䛈R5O\C/)4C9hv dmRN3l#td rلܼgk #|I&3϶KazHU|]:zĞt~+x =B)ctm dJF L!{AdZr*̜]ƵR2*R'ʔk ׅޝQKf͡q/l|ez1A,2 k4*x\:`x\% W2-'t(]`QVq^ʘ쇫g݇ZYpU*x/wޓ@oqH)}%w2+"$FOK|cӮtVe(1(ق.5W36U9$ lq#\!]ʩr18K]Rx!&*x9ݬ506*j 0X{ڭWC +~ 6Na\M -;bV"1{۔u[ 9( ^m'7 SAH)czQoL7kYZ(pvq' +jܿ o1XW)w4v]F]]\<'V1d+Jq7SXzYQx6!+}y2>7+>!֫}( g-~=ި{vSmBC:#f#S  ی=W=r gݨ8 ҸΔ0./`d=1?dMOqM23fD7jʽi1hhV1 ^ Oxn.I}soРGٶaW ?%tJKbzvd.nђ<> =Μ>/!N x)>Ըä`7Ҧ j YXl^iђ1{K oS^UrB 5"Uu|Y6B9YqEGڀm ?%S=@~Lf.:F–e ?/&=>K^y7Үwr8Y 02rzL^ C5R@&D鍼F oW^G$ ITY/8͞vo>'6AKCEf/IKHIOɡPcד{?(>l h3WT hb6oޠa6nh{K*m%^аNT wZO?;?{m lDt)PM(" GHV19zZcg 9=I("W[Iwg/N>68;8Z->>Sɫk I dv:g]Bhl6(ܺ$@_"v8 }M$x`!Nuڽ$50I3%vJGҮ7toiij9t.h*-͖D0cV+ꢛB!Ӝm})VRɀO h-ۘcON%'@~J 5t$.9 DDS=Uh98wK F)"dNyjr _/OhaVl{IC+>;JNE$~,8%("3&JAOrJ-B [him̔G8 C D,aۭCLbv.3ުu0.mQ-z}ީ%mLdJ<ӠfɌ4>hڊm:ci/8JNq4dTQоOΨEw#nX qtfqd=$Jn>_k>m:b~Zԛ%.SNSaq^Uh3nf6/CK}:_4. qа1Y*h4Tٙ,(hx55[Kcfp`#@1hsNΒ'Qu+1,P?E'*4nhPŃ[F+vg@so)dhԫNSv\:؄b(SJj\?7Dg.F( ۮE;OiYq /nݗٖ2gq`0="|bh-lEfzXji7Xqk<4n݉qŹ,HT >ўWWCٍ&&HAJWLI@n+n38 H^fk ۾ƖIԛavX{ UH =ht4Tōjy(Bz=VKA2'9o&7_&ʄsa06ҒE$`!}+ {\qwYYyY!<1*l%HtBٟVDN`><B4 pzQL fix5dVRfmƛz3?;/r[@Sω{h־usR)Tѹdm$zGC/ħҌ‡,XаwQiRaqckobMg؍B1?)3,S^ \(ɒ8ъm̩4J/L[ P6Qf7!,Va7ê2P(UY穛Y"eGcfDN\k,F$. kM%knTnN4xU^m.鴝))a9mBwB:RߢaCj^f]-4Lk^Mm>gvWV|ܵ6>EpZ(K=YMf-=\HӮz5b`$3 z5;Pbaø$d0(Qw%\,!/ۺbL348..ոz @ 48=X{6]$y;mbL6!d7x>̂u"h˥[XAlIղ߷M*y-Ja+i[ ƛFH'cO, *JY [ -r۝<,gic\\2MI Fy- ƄZ.N/6a hUiV>.@gӱ,Yl&T΃A_D~%%^%w/I;k${&󚘃fщym6FE*eӄlMNB&z=d1  kAP68xL6BIç4 c͊՗>6 k 9 Ǭi/MH/!I.#kr>5wrj=rߏ|j J^nA|Jo!eӶ6@ 30&.*!v&Kyآa19!Ivr")dtJkHtjK TZ'@Rt(PDM 8pKN@WW$\ʔ,y6Gmjtc@A!IZji4scM @ ؒ&A{cڒ @ 6%s]Z*r4̣Y mcۿl5muhht 0kM M>$_|_xgǥȁW~= <\uk,=|c L$׍rPmFhGGPv(,o$"%4VzvB]QS\JN5pދl4%K5 !#[(j7%Q5C4P8Jb ?q MGՒ:n*WWl&'S)6/,%篖s4q@pj @3+^q)MGX}Iɫ} Q&WV1ZaPDjW|!W栉Jb+e a`jPzMЍds;S"3S%_4s$V{~0Dv:kk"r%Aƨ7mJfqc@CL<0X-xl` hhh<z!tʠ`lq>f7ߑxA+-D (Lݥ-XҢM@ov1*`). s_Z㞎mp9 ]&o{K< -PXj^~yfdXLcEYd긍Siz88’pDyX8y5[ Zy7: *_z{j]m[)OrSZc9|4T uSza]YmXi_M q :{J191 __DܫTI:/}AE7 r6\ח(9Qlêmw0{ 0cdSy 2ԘÅ2L$zp y6&l)/ɒj mψ-GXnTRFŎCL\Y5` 9q I6?zw56qvV[h T9̍}\Nc UPTT{٤q=M ͒0dgiL83qz&7.k%\6)+~M[d7h>hdKM *ӃЌkhDMS$,bkmΡ` 4>YY5Ki)E$qI:P \J ͯ_8Cҵ)*9 e^[Va0=x@BRylZqI 빑SY٠>COǶI&6PQ&a!3CwrO5eIE#eAX[~-mtAi ;jg"ؚ sNLڗ\԰q ౦ lb!< cZNZ|$(ePO_D91YwCbn=?teR*4`4KCUZUo]*l.W?0͕7ʗe!E8M Td  ˷:^C\S*?ʼP|% cЊ}Mmz{Y–= LheRxB,.C`J {tY]Ce-L> 2<# K wUlJœ.Y [uH<: &eJ0' #s) @6)D2XzU%heG,zZ H֪A`7칖,ivY.xtƷ&VtV/4Q%!G8#;1YRהRЄ ¬Cxh\2ߥ_(k/ J'*&P_uzk7' su֮XW,ё i 4,瀠2F(h*\YtY>\ȊGYIw$ +<({ׄ8Wj׹54̮nh3[ЂGlM% k-pkjiɁq:PCۛX]/13/` .A7K QW~?4%n/g$Гiزt- ?4 5 54gX/wΔJQ8g9QI:h}ól&cEeIY 1<Ԣs7(sH>FܱU%qV@uLp=(װBU5cwfLվWy2ǫz(@w }c{ B݉e*z^h=a&3Vf4s⼚%4I}+l{Z>7cX, a Ϡ /&Aga$tb,{fNF-?ym:`~#bn+Zo=POCb{~p[a,46 İ% kd/hl׺r]^At"A d( 뱯g*4n s4չؤ2mc>iX[~gHiqu=3t(v&sJ41)LĈc'/ȉsZVp>&Kb\9U*hCﹴܔmdvܞ/<ۥ u&̳GWn+`+P p~Z(kx9Yۿ4x3փƠƫS07N0Dyɘb-)MYes%vtre\&vt{m:i[x59XlYyB㱠]O-pXp#:QmfKl{eb_V+B1Fʂc0cea"m.Ģ|w^L.f'ijPlpJNX!Rr:(g.>АeqvN߄vw`z,$!dlܼunӿ%>93څpjj,(J j[ y m6fVn= +̸ݽrc p[@+u 2S6nƺVF\!,:6%-TXSS3r7 U' d@M xWZ̚OMolVrCVBr4f벴$R0Av5 zE4jSl;<>cG =r{I/rgIOՋ]ɍJbYD $^%VR?*@FH|ws(#5޿ 4L_cs i顓0*[ A3lD}{$?#uua?ھ@4)8*S R'r|No}ki;~8%Ieh5h^$cH࿞vՐ|Uk*R (*>![;H~Plp5nտO]i4K~J`WkZIΊ%4&\yyC4,{_ʟ0ScYvնH-o-$kWɆKHZw :c8JUf-ZԸUKZv .i1T`ҥh[pF)`b0!Avc+d <0VYNMۇ\<f6p>*t Nٻ̇5>BV5'yk;WJ^ הNC`qf9g?|L&܍Rr 3I^Bw ZԨ']eZ}'a=]&JlCz 2YJg:A,9ɇ^iNCz3`?ժ5Sair C-@r⠣*12m`/ҢCMxQGcI4ݺ4tvK㶫Øo/ɰO&A!C'/9Z#\<'vn3t{+ϫV]:y |1Ŧ\L2 Kfx*`Ҝ}hfۮ!|Η6fkƭѸ>[^߸m"Ya\mt5k*׶߱Ͱ9{|<'T[cA`xQ:l<4b; Ppל{dvًn" v: ٪%Sՙ[{BX AI`fЂ^|!)eK+$$|S'[/t;hBmz]קɴs;}4`Ux?K3PޓW?M&Oz, R}g>|hV9k..xux4j"kGwљd:UemS}]sCsox-03mBo߸dwH 8ɛϞq@B5W)A0/ >#@Șpq9LyWmi4|}=a۞I? ;o~AxAvkGIvANnWoՃ_^swM<'#kS죑i>@ ۇ)r&<{ܻln۾Da_'צGa{cDѱ2l~循|D)0ڥT{տ +`l Ԣrv>D{!&Fɇji{x-02ܯ]nJb+#1i3PiL>3vq~>H:r;fC ]kpd%#E:r!,E{3 nYlE3*m(5R4T?P1hz #VCKhE+߆6z#dG&YSbRBt5풍 MtB͐ü#05=($IkoSʦs?j"G;߂jʼnF* {o8ZC7m:_+#жHz`0hWTIp` r0A~ܮdRy 7Om0o؝$3HWmĤM0F`80.˾(hvgx`o~6 2&r j'Ü)h}h .a^dJ:l'qJ0N4SHC'E&W1fnѮr1Ɖ!pquh]H4"?m<.>4z廣HO,ܮ*Db ,t|9 _hUr+`P]z wuVHDC'(h."ZI42UE@VF!(Ccj svx 4\aKπ&(Z8~ȣD N,nh,V0HI> b9Cvo:>TƚDe16fU8hYLMh8X6^uf^ pMNJƉhOn N=iIB[ o-Nnq^T *&<:Eۛk%eCHMpPͱ)Ø%&1[  pw=Ufɱ{k|#5}; $~yR=~<ׂ)H,! 3J0"JL(+fঊ?>x!5OrCrPN@6wyȜ2㖢LahAhLɤ8I`"i R!cI6EFˤ S ¹uZ \"̊Xx&T{w 봔k$ 3rq1+ua5~<6Nu,;u`hxT&4~5Zh!>U0Qdh  7lB2(;Tӓd=|¤ ѮMqpm\%BNZdI L$m>-c̒I/mPNXeZBKhxpDZyMJx&~:q$h6F˪j% !9rdFFZ|ADBsq.~_vJ6(Z2}DBɼL7GFO<65n'gF4-*FM.uwXuy1%nxp2Y880dg e0N4|Y`+p뾰Y-C!/ď/Ui6oBY7Z. jAdf-Z8p+V ?spAN2}.ZThwa[yz?+DC4wH i6"j0,"æ~Yhb(I4\Y,\>ݞMgzMgxv'ECjX}=|B+.hϽ@o]@1}1(-%W4T=p$53D#Y|ևhQi_O$X.41YR,5{zg l^~D&myǙWI:*{Vh$PjH_Ć?9CTH7E5ջ&A QgK 0{€ > R1 s] 4hePUvY(r)n,PzjKhLahN"aq"~%Y(V&E1Z$ܯ( Ɛ;o#vD"Tr(F ˫\x#4ѼoHà6~hXEyhD:hr:ȭ,_3QSGɤQ`FN.J$]>$qic6L',1 J0])G,ykC4_3 ~Q.BH+Q Eʤ }DSB&L;B4<80I`N)%@L2ag}bARcDjj8?Ltb$:B[@\Kfp( ] |*lA2 ԯ.whE~gqQр7G4τSRDnnJ,] $ >Jչ<*3~ʫ)[[,}s ,:|ZZ4Glg\T4#erX%.0xVRwY$u47s`hQ:׃ᯑ fM;Qۙ.ڻw?bIc PH]':?D:+ֈF<{ݎǓ¤z4F!>N;v(CX b6iHja95NfSq.ٙ-bez4C\턆f&(T/2+`kJ.EC %uZ Pw2chBcfy&ʺ6g]xK[/QNq]Q?qRsj:ECק"&yCW}EkUdN6KyB[J4wb_!)*Wy4K4<V6$ mGި(TYk{9fe[45n2a7V=e~<"$0.z %!໢MҪr߈K'E Ա h6k"`*NgxvR}EJ hZ }{CD[ut4cB&d1A\~Rs@{DL2lzv9%dʚ nVzh`{ŕTrhPc@qe\UAmeP Kw-ߌd{=hDgIrzĥ@RH+GhW>e.TEm?{lX{if,I$imȚWD䑍.~5yjR&m+̲bTX.&ٴ=`rcRG ḻ^oSNS^:AM(IJ;Yb3Hɕדb`!ɄFوfZ5O]'ĥ:%nCP햢v+~Il_*bLhS,ZUBuzv ŒvWo(Wh.9 JYߍNd0)eWO[>tz`ﰰ:i{S5p&@"<*$įU(ШOPkH0yaY{I93fvۯ%Kip)W4Hv$S6?/ӒCe6CɊunK[嵃$]Q jR9MUdD\d?td0)4ܼ9ˋZx'fVQ V[2eM L)j%UPQXVZHYl.Ǔ)#P'ڤ+)GJɲ%WLrI5T]XMUtqqqq/sdL|qA6zD8ǴTwD eb PEa؝{Y z¢UwK^PR].2EӢ; ;f Ȧ%k%X,xdٵ4mAQU_TZ*?}/t3g~wѻzѱgzzً I٢Ţ:zC?/,B?+@M?2  ?F?adYjhVVpXxxB^.9 . . . . . . . ԓ47jIENDB`PK\wf3.3.img/ic_connection.pngnu[PNG  IHDRQQ-IDATx^\ѼlTboX`W,bG{GETX5V vgօ{ga|?콿=FMM2$L2$L2$L2$L2$L2$L2$L2$L2ɪ"&|A?H&R©PoL͜@Yh F7N^0v߯nKs-SL?ޡAS]'P%V|k@o\ cF ݟkI0R70M X'd Dts>xu#$rޓƞ~ &k0@MM?kBb5{c;%h DR(5M|3\u@%}f4wvGD*YMndкj&1Fψ*`+^Y;ؙhsNJ4Y㚦)0=o?aIVVKCYSNKa+o gH#,$+:~U'׸ &nuIDd7w^mgJ# $V&@wl b4M}wqRs/ulz=4=,.X u< z.JɄxuCϴˢ@kڨӅwttۨVOcwwp{z+׼(aI9mKP%hx6)FUg[GjFNҋ wk`< 3nEQﭣݳ',-yo9H 7zbh<trJ,ƭtX9wׇB吟 ˳ 1 fB'~|+^Onh?I"jjh~nzxn`qŕ& z=_Ήch,/t++^@U 4 ֍kN[FEu%3jF{=Y/P`yGZ+L`水ljۆZpln ;FX…%_wk TS@ץ;XVdoړ<#F D>ځ>4kBX)k0[~,bF;GgEEqܬP`HNh+>)˦\a–'EZSyIl؝l/D]Ubf$dI9[\Ȅ3BtJlnlSz c*&=!$&+YEksxaay"kz2Gɒk^GZl/Pn/~F{21! O"X!VdA&. %z)h[AxGiKlqp+Xѣ臋,EE.TޮL>1]imܗ+ނdc!{ì`IlqbZ7u{Fw.]\[ s-W0C-g$w.bل61': +KO i IĮ9lthAlǺc t=$ZJhraۇ.c36J*3_g&0C FX({Pyr࿳/̈+ >^y7 zMi?ΊM&$$K;C,i dOq5d jԡЫ9vxHZamvq:xiea\AEqx6 D\,UThH? f^/x{ϳ`&g+Il!aayr/`Pop~ۇYBi!w Z ܺUS)4;_Nc& {.7qq#Bc 5ҌЖ""C/WVۚu'/Qd> ',OR9K21|1@eBK=."2N|y^- %~*Z?[Л% -;S4M6ϧBtUz&g*:CL; ٩ȓZڮI"B[Ɣ!lB1vC)hȝ!v*ڞ_Fgc39?yvڝSmA :S:XR#ȹb˫dB[Փ}鄖;p1߫H߭ؑ+h>cIiVO.f5#.>t#M'ɒJh'3e=f y0M|&NKBw3+ޠy|zmI$%g Bav |qv| vw_ LNAX+\9`ʎJ (O >NkB:֫ekb[FNeŧёLB3e'F.Lp7+.>؁OZbֱkXB"Дpdb3xg EG_P$ "(fpˁ[p}L@as ~/V2X &*t ; yfPH!xE=51yێGCy4y!7O&SlW sVӚv¯3q98~ hB#9l":Yq'4 +=퐭@=] CD]Ns;B1r9e2QcDT$֞򊍳cf TƉB bʎe%_\aE OiMTYzL/21R0ǂ4 #BVL/x/fEC lYhDDdVc0V2&z[c6xOԇx_` lȎ!M+ >1t.ցCk|'Bh]cbt(ۏ\%BC ĀZbV,ysJ ."4? (YKว Fsb4#v .+8ykZ0`<CA VAAMkc a5Lz5, < ʙq?wpmLh8:Չ&eo#",Lyb&BːO@(ÊJ }/xZbqU #=:i02E"3oqVݏ+º+D1Ysas&n 9׺-ifZffW,kz'%| RC\}q]ȯ[;#(1pnZߋVKᒼ?2ayӢFTbT?)G>y]LN(7Fz0캝4):Hy5Py8pԼDž1Sueϯ([QS֋juqȚM{VPb -)0*Z;xJ6Hc!`1`!J9!S.2ZԌ蔌0?4j'X8/rĈ'IeBK{$Lfڄy|mY|wk~ʙ"B`0"Ad <1):j{z< ᜲ'BbPaA$6u|o)UBZVZ_W3$\:8A~( bqccJfaTf8+Of8bA#! cԡ#yK蠕G<|ejF hSX.)Vþ#`0Gpns̈́01\֓3I M06vsh[֬M`tZz}:,aGX(k5ekhaPKҞ. I=WAug'C7թHdH ȉ:=*,qOr|VA X[4T<D'Ŧ ɦxY9剂2MلI1;f?(H ̌ dI ^m{rf_hQ8'AD|2{'c> aP '|~^?!oq "tYfrpK=l kȍhi'A)|_X13DT#Dve)lxyW@U{\jwaR،:MaqQG Ǧ¹Lc!i?ۧ؛e\I)%gk"ÕMHVK_hd6tе\pqLY00yCRp) ),Lc2Eo&R!5!,SeIo_CS> +FvoHW| }i27 ¦L}R G(txgIL` +i"KgDvx͟N?q{$,㑪ib γ`r;q.GOL<vSAKC;SCB5Mv%Sc2 qߊ"my١>ís 7 ZO Rdfg𼬺z.麯Tk?OF bk kcYl '6D1m2_Í'{g_v>R; -FOcל`fFfٗUFٙ38QörSY >8w4goDٗMzAf-  o&9ХsK-[oUPQ`'7u0nV"h3}CY0<+^dLH'%nP#.rkY ~͂?Û\r;{ bvÛ7iB2} ܞ.K:xȏ3rb5l>i ]j 'ORؚlfɗ ]%crܥWaʉ[' k =AM/9q#?c@h#r6 ;mShe7WZl (0#4^ .>OT&f{{ \|a&EΖd!Fxxd"4B'Ҹ޽y_ɦ!$3{P7vS̅Ô}a=ᄹ1D/$Bz2q LVxV&!k LNE6rknG*4Xl״ r˖Ol:8' Y3/.횚UbP7toFL={p`R!2|^2c ׬VZeDhnR B:A9ah DtRAhfH vi >Z)z7Y'DtZ!B+!B.iV.BQoZ&}5< 6xV8Ͷ?NSF`i:lަUD0e`م:.負ᄖ\$Eh3ʞh7 (ɞB\д,AIP:3&|$49]~ TkЂ\+3\e ɀ T6[(4G`89ZAg]"CnMg*IY<2Y3Neh)[c9/DheabI:$sS*T +.4Ms"#*1tHf/RIʂYFUА.kqt!fsBuB#V u#=7,(i> }ddb-e)eoF˻,ĔvKnfm6XwZf}ovW GjkyROBsExNwRIAoT4ub }gצBOV:B ϓgBiIQU6G(~NJ+Z<8gd??=z Ը"o+а4}<麯TԹ+\E&"&ϧ4N&`x4/8gG`/.ց;8^]Hh zDʓCk=ٕ#~o}s28=)<ۆ``6팇' ˑ2 P@y]j 'jfܜt%&T~W2*rmᠻMow\QaY\wGD*ÚR>@T (50ٸ RYDVO9^[/26zQ^}p m(0lES841 ~%g4dFzګ}OwFAp@op@3g;Ϋʾ6}2LN MpL{x4J}/]2Pe甃5Ysb6K+HKl.)9l+& nL#]wr^M)E%^aڠ׏eӴ< _ B0[Vz/^W6Eh1ɑ8tTQ9G+Z?o,PM'U9BC{a&lx2if)c3|Sgr7I:nM} D\(HZ6v #r<rl"6\048vԱ,nlq!FTH x56L7G0tW\躮Z#U#Qe @1 qPj= :\= |8Kc&"&ǀ~OZik6xrߍgAZUPdw/M󩉏ܔFwshyj'D_&ZxIdkAQl D$5$'8ߩp@q }R7Hq&n(TnGc)3 [A{ex59x-Coڟi܁'09.L:x|Ћr&vE3;4jUX-Mco/Or΄R7+ *  Ay7~OAr/f8{Zu6i;)537rZ|_Vq7Mr_F:^L|LÚb_|oQ*84&^W)M(URRօ=$+4uCKj:v?Td4l׶YZ^hNVEl,\eYeI0T4E'6t4@M j ivJ6"f~Mp|Z>CL_-\ЉvǕ]`̆]f*=E?]!)"F ?Z*VWw/ - XÁw~PNd+qW(XTFa'# mzH7a+B:=-"e4ߙ$R/U7'}=C{ӻw|qmKWz ).Tؗ6?4'ߎnqQV fZMo^i=|eSeocJ1{1 g?9߮z^%ZUfˮh۳!Y|/gR UwnQY'GwZy}^i8_X7/u|"[lzT;(#DL Pf%;5*7{ԧ"?q\RM+HVCL_[nM]wW-9$*Hy+y3Τval$YY-"u];߮zwt"lVK|8]91Ϥ$8ra7]isI.a5uY?~e탾S? 8p07,"l"l"$'ԏDOJ9'mȭ7Ǎ}v+:j`dߏl9gx<.\p… .\p… .\p… .\prWmB&k[$m[!S-V͗)^jkks! sʍ¸woV4%4d*jǔPWVkBj6 ȟÅ<*u(K+cs? ;9~9 RK3^]iUO#ȟυ `R}m@`QXhr'OԙZ2#NoݬjXr$q;2`x{=fLXr@j,.MoHYf 9'| }\G%{>:][6A&hek Y%;6,É31oŁg{G.5N)-ֵdtH$CfΐQ )&W 25pUdܨ~fL jKM:pN]Jy4Q8j*!1nH2 4pRXgBBGrDKTwGL.ssG9,̠D0Kxe-8!OfиVXtm ~sup,Ic\.^@")Kok`! b{VB 1Iz$50Z)9<|\3h\D]jEb XimgMD|5wp+R'sqruy0 F sԸ%xO(WqڙB=ʌhF\F(T_>ץ+z޷xD+` Oט1ZK_Y:$t}F _}ǥD.OҿFţn0.{8f$})ZFBcr@nJPc 4^W:E'P F7e2l.Rי|ъ+4pQtRJDwxp@'' ºe\yܒM^'w&'[IqzH\zER3R|u'Z&1{ץHkhXu٪T!4Nc\oBsxO`c֢񌵓' yma$[Ѱdo5Ow'UKݕN _T)MpW:F9':0$49a$uL_өhyf$~u4Il\ˆe X!(X}:^0Ub>ArArqkShdJ`ie$$%akJ Om]go \si!$]_ixoElLnF [e\H$OTSw$)!-7qٰd_CAdxK<5ܲ6"KH)7t}Smsyh(VjOaK[+,L]tHw%%^15k%ZXt ФտY&' %@ߞԻsN4n͵Jz߷fWSU&}.9sMF/$Ü0箕İ56#Ah mm>G:/K…lFXc"ɦ&G"f>aO&:Sb3/akh,Ϋ>E6WC'-a2st'[JA~Ôht=*6.Ot#k|cwa &D[UW•HE+c4uGHlG0,L9xA|XǐhS#A}O /_C4Qi狶]߽ ×x ̮T3bR4[pESЯyZ m@kx a`Iyd ~ɤakD:K/}$evQ)qږE^%kqZ?ee+J~Cc`\X|YǢӰ&MAYTW&I@Usx{=e'b<7 [Cf*>ًfL +yz]ѻЧ{/(N$, [5),Ӥ57`BEf)/sDJ3yRpWl.:nl|j/;:Y~C9D^\?,@'_ToZJ|ٞzwؓC3i Ȃ3cgMfSxĈ × Y4f p|j"ڄ殺*Y);Fdžh|kz ;x7,L^H3b3p_h,دM[7i  iNkbw5>㟨2a>N|WI0w QhO1h}2wJ ΐg":*,Џx)#t6_߰zn+5L1>T& ߞnHl`+dAN=/6y#V2lB< d!w i|Embі i'"} Yx}pLXw3G=#l|Bgq0XǤU# ^\4պ<&n#_Ӷ#3+n S/B#<&ߒ+"}NtQD^m0֊Tcr@(G#gzqXɫ :Z#l!+Q&j jiDMu  3:sѿ6m]al#pmEsO;g﹍-D K7.K `8_i_uxjs[o|H\u.Z_aox'66Mm^'ܬ{Bm; P:AFëDX$Zx")2 H>} F5z^ml!Zh/Γ+.1u}F44"l"c4砫M;h' E& .lt;2 W:1x{B7& u l\NU (nՃT@?۷y&hxR%J]PͅS>*ܴ.UB]\H+4B4|e >vA9hAzDh=V!n*AzZD+<&u: .YwCK@}:`|Zљ6զܽyP<~A4<(!xL+i4)=Vh(Tnvޤ1kaˀh2P'kXR\[u󰲂<8V4JIցߘBu>ѥkE[j% o .(6V k#ĶJ^X+ jId$Sȕ:[`h.!-\$eV=&=V چF{TghhRuF^&"Rj-Mhq֊(PeqvsoΞ&d.|ȉm_+뎬 T- dW@uriqTW6^4kD=U@LVia\D vX:w}^) )t%ڸY0v[ʷ<&oaG[_ DKH 0dkhBuFVQU0ٖDz3GsL:z91Dp/J[7ijк+Fd$6L혰 K_PT:nS9n鲑l?XxL3"^?28.+O(]/NANb5de7!!+6lnlUw ,Z9nI Y?eĬg>_xn%P9f9A2;MfDSC}:h V:D{k?,s?yز5&RzVnfx轋grm{t}p#zh#k-h뢿7F`̏'U \& Vt/ыZLEyofA,SЙZlODnӔ^,8eZ¯!&. Ty[[i DsA)Gt˜rlm²i|M ؐy}pdNp6 c{6m~}=yw첧yH٠wxsd 17My/l?I-`BԵp]mϟu}rߕTMFBfQnv.Bg- qU==f?*S(LƋXߑ*B G6|}y{4Ͼ!|xr%\lܾi춵HQ0m,4eăۣ8GhՆEA {7uǺTsEfC7{lA$M]7]#V>1K("Gf)nBʭQ)FU!8̇m*2|c>t#4Y|,] MCOABg*{qKM-̇X Qfmk>t3Z>aD 4_t ZO:{zTQ#KM-$0.?Q[!+!!!T~÷btyKSsfpT2єD]l& \tb%p읹 z5K |vZ%]|qC_X^,byh;҇`0yk'ߢqf:]zNݱhQ_ɼC0j ÞR>VޘRXwSm.fD%y[xX-pϴ VMW\ea5<3DA OlTM5Ӑv,z Uorhs3"-Ò%fddW$`mlae*yoT;8 gu VYMc;h߇5`ddDеh~%eII|єEb67D&ڎ #'2 .u78dm ؒFHf3-et96VMU`}i%=xPdZQ;o΀³#u*k<24T4%K;ZCr&mmdhۢ g.Tkuﯔdjm 'd9FᓞC7J]91k>\nuX3.CME#쌔@Xn>q; '.t z*j嵊i8L1I~ r}>uuVKN"N< M"MP;|,N?\Ȱ%vųr#E/#UM˥H*lɶki=c^?ўtLD4mN OfwLL\^#0Q{8D`\?0{mM@IF8p_ { 7}ED"/cI @d#=ZX* 0>B:(p*uwmaf5]hpF[%+u?~̮W5ʤØESE\ x|4iaEVAb,YDQ&"y.Zm>f0\3+hu3DžI*:zxgWTgVmRH{dÓ0c 0ڢOF9m if"I4p S*Bע)axlc0ڢOvZ% 4"JM ] /AQ49'3YfvE[xžJLZp抑E poL \@L4:ttՊxK.E#;t2D0ҶBQSNf>N#ֲ%ТdGk%m6NSO,-6X~?ZX܌_ar;HG('} /} h,[|ʔ 7@gbT6f138丩3A]9R&d*i$mΧXǩy|:GI)4M4suH4澨´!Z\=ҥVUy`}.9{-VAKk#.2HIhr1{Ù^ZU*4وL !h_mah1}MYwO jh2 =U|c5,;̀:LIv<>d/n/vSV^>Z#e+SL7BH|!1^x$Rg}4Y9X,dMV&l8=iECOwtdefvŨ#Z3,ZC1aI -=L-hTZLxvJ:})VNOЮTh hZ#p2(O ?#Ufmd0Sd)4%K2»X$`To&ɫ]gAG jFx3>F6r4ꘁ, 1u?ֱ`,ˎD#Nh>Me`vyjF%4sdBs.!3Ym-,*C9L4tO * UN$56o٬6)ֲ|f?,TAn}FQF0򘌿Ss?zbb,M5U'c$ͪ4$H*c7]FȦ!Nq-facqlKi)l\x' ÷, ֨"L5-c 5":R4Y $faf(oqvh׷f)J֬ wBӃ*x8V^D!YL2 >kg3q-}t'@E?CPl \\2Kq+?O'}3tq^ bql4a5-ڣ\4ݵ! BȺiȵI.mE;v4_^Lt\wYz:xi9eLqZ!}!lf۱[Mu#tsYpg%X3I/I7csI4cxds-Ho-$Y1 1u\G:rĭb~E1\+ѸP\ )=W 9%,ej{4$E , M H|cBy幎f5!mn  UnmE#M Aє!,%.F.>|k,-=a cn1 MpL4~󚀓FU4]04\h+CR)D/јGa4L#Rs,!t6bH((7( 9]XwM)ok/DT}^Ap6cfiFi.7D;Eo@9r&r^F;YUoS Y|/H ĸb?K]ڹnx1H_ C׸\0"U.pq4m6/ qK&`U&W|~@ưJw⃿|}145-,AoaU{[J᷻pA)3ADTP!D{>PU .7rw"%յ5(1Y /Rb C@'RLs_(z [4IVPO$_|] - _R78P7#N_ڊv&V c`ˤ B6UCo3@j#87E~qh'cMt\þ P *56o E|.fSdוeǖŸK>v%>]yޮ)U}ZW8^[!DcK BW,)KK$GD,RdIϓeO#ґGA-E~^xʓro^FK }#C*2;rt%zܻT.e|Y3Y]Hq)lR2ʲ6)\\ v) %ZAXxiL/Rm fG%ĽL)QA%s hyɱT!eF Z{M!KMx!HGs B4''K zϡ;2YȚiɉIe;}_LD%岐OWH[N.Νti }i1آVMW#uS%p;E *[)4=-ck}Oc8_P޶wp5LDyI[.ˈRXBF C:+Sؽ)2FuRʼ|elq+އ@_ayk.KK[##Yŧhyrn%݇+]?U᪑*/uŴ!(=Oъr%q9+h^G Vn?%@G4R׵'s&uO2jpIpFKg@ђoh$I  q_M2ef#@S&=,|A!4YGtF uecf=b6uDD7|{qHMDSS'1X}& ϧ`AC7ZbuaBftES̈}1zl"K{ddא{¹V󠙞yi:H-Aa(Ɏ&%&t*h[kDH,Β%33t1,*F$L,ŐGv>Ds+nڕ.pE0Y^NUh+a;f3l,A3ÖL }21v^9x=6<ְ}I|v1^ˆCˤ `va2LI4>{kdLk"fש EFh{xsJuMT'ӉOkgqkV?D,L8rޣd }m'yT}ǮFFVm" 9 Ckd$A"C ۈ<7QN6D{K^PKuPko@eq vvUFXt|5!RmҋY]ZvD%j5!E{fkD`Y|bB-h"&8DTܯlՆRTcɂ0룕݌md%u7+KI>ϐ6`&'H}Gt]\ACdr|LWe;+Y)u7%+JnIX2wGNȲb{{p'a% 9F|q1;S6r5l'Na!ыh"=l.2NfAhlShM:6>vJ߆26Ѥ6 hc.}1C4O4{mb.pC@:%d}\EɌO4d6٩f6CV%W?g{FRw ~5WXwQ46[epnjQ $D#,G6eHhR4ӌ2lVаY|)G(tv3Xl$1'H@Q&GturmG 1hk2<%4[L )ch sVY6 dc;rxshV4fAtY|4?in{V/nѧ1{ Y9| &Eb;1<ݤ0p;cCDK͑/7*t:pLs^d hc[۾KPmzo&Bu-څ'IKԤ*iw#:__%o< KmK4NNZ&upDL6E륅,0%*HUJ -|UC(NDŷl=F!S8:li1I=ȇg>aIEY,TEքHmK4j_[mE˷g2؏lj5h O{ӕ_Bȴ~n:K,2êmz"}|FR{d/i__raf[4߭4𽶎iUO.x680 P%|1|x8,Yj9|w[߳ z<>EH+lO{aU@1dBLf<-5[ Pl+k{8ì8l2 Zm+6gXu*ZWnf<{]hD\OBc Hc֬UwIY~u©@gPa1%D@tU<7%$1'FnHh-N^i}eJ4c@Z\.{s|m9է!d{+~.LW\Rjp1z#F sOUM4 p/~F I# M>;;* 7Ѩh{e/>e*tKz%"](s+u!6+dO-pȤ#Μ« D_/O*~ ii#W.h;,yт'-D>,Tn--LUȏg+AЏS rvN~ÞF1.!s0)y䜁 rƿ,}^,Y,MLV?ϲ%g"?Y1dABv?W_ꔴS3G=8:KVFB!B!B!B!B!B!B!B IENDB`PK\6&J%%img/ic_award.pngnu[PNG  IHDRQQ%`IDATx^XSAmoVU۪mvk[CQjպ-ZjZhWmkօZD`%P"2@ ?H=$}ʉRH!RH!RH!RH!RH!RH!RH!Պ3k~l630^Xz羹4k8D{3lf{twth:dظB%$, ,mp>xv&t:Ŵ'^t UkSW܅45>D ײ_f}q%h^|r@GMn˟q߿K$[VͲK6smUúɄ_摾hy,<73thvM?>OP4G3rZ|{#PBI6[UKf@iMxcMYh. ӡC7c|}ݶy@ K) OӉ[ݱyљd'w<湯N2i -:E!~&\ك6`vB=tqnĦvq-yh*>%È @Mv'd ͓h EF>w|tDLK=EG4F`I4V4,J שw͞@vaple ǩxt>t#Ӑ1h,T,+6{%qq~WV}pU=vs%&gY c$Q%` VEO`%I*P?++^[$-r[ &VsqGĢa6M^I4D.~ܑD3h^fBHX؋,!frDYBIMI4GDĢᨓh&mA6Ih h& Y!OIZmռ*n h& ˦WT;U칩л*PD%sHPaeu4Q+U?!5`h&+¡rEgCΝA34YB4d2K5veˆMVyF/rL }d /|U2h6 baL*6%u#% *v6 dACE;4E.ݦVJ4mppB#&}MȪGby"Xaj 3'}.:sN>wтJ+E0X4f%1η>i]-*\;<ؗ鏢`$CL02'[+'hx?ԕh ) Q){cƍ=`2pl}vb#j_Cc3yRʌZ!)|u"1VA֡h<.gfBw }iGBVdHX(~eTЏ3 X&Usӊ[<3dS:H}25 n*b6k[BjBW%Z|A$"BE'iVEtP`"JXR@EoNCzii='8 DwR*)inW{\!EJ+y3Wj追]5/.#ho*Nt>\9}vz>#Su@"~$}On VEfCJ{GVSH*:%*9dNELPBX<7 L!DqCf7m`>&M1jG5-Eg?npDːҷ9I3O_F.'BNV`Xi`ʖD2݌Q`wgD1 >kH37۽#~ 9)swp #qҕ$Uƃ;:5WRv~YhNڱŐ$-5$^2lvr--W]7Z \8@5hrxu#l;0`hp$}}3LP405hђ]̺۶QiLCII4$&42qG--[q!>ˈDJiɐ-'LehI.(GZF}[JFɾ7z(VP G:3"(pSIpN&}Ƥ!Fޞarh~E~Cuqcc5iF7о>]dASa ڏc>Zx'Av)25IFϥ!32UEE*<&[ 1ZTxi*oHт X[WT+X4|ה9]~ wo}J:EH2ړ 0E!ૌPb%鈦JECoB`vn qK7j! 9.?_x[CnWe2e؄n:Ȁ@pNd5j*%"jH%DW!;,''tY=`6f3dlHUqz{}tni?9+f.oR\cE+vgeεN۽$A򚓬dnA6F,!TZjKG򜞬Xd4웭cf<ꁓ!'K#^txer`8u+s }b:?ޤSblZ3b تz; " W@NZ+ Ϥ ߝ(p?ZyEիv;c䳾컡;6ف-8tNgN1#v-CL*+$.2[* ^TI _, [7MyI#6<-M>$cB#ьX4%?l#TqkQ>\DJs-Y` Xqwr>ʞyECpZF[wj GlPDoP;Mt4! %%2F/}2t2٠P/ȺiFpyٌUsʮ7udWOlNѐhrcϤ@ud("|W=f2;G'Mo'~BB06 @Q-»E _QNuE9.e/ü j +!(P|O:Gy 7=R@[`RFS#] [8#!E[;խB:tT eh)9:l+l\v9G|fP0P.ۋ0P8!NdR{H7DSvO n`+w g˸+p͵2x}g1'׻.j5a 9.:h*P|#a~Hf"I$CѐZ%adWUD z~%v\"!5#eeLrU;|G_7L>,g>ŔP4E=6{ \ungNpLcG<t]O< Ϯhx3\ x$‚p!{5mPg?~?C9֦lpؐ}݄W%'aqq[ J:P wj|DX$l/')-yYlrl+Vˆ8iHHj* :n} "3&4BT[4R6KZ֭ߵ۴G퇋eF*1o*n3zǹ:6)+睅$kv!"4E!!Eχ֔jv˵4睷8n t ?mn'er?"*wv36WJbGD 0ȇ )8)[[t;+7Oǹy)Z@2/U^eSϯL!0iK2"{DxgW΄6 TsӣTKds=mkqc: ĵ%*`  bO2/B PbRpbey@Ѱ|#3O !D攺hFtZ\|֡!^[9/9ӈ.ޥ\Ue3|->μ>g?3ùd/I,_nSK spN. h^dOyvm#c6ي~2[:q/Vd{C`KDww[@=D>de%$xGaLV:!֑~NTץhe0 [6 hjltS,ڙ[w]þ"f/m!~RX4i˧!D9߭Wٌ3ɉu)2q |u Y"c< /(}d#XVN29$.7Wa%)}MڬqU=f1iɜ-ܽijK9~`FK7q|q6DÝcE&ʦ6谧:RKX]h qGQD <>.xV5ݎDk쒼Ntջh2r6E-Yq6|ヌ~Ƕi#vddQlfS,hJ30hm^lʺ EM~뜩D%$  -!m<"ߪeP 95.I%$ŋfY`3;MFcؗlhU.9Uc |Dem5#" |?#PA˛}q%.Ռݯ+GS+GHx`Q1w&ΩyO95<=6}CrG/%ǥ\F~^ȁ\n_WjI*KRx~iwJ׹-?oyhð>~&)>UOK˱KN8eh|mf6Ȍݮ >K-:>MUKR5X$,ٴvoc?a}lslZZŒS5vz3,xAwjЯ-)P쒍[l'EhIU$%'L-4&Zj4X-IaiFpds,7 _RfvZ) ud ihW\}oIMQA[OLkbH/E h/~3dj'vO$c{/[" 2 ZY,1 W"rCxNF*~f~ CFW\9!Z/bKN(ߵt.IEZ>Z9؈S(iD֋*?$XɈ}Rg^!f.ZD&*6Դd.;ys'e|~ՆedU-9֝jM$KRɢ8FJrnzc1/y3!^Vubrٓݘ%*ECP*j<鶊XmCǷ%U"KN>Ȝ<vL'<[:b{d`mX\Q\UT4^IRUd þ_|& *]T Sr@IDV炟~2=J1o bUrZ,[0Cl-c$C]>,I{i(EN|ǵI_}|!-EƓgB==,35?5"(!B* 3( |Hv'W)Z'!qÇ~G=8..C\JK|rz^6g' 'p6ɀD2?r<+c.g=^zezftĜׯ'7|$RH!RH!RH!RH!RH!RH!RH!RH! CF7IENDB`PK\σM̽瓳6lذaÆ 6lذaÆ 6lذaÆ 6lذaÆ 6LK#DcDDS~oÆ`a_1NcB{z0-zytOUĻ+w=Ht??u,H qgPeg;G^=9440N.q avŻ=,Mv/4 z.O$kk{*u{-.yΣ'OOM~6'fxvx7&!oYkHY{p=i$r7-@"ǹDž}&ĂJw[챲<z*π> >T=LC/Nk5ZgHl3k4m埮fZY 6+[QahV/-l}K g4i>mC%ZD"z' [|{m^Ff3_#A M[+{-}no7Y \Ó;)c`?7FB tU|W$y7ŢpJ6M' e nOS"sةӤo]&/GqB,N{k=5drl|Q}{}^Vk PVH*{s;Ufk֍.TH&k>cvүA`&*1f6hSZg{k*E1A1;L:@x:B!8Nkj~U,zH4lBA˺'AB֬78CM SqA,]r+nnΞnm=?RU+Ѫ)wB cyԿX3.&BM^6ڊW&x[M;Gw\ߪ?%*j+Zleqhsm[B9ip߅a10fxUSĉ ڈ&CX9d>Sʄ^yϧ Bw3qA1)" -f->l D4LG>-Y.*|viP0h79.lc3ѸxBdԋΟ#AE cYd.pcKH0m3GrtJ#ύ>2˜I!]@I>/Zk.?v{FPD&alz wDOKL2fywNhdCE.B /X}G;bDCSY/`",TXD`jav=g3hlAԹ^CeH3;\*l.Z6(f->GR *j> q`;hRxh(>QSjP0^r6z?Hɤt_ Ï2”EҿPS42 .Z0!d9;oȾBE`%*h\nu .Z $0N/D:࠾&_>;k_\4DiG!YF;SKX!47Ѥ`$/nRw)J Q0 &elFb Fh_IM4B]jm98en"}<0c;6۳Iak#ՐDKEx?5IS#Q=2h8"K lZCAІ$2Rsϒ [nXWih51h\AB+Y U͟6@lh51h)5YG;sf ,[|& _O_רL$,ڃ&F QzcA=%4u=枅xwH? Rj5hxU,0xjKg% yH E/Jc/oP2>).MioԔ~]2'%]-;lYh Is,"bՍZ:d"z{H[w'd,k; v$''㉅#3Ɂ=h?0+q˝KfEɟ={3Ct"T  Ocwp!E7f˯Ptw?^cQαhAy0#x·X/y06XR=~fyJ3Iip?IKiP48-hyM\]Z1tfwIAt>Er0 83>yu5f _D,,cŐX4R]OfӒ<,_}kAp=ca#tLf4Г\) f/{x/@ 1 G(}E3>QEO,`hh9h/-n:}WS4%m`F8V}x 6KBoNP|[댽0y3-6@ੴ\$Q4%ޢ H.J]){k>Ak"u1cP>h-OQ4%G{uK=DRES6Zrxdcx(4jt :*,BoNy@ui ~S2@ozp_BQDYZхhT͒+5$:$]dD=Zz-W@rI_Oa22=c ٬]@Ɇk̃7t*pw㈆b=DWBJC2,}BAYg!9ю)^ō[Ոq~ q )뤠IeQ9O +t!ڰE5DPaهwOB՗j`2=D|)pBRѮY̡d!'G۳7eZ4L9'(<3@ƒP<OSrs,lA Ѯ*?]LqYפ1Dq?%&h*4O}54hh46DE2`h.(&%F- a*הmD!% P0N46;3 he6Ӡ ȋMM+<}a@0`J}D8-"(>G-BRSHI|} "M/-Ay.bFf~eN@*O`\u3M4T$=WX@%Ĺ:X|.&[[_܇A5O܇ا;U?'-rr^@E4~\Q;iJ<ȵ%QhAYy mV1a^PMqpD߯$h#&E1TMG +*qϪ,uAߢ|.TKfF9 #W@Z^XOH&%-SUL9ygchCN?:$5 "[+9Q;( 5a ̻jpk^ ) {MO7R'OʥD CBvKd8G"Q[Ԋ$}Z WUmT r!TJa /P'}9m}&Ϋʯ~D+ԁԒ*ʓj+x2e㾔HV4EzdPD $Z 4߯\w蹊 ;$)- WEL-HHQ-n.Iɤ܉ዛUF|2=S'ChՈM!u9R*Ƌ󯇉Ԓ\QO#Kreھ|ކ7f?L.}@T-H@RF'l;Q(t>@4h[Yee57^Q%h#f@H~3M ɓv6 *} wHB/I"aI42 HWg )"}'.' 5+ 1Yp^3R=+HQ BhHԄi$^{v =\pkTU?h)Az4 jR>FaL+!v=I/̬}g@4r&%>0iP?8R(sOTP9J5ڨh\C4Avԩ㼺jWMGuMƘPC~ rZ45Km"%EfiE|uB-]{ S^ܹw#:ٿ9A| ;4\ E [3lDfHRe Ƒegrٵk[.DMHbĈVgh ϫ j7Gx'Gɂ?@J^yp5D;z&}O)Y`&[EoOBz6,!Z;Cs-<*wLؾO&2u F!\%˪>ِ%)8Lʀra \ )Ƽ? ,$Y \-\.T10B7 n=/V25n#> W\KSZ7)@%60Fo߾Y>-•sWX$ô?kO&䥩-=~QI|Jmy"jCY {Ro&+d;%W!oJBe`pJ,& ve 5?7W+諼 J \~ؕ,5kּ}{^Aa E"#毋S`1a/ Zi5v7XL?[-m}NS[?mjC1eWfD''I{^fvr .w< 1oѥCXo+ʺ?GXV%{.Ͽ]YѾ4E4a}@OiiٷYkc,-9eÿ !辂H$Z(xg1lupwaѦVݗFZhOk Ce%ݖl3g$?4Nvnvsmg$@E+M )HmO~=+/omY ;_\9mz/,lLrkgӥMgvs}u_ղK-N궼تg@Ų?5|U?~ ?gce)~Q jkia7o^ۯG[_l4x;XBֶ>tnaMֶاoγtӭ܎]|[m%qwdÆ 6lذaÆ 6lذaÆ 6lذaÆ 6lذaÆ  +2IENDB`PK\zCvCvdocx.jsnu[!function (f) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = f(); else if ("function" == typeof define && define.amd) define([], f); else { var g; g = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, g.mammoth = f() } } (function () { var define, module, exports; return function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = "function" == typeof require && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error("Cannot find module '" + o + "'"); throw f.code = "MODULE_NOT_FOUND", f } var l = n[o] = {exports: {}}; t[o][0].call(l.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e) }, l, l.exports, e, t, n, r) } return n[o].exports } for (var i = "function" == typeof require && require, o = 0; o < r.length; o++) s(r[o]); return s }({ 1: [function (require, module, exports) { function Files() { function read(uri) { return promises.reject(new Error("could not open external image: '" + uri + "'\ncannot open linked files from a web browser")) } return {read: read} } var promises = require("../../lib/promises"); exports.Files = Files }, {"../../lib/promises": 23}], 2: [function (require, module, exports) { function openZip(options) { return options.arrayBuffer ? promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer)) : promises.reject(new Error("Could not find file in options")) } var promises = require("../lib/promises"), zipfile = require("../lib/zipfile"); exports.openZip = openZip }, {"../lib/promises": 23, "../lib/zipfile": 39}], 3: [function (require, module, exports) { function DocumentConverter(options) { return { convertToHtml: function (element) { var comments = _.indexBy(element.type === documents.types.document ? element.comments : [], "commentId"), conversion = new DocumentConversion(options, comments); return conversion.convertToHtml(element) } } } function DocumentConversion(options, comments) { function convertToHtml(document) { var messages = [], html = elementToHtml(document, messages, {}), deferredNodes = []; walkHtml(html, function (node) { "deferred" === node.type && deferredNodes.push(node) }); var deferredValues = {}; return promises.mapSeries(deferredNodes, function (deferred) { return deferred.value().then(function (value) { deferredValues[deferred.id] = value }) }).then(function () { function replaceDeferred(nodes) { return flatMap(nodes, function (node) { return "deferred" === node.type ? deferredValues[node.id] : node.children ? [_.extend({}, node, {children: replaceDeferred(node.children)})] : [node] }) } var writer = writers.writer({ prettyPrint: options.prettyPrint, outputFormat: options.outputFormat }); return Html.write(writer, Html.simplify(replaceDeferred(html))), new results.Result(writer.asString(), messages) }) } function convertElements(elements, messages, options) { return flatMap(elements, function (element) { return elementToHtml(element, messages, options) }) } function elementToHtml(element, messages, options) { if (!options) throw new Error("options not set"); var handler = elementConverters[element.type]; return handler ? handler(element, messages, options) : [] } function convertParagraph(element, messages, options) { return htmlPathForParagraph(element, messages).wrap(function () { var content = convertElements(element.children, messages, options); return ignoreEmptyParagraphs ? content : [Html.forceWrite].concat(content) }) } function htmlPathForParagraph(element, messages) { var style = findStyle(element); return style ? style.to : (element.styleId && messages.push(unrecognisedStyleWarning("paragraph", element)), defaultParagraphStyle) } function convertRun(run, messages, options) { var nodes = function () { return convertElements(run.children, messages, options) }, paths = []; run.isSmallCaps && paths.push(findHtmlPathForRunProperty("smallCaps")), run.isAllCaps && paths.push(findHtmlPathForRunProperty("allCaps")), run.isStrikethrough && paths.push(findHtmlPathForRunProperty("strikethrough", "s")), run.isUnderline && paths.push(findHtmlPathForRunProperty("underline")), run.verticalAlignment === documents.verticalAlignment.subscript && paths.push(htmlPaths.element("sub", {}, {fresh: !1})), run.verticalAlignment === documents.verticalAlignment.superscript && paths.push(htmlPaths.element("sup", {}, {fresh: !1})), run.isItalic && paths.push(findHtmlPathForRunProperty("italic", "em")), run.isBold && paths.push(findHtmlPathForRunProperty("bold", "strong")); var stylePath = htmlPaths.empty, style = findStyle(run); return style ? stylePath = style.to : run.styleId && messages.push(unrecognisedStyleWarning("run", run)), paths.push(stylePath), paths.forEach(function (path) { nodes = path.wrap.bind(path, nodes) }), nodes() } function findHtmlPathForRunProperty(elementType, defaultTagName) { var path = findHtmlPath({type: elementType}); return path ? path : defaultTagName ? htmlPaths.element(defaultTagName, {}, {fresh: !1}) : htmlPaths.empty } function findHtmlPath(element, defaultPath) { var style = findStyle(element); return style ? style.to : defaultPath } function findStyle(element) { for (var i = 0; i < styleMap.length; i++) if (styleMap[i].from.matches(element)) return styleMap[i] } function recoveringConvertImage(convertImage) { return function (image, messages) { return promises.attempt(function () { return convertImage(image, messages) }).caught(function (error) { return messages.push(results.error(error)), [] }) } } function noteHtmlId(note) { return referentHtmlId(note.noteType, note.noteId) } function noteRefHtmlId(note) { return referenceHtmlId(note.noteType, note.noteId) } function referentHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-" + referenceId) } function referenceHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-ref-" + referenceId) } function htmlId(suffix) { return idPrefix + suffix } function convertTable(element, messages, options) { return findHtmlPath(element, defaultTablePath).wrap(function () { return convertTableChildren(element, messages, options) }) } function convertTableChildren(element, messages, options) { var bodyIndex = _.findIndex(element.children, function (child) { return !child.type === documents.types.tableRow || !child.isHeader }); -1 === bodyIndex && (bodyIndex = element.children.length); var children; if (0 === bodyIndex) children = convertElements(element.children, messages, _.extend({}, options, {isTableHeader: !1})); else { var headRows = convertElements(element.children.slice(0, bodyIndex), messages, _.extend({}, options, {isTableHeader: !0})), bodyRows = convertElements(element.children.slice(bodyIndex), messages, _.extend({}, options, {isTableHeader: !1})); children = [Html.freshElement("thead", {}, headRows), Html.freshElement("tbody", {}, bodyRows)] } return [Html.forceWrite].concat(children) } function convertTableRow(element, messages, options) { var children = convertElements(element.children, messages, options); return [Html.freshElement("tr", {}, [Html.forceWrite].concat(children))] } function convertTableCell(element, messages, options) { var tagName = options.isTableHeader ? "th" : "td", children = convertElements(element.children, messages, options), attributes = {}; return 1 !== element.colSpan && (attributes.colspan = element.colSpan.toString()), 1 !== element.rowSpan && (attributes.rowspan = element.rowSpan.toString()), [Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))] } function convertCommentReference(reference, messages, options) { return findHtmlPath(reference, htmlPaths.ignore).wrap(function () { var comment = comments[reference.commentId], count = referencedComments.length + 1, label = "[" + commentAuthorLabel(comment) + count + "]"; return referencedComments.push({ label: label, comment: comment }), [Html.freshElement("a", { href: "#" + referentHtmlId("comment", reference.commentId), id: referenceHtmlId("comment", reference.commentId) }, [Html.text(label)])] }) } function convertComment(referencedComment, messages, options) { var label = referencedComment.label, comment = referencedComment.comment, body = convertElements(comment.body, messages, options).concat([Html.nonFreshElement("p", {}, [Html.text(" "), Html.freshElement("a", {href: "#" + referenceHtmlId("comment", comment.commentId)}, [Html.text("↑")])])]); return [Html.freshElement("dt", {id: referentHtmlId("comment", comment.commentId)}, [Html.text("Comment " + label)]), Html.freshElement("dd", {}, body)] } function convertBreak(element, messages, options) { return htmlPathForBreak(element).wrap(function () { return [] }) } function htmlPathForBreak(element) { var style = findStyle(element); return style ? style.to : "line" === element.breakType ? htmlPaths.topLevelElement("br") : htmlPaths.empty } var noteNumber = 1, noteReferences = [], referencedComments = []; options = _.extend({ignoreEmptyParagraphs: !0}, options); var idPrefix = void 0 === options.idPrefix ? "" : options.idPrefix, ignoreEmptyParagraphs = options.ignoreEmptyParagraphs, defaultParagraphStyle = htmlPaths.topLevelElement("p"), styleMap = options.styleMap || [], defaultTablePath = htmlPaths.elements([htmlPaths.element("table", {}, {fresh: !0})]), elementConverters = { document: function (document, messages, options) { var children = convertElements(document.children, messages, options), notes = noteReferences.map(function (noteReference) { return document.notes.resolve(noteReference) }), notesNodes = convertElements(notes, messages, options); return children.concat([Html.freshElement("ol", {}, notesNodes), Html.freshElement("dl", {}, flatMap(referencedComments, function (referencedComment) { return convertComment(referencedComment, messages, options) }))]) }, paragraph: convertParagraph, run: convertRun, text: function (element, messages, options) { return [Html.text(element.value)] }, tab: function (element, messages, options) { return [Html.text(" ")] }, hyperlink: function (element, messages, options) { var href = element.anchor ? "#" + htmlId(element.anchor) : element.href, attributes = {href: href}; null != element.targetFrame && (attributes.target = element.targetFrame); var children = convertElements(element.children, messages, options); return [Html.nonFreshElement("a", attributes, children)] }, bookmarkStart: function (element, messages, options) { var anchor = Html.freshElement("a", {id: htmlId(element.name)}, [Html.forceWrite]); return [anchor] }, noteReference: function (element, messages, options) { noteReferences.push(element); var anchor = Html.freshElement("a", { href: "#" + noteHtmlId(element), id: noteRefHtmlId(element) }, [Html.text("[" + noteNumber++ + "]")]); return [Html.freshElement("sup", {}, [anchor])] }, note: function (element, messages, options) { var children = convertElements(element.body, messages, options), backLink = Html.elementWithTag(htmlPaths.element("p", {}, {fresh: !1}), [Html.text(" "), Html.freshElement("a", {href: "#" + noteRefHtmlId(element)}, [Html.text("↑")])]), body = children.concat([backLink]); return Html.freshElement("li", {id: noteHtmlId(element)}, body) }, commentReference: convertCommentReference, comment: convertComment, image: deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)), table: convertTable, tableRow: convertTableRow, tableCell: convertTableCell, "break": convertBreak }; return {convertToHtml: convertToHtml} } function deferredConversion(func) { return function (element, messages, options) { return [{ type: "deferred", id: deferredId++, value: function () { return func(element, messages, options) } }] } } function unrecognisedStyleWarning(type, element) { return results.warning("Unrecognised " + type + " style: '" + element.styleName + "' (Style ID: " + element.styleId + ")") } function flatMap(values, func) { return _.flatten(values.map(func), !0) } function walkHtml(nodes, callback) { nodes.forEach(function (node) { callback(node), node.children && walkHtml(node.children, callback) }) } var _ = require("underscore"), promises = require("./promises"), documents = require("./documents"), htmlPaths = require("./styles/html-paths"), results = require("./results"), images = require("./images"), Html = require("./html"), writers = require("./writers"); exports.DocumentConverter = DocumentConverter; var deferredId = 1, commentAuthorLabel = exports.commentAuthorLabel = function (comment) { return comment.authorInitials || "" } }, { "./documents": 4, "./html": 18, "./images": 20, "./promises": 23, "./results": 25, "./styles/html-paths": 28, "./writers": 33, underscore: 117 }], 4: [function (require, module, exports) { function Document(children, options) { return options = options || {}, { type: types.document, children: children, notes: options.notes || new Notes({}), comments: options.comments || [] } } function Paragraph(children, properties) { properties = properties || {}; var indent = properties.indent || {}; return { type: types.paragraph, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, numbering: properties.numbering || null, alignment: properties.alignment || null, indent: { start: indent.start || null, end: indent.end || null, firstLine: indent.firstLine || null, hanging: indent.hanging || null } } } function Run(children, properties) { return properties = properties || {}, { type: types.run, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, isBold: properties.isBold, isUnderline: properties.isUnderline, isItalic: properties.isItalic, isStrikethrough: properties.isStrikethrough, isAllCaps: properties.isAllCaps, isSmallCaps: properties.isSmallCaps, verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline, font: properties.font || null, fontSize: properties.fontSize || null } } function Text(value) { return {type: types.text, value: value} } function Tab() { return {type: types.tab} } function Hyperlink(children, options) { return { type: types.hyperlink, children: children, href: options.href, anchor: options.anchor, targetFrame: options.targetFrame } } function NoteReference(options) { return {type: types.noteReference, noteType: options.noteType, noteId: options.noteId} } function Notes(notes) { this._notes = _.indexBy(notes, function (note) { return noteKey(note.noteType, note.noteId) }) } function Note(options) { return {type: types.note, noteType: options.noteType, noteId: options.noteId, body: options.body} } function commentReference(options) { return {type: types.commentReference, commentId: options.commentId} } function comment(options) { return { type: types.comment, commentId: options.commentId, body: options.body, authorName: options.authorName, authorInitials: options.authorInitials } } function noteKey(noteType, id) { return noteType + "-" + id } function Image(options) { return { type: types.image, read: options.readImage, altText: options.altText, contentType: options.contentType } } function Table(children, properties) { return properties = properties || {}, { type: types.table, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null } } function TableRow(children, options) { return options = options || {}, { type: types.tableRow, children: children, isHeader: options.isHeader || !1 } } function TableCell(children, options) { return options = options || {}, { type: types.tableCell, children: children, colSpan: null == options.colSpan ? 1 : options.colSpan, rowSpan: null == options.rowSpan ? 1 : options.rowSpan } } function Break(breakType) { return {type: types["break"], breakType: breakType} } function BookmarkStart(options) { return {type: types.bookmarkStart, name: options.name} } var _ = require("underscore"), types = exports.types = { document: "document", paragraph: "paragraph", run: "run", text: "text", tab: "tab", hyperlink: "hyperlink", noteReference: "noteReference", image: "image", note: "note", commentReference: "commentReference", comment: "comment", table: "table", tableRow: "tableRow", tableCell: "tableCell", "break": "break", bookmarkStart: "bookmarkStart" }, verticalAlignment = {baseline: "baseline", superscript: "superscript", subscript: "subscript"}; Notes.prototype.resolve = function (reference) { return this.findNoteByKey(noteKey(reference.noteType, reference.noteId)) }, Notes.prototype.findNoteByKey = function (key) { return this._notes[key] || null }, exports.document = exports.Document = Document, exports.paragraph = exports.Paragraph = Paragraph, exports.run = exports.Run = Run, exports.Text = Text, exports.tab = exports.Tab = Tab, exports.Hyperlink = Hyperlink, exports.noteReference = exports.NoteReference = NoteReference, exports.Notes = Notes, exports.Note = Note, exports.commentReference = commentReference, exports.comment = comment, exports.Image = Image, exports.Table = Table, exports.TableRow = TableRow, exports.TableCell = TableCell, exports.lineBreak = Break("line"), exports.pageBreak = Break("page"), exports.columnBreak = Break("column"), exports.BookmarkStart = BookmarkStart, exports.verticalAlignment = verticalAlignment }, {underscore: 117}], 5: [function (require, module, exports) { function createBodyReader(options) { return { readXmlElement: function (element) { return new BodyReader(options).readXmlElement(element) }, readXmlElements: function (elements) { return new BodyReader(options).readXmlElements(elements) } } } function BodyReader(options) { function readXmlElements(elements) { var results = elements.map(readXmlElement); return combineResults(results) } function readXmlElement(element) { if ("element" === element.type) { var handler = xmlElementReaders[element.name]; if (handler) return handler(element); if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) { var message = warning("An unrecognised element was ignored: " + element.name); return emptyResultWithMessages([message]) } } return emptyResult() } function readParagraphIndent(element) { return { start: element.attributes["w:start"] || element.attributes["w:left"], end: element.attributes["w:end"] || element.attributes["w:right"], firstLine: element.attributes["w:firstLine"], hanging: element.attributes["w:hanging"] } } function readRunProperties(element) { return readRunStyle(element).map(function (style) { var fontSizeString = element.firstOrEmpty("w:sz").attributes["w:val"], fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null; return { type: "runProperties", styleId: style.styleId, styleName: style.name, verticalAlignment: element.firstOrEmpty("w:vertAlign").attributes["w:val"], font: element.firstOrEmpty("w:rFonts").attributes["w:ascii"], fontSize: fontSize, isBold: readBooleanElement(element.first("w:b")), isUnderline: readUnderline(element.first("w:u")), isItalic: readBooleanElement(element.first("w:i")), isStrikethrough: readBooleanElement(element.first("w:strike")), isAllCaps: readBooleanElement(element.first("w:caps")), isSmallCaps: readBooleanElement(element.first("w:smallCaps")) } }) } function readUnderline(element) { if (element) { var value = element.attributes["w:val"]; return "false" !== value && "0" !== value && "none" !== value } return !1 } function readBooleanElement(element) { if (element) { var value = element.attributes["w:val"]; return "false" !== value && "0" !== value } return !1 } function readParagraphStyle(element) { return readStyle(element, "w:pStyle", "Paragraph", styles.findParagraphStyleById) } function readRunStyle(element) { return readStyle(element, "w:rStyle", "Run", styles.findCharacterStyleById) } function readTableStyle(element) { return readStyle(element, "w:tblStyle", "Table", styles.findTableStyleById) } function readStyle(element, styleTagName, styleType, findStyleById) { var messages = [], styleElement = element.first(styleTagName), styleId = null, name = null; if (styleElement && (styleId = styleElement.attributes["w:val"])) { var style = findStyleById(styleId); style ? name = style.name : messages.push(undefinedStyleWarning(styleType, styleId)) } return elementResultWithMessages({styleId: styleId, name: name}, messages) } function readFldChar(element) { var type = element.attributes["w:fldCharType"]; if ("begin" === type) complexFieldStack.push(unknownComplexField), currentInstrText = []; else if ("end" === type) complexFieldStack.pop(); else if ("separate" === type) { var hyperlinkOptions = parseHyperlinkFieldCode(currentInstrText.join("")), complexField = null === hyperlinkOptions ? unknownComplexField : { type: "hyperlink", options: hyperlinkOptions }; complexFieldStack.pop(), complexFieldStack.push(complexField) } return emptyResult() } function currentHyperlinkOptions() { var topHyperlink = _.last(complexFieldStack.filter(function (complexField) { return "hyperlink" === complexField.type })); return topHyperlink ? topHyperlink.options : null } function parseHyperlinkFieldCode(code) { var externalLinkResult = /\s*HYPERLINK "(.*)"/.exec(code); if (externalLinkResult) return {href: externalLinkResult[1]}; var internalLinkResult = /\s*HYPERLINK\s+\\l\s+"(.*)"/.exec(code); return internalLinkResult ? {anchor: internalLinkResult[1]} : null } function readInstrText(element) { return currentInstrText.push(element.text()), emptyResult() } function readSymbol(element) { var font = element.attributes["w:font"], char = element.attributes["w:char"], unicodeCharacter = dingbatToUnicode.hex(font, char); return null == unicodeCharacter && /^F0..$/.test(char) && (unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2))), null == unicodeCharacter ? emptyResultWithMessages([warning("A w:sym element with an unsupported character was ignored: char " + char + " in font " + font)]) : elementResult(new documents.Text(unicodeCharacter.string)) } function noteReferenceReader(noteType) { return function (element) { var noteId = element.attributes["w:id"]; return elementResult(new documents.NoteReference({noteType: noteType, noteId: noteId})) } } function readCommentReference(element) { return elementResult(documents.commentReference({commentId: element.attributes["w:id"]})) } function readChildElements(element) { return readXmlElements(element.children) } function readTable(element) { var propertiesResult = readTableProperties(element.firstOrEmpty("w:tblPr")); return readXmlElements(element.children).flatMap(calculateRowSpans).flatMap(function (children) { return propertiesResult.map(function (properties) { return documents.Table(children, properties) }) }) } function readTableProperties(element) { return readTableStyle(element).map(function (style) { return {styleId: style.styleId, styleName: style.name} }) } function readTableRow(element) { var properties = element.firstOrEmpty("w:trPr"), isHeader = !!properties.first("w:tblHeader"); return readXmlElements(element.children).map(function (children) { return documents.TableRow(children, {isHeader: isHeader}) }) } function readTableCell(element) { return readXmlElements(element.children).map(function (children) { var properties = element.firstOrEmpty("w:tcPr"), gridSpan = properties.firstOrEmpty("w:gridSpan").attributes["w:val"], colSpan = gridSpan ? parseInt(gridSpan, 10) : 1, cell = documents.TableCell(children, {colSpan: colSpan}); return cell._vMerge = readVMerge(properties), cell }) } function readVMerge(properties) { var element = properties.first("w:vMerge"); if (element) { var val = element.attributes["w:val"]; return "continue" === val || !val } return null } function calculateRowSpans(rows) { var unexpectedNonRows = _.any(rows, function (row) { return row.type !== documents.types.tableRow }); if (unexpectedNonRows) return elementResultWithMessages(rows, [warning("unexpected non-row element in table, cell merging may be incorrect")]); var unexpectedNonCells = _.any(rows, function (row) { return _.any(row.children, function (cell) { return cell.type !== documents.types.tableCell }) }); if (unexpectedNonCells) return elementResultWithMessages(rows, [warning("unexpected non-cell element in table row, cell merging may be incorrect")]); var columns = {}; return rows.forEach(function (row) { var cellIndex = 0; row.children.forEach(function (cell) { cell._vMerge && columns[cellIndex] ? columns[cellIndex].rowSpan++ : (columns[cellIndex] = cell, cell._vMerge = !1), cellIndex += cell.colSpan }) }), rows.forEach(function (row) { row.children = row.children.filter(function (cell) { return !cell._vMerge }), row.children.forEach(function (cell) { delete cell._vMerge }) }), elementResult(rows) } function readDrawingElement(element) { var blips = element.getElementsByTagName("a:graphic").getElementsByTagName("a:graphicData").getElementsByTagName("pic:pic").getElementsByTagName("pic:blipFill").getElementsByTagName("a:blip"); return combineResults(blips.map(readBlip.bind(null, element))) } function readBlip(element, blip) { var properties = element.first("wp:docPr").attributes, altText = isBlank(properties.descr) ? properties.title : properties.descr; return readImage(findBlipImageFile(blip), altText) } function isBlank(value) { return null == value || /^\s*$/.test(value) } function findBlipImageFile(blip) { var embedRelationshipId = blip.attributes["r:embed"], linkRelationshipId = blip.attributes["r:link"]; if (embedRelationshipId) return findEmbeddedImageFile(embedRelationshipId); var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId); return {path: imagePath, read: files.read.bind(files, imagePath)} } function readImageData(element) { var relationshipId = element.attributes["r:id"]; return relationshipId ? readImage(findEmbeddedImageFile(relationshipId), element.attributes["o:title"]) : emptyResultWithMessages([warning("A v:imagedata element without a relationship ID was ignored")]) } function findEmbeddedImageFile(relationshipId) { var path = uris.uriToZipEntryName("word", relationships.findTargetByRelationshipId(relationshipId)); return {path: path, read: docxFile.read.bind(docxFile, path)} } function readImage(imageFile, altText) { var contentType = contentTypes.findContentType(imageFile.path), image = documents.Image({ readImage: imageFile.read, altText: altText, contentType: contentType }), warnings = supportedImageTypes[contentType] ? [] : warning("Image of type " + contentType + " is unlikely to display in web browsers"); return elementResultWithMessages(image, warnings) } function undefinedStyleWarning(type, styleId) { return warning(type + " style with ID " + styleId + " was referenced but not defined in the document") } var complexFieldStack = [], currentInstrText = [], relationships = options.relationships, contentTypes = options.contentTypes, docxFile = options.docxFile, files = options.files, numbering = options.numbering, styles = options.styles, unknownComplexField = {type: "unknown"}, xmlElementReaders = { "w:p": function (element) { return readXmlElements(element.children).map(function (children) { var properties = _.find(children, isParagraphProperties); return new documents.Paragraph(children.filter(negate(isParagraphProperties)), properties) }).insertExtra() }, "w:pPr": function (element) { return readParagraphStyle(element).map(function (style) { return { type: "paragraphProperties", styleId: style.styleId, styleName: style.name, alignment: element.firstOrEmpty("w:jc").attributes["w:val"], numbering: readNumberingProperties(style.styleId, element.firstOrEmpty("w:numPr"), numbering), indent: readParagraphIndent(element.firstOrEmpty("w:ind")) } }) }, "w:r": function (element) { return readXmlElements(element.children).map(function (children) { var properties = _.find(children, isRunProperties); children = children.filter(negate(isRunProperties)); var hyperlinkOptions = currentHyperlinkOptions(); return null !== hyperlinkOptions && (children = [new documents.Hyperlink(children, hyperlinkOptions)]), new documents.Run(children, properties) }) }, "w:rPr": readRunProperties, "w:fldChar": readFldChar, "w:instrText": readInstrText, "w:t": function (element) { return elementResult(new documents.Text(element.text())) }, "w:tab": function (element) { return elementResult(new documents.Tab) }, "w:noBreakHyphen": function () { return elementResult(new documents.Text("‑")) }, "w:softHyphen": function (element) { return elementResult(new documents.Text("­")) }, "w:sym": readSymbol, "w:hyperlink": function (element) { var relationshipId = element.attributes["r:id"], anchor = element.attributes["w:anchor"]; return readXmlElements(element.children).map(function (children) { function create(options) { var targetFrame = element.attributes["w:tgtFrame"] || null; return new documents.Hyperlink(children, _.extend({targetFrame: targetFrame}, options)) } if (relationshipId) { var href = relationships.findTargetByRelationshipId(relationshipId); return anchor && (href = uris.replaceFragment(href, anchor)), create({href: href}) } return anchor ? create({anchor: anchor}) : children }) }, "w:tbl": readTable, "w:tr": readTableRow, "w:tc": readTableCell, "w:footnoteReference": noteReferenceReader("footnote"), "w:endnoteReference": noteReferenceReader("endnote"), "w:commentReference": readCommentReference, "w:br": function (element) { var breakType = element.attributes["w:type"]; return null == breakType || "textWrapping" === breakType ? elementResult(documents.lineBreak) : "page" === breakType ? elementResult(documents.pageBreak) : "column" === breakType ? elementResult(documents.columnBreak) : emptyResultWithMessages([warning("Unsupported break type: " + breakType)]) }, "w:bookmarkStart": function (element) { var name = element.attributes["w:name"]; return "_GoBack" === name ? emptyResult() : elementResult(new documents.BookmarkStart({name: name})) }, "mc:AlternateContent": function (element) { return readChildElements(element.first("mc:Fallback")) }, "w:sdt": function (element) { return readXmlElements(element.firstOrEmpty("w:sdtContent").children) }, "w:ins": readChildElements, "w:object": readChildElements, "w:smartTag": readChildElements, "w:drawing": readChildElements, "w:pict": function (element) { return readChildElements(element).toExtra() }, "v:roundrect": readChildElements, "v:shape": readChildElements, "v:textbox": readChildElements, "w:txbxContent": readChildElements, "wp:inline": readDrawingElement, "wp:anchor": readDrawingElement, "v:imagedata": readImageData, "v:group": readChildElements, "v:rect": readChildElements }; return {readXmlElement: readXmlElement, readXmlElements: readXmlElements} } function readNumberingProperties(styleId, element, numbering) { if (null != styleId) { var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId); if (null != levelByStyleId) return levelByStyleId } var level = element.firstOrEmpty("w:ilvl").attributes["w:val"], numId = element.firstOrEmpty("w:numId").attributes["w:val"]; return void 0 === level || void 0 === numId ? null : numbering.findLevel(numId, level) } function isParagraphProperties(element) { return "paragraphProperties" === element.type } function isRunProperties(element) { return "runProperties" === element.type } function negate(predicate) { return function (value) { return !predicate(value) } } function emptyResultWithMessages(messages) { return new ReadResult(null, null, messages) } function emptyResult() { return new ReadResult(null) } function elementResult(element) { return new ReadResult(element) } function elementResultWithMessages(element, messages) { return new ReadResult(element, null, messages) } function ReadResult(element, extra, messages) { this.value = element || [], this.extra = extra, this._result = new Result({ element: this.value, extra: extra }, messages), this.messages = this._result.messages } function combineResults(results) { var result = Result.combine(_.pluck(results, "_result")); return new ReadResult(_.flatten(_.pluck(result.value, "element")), _.filter(_.flatten(_.pluck(result.value, "extra")), identity), result.messages) } function joinElements(first, second) { return _.flatten([first, second]) } function identity(value) { return value } exports.createBodyReader = createBodyReader, exports._readNumberingProperties = readNumberingProperties; var dingbatToUnicode = require("dingbat-to-unicode"), _ = require("underscore"), documents = require("../documents"), Result = require("../results").Result, warning = require("../results").warning, uris = require("./uris"), supportedImageTypes = { "image/png": !0, "image/gif": !0, "image/jpeg": !0, "image/svg+xml": !0, "image/tiff": !0 }, ignoreElements = { "office-word:wrap": !0, "v:shadow": !0, "v:shapetype": !0, "w:annotationRef": !0, "w:bookmarkEnd": !0, "w:sectPr": !0, "w:proofErr": !0, "w:lastRenderedPageBreak": !0, "w:commentRangeStart": !0, "w:commentRangeEnd": !0, "w:del": !0, "w:footnoteRef": !0, "w:endnoteRef": !0, "w:tblPr": !0, "w:tblGrid": !0, "w:trPr": !0, "w:tcPr": !0 }; ReadResult.prototype.toExtra = function () { return new ReadResult(null, joinElements(this.extra, this.value), this.messages) }, ReadResult.prototype.insertExtra = function () { var extra = this.extra; return extra && extra.length ? new ReadResult(joinElements(this.value, extra), null, this.messages) : this }, ReadResult.prototype.map = function (func) { var result = this._result.map(function (value) { return func(value.element) }); return new ReadResult(result.value, this.extra, result.messages) }, ReadResult.prototype.flatMap = function (func) { var result = this._result.flatMap(function (value) { return func(value.element)._result }); return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages) } }, {"../documents": 4, "../results": 25, "./uris": 16, "dingbat-to-unicode": 81, underscore: 117}], 6: [function (require, module, exports) { function createCommentsReader(bodyReader) { function readCommentsXml(element) { return Result.combine(element.getElementsByTagName("w:comment").map(readCommentElement)) } function readCommentElement(element) { function readOptionalAttribute(name) { return (element.attributes[name] || "").trim() || null } var id = element.attributes["w:id"]; return bodyReader.readXmlElements(element.children).map(function (body) { return documents.comment({ commentId: id, body: body, authorName: readOptionalAttribute("w:author"), authorInitials: readOptionalAttribute("w:initials") }) }) } return readCommentsXml } var documents = require("../documents"), Result = require("../results").Result; exports.createCommentsReader = createCommentsReader }, {"../documents": 4, "../results": 25}], 7: [function (require, module, exports) { function readContentTypesFromXml(element) { var extensionDefaults = {}, overrides = {}; return element.children.forEach(function (child) { if ("content-types:Default" === child.name && (extensionDefaults[child.attributes.Extension] = child.attributes.ContentType), "content-types:Override" === child.name) { var name = child.attributes.PartName; "/" === name.charAt(0) && (name = name.substring(1)), overrides[name] = child.attributes.ContentType } }), contentTypes(overrides, extensionDefaults) } function contentTypes(overrides, extensionDefaults) { return { findContentType: function (path) { var overrideContentType = overrides[path]; if (overrideContentType) return overrideContentType; var pathParts = path.split("."), extension = pathParts[pathParts.length - 1]; if (extensionDefaults.hasOwnProperty(extension)) return extensionDefaults[extension]; var fallback = fallbackContentTypes[extension.toLowerCase()]; return fallback ? "image/" + fallback : null } } } exports.readContentTypesFromXml = readContentTypesFromXml; var fallbackContentTypes = { png: "png", gif: "gif", jpeg: "jpeg", jpg: "jpeg", tif: "tiff", tiff: "tiff", bmp: "bmp" }; exports.defaultContentTypes = contentTypes({}, {}) }, {}], 8: [function (require, module, exports) { function DocumentXmlReader(options) { function convertXmlToDocument(element) { var body = element.first("w:body"), result = bodyReader.readXmlElements(body.children).map(function (children) { return new documents.Document(children, {notes: options.notes, comments: options.comments}) }); return new Result(result.value, result.messages) } var bodyReader = options.bodyReader; return {convertXmlToDocument: convertXmlToDocument} } exports.DocumentXmlReader = DocumentXmlReader; var documents = require("../documents"), Result = require("../results").Result }, {"../documents": 4, "../results": 25}], 9: [function (require, module, exports) { function read(docxFile, input) { return input = input || {}, promises.props({ contentTypes: readContentTypesFromZipFile(docxFile), partPaths: findPartPaths(docxFile), docxFile: docxFile, files: new Files(input.path ? path.dirname(input.path) : null) }).also(function (result) { return {styles: readStylesFromZipFile(docxFile, result.partPaths.styles)} }).also(function (result) { return {numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles)} }).also(function (result) { return { footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function (bodyReader, xml) { return xml ? notesReader.createFootnotesReader(bodyReader)(xml) : new Result([]) }), endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function (bodyReader, xml) { return xml ? notesReader.createEndnotesReader(bodyReader)(xml) : new Result([]) }), comments: readXmlFileWithBody(result.partPaths.comments, result, function (bodyReader, xml) { return xml ? commentsReader.createCommentsReader(bodyReader)(xml) : new Result([]) }) } }).also(function (result) { return { notes: result.footnotes.flatMap(function (footnotes) { return result.endnotes.map(function (endnotes) { return new documents.Notes(footnotes.concat(endnotes)) }) }) } }).then(function (result) { return readXmlFileWithBody(result.partPaths.mainDocument, result, function (bodyReader, xml) { return result.notes.flatMap(function (notes) { return result.comments.flatMap(function (comments) { var reader = new DocumentXmlReader({ bodyReader: bodyReader, notes: notes, comments: comments }); return reader.convertXmlToDocument(xml) }) }) }) }) } function findPartPaths(docxFile) { return readPackageRelationships(docxFile).then(function (packageRelationships) { var mainDocumentPath = findPartPath({ docxFile: docxFile, relationships: packageRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", basePath: "", fallbackPath: "word/document.xml" }); if (!docxFile.exists(mainDocumentPath)) throw new Error("Could not find main document part. Are you sure this is a valid .docx file?"); return xmlFileReader({ filename: relationshipsFilename(mainDocumentPath), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue })(docxFile).then(function (documentRelationships) { function findPartRelatedToMainDocument(name) { return findPartPath({ docxFile: docxFile, relationships: documentRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/" + name, basePath: zipfile.splitPath(mainDocumentPath).dirname, fallbackPath: "word/" + name + ".xml" }) } return { mainDocument: mainDocumentPath, comments: findPartRelatedToMainDocument("comments"), endnotes: findPartRelatedToMainDocument("endnotes"), footnotes: findPartRelatedToMainDocument("footnotes"), numbering: findPartRelatedToMainDocument("numbering"), styles: findPartRelatedToMainDocument("styles") } }) }) } function findPartPath(options) { var docxFile = options.docxFile, relationships = options.relationships, relationshipType = options.relationshipType, basePath = options.basePath, fallbackPath = options.fallbackPath, targets = relationships.findTargetsByType(relationshipType), normalisedTargets = targets.map(function (target) { return stripPrefix(zipfile.joinPath(basePath, target), "/") }), validTargets = normalisedTargets.filter(function (target) { return docxFile.exists(target) }); return 0 === validTargets.length ? fallbackPath : validTargets[0] } function stripPrefix(value, prefix) { return value.substring(0, prefix.length) === prefix ? value.substring(prefix.length) : value } function xmlFileReader(options) { return function (zipFile) { return readXmlFromZipFile(zipFile, options.filename).then(function (element) { return element ? options.readElement(element) : options.defaultValue }) } } function readXmlFileWithBody(filename, options, func) { var readRelationshipsFromZipFile = xmlFileReader({ filename: relationshipsFilename(filename), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }); return readRelationshipsFromZipFile(options.docxFile).then(function (relationships) { var bodyReader = new createBodyReader({ relationships: relationships, contentTypes: options.contentTypes, docxFile: options.docxFile, numbering: options.numbering, styles: options.styles, files: options.files }); return readXmlFromZipFile(options.docxFile, filename).then(function (xml) { return func(bodyReader, xml) }) }) } function relationshipsFilename(filename) { var split = zipfile.splitPath(filename); return zipfile.joinPath(split.dirname, "_rels", split.basename + ".rels") } function readNumberingFromZipFile(zipFile, path, styles) { return xmlFileReader({ filename: path, readElement: function (element) { return numberingXml.readNumberingXml(element, {styles: styles}) }, defaultValue: numberingXml.defaultNumbering })(zipFile) } function readStylesFromZipFile(zipFile, path) { return xmlFileReader({ filename: path, readElement: stylesReader.readStylesXml, defaultValue: stylesReader.defaultStyles })(zipFile) } exports.read = read, exports._findPartPaths = findPartPaths; var path = require("path"), promises = require("../promises"), documents = require("../documents"), Result = require("../results").Result, zipfile = require("../zipfile"), readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile, createBodyReader = require("./body-reader").createBodyReader, DocumentXmlReader = require("./document-xml-reader").DocumentXmlReader, relationshipsReader = require("./relationships-reader"), contentTypesReader = require("./content-types-reader"), numberingXml = require("./numbering-xml"), stylesReader = require("./styles-reader"), notesReader = require("./notes-reader"), commentsReader = require("./comments-reader"), Files = require("./files").Files, readContentTypesFromZipFile = xmlFileReader({ filename: "[Content_Types].xml", readElement: contentTypesReader.readContentTypesFromXml, defaultValue: contentTypesReader.defaultContentTypes }), readPackageRelationships = xmlFileReader({ filename: "_rels/.rels", readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }) }, { "../documents": 4, "../promises": 23, "../results": 25, "../zipfile": 39, "./body-reader": 5, "./comments-reader": 6, "./content-types-reader": 7, "./document-xml-reader": 8, "./files": 1, "./notes-reader": 10, "./numbering-xml": 11, "./office-xml-reader": 12, "./relationships-reader": 13, "./styles-reader": 15, path: 100 }], 10: [function (require, module, exports) { function createReader(noteType, bodyReader) { function readNotesXml(element) { return Result.combine(element.getElementsByTagName("w:" + noteType).filter(isFootnoteElement).map(readFootnoteElement)) } function isFootnoteElement(element) { var type = element.attributes["w:type"]; return "continuationSeparator" !== type && "separator" !== type } function readFootnoteElement(footnoteElement) { var id = footnoteElement.attributes["w:id"]; return bodyReader.readXmlElements(footnoteElement.children).map(function (body) { return documents.Note({noteType: noteType, noteId: id, body: body}) }) } return readNotesXml } var documents = require("../documents"), Result = require("../results").Result; exports.createFootnotesReader = createReader.bind(this, "footnote"), exports.createEndnotesReader = createReader.bind(this, "endnote") }, {"../documents": 4, "../results": 25}], 11: [function (require, module, exports) { function Numbering(nums, abstractNums, styles) { function findLevel(numId, level) { var num = nums[numId]; if (num) { var abstractNum = abstractNums[num.abstractNumId]; if (abstractNum) { if (null == abstractNum.numStyleLink) return abstractNums[num.abstractNumId].levels[level]; var style = styles.findNumberingStyleById(abstractNum.numStyleLink); return findLevel(style.numId, level) } return null } return null } function findLevelByParagraphStyleId(styleId) { return levelsByParagraphStyleId[styleId] || null } var allLevels = _.flatten(_.values(abstractNums).map(function (abstractNum) { return _.values(abstractNum.levels) })), levelsByParagraphStyleId = _.indexBy(allLevels.filter(function (level) { return null != level.paragraphStyleId }), "paragraphStyleId"); return {findLevel: findLevel, findLevelByParagraphStyleId: findLevelByParagraphStyleId} } function readNumberingXml(root, options) { if (!options || !options.styles) throw new Error("styles is missing"); var abstractNums = readAbstractNums(root), nums = readNums(root, abstractNums); return new Numbering(nums, abstractNums, options.styles) } function readAbstractNums(root) { var abstractNums = {}; return root.getElementsByTagName("w:abstractNum").forEach(function (element) { var id = element.attributes["w:abstractNumId"]; abstractNums[id] = readAbstractNum(element) }), abstractNums } function readAbstractNum(element) { var levels = {}; element.getElementsByTagName("w:lvl").forEach(function (levelElement) { var levelIndex = levelElement.attributes["w:ilvl"], numFmt = levelElement.first("w:numFmt").attributes["w:val"], paragraphStyleId = levelElement.firstOrEmpty("w:pStyle").attributes["w:val"]; levels[levelIndex] = { isOrdered: "bullet" !== numFmt, level: levelIndex, paragraphStyleId: paragraphStyleId } }); var numStyleLink = element.firstOrEmpty("w:numStyleLink").attributes["w:val"]; return {levels: levels, numStyleLink: numStyleLink} } function readNums(root) { var nums = {}; return root.getElementsByTagName("w:num").forEach(function (element) { var numId = element.attributes["w:numId"], abstractNumId = element.first("w:abstractNumId").attributes["w:val"]; nums[numId] = {abstractNumId: abstractNumId} }), nums } var _ = require("underscore"); exports.readNumberingXml = readNumberingXml, exports.Numbering = Numbering, exports.defaultNumbering = new Numbering({}, {}) }, {underscore: 117}], 12: [function (require, module, exports) { function read(xmlString) { return xml.readString(xmlString, xmlNamespaceMap).then(function (document) { return collapseAlternateContent(document)[0] }) } function readXmlFromZipFile(docxFile, path) { return docxFile.exists(path) ? docxFile.read(path, "utf-8").then(stripUtf8Bom).then(read) : promises.resolve(null) } function stripUtf8Bom(xmlString) { return xmlString.replace(/^\uFEFF/g, "") } function collapseAlternateContent(node) { return "element" === node.type ? "mc:AlternateContent" === node.name ? node.first("mc:Fallback").children : (node.children = _.flatten(node.children.map(collapseAlternateContent, !0)), [node]) : [node] } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.read = read, exports.readXmlFromZipFile = readXmlFromZipFile; var xmlNamespaceMap = { "http://schemas.openxmlformats.org/wordprocessingml/2006/main": "w", "http://schemas.openxmlformats.org/officeDocument/2006/relationships": "r", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing": "wp", "http://schemas.openxmlformats.org/drawingml/2006/main": "a", "http://schemas.openxmlformats.org/drawingml/2006/picture": "pic", "http://schemas.openxmlformats.org/package/2006/content-types": "content-types", "urn:schemas-microsoft-com:vml": "v", "http://schemas.openxmlformats.org/markup-compatibility/2006": "mc", "urn:schemas-microsoft-com:office:word": "office-word" } }, {"../promises": 23, "../xml": 35, underscore: 117}], 13: [function (require, module, exports) { function readRelationships(element) { var relationships = []; return element.children.forEach(function (child) { if ("{http://schemas.openxmlformats.org/package/2006/relationships}Relationship" === child.name) { var relationship = { relationshipId: child.attributes.Id, target: child.attributes.Target, type: child.attributes.Type }; relationships.push(relationship) } }), new Relationships(relationships) } function Relationships(relationships) { var targetsByRelationshipId = {}; relationships.forEach(function (relationship) { targetsByRelationshipId[relationship.relationshipId] = relationship.target }); var targetsByType = {}; return relationships.forEach(function (relationship) { targetsByType[relationship.type] || (targetsByType[relationship.type] = []), targetsByType[relationship.type].push(relationship.target) }), { findTargetByRelationshipId: function (relationshipId) { return targetsByRelationshipId[relationshipId] }, findTargetsByType: function (type) { return targetsByType[type] || [] } } } exports.readRelationships = readRelationships, exports.defaultValue = new Relationships([]), exports.Relationships = Relationships }, {}], 14: [function (require, module, exports) { function writeStyleMap(docxFile, styleMap) { return docxFile.write(styleMapPath, styleMap), updateRelationships(docxFile).then(function () { return updateContentTypes(docxFile) }) } function updateRelationships(docxFile) { var path = "word/_rels/document.xml.rels", relationshipsUri = "http://schemas.openxmlformats.org/package/2006/relationships", relationshipElementName = "{" + relationshipsUri + "}Relationship"; return docxFile.read(path, "utf8").then(xml.readString).then(function (relationshipsContainer) { var relationships = relationshipsContainer.children; addOrUpdateElement(relationships, relationshipElementName, "Id", { Id: "rMammothStyleMap", Type: schema, Target: styleMapAbsolutePath }); var namespaces = {"": relationshipsUri}; return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces)) }) } function updateContentTypes(docxFile) { var path = "[Content_Types].xml", contentTypesUri = "http://schemas.openxmlformats.org/package/2006/content-types", overrideName = "{" + contentTypesUri + "}Override"; return docxFile.read(path, "utf8").then(xml.readString).then(function (typesElement) { var children = typesElement.children; addOrUpdateElement(children, overrideName, "PartName", { PartName: styleMapAbsolutePath, ContentType: "text/prs.mammoth.style-map" }); var namespaces = {"": contentTypesUri}; return docxFile.write(path, xml.writeString(typesElement, namespaces)) }) } function addOrUpdateElement(elements, name, identifyingAttribute, attributes) { var existingElement = _.find(elements, function (element) { return element.name === name && element.attributes[identifyingAttribute] === attributes[identifyingAttribute] }); existingElement ? existingElement.attributes = attributes : elements.push(xml.element(name, attributes)) } function readStyleMap(docxFile) { return docxFile.exists(styleMapPath) ? docxFile.read(styleMapPath, "utf8") : promises.resolve(null) } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.writeStyleMap = writeStyleMap, exports.readStyleMap = readStyleMap; var schema = "http://schemas.zwobble.org/mammoth/style-map", styleMapPath = "mammoth/style-map", styleMapAbsolutePath = "/" + styleMapPath }, {"../promises": 23, "../xml": 35, underscore: 117}], 15: [function (require, module, exports) { function Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) { return { findParagraphStyleById: function (styleId) { return paragraphStyles[styleId] }, findCharacterStyleById: function (styleId) { return characterStyles[styleId] }, findTableStyleById: function (styleId) { return tableStyles[styleId] }, findNumberingStyleById: function (styleId) { return numberingStyles[styleId] } } } function readStylesXml(root) { var paragraphStyles = {}, characterStyles = {}, tableStyles = {}, numberingStyles = {}, styles = {paragraph: paragraphStyles, character: characterStyles, table: tableStyles}; return root.getElementsByTagName("w:style").forEach(function (styleElement) { var style = readStyleElement(styleElement); if ("numbering" === style.type) numberingStyles[style.styleId] = readNumberingStyleElement(styleElement); else { var styleSet = styles[style.type]; styleSet && (styleSet[style.styleId] = style) } }), new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) } function readStyleElement(styleElement) { var type = styleElement.attributes["w:type"], styleId = styleElement.attributes["w:styleId"], name = styleName(styleElement); return {type: type, styleId: styleId, name: name} } function styleName(styleElement) { var nameElement = styleElement.first("w:name"); return nameElement ? nameElement.attributes["w:val"] : null } function readNumberingStyleElement(styleElement) { var numId = styleElement.firstOrEmpty("w:pPr").firstOrEmpty("w:numPr").firstOrEmpty("w:numId").attributes["w:val"]; return {numId: numId} } exports.readStylesXml = readStylesXml, exports.Styles = Styles, exports.defaultStyles = new Styles({}, {}), Styles.EMPTY = new Styles({}, {}, {}, {}) }, {}], 16: [function (require, module, exports) { function uriToZipEntryName(base, uri) { return "/" === uri.charAt(0) ? uri.substr(1) : base + "/" + uri } function replaceFragment(uri, fragment) { var hashIndex = uri.indexOf("#"); return -1 !== hashIndex && (uri = uri.substring(0, hashIndex)), uri + "#" + fragment } exports.uriToZipEntryName = uriToZipEntryName, exports.replaceFragment = replaceFragment }, {}], 17: [function (require, module, exports) { function nonFreshElement(tagName, attributes, children) { return elementWithTag(htmlPaths.element(tagName, attributes, {fresh: !1}), children) } function freshElement(tagName, attributes, children) { var tag = htmlPaths.element(tagName, attributes, {fresh: !0}); return elementWithTag(tag, children) } function elementWithTag(tag, children) { return {type: "element", tag: tag, children: children || []} } function text(value) { return {type: "text", value: value} } function isVoidElement(node) { return 0 === node.children.length && voidTagNames[node.tag.tagName] } var htmlPaths = require("../styles/html-paths"), forceWrite = {type: "forceWrite"}; exports.freshElement = freshElement, exports.nonFreshElement = nonFreshElement, exports.elementWithTag = elementWithTag, exports.text = text, exports.forceWrite = forceWrite; var voidTagNames = {br: !0, hr: !0, img: !0}; exports.isVoidElement = isVoidElement }, {"../styles/html-paths": 28}], 18: [function (require, module, exports) { function write(writer, nodes) { nodes.forEach(function (node) { writeNode(writer, node) }) } function writeNode(writer, node) { toStrings[node.type](writer, node) } function generateElementString(writer, node) { ast.isVoidElement(node) ? writer.selfClosing(node.tag.tagName, node.tag.attributes) : (writer.open(node.tag.tagName, node.tag.attributes), write(writer, node.children), writer.close(node.tag.tagName)) } function generateTextString(writer, node) { writer.text(node.value) } var ast = require("./ast"); exports.freshElement = ast.freshElement, exports.nonFreshElement = ast.nonFreshElement, exports.elementWithTag = ast.elementWithTag, exports.text = ast.text, exports.forceWrite = ast.forceWrite, exports.simplify = require("./simplify"); var toStrings = { element: generateElementString, text: generateTextString, forceWrite: function () { } }; exports.write = write }, {"./ast": 17, "./simplify": 19}], 19: [function (require, module, exports) { function simplify(nodes) { return collapse(removeEmpty(nodes)) } function collapse(nodes) { var children = []; return nodes.map(collapseNode).forEach(function (child) { appendChild(children, child) }), children } function collapseNode(node) { return collapsers[node.type](node) } function collapseElement(node) { return ast.elementWithTag(node.tag, collapse(node.children)) } function identity(value) { return value } function appendChild(children, child) { var lastChild = children[children.length - 1]; "element" === child.type && !child.tag.fresh && lastChild && "element" === lastChild.type && child.tag.matchesElement(lastChild.tag) ? (child.tag.separator && appendChild(lastChild.children, ast.text(child.tag.separator)), child.children.forEach(function (grandChild) { appendChild(lastChild.children, grandChild) })) : children.push(child) } function removeEmpty(nodes) { return flatMap(nodes, function (node) { return emptiers[node.type](node) }) } function flatMap(values, func) { return _.flatten(_.map(values, func), !0) } function neverEmpty(node) { return [node] } function elementEmptier(element) { var children = removeEmpty(element.children); return 0 !== children.length || ast.isVoidElement(element) ? [ast.elementWithTag(element.tag, children)] : [] } function textEmptier(node) { return 0 === node.value.length ? [] : [node] } var _ = require("underscore"), ast = require("./ast"), collapsers = {element: collapseElement, text: identity, forceWrite: identity}, emptiers = {element: elementEmptier, text: textEmptier, forceWrite: neverEmpty}; module.exports = simplify }, {"./ast": 17, underscore: 117}], 20: [function (require, module, exports) { function imgElement(func) { return function (element, messages) { return promises.when(func(element)).then(function (result) { var attributes = _.clone(result); return element.altText && (attributes.alt = element.altText), [Html.freshElement("img", attributes)] }) } } var _ = require("underscore"), promises = require("./promises"), Html = require("./html"); exports.imgElement = imgElement, exports.inline = exports.imgElement, exports.dataUri = imgElement(function (element) { return element.read("base64").then(function (imageBuffer) { return {src: "data:" + element.contentType + ";base64," + imageBuffer} }) }) }, {"./html": 18, "./promises": 23, underscore: 117}], 21: [function (require, module, exports) { function convertToHtml(input, options) { return convert(input, options) } function convertToMarkdown(input, options) { var markdownOptions = Object.create(options || {}); return markdownOptions.outputFormat = "markdown", convert(input, markdownOptions) } function convert(input, options) { return options = readOptions(options), unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.readStyleMap(docxFile).then(function (styleMap) { options.embeddedStyleMap = styleMap }) }).then(function (docxFile) { return docxReader.read(docxFile, input).then(function (documentResult) { return documentResult.map(options.transformDocument) }).then(function (documentResult) { return convertDocumentToHtml(documentResult, options) }) }) } function readEmbeddedStyleMap(input) { return unzip.openZip(input).then(docxStyleMap.readStyleMap) } function convertDocumentToHtml(documentResult, options) { var styleMapResult = parseStyleMap(options.readStyleMap()), parsedOptions = _.extend({}, options, {styleMap: styleMapResult.value}), documentConverter = new DocumentConverter(parsedOptions); return documentResult.flatMapThen(function (document) { return styleMapResult.flatMapThen(function (styleMap) { return documentConverter.convertToHtml(document) }) }) } function parseStyleMap(styleMap) { return Result.combine((styleMap || []).map(readStyle)).map(function (styleMap) { return styleMap.filter(function (styleMapping) { return !!styleMapping }) }) } function extractRawText(input) { return unzip.openZip(input).then(docxReader.read).then(function (documentResult) { return documentResult.map(convertElementToRawText) }) } function embedStyleMap(input, styleMap) { return unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.writeStyleMap(docxFile, styleMap) }).then(function (docxFile) { return docxFile.toBuffer() }).then(function (buffer) { return { toBuffer: function () { return buffer } } }) } var _ = require("underscore"), docxReader = require("./docx/docx-reader"), docxStyleMap = require("./docx/style-map"), DocumentConverter = require("./document-to-html").DocumentConverter, convertElementToRawText = require("./raw-text").convertElementToRawText, readStyle = require("./style-reader").readStyle, readOptions = require("./options-reader").readOptions, unzip = require("./unzip"), Result = require("./results").Result; exports.convertToHtml = convertToHtml, exports.convertToMarkdown = convertToMarkdown, exports.convert = convert, exports.extractRawText = extractRawText, exports.images = require("./images"), exports.transforms = require("./transforms"), exports.underline = require("./underline"), exports.embedStyleMap = embedStyleMap, exports.readEmbeddedStyleMap = readEmbeddedStyleMap, exports.styleMapping = function () { throw new Error("Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name='Title'] => h1\" instead of mammoth.styleMapping(\"p[style-name='Title'] => h1\")") } }, { "./document-to-html": 3, "./docx/docx-reader": 9, "./docx/style-map": 14, "./images": 20, "./options-reader": 22, "./raw-text": 24, "./results": 25, "./style-reader": 26, "./transforms": 30, "./underline": 31, "./unzip": 2, underscore: 117 }], 22: [function (require, module, exports) { function readOptions(options) { return options = options || {}, _.extend({}, standardOptions, options, { customStyleMap: readStyleMap(options.styleMap), readStyleMap: function () { var styleMap = this.customStyleMap; return this.includeEmbeddedStyleMap && (styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap))), this.includeDefaultStyleMap && (styleMap = styleMap.concat(defaultStyleMap)), styleMap } }) } function readStyleMap(styleMap) { return styleMap ? _.isString(styleMap) ? styleMap.split("\n").map(function (line) { return line.trim() }).filter(function (line) { return "" !== line && "#" !== line.charAt(0) }) : styleMap : [] } function identity(value) { return value } exports.readOptions = readOptions; var _ = require("underscore"), defaultStyleMap = exports._defaultStyleMap = ["p.Heading1 => h1:fresh", "p.Heading2 => h2:fresh", "p.Heading3 => h3:fresh", "p.Heading4 => h4:fresh", "p.Heading5 => h5:fresh", "p.Heading6 => h6:fresh", "p[style-name='Heading 1'] => h1:fresh", "p[style-name='Heading 2'] => h2:fresh", "p[style-name='Heading 3'] => h3:fresh", "p[style-name='Heading 4'] => h4:fresh", "p[style-name='Heading 5'] => h5:fresh", "p[style-name='Heading 6'] => h6:fresh", "p[style-name='heading 1'] => h1:fresh", "p[style-name='heading 2'] => h2:fresh", "p[style-name='heading 3'] => h3:fresh", "p[style-name='heading 4'] => h4:fresh", "p[style-name='heading 5'] => h5:fresh", "p[style-name='heading 6'] => h6:fresh", "r[style-name='Strong'] => strong", "p[style-name='footnote text'] => p:fresh", "r[style-name='footnote reference'] =>", "p[style-name='endnote text'] => p:fresh", "r[style-name='endnote reference'] =>", "p[style-name='annotation text'] => p:fresh", "r[style-name='annotation reference'] =>", "p[style-name='Footnote'] => p:fresh", "r[style-name='Footnote anchor'] =>", "p[style-name='Endnote'] => p:fresh", "r[style-name='Endnote anchor'] =>", "p:unordered-list(1) => ul > li:fresh", "p:unordered-list(2) => ul|ol > li > ul > li:fresh", "p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:ordered-list(1) => ol > li:fresh", "p:ordered-list(2) => ul|ol > li > ol > li:fresh", "p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "r[style-name='Hyperlink'] =>", "p[style-name='Normal'] => p:fresh"], standardOptions = exports._standardOptions = { transformDocument: identity, includeDefaultStyleMap: !0, includeEmbeddedStyleMap: !0 } }, {underscore: 117}], 23: [function (require, module, exports) { function defer() { var resolve, reject, promise = new bluebird.Promise(function (resolveArg, rejectArg) { resolve = resolveArg, reject = rejectArg }); return {resolve: resolve, reject: reject, promise: promise} } var _ = require("underscore"), bluebird = require("bluebird/js/release/promise")(); exports.defer = defer, exports.when = bluebird.resolve, exports.resolve = bluebird.resolve, exports.all = bluebird.all, exports.props = bluebird.props, exports.reject = bluebird.reject, exports.promisify = bluebird.promisify, exports.mapSeries = bluebird.mapSeries, exports.attempt = bluebird.attempt, exports.nfcall = function (func) { var args = Array.prototype.slice.call(arguments, 1), promisedFunc = bluebird.promisify(func); return promisedFunc.apply(null, args) }, bluebird.prototype.fail = bluebird.prototype.caught, bluebird.prototype.also = function (func) { return this.then(function (value) { var returnValue = _.extend({}, value, func(value)); return bluebird.props(returnValue) }) } }, {"bluebird/js/release/promise": 61, underscore: 117}], 24: [function (require, module, exports) { function convertElementToRawText(element) { if ("text" === element.type) return element.value; if (element.type === documents.types.tab) return " "; var tail = "paragraph" === element.type ? "\n\n" : ""; return (element.children || []).map(convertElementToRawText).join("") + tail } var documents = require("./documents"); exports.convertElementToRawText = convertElementToRawText }, {"./documents": 4}], 25: [function (require, module, exports) { function Result(value, messages) { this.value = value, this.messages = messages || [] } function success(value) { return new Result(value, []) } function warning(message) { return {type: "warning", message: message} } function error(exception) { return {type: "error", message: exception.message, error: exception} } function combineMessages(results) { var messages = []; return _.flatten(_.pluck(results, "messages"), !0).forEach(function (message) { containsMessage(messages, message) || messages.push(message) }), messages } function containsMessage(messages, message) { return void 0 !== _.find(messages, isSameMessage.bind(null, message)) } function isSameMessage(first, second) { return first.type === second.type && first.message === second.message } var _ = require("underscore"); exports.Result = Result, exports.success = success, exports.warning = warning, exports.error = error, Result.prototype.map = function (func) { return new Result(func(this.value), this.messages) }, Result.prototype.flatMap = function (func) { var funcResult = func(this.value); return new Result(funcResult.value, combineMessages([this, funcResult])) }, Result.prototype.flatMapThen = function (func) { var that = this; return func(this.value).then(function (otherResult) { return new Result(otherResult.value, combineMessages([that, otherResult])) }) }, Result.combine = function (results) { var values = _.flatten(_.pluck(results, "value")), messages = combineMessages(results); return new Result(values, messages) } }, {underscore: 117}], 26: [function (require, module, exports) { function readStyle(string) { return parseString(styleRule, string) } function createStyleRule() { return lop.rules.sequence(lop.rules.sequence.capture(documentMatcherRule()), lop.rules.tokenOfType("whitespace"), lop.rules.tokenOfType("arrow"), lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("whitespace"), lop.rules.sequence.capture(htmlPathRule())).head())), lop.rules.tokenOfType("end")).map(function (documentMatcher, htmlPath) { return {from: documentMatcher, to: htmlPath.valueOrElse(htmlPaths.empty)} }) } function readDocumentMatcher(string) { return parseString(documentMatcherRule(), string) } function documentMatcherRule() { function createMatcherSuffixesRule(rules) { var matcherSuffix = lop.rules.firstOf.apply(lop.rules.firstOf, ["matcher suffix"].concat(rules)), matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix); return lop.rules.then(matcherSuffixes, function (suffixes) { var matcherOptions = {}; return suffixes.forEach(function (suffix) { _.extend(matcherOptions, suffix) }), matcherOptions }) } var sequence = lop.rules.sequence, identifierToConstant = function (identifier, constant) { return lop.rules.then(lop.rules.token("identifier", identifier), function () { return constant }) }, paragraphRule = identifierToConstant("p", documentMatchers.paragraph), runRule = identifierToConstant("r", documentMatchers.run), elementTypeRule = lop.rules.firstOf("p or r or table", paragraphRule, runRule), styleIdRule = lop.rules.then(classRule, function (styleId) { return {styleId: styleId} }), styleNameMatcherRule = lop.rules.firstOf("style name matcher", lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("equals"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return {styleName: documentMatchers.equalTo(styleName)} }), lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("startsWith"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return {styleName: documentMatchers.startsWith(styleName)} })), styleNameRule = lop.rules.sequence(lop.rules.tokenOfType("open-square-bracket"), lop.rules.sequence.cut(), lop.rules.token("identifier", "style-name"), lop.rules.sequence.capture(styleNameMatcherRule), lop.rules.tokenOfType("close-square-bracket")).head(), listTypeRule = lop.rules.firstOf("list type", identifierToConstant("ordered-list", { isOrdered: !0 }), identifierToConstant("unordered-list", {isOrdered: !1})), listRule = sequence(lop.rules.tokenOfType("colon"), sequence.capture(listTypeRule), sequence.cut(), lop.rules.tokenOfType("open-paren"), sequence.capture(integerRule), lop.rules.tokenOfType("close-paren")).map(function (listType, levelNumber) { return {list: {isOrdered: listType.isOrdered, levelIndex: levelNumber - 1}} }), paragraphOrRun = sequence(sequence.capture(elementTypeRule), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule, listRule]))).map(function (createMatcher, matcherOptions) { return createMatcher(matcherOptions) }), table = sequence(lop.rules.token("identifier", "table"), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule]))).map(function (options) { return documentMatchers.table(options) }), bold = identifierToConstant("b", documentMatchers.bold), italic = identifierToConstant("i", documentMatchers.italic), underline = identifierToConstant("u", documentMatchers.underline), strikethrough = identifierToConstant("strike", documentMatchers.strikethrough), allCaps = identifierToConstant("all-caps", documentMatchers.allCaps), smallCaps = identifierToConstant("small-caps", documentMatchers.smallCaps), commentReference = identifierToConstant("comment-reference", documentMatchers.commentReference), breakMatcher = sequence(lop.rules.token("identifier", "br"), sequence.cut(), lop.rules.tokenOfType("open-square-bracket"), lop.rules.token("identifier", "type"), lop.rules.tokenOfType("equals"), sequence.capture(stringRule), lop.rules.tokenOfType("close-square-bracket")).map(function (breakType) { switch (breakType) { case"line": return documentMatchers.lineBreak; case"page": return documentMatchers.pageBreak; case"column": return documentMatchers.columnBreak } }); return lop.rules.firstOf("element type", paragraphOrRun, table, bold, italic, underline, strikethrough, allCaps, smallCaps, commentReference, breakMatcher) } function readHtmlPath(string) { return parseString(htmlPathRule(), string) } function htmlPathRule() { var capture = lop.rules.sequence.capture, whitespaceRule = lop.rules.tokenOfType("whitespace"), freshRule = lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"), lop.rules.token("identifier", "fresh"))), function (option) { return option.map(function () { return !0 }).valueOrElse(!1) }), separatorRule = lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"), lop.rules.token("identifier", "separator"), lop.rules.tokenOfType("open-paren"), capture(stringRule), lop.rules.tokenOfType("close-paren")).head()), function (option) { return option.valueOrElse("") }), tagNamesRule = lop.rules.oneOrMoreWithSeparator(identifierRule, lop.rules.tokenOfType("choice")), styleElementRule = lop.rules.sequence(capture(tagNamesRule), capture(lop.rules.zeroOrMore(classRule)), capture(freshRule), capture(separatorRule)).map(function (tagName, classNames, fresh, separator) { var attributes = {}, options = {}; return classNames.length > 0 && (attributes["class"] = classNames.join(" ")), fresh && (options.fresh = !0), separator && (options.separator = separator), htmlPaths.element(tagName, attributes, options) }); return lop.rules.firstOf("html path", lop.rules.then(lop.rules.tokenOfType("bang"), function () { return htmlPaths.ignore }), lop.rules.then(lop.rules.zeroOrMoreWithSeparator(styleElementRule, lop.rules.sequence(whitespaceRule, lop.rules.tokenOfType("gt"), whitespaceRule)), htmlPaths.elements)) } function decodeEscapeSequences(value) { return value.replace(/\\(.)/g, function (match, code) { return escapeSequences[code] || code }) } function parseString(rule, string) { var tokens = tokenise(string), parser = lop.Parser(), parseResult = parser.parseTokens(rule, tokens); return parseResult.isSuccess() ? results.success(parseResult.value()) : new results.Result(null, [results.warning(describeFailure(string, parseResult))]) } function describeFailure(input, parseResult) { return "Did not understand this style mapping, so ignored it: " + input + "\n" + parseResult.errors().map(describeError).join("\n") } function describeError(error) { return "Error was at character number " + error.characterNumber() + ": Expected " + error.expected + " but got " + error.actual } var _ = require("underscore"), lop = require("lop"), documentMatchers = require("./styles/document-matchers"), htmlPaths = require("./styles/html-paths"), tokenise = require("./styles/parser/tokeniser").tokenise, results = require("./results"); exports.readHtmlPath = readHtmlPath, exports.readDocumentMatcher = readDocumentMatcher, exports.readStyle = readStyle; var identifierRule = lop.rules.then(lop.rules.tokenOfType("identifier"), decodeEscapeSequences), integerRule = lop.rules.tokenOfType("integer"), stringRule = lop.rules.then(lop.rules.tokenOfType("string"), decodeEscapeSequences), escapeSequences = {n: "\n", r: "\r", t: " "}, classRule = lop.rules.sequence(lop.rules.tokenOfType("dot"), lop.rules.sequence.cut(), lop.rules.sequence.capture(identifierRule)).head(), styleRule = createStyleRule() }, { "./results": 25, "./styles/document-matchers": 27, "./styles/html-paths": 28, "./styles/parser/tokeniser": 29, lop: 88, underscore: 117 }], 27: [function (require, module, exports) { function paragraph(options) { return new Matcher("paragraph", options) } function run(options) { return new Matcher("run", options) } function table(options) { return new Matcher("table", options) } function Matcher(elementType, options) { options = options || {}, this._elementType = elementType, this._styleId = options.styleId, this._styleName = options.styleName, options.list && (this._listIndex = options.list.levelIndex, this._listIsOrdered = options.list.isOrdered) } function isList(element, levelIndex, isOrdered) { return element.numbering && element.numbering.level == levelIndex && element.numbering.isOrdered == isOrdered } function equalTo(value) { return {operator: operatorEqualTo, operand: value} } function startsWith(value) { return {operator: operatorStartsWith, operand: value} } function operatorEqualTo(first, second) { return first.toUpperCase() === second.toUpperCase() } function operatorStartsWith(first, second) { return 0 === second.toUpperCase().indexOf(first.toUpperCase()) } exports.paragraph = paragraph, exports.run = run, exports.table = table, exports.bold = new Matcher("bold"), exports.italic = new Matcher("italic"), exports.underline = new Matcher("underline"), exports.strikethrough = new Matcher("strikethrough"), exports.allCaps = new Matcher("allCaps"), exports.smallCaps = new Matcher("smallCaps"), exports.commentReference = new Matcher("commentReference"), exports.lineBreak = new Matcher("break", {breakType: "line"}), exports.pageBreak = new Matcher("break", {breakType: "page"}), exports.columnBreak = new Matcher("break", {breakType: "column"}), exports.equalTo = equalTo, exports.startsWith = startsWith, Matcher.prototype.matches = function (element) { return element.type === this._elementType && (void 0 === this._styleId || element.styleId === this._styleId) && (void 0 === this._styleName || element.styleName && this._styleName.operator(this._styleName.operand, element.styleName)) && (void 0 === this._listIndex || isList(element, this._listIndex, this._listIsOrdered)) && (void 0 === this._breakType || this._breakType === element.breakType) } }, {}], 28: [function (require, module, exports) { function topLevelElement(tagName, attributes) { return elements([element(tagName, attributes, {fresh: !0})]) } function elements(elementStyles) { return new HtmlPath(elementStyles.map(function (elementStyle) { return _.isString(elementStyle) ? element(elementStyle) : elementStyle })) } function HtmlPath(elements) { this._elements = elements } function element(tagName, attributes, options) { return options = options || {}, new Element(tagName, attributes, options) } function Element(tagName, attributes, options) { var tagNames = {}; _.isArray(tagName) ? (tagName.forEach(function (tagName) { tagNames[tagName] = !0 }), tagName = tagName[0]) : tagNames[tagName] = !0, this.tagName = tagName, this.tagNames = tagNames, this.attributes = attributes || {}, this.fresh = options.fresh, this.separator = options.separator } var _ = require("underscore"), html = require("../html"); exports.topLevelElement = topLevelElement, exports.elements = elements, exports.element = element, HtmlPath.prototype.wrap = function (children) { for (var result = children(), index = this._elements.length - 1; index >= 0; index--) result = this._elements[index].wrapNodes(result); return result }, Element.prototype.matchesElement = function (element) { return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {}) }, Element.prototype.wrap = function (generateNodes) { return this.wrapNodes(generateNodes()) }, Element.prototype.wrapNodes = function (nodes) { return [html.elementWithTag(this, nodes)] }, exports.empty = elements([]), exports.ignore = { wrap: function () { return [] } } }, {"../html": 18, underscore: 117}], 29: [function (require, module, exports) { function tokenise(string) { var identifierCharacter = "(?:[a-zA-Z\\-_]|\\\\.)", tokeniser = new RegexTokeniser([{ name: "identifier", regex: new RegExp("(" + identifierCharacter + "(?:" + identifierCharacter + "|[0-9])*)") }, {name: "dot", regex: /\./}, {name: "colon", regex: /:/}, { name: "gt", regex: />/ }, {name: "whitespace", regex: /\s+/}, {name: "arrow", regex: /=>/}, { name: "equals", regex: /=/ }, {name: "startsWith", regex: /\^=/}, {name: "open-paren", regex: /\(/}, { name: "close-paren", regex: /\)/ }, {name: "open-square-bracket", regex: /\[/}, { name: "close-square-bracket", regex: /\]/ }, {name: "string", regex: new RegExp(stringPrefix + "'")}, { name: "unterminated-string", regex: new RegExp(stringPrefix) }, {name: "integer", regex: /([0-9]+)/}, {name: "choice", regex: /\|/}, {name: "bang", regex: /(!)/}]); return tokeniser.tokenise(string) } var lop = require("lop"), RegexTokeniser = lop.RegexTokeniser; exports.tokenise = tokenise; var stringPrefix = "'((?:\\\\.|[^'])*)" }, {lop: 88}], 30: [function (require, module, exports) { function paragraph(transform) { return elementsOfType("paragraph", transform) } function run(transform) { return elementsOfType("run", transform) } function elementsOfType(elementType, transform) { return elements(function (element) { return element.type === elementType ? transform(element) : element }) } function elements(transform) { return function transformElement(element) { if (element.children) { var children = _.map(element.children, transformElement); element = _.extend(element, {children: children}) } return transform(element) } } function getDescendantsOfType(element, type) { return getDescendants(element).filter(function (descendant) { return descendant.type === type }) } function getDescendants(element) { var descendants = []; return visitDescendants(element, function (descendant) { descendants.push(descendant) }), descendants } function visitDescendants(element, visit) { element.children && element.children.forEach(function (child) { visitDescendants(child, visit), visit(child) }) } var _ = require("underscore"); exports.paragraph = paragraph, exports.run = run, exports._elements = elements, exports.getDescendantsOfType = getDescendantsOfType, exports.getDescendants = getDescendants }, {underscore: 117}], 31: [function (require, module, exports) { function element(name) { return function (html) { return Html.elementWithTag(htmlPaths.element(name), [html]) } } var htmlPaths = require("./styles/html-paths"), Html = require("./html"); exports.element = element }, {"./html": 18, "./styles/html-paths": 28}], 32: [function (require, module, exports) { function writer(options) { return options = options || {}, options.prettyPrint ? prettyWriter() : simpleWriter() } function prettyWriter() { function open(tagName, attributes) { indentedElements[tagName] && indent(), stack.push(tagName), writer.open(tagName, attributes), indentedElements[tagName] && indentationLevel++, start = !1 } function close(tagName) { indentedElements[tagName] && (indentationLevel--, indent()), stack.pop(), writer.close(tagName) } function text(value) { startText(); var text = isInPre() ? value : value.replace("\n", "\n" + indentation); writer.text(text) } function selfClosing(tagName, attributes) { indent(), writer.selfClosing(tagName, attributes) } function insideIndentedElement() { return 0 === stack.length || indentedElements[stack[stack.length - 1]] } function startText() { inText || (indent(), inText = !0) } function indent() { if (inText = !1, !start && insideIndentedElement() && !isInPre()) { writer._append("\n"); for (var i = 0; indentationLevel > i; i++) writer._append(indentation) } } function isInPre() { return _.some(stack, function (tagName) { return "pre" === tagName }) } var indentationLevel = 0, indentation = " ", stack = [], start = !0, inText = !1, writer = simpleWriter(); return {asString: writer.asString, open: open, close: close, text: text, selfClosing: selfClosing} } function simpleWriter() { function open(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push(util.format("<%s%s>", tagName, attributeString)) } function close(tagName) { fragments.push(util.format("", tagName)) } function selfClosing(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push(util.format("<%s%s />", tagName, attributeString)) } function generateAttributeString(attributes) { return _.map(attributes, function (value, key) { return util.format(' %s="%s"', key, escapeHtmlAttribute(value)) }).join("") } function text(value) { fragments.push(escapeHtmlText(value)) } function append(html) { fragments.push(html) } function asString() { return fragments.join("") } var fragments = []; return { asString: asString, open: open, close: close, text: text, selfClosing: selfClosing, _append: append } } function escapeHtmlText(value) { return value.replace(/&/g, "&").replace(//g, ">") } function escapeHtmlAttribute(value) { return value.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">") } var util = require("util"), _ = require("underscore"); exports.writer = writer; var indentedElements = {div: !0, p: !0, ul: !0, li: !0} }, {underscore: 117, util: 121}], 33: [function (require, module, exports) { function writer(options) { return options = options || {}, "markdown" === options.outputFormat ? markdownWriter.writer() : htmlWriter.writer(options) } var htmlWriter = require("./html-writer"), markdownWriter = require("./markdown-writer"); exports.writer = writer }, {"./html-writer": 32, "./markdown-writer": 34}], 34: [function (require, module, exports) { function symmetricMarkdownElement(end) { return markdownElement(end, end) } function markdownElement(start, end) { return function () { return {start: start, end: end} } } function markdownLink(attributes) { var href = attributes.href || ""; return href ? {start: "[", end: "](" + href + ")", anchorPosition: "before"} : {} } function markdownImage(attributes) { var src = attributes.src || "", altText = attributes.alt || ""; return src || altText ? {start: "![" + altText + "](" + src + ")"} : {} } function markdownList(options) { return function (attributes, list) { return { start: list ? "\n" : "", end: list ? "" : "\n", list: {isOrdered: options.isOrdered, indent: list ? list.indent + 1 : 0, count: 0} } } } function markdownListItem(attributes, list, listItem) { list = list || {indent: 0, isOrdered: !1, count: 0}, list.count++, listItem.hasClosed = !1; var bullet = list.isOrdered ? list.count + "." : "-", start = repeatString(" ", list.indent) + bullet + " "; return { start: start, end: function () { return listItem.hasClosed ? void 0 : (listItem.hasClosed = !0, "\n") } } } function repeatString(value, count) { return new Array(count + 1).join(value) } function markdownWriter() { function open(tagName, attributes) { attributes = attributes || {}; var createElement = htmlToMarkdown[tagName] || function () { return {} }, element = createElement(attributes, list, listItem); elementStack.push({end: element.end, list: list}), element.list && (list = element.list); var anchorBeforeStart = "before" === element.anchorPosition; anchorBeforeStart && writeAnchor(attributes), fragments.push(element.start || ""), anchorBeforeStart || writeAnchor(attributes) } function writeAnchor(attributes) { attributes.id && fragments.push('') } function close(tagName) { var element = elementStack.pop(); list = element.list; var end = _.isFunction(element.end) ? element.end() : element.end; fragments.push(end || "") } function selfClosing(tagName, attributes) { open(tagName, attributes), close(tagName) } function text(value) { fragments.push(escapeMarkdown(value)) } function asString() { return fragments.join("") } var fragments = [], elementStack = [], list = null, listItem = {}; return {asString: asString, open: open, close: close, text: text, selfClosing: selfClosing} } function escapeMarkdown(value) { return value.replace(/\\/g, "\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g, "\\$1") } var _ = require("underscore"), htmlToMarkdown = { p: markdownElement("", "\n\n"), br: markdownElement("", " \n"), ul: markdownList({isOrdered: !1}), ol: markdownList({isOrdered: !0}), li: markdownListItem, strong: symmetricMarkdownElement("__"), em: symmetricMarkdownElement("*"), a: markdownLink, img: markdownImage }; !function () { for (var i = 1; 6 >= i; i++) htmlToMarkdown["h" + i] = markdownElement(repeatString("#", i) + " ", "\n\n") }(), exports.writer = markdownWriter }, {underscore: 117}], 35: [function (require, module, exports) { var nodes = require("./nodes"); exports.Element = nodes.Element, exports.element = nodes.element, exports.text = nodes.text, exports.readString = require("./reader").readString, exports.writeString = require("./writer").writeString }, {"./nodes": 36, "./reader": 37, "./writer": 38}], 36: [function (require, module, exports) { function Element(name, attributes, children) { this.type = "element", this.name = name, this.attributes = attributes || {}, this.children = children || [] } function toElementList(array) { return _.extend(array, elementListPrototype) } var _ = require("underscore"); exports.Element = Element, exports.element = function (name, attributes, children) { return new Element(name, attributes, children) }, exports.text = function (value) { return {type: "text", value: value} }; var emptyElement = { first: function () { return null }, firstOrEmpty: function () { return emptyElement }, attributes: {} }; Element.prototype.first = function (name) { return _.find(this.children, function (child) { return child.name === name }) }, Element.prototype.firstOrEmpty = function (name) { return this.first(name) || emptyElement }, Element.prototype.getElementsByTagName = function (name) { var elements = _.filter(this.children, function (child) { return child.name === name }); return toElementList(elements) }, Element.prototype.text = function () { if (0 === this.children.length) return ""; if (1 !== this.children.length || "text" !== this.children[0].type) throw new Error("Not implemented"); return this.children[0].value }; var elementListPrototype = { getElementsByTagName: function (name) { return toElementList(_.flatten(this.map(function (element) { return element.getElementsByTagName(name) }, !0))) } } }, {underscore: 117}], 37: [function (require, module, exports) { function readString(xmlString, namespaceMap) { function mapName(node) { if (node.uri) { var prefix, mappedPrefix = namespaceMap[node.uri]; return prefix = mappedPrefix ? mappedPrefix + ":" : "{" + node.uri + "}", prefix + node.local } return node.local } namespaceMap = namespaceMap || {}; var finished = !1, parser = sax.parser(!0, {xmlns: !0, position: !1}), rootElement = {children: []}, currentElement = rootElement, stack = [], deferred = promises.defer(); return parser.onopentag = function (node) { var attributes = mapObject(node.attributes, function (attribute) { return attribute.value }, mapName), element = new Element(mapName(node), attributes); currentElement.children.push(element), stack.push(currentElement), currentElement = element }, parser.onclosetag = function (node) { currentElement = stack.pop() }, parser.ontext = function (text) { currentElement !== rootElement && currentElement.children.push(nodes.text(text)) }, parser.onend = function () { finished || (finished = !0, deferred.resolve(rootElement.children[0])) }, parser.onerror = function (error) { finished || (finished = !0, deferred.reject(error)) }, parser.write(xmlString).close(), deferred.promise } function mapObject(input, valueFunc, keyFunc) { return _.reduce(input, function (result, value, key) { var mappedKey = keyFunc(value, key, input); return result[mappedKey] = valueFunc(value, key, input), result }, {}) } var promises = require("../promises"), sax = require("sax"), _ = require("underscore"), nodes = require("./nodes"), Element = nodes.Element; exports.readString = readString }, {"../promises": 23, "./nodes": 36, sax: 114, underscore: 117}], 38: [function (require, module, exports) { function writeString(root, namespaces) { function writeNode(builder, node) { return nodeWriters[node.type](builder, node) } function writeElement(builder, element) { var elementBuilder = builder.element(mapElementName(element.name), element.attributes); element.children.forEach(function (child) { writeNode(elementBuilder, child) }) } function mapElementName(name) { var longFormMatch = /^\{(.*)\}(.*)$/.exec(name); if (longFormMatch) { var prefix = uriToPrefix[longFormMatch[1]]; return prefix + ("" === prefix ? "" : ":") + longFormMatch[2] } return name } function writeDocument(root) { var builder = xmlbuilder.create(mapElementName(root.name), { version: "1.0", encoding: "UTF-8", standalone: !0 }); return _.forEach(namespaces, function (uri, prefix) { var key = "xmlns" + ("" === prefix ? "" : ":" + prefix); builder.attribute(key, uri) }), root.children.forEach(function (child) { writeNode(builder, child) }), builder.end() } var uriToPrefix = _.invert(namespaces), nodeWriters = {element: writeElement, text: writeTextNode}; return writeDocument(root) } function writeTextNode(builder, node) { builder.text(node.value) } var _ = require("underscore"), xmlbuilder = require("xmlbuilder"); exports.writeString = writeString }, {underscore: 117, xmlbuilder: 143}], 39: [function (require, module, exports) { (function (Buffer) { function openArrayBuffer(arrayBuffer) { return JSZip.loadAsync(arrayBuffer).then(function (zipFile) { function exists(name) { return null !== zipFile.file(name) } function read(name, encoding) { return zipFile.file(name).async("uint8array").then(function (array) { var buffer = uint8ArrayToBuffer(array); return encoding ? buffer.toString(encoding) : buffer }) } function write(name, contents) { zipFile.file(name, contents) } function toBuffer() { return zipFile.generateAsync({type: "nodebuffer"}) } return {exists: exists, read: read, write: write, toBuffer: toBuffer} }) } function uint8ArrayToBuffer(array) { return Buffer.from && Buffer.from !== Uint8Array.from ? Buffer.from(array) : new Buffer(array) } function splitPath(path) { var lastIndex = path.lastIndexOf("/"); return -1 === lastIndex ? {dirname: "", basename: path} : { dirname: path.substring(0, lastIndex), basename: path.substring(lastIndex + 1) } } function joinPath() { var nonEmptyPaths = Array.prototype.filter.call(arguments, function (path) { return path }), relevantPaths = []; return nonEmptyPaths.forEach(function (path) { /^\//.test(path) ? relevantPaths = [path] : relevantPaths.push(path) }), relevantPaths.join("/") } var JSZip = require("jszip"); exports.openArrayBuffer = openArrayBuffer, exports.splitPath = splitPath, exports.joinPath = joinPath }).call(this, require("buffer").Buffer) }, {buffer: 78, jszip: 87}], 40: [function (require, module, exports) { "use strict"; function placeHoldersCount(b64) { var len = b64.length; if (len % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); return "=" === b64[len - 2] ? 2 : "=" === b64[len - 1] ? 1 : 0 } function byteLength(b64) { return 3 * b64.length / 4 - placeHoldersCount(b64) } function toByteArray(b64) { var i, j, l, tmp, placeHolders, arr, len = b64.length; placeHolders = placeHoldersCount(b64), arr = new Arr(3 * len / 4 - placeHolders), l = placeHolders > 0 ? len - 4 : len; var L = 0; for (i = 0, j = 0; l > i; i += 4, j += 3) tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)], arr[L++] = tmp >> 16 & 255, arr[L++] = tmp >> 8 & 255, arr[L++] = 255 & tmp; return 2 === placeHolders ? (tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4, arr[L++] = 255 & tmp) : 1 === placeHolders && (tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2, arr[L++] = tmp >> 8 & 255, arr[L++] = 255 & tmp), arr } function tripletToBase64(num) { return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[63 & num] } function encodeChunk(uint8, start, end) { for (var tmp, output = [], i = start; end > i; i += 3) tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2], output.push(tripletToBase64(tmp)); return output.join("") } function fromByteArray(uint8) { for (var tmp, len = uint8.length, extraBytes = len % 3, output = "", parts = [], maxChunkLength = 16383, i = 0, len2 = len - extraBytes; len2 > i; i += maxChunkLength) parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); return 1 === extraBytes ? (tmp = uint8[len - 1], output += lookup[tmp >> 2], output += lookup[tmp << 4 & 63], output += "==") : 2 === extraBytes && (tmp = (uint8[len - 2] << 8) + uint8[len - 1], output += lookup[tmp >> 10], output += lookup[tmp >> 4 & 63], output += lookup[tmp << 2 & 63], output += "="), parts.push(output), parts.join("") } exports.byteLength = byteLength, exports.toByteArray = toByteArray, exports.fromByteArray = fromByteArray; for (var lookup = [], revLookup = [], Arr = "undefined" != typeof Uint8Array ? Uint8Array : Array, code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = 0, len = code.length; len > i; ++i) lookup[i] = code[i], revLookup[code.charCodeAt(i)] = i; revLookup["-".charCodeAt(0)] = 62, revLookup["_".charCodeAt(0)] = 63 }, {}], 41: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function any(promises) { var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(1), ret.setUnwrap(), ret.init(), promise } var SomePromiseArray = Promise._SomePromiseArray; Promise.any = function (promises) { return any(promises) }, Promise.prototype.any = function () { return any(this) } } }, {}], 42: [function (require, module, exports) { (function (process) { "use strict"; function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; var self = this; this.drainQueues = function () { self._drainQueues() }, this._schedule = schedule } function AsyncInvokeLater(fn, receiver, arg) { this._lateQueue.push(fn, receiver, arg), this._queueTick() } function AsyncInvoke(fn, receiver, arg) { this._normalQueue.push(fn, receiver, arg), this._queueTick() } function AsyncSettlePromises(promise) { this._normalQueue._pushOne(promise), this._queueTick() } var firstLineError; try { throw new Error } catch (e) { firstLineError = e } var schedule = require("./schedule"), Queue = require("./queue"), util = require("./util"); Async.prototype.setScheduler = function (fn) { var prev = this._schedule; return this._schedule = fn, this._customScheduler = !0, prev }, Async.prototype.hasCustomScheduler = function () { return this._customScheduler }, Async.prototype.enableTrampoline = function () { this._trampolineEnabled = !0 }, Async.prototype.disableTrampolineIfNecessary = function () { util.hasDevTools && (this._trampolineEnabled = !1) }, Async.prototype.haveItemsQueued = function () { return this._isTickUsed || this._haveDrainedQueues }, Async.prototype.fatalError = function (e, isNode) { isNode ? (process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + "\n"), process.exit(2)) : this.throwLater(e) }, Async.prototype.throwLater = function (fn, arg) { if (1 === arguments.length && (arg = fn, fn = function () { throw arg }), "undefined" != typeof setTimeout) setTimeout(function () { fn(arg) }, 0); else try { this._schedule(function () { fn(arg) }) } catch (e) { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") } }, util.hasDevTools ? (Async.prototype.invokeLater = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvokeLater.call(this, fn, receiver, arg) : this._schedule(function () { setTimeout(function () { fn.call(receiver, arg) }, 100) }) }, Async.prototype.invoke = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvoke.call(this, fn, receiver, arg) : this._schedule(function () { fn.call(receiver, arg) }) }, Async.prototype.settlePromises = function (promise) { this._trampolineEnabled ? AsyncSettlePromises.call(this, promise) : this._schedule(function () { promise._settlePromises() }) }) : (Async.prototype.invokeLater = AsyncInvokeLater, Async.prototype.invoke = AsyncInvoke, Async.prototype.settlePromises = AsyncSettlePromises), Async.prototype._drainQueue = function (queue) { for (; queue.length() > 0;) { var fn = queue.shift(); if ("function" == typeof fn) { var receiver = queue.shift(), arg = queue.shift(); fn.call(receiver, arg) } else fn._settlePromises() } }, Async.prototype._drainQueues = function () { this._drainQueue(this._normalQueue), this._reset(), this._haveDrainedQueues = !0, this._drainQueue(this._lateQueue) }, Async.prototype._queueTick = function () { this._isTickUsed || (this._isTickUsed = !0, this._schedule(this.drainQueues)) }, Async.prototype._reset = function () { this._isTickUsed = !1 }, module.exports = Async, module.exports.firstLineError = firstLineError }).call(this, require("_process")) }, {"./queue": 65, "./schedule": 68, "./util": 75, _process: 102}], 43: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) { var calledBind = !1, rejectThis = function (_, e) { this._reject(e) }, targetRejected = function (e, context) { context.promiseRejectionQueued = !0, context.bindingPromise._then(rejectThis, rejectThis, null, this, e) }, bindingResolved = function (thisArg, context) { 0 === (50397184 & this._bitField) && this._resolveCallback(context.target) }, bindingRejected = function (e, context) { context.promiseRejectionQueued || this._reject(e) }; Promise.prototype.bind = function (thisArg) { calledBind || (calledBind = !0, Promise.prototype._propagateFrom = debug.propagateFromFunction(), Promise.prototype._boundValue = debug.boundValueFunction()); var maybePromise = tryConvertToPromise(thisArg), ret = new Promise(INTERNAL); ret._propagateFrom(this, 1); var target = this._target(); if (ret._setBoundTo(maybePromise), maybePromise instanceof Promise) { var context = { promiseRejectionQueued: !1, promise: ret, target: target, bindingPromise: maybePromise }; target._then(INTERNAL, targetRejected, void 0, ret, context), maybePromise._then(bindingResolved, bindingRejected, void 0, ret, context), ret._setOnCancel(maybePromise) } else ret._resolveCallback(target); return ret }, Promise.prototype._setBoundTo = function (obj) { void 0 !== obj ? (this._bitField = 2097152 | this._bitField, this._boundTo = obj) : this._bitField = -2097153 & this._bitField }, Promise.prototype._isBound = function () { return 2097152 === (2097152 & this._bitField) }, Promise.bind = function (thisArg, value) { return Promise.resolve(value).bind(thisArg) } } }, {}], 44: [function (require, module, exports) { "use strict"; var cr = Object.create; if (cr) { var callerCache = cr(null), getterCache = cr(null); callerCache[" size"] = getterCache[" size"] = 0 } module.exports = function (Promise) { function ensureMethod(obj, methodName) { var fn; if (null != obj && (fn = obj[methodName]), "function" != typeof fn) { var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; throw new Promise.TypeError(message) } return fn } function caller(obj) { var methodName = this.pop(), fn = ensureMethod(obj, methodName); return fn.apply(obj, this) } function namedGetter(obj) { return obj[this] } function indexedGetter(obj) { var index = +this; return 0 > index && (index = Math.max(0, index + obj.length)), obj[index] } var getMethodCaller, getGetter, util = require("./util"), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function (methodName) { return new Function("ensureMethod", " \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g, methodName))(ensureMethod) }, makeGetter = function (propertyName) { return new Function("obj", " \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName", propertyName)) }, getCompiled = function (name, compiler, cache) { var ret = cache[name]; if ("function" != typeof ret) { if (!isIdentifier(name)) return null; if (ret = compiler(name), cache[name] = ret, cache[" size"]++, cache[" size"] > 512) { for (var keys = Object.keys(cache), i = 0; 256 > i; ++i) delete cache[keys[i]]; cache[" size"] = keys.length - 256 } } return ret }; getMethodCaller = function (name) { return getCompiled(name, makeMethodCaller, callerCache) }, getGetter = function (name) { return getCompiled(name, makeGetter, getterCache) }, Promise.prototype.call = function (methodName) { for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i) args[$_i - 1] = arguments[$_i]; if (canEvaluate) { var maybeCaller = getMethodCaller(methodName); if (null !== maybeCaller) return this._then(maybeCaller, void 0, void 0, args, void 0) } return args.push(methodName), this._then(caller, void 0, void 0, args, void 0) }, Promise.prototype.get = function (propertyName) { var getter, isIndex = "number" == typeof propertyName; if (isIndex) getter = indexedGetter; else if (canEvaluate) { var maybeGetter = getGetter(propertyName); getter = null !== maybeGetter ? maybeGetter : namedGetter } else getter = namedGetter; return this._then(getter, void 0, void 0, propertyName, void 0) } } }, {"./util": 75}], 45: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; Promise.prototype["break"] = Promise.prototype.cancel = function () { if (!debug.cancellation()) return this._warn("cancellation is disabled"); for (var promise = this, child = promise; promise._isCancellable();) { if (!promise._cancelBy(child)) { child._isFollowing() ? child._followee().cancel() : child._cancelBranched(); break } var parent = promise._cancellationParent; if (null == parent || !parent._isCancellable()) { promise._isFollowing() ? promise._followee().cancel() : promise._cancelBranched(); break } promise._isFollowing() && promise._followee().cancel(), promise._setWillBeCancelled(), child = promise, promise = parent } }, Promise.prototype._branchHasCancelled = function () { this._branchesRemainingToCancel-- }, Promise.prototype._enoughBranchesHaveCancelled = function () { return void 0 === this._branchesRemainingToCancel || this._branchesRemainingToCancel <= 0 }, Promise.prototype._cancelBy = function (canceller) { return canceller === this ? (this._branchesRemainingToCancel = 0, this._invokeOnCancel(), !0) : (this._branchHasCancelled(), this._enoughBranchesHaveCancelled() ? (this._invokeOnCancel(), !0) : !1) }, Promise.prototype._cancelBranched = function () { this._enoughBranchesHaveCancelled() && this._cancel() }, Promise.prototype._cancel = function () { this._isCancellable() && (this._setCancelled(), async.invoke(this._cancelPromises, this, void 0)) }, Promise.prototype._cancelPromises = function () { this._length() > 0 && this._settlePromises() }, Promise.prototype._unsetOnCancel = function () { this._onCancelField = void 0 }, Promise.prototype._isCancellable = function () { return this.isPending() && !this._isCancelled() }, Promise.prototype.isCancellable = function () { return this.isPending() && !this.isCancelled() }, Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) { if (util.isArray(onCancelCallback)) for (var i = 0; i < onCancelCallback.length; ++i) this._doInvokeOnCancel(onCancelCallback[i], internalOnly); else if (void 0 !== onCancelCallback) if ("function" == typeof onCancelCallback) { if (!internalOnly) { var e = tryCatch(onCancelCallback).call(this._boundValue()); e === errorObj && (this._attachExtraTrace(e.e), async.throwLater(e.e)) } } else onCancelCallback._resultCancelled(this) }, Promise.prototype._invokeOnCancel = function () { var onCancelCallback = this._onCancel(); this._unsetOnCancel(), async.invoke(this._doInvokeOnCancel, this, onCancelCallback) }, Promise.prototype._invokeInternalOnCancel = function () { this._isCancellable() && (this._doInvokeOnCancel(this._onCancel(), !0), this._unsetOnCancel()) }, Promise.prototype._resultCancelled = function () { this.cancel() } } }, {"./util": 75}], 46: [function (require, module, exports) { "use strict"; module.exports = function (NEXT_FILTER) { function catchFilter(instances, cb, promise) { return function (e) { var boundTo = promise._boundValue(); predicateLoop:for (var i = 0; i < instances.length; ++i) { var item = instances[i]; if (item === Error || null != item && item.prototype instanceof Error) { if (e instanceof item) return tryCatch(cb).call(boundTo, e) } else if ("function" == typeof item) { var matchesPredicate = tryCatch(item).call(boundTo, e); if (matchesPredicate === errorObj) return matchesPredicate; if (matchesPredicate) return tryCatch(cb).call(boundTo, e) } else if (util.isObject(e)) { for (var keys = getKeys(item), j = 0; j < keys.length; ++j) { var key = keys[j]; if (item[key] != e[key]) continue predicateLoop } return tryCatch(cb).call(boundTo, e) } } return NEXT_FILTER } } var util = require("./util"), getKeys = require("./es5").keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return catchFilter } }, {"./es5": 52, "./util": 75}], 47: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function Context() { this._trace = new Context.CapturedTrace(peekContext()) } function createContext() { return longStackTraces ? new Context : void 0 } function peekContext() { var lastIndex = contextStack.length - 1; return lastIndex >= 0 ? contextStack[lastIndex] : void 0 } var longStackTraces = !1, contextStack = []; return Promise.prototype._promiseCreated = function () { }, Promise.prototype._pushContext = function () { }, Promise.prototype._popContext = function () { return null }, Promise._peekContext = Promise.prototype._peekContext = function () { }, Context.prototype._pushContext = function () { void 0 !== this._trace && (this._trace._promiseCreated = null, contextStack.push(this._trace)) }, Context.prototype._popContext = function () { if (void 0 !== this._trace) { var trace = contextStack.pop(), ret = trace._promiseCreated; return trace._promiseCreated = null, ret } return null }, Context.CapturedTrace = null, Context.create = createContext, Context.deactivateLongStackTraces = function () { }, Context.activateLongStackTraces = function () { var Promise_pushContext = Promise.prototype._pushContext, Promise_popContext = Promise.prototype._popContext, Promise_PeekContext = Promise._peekContext, Promise_peekContext = Promise.prototype._peekContext, Promise_promiseCreated = Promise.prototype._promiseCreated; Context.deactivateLongStackTraces = function () { Promise.prototype._pushContext = Promise_pushContext, Promise.prototype._popContext = Promise_popContext, Promise._peekContext = Promise_PeekContext, Promise.prototype._peekContext = Promise_peekContext, Promise.prototype._promiseCreated = Promise_promiseCreated, longStackTraces = !1 }, longStackTraces = !0, Promise.prototype._pushContext = Context.prototype._pushContext, Promise.prototype._popContext = Context.prototype._popContext, Promise._peekContext = Promise.prototype._peekContext = peekContext, Promise.prototype._promiseCreated = function () { var ctx = this._peekContext(); ctx && null == ctx._promiseCreated && (ctx._promiseCreated = this) } }, Context } }, {}], 48: [function (require, module, exports) { (function (process) { "use strict"; module.exports = function (Promise, Context) { function generatePromiseLifecycleEventObject(name, promise) { return {promise: promise} } function defaultFireEvent() { return !1 } function cancellationExecute(executor, resolve, reject) { var promise = this; try { executor(resolve, reject, function (onCancel) { if ("function" != typeof onCancel) throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); promise._attachCancellationCallback(onCancel) }) } catch (e) { return e } } function cancellationAttachCancellationCallback(onCancel) { if (!this._isCancellable()) return this; var previousOnCancel = this._onCancel(); void 0 !== previousOnCancel ? util.isArray(previousOnCancel) ? previousOnCancel.push(onCancel) : this._setOnCancel([previousOnCancel, onCancel]) : this._setOnCancel(onCancel) } function cancellationOnCancel() { return this._onCancelField } function cancellationSetOnCancel(onCancel) { this._onCancelField = onCancel } function cancellationClearCancellationData() { this._cancellationParent = void 0, this._onCancelField = void 0 } function cancellationPropagateFrom(parent, flags) { if (0 !== (1 & flags)) { this._cancellationParent = parent; var branchesRemainingToCancel = parent._branchesRemainingToCancel; void 0 === branchesRemainingToCancel && (branchesRemainingToCancel = 0), parent._branchesRemainingToCancel = branchesRemainingToCancel + 1 } 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function bindingPropagateFrom(parent, flags) { 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function boundValueFunction() { var ret = this._boundTo; return void 0 !== ret && ret instanceof Promise ? ret.isFulfilled() ? ret.value() : void 0 : ret } function longStackTracesCaptureStackTrace() { this._trace = new CapturedTrace(this._peekContext()) } function longStackTracesAttachExtraTrace(error, ignoreSelf) { if (canAttachTrace(error)) { var trace = this._trace; if (void 0 !== trace && ignoreSelf && (trace = trace._parent), void 0 !== trace) trace.attachExtraTrace(error); else if (!error.__stackCleaned__) { var parsed = parseStackAndMessage(error); util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")), util.notEnumerableProp(error, "__stackCleaned__", !0) } } } function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (void 0 === returnValue && null !== promiseCreated && wForgottenReturn) { if (void 0 !== parent && parent._returnedNonUndefined()) return; if (0 === (65535 & promise._bitField)) return; name && (name += " "); var handlerLine = "", creatorLine = ""; if (promiseCreated._trace) { for (var traceLines = promiseCreated._trace.stack.split("\n"), stack = cleanStack(traceLines), i = stack.length - 1; i >= 0; --i) { var line = stack[i]; if (!nodeFramePattern.test(line)) { var lineMatches = line.match(parseLinePattern); lineMatches && (handlerLine = "at " + lineMatches[1] + ":" + lineMatches[2] + ":" + lineMatches[3] + " "); break } } if (stack.length > 0) for (var firstUserLine = stack[0], i = 0; i < traceLines.length; ++i) if (traceLines[i] === firstUserLine) { i > 0 && (creatorLine = "\n" + traceLines[i - 1]); break } } var msg = "a promise was created in a " + name + "handler " + handlerLine + "but was not returned from it, see http://goo.gl/rRqMUw" + creatorLine; promise._warn(msg, !0, promiseCreated) } } function deprecated(name, replacement) { var message = name + " is deprecated and will be removed in a future version."; return replacement && (message += " Use " + replacement + " instead."), warn(message) } function warn(message, shouldUseOwnTrace, promise) { if (config.warnings) { var ctx, warning = new Warning(message); if (shouldUseOwnTrace) promise._attachExtraTrace(warning); else if (config.longStackTraces && (ctx = Promise._peekContext())) ctx.attachExtraTrace(warning); else { var parsed = parseStackAndMessage(warning); warning.stack = parsed.message + "\n" + parsed.stack.join("\n") } activeFireEvent("warning", warning) || formatAndLogError(warning, "", !0) } } function reconstructStack(message, stacks) { for (var i = 0; i < stacks.length - 1; ++i) stacks[i].push("From previous event:"), stacks[i] = stacks[i].join("\n"); return i < stacks.length && (stacks[i] = stacks[i].join("\n")), message + "\n" + stacks.join("\n") } function removeDuplicateOrEmptyJumps(stacks) { for (var i = 0; i < stacks.length; ++i) (0 === stacks[i].length || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) && (stacks.splice(i, 1), i--) } function removeCommonRoots(stacks) { for (var current = stacks[0], i = 1; i < stacks.length; ++i) { for (var prev = stacks[i], currentLastIndex = current.length - 1, currentLastLine = current[currentLastIndex], commonRootMeetPoint = -1, j = prev.length - 1; j >= 0; --j) if (prev[j] === currentLastLine) { commonRootMeetPoint = j; break } for (var j = commonRootMeetPoint; j >= 0; --j) { var line = prev[j]; if (current[currentLastIndex] !== line) break; current.pop(), currentLastIndex-- } current = prev } } function cleanStack(stack) { for (var ret = [], i = 0; i < stack.length; ++i) { var line = stack[i], isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line), isInternalFrame = isTraceLine && shouldIgnore(line); isTraceLine && !isInternalFrame && (indentStackFrames && " " !== line.charAt(0) && (line = " " + line), ret.push(line)) } return ret } function stackFramesAsArray(error) { for (var stack = error.stack.replace(/\s+$/g, "").split("\n"), i = 0; i < stack.length; ++i) { var line = stack[i]; if (" (No stack trace)" === line || stackFramePattern.test(line)) break } return i > 0 && "SyntaxError" != error.name && (stack = stack.slice(i)), stack } function parseStackAndMessage(error) { var stack = error.stack, message = error.toString(); return stack = "string" == typeof stack && stack.length > 0 ? stackFramesAsArray(error) : [" (No stack trace)"], { message: message, stack: "SyntaxError" == error.name ? stack : cleanStack(stack) } } function formatAndLogError(error, title, isSoft) { if ("undefined" != typeof console) { var message; if (util.isObject(error)) { var stack = error.stack; message = title + formatStack(stack, error) } else message = title + String(error); "function" == typeof printWarning ? printWarning(message, isSoft) : ("function" == typeof console.log || "object" == typeof console.log) && console.log(message) } } function fireRejectionEvent(name, localHandler, reason, promise) { var localEventFired = !1; try { "function" == typeof localHandler && (localEventFired = !0, "rejectionHandled" === name ? localHandler(promise) : localHandler(reason, promise)) } catch (e) { async.throwLater(e) } "unhandledRejection" === name ? activeFireEvent(name, reason, promise) || localEventFired || formatAndLogError(reason, "Unhandled rejection ") : activeFireEvent(name, promise) } function formatNonError(obj) { var str; if ("function" == typeof obj) str = "[function " + (obj.name || "anonymous") + "]"; else { str = obj && "function" == typeof obj.toString ? obj.toString() : util.toString(obj); var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; if (ruselessToString.test(str)) try { var newStr = JSON.stringify(obj); str = newStr } catch (e) { } 0 === str.length && (str = "(empty array)") } return "(<" + snip(str) + ">, no stack trace)" } function snip(str) { var maxChars = 41; return str.length < maxChars ? str : str.substr(0, maxChars - 3) + "..." } function longStackTracesIsSupported() { return "function" == typeof captureStackTrace } function parseLineInfo(line) { var matches = line.match(parseLineInfoRegex); return matches ? {fileName: matches[1], line: parseInt(matches[2], 10)} : void 0 } function setBounds(firstLineError, lastLineError) { if (longStackTracesIsSupported()) { for (var firstFileName, lastFileName, firstStackLines = firstLineError.stack.split("\n"), lastStackLines = lastLineError.stack.split("\n"), firstIndex = -1, lastIndex = -1, i = 0; i < firstStackLines.length; ++i) { var result = parseLineInfo(firstStackLines[i]); if (result) { firstFileName = result.fileName, firstIndex = result.line; break } } for (var i = 0; i < lastStackLines.length; ++i) { var result = parseLineInfo(lastStackLines[i]); if (result) { lastFileName = result.fileName, lastIndex = result.line; break } } 0 > firstIndex || 0 > lastIndex || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex || (shouldIgnore = function (line) { if (bluebirdFramePattern.test(line)) return !0; var info = parseLineInfo(line); return info && info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex ? !0 : !1 }) } } function CapturedTrace(parent) { this._parent = parent, this._promisesCreated = 0; var length = this._length = 1 + (void 0 === parent ? 0 : parent._length); captureStackTrace(this, CapturedTrace), length > 32 && this.uncycle() } var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = require("./errors").Warning, util = require("./util"), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function () { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288 }, Promise.prototype._ensurePossibleRejectionHandled = function () { 0 === (524288 & this._bitField) && (this._setRejectionIsUnhandled(), async.invokeLater(this._notifyUnhandledRejection, this, void 0)) }, Promise.prototype._notifyUnhandledRejectionIsHandled = function () { fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, void 0, this) }, Promise.prototype._setReturnedNonUndefined = function () { this._bitField = 268435456 | this._bitField }, Promise.prototype._returnedNonUndefined = function () { return 0 !== (268435456 & this._bitField) }, Promise.prototype._notifyUnhandledRejection = function () { if (this._isRejectionUnhandled()) { var reason = this._settledValue(); this._setUnhandledRejectionIsNotified(), fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this) } }, Promise.prototype._setUnhandledRejectionIsNotified = function () { this._bitField = 262144 | this._bitField }, Promise.prototype._unsetUnhandledRejectionIsNotified = function () { this._bitField = -262145 & this._bitField }, Promise.prototype._isUnhandledRejectionNotified = function () { return (262144 & this._bitField) > 0 }, Promise.prototype._setRejectionIsUnhandled = function () { this._bitField = 1048576 | this._bitField }, Promise.prototype._unsetRejectionIsUnhandled = function () { this._bitField = -1048577 & this._bitField, this._isUnhandledRejectionNotified() && (this._unsetUnhandledRejectionIsNotified(), this._notifyUnhandledRejectionIsHandled()) }, Promise.prototype._isRejectionUnhandled = function () { return (1048576 & this._bitField) > 0 }, Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) { return warn(message, shouldUseOwnTrace, promise || this) }, Promise.onPossiblyUnhandledRejection = function (fn) { var domain = getDomain(); possiblyUnhandledRejection = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }, Promise.onUnhandledRejectionHandled = function (fn) { var domain = getDomain(); unhandledRejectionHandled = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }; var disableLongStackTraces = function () { }; Promise.longStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace, Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; config.longStackTraces = !0, disableLongStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); Promise.prototype._captureStackTrace = Promise_captureStackTrace, Promise.prototype._attachExtraTrace = Promise_attachExtraTrace, Context.deactivateLongStackTraces(), async.enableTrampoline(), config.longStackTraces = !1 }, Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace, Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace, Context.activateLongStackTraces(), async.disableTrampolineIfNecessary() } }, Promise.hasLongStackTraces = function () { return config.longStackTraces && longStackTracesIsSupported() }; var fireDomEvent = function () { try { if ("function" == typeof CustomEvent) { var event = new CustomEvent("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new CustomEvent(name.toLowerCase(), {detail: event, cancelable: !0}); return !util.global.dispatchEvent(domEvent) } } if ("function" == typeof Event) { var event = new Event("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new Event(name.toLowerCase(), {cancelable: !0}); return domEvent.detail = event, !util.global.dispatchEvent(domEvent) } } var event = document.createEvent("CustomEvent"); return event.initCustomEvent("testingtheevent", !1, !0, {}), util.global.dispatchEvent(event), function (name, event) { var domEvent = document.createEvent("CustomEvent"); return domEvent.initCustomEvent(name.toLowerCase(), !1, !0, event), !util.global.dispatchEvent(domEvent) } } catch (e) { } return function () { return !1 } }(), fireGlobalEvent = function () { return util.isNode ? function () { return process.emit.apply(process, arguments) } : util.global ? function (name) { var methodName = "on" + name.toLowerCase(), method = util.global[methodName]; return method ? (method.apply(util.global, [].slice.call(arguments, 1)), !0) : !1 } : function () { return !1 } }(), eventToObjectGenerator = { promiseCreated: generatePromiseLifecycleEventObject, promiseFulfilled: generatePromiseLifecycleEventObject, promiseRejected: generatePromiseLifecycleEventObject, promiseResolved: generatePromiseLifecycleEventObject, promiseCancelled: generatePromiseLifecycleEventObject, promiseChained: function (name, promise, child) { return {promise: promise, child: child} }, warning: function (name, warning) { return {warning: warning} }, unhandledRejection: function (name, reason, promise) { return {reason: reason, promise: promise} }, rejectionHandled: generatePromiseLifecycleEventObject }, activeFireEvent = function (name) { var globalEventFired = !1; try { globalEventFired = fireGlobalEvent.apply(null, arguments) } catch (e) { async.throwLater(e), globalEventFired = !0 } var domEventFired = !1; try { domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)) } catch (e) { async.throwLater(e), domEventFired = !0 } return domEventFired || globalEventFired }; Promise.config = function (opts) { if (opts = Object(opts), "longStackTraces" in opts && (opts.longStackTraces ? Promise.longStackTraces() : !opts.longStackTraces && Promise.hasLongStackTraces() && disableLongStackTraces()), "warnings" in opts) { var warningsOption = opts.warnings; config.warnings = !!warningsOption, wForgottenReturn = config.warnings, util.isObject(warningsOption) && "wForgottenReturn" in warningsOption && (wForgottenReturn = !!warningsOption.wForgottenReturn) } if ("cancellation" in opts && opts.cancellation && !config.cancellation) { if (async.haveItemsQueued()) throw new Error("cannot enable cancellation after promises are in use"); Promise.prototype._clearCancellationData = cancellationClearCancellationData, Promise.prototype._propagateFrom = cancellationPropagateFrom, Promise.prototype._onCancel = cancellationOnCancel, Promise.prototype._setOnCancel = cancellationSetOnCancel, Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback, Promise.prototype._execute = cancellationExecute, propagateFromFunction = cancellationPropagateFrom, config.cancellation = !0 } return "monitoring" in opts && (opts.monitoring && !config.monitoring ? (config.monitoring = !0, Promise.prototype._fireEvent = activeFireEvent) : !opts.monitoring && config.monitoring && (config.monitoring = !1, Promise.prototype._fireEvent = defaultFireEvent)), Promise }, Promise.prototype._fireEvent = defaultFireEvent, Promise.prototype._execute = function (executor, resolve, reject) { try { executor(resolve, reject) } catch (e) { return e } }, Promise.prototype._onCancel = function () { }, Promise.prototype._setOnCancel = function (handler) { }, Promise.prototype._attachCancellationCallback = function (onCancel) { }, Promise.prototype._captureStackTrace = function () { }, Promise.prototype._attachExtraTrace = function () { }, Promise.prototype._clearCancellationData = function () { }, Promise.prototype._propagateFrom = function (parent, flags) { }; var propagateFromFunction = bindingPropagateFrom, shouldIgnore = function () { return !1 }, parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; util.inherits(CapturedTrace, Error), Context.CapturedTrace = CapturedTrace, CapturedTrace.prototype.uncycle = function () { var length = this._length; if (!(2 > length)) { for (var nodes = [], stackToIndex = {}, i = 0, node = this; void 0 !== node; ++i) nodes.push(node), node = node._parent; length = this._length = i; for (var i = length - 1; i >= 0; --i) { var stack = nodes[i].stack; void 0 === stackToIndex[stack] && (stackToIndex[stack] = i) } for (var i = 0; length > i; ++i) { var currentStack = nodes[i].stack, index = stackToIndex[currentStack]; if (void 0 !== index && index !== i) { index > 0 && (nodes[index - 1]._parent = void 0, nodes[index - 1]._length = 1), nodes[i]._parent = void 0, nodes[i]._length = 1; var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; length - 1 > index ? (cycleEdgeNode._parent = nodes[index + 1], cycleEdgeNode._parent.uncycle(), cycleEdgeNode._length = cycleEdgeNode._parent._length + 1) : (cycleEdgeNode._parent = void 0, cycleEdgeNode._length = 1); for (var currentChildLength = cycleEdgeNode._length + 1, j = i - 2; j >= 0; --j) nodes[j]._length = currentChildLength, currentChildLength++; return } } } }, CapturedTrace.prototype.attachExtraTrace = function (error) { if (!error.__stackCleaned__) { this.uncycle(); for (var parsed = parseStackAndMessage(error), message = parsed.message, stacks = [parsed.stack], trace = this; void 0 !== trace;) stacks.push(cleanStack(trace.stack.split("\n"))), trace = trace._parent; removeCommonRoots(stacks), removeDuplicateOrEmptyJumps(stacks), util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)), util.notEnumerableProp(error, "__stackCleaned__", !0) } }; var captureStackTrace = function () { var v8stackFramePattern = /^\s*at\s*/, v8stackFormatter = function (stack, error) { return "string" == typeof stack ? stack : void 0 !== error.name && void 0 !== error.message ? error.toString() : formatNonError(error) }; if ("number" == typeof Error.stackTraceLimit && "function" == typeof Error.captureStackTrace) { Error.stackTraceLimit += 6, stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter; var captureStackTrace = Error.captureStackTrace; return shouldIgnore = function (line) { return bluebirdFramePattern.test(line) }, function (receiver, ignoreUntil) { Error.stackTraceLimit += 6, captureStackTrace(receiver, ignoreUntil), Error.stackTraceLimit -= 6 } } var err = new Error; if ("string" == typeof err.stack && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) return stackFramePattern = /@/, formatStack = v8stackFormatter, indentStackFrames = !0, function (o) { o.stack = (new Error).stack }; var hasStackAfterThrow; try { throw new Error } catch (e) { hasStackAfterThrow = "stack" in e } return "stack" in err || !hasStackAfterThrow || "number" != typeof Error.stackTraceLimit ? (formatStack = function (stack, error) { return "string" == typeof stack ? stack : "object" != typeof error && "function" != typeof error || void 0 === error.name || void 0 === error.message ? formatNonError(error) : error.toString() }, null) : (stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter, function (o) { Error.stackTraceLimit += 6; try { throw new Error } catch (e) { o.stack = e.stack } Error.stackTraceLimit -= 6 }) }([]); "undefined" != typeof console && "undefined" != typeof console.warn && (printWarning = function (message) { console.warn(message) }, util.isNode && process.stderr.isTTY ? printWarning = function (message, isSoft) { var color = isSoft ? "" : ""; console.warn(color + message + "\n") } : util.isNode || "string" != typeof(new Error).stack || (printWarning = function (message, isSoft) { console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red") })); var config = {warnings: warnings, longStackTraces: !1, cancellation: !1, monitoring: !1}; return longStackTraces && Promise.longStackTraces(), { longStackTraces: function () { return config.longStackTraces }, warnings: function () { return config.warnings }, cancellation: function () { return config.cancellation }, monitoring: function () { return config.monitoring }, propagateFromFunction: function () { return propagateFromFunction }, boundValueFunction: function () { return boundValueFunction }, checkForgottenReturns: checkForgottenReturns, setBounds: setBounds, warn: warn, deprecated: deprecated, CapturedTrace: CapturedTrace, fireDomEvent: fireDomEvent, fireGlobalEvent: fireGlobalEvent } } }).call(this, require("_process")) }, {"./errors": 51, "./util": 75, _process: 102}], 49: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function returner() { return this.value } function thrower() { throw this.reason } Promise.prototype["return"] = Promise.prototype.thenReturn = function (value) { return value instanceof Promise && value.suppressUnhandledRejections(), this._then(returner, void 0, void 0, {value: value}, void 0) }, Promise.prototype["throw"] = Promise.prototype.thenThrow = function (reason) { return this._then(thrower, void 0, void 0, {reason: reason}, void 0) }, Promise.prototype.catchThrow = function (reason) { if (arguments.length <= 1) return this._then(void 0, thrower, void 0, {reason: reason}, void 0); var _reason = arguments[1], handler = function () { throw _reason }; return this.caught(reason, handler) }, Promise.prototype.catchReturn = function (value) { if (arguments.length <= 1) return value instanceof Promise && value.suppressUnhandledRejections(), this._then(void 0, returner, void 0, {value: value}, void 0); var _value = arguments[1]; _value instanceof Promise && _value.suppressUnhandledRejections(); var handler = function () { return _value }; return this.caught(value, handler) } } }, {}], 50: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function promiseAllThis() { return PromiseAll(this) } function PromiseMapSeries(promises, fn) { return PromiseReduce(promises, fn, INTERNAL, INTERNAL) } var PromiseReduce = Promise.reduce, PromiseAll = Promise.all; Promise.prototype.each = function (fn) { return PromiseReduce(this, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, this, void 0) }, Promise.prototype.mapSeries = function (fn) { return PromiseReduce(this, fn, INTERNAL, INTERNAL) }, Promise.each = function (promises, fn) { return PromiseReduce(promises, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, promises, void 0) }, Promise.mapSeries = PromiseMapSeries } }, {}], 51: [function (require, module, exports) { "use strict"; function subError(nameProperty, defaultMessage) { function SubError(message) { return this instanceof SubError ? (notEnumerableProp(this, "message", "string" == typeof message ? message : defaultMessage), notEnumerableProp(this, "name", nameProperty), void(Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : Error.call(this))) : new SubError(message) } return inherits(SubError, Error), SubError } function OperationalError(message) { return this instanceof OperationalError ? (notEnumerableProp(this, "name", "OperationalError"), notEnumerableProp(this, "message", message), this.cause = message, this.isOperational = !0, void(message instanceof Error ? (notEnumerableProp(this, "message", message.message), notEnumerableProp(this, "stack", message.stack)) : Error.captureStackTrace && Error.captureStackTrace(this, this.constructor))) : new OperationalError(message) } var _TypeError, _RangeError, es5 = require("./es5"), Objectfreeze = es5.freeze, util = require("./util"), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp, Warning = subError("Warning", "warning"), CancellationError = subError("CancellationError", "cancellation error"), TimeoutError = subError("TimeoutError", "timeout error"), AggregateError = subError("AggregateError", "aggregate error"); try { _TypeError = TypeError, _RangeError = RangeError } catch (e) { _TypeError = subError("TypeError", "type error"), _RangeError = subError("RangeError", "range error") } for (var methods = "join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "), i = 0; i < methods.length; ++i) "function" == typeof Array.prototype[methods[i]] && (AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]); es5.defineProperty(AggregateError.prototype, "length", { value: 0, configurable: !1, writable: !0, enumerable: !0 }), AggregateError.prototype.isOperational = !0; var level = 0; AggregateError.prototype.toString = function () { var indent = Array(4 * level + 1).join(" "), ret = "\n" + indent + "AggregateError of:\n"; level++, indent = Array(4 * level + 1).join(" "); for (var i = 0; i < this.length; ++i) { for (var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "", lines = str.split("\n"), j = 0; j < lines.length; ++j) lines[j] = indent + lines[j]; str = lines.join("\n"), ret += str + "\n" } return level--, ret }, inherits(OperationalError, Error); var errorTypes = Error.__BluebirdErrorTypes__; errorTypes || (errorTypes = Objectfreeze({ CancellationError: CancellationError, TimeoutError: TimeoutError, OperationalError: OperationalError, RejectionError: OperationalError, AggregateError: AggregateError }), es5.defineProperty(Error, "__BluebirdErrorTypes__", { value: errorTypes, writable: !1, enumerable: !1, configurable: !1 })), module.exports = { Error: Error, TypeError: _TypeError, RangeError: _RangeError, CancellationError: errorTypes.CancellationError, OperationalError: errorTypes.OperationalError, TimeoutError: errorTypes.TimeoutError, AggregateError: errorTypes.AggregateError, Warning: Warning } }, {"./es5": 52, "./util": 75}], 52: [function (require, module, exports) { var isES5 = function () { "use strict"; return void 0 === this }(); if (isES5) module.exports = { freeze: Object.freeze, defineProperty: Object.defineProperty, getDescriptor: Object.getOwnPropertyDescriptor, keys: Object.keys, names: Object.getOwnPropertyNames, getPrototypeOf: Object.getPrototypeOf, isArray: Array.isArray, isES5: isES5, propertyIsWritable: function (obj, prop) { var descriptor = Object.getOwnPropertyDescriptor(obj, prop); return !(descriptor && !descriptor.writable && !descriptor.set) } }; else { var has = {}.hasOwnProperty, str = {}.toString, proto = {}.constructor.prototype, ObjectKeys = function (o) { var ret = []; for (var key in o) has.call(o, key) && ret.push(key); return ret }, ObjectGetDescriptor = function (o, key) { return {value: o[key]} }, ObjectDefineProperty = function (o, key, desc) { return o[key] = desc.value, o }, ObjectFreeze = function (obj) { return obj }, ObjectGetPrototypeOf = function (obj) { try { return Object(obj).constructor.prototype } catch (e) { return proto } }, ArrayIsArray = function (obj) { try { return "[object Array]" === str.call(obj) } catch (e) { return !1 } }; module.exports = { isArray: ArrayIsArray, keys: ObjectKeys, names: ObjectKeys, defineProperty: ObjectDefineProperty, getDescriptor: ObjectGetDescriptor, freeze: ObjectFreeze, getPrototypeOf: ObjectGetPrototypeOf, isES5: isES5, propertyIsWritable: function () { return !0 } } } }, {}], 53: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { var PromiseMap = Promise.map; Promise.prototype.filter = function (fn, options) { return PromiseMap(this, fn, options, INTERNAL) }, Promise.filter = function (promises, fn, options) { return PromiseMap(promises, fn, options, INTERNAL) } } }, {}], 54: [function (require, module, exports) { "use strict"; module.exports = function (Promise, tryConvertToPromise) { function PassThroughHandlerContext(promise, type, handler) { this.promise = promise, this.type = type, this.handler = handler, this.called = !1, this.cancelPromise = null } function FinallyHandlerCancelReaction(finallyHandler) { this.finallyHandler = finallyHandler } function checkCancel(ctx, reason) { return null != ctx.cancelPromise ? (arguments.length > 1 ? ctx.cancelPromise._reject(reason) : ctx.cancelPromise._cancel(), ctx.cancelPromise = null, !0) : !1 } function succeed() { return finallyHandler.call(this, this.promise._target()._settledValue()) } function fail(reason) { return checkCancel(this, reason) ? void 0 : (errorObj.e = reason, errorObj) } function finallyHandler(reasonOrValue) { var promise = this.promise, handler = this.handler; if (!this.called) { this.called = !0; var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); if (void 0 !== ret) { promise._setReturnedNonUndefined(); var maybePromise = tryConvertToPromise(ret, promise); if (maybePromise instanceof Promise) { if (null != this.cancelPromise) { if (maybePromise._isCancelled()) { var reason = new CancellationError("late cancellation observer"); return promise._attachExtraTrace(reason), errorObj.e = reason, errorObj } maybePromise.isPending() && maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)) } return maybePromise._then(succeed, fail, void 0, this, void 0) } } } return promise.isRejected() ? (checkCancel(this), errorObj.e = reasonOrValue, errorObj) : (checkCancel(this), reasonOrValue) } var util = require("./util"), CancellationError = Promise.CancellationError, errorObj = util.errorObj; return PassThroughHandlerContext.prototype.isFinallyHandler = function () { return 0 === this.type }, FinallyHandlerCancelReaction.prototype._resultCancelled = function () { checkCancel(this.finallyHandler) }, Promise.prototype._passThrough = function (handler, type, success, fail) { return "function" != typeof handler ? this.then() : this._then(success, fail, void 0, new PassThroughHandlerContext(this, type, handler), void 0) }, Promise.prototype.lastly = Promise.prototype["finally"] = function (handler) { return this._passThrough(handler, 0, finallyHandler, finallyHandler) }, Promise.prototype.tap = function (handler) { return this._passThrough(handler, 1, finallyHandler) }, PassThroughHandlerContext } }, {"./util": 75}], 55: [function (require, module, exports) { "use strict"; module.exports = function (Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { function promiseFromYieldHandler(value, yieldHandlers, traceParent) { for (var i = 0; i < yieldHandlers.length; ++i) { traceParent._pushContext(); var result = tryCatch(yieldHandlers[i])(value); if (traceParent._popContext(), result === errorObj) { traceParent._pushContext(); var ret = Promise.reject(errorObj.e); return traceParent._popContext(), ret } var maybePromise = tryConvertToPromise(result, traceParent); if (maybePromise instanceof Promise) return maybePromise } return null } function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); this._promise = internal.lastly(function () { return _finallyPromise }), internal._captureStackTrace(), internal._setOnCancel(this) } else { var promise = this._promise = new Promise(INTERNAL); promise._captureStackTrace() } this._stack = stack, this._generatorFunction = generatorFunction, this._receiver = receiver, this._generator = void 0, this._yieldHandlers = "function" == typeof yieldHandler ? [yieldHandler].concat(yieldHandlers) : yieldHandlers, this._yieldedPromise = null, this._cancellationPhase = !1 } var errors = require("./errors"), TypeError = errors.TypeError, util = require("./util"), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; util.inherits(PromiseSpawn, Proxyable), PromiseSpawn.prototype._isResolved = function () { return null === this._promise }, PromiseSpawn.prototype._cleanup = function () { this._promise = this._generator = null, debug.cancellation() && null !== this._finallyPromise && (this._finallyPromise._fulfill(), this._finallyPromise = null) }, PromiseSpawn.prototype._promiseCancelled = function () { if (!this._isResolved()) { var result, implementsReturn = "undefined" != typeof this._generator["return"]; if (implementsReturn) this._promise._pushContext(), result = tryCatch(this._generator["return"]).call(this._generator, void 0), this._promise._popContext(); else { var reason = new Promise.CancellationError("generator .return() sentinel"); Promise.coroutine.returnSentinel = reason, this._promise._attachExtraTrace(reason), this._promise._pushContext(), result = tryCatch(this._generator["throw"]).call(this._generator, reason), this._promise._popContext() } this._cancellationPhase = !0, this._yieldedPromise = null, this._continue(result) } }, PromiseSpawn.prototype._promiseFulfilled = function (value) { this._yieldedPromise = null, this._promise._pushContext(); var result = tryCatch(this._generator.next).call(this._generator, value); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._promiseRejected = function (reason) { this._yieldedPromise = null, this._promise._attachExtraTrace(reason), this._promise._pushContext(); var result = tryCatch(this._generator["throw"]).call(this._generator, reason); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._resultCancelled = function () { if (this._yieldedPromise instanceof Promise) { var promise = this._yieldedPromise; this._yieldedPromise = null, promise.cancel() } }, PromiseSpawn.prototype.promise = function () { return this._promise }, PromiseSpawn.prototype._run = function () { this._generator = this._generatorFunction.call(this._receiver), this._receiver = this._generatorFunction = void 0, this._promiseFulfilled(void 0) }, PromiseSpawn.prototype._continue = function (result) { var promise = this._promise; if (result === errorObj) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._rejectCallback(result.e, !1); var value = result.value; if (result.done === !0) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._resolveCallback(value); var maybePromise = tryConvertToPromise(value, this._promise); if (!(maybePromise instanceof Promise) && (maybePromise = promiseFromYieldHandler(maybePromise, this._yieldHandlers, this._promise), null === maybePromise)) return void this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (this._yieldedPromise = maybePromise, maybePromise._proxy(this, null)) : 0 !== (33554432 & bitField) ? Promise._async.invoke(this._promiseFulfilled, this, maybePromise._value()) : 0 !== (16777216 & bitField) ? Promise._async.invoke(this._promiseRejected, this, maybePromise._reason()) : this._promiseCancelled() }, Promise.coroutine = function (generatorFunction, options) { if ("function" != typeof generatorFunction) throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var yieldHandler = Object(options).yieldHandler, PromiseSpawn$ = PromiseSpawn, stack = (new Error).stack; return function () { var generator = generatorFunction.apply(this, arguments), spawn = new PromiseSpawn$(void 0, void 0, yieldHandler, stack), ret = spawn.promise(); return spawn._generator = generator, spawn._promiseFulfilled(void 0), ret } }, Promise.coroutine.addYieldHandler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); yieldHandlers.push(fn) }, Promise.spawn = function (generatorFunction) { if (debug.deprecated("Promise.spawn()", "Promise.coroutine()"), "function" != typeof generatorFunction) return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var spawn = new PromiseSpawn(generatorFunction, this), ret = spawn.promise(); return spawn._run(Promise.spawn), ret } } }, {"./errors": 51, "./util": 75}], 56: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain) { var reject, util = require("./util"), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; if (canEvaluate) { for (var thenCallback = function (i) { return new Function("value", "holder", " \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g, i)) }, promiseSetter = function (i) { return new Function("promise", "holder", " \n 'use strict'; \n holder.pIndex = promise; \n ".replace(/Index/g, i)) }, generateHolderClass = function (total) { for (var props = new Array(total), i = 0; i < props.length; ++i) props[i] = "this.p" + (i + 1); var assignment = props.join(" = ") + " = null;", cancellationCode = "var promise;\n" + props.map(function (prop) { return " \n promise = " + prop + "; \n if (promise instanceof Promise) { \n promise.cancel(); \n } \n " }).join("\n"), passedArguments = props.join(", "), name = "Holder$" + total, code = "return function(tryCatch, errorObj, Promise, async) { \n 'use strict'; \n function [TheName](fn) { \n [TheProperties] \n this.fn = fn; \n this.asyncNeeded = true; \n this.now = 0; \n } \n \n [TheName].prototype._callFunction = function(promise) { \n promise._pushContext(); \n var ret = tryCatch(this.fn)([ThePassedArguments]); \n promise._popContext(); \n if (ret === errorObj) { \n promise._rejectCallback(ret.e, false); \n } else { \n promise._resolveCallback(ret); \n } \n }; \n \n [TheName].prototype.checkFulfillment = function(promise) { \n var now = ++this.now; \n if (now === [TheTotal]) { \n if (this.asyncNeeded) { \n async.invoke(this._callFunction, this, promise); \n } else { \n this._callFunction(promise); \n } \n \n } \n }; \n \n [TheName].prototype._resultCancelled = function() { \n [CancellationCode] \n }; \n \n return [TheName]; \n }(tryCatch, errorObj, Promise, async); \n "; return code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode), new Function("tryCatch", "errorObj", "Promise", "async", code)(tryCatch, errorObj, Promise, async) }, holderClasses = [], thenCallbacks = [], promiseSetters = [], i = 0; 8 > i; ++i) holderClasses.push(generateHolderClass(i + 1)), thenCallbacks.push(thenCallback(i + 1)), promiseSetters.push(promiseSetter(i + 1)); reject = function (reason) { this._reject(reason) } } Promise.join = function () { var fn, last = arguments.length - 1; if (last > 0 && "function" == typeof arguments[last] && (fn = arguments[last], 8 >= last && canEvaluate)) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); for (var HolderClass = holderClasses[last - 1], holder = new HolderClass(fn), callbacks = thenCallbacks, i = 0; last > i; ++i) { var maybePromise = tryConvertToPromise(arguments[i], ret); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (maybePromise._then(callbacks[i], reject, void 0, ret, holder), promiseSetters[i](maybePromise, holder), holder.asyncNeeded = !1) : 0 !== (33554432 & bitField) ? callbacks[i].call(ret, maybePromise._value(), holder) : 0 !== (16777216 & bitField) ? ret._reject(maybePromise._reason()) : ret._cancel() } else callbacks[i].call(ret, maybePromise, holder) } if (!ret._isFateSealed()) { if (holder.asyncNeeded) { var domain = getDomain(); null !== domain && (holder.fn = util.domainBind(domain, holder.fn)) } ret._setAsyncGuaranteed(), ret._setOnCancel(holder) } return ret } for (var $_len = arguments.length, args = new Array($_len), $_i = 0; $_len > $_i; ++$_i) args[$_i] = arguments[$_i]; fn && args.pop(); var ret = new PromiseArray(args).promise(); return void 0 !== fn ? ret.spread(fn) : ret } } }, {"./util": 75}], 57: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function MappingPromiseArray(promises, fn, limit, _filter) { this.constructor$(promises), this._promise._captureStackTrace(); var domain = getDomain(); this._callback = null === domain ? fn : util.domainBind(domain, fn), this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null, this._limit = limit, this._inFlight = 0, this._queue = [], async.invoke(this._asyncInit, this, void 0) } function map(promises, fn, options, _filter) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var limit = 0; if (void 0 !== options) { if ("object" != typeof options || null === options) return Promise.reject(new TypeError("options argument must be an object but it is " + util.classString(options))); if ("number" != typeof options.concurrency) return Promise.reject(new TypeError("'concurrency' must be a number but it is " + util.classString(options.concurrency))); limit = options.concurrency } return limit = "number" == typeof limit && isFinite(limit) && limit >= 1 ? limit : 0, new MappingPromiseArray(promises, fn, limit, _filter).promise() } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; util.inherits(MappingPromiseArray, PromiseArray), MappingPromiseArray.prototype._asyncInit = function () { this._init$(void 0, -2) }, MappingPromiseArray.prototype._init = function () { }, MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { var values = this._values, length = this.length(), preservedValues = this._preservedValues, limit = this._limit; if (0 > index) { if (index = -1 * index - 1, values[index] = value, limit >= 1 && (this._inFlight--, this._drainQueue(), this._isResolved())) return !0 } else { if (limit >= 1 && this._inFlight >= limit) return values[index] = value, this._queue.push(index), !1; null !== preservedValues && (preservedValues[index] = value); var promise = this._promise, callback = this._callback, receiver = promise._boundValue(); promise._pushContext(); var ret = tryCatch(callback).call(receiver, value, index, length), promiseCreated = promise._popContext(); if (debug.checkForgottenReturns(ret, promiseCreated, null !== preservedValues ? "Promise.filter" : "Promise.map", promise), ret === errorObj) return this._reject(ret.e), !0; var maybePromise = tryConvertToPromise(ret, this._promise); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; if (0 === (50397184 & bitField)) return limit >= 1 && this._inFlight++, values[index] = maybePromise, maybePromise._proxy(this, -1 * (index + 1)), !1; if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? (this._reject(maybePromise._reason()), !0) : (this._cancel(), !0); ret = maybePromise._value() } values[index] = ret } var totalResolved = ++this._totalResolved; return totalResolved >= length ? (null !== preservedValues ? this._filter(values, preservedValues) : this._resolve(values), !0) : !1 }, MappingPromiseArray.prototype._drainQueue = function () { for (var queue = this._queue, limit = this._limit, values = this._values; queue.length > 0 && this._inFlight < limit;) { if (this._isResolved()) return; var index = queue.pop(); this._promiseFulfilled(values[index], index) } }, MappingPromiseArray.prototype._filter = function (booleans, values) { for (var len = values.length, ret = new Array(len), j = 0, i = 0; len > i; ++i) booleans[i] && (ret[j++] = values[i]); ret.length = j, this._resolve(ret) }, MappingPromiseArray.prototype.preservedValues = function () { return this._preservedValues }, Promise.prototype.map = function (fn, options) { return map(this, fn, options, null) }, Promise.map = function (promises, fn, options, _filter) { return map(promises, fn, options, _filter) } } }, {"./util": 75}], 58: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch; Promise.method = function (fn) { if ("function" != typeof fn) throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); return function () { var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value = tryCatch(fn).apply(this, arguments), promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret), ret._resolveFromSyncValue(value), ret } }, Promise.attempt = Promise["try"] = function (fn) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value; if (arguments.length > 1) { debug.deprecated("calling Promise.try with more than 1 argument"); var arg = arguments[1], ctx = arguments[2]; value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg) } else value = tryCatch(fn)(); var promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret), ret._resolveFromSyncValue(value), ret }, Promise.prototype._resolveFromSyncValue = function (value) { value === util.errorObj ? this._rejectCallback(value.e, !1) : this._resolveCallback(value, !0) } } }, {"./util": 75}], 59: [function (require, module, exports) { "use strict"; function isUntypedError(obj) { return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype } function wrapAsOperationalError(obj) { var ret; if (isUntypedError(obj)) { ret = new OperationalError(obj), ret.name = obj.name, ret.message = obj.message, ret.stack = obj.stack; for (var keys = es5.keys(obj), i = 0; i < keys.length; ++i) { var key = keys[i]; rErrorKey.test(key) || (ret[key] = obj[key]) } return ret } return util.markAsOriginatingFromRejection(obj), obj } function nodebackForPromise(promise, multiArgs) { return function (err, value) { if (null !== promise) { if (err) { var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); promise._attachExtraTrace(wrapped), promise._reject(wrapped) } else if (multiArgs) { for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i) args[$_i - 1] = arguments[$_i]; promise._fulfill(args) } else promise._fulfill(value); promise = null } } } var util = require("./util"), maybeWrapAsError = util.maybeWrapAsError, errors = require("./errors"), OperationalError = errors.OperationalError, es5 = require("./es5"), rErrorKey = /^(?:name|message|stack|cause)$/; module.exports = nodebackForPromise }, {"./errors": 51, "./es5": 52, "./util": 75}], 60: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function spreadAdapter(val, nodeback) { var promise = this; if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); var ret = tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); ret === errorObj && async.throwLater(ret.e) } function successAdapter(val, nodeback) { var promise = this, receiver = promise._boundValue(), ret = void 0 === val ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); ret === errorObj && async.throwLater(ret.e) } function errorAdapter(reason, nodeback) { var promise = this; if (!reason) { var newReason = new Error(reason + ""); newReason.cause = reason, reason = newReason } var ret = tryCatch(nodeback).call(promise._boundValue(), reason); ret === errorObj && async.throwLater(ret.e) } var util = require("./util"), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, options) { if ("function" == typeof nodeback) { var adapter = successAdapter; void 0 !== options && Object(options).spread && (adapter = spreadAdapter), this._then(adapter, errorAdapter, void 0, this, nodeback) } return this } } }, {"./util": 75}], 61: [function (require, module, exports) { (function (process) { "use strict"; module.exports = function () { function Proxyable() { } function check(self, executor) { if ("function" != typeof executor) throw new TypeError("expecting a function but got " + util.classString(executor)); if (self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n") } function Promise(executor) { this._bitField = 0, this._fulfillmentHandler0 = void 0, this._rejectionHandler0 = void 0, this._promise0 = void 0, this._receiver0 = void 0, executor !== INTERNAL && (check(this, executor), this._resolveFromExecutor(executor)), this._promiseCreated(), this._fireEvent("promiseCreated", this) } function deferResolve(v) { this.promise._resolveCallback(v) } function deferReject(v) { this.promise._rejectCallback(v, !1) } function fillTypes(value) { var p = new Promise(INTERNAL); p._fulfillmentHandler0 = value, p._rejectionHandler0 = value, p._promise0 = value, p._receiver0 = value } var getDomain, makeSelfResolutionError = function () { return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n") }, reflectHandler = function () { return new Promise.PromiseInspection(this._target()) }, apiRejection = function (msg) { return Promise.reject(new TypeError(msg)) }, UNDEFINED_BINDING = {}, util = require("./util"); getDomain = util.isNode ? function () { var ret = process.domain; return void 0 === ret && (ret = null), ret } : function () { return null }, util.notEnumerableProp(Promise, "_getDomain", getDomain); var es5 = require("./es5"), Async = require("./async"), async = new Async; es5.defineProperty(Promise, "_async", {value: async}); var errors = require("./errors"), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; var INTERNAL = function () { }, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = require("./thenables")(Promise, INTERNAL), PromiseArray = require("./promise_array")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = require("./context")(Promise), createContext = Context.create, debug = require("./debuggability")(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, require("./finally")(Promise, tryConvertToPromise)), catchFilter = require("./catch_filter")(NEXT_FILTER), nodebackForPromise = require("./nodeback"), errorObj = util.errorObj, tryCatch = util.tryCatch; return Promise.prototype.toString = function () { return "[object Promise]" }, Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { var len = arguments.length; if (len > 1) { var i, catchInstances = new Array(len - 1), j = 0; for (i = 0; len - 1 > i; ++i) { var item = arguments[i]; if (!util.isObject(item)) return apiRejection("expecting an object but got A catch statement predicate " + util.classString(item)); catchInstances[j++] = item } return catchInstances.length = j, fn = arguments[i], this.then(void 0, catchFilter(catchInstances, fn, this)) } return this.then(void 0, fn) }, Promise.prototype.reflect = function () { return this._then(reflectHandler, reflectHandler, void 0, this, void 0) }, Promise.prototype.then = function (didFulfill, didReject) { if (debug.warnings() && arguments.length > 0 && "function" != typeof didFulfill && "function" != typeof didReject) { var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); arguments.length > 1 && (msg += ", " + util.classString(didReject)), this._warn(msg) } return this._then(didFulfill, didReject, void 0, void 0, void 0) }, Promise.prototype.done = function (didFulfill, didReject) { var promise = this._then(didFulfill, didReject, void 0, void 0, void 0); promise._setIsFinal() }, Promise.prototype.spread = function (fn) { return "function" != typeof fn ? apiRejection("expecting a function but got " + util.classString(fn)) : this.all()._then(fn, void 0, void 0, APPLY, void 0) }, Promise.prototype.toJSON = function () { var ret = {isFulfilled: !1, isRejected: !1, fulfillmentValue: void 0, rejectionReason: void 0}; return this.isFulfilled() ? (ret.fulfillmentValue = this.value(), ret.isFulfilled = !0) : this.isRejected() && (ret.rejectionReason = this.reason(), ret.isRejected = !0), ret }, Promise.prototype.all = function () { return arguments.length > 0 && this._warn(".all() was passed arguments but it does not take any"), new PromiseArray(this).promise() }, Promise.prototype.error = function (fn) { return this.caught(util.originatesFromRejection, fn) }, Promise.getNewLibraryCopy = module.exports, Promise.is = function (val) { return val instanceof Promise }, Promise.fromNode = Promise.fromCallback = function (fn) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : !1, result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); return result === errorObj && ret._rejectCallback(result.e, !0), ret._isFateSealed() || ret._setAsyncGuaranteed(), ret }, Promise.all = function (promises) { return new PromiseArray(promises).promise() }, Promise.cast = function (obj) { var ret = tryConvertToPromise(obj); return ret instanceof Promise || (ret = new Promise(INTERNAL), ret._captureStackTrace(), ret._setFulfilled(), ret._rejectionHandler0 = obj), ret }, Promise.resolve = Promise.fulfilled = Promise.cast, Promise.reject = Promise.rejected = function (reason) { var ret = new Promise(INTERNAL); return ret._captureStackTrace(), ret._rejectCallback(reason, !0), ret }, Promise.setScheduler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); return async.setScheduler(fn) }, Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) { var haveInternalData = void 0 !== internalData, promise = haveInternalData ? internalData : new Promise(INTERNAL), target = this._target(), bitField = target._bitField; haveInternalData || (promise._propagateFrom(this, 3), promise._captureStackTrace(), void 0 === receiver && 0 !== (2097152 & this._bitField) && (receiver = 0 !== (50397184 & bitField) ? this._boundValue() : target === this ? void 0 : this._boundTo), this._fireEvent("promiseChained", this, promise)); var domain = getDomain(); if (0 !== (50397184 & bitField)) { var handler, value, settler = target._settlePromiseCtx; 0 !== (33554432 & bitField) ? (value = target._rejectionHandler0, handler = didFulfill) : 0 !== (16777216 & bitField) ? (value = target._fulfillmentHandler0, handler = didReject, target._unsetRejectionIsUnhandled()) : (settler = target._settlePromiseLateCancellationObserver, value = new CancellationError("late cancellation observer"), target._attachExtraTrace(value), handler = didReject), async.invoke(settler, target, { handler: null === domain ? handler : "function" == typeof handler && util.domainBind(domain, handler), promise: promise, receiver: receiver, value: value }) } else target._addCallbacks(didFulfill, didReject, promise, receiver, domain); return promise }, Promise.prototype._length = function () { return 65535 & this._bitField }, Promise.prototype._isFateSealed = function () { return 0 !== (117506048 & this._bitField) }, Promise.prototype._isFollowing = function () { return 67108864 === (67108864 & this._bitField) }, Promise.prototype._setLength = function (len) { this._bitField = -65536 & this._bitField | 65535 & len }, Promise.prototype._setFulfilled = function () { this._bitField = 33554432 | this._bitField, this._fireEvent("promiseFulfilled", this) }, Promise.prototype._setRejected = function () { this._bitField = 16777216 | this._bitField, this._fireEvent("promiseRejected", this) }, Promise.prototype._setFollowing = function () { this._bitField = 67108864 | this._bitField, this._fireEvent("promiseResolved", this) }, Promise.prototype._setIsFinal = function () { this._bitField = 4194304 | this._bitField }, Promise.prototype._isFinal = function () { return (4194304 & this._bitField) > 0 }, Promise.prototype._unsetCancelled = function () { this._bitField = -65537 & this._bitField }, Promise.prototype._setCancelled = function () { this._bitField = 65536 | this._bitField, this._fireEvent("promiseCancelled", this) }, Promise.prototype._setWillBeCancelled = function () { this._bitField = 8388608 | this._bitField }, Promise.prototype._setAsyncGuaranteed = function () { async.hasCustomScheduler() || (this._bitField = 134217728 | this._bitField) }, Promise.prototype._receiverAt = function (index) { var ret = 0 === index ? this._receiver0 : this[4 * index - 4 + 3]; return ret === UNDEFINED_BINDING ? void 0 : void 0 === ret && this._isBound() ? this._boundValue() : ret }, Promise.prototype._promiseAt = function (index) { return this[4 * index - 4 + 2] }, Promise.prototype._fulfillmentHandlerAt = function (index) { return this[4 * index - 4 + 0] }, Promise.prototype._rejectionHandlerAt = function (index) { return this[4 * index - 4 + 1] }, Promise.prototype._boundValue = function () { }, Promise.prototype._migrateCallback0 = function (follower) { var fulfill = (follower._bitField, follower._fulfillmentHandler0), reject = follower._rejectionHandler0, promise = follower._promise0, receiver = follower._receiverAt(0); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._migrateCallbackAt = function (follower, index) { var fulfill = follower._fulfillmentHandlerAt(index), reject = follower._rejectionHandlerAt(index), promise = follower._promiseAt(index), receiver = follower._receiverAt(index); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, domain) { var index = this._length(); if (index >= 65531 && (index = 0, this._setLength(0)), 0 === index) this._promise0 = promise, this._receiver0 = receiver, "function" == typeof fulfill && (this._fulfillmentHandler0 = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this._rejectionHandler0 = null === domain ? reject : util.domainBind(domain, reject)); else { var base = 4 * index - 4; this[base + 2] = promise, this[base + 3] = receiver, "function" == typeof fulfill && (this[base + 0] = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this[base + 1] = null === domain ? reject : util.domainBind(domain, reject)) } return this._setLength(index + 1), index }, Promise.prototype._proxy = function (proxyable, arg) { this._addCallbacks(void 0, void 0, arg, proxyable, null) }, Promise.prototype._resolveCallback = function (value, shouldBind) { if (0 === (117506048 & this._bitField)) { if (value === this) return this._rejectCallback(makeSelfResolutionError(), !1); var maybePromise = tryConvertToPromise(value, this); if (!(maybePromise instanceof Promise)) return this._fulfill(value); shouldBind && this._propagateFrom(maybePromise, 2); var promise = maybePromise._target(); if (promise === this) return void this._reject(makeSelfResolutionError()); var bitField = promise._bitField; if (0 === (50397184 & bitField)) { var len = this._length(); len > 0 && promise._migrateCallback0(this); for (var i = 1; len > i; ++i) promise._migrateCallbackAt(this, i); this._setFollowing(), this._setLength(0), this._setFollowee(promise) } else if (0 !== (33554432 & bitField)) this._fulfill(promise._value()); else if (0 !== (16777216 & bitField)) this._reject(promise._reason()); else { var reason = new CancellationError("late cancellation observer"); promise._attachExtraTrace(reason), this._reject(reason) } } }, Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) { var trace = util.ensureErrorObject(reason), hasStack = trace === reason; if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { var message = "a promise was rejected with a non-error: " + util.classString(reason); this._warn(message, !0) } this._attachExtraTrace(trace, synchronous ? hasStack : !1), this._reject(reason) }, Promise.prototype._resolveFromExecutor = function (executor) { var promise = this; this._captureStackTrace(), this._pushContext(); var synchronous = !0, r = this._execute(executor, function (value) { promise._resolveCallback(value) }, function (reason) { promise._rejectCallback(reason, synchronous) }); synchronous = !1, this._popContext(), void 0 !== r && promise._rejectCallback(r, !0) }, Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) { var bitField = promise._bitField; if (0 === (65536 & bitField)) { promise._pushContext(); var x; receiver === APPLY ? value && "number" == typeof value.length ? x = tryCatch(handler).apply(this._boundValue(), value) : (x = errorObj, x.e = new TypeError("cannot .spread() a non-array: " + util.classString(value))) : x = tryCatch(handler).call(receiver, value); var promiseCreated = promise._popContext(); bitField = promise._bitField, 0 === (65536 & bitField) && (x === NEXT_FILTER ? promise._reject(value) : x === errorObj ? promise._rejectCallback(x.e, !1) : (debug.checkForgottenReturns(x, promiseCreated, "", promise, this), promise._resolveCallback(x))) } }, Promise.prototype._target = function () { for (var ret = this; ret._isFollowing();) ret = ret._followee(); return ret }, Promise.prototype._followee = function () { return this._rejectionHandler0 }, Promise.prototype._setFollowee = function (promise) { this._rejectionHandler0 = promise }, Promise.prototype._settlePromise = function (promise, handler, receiver, value) { var isPromise = promise instanceof Promise, bitField = this._bitField, asyncGuaranteed = 0 !== (134217728 & bitField); 0 !== (65536 & bitField) ? (isPromise && promise._invokeInternalOnCancel(), receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler() ? (receiver.cancelPromise = promise, tryCatch(handler).call(receiver, value) === errorObj && promise._reject(errorObj.e)) : handler === reflectHandler ? promise._fulfill(reflectHandler.call(receiver)) : receiver instanceof Proxyable ? receiver._promiseCancelled(promise) : isPromise || promise instanceof PromiseArray ? promise._cancel() : receiver.cancel()) : "function" == typeof handler ? isPromise ? (asyncGuaranteed && promise._setAsyncGuaranteed(), this._settlePromiseFromHandler(handler, receiver, value, promise)) : handler.call(receiver, value, promise) : receiver instanceof Proxyable ? receiver._isResolved() || (0 !== (33554432 & bitField) ? receiver._promiseFulfilled(value, promise) : receiver._promiseRejected(value, promise)) : isPromise && (asyncGuaranteed && promise._setAsyncGuaranteed(), 0 !== (33554432 & bitField) ? promise._fulfill(value) : promise._reject(value)) }, Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) { var handler = ctx.handler, promise = ctx.promise, receiver = ctx.receiver, value = ctx.value; "function" == typeof handler ? promise instanceof Promise ? this._settlePromiseFromHandler(handler, receiver, value, promise) : handler.call(receiver, value, promise) : promise instanceof Promise && promise._reject(value) }, Promise.prototype._settlePromiseCtx = function (ctx) { this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value) }, Promise.prototype._settlePromise0 = function (handler, value, bitField) { var promise = this._promise0, receiver = this._receiverAt(0); this._promise0 = void 0, this._receiver0 = void 0, this._settlePromise(promise, handler, receiver, value) }, Promise.prototype._clearCallbackDataAtIndex = function (index) { var base = 4 * index - 4; this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = void 0 }, Promise.prototype._fulfill = function (value) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) { if (value === this) { var err = makeSelfResolutionError(); return this._attachExtraTrace(err), this._reject(err) } this._setFulfilled(), this._rejectionHandler0 = value, (65535 & bitField) > 0 && (0 !== (134217728 & bitField) ? this._settlePromises() : async.settlePromises(this)) } }, Promise.prototype._reject = function (reason) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) return this._setRejected(), this._fulfillmentHandler0 = reason, this._isFinal() ? async.fatalError(reason, util.isNode) : void((65535 & bitField) > 0 ? async.settlePromises(this) : this._ensurePossibleRejectionHandled()) }, Promise.prototype._fulfillPromises = function (len, value) { for (var i = 1; len > i; i++) { var handler = this._fulfillmentHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, value) } }, Promise.prototype._rejectPromises = function (len, reason) { for (var i = 1; len > i; i++) { var handler = this._rejectionHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, reason) } }, Promise.prototype._settlePromises = function () { var bitField = this._bitField, len = 65535 & bitField; if (len > 0) { if (0 !== (16842752 & bitField)) { var reason = this._fulfillmentHandler0; this._settlePromise0(this._rejectionHandler0, reason, bitField), this._rejectPromises(len, reason) } else { var value = this._rejectionHandler0; this._settlePromise0(this._fulfillmentHandler0, value, bitField), this._fulfillPromises(len, value) } this._setLength(0) } this._clearCancellationData() }, Promise.prototype._settledValue = function () { var bitField = this._bitField; return 0 !== (33554432 & bitField) ? this._rejectionHandler0 : 0 !== (16777216 & bitField) ? this._fulfillmentHandler0 : void 0 }, Promise.defer = Promise.pending = function () { debug.deprecated("Promise.defer", "new Promise"); var promise = new Promise(INTERNAL); return {promise: promise, resolve: deferResolve, reject: deferReject} }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug), require("./cancel")(Promise, PromiseArray, apiRejection, debug), require("./direct_resolve")(Promise), require("./synchronous_inspection")(Promise), require("./join")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), Promise.Promise = Promise, Promise.version = "3.4.7", require("./map.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./call_get.js")(Promise), require("./using.js")(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), require("./timers.js")(Promise, INTERNAL, debug), require("./generators.js")(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), require("./nodeify.js")(Promise), require("./promisify.js")(Promise, INTERNAL), require("./props.js")(Promise, PromiseArray, tryConvertToPromise, apiRejection), require("./race.js")(Promise, INTERNAL, tryConvertToPromise, apiRejection), require("./reduce.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./settle.js")(Promise, PromiseArray, debug), require("./some.js")(Promise, PromiseArray, apiRejection), require("./filter.js")(Promise, INTERNAL), require("./each.js")(Promise, INTERNAL), require("./any.js")(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({a: 1}), fillTypes({b: 2}), fillTypes({c: 3}), fillTypes(1), fillTypes(function () { }), fillTypes(void 0), fillTypes(!1), fillTypes(new Promise(INTERNAL)), debug.setBounds(Async.firstLineError, util.lastLineError), Promise } }).call(this, require("_process")) }, { "./any.js": 41, "./async": 42, "./bind": 43, "./call_get.js": 44, "./cancel": 45, "./catch_filter": 46, "./context": 47, "./debuggability": 48, "./direct_resolve": 49, "./each.js": 50, "./errors": 51, "./es5": 52, "./filter.js": 53, "./finally": 54, "./generators.js": 55, "./join": 56, "./map.js": 57, "./method": 58, "./nodeback": 59, "./nodeify.js": 60, "./promise_array": 62, "./promisify.js": 63, "./props.js": 64, "./race.js": 66, "./reduce.js": 67, "./settle.js": 69, "./some.js": 70, "./synchronous_inspection": 71, "./thenables": 72, "./timers.js": 73, "./using.js": 74, "./util": 75, _process: 102 }], 62: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { function toResolutionValue(val) { switch (val) { case-2: return []; case-3: return {} } } function PromiseArray(values) { var promise = this._promise = new Promise(INTERNAL); values instanceof Promise && promise._propagateFrom(values, 3), promise._setOnCancel(this), this._values = values, this._length = 0, this._totalResolved = 0, this._init(void 0, -2) } var util = require("./util"); util.isArray; return util.inherits(PromiseArray, Proxyable), PromiseArray.prototype.length = function () { return this._length }, PromiseArray.prototype.promise = function () { return this._promise }, PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { var values = tryConvertToPromise(this._values, this._promise); if (values instanceof Promise) { values = values._target(); var bitField = values._bitField; if (this._values = values, 0 === (50397184 & bitField)) return this._promise._setAsyncGuaranteed(), values._then(init, this._reject, void 0, this, resolveValueIfEmpty); if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? this._reject(values._reason()) : this._cancel(); values = values._value() } if (values = util.asArray(values), null === values) { var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); return void this._promise._rejectCallback(err, !1) } return 0 === values.length ? void(-5 === resolveValueIfEmpty ? this._resolveEmptyArray() : this._resolve(toResolutionValue(resolveValueIfEmpty))) : void this._iterate(values) }, PromiseArray.prototype._iterate = function (values) { var len = this.getActualLength(values.length); this._length = len, this._values = this.shouldCopyValues() ? new Array(len) : this._values; for (var result = this._promise, isResolved = !1, bitField = null, i = 0; len > i; ++i) { var maybePromise = tryConvertToPromise(values[i], result); maybePromise instanceof Promise ? (maybePromise = maybePromise._target(), bitField = maybePromise._bitField) : bitField = null, isResolved ? null !== bitField && maybePromise.suppressUnhandledRejections() : null !== bitField ? 0 === (50397184 & bitField) ? (maybePromise._proxy(this, i), this._values[i] = maybePromise) : isResolved = 0 !== (33554432 & bitField) ? this._promiseFulfilled(maybePromise._value(), i) : 0 !== (16777216 & bitField) ? this._promiseRejected(maybePromise._reason(), i) : this._promiseCancelled(i) : isResolved = this._promiseFulfilled(maybePromise, i) } isResolved || result._setAsyncGuaranteed() }, PromiseArray.prototype._isResolved = function () { return null === this._values }, PromiseArray.prototype._resolve = function (value) { this._values = null, this._promise._fulfill(value) }, PromiseArray.prototype._cancel = function () { !this._isResolved() && this._promise._isCancellable() && (this._values = null, this._promise._cancel()) }, PromiseArray.prototype._reject = function (reason) { this._values = null, this._promise._rejectCallback(reason, !1) }, PromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, PromiseArray.prototype._promiseCancelled = function () { return this._cancel(), !0 }, PromiseArray.prototype._promiseRejected = function (reason) { return this._totalResolved++, this._reject(reason), !0 }, PromiseArray.prototype._resultCancelled = function () { if (!this._isResolved()) { var values = this._values; if (this._cancel(), values instanceof Promise) values.cancel(); else for (var i = 0; i < values.length; ++i) values[i] instanceof Promise && values[i].cancel() } }, PromiseArray.prototype.shouldCopyValues = function () { return !0 }, PromiseArray.prototype.getActualLength = function (len) { return len }, PromiseArray } }, {"./util": 75}], 63: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function propsFilter(key) { return !noCopyPropsPattern.test(key) } function isPromisified(fn) { try { return fn.__isPromisified__ === !0 } catch (e) { return !1 } } function hasPromisified(obj, key, suffix) { var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); return val ? isPromisified(val) : !1 } function checkValid(ret, suffix, suffixRegexp) { for (var i = 0; i < ret.length; i += 2) { var key = ret[i]; if (suffixRegexp.test(key)) for (var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""), j = 0; j < ret.length; j += 2) if (ret[j] === keyWithoutAsyncSuffix) throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)) } } function promisifiableMethods(obj, suffix, suffixRegexp, filter) { for (var keys = util.inheritedDataKeys(obj), ret = [], i = 0; i < keys.length; ++i) { var key = keys[i], value = obj[key], passesDefaultFilter = filter === defaultFilter ? !0 : defaultFilter(key, value, obj); "function" != typeof value || isPromisified(value) || hasPromisified(obj, key, suffix) || !filter(key, value, obj, passesDefaultFilter) || ret.push(key, value) } return checkValid(ret, suffix, suffixRegexp), ret } function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { function promisified() { var _receiver = receiver; receiver === THIS && (_receiver = this); var promise = new Promise(INTERNAL); promise._captureStackTrace(); var cb = "string" == typeof method && this !== defaultThis ? this[method] : callback, fn = nodebackForPromise(promise, multiArgs); try { cb.apply(_receiver, withAppended(arguments, fn)) } catch (e) { promise._rejectCallback(maybeWrapAsError(e), !0, !0) } return promise._isFateSealed() || promise._setAsyncGuaranteed(), promise } var defaultThis = function () { return this }(), method = callback; return "string" == typeof method && (callback = fn), util.notEnumerableProp(promisified, "__isPromisified__", !0), promisified } function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { for (var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"), methods = promisifiableMethods(obj, suffix, suffixRegexp, filter), i = 0, len = methods.length; len > i; i += 2) { var key = methods[i], fn = methods[i + 1], promisifiedKey = key + suffix; if (promisifier === makeNodePromisified) obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); else { var promisified = promisifier(fn, function () { return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs) }); util.notEnumerableProp(promisified, "__isPromisified__", !0), obj[promisifiedKey] = promisified } } return util.toFastProperties(obj), obj } function promisify(callback, receiver, multiArgs) { return makeNodePromisified(callback, receiver, void 0, callback, null, multiArgs) } var makeNodePromisifiedEval, THIS = {}, util = require("./util"), nodebackForPromise = require("./nodeback"), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = require("./errors").TypeError, defaultSuffix = "Async", defaultPromisified = {__isPromisified__: !0}, noCopyProps = ["arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__"], noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"), defaultFilter = function (name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name }, escapeIdentRegex = function (str) { return str.replace(/([$])/, "\\$") }, switchCaseArgumentOrder = function (likelyArgumentCount) { for (var ret = [likelyArgumentCount], min = Math.max(0, likelyArgumentCount - 1 - 3), i = likelyArgumentCount - 1; i >= min; --i) ret.push(i); for (var i = likelyArgumentCount + 1; 3 >= i; ++i) ret.push(i); return ret }, argumentSequence = function (argumentCount) { return util.filledRange(argumentCount, "_arg", "") }, parameterDeclaration = function (parameterCount) { return util.filledRange(Math.max(parameterCount, 3), "_arg", "") }, parameterCount = function (fn) { return "number" == typeof fn.length ? Math.max(Math.min(fn.length, 1024), 0) : 0 }; makeNodePromisifiedEval = function (callback, receiver, originalName, fn, _, multiArgs) { function generateCallForArgumentCount(count) { var ret, args = argumentSequence(count).join(", "), comma = count > 0 ? ", " : ""; return ret = shouldProxyThis ? "ret = callback.call(this, {{args}}, nodeback); break;\n" : void 0 === receiver ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n", ret.replace("{{args}}", args).replace(", ", comma) } function generateArgumentSwitchCase() { for (var ret = "", i = 0; i < argumentOrder.length; ++i) ret += "case " + argumentOrder[i] + ":" + generateCallForArgumentCount(argumentOrder[i]); return ret += " \n default: \n var args = new Array(len + 1); \n var i = 0; \n for (var i = 0; i < len; ++i) { \n args[i] = arguments[i]; \n } \n args[i] = nodeback; \n [CodeForCall] \n break; \n ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n") } var newParameterCount = Math.max(0, parameterCount(fn) - 1), argumentOrder = switchCaseArgumentOrder(newParameterCount), shouldProxyThis = "string" == typeof callback || receiver === THIS, getFunctionCode = "string" == typeof callback ? "this != null ? this['" + callback + "'] : fn" : "fn", body = "'use strict'; \n var ret = function (Parameters) { \n 'use strict'; \n var len = arguments.length; \n var promise = new Promise(INTERNAL); \n promise._captureStackTrace(); \n var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n var ret; \n var callback = tryCatch([GetFunctionCode]); \n switch(len) { \n [CodeForSwitchCase] \n } \n if (ret === errorObj) { \n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n } \n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n return promise; \n }; \n notEnumerableProp(ret, '__isPromisified__', true); \n return ret; \n ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()).replace("[GetFunctionCode]", getFunctionCode); return body = body.replace("Parameters", parameterDeclaration(newParameterCount)), new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL) }; var makeNodePromisified = canEvaluate ? makeNodePromisifiedEval : makeNodePromisifiedClosure; Promise.promisify = function (fn, options) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); if (isPromisified(fn)) return fn; options = Object(options); var receiver = void 0 === options.context ? THIS : options.context, multiArgs = !!options.multiArgs, ret = promisify(fn, receiver, multiArgs); return util.copyDescriptors(fn, ret, propsFilter), ret }, Promise.promisifyAll = function (target, options) { if ("function" != typeof target && "object" != typeof target) throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); options = Object(options); var multiArgs = !!options.multiArgs, suffix = options.suffix; "string" != typeof suffix && (suffix = defaultSuffix); var filter = options.filter; "function" != typeof filter && (filter = defaultFilter); var promisifier = options.promisifier; if ("function" != typeof promisifier && (promisifier = makeNodePromisified), !util.isIdentifier(suffix)) throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); for (var keys = util.inheritedDataKeys(target), i = 0; i < keys.length; ++i) { var value = target[keys[i]]; "constructor" !== keys[i] && util.isClass(value) && (promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs), promisifyAll(value, suffix, filter, promisifier, multiArgs)) } return promisifyAll(target, suffix, filter, promisifier, multiArgs) } } }, {"./errors": 51, "./nodeback": 59, "./util": 75}], 64: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, apiRejection) { function PropertiesPromiseArray(obj) { var entries, isMap = !1; if (void 0 !== Es6Map && obj instanceof Es6Map) entries = mapToEntries(obj), isMap = !0; else { var keys = es5.keys(obj), len = keys.length; entries = new Array(2 * len); for (var i = 0; len > i; ++i) { var key = keys[i]; entries[i] = obj[key], entries[i + len] = key } } this.constructor$(entries), this._isMap = isMap, this._init$(void 0, -3) } function props(promises) { var ret, castValue = tryConvertToPromise(promises); return isObject(castValue) ? (ret = castValue instanceof Promise ? castValue._then(Promise.props, void 0, void 0, void 0, void 0) : new PropertiesPromiseArray(castValue).promise(), castValue instanceof Promise && ret._propagateFrom(castValue, 2), ret) : apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n") } var Es6Map, util = require("./util"), isObject = util.isObject, es5 = require("./es5"); "function" == typeof Map && (Es6Map = Map); var mapToEntries = function () { function extractEntry(value, key) { this[index] = value, this[index + size] = key, index++ } var index = 0, size = 0; return function (map) { size = map.size, index = 0; var ret = new Array(2 * map.size); return map.forEach(extractEntry, ret), ret } }(), entriesToMap = function (entries) { for (var ret = new Es6Map, length = entries.length / 2 | 0, i = 0; length > i; ++i) { var key = entries[length + i], value = entries[i]; ret.set(key, value) } return ret }; util.inherits(PropertiesPromiseArray, PromiseArray), PropertiesPromiseArray.prototype._init = function () { }, PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; if (totalResolved >= this._length) { var val; if (this._isMap) val = entriesToMap(this._values); else { val = {}; for (var keyOffset = this.length(), i = 0, len = this.length(); len > i; ++i) val[this._values[i + keyOffset]] = this._values[i] } return this._resolve(val), !0 } return !1 }, PropertiesPromiseArray.prototype.shouldCopyValues = function () { return !1 }, PropertiesPromiseArray.prototype.getActualLength = function (len) { return len >> 1 }, Promise.prototype.props = function () { return props(this) }, Promise.props = function (promises) { return props(promises) } } }, {"./es5": 52, "./util": 75}], 65: [function (require, module, exports) { "use strict"; function arrayMove(src, srcIndex, dst, dstIndex, len) { for (var j = 0; len > j; ++j) dst[j + dstIndex] = src[j + srcIndex], src[j + srcIndex] = void 0 } function Queue(capacity) { this._capacity = capacity, this._length = 0, this._front = 0 } Queue.prototype._willBeOverCapacity = function (size) { return this._capacity < size }, Queue.prototype._pushOne = function (arg) { var length = this.length(); this._checkCapacity(length + 1); var i = this._front + length & this._capacity - 1; this[i] = arg, this._length = length + 1 }, Queue.prototype.push = function (fn, receiver, arg) { var length = this.length() + 3; if (this._willBeOverCapacity(length)) return this._pushOne(fn), this._pushOne(receiver), void this._pushOne(arg); var j = this._front + length - 3; this._checkCapacity(length); var wrapMask = this._capacity - 1; this[j + 0 & wrapMask] = fn, this[j + 1 & wrapMask] = receiver, this[j + 2 & wrapMask] = arg, this._length = length }, Queue.prototype.shift = function () { var front = this._front, ret = this[front]; return this[front] = void 0, this._front = front + 1 & this._capacity - 1, this._length--, ret }, Queue.prototype.length = function () { return this._length }, Queue.prototype._checkCapacity = function (size) { this._capacity < size && this._resizeTo(this._capacity << 1) }, Queue.prototype._resizeTo = function (capacity) { var oldCapacity = this._capacity; this._capacity = capacity; var front = this._front, length = this._length, moveItemsCount = front + length & oldCapacity - 1; arrayMove(this, 0, this, oldCapacity, moveItemsCount) }, module.exports = Queue }, {}], 66: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection) { function race(promises, parent) { var maybePromise = tryConvertToPromise(promises); if (maybePromise instanceof Promise) return raceLater(maybePromise); if (promises = util.asArray(promises), null === promises) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); var ret = new Promise(INTERNAL); void 0 !== parent && ret._propagateFrom(parent, 3); for (var fulfill = ret._fulfill, reject = ret._reject, i = 0, len = promises.length; len > i; ++i) { var val = promises[i]; (void 0 !== val || i in promises) && Promise.cast(val)._then(fulfill, reject, void 0, ret, null) } return ret } var util = require("./util"), raceLater = function (promise) { return promise.then(function (array) { return race(array, promise) }) }; Promise.race = function (promises) { return race(promises, void 0) }, Promise.prototype.race = function () { return race(this, void 0) } } }, {"./util": 75}], 67: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function ReductionPromiseArray(promises, fn, initialValue, _each) { this.constructor$(promises); var domain = getDomain(); this._fn = null === domain ? fn : util.domainBind(domain, fn), void 0 !== initialValue && (initialValue = Promise.resolve(initialValue), initialValue._attachCancellationCallback(this)), this._initialValue = initialValue, this._currentCancellable = null, _each === INTERNAL ? this._eachValues = Array(this._length) : 0 === _each ? this._eachValues = null : this._eachValues = void 0, this._promise._captureStackTrace(), this._init$(void 0, -5) } function completed(valueOrReason, array) { this.isFulfilled() ? array._resolve(valueOrReason) : array._reject(valueOrReason) } function reduce(promises, fn, initialValue, _each) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var array = new ReductionPromiseArray(promises, fn, initialValue, _each); return array.promise() } function gotAccum(accum) { this.accum = accum, this.array._gotAccum(accum); var value = tryConvertToPromise(this.value, this.array._promise); return value instanceof Promise ? (this.array._currentCancellable = value, value._then(gotValue, void 0, void 0, this, void 0)) : gotValue.call(this, value) } function gotValue(value) { var array = this.array, promise = array._promise, fn = tryCatch(array._fn); promise._pushContext(); var ret; ret = void 0 !== array._eachValues ? fn.call(promise._boundValue(), value, this.index, this.length) : fn.call(promise._boundValue(), this.accum, value, this.index, this.length), ret instanceof Promise && (array._currentCancellable = ret); var promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, void 0 !== array._eachValues ? "Promise.each" : "Promise.reduce", promise), ret } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch; util.inherits(ReductionPromiseArray, PromiseArray), ReductionPromiseArray.prototype._gotAccum = function (accum) { void 0 !== this._eachValues && null !== this._eachValues && accum !== INTERNAL && this._eachValues.push(accum) }, ReductionPromiseArray.prototype._eachComplete = function (value) { return null !== this._eachValues && this._eachValues.push(value), this._eachValues }, ReductionPromiseArray.prototype._init = function () { }, ReductionPromiseArray.prototype._resolveEmptyArray = function () { this._resolve(void 0 !== this._eachValues ? this._eachValues : this._initialValue) }, ReductionPromiseArray.prototype.shouldCopyValues = function () { return !1 }, ReductionPromiseArray.prototype._resolve = function (value) { this._promise._resolveCallback(value), this._values = null }, ReductionPromiseArray.prototype._resultCancelled = function (sender) { return sender === this._initialValue ? this._cancel() : void(this._isResolved() || (this._resultCancelled$(), this._currentCancellable instanceof Promise && this._currentCancellable.cancel(), this._initialValue instanceof Promise && this._initialValue.cancel())) }, ReductionPromiseArray.prototype._iterate = function (values) { this._values = values; var value, i, length = values.length; if (void 0 !== this._initialValue ? (value = this._initialValue, i = 0) : (value = Promise.resolve(values[0]), i = 1), this._currentCancellable = value, !value.isRejected()) for (; length > i; ++i) { var ctx = {accum: null, value: values[i], index: i, length: length, array: this}; value = value._then(gotAccum, void 0, void 0, ctx, void 0) } void 0 !== this._eachValues && (value = value._then(this._eachComplete, void 0, void 0, this, void 0)), value._then(completed, completed, void 0, value, this) }, Promise.prototype.reduce = function (fn, initialValue) { return reduce(this, fn, initialValue, null) }, Promise.reduce = function (promises, fn, initialValue, _each) { return reduce(promises, fn, initialValue, _each) } } }, {"./util": 75}], 68: [function (require, module, exports) { (function (process, global) { "use strict"; var schedule, util = require("./util"), noAsyncScheduler = function () { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") }, NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function (fn) { GlobalSetImmediate.call(global, fn) } : function (fn) { ProcessNextTick.call(process, fn) } } else if ("function" == typeof NativePromise && "function" == typeof NativePromise.resolve) { var nativePromise = NativePromise.resolve(); schedule = function (fn) { nativePromise.then(fn) } } else schedule = "undefined" == typeof MutationObserver || "undefined" != typeof window && window.navigator && (window.navigator.standalone || window.cordova) ? "undefined" != typeof setImmediate ? function (fn) { setImmediate(fn) } : "undefined" != typeof setTimeout ? function (fn) { setTimeout(fn, 0) } : noAsyncScheduler : function () { var div = document.createElement("div"), opts = {attributes: !0}, toggleScheduled = !1, div2 = document.createElement("div"), o2 = new MutationObserver(function () { div.classList.toggle("foo"), toggleScheduled = !1 }); o2.observe(div2, opts); var scheduleToggle = function () { toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")) }; return function (fn) { var o = new MutationObserver(function () { o.disconnect(), fn() }); o.observe(div, opts), scheduleToggle() } }(); module.exports = schedule }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {"./util": 75, _process: 102}], 69: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, debug) { function SettledPromiseArray(values) { this.constructor$(values) } var PromiseInspection = Promise.PromiseInspection, util = require("./util"); util.inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { this._values[index] = inspection; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { var ret = new PromiseInspection; return ret._bitField = 33554432, ret._settledValueField = value, this._promiseResolved(index, ret) }, SettledPromiseArray.prototype._promiseRejected = function (reason, index) { var ret = new PromiseInspection; return ret._bitField = 16777216, ret._settledValueField = reason, this._promiseResolved(index, ret) }, Promise.settle = function (promises) { return debug.deprecated(".settle()", ".reflect()"), new SettledPromiseArray(promises).promise() }, Promise.prototype.settle = function () { return Promise.settle(this) } } }, {"./util": 75}], 70: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection) { function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1 } function some(promises, howMany) { if ((0 | howMany) !== howMany || 0 > howMany) return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(howMany), ret.init(), promise } var util = require("./util"), RangeError = require("./errors").RangeError, AggregateError = require("./errors").AggregateError, isArray = util.isArray, CANCELLATION = {}; util.inherits(SomePromiseArray, PromiseArray), SomePromiseArray.prototype._init = function () { if (this._initialized) { if (0 === this._howMany) return void this._resolve([]); this._init$(void 0, -5); var isArrayResolved = isArray(this._values); !this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill() && this._reject(this._getRangeError(this.length())) } }, SomePromiseArray.prototype.init = function () { this._initialized = !0, this._init() }, SomePromiseArray.prototype.setUnwrap = function () { this._unwrap = !0 }, SomePromiseArray.prototype.howMany = function () { return this._howMany }, SomePromiseArray.prototype.setHowMany = function (count) { this._howMany = count }, SomePromiseArray.prototype._promiseFulfilled = function (value) { return this._addFulfilled(value), this._fulfilled() === this.howMany() ? (this._values.length = this.howMany(), 1 === this.howMany() && this._unwrap ? this._resolve(this._values[0]) : this._resolve(this._values), !0) : !1 }, SomePromiseArray.prototype._promiseRejected = function (reason) { return this._addRejected(reason), this._checkOutcome() }, SomePromiseArray.prototype._promiseCancelled = function () { return this._values instanceof Promise || null == this._values ? this._cancel() : (this._addRejected(CANCELLATION), this._checkOutcome()) }, SomePromiseArray.prototype._checkOutcome = function () { if (this.howMany() > this._canPossiblyFulfill()) { for (var e = new AggregateError, i = this.length(); i < this._values.length; ++i) this._values[i] !== CANCELLATION && e.push(this._values[i]); return e.length > 0 ? this._reject(e) : this._cancel(), !0 } return !1 }, SomePromiseArray.prototype._fulfilled = function () { return this._totalResolved }, SomePromiseArray.prototype._rejected = function () { return this._values.length - this.length() }, SomePromiseArray.prototype._addRejected = function (reason) { this._values.push(reason) }, SomePromiseArray.prototype._addFulfilled = function (value) { this._values[this._totalResolved++] = value }, SomePromiseArray.prototype._canPossiblyFulfill = function () { return this.length() - this._rejected() }, SomePromiseArray.prototype._getRangeError = function (count) { var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; return new RangeError(message) }, SomePromiseArray.prototype._resolveEmptyArray = function () { this._reject(this._getRangeError(0)) }, Promise.some = function (promises, howMany) { return some(promises, howMany) }, Promise.prototype.some = function (howMany) { return some(this, howMany) }, Promise._SomePromiseArray = SomePromiseArray } }, {"./errors": 51, "./util": 75}], 71: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function PromiseInspection(promise) { void 0 !== promise ? (promise = promise._target(), this._bitField = promise._bitField, this._settledValueField = promise._isFateSealed() ? promise._settledValue() : void 0) : (this._bitField = 0, this._settledValueField = void 0) } PromiseInspection.prototype._settledValue = function () { return this._settledValueField }; var value = PromiseInspection.prototype.value = function () { if (!this.isFulfilled()) throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () { if (!this.isRejected()) throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, isFulfilled = PromiseInspection.prototype.isFulfilled = function () { return 0 !== (33554432 & this._bitField) }, isRejected = PromiseInspection.prototype.isRejected = function () { return 0 !== (16777216 & this._bitField) }, isPending = PromiseInspection.prototype.isPending = function () { return 0 === (50397184 & this._bitField) }, isResolved = PromiseInspection.prototype.isResolved = function () { return 0 !== (50331648 & this._bitField) }; PromiseInspection.prototype.isCancelled = function () { return 0 !== (8454144 & this._bitField) }, Promise.prototype.__isCancelled = function () { return 65536 === (65536 & this._bitField) }, Promise.prototype._isCancelled = function () { return this._target().__isCancelled() }, Promise.prototype.isCancelled = function () { return 0 !== (8454144 & this._target()._bitField) }, Promise.prototype.isPending = function () { return isPending.call(this._target()) }, Promise.prototype.isRejected = function () { return isRejected.call(this._target()) }, Promise.prototype.isFulfilled = function () { return isFulfilled.call(this._target()) }, Promise.prototype.isResolved = function () { return isResolved.call(this._target()) }, Promise.prototype.value = function () { return value.call(this._target()) }, Promise.prototype.reason = function () { var target = this._target(); return target._unsetRejectionIsUnhandled(), reason.call(target) }, Promise.prototype._value = function () { return this._settledValue() }, Promise.prototype._reason = function () { return this._unsetRejectionIsUnhandled(), this._settledValue() }, Promise.PromiseInspection = PromiseInspection } }, {}], 72: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function tryConvertToPromise(obj, context) { if (isObject(obj)) { if (obj instanceof Promise) return obj; var then = getThen(obj); if (then === errorObj) { context && context._pushContext(); var ret = Promise.reject(then.e); return context && context._popContext(), ret } if ("function" == typeof then) { if (isAnyBluebirdPromise(obj)) { var ret = new Promise(INTERNAL); return obj._then(ret._fulfill, ret._reject, void 0, ret, null), ret } return doThenable(obj, then, context) } } return obj } function doGetThen(obj) { return obj.then } function getThen(obj) { try { return doGetThen(obj) } catch (e) { return errorObj.e = e, errorObj } } function isAnyBluebirdPromise(obj) { try { return hasProp.call(obj, "_promise0") } catch (e) { return !1 } } function doThenable(x, then, context) { function resolve(value) { promise && (promise._resolveCallback(value), promise = null) } function reject(reason) { promise && (promise._rejectCallback(reason, synchronous, !0), promise = null) } var promise = new Promise(INTERNAL), ret = promise; context && context._pushContext(), promise._captureStackTrace(), context && context._popContext(); var synchronous = !0, result = util.tryCatch(then).call(x, resolve, reject); return synchronous = !1, promise && result === errorObj && (promise._rejectCallback(result.e, !0, !0), promise = null), ret } var util = require("./util"), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; return tryConvertToPromise } }, {"./util": 75}], 73: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, debug) { function HandleWrapper(handle) { this.handle = handle } function successClear(value) { return clearTimeout(this.handle), value } function failureClear(reason) { throw clearTimeout(this.handle), reason } var util = require("./util"), TimeoutError = Promise.TimeoutError; HandleWrapper.prototype._resultCancelled = function () { clearTimeout(this.handle) }; var afterValue = function (value) { return delay(+this).thenReturn(value) }, delay = Promise.delay = function (ms, value) { var ret, handle; return void 0 !== value ? (ret = Promise.resolve(value)._then(afterValue, null, null, ms, void 0), debug.cancellation() && value instanceof Promise && ret._setOnCancel(value)) : (ret = new Promise(INTERNAL), handle = setTimeout(function () { ret._fulfill() }, +ms), debug.cancellation() && ret._setOnCancel(new HandleWrapper(handle)), ret._captureStackTrace()), ret._setAsyncGuaranteed(), ret }; Promise.prototype.delay = function (ms) { return delay(ms, this) }; var afterTimeout = function (promise, message, parent) { var err; err = "string" != typeof message ? message instanceof Error ? message : new TimeoutError("operation timed out") : new TimeoutError(message), util.markAsOriginatingFromRejection(err), promise._attachExtraTrace(err), promise._reject(err), null != parent && parent.cancel() }; Promise.prototype.timeout = function (ms, message) { ms = +ms; var ret, parent, handleWrapper = new HandleWrapper(setTimeout(function () { ret.isPending() && afterTimeout(ret, message, parent) }, ms)); return debug.cancellation() ? (parent = this.then(), ret = parent._then(successClear, failureClear, void 0, handleWrapper, void 0), ret._setOnCancel(handleWrapper)) : ret = this._then(successClear, failureClear, void 0, handleWrapper, void 0), ret } } }, {"./util": 75}], 74: [function (require, module, exports) { "use strict"; module.exports = function (Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { function thrower(e) { setTimeout(function () { throw e }, 0) } function castPreservingDisposable(thenable) { var maybePromise = tryConvertToPromise(thenable); return maybePromise !== thenable && "function" == typeof thenable._isDisposable && "function" == typeof thenable._getDisposer && thenable._isDisposable() && maybePromise._setDisposable(thenable._getDisposer()), maybePromise } function dispose(resources, inspection) { function iterator() { if (i >= len) return ret._fulfill(); var maybePromise = castPreservingDisposable(resources[i++]); if (maybePromise instanceof Promise && maybePromise._isDisposable()) { try { maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise) } catch (e) { return thrower(e) } if (maybePromise instanceof Promise) return maybePromise._then(iterator, thrower, null, null, null) } iterator() } var i = 0, len = resources.length, ret = new Promise(INTERNAL); return iterator(), ret } function Disposer(data, promise, context) { this._data = data, this._promise = promise, this._context = context } function FunctionDisposer(fn, promise, context) { this.constructor$(fn, promise, context) } function maybeUnwrapDisposer(value) { return Disposer.isDisposer(value) ? (this.resources[this.index]._setDisposable(value), value.promise()) : value } function ResourceList(length) { this.length = length, this.promise = null, this[length - 1] = null } var util = require("./util"), TypeError = require("./errors").TypeError, inherits = require("./util").inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; Disposer.prototype.data = function () { return this._data }, Disposer.prototype.promise = function () { return this._promise }, Disposer.prototype.resource = function () { return this.promise().isFulfilled() ? this.promise().value() : NULL }, Disposer.prototype.tryDispose = function (inspection) { var resource = this.resource(), context = this._context; void 0 !== context && context._pushContext(); var ret = resource !== NULL ? this.doDispose(resource, inspection) : null; return void 0 !== context && context._popContext(), this._promise._unsetDisposable(), this._data = null, ret }, Disposer.isDisposer = function (d) { return null != d && "function" == typeof d.resource && "function" == typeof d.tryDispose }, inherits(FunctionDisposer, Disposer), FunctionDisposer.prototype.doDispose = function (resource, inspection) { var fn = this.data(); return fn.call(resource, resource, inspection) }, ResourceList.prototype._resultCancelled = function () { for (var len = this.length, i = 0; len > i; ++i) { var item = this[i]; item instanceof Promise && item.cancel() } }, Promise.using = function () { var len = arguments.length; if (2 > len) return apiRejection("you must pass at least 2 arguments to Promise.using"); var fn = arguments[len - 1]; if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var input, spreadArgs = !0; 2 === len && Array.isArray(arguments[0]) ? (input = arguments[0], len = input.length, spreadArgs = !1) : (input = arguments, len--); for (var resources = new ResourceList(len), i = 0; len > i; ++i) { var resource = input[i]; if (Disposer.isDisposer(resource)) { var disposer = resource; resource = resource.promise(), resource._setDisposable(disposer) } else { var maybePromise = tryConvertToPromise(resource); maybePromise instanceof Promise && (resource = maybePromise._then(maybeUnwrapDisposer, null, null, { resources: resources, index: i }, void 0)) } resources[i] = resource } for (var reflectedResources = new Array(resources.length), i = 0; i < reflectedResources.length; ++i) reflectedResources[i] = Promise.resolve(resources[i]).reflect(); var resultPromise = Promise.all(reflectedResources).then(function (inspections) { for (var i = 0; i < inspections.length; ++i) { var inspection = inspections[i]; if (inspection.isRejected()) return errorObj.e = inspection.error(), errorObj; if (!inspection.isFulfilled()) return void resultPromise.cancel(); inspections[i] = inspection.value() } promise._pushContext(), fn = tryCatch(fn); var ret = spreadArgs ? fn.apply(void 0, inspections) : fn(inspections), promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise), ret }), promise = resultPromise.lastly(function () { var inspection = new Promise.PromiseInspection(resultPromise); return dispose(resources, inspection) }); return resources.promise = promise, promise._setOnCancel(resources), promise }, Promise.prototype._setDisposable = function (disposer) { this._bitField = 131072 | this._bitField, this._disposer = disposer }, Promise.prototype._isDisposable = function () { return (131072 & this._bitField) > 0 }, Promise.prototype._getDisposer = function () { return this._disposer }, Promise.prototype._unsetDisposable = function () { this._bitField = -131073 & this._bitField, this._disposer = void 0 }, Promise.prototype.disposer = function (fn) { if ("function" == typeof fn) return new FunctionDisposer(fn, this, createContext()); throw new TypeError } } }, {"./errors": 51, "./util": 75}], 75: [function (require, module, exports) { (function (process, global) { "use strict"; function tryCatcher() { try { var target = tryCatchTarget; return tryCatchTarget = null, target.apply(this, arguments) } catch (e) { return errorObj.e = e, errorObj } } function tryCatch(fn) { return tryCatchTarget = fn, tryCatcher } function isPrimitive(val) { return null == val || val === !0 || val === !1 || "string" == typeof val || "number" == typeof val } function isObject(value) { return "function" == typeof value || "object" == typeof value && null !== value } function maybeWrapAsError(maybeError) { return isPrimitive(maybeError) ? new Error(safeToString(maybeError)) : maybeError } function withAppended(target, appendee) { var i, len = target.length, ret = new Array(len + 1); for (i = 0; len > i; ++i) ret[i] = target[i]; return ret[i] = appendee, ret } function getDataPropertyOrDefault(obj, key, defaultValue) { if (!es5.isES5) return {}.hasOwnProperty.call(obj, key) ? obj[key] : void 0; var desc = Object.getOwnPropertyDescriptor(obj, key); return null != desc ? null == desc.get && null == desc.set ? desc.value : defaultValue : void 0 } function notEnumerableProp(obj, name, value) { if (isPrimitive(obj)) return obj; var descriptor = {value: value, configurable: !0, enumerable: !1, writable: !0}; return es5.defineProperty(obj, name, descriptor), obj } function thrower(r) { throw r } function isClass(fn) { try { if ("function" == typeof fn) { var keys = es5.names(fn.prototype), hasMethods = es5.isES5 && keys.length > 1, hasMethodsOtherThanConstructor = keys.length > 0 && !(1 === keys.length && "constructor" === keys[0]), hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) return !0 } return !1 } catch (e) { return !1 } } function toFastProperties(obj) { function FakeConstructor() { } FakeConstructor.prototype = obj; for (var l = 8; l--;) new FakeConstructor; return obj } function isIdentifier(str) { return rident.test(str) } function filledRange(count, prefix, suffix) { for (var ret = new Array(count), i = 0; count > i; ++i) ret[i] = prefix + i + suffix; return ret } function safeToString(obj) { try { return obj + "" } catch (e) { return "[no string representation]" } } function isError(obj) { return null !== obj && "object" == typeof obj && "string" == typeof obj.message && "string" == typeof obj.name } function markAsOriginatingFromRejection(e) { try { notEnumerableProp(e, "isOperational", !0) } catch (ignore) { } } function originatesFromRejection(e) { return null == e ? !1 : e instanceof Error.__BluebirdErrorTypes__.OperationalError || e.isOperational === !0 } function canAttachTrace(obj) { return isError(obj) && es5.propertyIsWritable(obj, "stack") } function classString(obj) { return {}.toString.call(obj) } function copyDescriptors(from, to, filter) { for (var keys = es5.names(from), i = 0; i < keys.length; ++i) { var key = keys[i]; if (filter(key)) try { es5.defineProperty(to, key, es5.getDescriptor(from, key)) } catch (ignore) { } } } function env(key) { return hasEnvVariables ? process.env[key] : void 0 } function getNativePromise() { if ("function" == typeof Promise) try { var promise = new Promise(function () { }); if ("[object Promise]" === {}.toString.call(promise)) return Promise } catch (e) { } } function domainBind(self, cb) { return self.bind(cb) } var es5 = require("./es5"), canEvaluate = "undefined" == typeof navigator, errorObj = {e: {}}, tryCatchTarget, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null, inherits = function (Child, Parent) { function T() { this.constructor = Child, this.constructor$ = Parent; for (var propertyName in Parent.prototype) hasProp.call(Parent.prototype, propertyName) && "$" !== propertyName.charAt(propertyName.length - 1) && (this[propertyName + "$"] = Parent.prototype[propertyName]) } var hasProp = {}.hasOwnProperty; return T.prototype = Parent.prototype, Child.prototype = new T, Child.prototype }, inheritedDataKeys = function () { var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype], isExcludedProto = function (val) { for (var i = 0; i < excludedPrototypes.length; ++i) if (excludedPrototypes[i] === val) return !0; return !1 }; if (es5.isES5) { var getKeys = Object.getOwnPropertyNames; return function (obj) { for (var ret = [], visitedKeys = Object.create(null); null != obj && !isExcludedProto(obj);) { var keys; try { keys = getKeys(obj) } catch (e) { return ret } for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!visitedKeys[key]) { visitedKeys[key] = !0; var desc = Object.getOwnPropertyDescriptor(obj, key); null != desc && null == desc.get && null == desc.set && ret.push(key) } } obj = es5.getPrototypeOf(obj) } return ret } } var hasProp = {}.hasOwnProperty; return function (obj) { if (isExcludedProto(obj)) return []; var ret = []; enumeration:for (var key in obj) if (hasProp.call(obj, key)) ret.push(key); else { for (var i = 0; i < excludedPrototypes.length; ++i) if (hasProp.call(excludedPrototypes[i], key)) continue enumeration; ret.push(key) } return ret } }(), thisAssignmentPattern = /this\s*\.\s*\S+\s*=/, rident = /^[a-z$_][a-z$_0-9]*$/i, ensureErrorObject = function () { return "stack" in new Error ? function (value) { return canAttachTrace(value) ? value : new Error(safeToString(value)) } : function (value) { if (canAttachTrace(value)) return value; try { throw new Error(safeToString(value)) } catch (err) { return err } } }(), asArray = function (v) { return es5.isArray(v) ? v : null }; if ("undefined" != typeof Symbol && Symbol.iterator) { var ArrayFrom = "function" == typeof Array.from ? function (v) { return Array.from(v) } : function (v) { for (var itResult, ret = [], it = v[Symbol.iterator](); !(itResult = it.next()).done;) ret.push(itResult.value); return ret }; asArray = function (v) { return es5.isArray(v) ? v : null != v && "function" == typeof v[Symbol.iterator] ? ArrayFrom(v) : null } } var isNode = "undefined" != typeof process && "[object process]" === classString(process).toLowerCase(), hasEnvVariables = "undefined" != typeof process && "undefined" != typeof process.env, ret = { isClass: isClass, isIdentifier: isIdentifier, inheritedDataKeys: inheritedDataKeys, getDataPropertyOrDefault: getDataPropertyOrDefault, thrower: thrower, isArray: es5.isArray, asArray: asArray, notEnumerableProp: notEnumerableProp, isPrimitive: isPrimitive, isObject: isObject, isError: isError, canEvaluate: canEvaluate, errorObj: errorObj, tryCatch: tryCatch, inherits: inherits, withAppended: withAppended, maybeWrapAsError: maybeWrapAsError, toFastProperties: toFastProperties, filledRange: filledRange, toString: safeToString, canAttachTrace: canAttachTrace, ensureErrorObject: ensureErrorObject, originatesFromRejection: originatesFromRejection, markAsOriginatingFromRejection: markAsOriginatingFromRejection, classString: classString, copyDescriptors: copyDescriptors, hasDevTools: "undefined" != typeof chrome && chrome && "function" == typeof chrome.loadTimes, isNode: isNode, hasEnvVariables: hasEnvVariables, env: env, global: globalObject, getNativePromise: getNativePromise, domainBind: domainBind }; ret.isRecentNode = ret.isNode && function () { var version = process.versions.node.split(".").map(Number); return 0 === version[0] && version[1] > 10 || version[0] > 0 }(), ret.isNode && ret.toFastProperties(process); try { throw new Error } catch (e) { ret.lastLineError = e } module.exports = ret }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {"./es5": 52, _process: 102}], 76: [function (require, module, exports) { }, {}], 77: [function (require, module, exports) { (function (global) { "use strict"; var buffer = require("buffer"), Buffer = buffer.Buffer, SlowBuffer = buffer.SlowBuffer, MAX_LEN = buffer.kMaxLength || 2147483647; exports.alloc = function (size, fill, encoding) { if ("function" == typeof Buffer.alloc) return Buffer.alloc(size, fill, encoding); if ("number" == typeof encoding) throw new TypeError("encoding must not be number"); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size > MAX_LEN) throw new RangeError("size is too large"); var enc = encoding, _fill = fill; void 0 === _fill && (enc = void 0, _fill = 0); var buf = new Buffer(size); if ("string" == typeof _fill) for (var fillBuf = new Buffer(_fill, enc), flen = fillBuf.length, i = -1; ++i < size;) buf[i] = fillBuf[i % flen]; else buf.fill(_fill); return buf }, exports.allocUnsafe = function (size) { if ("function" == typeof Buffer.allocUnsafe) return Buffer.allocUnsafe(size); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size > MAX_LEN) throw new RangeError("size is too large"); return new Buffer(size) }, exports.from = function (value, encodingOrOffset, length) { if ("function" == typeof Buffer.from && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) return Buffer.from(value, encodingOrOffset, length); if ("number" == typeof value) throw new TypeError('"value" argument must not be a number'); if ("string" == typeof value) return new Buffer(value, encodingOrOffset); if ("undefined" != typeof ArrayBuffer && value instanceof ArrayBuffer) { var offset = encodingOrOffset; if (1 === arguments.length) return new Buffer(value); "undefined" == typeof offset && (offset = 0); var len = length; if ("undefined" == typeof len && (len = value.byteLength - offset), offset >= value.byteLength) throw new RangeError("'offset' is out of bounds"); if (len > value.byteLength - offset) throw new RangeError("'length' is out of bounds"); return new Buffer(value.slice(offset, offset + len)) } if (Buffer.isBuffer(value)) { var out = new Buffer(value.length); return value.copy(out, 0, 0, value.length), out } if (value) { if (Array.isArray(value) || "undefined" != typeof ArrayBuffer && value.buffer instanceof ArrayBuffer || "length" in value) return new Buffer(value); if ("Buffer" === value.type && Array.isArray(value.data)) return new Buffer(value.data) } throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") }, exports.allocUnsafeSlow = function (size) { if ("function" == typeof Buffer.allocUnsafeSlow) return Buffer.allocUnsafeSlow(size); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size >= MAX_LEN) throw new RangeError("size is too large"); return new SlowBuffer(size) } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {buffer: 78}], 78: [function (require, module, exports) { (function (global) { "use strict"; function typedArraySupport() { try { var arr = new Uint8Array(1); return arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === arr.foo() && "function" == typeof arr.subarray && 0 === arr.subarray(1, 1).byteLength } catch (e) { return !1 } } function kMaxLength() { return Buffer.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function createBuffer(that, length) { if (kMaxLength() < length) throw new RangeError("Invalid typed array length"); return Buffer.TYPED_ARRAY_SUPPORT ? (that = new Uint8Array(length), that.__proto__ = Buffer.prototype) : (null === that && (that = new Buffer(length)), that.length = length), that } function Buffer(arg, encodingOrOffset, length) { if (!(Buffer.TYPED_ARRAY_SUPPORT || this instanceof Buffer)) return new Buffer(arg, encodingOrOffset, length); if ("number" == typeof arg) { if ("string" == typeof encodingOrOffset) throw new Error("If encoding is specified then the first argument must be a string"); return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } function from(that, value, encodingOrOffset, length) { if ("number" == typeof value) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && value instanceof ArrayBuffer ? fromArrayBuffer(that, value, encodingOrOffset, length) : "string" == typeof value ? fromString(that, value, encodingOrOffset) : fromObject(that, value) } function assertSize(size) { if ("number" != typeof size) throw new TypeError('"size" argument must be a number'); if (0 > size) throw new RangeError('"size" argument must not be negative') } function alloc(that, size, fill, encoding) { return assertSize(size), 0 >= size ? createBuffer(that, size) : void 0 !== fill ? "string" == typeof encoding ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) : createBuffer(that, size) } function allocUnsafe(that, size) { if (assertSize(size), that = createBuffer(that, 0 > size ? 0 : 0 | checked(size)), !Buffer.TYPED_ARRAY_SUPPORT) for (var i = 0; size > i; ++i) that[i] = 0; return that } function fromString(that, string, encoding) { if (("string" != typeof encoding || "" === encoding) && (encoding = "utf8"), !Buffer.isEncoding(encoding)) throw new TypeError('"encoding" must be a valid string encoding'); var length = 0 | byteLength(string, encoding); that = createBuffer(that, length); var actual = that.write(string, encoding); return actual !== length && (that = that.slice(0, actual)), that } function fromArrayLike(that, array) { var length = array.length < 0 ? 0 : 0 | checked(array.length); that = createBuffer(that, length); for (var i = 0; length > i; i += 1) that[i] = 255 & array[i]; return that } function fromArrayBuffer(that, array, byteOffset, length) { if (array.byteLength, 0 > byteOffset || array.byteLength < byteOffset) throw new RangeError("'offset' is out of bounds"); if (array.byteLength < byteOffset + (length || 0)) throw new RangeError("'length' is out of bounds"); return array = void 0 === byteOffset && void 0 === length ? new Uint8Array(array) : void 0 === length ? new Uint8Array(array, byteOffset) : new Uint8Array(array, byteOffset, length), Buffer.TYPED_ARRAY_SUPPORT ? (that = array, that.__proto__ = Buffer.prototype) : that = fromArrayLike(that, array), that } function fromObject(that, obj) { if (Buffer.isBuffer(obj)) { var len = 0 | checked(obj.length); return that = createBuffer(that, len), 0 === that.length ? that : (obj.copy(that, 0, 0, len), that) } if (obj) { if ("undefined" != typeof ArrayBuffer && obj.buffer instanceof ArrayBuffer || "length" in obj) return "number" != typeof obj.length || isnan(obj.length) ? createBuffer(that, 0) : fromArrayLike(that, obj); if ("Buffer" === obj.type && isArray(obj.data)) return fromArrayLike(that, obj.data) } throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") } function checked(length) { if (length >= kMaxLength()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + kMaxLength().toString(16) + " bytes"); return 0 | length } function SlowBuffer(length) { return +length != length && (length = 0), Buffer.alloc(+length) } function byteLength(string, encoding) { if (Buffer.isBuffer(string)) return string.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) return string.byteLength; "string" != typeof string && (string = "" + string); var len = string.length; if (0 === len) return 0; for (var loweredCase = !1; ;) switch (encoding) { case"ascii": case"latin1": case"binary": return len; case"utf8": case"utf-8": case void 0: return utf8ToBytes(string).length; case"ucs2": case"ucs-2": case"utf16le": case"utf-16le": return 2 * len; case"hex": return len >>> 1; case"base64": return base64ToBytes(string).length; default: if (loweredCase) return utf8ToBytes(string).length; encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } } function slowToString(encoding, start, end) { var loweredCase = !1; if ((void 0 === start || 0 > start) && (start = 0), start > this.length) return ""; if ((void 0 === end || end > this.length) && (end = this.length), 0 >= end) return ""; if (end >>>= 0, start >>>= 0, start >= end) return ""; for (encoding || (encoding = "utf8"); ;) switch (encoding) { case"hex": return hexSlice(this, start, end); case"utf8": case"utf-8": return utf8Slice(this, start, end); case"ascii": return asciiSlice(this, start, end); case"latin1": case"binary": return latin1Slice(this, start, end); case"base64": return base64Slice(this, start, end); case"ucs2": case"ucs-2": case"utf16le": case"utf-16le": return utf16leSlice(this, start, end); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = (encoding + "").toLowerCase(), loweredCase = !0 } } function swap(b, n, m) { var i = b[n]; b[n] = b[m], b[m] = i } function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { if (0 === buffer.length) return -1; if ("string" == typeof byteOffset ? (encoding = byteOffset, byteOffset = 0) : byteOffset > 2147483647 ? byteOffset = 2147483647 : -2147483648 > byteOffset && (byteOffset = -2147483648), byteOffset = +byteOffset, isNaN(byteOffset) && (byteOffset = dir ? 0 : buffer.length - 1), 0 > byteOffset && (byteOffset = buffer.length + byteOffset), byteOffset >= buffer.length) { if (dir) return -1; byteOffset = buffer.length - 1 } else if (0 > byteOffset) { if (!dir) return -1; byteOffset = 0 } if ("string" == typeof val && (val = Buffer.from(val, encoding)), Buffer.isBuffer(val)) return 0 === val.length ? -1 : arrayIndexOf(buffer, val, byteOffset, encoding, dir); if ("number" == typeof val) return val = 255 & val, Buffer.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? dir ? Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) : Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) : arrayIndexOf(buffer, [val], byteOffset, encoding, dir); throw new TypeError("val must be string, number or Buffer") } function arrayIndexOf(arr, val, byteOffset, encoding, dir) { function read(buf, i) { return 1 === indexSize ? buf[i] : buf.readUInt16BE(i * indexSize) } var indexSize = 1, arrLength = arr.length, valLength = val.length; if (void 0 !== encoding && (encoding = String(encoding).toLowerCase(), "ucs2" === encoding || "ucs-2" === encoding || "utf16le" === encoding || "utf-16le" === encoding)) { if (arr.length < 2 || val.length < 2) return -1; indexSize = 2, arrLength /= 2, valLength /= 2, byteOffset /= 2 } var i; if (dir) { var foundIndex = -1; for (i = byteOffset; arrLength > i; i++) if (read(arr, i) === read(val, -1 === foundIndex ? 0 : i - foundIndex)) { if (-1 === foundIndex && (foundIndex = i), i - foundIndex + 1 === valLength) return foundIndex * indexSize } else -1 !== foundIndex && (i -= i - foundIndex), foundIndex = -1 } else for (byteOffset + valLength > arrLength && (byteOffset = arrLength - valLength), i = byteOffset; i >= 0; i--) { for (var found = !0, j = 0; valLength > j; j++) if (read(arr, i + j) !== read(val, j)) { found = !1; break } if (found) return i } return -1 } function hexWrite(buf, string, offset, length) { offset = Number(offset) || 0; var remaining = buf.length - offset; length ? (length = Number(length), length > remaining && (length = remaining)) : length = remaining; var strLen = string.length; if (strLen % 2 !== 0) throw new TypeError("Invalid hex string"); length > strLen / 2 && (length = strLen / 2); for (var i = 0; length > i; ++i) { var parsed = parseInt(string.substr(2 * i, 2), 16); if (isNaN(parsed)) return i; buf[offset + i] = parsed } return i } function utf8Write(buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite(buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write(buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write(buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write(buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } function base64Slice(buf, start, end) { return 0 === start && end === buf.length ? base64.fromByteArray(buf) : base64.fromByteArray(buf.slice(start, end)) } function utf8Slice(buf, start, end) { end = Math.min(buf.length, end); for (var res = [], i = start; end > i;) { var firstByte = buf[i], codePoint = null, bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; if (end >= i + bytesPerSequence) { var secondByte, thirdByte, fourthByte, tempCodePoint; switch (bytesPerSequence) { case 1: 128 > firstByte && (codePoint = firstByte); break; case 2: secondByte = buf[i + 1], 128 === (192 & secondByte) && (tempCodePoint = (31 & firstByte) << 6 | 63 & secondByte, tempCodePoint > 127 && (codePoint = tempCodePoint)); break; case 3: secondByte = buf[i + 1], thirdByte = buf[i + 2], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && (tempCodePoint = (15 & firstByte) << 12 | (63 & secondByte) << 6 | 63 & thirdByte, tempCodePoint > 2047 && (55296 > tempCodePoint || tempCodePoint > 57343) && (codePoint = tempCodePoint)); break; case 4: secondByte = buf[i + 1], thirdByte = buf[i + 2], fourthByte = buf[i + 3], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && 128 === (192 & fourthByte) && (tempCodePoint = (15 & firstByte) << 18 | (63 & secondByte) << 12 | (63 & thirdByte) << 6 | 63 & fourthByte, tempCodePoint > 65535 && 1114112 > tempCodePoint && (codePoint = tempCodePoint)) } } null === codePoint ? (codePoint = 65533, bytesPerSequence = 1) : codePoint > 65535 && (codePoint -= 65536, res.push(codePoint >>> 10 & 1023 | 55296), codePoint = 56320 | 1023 & codePoint), res.push(codePoint), i += bytesPerSequence } return decodeCodePointsArray(res) } function decodeCodePointsArray(codePoints) { var len = codePoints.length; if (MAX_ARGUMENTS_LENGTH >= len) return String.fromCharCode.apply(String, codePoints); for (var res = "", i = 0; len > i;) res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); return res } function asciiSlice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i) ret += String.fromCharCode(127 & buf[i]); return ret } function latin1Slice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i) ret += String.fromCharCode(buf[i]); return ret } function hexSlice(buf, start, end) { var len = buf.length; (!start || 0 > start) && (start = 0), (!end || 0 > end || end > len) && (end = len); for (var out = "", i = start; end > i; ++i) out += toHex(buf[i]); return out } function utf16leSlice(buf, start, end) { for (var bytes = buf.slice(start, end), res = "", i = 0; i < bytes.length; i += 2) res += String.fromCharCode(bytes[i] + 256 * bytes[i + 1]); return res } function checkOffset(offset, ext, length) { if (offset % 1 !== 0 || 0 > offset) throw new RangeError("offset is not uint"); if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length") } function checkInt(buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (value > max || min > value) throw new RangeError('"value" argument is out of bounds'); if (offset + ext > buf.length) throw new RangeError("Index out of range") } function objectWriteUInt16(buf, value, offset, littleEndian) { 0 > value && (value = 65535 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 2); j > i; ++i) buf[offset + i] = (value & 255 << 8 * (littleEndian ? i : 1 - i)) >>> 8 * (littleEndian ? i : 1 - i) } function objectWriteUInt32(buf, value, offset, littleEndian) { 0 > value && (value = 4294967295 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 4); j > i; ++i) buf[offset + i] = value >>> 8 * (littleEndian ? i : 3 - i) & 255 } function checkIEEE754(buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError("Index out of range"); if (0 > offset) throw new RangeError("Index out of range") } function writeFloat(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 4, 3.4028234663852886e38, -3.4028234663852886e38), ieee754.write(buf, value, offset, littleEndian, 23, 4), offset + 4 } function writeDouble(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 8, 1.7976931348623157e308, -1.7976931348623157e308), ieee754.write(buf, value, offset, littleEndian, 52, 8), offset + 8 } function base64clean(str) { if (str = stringtrim(str).replace(INVALID_BASE64_RE, ""), str.length < 2) return ""; for (; str.length % 4 !== 0;) str += "="; return str } function stringtrim(str) { return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, "") } function toHex(n) { return 16 > n ? "0" + n.toString(16) : n.toString(16) } function utf8ToBytes(string, units) { units = units || 1 / 0; for (var codePoint, length = string.length, leadSurrogate = null, bytes = [], i = 0; length > i; ++i) { if (codePoint = string.charCodeAt(i), codePoint > 55295 && 57344 > codePoint) { if (!leadSurrogate) { if (codePoint > 56319) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } if (i + 1 === length) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } leadSurrogate = codePoint; continue } if (56320 > codePoint) { (units -= 3) > -1 && bytes.push(239, 191, 189), leadSurrogate = codePoint; continue } codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536 } else leadSurrogate && (units -= 3) > -1 && bytes.push(239, 191, 189); if (leadSurrogate = null, 128 > codePoint) { if ((units -= 1) < 0) break; bytes.push(codePoint) } else if (2048 > codePoint) { if ((units -= 2) < 0) break; bytes.push(codePoint >> 6 | 192, 63 & codePoint | 128) } else if (65536 > codePoint) { if ((units -= 3) < 0) break; bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } else { if (!(1114112 > codePoint)) throw new Error("Invalid code point"); if ((units -= 4) < 0) break; bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } } return bytes } function asciiToBytes(str) { for (var byteArray = [], i = 0; i < str.length; ++i) byteArray.push(255 & str.charCodeAt(i)); return byteArray } function utf16leToBytes(str, units) { for (var c, hi, lo, byteArray = [], i = 0; i < str.length && !((units -= 2) < 0); ++i) c = str.charCodeAt(i), hi = c >> 8, lo = c % 256, byteArray.push(lo), byteArray.push(hi); return byteArray } function base64ToBytes(str) { return base64.toByteArray(base64clean(str)) } function blitBuffer(src, dst, offset, length) { for (var i = 0; length > i && !(i + offset >= dst.length || i >= src.length); ++i) dst[i + offset] = src[i]; return i } function isnan(val) { return val !== val } var base64 = require("base64-js"), ieee754 = require("ieee754"), isArray = require("isarray"); exports.Buffer = Buffer, exports.SlowBuffer = SlowBuffer, exports.INSPECT_MAX_BYTES = 50, Buffer.TYPED_ARRAY_SUPPORT = void 0 !== global.TYPED_ARRAY_SUPPORT ? global.TYPED_ARRAY_SUPPORT : typedArraySupport(), exports.kMaxLength = kMaxLength(), Buffer.poolSize = 8192, Buffer._augment = function (arr) { return arr.__proto__ = Buffer.prototype, arr }, Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) }, Buffer.TYPED_ARRAY_SUPPORT && (Buffer.prototype.__proto__ = Uint8Array.prototype, Buffer.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && Buffer[Symbol.species] === Buffer && Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: !0 })), Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) }, Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) }, Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) }, Buffer.isBuffer = function (b) { return !(null == b || !b._isBuffer) }, Buffer.compare = function (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) throw new TypeError("Arguments must be Buffers"); if (a === b) return 0; for (var x = a.length, y = b.length, i = 0, len = Math.min(x, y); len > i; ++i) if (a[i] !== b[i]) { x = a[i], y = b[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.isEncoding = function (encoding) { switch (String(encoding).toLowerCase()) { case"hex": case"utf8": case"utf-8": case"ascii": case"latin1": case"binary": case"base64": case"ucs2": case"ucs-2": case"utf16le": case"utf-16le": return !0; default: return !1 } }, Buffer.concat = function (list, length) { if (!isArray(list)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === list.length) return Buffer.alloc(0); var i; if (void 0 === length) for (length = 0, i = 0; i < list.length; ++i) length += list[i].length; var buffer = Buffer.allocUnsafe(length), pos = 0; for (i = 0; i < list.length; ++i) { var buf = list[i]; if (!Buffer.isBuffer(buf)) throw new TypeError('"list" argument must be an Array of Buffers'); buf.copy(buffer, pos), pos += buf.length } return buffer }, Buffer.byteLength = byteLength, Buffer.prototype._isBuffer = !0, Buffer.prototype.swap16 = function () { var len = this.length; if (len % 2 !== 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var i = 0; len > i; i += 2) swap(this, i, i + 1); return this }, Buffer.prototype.swap32 = function () { var len = this.length; if (len % 4 !== 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var i = 0; len > i; i += 4) swap(this, i, i + 3), swap(this, i + 1, i + 2); return this }, Buffer.prototype.swap64 = function () { var len = this.length; if (len % 8 !== 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var i = 0; len > i; i += 8) swap(this, i, i + 7), swap(this, i + 1, i + 6), swap(this, i + 2, i + 5), swap(this, i + 3, i + 4); return this }, Buffer.prototype.toString = function () { var length = 0 | this.length; return 0 === length ? "" : 0 === arguments.length ? utf8Slice(this, 0, length) : slowToString.apply(this, arguments) }, Buffer.prototype.equals = function (b) { if (!Buffer.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); return this === b ? !0 : 0 === Buffer.compare(this, b) }, Buffer.prototype.inspect = function () { var str = "", max = exports.INSPECT_MAX_BYTES; return this.length > 0 && (str = this.toString("hex", 0, max).match(/.{2}/g).join(" "), this.length > max && (str += " ... ")), "" }, Buffer.prototype.compare = function (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) throw new TypeError("Argument must be a Buffer"); if (void 0 === start && (start = 0), void 0 === end && (end = target ? target.length : 0), void 0 === thisStart && (thisStart = 0), void 0 === thisEnd && (thisEnd = this.length), 0 > start || end > target.length || 0 > thisStart || thisEnd > this.length) throw new RangeError("out of range index"); if (thisStart >= thisEnd && start >= end) return 0; if (thisStart >= thisEnd) return -1; if (start >= end) return 1; if (start >>>= 0, end >>>= 0, thisStart >>>= 0, thisEnd >>>= 0, this === target) return 0; for (var x = thisEnd - thisStart, y = end - start, len = Math.min(x, y), thisCopy = this.slice(thisStart, thisEnd), targetCopy = target.slice(start, end), i = 0; len > i; ++i) if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i], y = targetCopy[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.prototype.includes = function (val, byteOffset, encoding) { return -1 !== this.indexOf(val, byteOffset, encoding) }, Buffer.prototype.indexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !0) }, Buffer.prototype.lastIndexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !1) }, Buffer.prototype.write = function (string, offset, length, encoding) { if (void 0 === offset) encoding = "utf8", length = this.length, offset = 0; else if (void 0 === length && "string" == typeof offset) encoding = offset, length = this.length, offset = 0; else { if (!isFinite(offset)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); offset = 0 | offset, isFinite(length) ? (length = 0 | length, void 0 === encoding && (encoding = "utf8")) : (encoding = length, length = void 0) } var remaining = this.length - offset; if ((void 0 === length || length > remaining) && (length = remaining), string.length > 0 && (0 > length || 0 > offset) || offset > this.length) throw new RangeError("Attempt to write outside buffer bounds"); encoding || (encoding = "utf8"); for (var loweredCase = !1; ;) switch (encoding) { case"hex": return hexWrite(this, string, offset, length); case"utf8": case"utf-8": return utf8Write(this, string, offset, length); case"ascii": return asciiWrite(this, string, offset, length); case"latin1": case"binary": return latin1Write(this, string, offset, length); case"base64": return base64Write(this, string, offset, length); case"ucs2": case"ucs-2": case"utf16le": case"utf-16le": return ucs2Write(this, string, offset, length); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } }, Buffer.prototype.toJSON = function () { return {type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0)} }; var MAX_ARGUMENTS_LENGTH = 4096; Buffer.prototype.slice = function (start, end) { var len = this.length; start = ~~start, end = void 0 === end ? len : ~~end, 0 > start ? (start += len, 0 > start && (start = 0)) : start > len && (start = len), 0 > end ? (end += len, 0 > end && (end = 0)) : end > len && (end = len), start > end && (end = start); var newBuf; if (Buffer.TYPED_ARRAY_SUPPORT) newBuf = this.subarray(start, end), newBuf.__proto__ = Buffer.prototype; else { var sliceLen = end - start; newBuf = new Buffer(sliceLen, void 0); for (var i = 0; sliceLen > i; ++i) newBuf[i] = this[i + start] } return newBuf }, Buffer.prototype.readUIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);) val += this[offset + i] * mul; return val }, Buffer.prototype.readUIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset + --byteLength], mul = 1; byteLength > 0 && (mul *= 256);) val += this[offset + --byteLength] * mul; return val }, Buffer.prototype.readUInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), this[offset] }, Buffer.prototype.readUInt16LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] | this[offset + 1] << 8 }, Buffer.prototype.readUInt16BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] << 8 | this[offset + 1] }, Buffer.prototype.readUInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + 16777216 * this[offset + 3] }, Buffer.prototype.readUInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), 16777216 * this[offset] + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]) }, Buffer.prototype.readIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);) val += this[offset + i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var i = byteLength, mul = 1, val = this[offset + --i]; i > 0 && (mul *= 256);) val += this[offset + --i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), 128 & this[offset] ? -1 * (255 - this[offset] + 1) : this[offset] }, Buffer.prototype.readInt16LE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset] | this[offset + 1] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt16BE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset + 1] | this[offset] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24 }, Buffer.prototype.readInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3] }, Buffer.prototype.readFloatLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !0, 23, 4) }, Buffer.prototype.readFloatBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !1, 23, 4) }, Buffer.prototype.readDoubleLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !0, 52, 8) }, Buffer.prototype.readDoubleBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !1, 52, 8) }, Buffer.prototype.writeUIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1, i = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);) this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1, mul = 1; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);) this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUInt8 = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 255, 0), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), this[offset] = 255 & value, offset + 1 }, Buffer.prototype.writeUInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeUInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeUInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset + 3] = value >>> 24, this[offset + 2] = value >>> 16, this[offset + 1] = value >>> 8, this[offset] = 255 & value) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeUInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0, mul = 1, sub = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);) 0 > value && 0 === sub && 0 !== this[offset + i - 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1, mul = 1, sub = 0; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);) 0 > value && 0 === sub && 0 !== this[offset + i + 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeInt8 = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 127, -128), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), 0 > value && (value = 255 + value + 1), this[offset] = 255 & value, offset + 1 }, Buffer.prototype.writeInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8, this[offset + 2] = value >>> 16, this[offset + 3] = value >>> 24) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), 0 > value && (value = 4294967295 + value + 1), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeFloatLE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !0, noAssert) }, Buffer.prototype.writeFloatBE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !1, noAssert) }, Buffer.prototype.writeDoubleLE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !0, noAssert) }, Buffer.prototype.writeDoubleBE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !1, noAssert) }, Buffer.prototype.copy = function (target, targetStart, start, end) { if (start || (start = 0), end || 0 === end || (end = this.length), targetStart >= target.length && (targetStart = target.length), targetStart || (targetStart = 0), end > 0 && start > end && (end = start), end === start) return 0; if (0 === target.length || 0 === this.length) return 0; if (0 > targetStart) throw new RangeError("targetStart out of bounds"); if (0 > start || start >= this.length) throw new RangeError("sourceStart out of bounds"); if (0 > end) throw new RangeError("sourceEnd out of bounds"); end > this.length && (end = this.length), target.length - targetStart < end - start && (end = target.length - targetStart + start); var i, len = end - start; if (this === target && targetStart > start && end > targetStart) for (i = len - 1; i >= 0; --i) target[i + targetStart] = this[i + start]; else if (1e3 > len || !Buffer.TYPED_ARRAY_SUPPORT) for (i = 0; len > i; ++i) target[i + targetStart] = this[i + start]; else Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); return len }, Buffer.prototype.fill = function (val, start, end, encoding) { if ("string" == typeof val) { if ("string" == typeof start ? (encoding = start, start = 0, end = this.length) : "string" == typeof end && (encoding = end, end = this.length), 1 === val.length) { var code = val.charCodeAt(0); 256 > code && (val = code) } if (void 0 !== encoding && "string" != typeof encoding) throw new TypeError("encoding must be a string"); if ("string" == typeof encoding && !Buffer.isEncoding(encoding)) throw new TypeError("Unknown encoding: " + encoding) } else "number" == typeof val && (val = 255 & val); if (0 > start || this.length < start || this.length < end) throw new RangeError("Out of range index"); if (start >= end) return this; start >>>= 0, end = void 0 === end ? this.length : end >>> 0, val || (val = 0); var i; if ("number" == typeof val) for (i = start; end > i; ++i) this[i] = val; else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()), len = bytes.length; for (i = 0; end - start > i; ++i) this[i + start] = bytes[i % len] } return this }; var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {"base64-js": 40, ieee754: 83, isarray: 86}], 79: [function (require, module, exports) { (function (Buffer) { function isArray(arg) { return Array.isArray ? Array.isArray(arg) : "[object Array]" === objectToString(arg) } function isBoolean(arg) { return "boolean" == typeof arg } function isNull(arg) { return null === arg } function isNullOrUndefined(arg) { return null == arg } function isNumber(arg) { return "number" == typeof arg } function isString(arg) { return "string" == typeof arg } function isSymbol(arg) { return "symbol" == typeof arg } function isUndefined(arg) { return void 0 === arg } function isRegExp(re) { return "[object RegExp]" === objectToString(re) } function isObject(arg) { return "object" == typeof arg && null !== arg } function isDate(d) { return "[object Date]" === objectToString(d) } function isError(e) { return "[object Error]" === objectToString(e) || e instanceof Error } function isFunction(arg) { return "function" == typeof arg } function isPrimitive(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || "undefined" == typeof arg } function objectToString(o) { return Object.prototype.toString.call(o) } exports.isArray = isArray, exports.isBoolean = isBoolean, exports.isNull = isNull, exports.isNullOrUndefined = isNullOrUndefined, exports.isNumber = isNumber, exports.isString = isString, exports.isSymbol = isSymbol, exports.isUndefined = isUndefined, exports.isRegExp = isRegExp, exports.isObject = isObject, exports.isDate = isDate, exports.isError = isError, exports.isFunction = isFunction, exports.isPrimitive = isPrimitive, exports.isBuffer = Buffer.isBuffer }).call(this, {isBuffer: require("../../is-buffer/index.js")}) }, {"../../is-buffer/index.js": 85}], 80: [function (require, module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: !0}); var dingbats = [{ "Typeface name": "Symbol", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Symbol", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "33", "Unicode hex": "21" }, { "Typeface name": "Symbol", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "8704", "Unicode hex": "2200" }, { "Typeface name": "Symbol", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "35", "Unicode hex": "23" }, { "Typeface name": "Symbol", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "8707", "Unicode hex": "2203" }, { "Typeface name": "Symbol", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "37", "Unicode hex": "25" }, { "Typeface name": "Symbol", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "38", "Unicode hex": "26" }, { "Typeface name": "Symbol", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "8717", "Unicode hex": "220D" }, { "Typeface name": "Symbol", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "40", "Unicode hex": "28" }, { "Typeface name": "Symbol", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "41", "Unicode hex": "29" }, { "Typeface name": "Symbol", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "42", "Unicode hex": "2A" }, { "Typeface name": "Symbol", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "43", "Unicode hex": "2B" }, { "Typeface name": "Symbol", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "44", "Unicode hex": "2C" }, { "Typeface name": "Symbol", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "8722", "Unicode hex": "2212" }, { "Typeface name": "Symbol", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "46", "Unicode hex": "2E" }, { "Typeface name": "Symbol", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "47", "Unicode hex": "2F" }, { "Typeface name": "Symbol", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "48", "Unicode hex": "30" }, { "Typeface name": "Symbol", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "49", "Unicode hex": "31" }, { "Typeface name": "Symbol", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "50", "Unicode hex": "32" }, { "Typeface name": "Symbol", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "51", "Unicode hex": "33" }, { "Typeface name": "Symbol", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "52", "Unicode hex": "34" }, { "Typeface name": "Symbol", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "53", "Unicode hex": "35" }, { "Typeface name": "Symbol", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "54", "Unicode hex": "36" }, { "Typeface name": "Symbol", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "55", "Unicode hex": "37" }, { "Typeface name": "Symbol", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "56", "Unicode hex": "38" }, { "Typeface name": "Symbol", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "57", "Unicode hex": "39" }, { "Typeface name": "Symbol", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "58", "Unicode hex": "3A" }, { "Typeface name": "Symbol", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "59", "Unicode hex": "3B" }, { "Typeface name": "Symbol", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "60", "Unicode hex": "3C" }, { "Typeface name": "Symbol", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "61", "Unicode hex": "3D" }, { "Typeface name": "Symbol", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "62", "Unicode hex": "3E" }, { "Typeface name": "Symbol", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "63", "Unicode hex": "3F" }, { "Typeface name": "Symbol", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "8773", "Unicode hex": "2245" }, { "Typeface name": "Symbol", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "913", "Unicode hex": "391" }, { "Typeface name": "Symbol", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "914", "Unicode hex": "392" }, { "Typeface name": "Symbol", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "935", "Unicode hex": "3A7" }, { "Typeface name": "Symbol", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "916", "Unicode hex": "394" }, { "Typeface name": "Symbol", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "917", "Unicode hex": "395" }, { "Typeface name": "Symbol", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "934", "Unicode hex": "3A6" }, { "Typeface name": "Symbol", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "915", "Unicode hex": "393" }, { "Typeface name": "Symbol", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "919", "Unicode hex": "397" }, { "Typeface name": "Symbol", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "921", "Unicode hex": "399" }, { "Typeface name": "Symbol", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "977", "Unicode hex": "3D1" }, { "Typeface name": "Symbol", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "922", "Unicode hex": "39A" }, { "Typeface name": "Symbol", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "923", "Unicode hex": "39B" }, { "Typeface name": "Symbol", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "924", "Unicode hex": "39C" }, { "Typeface name": "Symbol", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "925", "Unicode hex": "39D" }, { "Typeface name": "Symbol", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "927", "Unicode hex": "39F" }, { "Typeface name": "Symbol", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "928", "Unicode hex": "3A0" }, { "Typeface name": "Symbol", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "920", "Unicode hex": "398" }, { "Typeface name": "Symbol", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "929", "Unicode hex": "3A1" }, { "Typeface name": "Symbol", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "931", "Unicode hex": "3A3" }, { "Typeface name": "Symbol", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "932", "Unicode hex": "3A4" }, { "Typeface name": "Symbol", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "933", "Unicode hex": "3A5" }, { "Typeface name": "Symbol", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "962", "Unicode hex": "3C2" }, { "Typeface name": "Symbol", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "937", "Unicode hex": "3A9" }, { "Typeface name": "Symbol", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "926", "Unicode hex": "39E" }, { "Typeface name": "Symbol", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "936", "Unicode hex": "3A8" }, { "Typeface name": "Symbol", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "918", "Unicode hex": "396" }, { "Typeface name": "Symbol", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "91", "Unicode hex": "5B" }, { "Typeface name": "Symbol", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "8756", "Unicode hex": "2234" }, { "Typeface name": "Symbol", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "93", "Unicode hex": "5D" }, { "Typeface name": "Symbol", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "8869", "Unicode hex": "22A5" }, { "Typeface name": "Symbol", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "95", "Unicode hex": "5F" }, { "Typeface name": "Symbol", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "8254", "Unicode hex": "203E" }, { "Typeface name": "Symbol", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "945", "Unicode hex": "3B1" }, { "Typeface name": "Symbol", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "946", "Unicode hex": "3B2" }, { "Typeface name": "Symbol", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "967", "Unicode hex": "3C7" }, { "Typeface name": "Symbol", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "948", "Unicode hex": "3B4" }, { "Typeface name": "Symbol", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "949", "Unicode hex": "3B5" }, { "Typeface name": "Symbol", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "966", "Unicode hex": "3C6" }, { "Typeface name": "Symbol", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "947", "Unicode hex": "3B3" }, { "Typeface name": "Symbol", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "951", "Unicode hex": "3B7" }, { "Typeface name": "Symbol", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "953", "Unicode hex": "3B9" }, { "Typeface name": "Symbol", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "981", "Unicode hex": "3D5" }, { "Typeface name": "Symbol", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "954", "Unicode hex": "3BA" }, { "Typeface name": "Symbol", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "955", "Unicode hex": "3BB" }, { "Typeface name": "Symbol", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "956", "Unicode hex": "3BC" }, { "Typeface name": "Symbol", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "957", "Unicode hex": "3BD" }, { "Typeface name": "Symbol", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "959", "Unicode hex": "3BF" }, { "Typeface name": "Symbol", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "960", "Unicode hex": "3C0" }, { "Typeface name": "Symbol", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "952", "Unicode hex": "3B8" }, { "Typeface name": "Symbol", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "961", "Unicode hex": "3C1" }, { "Typeface name": "Symbol", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "963", "Unicode hex": "3C3" }, { "Typeface name": "Symbol", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "964", "Unicode hex": "3C4" }, { "Typeface name": "Symbol", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "965", "Unicode hex": "3C5" }, { "Typeface name": "Symbol", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "982", "Unicode hex": "3D6" }, { "Typeface name": "Symbol", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "969", "Unicode hex": "3C9" }, { "Typeface name": "Symbol", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "958", "Unicode hex": "3BE" }, { "Typeface name": "Symbol", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "968", "Unicode hex": "3C8" }, { "Typeface name": "Symbol", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "950", "Unicode hex": "3B6" }, { "Typeface name": "Symbol", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "123", "Unicode hex": "7B" }, { "Typeface name": "Symbol", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "124", "Unicode hex": "7C" }, { "Typeface name": "Symbol", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "125", "Unicode hex": "7D" }, { "Typeface name": "Symbol", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "126", "Unicode hex": "7E" }, { "Typeface name": "Symbol", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "8364", "Unicode hex": "20AC" }, { "Typeface name": "Symbol", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "978", "Unicode hex": "3D2" }, { "Typeface name": "Symbol", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "8242", "Unicode hex": "2032" }, { "Typeface name": "Symbol", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "8804", "Unicode hex": "2264" }, { "Typeface name": "Symbol", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "8260", "Unicode hex": "2044" }, { "Typeface name": "Symbol", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "8734", "Unicode hex": "221E" }, { "Typeface name": "Symbol", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "402", "Unicode hex": "192" }, { "Typeface name": "Symbol", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9827", "Unicode hex": "2663" }, { "Typeface name": "Symbol", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9830", "Unicode hex": "2666" }, { "Typeface name": "Symbol", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "9829", "Unicode hex": "2665" }, { "Typeface name": "Symbol", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "9824", "Unicode hex": "2660" }, { "Typeface name": "Symbol", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "8596", "Unicode hex": "2194" }, { "Typeface name": "Symbol", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "8592", "Unicode hex": "2190" }, { "Typeface name": "Symbol", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "8593", "Unicode hex": "2191" }, { "Typeface name": "Symbol", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "8594", "Unicode hex": "2192" }, { "Typeface name": "Symbol", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "8595", "Unicode hex": "2193" }, { "Typeface name": "Symbol", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "176", "Unicode hex": "B0" }, { "Typeface name": "Symbol", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "177", "Unicode hex": "B1" }, { "Typeface name": "Symbol", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "8243", "Unicode hex": "2033" }, { "Typeface name": "Symbol", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "8805", "Unicode hex": "2265" }, { "Typeface name": "Symbol", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "215", "Unicode hex": "D7" }, { "Typeface name": "Symbol", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "8733", "Unicode hex": "221D" }, { "Typeface name": "Symbol", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "8706", "Unicode hex": "2202" }, { "Typeface name": "Symbol", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Symbol", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "247", "Unicode hex": "F7" }, { "Typeface name": "Symbol", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "8800", "Unicode hex": "2260" }, { "Typeface name": "Symbol", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "8801", "Unicode hex": "2261" }, { "Typeface name": "Symbol", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "8776", "Unicode hex": "2248" }, { "Typeface name": "Symbol", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "8230", "Unicode hex": "2026" }, { "Typeface name": "Symbol", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Symbol", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "9135", "Unicode hex": "23AF" }, { "Typeface name": "Symbol", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "8629", "Unicode hex": "21B5" }, { "Typeface name": "Symbol", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "8501", "Unicode hex": "2135" }, { "Typeface name": "Symbol", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "8465", "Unicode hex": "2111" }, { "Typeface name": "Symbol", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "8476", "Unicode hex": "211C" }, { "Typeface name": "Symbol", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "8472", "Unicode hex": "2118" }, { "Typeface name": "Symbol", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "8855", "Unicode hex": "2297" }, { "Typeface name": "Symbol", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "8853", "Unicode hex": "2295" }, { "Typeface name": "Symbol", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "8709", "Unicode hex": "2205" }, { "Typeface name": "Symbol", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "8745", "Unicode hex": "2229" }, { "Typeface name": "Symbol", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "8746", "Unicode hex": "222A" }, { "Typeface name": "Symbol", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "8835", "Unicode hex": "2283" }, { "Typeface name": "Symbol", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "8839", "Unicode hex": "2287" }, { "Typeface name": "Symbol", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "8836", "Unicode hex": "2284" }, { "Typeface name": "Symbol", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "8834", "Unicode hex": "2282" }, { "Typeface name": "Symbol", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "8838", "Unicode hex": "2286" }, { "Typeface name": "Symbol", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "8712", "Unicode hex": "2208" }, { "Typeface name": "Symbol", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "8713", "Unicode hex": "2209" }, { "Typeface name": "Symbol", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "8736", "Unicode hex": "2220" }, { "Typeface name": "Symbol", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "8711", "Unicode hex": "2207" }, { "Typeface name": "Symbol", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "8719", "Unicode hex": "220F" }, { "Typeface name": "Symbol", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8730", "Unicode hex": "221A" }, { "Typeface name": "Symbol", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Symbol", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "172", "Unicode hex": "AC" }, { "Typeface name": "Symbol", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "8743", "Unicode hex": "2227" }, { "Typeface name": "Symbol", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "8744", "Unicode hex": "2228" }, { "Typeface name": "Symbol", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "8660", "Unicode hex": "21D4" }, { "Typeface name": "Symbol", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "8656", "Unicode hex": "21D0" }, { "Typeface name": "Symbol", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "8657", "Unicode hex": "21D1" }, { "Typeface name": "Symbol", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "8658", "Unicode hex": "21D2" }, { "Typeface name": "Symbol", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "8659", "Unicode hex": "21D3" }, { "Typeface name": "Symbol", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Symbol", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "12296", "Unicode hex": "3008" }, { "Typeface name": "Symbol", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "8721", "Unicode hex": "2211" }, { "Typeface name": "Symbol", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "9115", "Unicode hex": "239B" }, { "Typeface name": "Symbol", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "9116", "Unicode hex": "239C" }, { "Typeface name": "Symbol", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9117", "Unicode hex": "239D" }, { "Typeface name": "Symbol", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9121", "Unicode hex": "23A1" }, { "Typeface name": "Symbol", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "9122", "Unicode hex": "23A2" }, { "Typeface name": "Symbol", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "9123", "Unicode hex": "23A3" }, { "Typeface name": "Symbol", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "9127", "Unicode hex": "23A7" }, { "Typeface name": "Symbol", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "9128", "Unicode hex": "23A8" }, { "Typeface name": "Symbol", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "9129", "Unicode hex": "23A9" }, { "Typeface name": "Symbol", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "9130", "Unicode hex": "23AA" }, { "Typeface name": "Symbol", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "63743", "Unicode hex": "F8FF" }, { "Typeface name": "Symbol", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "12297", "Unicode hex": "3009" }, { "Typeface name": "Symbol", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8747", "Unicode hex": "222B" }, { "Typeface name": "Symbol", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "8992", "Unicode hex": "2320" }, { "Typeface name": "Symbol", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "9134", "Unicode hex": "23AE" }, { "Typeface name": "Symbol", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "8993", "Unicode hex": "2321" }, { "Typeface name": "Symbol", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "9118", "Unicode hex": "239E" }, { "Typeface name": "Symbol", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "9119", "Unicode hex": "239F" }, { "Typeface name": "Symbol", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "9120", "Unicode hex": "23A0" }, { "Typeface name": "Symbol", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "9124", "Unicode hex": "23A4" }, { "Typeface name": "Symbol", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "9125", "Unicode hex": "23A5" }, { "Typeface name": "Symbol", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "9126", "Unicode hex": "23A6" }, { "Typeface name": "Symbol", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "9131", "Unicode hex": "23AB" }, { "Typeface name": "Symbol", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "9132", "Unicode hex": "23AC" }, { "Typeface name": "Symbol", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "9133", "Unicode hex": "23AD" }, { "Typeface name": "Webdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Webdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128375", "Unicode hex": "1F577" }, { "Typeface name": "Webdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128376", "Unicode hex": "1F578" }, { "Typeface name": "Webdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128370", "Unicode hex": "1F572" }, { "Typeface name": "Webdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128374", "Unicode hex": "1F576" }, { "Typeface name": "Webdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "127942", "Unicode hex": "1F3C6" }, { "Typeface name": "Webdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "127894", "Unicode hex": "1F396" }, { "Typeface name": "Webdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128391", "Unicode hex": "1F587" }, { "Typeface name": "Webdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128488", "Unicode hex": "1F5E8" }, { "Typeface name": "Webdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128489", "Unicode hex": "1F5E9" }, { "Typeface name": "Webdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128496", "Unicode hex": "1F5F0" }, { "Typeface name": "Webdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128497", "Unicode hex": "1F5F1" }, { "Typeface name": "Webdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "127798", "Unicode hex": "1F336" }, { "Typeface name": "Webdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "127895", "Unicode hex": "1F397" }, { "Typeface name": "Webdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128638", "Unicode hex": "1F67E" }, { "Typeface name": "Webdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128636", "Unicode hex": "1F67C" }, { "Typeface name": "Webdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128469", "Unicode hex": "1F5D5" }, { "Typeface name": "Webdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128470", "Unicode hex": "1F5D6" }, { "Typeface name": "Webdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128471", "Unicode hex": "1F5D7" }, { "Typeface name": "Webdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "9204", "Unicode hex": "23F4" }, { "Typeface name": "Webdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "9205", "Unicode hex": "23F5" }, { "Typeface name": "Webdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "9206", "Unicode hex": "23F6" }, { "Typeface name": "Webdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "9207", "Unicode hex": "23F7" }, { "Typeface name": "Webdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "9194", "Unicode hex": "23EA" }, { "Typeface name": "Webdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "9193", "Unicode hex": "23E9" }, { "Typeface name": "Webdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "9198", "Unicode hex": "23EE" }, { "Typeface name": "Webdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "9197", "Unicode hex": "23ED" }, { "Typeface name": "Webdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "9208", "Unicode hex": "23F8" }, { "Typeface name": "Webdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "9209", "Unicode hex": "23F9" }, { "Typeface name": "Webdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "9210", "Unicode hex": "23FA" }, { "Typeface name": "Webdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128474", "Unicode hex": "1F5DA" }, { "Typeface name": "Webdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128499", "Unicode hex": "1F5F3" }, { "Typeface name": "Webdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128736", "Unicode hex": "1F6E0" }, { "Typeface name": "Webdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "127959", "Unicode hex": "1F3D7" }, { "Typeface name": "Webdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "127960", "Unicode hex": "1F3D8" }, { "Typeface name": "Webdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "127961", "Unicode hex": "1F3D9" }, { "Typeface name": "Webdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "127962", "Unicode hex": "1F3DA" }, { "Typeface name": "Webdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "127964", "Unicode hex": "1F3DC" }, { "Typeface name": "Webdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "127981", "Unicode hex": "1F3ED" }, { "Typeface name": "Webdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "127963", "Unicode hex": "1F3DB" }, { "Typeface name": "Webdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "127968", "Unicode hex": "1F3E0" }, { "Typeface name": "Webdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "127958", "Unicode hex": "1F3D6" }, { "Typeface name": "Webdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "127965", "Unicode hex": "1F3DD" }, { "Typeface name": "Webdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128739", "Unicode hex": "1F6E3" }, { "Typeface name": "Webdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128269", "Unicode hex": "1F50D" }, { "Typeface name": "Webdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "127956", "Unicode hex": "1F3D4" }, { "Typeface name": "Webdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128065", "Unicode hex": "1F441" }, { "Typeface name": "Webdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128066", "Unicode hex": "1F442" }, { "Typeface name": "Webdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127966", "Unicode hex": "1F3DE" }, { "Typeface name": "Webdings", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "127957", "Unicode hex": "1F3D5" }, { "Typeface name": "Webdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "128740", "Unicode hex": "1F6E4" }, { "Typeface name": "Webdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127967", "Unicode hex": "1F3DF" }, { "Typeface name": "Webdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "128755", "Unicode hex": "1F6F3" }, { "Typeface name": "Webdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128364", "Unicode hex": "1F56C" }, { "Typeface name": "Webdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "128363", "Unicode hex": "1F56B" }, { "Typeface name": "Webdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128360", "Unicode hex": "1F568" }, { "Typeface name": "Webdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "128264", "Unicode hex": "1F508" }, { "Typeface name": "Webdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "127892", "Unicode hex": "1F394" }, { "Typeface name": "Webdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "127893", "Unicode hex": "1F395" }, { "Typeface name": "Webdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128492", "Unicode hex": "1F5EC" }, { "Typeface name": "Webdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128637", "Unicode hex": "1F67D" }, { "Typeface name": "Webdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "128493", "Unicode hex": "1F5ED" }, { "Typeface name": "Webdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128490", "Unicode hex": "1F5EA" }, { "Typeface name": "Webdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128491", "Unicode hex": "1F5EB" }, { "Typeface name": "Webdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "11156", "Unicode hex": "2B94" }, { "Typeface name": "Webdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "10004", "Unicode hex": "2714" }, { "Typeface name": "Webdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128690", "Unicode hex": "1F6B2" }, { "Typeface name": "Webdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "11036", "Unicode hex": "2B1C" }, { "Typeface name": "Webdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128737", "Unicode hex": "1F6E1" }, { "Typeface name": "Webdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128230", "Unicode hex": "1F4E6" }, { "Typeface name": "Webdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128753", "Unicode hex": "1F6F1" }, { "Typeface name": "Webdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "11035", "Unicode hex": "2B1B" }, { "Typeface name": "Webdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128657", "Unicode hex": "1F691" }, { "Typeface name": "Webdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "128712", "Unicode hex": "1F6C8" }, { "Typeface name": "Webdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128745", "Unicode hex": "1F6E9" }, { "Typeface name": "Webdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128752", "Unicode hex": "1F6F0" }, { "Typeface name": "Webdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "128968", "Unicode hex": "1F7C8" }, { "Typeface name": "Webdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128372", "Unicode hex": "1F574" }, { "Typeface name": "Webdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "11044", "Unicode hex": "2B24" }, { "Typeface name": "Webdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128741", "Unicode hex": "1F6E5" }, { "Typeface name": "Webdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128660", "Unicode hex": "1F694" }, { "Typeface name": "Webdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "128472", "Unicode hex": "1F5D8" }, { "Typeface name": "Webdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "128473", "Unicode hex": "1F5D9" }, { "Typeface name": "Webdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "10067", "Unicode hex": "2753" }, { "Typeface name": "Webdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "128754", "Unicode hex": "1F6F2" }, { "Typeface name": "Webdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "128647", "Unicode hex": "1F687" }, { "Typeface name": "Webdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "128653", "Unicode hex": "1F68D" }, { "Typeface name": "Webdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9971", "Unicode hex": "26F3" }, { "Typeface name": "Webdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Webdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "8854", "Unicode hex": "2296" }, { "Typeface name": "Webdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "128685", "Unicode hex": "1F6AD" }, { "Typeface name": "Webdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "128494", "Unicode hex": "1F5EE" }, { "Typeface name": "Webdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Webdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128495", "Unicode hex": "1F5EF" }, { "Typeface name": "Webdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128498", "Unicode hex": "1F5F2" }, { "Typeface name": "Webdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128697", "Unicode hex": "1F6B9" }, { "Typeface name": "Webdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "128698", "Unicode hex": "1F6BA" }, { "Typeface name": "Webdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "128713", "Unicode hex": "1F6C9" }, { "Typeface name": "Webdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "128714", "Unicode hex": "1F6CA" }, { "Typeface name": "Webdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "128700", "Unicode hex": "1F6BC" }, { "Typeface name": "Webdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "128125", "Unicode hex": "1F47D" }, { "Typeface name": "Webdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "127947", "Unicode hex": "1F3CB" }, { "Typeface name": "Webdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "9975", "Unicode hex": "26F7" }, { "Typeface name": "Webdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "127938", "Unicode hex": "1F3C2" }, { "Typeface name": "Webdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "127948", "Unicode hex": "1F3CC" }, { "Typeface name": "Webdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "127946", "Unicode hex": "1F3CA" }, { "Typeface name": "Webdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127940", "Unicode hex": "1F3C4" }, { "Typeface name": "Webdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "127949", "Unicode hex": "1F3CD" }, { "Typeface name": "Webdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "127950", "Unicode hex": "1F3CE" }, { "Typeface name": "Webdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128664", "Unicode hex": "1F698" }, { "Typeface name": "Webdings", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128480", "Unicode hex": "1F5E0" }, { "Typeface name": "Webdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128738", "Unicode hex": "1F6E2" }, { "Typeface name": "Webdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128176", "Unicode hex": "1F4B0" }, { "Typeface name": "Webdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "127991", "Unicode hex": "1F3F7" }, { "Typeface name": "Webdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128179", "Unicode hex": "1F4B3" }, { "Typeface name": "Webdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128106", "Unicode hex": "1F46A" }, { "Typeface name": "Webdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "128481", "Unicode hex": "1F5E1" }, { "Typeface name": "Webdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128482", "Unicode hex": "1F5E2" }, { "Typeface name": "Webdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128483", "Unicode hex": "1F5E3" }, { "Typeface name": "Webdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Webdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128388", "Unicode hex": "1F584" }, { "Typeface name": "Webdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128389", "Unicode hex": "1F585" }, { "Typeface name": "Webdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Webdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128390", "Unicode hex": "1F586" }, { "Typeface name": "Webdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128441", "Unicode hex": "1F5B9" }, { "Typeface name": "Webdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "128442", "Unicode hex": "1F5BA" }, { "Typeface name": "Webdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128443", "Unicode hex": "1F5BB" }, { "Typeface name": "Webdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128373", "Unicode hex": "1F575" }, { "Typeface name": "Webdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "128368", "Unicode hex": "1F570" }, { "Typeface name": "Webdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128445", "Unicode hex": "1F5BD" }, { "Typeface name": "Webdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128446", "Unicode hex": "1F5BE" }, { "Typeface name": "Webdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128203", "Unicode hex": "1F4CB" }, { "Typeface name": "Webdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128466", "Unicode hex": "1F5D2" }, { "Typeface name": "Webdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128467", "Unicode hex": "1F5D3" }, { "Typeface name": "Webdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Webdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128218", "Unicode hex": "1F4DA" }, { "Typeface name": "Webdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128478", "Unicode hex": "1F5DE" }, { "Typeface name": "Webdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128479", "Unicode hex": "1F5DF" }, { "Typeface name": "Webdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128451", "Unicode hex": "1F5C3" }, { "Typeface name": "Webdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128450", "Unicode hex": "1F5C2" }, { "Typeface name": "Webdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128444", "Unicode hex": "1F5BC" }, { "Typeface name": "Webdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "127917", "Unicode hex": "1F3AD" }, { "Typeface name": "Webdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "127900", "Unicode hex": "1F39C" }, { "Typeface name": "Webdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "127896", "Unicode hex": "1F398" }, { "Typeface name": "Webdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "127897", "Unicode hex": "1F399" }, { "Typeface name": "Webdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "127911", "Unicode hex": "1F3A7" }, { "Typeface name": "Webdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128191", "Unicode hex": "1F4BF" }, { "Typeface name": "Webdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "127902", "Unicode hex": "1F39E" }, { "Typeface name": "Webdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128247", "Unicode hex": "1F4F7" }, { "Typeface name": "Webdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "127903", "Unicode hex": "1F39F" }, { "Typeface name": "Webdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "127916", "Unicode hex": "1F3AC" }, { "Typeface name": "Webdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128253", "Unicode hex": "1F4FD" }, { "Typeface name": "Webdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128249", "Unicode hex": "1F4F9" }, { "Typeface name": "Webdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128254", "Unicode hex": "1F4FE" }, { "Typeface name": "Webdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128251", "Unicode hex": "1F4FB" }, { "Typeface name": "Webdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "127898", "Unicode hex": "1F39A" }, { "Typeface name": "Webdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "127899", "Unicode hex": "1F39B" }, { "Typeface name": "Webdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128250", "Unicode hex": "1F4FA" }, { "Typeface name": "Webdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128187", "Unicode hex": "1F4BB" }, { "Typeface name": "Webdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128421", "Unicode hex": "1F5A5" }, { "Typeface name": "Webdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128422", "Unicode hex": "1F5A6" }, { "Typeface name": "Webdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128423", "Unicode hex": "1F5A7" }, { "Typeface name": "Webdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "128377", "Unicode hex": "1F579" }, { "Typeface name": "Webdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "127918", "Unicode hex": "1F3AE" }, { "Typeface name": "Webdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "128379", "Unicode hex": "1F57B" }, { "Typeface name": "Webdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128380", "Unicode hex": "1F57C" }, { "Typeface name": "Webdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128223", "Unicode hex": "1F4DF" }, { "Typeface name": "Webdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128385", "Unicode hex": "1F581" }, { "Typeface name": "Webdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128384", "Unicode hex": "1F580" }, { "Typeface name": "Webdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128424", "Unicode hex": "1F5A8" }, { "Typeface name": "Webdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128425", "Unicode hex": "1F5A9" }, { "Typeface name": "Webdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128447", "Unicode hex": "1F5BF" }, { "Typeface name": "Webdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128426", "Unicode hex": "1F5AA" }, { "Typeface name": "Webdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128476", "Unicode hex": "1F5DC" }, { "Typeface name": "Webdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128274", "Unicode hex": "1F512" }, { "Typeface name": "Webdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128275", "Unicode hex": "1F513" }, { "Typeface name": "Webdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128477", "Unicode hex": "1F5DD" }, { "Typeface name": "Webdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128229", "Unicode hex": "1F4E5" }, { "Typeface name": "Webdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128228", "Unicode hex": "1F4E4" }, { "Typeface name": "Webdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128371", "Unicode hex": "1F573" }, { "Typeface name": "Webdings", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "127779", "Unicode hex": "1F323" }, { "Typeface name": "Webdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "127780", "Unicode hex": "1F324" }, { "Typeface name": "Webdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "127781", "Unicode hex": "1F325" }, { "Typeface name": "Webdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "127782", "Unicode hex": "1F326" }, { "Typeface name": "Webdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "9729", "Unicode hex": "2601" }, { "Typeface name": "Webdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "127784", "Unicode hex": "1F328" }, { "Typeface name": "Webdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "127783", "Unicode hex": "1F327" }, { "Typeface name": "Webdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "127785", "Unicode hex": "1F329" }, { "Typeface name": "Webdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "127786", "Unicode hex": "1F32A" }, { "Typeface name": "Webdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "127788", "Unicode hex": "1F32C" }, { "Typeface name": "Webdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "127787", "Unicode hex": "1F32B" }, { "Typeface name": "Webdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "127772", "Unicode hex": "1F31C" }, { "Typeface name": "Webdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "127777", "Unicode hex": "1F321" }, { "Typeface name": "Webdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128715", "Unicode hex": "1F6CB" }, { "Typeface name": "Webdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128719", "Unicode hex": "1F6CF" }, { "Typeface name": "Webdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "127869", "Unicode hex": "1F37D" }, { "Typeface name": "Webdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "127864", "Unicode hex": "1F378" }, { "Typeface name": "Webdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128718", "Unicode hex": "1F6CE" }, { "Typeface name": "Webdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128717", "Unicode hex": "1F6CD" }, { "Typeface name": "Webdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9413", "Unicode hex": "24C5" }, { "Typeface name": "Webdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9855", "Unicode hex": "267F" }, { "Typeface name": "Webdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128710", "Unicode hex": "1F6C6" }, { "Typeface name": "Webdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "128392", "Unicode hex": "1F588" }, { "Typeface name": "Webdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "127891", "Unicode hex": "1F393" }, { "Typeface name": "Webdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128484", "Unicode hex": "1F5E4" }, { "Typeface name": "Webdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128485", "Unicode hex": "1F5E5" }, { "Typeface name": "Webdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128486", "Unicode hex": "1F5E6" }, { "Typeface name": "Webdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "128487", "Unicode hex": "1F5E7" }, { "Typeface name": "Webdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128746", "Unicode hex": "1F6EA" }, { "Typeface name": "Webdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128063", "Unicode hex": "1F43F" }, { "Typeface name": "Webdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "128038", "Unicode hex": "1F426" }, { "Typeface name": "Webdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128031", "Unicode hex": "1F41F" }, { "Typeface name": "Webdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128021", "Unicode hex": "1F415" }, { "Typeface name": "Webdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "128008", "Unicode hex": "1F408" }, { "Typeface name": "Webdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "128620", "Unicode hex": "1F66C" }, { "Typeface name": "Webdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "128622", "Unicode hex": "1F66E" }, { "Typeface name": "Webdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "128621", "Unicode hex": "1F66D" }, { "Typeface name": "Webdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "128623", "Unicode hex": "1F66F" }, { "Typeface name": "Webdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128506", "Unicode hex": "1F5FA" }, { "Typeface name": "Webdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "127757", "Unicode hex": "1F30D" }, { "Typeface name": "Webdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "127759", "Unicode hex": "1F30F" }, { "Typeface name": "Webdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "127758", "Unicode hex": "1F30E" }, { "Typeface name": "Webdings", "Dingbat dec": "255", "Dingbat hex": "FF", "Unicode dec": "128330", "Unicode hex": "1F54A" }, { "Typeface name": "Wingdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128393", "Unicode hex": "1F589" }, { "Typeface name": "Wingdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "9986", "Unicode hex": "2702" }, { "Typeface name": "Wingdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "9985", "Unicode hex": "2701" }, { "Typeface name": "Wingdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128083", "Unicode hex": "1F453" }, { "Typeface name": "Wingdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "128365", "Unicode hex": "1F56D" }, { "Typeface name": "Wingdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Wingdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128367", "Unicode hex": "1F56F" }, { "Typeface name": "Wingdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128383", "Unicode hex": "1F57F" }, { "Typeface name": "Wingdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "9990", "Unicode hex": "2706" }, { "Typeface name": "Wingdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128386", "Unicode hex": "1F582" }, { "Typeface name": "Wingdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Wingdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128234", "Unicode hex": "1F4EA" }, { "Typeface name": "Wingdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128235", "Unicode hex": "1F4EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128236", "Unicode hex": "1F4EC" }, { "Typeface name": "Wingdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128237", "Unicode hex": "1F4ED" }, { "Typeface name": "Wingdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128448", "Unicode hex": "1F5C0" }, { "Typeface name": "Wingdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128449", "Unicode hex": "1F5C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128462", "Unicode hex": "1F5CE" }, { "Typeface name": "Wingdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128463", "Unicode hex": "1F5CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128464", "Unicode hex": "1F5D0" }, { "Typeface name": "Wingdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128452", "Unicode hex": "1F5C4" }, { "Typeface name": "Wingdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "8987", "Unicode hex": "231B" }, { "Typeface name": "Wingdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128430", "Unicode hex": "1F5AE" }, { "Typeface name": "Wingdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128432", "Unicode hex": "1F5B0" }, { "Typeface name": "Wingdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128434", "Unicode hex": "1F5B2" }, { "Typeface name": "Wingdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128435", "Unicode hex": "1F5B3" }, { "Typeface name": "Wingdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128436", "Unicode hex": "1F5B4" }, { "Typeface name": "Wingdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128427", "Unicode hex": "1F5AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128428", "Unicode hex": "1F5AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "9991", "Unicode hex": "2707" }, { "Typeface name": "Wingdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "9997", "Unicode hex": "270D" }, { "Typeface name": "Wingdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128398", "Unicode hex": "1F58E" }, { "Typeface name": "Wingdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "9996", "Unicode hex": "270C" }, { "Typeface name": "Wingdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128399", "Unicode hex": "1F58F" }, { "Typeface name": "Wingdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128077", "Unicode hex": "1F44D" }, { "Typeface name": "Wingdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128078", "Unicode hex": "1F44E" }, { "Typeface name": "Wingdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "9756", "Unicode hex": "261C" }, { "Typeface name": "Wingdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "9758", "Unicode hex": "261E" }, { "Typeface name": "Wingdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "9757", "Unicode hex": "261D" }, { "Typeface name": "Wingdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "9759", "Unicode hex": "261F" }, { "Typeface name": "Wingdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128400", "Unicode hex": "1F590" }, { "Typeface name": "Wingdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "9786", "Unicode hex": "263A" }, { "Typeface name": "Wingdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128528", "Unicode hex": "1F610" }, { "Typeface name": "Wingdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "9785", "Unicode hex": "2639" }, { "Typeface name": "Wingdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128163", "Unicode hex": "1F4A3" }, { "Typeface name": "Wingdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128369", "Unicode hex": "1F571" }, { "Typeface name": "Wingdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "127987", "Unicode hex": "1F3F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127985", "Unicode hex": "1F3F1" }, { "Typeface name": "Wingdings", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "9992", "Unicode hex": "2708" }, { "Typeface name": "Wingdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9788", "Unicode hex": "263C" }, { "Typeface name": "Wingdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127778", "Unicode hex": "1F322" }, { "Typeface name": "Wingdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "10052", "Unicode hex": "2744" }, { "Typeface name": "Wingdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128326", "Unicode hex": "1F546" }, { "Typeface name": "Wingdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "10014", "Unicode hex": "271E" }, { "Typeface name": "Wingdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128328", "Unicode hex": "1F548" }, { "Typeface name": "Wingdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10016", "Unicode hex": "2720" }, { "Typeface name": "Wingdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "10017", "Unicode hex": "2721" }, { "Typeface name": "Wingdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "9770", "Unicode hex": "262A" }, { "Typeface name": "Wingdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "9775", "Unicode hex": "262F" }, { "Typeface name": "Wingdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128329", "Unicode hex": "1F549" }, { "Typeface name": "Wingdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "9784", "Unicode hex": "2638" }, { "Typeface name": "Wingdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "9800", "Unicode hex": "2648" }, { "Typeface name": "Wingdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "9801", "Unicode hex": "2649" }, { "Typeface name": "Wingdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "9802", "Unicode hex": "264A" }, { "Typeface name": "Wingdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "9803", "Unicode hex": "264B" }, { "Typeface name": "Wingdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "9804", "Unicode hex": "264C" }, { "Typeface name": "Wingdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "9805", "Unicode hex": "264D" }, { "Typeface name": "Wingdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "9806", "Unicode hex": "264E" }, { "Typeface name": "Wingdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "9807", "Unicode hex": "264F" }, { "Typeface name": "Wingdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "9808", "Unicode hex": "2650" }, { "Typeface name": "Wingdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "9809", "Unicode hex": "2651" }, { "Typeface name": "Wingdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "9810", "Unicode hex": "2652" }, { "Typeface name": "Wingdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9811", "Unicode hex": "2653" }, { "Typeface name": "Wingdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128624", "Unicode hex": "1F670" }, { "Typeface name": "Wingdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128629", "Unicode hex": "1F675" }, { "Typeface name": "Wingdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9899", "Unicode hex": "26AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128318", "Unicode hex": "1F53E" }, { "Typeface name": "Wingdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9724", "Unicode hex": "25FC" }, { "Typeface name": "Wingdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128911", "Unicode hex": "1F78F" }, { "Typeface name": "Wingdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128912", "Unicode hex": "1F790" }, { "Typeface name": "Wingdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "10065", "Unicode hex": "2751" }, { "Typeface name": "Wingdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "10066", "Unicode hex": "2752" }, { "Typeface name": "Wingdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "128927", "Unicode hex": "1F79F" }, { "Typeface name": "Wingdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "10731", "Unicode hex": "29EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9670", "Unicode hex": "25C6" }, { "Typeface name": "Wingdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10070", "Unicode hex": "2756" }, { "Typeface name": "Wingdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "8999", "Unicode hex": "2327" }, { "Typeface name": "Wingdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "11193", "Unicode hex": "2BB9" }, { "Typeface name": "Wingdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "8984", "Unicode hex": "2318" }, { "Typeface name": "Wingdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "127989", "Unicode hex": "1F3F5" }, { "Typeface name": "Wingdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "127990", "Unicode hex": "1F3F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128630", "Unicode hex": "1F676" }, { "Typeface name": "Wingdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128631", "Unicode hex": "1F677" }, { "Typeface name": "Wingdings", "Dingbat dec": "127", "Dingbat hex": "7F", "Unicode dec": "9647", "Unicode hex": "25AF" }, { "Typeface name": "Wingdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "127243", "Unicode hex": "1F10B" }, { "Typeface name": "Wingdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "10112", "Unicode hex": "2780" }, { "Typeface name": "Wingdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "10113", "Unicode hex": "2781" }, { "Typeface name": "Wingdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "10114", "Unicode hex": "2782" }, { "Typeface name": "Wingdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "10115", "Unicode hex": "2783" }, { "Typeface name": "Wingdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10116", "Unicode hex": "2784" }, { "Typeface name": "Wingdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "10117", "Unicode hex": "2785" }, { "Typeface name": "Wingdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "10118", "Unicode hex": "2786" }, { "Typeface name": "Wingdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "10119", "Unicode hex": "2787" }, { "Typeface name": "Wingdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "10120", "Unicode hex": "2788" }, { "Typeface name": "Wingdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "10121", "Unicode hex": "2789" }, { "Typeface name": "Wingdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127244", "Unicode hex": "1F10C" }, { "Typeface name": "Wingdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "10122", "Unicode hex": "278A" }, { "Typeface name": "Wingdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "10123", "Unicode hex": "278B" }, { "Typeface name": "Wingdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "10124", "Unicode hex": "278C" }, { "Typeface name": "Wingdings", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "10125", "Unicode hex": "278D" }, { "Typeface name": "Wingdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "10126", "Unicode hex": "278E" }, { "Typeface name": "Wingdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "10127", "Unicode hex": "278F" }, { "Typeface name": "Wingdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "10128", "Unicode hex": "2790" }, { "Typeface name": "Wingdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "10129", "Unicode hex": "2791" }, { "Typeface name": "Wingdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "10130", "Unicode hex": "2792" }, { "Typeface name": "Wingdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "10131", "Unicode hex": "2793" }, { "Typeface name": "Wingdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128610", "Unicode hex": "1F662" }, { "Typeface name": "Wingdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128608", "Unicode hex": "1F660" }, { "Typeface name": "Wingdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "128609", "Unicode hex": "1F661" }, { "Typeface name": "Wingdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128611", "Unicode hex": "1F663" }, { "Typeface name": "Wingdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128606", "Unicode hex": "1F65E" }, { "Typeface name": "Wingdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128604", "Unicode hex": "1F65C" }, { "Typeface name": "Wingdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128605", "Unicode hex": "1F65D" }, { "Typeface name": "Wingdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128607", "Unicode hex": "1F65F" }, { "Typeface name": "Wingdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "8729", "Unicode hex": "2219" }, { "Typeface name": "Wingdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Wingdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "11037", "Unicode hex": "2B1D" }, { "Typeface name": "Wingdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "11096", "Unicode hex": "2B58" }, { "Typeface name": "Wingdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128902", "Unicode hex": "1F786" }, { "Typeface name": "Wingdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128904", "Unicode hex": "1F788" }, { "Typeface name": "Wingdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128906", "Unicode hex": "1F78A" }, { "Typeface name": "Wingdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128907", "Unicode hex": "1F78B" }, { "Typeface name": "Wingdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128319", "Unicode hex": "1F53F" }, { "Typeface name": "Wingdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9642", "Unicode hex": "25AA" }, { "Typeface name": "Wingdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128910", "Unicode hex": "1F78E" }, { "Typeface name": "Wingdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128961", "Unicode hex": "1F7C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128965", "Unicode hex": "1F7C5" }, { "Typeface name": "Wingdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "9733", "Unicode hex": "2605" }, { "Typeface name": "Wingdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128971", "Unicode hex": "1F7CB" }, { "Typeface name": "Wingdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128975", "Unicode hex": "1F7CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "128979", "Unicode hex": "1F7D3" }, { "Typeface name": "Wingdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "128977", "Unicode hex": "1F7D1" }, { "Typeface name": "Wingdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "11216", "Unicode hex": "2BD0" }, { "Typeface name": "Wingdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "8982", "Unicode hex": "2316" }, { "Typeface name": "Wingdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "11214", "Unicode hex": "2BCE" }, { "Typeface name": "Wingdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "11215", "Unicode hex": "2BCF" }, { "Typeface name": "Wingdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "11217", "Unicode hex": "2BD1" }, { "Typeface name": "Wingdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "10026", "Unicode hex": "272A" }, { "Typeface name": "Wingdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "10032", "Unicode hex": "2730" }, { "Typeface name": "Wingdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "128336", "Unicode hex": "1F550" }, { "Typeface name": "Wingdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128337", "Unicode hex": "1F551" }, { "Typeface name": "Wingdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128338", "Unicode hex": "1F552" }, { "Typeface name": "Wingdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128339", "Unicode hex": "1F553" }, { "Typeface name": "Wingdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128340", "Unicode hex": "1F554" }, { "Typeface name": "Wingdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "128341", "Unicode hex": "1F555" }, { "Typeface name": "Wingdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "128342", "Unicode hex": "1F556" }, { "Typeface name": "Wingdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128343", "Unicode hex": "1F557" }, { "Typeface name": "Wingdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128344", "Unicode hex": "1F558" }, { "Typeface name": "Wingdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128345", "Unicode hex": "1F559" }, { "Typeface name": "Wingdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128346", "Unicode hex": "1F55A" }, { "Typeface name": "Wingdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128347", "Unicode hex": "1F55B" }, { "Typeface name": "Wingdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11184", "Unicode hex": "2BB0" }, { "Typeface name": "Wingdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11185", "Unicode hex": "2BB1" }, { "Typeface name": "Wingdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11186", "Unicode hex": "2BB2" }, { "Typeface name": "Wingdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "11187", "Unicode hex": "2BB3" }, { "Typeface name": "Wingdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "11188", "Unicode hex": "2BB4" }, { "Typeface name": "Wingdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "11189", "Unicode hex": "2BB5" }, { "Typeface name": "Wingdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11190", "Unicode hex": "2BB6" }, { "Typeface name": "Wingdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11191", "Unicode hex": "2BB7" }, { "Typeface name": "Wingdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128618", "Unicode hex": "1F66A" }, { "Typeface name": "Wingdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128619", "Unicode hex": "1F66B" }, { "Typeface name": "Wingdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128597", "Unicode hex": "1F655" }, { "Typeface name": "Wingdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128596", "Unicode hex": "1F654" }, { "Typeface name": "Wingdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128599", "Unicode hex": "1F657" }, { "Typeface name": "Wingdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128598", "Unicode hex": "1F656" }, { "Typeface name": "Wingdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128592", "Unicode hex": "1F650" }, { "Typeface name": "Wingdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128593", "Unicode hex": "1F651" }, { "Typeface name": "Wingdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128594", "Unicode hex": "1F652" }, { "Typeface name": "Wingdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128595", "Unicode hex": "1F653" }, { "Typeface name": "Wingdings", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "9003", "Unicode hex": "232B" }, { "Typeface name": "Wingdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8998", "Unicode hex": "2326" }, { "Typeface name": "Wingdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "11160", "Unicode hex": "2B98" }, { "Typeface name": "Wingdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "11162", "Unicode hex": "2B9A" }, { "Typeface name": "Wingdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "11161", "Unicode hex": "2B99" }, { "Typeface name": "Wingdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "11163", "Unicode hex": "2B9B" }, { "Typeface name": "Wingdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "11144", "Unicode hex": "2B88" }, { "Typeface name": "Wingdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "11146", "Unicode hex": "2B8A" }, { "Typeface name": "Wingdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "11145", "Unicode hex": "2B89" }, { "Typeface name": "Wingdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "11147", "Unicode hex": "2B8B" }, { "Typeface name": "Wingdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129128", "Unicode hex": "1F868" }, { "Typeface name": "Wingdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129130", "Unicode hex": "1F86A" }, { "Typeface name": "Wingdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129129", "Unicode hex": "1F869" }, { "Typeface name": "Wingdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129131", "Unicode hex": "1F86B" }, { "Typeface name": "Wingdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129132", "Unicode hex": "1F86C" }, { "Typeface name": "Wingdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129133", "Unicode hex": "1F86D" }, { "Typeface name": "Wingdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129135", "Unicode hex": "1F86F" }, { "Typeface name": "Wingdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129134", "Unicode hex": "1F86E" }, { "Typeface name": "Wingdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129144", "Unicode hex": "1F878" }, { "Typeface name": "Wingdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129146", "Unicode hex": "1F87A" }, { "Typeface name": "Wingdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129145", "Unicode hex": "1F879" }, { "Typeface name": "Wingdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129147", "Unicode hex": "1F87B" }, { "Typeface name": "Wingdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129148", "Unicode hex": "1F87C" }, { "Typeface name": "Wingdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129149", "Unicode hex": "1F87D" }, { "Typeface name": "Wingdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129151", "Unicode hex": "1F87F" }, { "Typeface name": "Wingdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129150", "Unicode hex": "1F87E" }, { "Typeface name": "Wingdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "8678", "Unicode hex": "21E6" }, { "Typeface name": "Wingdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "8680", "Unicode hex": "21E8" }, { "Typeface name": "Wingdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "8679", "Unicode hex": "21E7" }, { "Typeface name": "Wingdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8681", "Unicode hex": "21E9" }, { "Typeface name": "Wingdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "11012", "Unicode hex": "2B04" }, { "Typeface name": "Wingdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "8691", "Unicode hex": "21F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "11009", "Unicode hex": "2B01" }, { "Typeface name": "Wingdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11008", "Unicode hex": "2B00" }, { "Typeface name": "Wingdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11011", "Unicode hex": "2B03" }, { "Typeface name": "Wingdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "11010", "Unicode hex": "2B02" }, { "Typeface name": "Wingdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "129196", "Unicode hex": "1F8AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "129197", "Unicode hex": "1F8AD" }, { "Typeface name": "Wingdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128502", "Unicode hex": "1F5F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "10003", "Unicode hex": "2713" }, { "Typeface name": "Wingdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "128503", "Unicode hex": "1F5F7" }, { "Typeface name": "Wingdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "128505", "Unicode hex": "1F5F9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128394", "Unicode hex": "1F58A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128395", "Unicode hex": "1F58B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128396", "Unicode hex": "1F58C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128397", "Unicode hex": "1F58D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "9988", "Unicode hex": "2704" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "9984", "Unicode hex": "2700" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128382", "Unicode hex": "1F57E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128381", "Unicode hex": "1F57D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128453", "Unicode hex": "1F5C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128454", "Unicode hex": "1F5C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128455", "Unicode hex": "1F5C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128456", "Unicode hex": "1F5C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128457", "Unicode hex": "1F5C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128458", "Unicode hex": "1F5CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128459", "Unicode hex": "1F5CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128460", "Unicode hex": "1F5CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128461", "Unicode hex": "1F5CD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128203", "Unicode hex": "1F4CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128465", "Unicode hex": "1F5D1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128468", "Unicode hex": "1F5D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128437", "Unicode hex": "1F5B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "128438", "Unicode hex": "1F5B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128439", "Unicode hex": "1F5B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128440", "Unicode hex": "1F5B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128429", "Unicode hex": "1F5AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128431", "Unicode hex": "1F5AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128433", "Unicode hex": "1F5B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128402", "Unicode hex": "1F592" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128403", "Unicode hex": "1F593" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128408", "Unicode hex": "1F598" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128409", "Unicode hex": "1F599" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128410", "Unicode hex": "1F59A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "128411", "Unicode hex": "1F59B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128072", "Unicode hex": "1F448" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128073", "Unicode hex": "1F449" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128412", "Unicode hex": "1F59C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "128413", "Unicode hex": "1F59D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "128414", "Unicode hex": "1F59E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "128415", "Unicode hex": "1F59F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "128416", "Unicode hex": "1F5A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128417", "Unicode hex": "1F5A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "128070", "Unicode hex": "1F446" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128071", "Unicode hex": "1F447" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128418", "Unicode hex": "1F5A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128419", "Unicode hex": "1F5A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128401", "Unicode hex": "1F591" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128500", "Unicode hex": "1F5F4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "128504", "Unicode hex": "1F5F8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "128501", "Unicode hex": "1F5F5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9745", "Unicode hex": "2611" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "11197", "Unicode hex": "2BBD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "9746", "Unicode hex": "2612" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "11198", "Unicode hex": "2BBE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "11199", "Unicode hex": "2BBF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128711", "Unicode hex": "1F6C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "128625", "Unicode hex": "1F671" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "128628", "Unicode hex": "1F674" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128626", "Unicode hex": "1F672" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128627", "Unicode hex": "1F673" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "8253", "Unicode hex": "203D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128633", "Unicode hex": "1F679" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128634", "Unicode hex": "1F67A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "128635", "Unicode hex": "1F67B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "128614", "Unicode hex": "1F666" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128612", "Unicode hex": "1F664" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "128613", "Unicode hex": "1F665" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128615", "Unicode hex": "1F667" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128602", "Unicode hex": "1F65A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128600", "Unicode hex": "1F658" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "128601", "Unicode hex": "1F659" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128603", "Unicode hex": "1F65B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9450", "Unicode hex": "24EA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "9312", "Unicode hex": "2460" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "9313", "Unicode hex": "2461" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9314", "Unicode hex": "2462" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "9315", "Unicode hex": "2463" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9316", "Unicode hex": "2464" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "9317", "Unicode hex": "2465" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9318", "Unicode hex": "2466" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9319", "Unicode hex": "2467" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9320", "Unicode hex": "2468" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9321", "Unicode hex": "2469" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9471", "Unicode hex": "24FF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "10102", "Unicode hex": "2776" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10103", "Unicode hex": "2777" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "10104", "Unicode hex": "2778" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10105", "Unicode hex": "2779" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "10106", "Unicode hex": "277A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "10107", "Unicode hex": "277B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "10108", "Unicode hex": "277C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "10109", "Unicode hex": "277D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "10110", "Unicode hex": "277E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "10111", "Unicode hex": "277F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "9737", "Unicode hex": "2609" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "127765", "Unicode hex": "1F315" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "9789", "Unicode hex": "263D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "9790", "Unicode hex": "263E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11839", "Unicode hex": "2E3F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10013", "Unicode hex": "271D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "128327", "Unicode hex": "1F547" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "128348", "Unicode hex": "1F55C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "128349", "Unicode hex": "1F55D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "128350", "Unicode hex": "1F55E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "128351", "Unicode hex": "1F55F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "128352", "Unicode hex": "1F560" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "128353", "Unicode hex": "1F561" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "128354", "Unicode hex": "1F562" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128355", "Unicode hex": "1F563" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128356", "Unicode hex": "1F564" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128357", "Unicode hex": "1F565" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128358", "Unicode hex": "1F566" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "128359", "Unicode hex": "1F567" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128616", "Unicode hex": "1F668" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128617", "Unicode hex": "1F669" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128900", "Unicode hex": "1F784" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "10625", "Unicode hex": "2981" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "9679", "Unicode hex": "25CF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "9675", "Unicode hex": "25CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128901", "Unicode hex": "1F785" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128903", "Unicode hex": "1F787" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128905", "Unicode hex": "1F789" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "8857", "Unicode hex": "2299" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "10687", "Unicode hex": "29BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128908", "Unicode hex": "1F78C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128909", "Unicode hex": "1F78D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "9726", "Unicode hex": "25FE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "9632", "Unicode hex": "25A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "9633", "Unicode hex": "25A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128913", "Unicode hex": "1F791" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128914", "Unicode hex": "1F792" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128915", "Unicode hex": "1F793" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128916", "Unicode hex": "1F794" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9635", "Unicode hex": "25A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128917", "Unicode hex": "1F795" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128918", "Unicode hex": "1F796" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128919", "Unicode hex": "1F797" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128920", "Unicode hex": "1F798" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "11045", "Unicode hex": "2B25" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "9671", "Unicode hex": "25C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "128922", "Unicode hex": "1F79A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "9672", "Unicode hex": "25C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "128923", "Unicode hex": "1F79B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128924", "Unicode hex": "1F79C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "128925", "Unicode hex": "1F79D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128926", "Unicode hex": "1F79E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "11050", "Unicode hex": "2B2A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "11047", "Unicode hex": "2B27" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128928", "Unicode hex": "1F7A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "9686", "Unicode hex": "25D6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "9687", "Unicode hex": "25D7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "11210", "Unicode hex": "2BCA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "11211", "Unicode hex": "2BCB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "11200", "Unicode hex": "2BC0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "11201", "Unicode hex": "2BC1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "11039", "Unicode hex": "2B1F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "11202", "Unicode hex": "2BC2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "11043", "Unicode hex": "2B23" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11042", "Unicode hex": "2B22" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11203", "Unicode hex": "2BC3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11204", "Unicode hex": "2BC4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128929", "Unicode hex": "1F7A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128930", "Unicode hex": "1F7A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128931", "Unicode hex": "1F7A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128932", "Unicode hex": "1F7A4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128933", "Unicode hex": "1F7A5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128934", "Unicode hex": "1F7A6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128935", "Unicode hex": "1F7A7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128936", "Unicode hex": "1F7A8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128937", "Unicode hex": "1F7A9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128938", "Unicode hex": "1F7AA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128939", "Unicode hex": "1F7AB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128940", "Unicode hex": "1F7AC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128941", "Unicode hex": "1F7AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128942", "Unicode hex": "1F7AE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128943", "Unicode hex": "1F7AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "128944", "Unicode hex": "1F7B0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "128945", "Unicode hex": "1F7B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "128946", "Unicode hex": "1F7B2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "128947", "Unicode hex": "1F7B3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "128948", "Unicode hex": "1F7B4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "128949", "Unicode hex": "1F7B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "128950", "Unicode hex": "1F7B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "128951", "Unicode hex": "1F7B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "128952", "Unicode hex": "1F7B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "128953", "Unicode hex": "1F7B9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "128954", "Unicode hex": "1F7BA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "128955", "Unicode hex": "1F7BB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "128956", "Unicode hex": "1F7BC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128957", "Unicode hex": "1F7BD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128958", "Unicode hex": "1F7BE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "128959", "Unicode hex": "1F7BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "128960", "Unicode hex": "1F7C0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128962", "Unicode hex": "1F7C2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128964", "Unicode hex": "1F7C4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "128966", "Unicode hex": "1F7C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "128969", "Unicode hex": "1F7C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128970", "Unicode hex": "1F7CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "10038", "Unicode hex": "2736" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "128972", "Unicode hex": "1F7CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128974", "Unicode hex": "1F7CE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128976", "Unicode hex": "1F7D0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128978", "Unicode hex": "1F7D2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "10041", "Unicode hex": "2739" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128963", "Unicode hex": "1F7C3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128967", "Unicode hex": "1F7C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128973", "Unicode hex": "1F7CD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128980", "Unicode hex": "1F7D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11212", "Unicode hex": "2BCC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11213", "Unicode hex": "2BCD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "8251", "Unicode hex": "203B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "8258", "Unicode hex": "2042" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "11104", "Unicode hex": "2B60" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "11106", "Unicode hex": "2B62" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "11105", "Unicode hex": "2B61" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "11107", "Unicode hex": "2B63" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "11110", "Unicode hex": "2B66" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "11111", "Unicode hex": "2B67" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "11113", "Unicode hex": "2B69" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "11112", "Unicode hex": "2B68" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "11120", "Unicode hex": "2B70" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "11122", "Unicode hex": "2B72" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "11121", "Unicode hex": "2B71" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "11123", "Unicode hex": "2B73" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "11126", "Unicode hex": "2B76" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "11128", "Unicode hex": "2B78" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "11131", "Unicode hex": "2B7B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "11133", "Unicode hex": "2B7D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "11108", "Unicode hex": "2B64" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "11109", "Unicode hex": "2B65" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "11114", "Unicode hex": "2B6A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "11116", "Unicode hex": "2B6C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "11115", "Unicode hex": "2B6B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "11117", "Unicode hex": "2B6D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "11085", "Unicode hex": "2B4D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "11168", "Unicode hex": "2BA0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "11169", "Unicode hex": "2BA1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "11170", "Unicode hex": "2BA2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "11171", "Unicode hex": "2BA3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "11172", "Unicode hex": "2BA4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "11173", "Unicode hex": "2BA5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "11174", "Unicode hex": "2BA6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "11175", "Unicode hex": "2BA7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "11152", "Unicode hex": "2B90" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "11153", "Unicode hex": "2B91" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "11154", "Unicode hex": "2B92" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "11155", "Unicode hex": "2B93" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "11136", "Unicode hex": "2B80" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "11139", "Unicode hex": "2B83" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "11134", "Unicode hex": "2B7E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "11135", "Unicode hex": "2B7F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "11140", "Unicode hex": "2B84" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "11142", "Unicode hex": "2B86" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "11141", "Unicode hex": "2B85" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "11143", "Unicode hex": "2B87" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "11151", "Unicode hex": "2B8F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "11149", "Unicode hex": "2B8D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "11150", "Unicode hex": "2B8E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "11148", "Unicode hex": "2B8C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "11118", "Unicode hex": "2B6E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "11119", "Unicode hex": "2B6F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9099", "Unicode hex": "238B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "8996", "Unicode hex": "2324" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "8963", "Unicode hex": "2303" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "8997", "Unicode hex": "2325" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "9251", "Unicode hex": "2423" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "9085", "Unicode hex": "237D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "8682", "Unicode hex": "21EA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "11192", "Unicode hex": "2BB8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "129184", "Unicode hex": "1F8A0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "129185", "Unicode hex": "1F8A1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "129186", "Unicode hex": "1F8A2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "129187", "Unicode hex": "1F8A3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "129188", "Unicode hex": "1F8A4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "129189", "Unicode hex": "1F8A5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "129190", "Unicode hex": "1F8A6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "129191", "Unicode hex": "1F8A7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "129192", "Unicode hex": "1F8A8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "129193", "Unicode hex": "1F8A9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "129194", "Unicode hex": "1F8AA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "129195", "Unicode hex": "1F8AB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "129104", "Unicode hex": "1F850" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "129106", "Unicode hex": "1F852" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "129105", "Unicode hex": "1F851" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "129107", "Unicode hex": "1F853" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "129108", "Unicode hex": "1F854" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "129109", "Unicode hex": "1F855" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "129111", "Unicode hex": "1F857" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "129110", "Unicode hex": "1F856" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "129112", "Unicode hex": "1F858" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "129113", "Unicode hex": "1F859" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9650", "Unicode hex": "25B2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9660", "Unicode hex": "25BC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9651", "Unicode hex": "25B3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9661", "Unicode hex": "25BD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9664", "Unicode hex": "25C0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9654", "Unicode hex": "25B6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "9665", "Unicode hex": "25C1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9655", "Unicode hex": "25B7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "9699", "Unicode hex": "25E3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "9698", "Unicode hex": "25E2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "9700", "Unicode hex": "25E4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "9701", "Unicode hex": "25E5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "128896", "Unicode hex": "1F780" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128898", "Unicode hex": "1F782" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128897", "Unicode hex": "1F781" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128899", "Unicode hex": "1F783" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "11205", "Unicode hex": "2BC5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "11206", "Unicode hex": "2BC6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "11207", "Unicode hex": "2BC7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11208", "Unicode hex": "2BC8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "11164", "Unicode hex": "2B9C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "11166", "Unicode hex": "2B9E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "11165", "Unicode hex": "2B9D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "11167", "Unicode hex": "2B9F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "129040", "Unicode hex": "1F810" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "129042", "Unicode hex": "1F812" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "129041", "Unicode hex": "1F811" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "129043", "Unicode hex": "1F813" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "129044", "Unicode hex": "1F814" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "129046", "Unicode hex": "1F816" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "129045", "Unicode hex": "1F815" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "129047", "Unicode hex": "1F817" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "129048", "Unicode hex": "1F818" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "129050", "Unicode hex": "1F81A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "129049", "Unicode hex": "1F819" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "129051", "Unicode hex": "1F81B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "129052", "Unicode hex": "1F81C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "129054", "Unicode hex": "1F81E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "129053", "Unicode hex": "1F81D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "129055", "Unicode hex": "1F81F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "129024", "Unicode hex": "1F800" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "129026", "Unicode hex": "1F802" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "129025", "Unicode hex": "1F801" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "129027", "Unicode hex": "1F803" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "129028", "Unicode hex": "1F804" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "129030", "Unicode hex": "1F806" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "129029", "Unicode hex": "1F805" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "129031", "Unicode hex": "1F807" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "129032", "Unicode hex": "1F808" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "129034", "Unicode hex": "1F80A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "129033", "Unicode hex": "1F809" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "129035", "Unicode hex": "1F80B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "129056", "Unicode hex": "1F820" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "129058", "Unicode hex": "1F822" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "129060", "Unicode hex": "1F824" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "129062", "Unicode hex": "1F826" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "129064", "Unicode hex": "1F828" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "129066", "Unicode hex": "1F82A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "129068", "Unicode hex": "1F82C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "129180", "Unicode hex": "1F89C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "129181", "Unicode hex": "1F89D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "129182", "Unicode hex": "1F89E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "129183", "Unicode hex": "1F89F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "129070", "Unicode hex": "1F82E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "129072", "Unicode hex": "1F830" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "129074", "Unicode hex": "1F832" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "129076", "Unicode hex": "1F834" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "129078", "Unicode hex": "1F836" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "129080", "Unicode hex": "1F838" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "129082", "Unicode hex": "1F83A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "129081", "Unicode hex": "1F839" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "129083", "Unicode hex": "1F83B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "129176", "Unicode hex": "1F898" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "129178", "Unicode hex": "1F89A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "129177", "Unicode hex": "1F899" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "129179", "Unicode hex": "1F89B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "129084", "Unicode hex": "1F83C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "129086", "Unicode hex": "1F83E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "129085", "Unicode hex": "1F83D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "129087", "Unicode hex": "1F83F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "129088", "Unicode hex": "1F840" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "129090", "Unicode hex": "1F842" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "129089", "Unicode hex": "1F841" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "129091", "Unicode hex": "1F843" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "129092", "Unicode hex": "1F844" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "129094", "Unicode hex": "1F846" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "129093", "Unicode hex": "1F845" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "129095", "Unicode hex": "1F847" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11176", "Unicode hex": "2BA8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11177", "Unicode hex": "2BA9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "11178", "Unicode hex": "2BAA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "11179", "Unicode hex": "2BAB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "11180", "Unicode hex": "2BAC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "11181", "Unicode hex": "2BAD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "11182", "Unicode hex": "2BAE" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "11183", "Unicode hex": "2BAF" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "129120", "Unicode hex": "1F860" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "129122", "Unicode hex": "1F862" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "129121", "Unicode hex": "1F861" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "129123", "Unicode hex": "1F863" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "129124", "Unicode hex": "1F864" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "129125", "Unicode hex": "1F865" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "129127", "Unicode hex": "1F867" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "129126", "Unicode hex": "1F866" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "129136", "Unicode hex": "1F870" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "129138", "Unicode hex": "1F872" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "129137", "Unicode hex": "1F871" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "129139", "Unicode hex": "1F873" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "129140", "Unicode hex": "1F874" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "129141", "Unicode hex": "1F875" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129143", "Unicode hex": "1F877" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129142", "Unicode hex": "1F876" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129152", "Unicode hex": "1F880" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129154", "Unicode hex": "1F882" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129153", "Unicode hex": "1F881" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129155", "Unicode hex": "1F883" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129156", "Unicode hex": "1F884" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129157", "Unicode hex": "1F885" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129159", "Unicode hex": "1F887" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129158", "Unicode hex": "1F886" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129168", "Unicode hex": "1F890" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129170", "Unicode hex": "1F892" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129169", "Unicode hex": "1F891" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129171", "Unicode hex": "1F893" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129172", "Unicode hex": "1F894" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129174", "Unicode hex": "1F896" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "129173", "Unicode hex": "1F895" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "129175", "Unicode hex": "1F897" }]; exports["default"] = dingbats }, {}], 81: [function (require, module, exports) { "use strict"; function codePoint(typeface, codePoint) { return dingbatsByCodePoint[typeface.toUpperCase() + "_" + codePoint] } function dec(typeface, dec) { return codePoint(typeface, parseInt(dec, 10)) } function hex(typeface, hex) { return codePoint(typeface, parseInt(hex, 16)) } function fromCodePointPolyfill(codePoint) { if (65535 >= codePoint) return String.fromCharCode(codePoint); var highSurrogate = Math.floor((codePoint - 65536) / 1024) + 55296, lowSurrogate = (codePoint - 65536) % 1024 + 56320; return String.fromCharCode(highSurrogate, lowSurrogate) } var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : {"default": mod} }; Object.defineProperty(exports, "__esModule", {value: !0}), exports.hex = exports.dec = exports.codePoint = void 0; for (var dingbats_1 = __importDefault(require("./dingbats")), dingbatsByCodePoint = {}, fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill, _i = 0, dingbats_2 = dingbats_1["default"]; _i < dingbats_2.length; _i++) { var dingbat = dingbats_2[_i], codePoint_1 = parseInt(dingbat["Unicode dec"], 10), scalarValue = {codePoint: codePoint_1, string: fromCodePoint(codePoint_1)}; dingbatsByCodePoint[dingbat["Typeface name"].toUpperCase() + "_" + dingbat["Dingbat dec"]] = scalarValue } exports.codePoint = codePoint, exports.dec = dec, exports.hex = hex }, {"./dingbats": 80}], 82: [function (require, module, exports) { function EventEmitter() { this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0 } function isFunction(arg) { return "function" == typeof arg } function isNumber(arg) { return "number" == typeof arg } function isObject(arg) { return "object" == typeof arg && null !== arg } function isUndefined(arg) { return void 0 === arg } module.exports = EventEmitter, EventEmitter.EventEmitter = EventEmitter, EventEmitter.prototype._events = void 0, EventEmitter.prototype._maxListeners = void 0, EventEmitter.defaultMaxListeners = 10, EventEmitter.prototype.setMaxListeners = function (n) { if (!isNumber(n) || 0 > n || isNaN(n)) throw TypeError("n must be a positive number"); return this._maxListeners = n, this }, EventEmitter.prototype.emit = function (type) { var er, handler, len, args, i, listeners; if (this._events || (this._events = {}), "error" === type && (!this._events.error || isObject(this._events.error) && !this._events.error.length)) { if (er = arguments[1], er instanceof Error) throw er; var err = new Error('Uncaught, unspecified "error" event. (' + er + ")"); throw err.context = er, err } if (handler = this._events[type], isUndefined(handler)) return !1; if (isFunction(handler)) switch (arguments.length) { case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; default: args = Array.prototype.slice.call(arguments, 1), handler.apply(this, args) } else if (isObject(handler)) for (args = Array.prototype.slice.call(arguments, 1), listeners = handler.slice(), len = listeners.length, i = 0; len > i; i++) listeners[i].apply(this, args); return !0 }, EventEmitter.prototype.addListener = function (type, listener) { var m; if (!isFunction(listener)) throw TypeError("listener must be a function"); return this._events || (this._events = {}), this._events.newListener && this.emit("newListener", type, isFunction(listener.listener) ? listener.listener : listener), this._events[type] ? isObject(this._events[type]) ? this._events[type].push(listener) : this._events[type] = [this._events[type], listener] : this._events[type] = listener, isObject(this._events[type]) && !this._events[type].warned && (m = isUndefined(this._maxListeners) ? EventEmitter.defaultMaxListeners : this._maxListeners, m && m > 0 && this._events[type].length > m && (this._events[type].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[type].length), "function" == typeof console.trace && console.trace())), this }, EventEmitter.prototype.on = EventEmitter.prototype.addListener, EventEmitter.prototype.once = function (type, listener) { function g() { this.removeListener(type, g), fired || (fired = !0, listener.apply(this, arguments)) } if (!isFunction(listener)) throw TypeError("listener must be a function"); var fired = !1; return g.listener = listener, this.on(type, g), this }, EventEmitter.prototype.removeListener = function (type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError("listener must be a function"); if (!this._events || !this._events[type]) return this; if (list = this._events[type], length = list.length, position = -1, list === listener || isFunction(list.listener) && list.listener === listener) delete this._events[type], this._events.removeListener && this.emit("removeListener", type, listener); else if (isObject(list)) { for (i = length; i-- > 0;) if (list[i] === listener || list[i].listener && list[i].listener === listener) { position = i; break } if (0 > position) return this; 1 === list.length ? (list.length = 0, delete this._events[type]) : list.splice(position, 1), this._events.removeListener && this.emit("removeListener", type, listener) } return this }, EventEmitter.prototype.removeAllListeners = function (type) { var key, listeners; if (!this._events) return this; if (!this._events.removeListener) return 0 === arguments.length ? this._events = {} : this._events[type] && delete this._events[type], this; if (0 === arguments.length) { for (key in this._events) "removeListener" !== key && this.removeAllListeners(key); return this.removeAllListeners("removeListener"), this._events = {}, this } if (listeners = this._events[type], isFunction(listeners)) this.removeListener(type, listeners); else if (listeners) for (; listeners.length;) this.removeListener(type, listeners[listeners.length - 1]); return delete this._events[type], this }, EventEmitter.prototype.listeners = function (type) { var ret; return ret = this._events && this._events[type] ? isFunction(this._events[type]) ? [this._events[type]] : this._events[type].slice() : [] }, EventEmitter.prototype.listenerCount = function (type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; if (evlistener) return evlistener.length } return 0 }, EventEmitter.listenerCount = function (emitter, type) { return emitter.listenerCount(type) } }, {}], 83: [function (require, module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, nBits = -7, i = isLE ? nBytes - 1 : 0, d = isLE ? -1 : 1, s = buffer[offset + i]; for (i += d, e = s & (1 << -nBits) - 1, s >>= -nBits, nBits += eLen; nBits > 0; e = 256 * e + buffer[offset + i], i += d, nBits -= 8) ; for (m = e & (1 << -nBits) - 1, e >>= -nBits, nBits += mLen; nBits > 0; m = 256 * m + buffer[offset + i], i += d, nBits -= 8) ; if (0 === e) e = 1 - eBias; else { if (e === eMax) return m ? NaN : (s ? -1 : 1) * (1 / 0); m += Math.pow(2, mLen), e -= eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) }, exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, rt = 23 === mLen ? Math.pow(2, -24) - Math.pow(2, -77) : 0, i = isLE ? 0 : nBytes - 1, d = isLE ? 1 : -1, s = 0 > value || 0 === value && 0 > 1 / value ? 1 : 0; for (value = Math.abs(value), isNaN(value) || value === 1 / 0 ? (m = isNaN(value) ? 1 : 0, e = eMax) : (e = Math.floor(Math.log(value) / Math.LN2), value * (c = Math.pow(2, -e)) < 1 && (e--, c *= 2), value += e + eBias >= 1 ? rt / c : rt * Math.pow(2, 1 - eBias), value * c >= 2 && (e++, c /= 2), e + eBias >= eMax ? (m = 0, e = eMax) : e + eBias >= 1 ? (m = (value * c - 1) * Math.pow(2, mLen), e += eBias) : (m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen), e = 0)); mLen >= 8; buffer[offset + i] = 255 & m, i += d, m /= 256, mLen -= 8) ; for (e = e << mLen | m, eLen += mLen; eLen > 0; buffer[offset + i] = 255 & e, i += d, e /= 256, eLen -= 8) ; buffer[offset + i - d] |= 128 * s } }, {}], 84: [function (require, module, exports) { "function" == typeof Object.create ? module.exports = function (ctor, superCtor) { ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: !1, writable: !0, configurable: !0 } }) } : module.exports = function (ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () { }; TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor } }, {}], 85: [function (require, module, exports) { function isBuffer(obj) { return !!obj.constructor && "function" == typeof obj.constructor.isBuffer && obj.constructor.isBuffer(obj) } function isSlowBuffer(obj) { return "function" == typeof obj.readFloatLE && "function" == typeof obj.slice && isBuffer(obj.slice(0, 0)) } module.exports = function (obj) { return null != obj && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) } }, {}], 86: [function (require, module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return "[object Array]" == toString.call(arr) } }, {}], 87: [function (require, module, exports) { (function (global, Buffer) { !function (t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).JSZip = t() }(function () { return function s(a, o, h) { function u(r, t) { if (!o[r]) { if (!a[r]) { var e = "function" == typeof require && require; if (!t && e) return e(r, !0); if (l) return l(r, !0); var i = new Error("Cannot find module '" + r + "'"); throw i.code = "MODULE_NOT_FOUND", i } var n = o[r] = {exports: {}}; a[r][0].call(n.exports, function (t) { var e = a[r][1][t]; return u(e || t) }, n, n.exports, s, a, o, h) } return o[r].exports } for (var l = "function" == typeof require && require, t = 0; t < h.length; t++) u(h[t]); return u }({ 1: [function (t, e, r) { "use strict"; var c = t("./utils"), d = t("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; r.encode = function (t) { for (var e, r, i, n, s, a, o, h = [], u = 0, l = t.length, f = l, d = "string" !== c.getTypeOf(t); u < t.length;) f = l - u, i = d ? (e = t[u++], r = l > u ? t[u++] : 0, l > u ? t[u++] : 0) : (e = t.charCodeAt(u++), r = l > u ? t.charCodeAt(u++) : 0, l > u ? t.charCodeAt(u++) : 0), n = e >> 2, s = (3 & e) << 4 | r >> 4, a = f > 1 ? (15 & r) << 2 | i >> 6 : 64, o = f > 2 ? 63 & i : 64, h.push(p.charAt(n) + p.charAt(s) + p.charAt(a) + p.charAt(o)); return h.join("") }, r.decode = function (t) { var e, r, i, n, s, a, o = 0, h = 0, u = "data:"; if (t.substr(0, u.length) === u) throw new Error("Invalid base64 input, it looks like a data url."); var l, f = 3 * (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, "")).length / 4; if (t.charAt(t.length - 1) === p.charAt(64) && f--, t.charAt(t.length - 2) === p.charAt(64) && f--, f % 1 != 0) throw new Error("Invalid base64 input, bad content length."); for (l = d.uint8array ? new Uint8Array(0 | f) : new Array(0 | f); o < t.length;) e = p.indexOf(t.charAt(o++)) << 2 | (n = p.indexOf(t.charAt(o++))) >> 4, r = (15 & n) << 4 | (s = p.indexOf(t.charAt(o++))) >> 2, i = (3 & s) << 6 | (a = p.indexOf(t.charAt(o++))), l[h++] = e, 64 !== s && (l[h++] = r), 64 !== a && (l[h++] = i); return l } }, {"./support": 30, "./utils": 32}], 2: [function (t, e, r) { "use strict"; function o(t, e, r, i, n) { this.compressedSize = t, this.uncompressedSize = e, this.crc32 = r, this.compression = i, this.compressedContent = n } var i = t("./external"), n = t("./stream/DataWorker"), s = t("./stream/Crc32Probe"), a = t("./stream/DataLengthProbe"); o.prototype = { getContentWorker: function () { var t = new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")), e = this; return t.on("end", function () { if (this.streamInfo.data_length !== e.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch") }), t }, getCompressedWorker: function () { return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression) } }, o.createWorkerFrom = function (t, e, r) { return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression", e) }, e.exports = o }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function (t, e, r) { "use strict"; var i = t("./stream/GenericWorker"); r.STORE = { magic: "\x00\x00", compressWorker: function (t) { return new i("STORE compression") }, uncompressWorker: function () { return new i("STORE decompression") } }, r.DEFLATE = t("./flate") }, {"./flate": 7, "./stream/GenericWorker": 28}], 4: [function (t, e, r) { "use strict"; var i = t("./utils"), o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++) t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e) { return void 0 !== t && t.length ? "string" !== i.getTypeOf(t) ? function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++) t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t }(0 | e, t, t.length, 0) : function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++) t = t >>> 8 ^ n[255 & (t ^ e.charCodeAt(a))]; return -1 ^ t }(0 | e, t, t.length, 0) : 0 } }, {"./utils": 32}], 5: [function (t, e, r) { "use strict"; r.base64 = !1, r.binary = !1, r.dir = !1, r.createFolders = !0, r.date = null, r.compression = null, r.compressionOptions = null, r.comment = null, r.unixPermissions = null, r.dosPermissions = null }, {}], 6: [function (t, e, r) { "use strict"; var i = null; i = "undefined" != typeof Promise ? Promise : t("lie"), e.exports = {Promise: i} }, {lie: 37}], 7: [function (t, e, r) { "use strict"; function h(t, e) { a.call(this, "FlateWorker/" + t), this._pako = null, this._pakoAction = t, this._pakoOptions = e, this.meta = {} } var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, n = t("pako"), s = t("./utils"), a = t("./stream/GenericWorker"), o = i ? "uint8array" : "array"; r.magic = "\b\x00", s.inherits(h, a), h.prototype.processChunk = function (t) { this.meta = t.meta, null === this._pako && this._createPako(), this._pako.push(s.transformTo(o, t.data), !1) }, h.prototype.flush = function () { a.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], !0) }, h.prototype.cleanUp = function () { a.prototype.cleanUp.call(this), this._pako = null }, h.prototype._createPako = function () { this._pako = new n[this._pakoAction]({raw: !0, level: this._pakoOptions.level || -1}); var e = this; this._pako.onData = function (t) { e.push({data: t, meta: e.meta}) } }, r.compressWorker = function (t) { return new h("Deflate", t) }, r.uncompressWorker = function () { return new h("Inflate", {}) } }, {"./stream/GenericWorker": 28, "./utils": 32, pako: 38}], 8: [function (t, e, r) { "use strict"; function A(t, e) { var r, i = ""; for (r = 0; e > r; r++) i += String.fromCharCode(255 & t), t >>>= 8; return i } function i(t, e, r, i, n, s) { var a, o, h = t.file, u = t.compression, l = s !== O.utf8encode, f = I.transformTo("string", s(h.name)), d = I.transformTo("string", O.utf8encode(h.name)), c = h.comment, p = I.transformTo("string", s(c)), m = I.transformTo("string", O.utf8encode(c)), _ = d.length !== h.name.length, g = m.length !== c.length, b = "", v = "", y = "", w = h.dir, k = h.date, x = {crc32: 0, compressedSize: 0, uncompressedSize: 0}; e && !r || (x.crc32 = t.crc32, x.compressedSize = t.compressedSize, x.uncompressedSize = t.uncompressedSize); var S = 0; e && (S |= 8), l || !_ && !g || (S |= 2048); var z = 0, C = 0; w && (z |= 16), "UNIX" === n ? (C = 798, z |= function (t, e) { var r = t; return t || (r = e ? 16893 : 33204), (65535 & r) << 16 }(h.unixPermissions, w)) : (C = 20, z |= function (t) { return 63 & (t || 0) }(h.dosPermissions)), a = k.getUTCHours(), a <<= 6, a |= k.getUTCMinutes(), a <<= 5, a |= k.getUTCSeconds() / 2, o = k.getUTCFullYear() - 1980, o <<= 4, o |= k.getUTCMonth() + 1, o <<= 5, o |= k.getUTCDate(), _ && (v = A(1, 1) + A(B(f), 4) + d, b += "up" + A(v.length, 2) + v), g && (y = A(1, 1) + A(B(p), 4) + m, b += "uc" + A(y.length, 2) + y); var E = ""; return E += "\n\x00", E += A(S, 2), E += u.magic, E += A(a, 2), E += A(o, 2), E += A(x.crc32, 4), E += A(x.compressedSize, 4), E += A(x.uncompressedSize, 4), E += A(f.length, 2), E += A(b.length, 2), { fileRecord: R.LOCAL_FILE_HEADER + E + f + b, dirRecord: R.CENTRAL_FILE_HEADER + A(C, 2) + E + A(p.length, 2) + "\x00\x00\x00\x00" + A(z, 4) + A(i, 4) + f + b + p } } function s(t, e, r, i) { n.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = e, this.zipPlatform = r, this.encodeFileName = i, this.streamFiles = t, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [] } var I = t("../utils"), n = t("../stream/GenericWorker"), O = t("../utf8"), B = t("../crc32"), R = t("../signature"); I.inherits(s, n), s.prototype.push = function (t) { var e = t.meta.percent || 0, r = this.entriesCount, i = this._sources.length; this.accumulate ? this.contentBuffer.push(t) : (this.bytesWritten += t.data.length, n.prototype.push.call(this, { data: t.data, meta: { currentFile: this.currentFile, percent: r ? (e + 100 * (r - i - 1)) / r : 100 } })) }, s.prototype.openedSource = function (t) { this.currentSourceOffset = this.bytesWritten, this.currentFile = t.file.name; var e = this.streamFiles && !t.file.dir; if (e) { var r = i(t, e, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); this.push({data: r.fileRecord, meta: {percent: 0}}) } else this.accumulate = !0 }, s.prototype.closedSource = function (t) { this.accumulate = !1; var e = this.streamFiles && !t.file.dir, r = i(t, e, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); if (this.dirRecords.push(r.dirRecord), e) this.push({ data: function (t) { return R.DATA_DESCRIPTOR + A(t.crc32, 4) + A(t.compressedSize, 4) + A(t.uncompressedSize, 4) }(t), meta: {percent: 100} }); else for (this.push({ data: r.fileRecord, meta: {percent: 0} }); this.contentBuffer.length;) this.push(this.contentBuffer.shift()); this.currentFile = null }, s.prototype.flush = function () { for (var t = this.bytesWritten, e = 0; e < this.dirRecords.length; e++) this.push({ data: this.dirRecords[e], meta: {percent: 100} }); var r = this.bytesWritten - t, i = function (t, e, r, i, n) { var s = I.transformTo("string", n(i)); return R.CENTRAL_DIRECTORY_END + "\x00\x00\x00\x00" + A(t, 2) + A(t, 2) + A(e, 4) + A(r, 4) + A(s.length, 2) + s }(this.dirRecords.length, r, t, this.zipComment, this.encodeFileName); this.push({data: i, meta: {percent: 100}}) }, s.prototype.prepareNextSource = function () { this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume() }, s.prototype.registerPrevious = function (t) { this._sources.push(t); var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.closedSource(e.previous.streamInfo), e._sources.length ? e.prepareNextSource() : e.end() }), t.on("error", function (t) { e.error(t) }), this }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), !0)) }, s.prototype.error = function (t) { var e = this._sources; if (!n.prototype.error.call(this, t)) return !1; for (var r = 0; r < e.length; r++) try { e[r].error(t) } catch (t) { } return !0 }, s.prototype.lock = function () { n.prototype.lock.call(this); for (var t = this._sources, e = 0; e < t.length; e++) t[e].lock() }, e.exports = s }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function (t, e, r) { "use strict"; var u = t("../compressions"), i = t("./ZipFileWorker"); r.generateWorker = function (t, a, e) { var o = new i(a.streamFiles, e, a.platform, a.encodeFileName), h = 0; try { t.forEach(function (t, e) { h++; var r = function (t, e) { var r = t || e, i = u[r]; if (!i) throw new Error(r + " is not a valid compression method !"); return i }(e.options.compression, a.compression), i = e.options.compressionOptions || a.compressionOptions || {}, n = e.dir, s = e.date; e._compressWorker(r, i).withStreamInfo("file", { name: t, dir: n, date: s, comment: e.comment || "", unixPermissions: e.unixPermissions, dosPermissions: e.dosPermissions }).pipe(o) }), o.entriesCount = h } catch (t) { o.error(t) } return o } }, {"../compressions": 3, "./ZipFileWorker": 8}], 10: [function (t, e, r) { "use strict"; function i() { if (!(this instanceof i)) return new i; if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function () { var t = new i; for (var e in this) "function" != typeof this[e] && (t[e] = this[e]); return t } } (i.prototype = t("./object")).loadAsync = t("./load"), i.support = t("./support"), i.defaults = t("./defaults"), i.version = "3.7.1", i.loadAsync = function (t, e) { return (new i).loadAsync(t, e) }, i.external = t("./external"), e.exports = i }, {"./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30}], 11: [function (t, e, r) { "use strict"; function l(i) { return new n.Promise(function (t, e) { var r = i.decompressed.getContentWorker().pipe(new s); r.on("error", function (t) { e(t) }).on("end", function () { r.streamInfo.crc32 !== i.decompressed.crc32 ? e(new Error("Corrupted zip : CRC32 mismatch")) : t() }).resume() }) } var i = t("./utils"), n = t("./external"), o = t("./utf8"), h = t("./zipEntries"), s = t("./stream/Crc32Probe"), u = t("./nodejsUtils"); e.exports = function (t, s) { var a = this; return s = i.extend(s || {}, { base64: !1, checkCRC32: !1, optimizedBinaryString: !1, createFolders: !1, decodeFileName: o.utf8decode }), u.isNode && u.isStream(t) ? n.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : i.prepareContent("the loaded zip file", t, !0, s.optimizedBinaryString, s.base64).then(function (t) { var e = new h(s); return e.load(t), e }).then(function (t) { var e = [n.Promise.resolve(t)], r = t.files; if (s.checkCRC32) for (var i = 0; i < r.length; i++) e.push(l(r[i])); return n.Promise.all(e) }).then(function (t) { for (var e = t.shift(), r = e.files, i = 0; i < r.length; i++) { var n = r[i]; a.file(n.fileNameStr, n.decompressed, { binary: !0, optimizedBinaryString: !0, date: n.date, dir: n.dir, comment: n.fileCommentStr.length ? n.fileCommentStr : null, unixPermissions: n.unixPermissions, dosPermissions: n.dosPermissions, createFolders: s.createFolders }) } return e.zipComment.length && (a.comment = e.zipComment), a }) } }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function (t, e, r) { "use strict"; function s(t, e) { n.call(this, "Nodejs stream input adapter for " + t), this._upstreamEnded = !1, this._bindStream(e) } var i = t("../utils"), n = t("../stream/GenericWorker"); i.inherits(s, n), s.prototype._bindStream = function (t) { var e = this; (this._stream = t).pause(), t.on("data", function (t) { e.push({data: t, meta: {percent: 0}}) }).on("error", function (t) { e.isPaused ? this.generatedError = t : e.error(t) }).on("end", function () { e.isPaused ? e._upstreamEnded = !0 : e.end() }) }, s.prototype.pause = function () { return !!n.prototype.pause.call(this) && (this._stream.pause(), !0) }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0) }, e.exports = s }, {"../stream/GenericWorker": 28, "../utils": 32}], 13: [function (t, e, r) { "use strict"; function i(t, e, r) { n.call(this, e), this._helper = t; var i = this; t.on("data", function (t, e) { i.push(t) || i._helper.pause(), r && r(e) }).on("error", function (t) { i.emit("error", t) }).on("end", function () { i.push(null) }) } var n = t("readable-stream").Readable; t("../utils").inherits(i, n), i.prototype._read = function () { this._helper.resume() }, e.exports = i }, {"../utils": 32, "readable-stream": 16}], 14: [function (t, e, r) { "use strict"; e.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function (t, e) { if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(t, e); if ("number" == typeof t) throw new Error('The "data" argument must not be a number'); return new Buffer(t, e) }, allocBuffer: function (t) { if (Buffer.alloc) return Buffer.alloc(t); var e = new Buffer(t); return e.fill(0), e }, isBuffer: function (t) { return Buffer.isBuffer(t) }, isStream: function (t) { return t && "function" == typeof t.on && "function" == typeof t.pause && "function" == typeof t.resume } } }, {}], 15: [function (t, e, r) { "use strict"; function s(t, e, r) { var i, n = u.getTypeOf(e), s = u.extend(r || {}, f); s.date = s.date || new Date, null !== s.compression && (s.compression = s.compression.toUpperCase()), "string" == typeof s.unixPermissions && (s.unixPermissions = parseInt(s.unixPermissions, 8)), s.unixPermissions && 16384 & s.unixPermissions && (s.dir = !0), s.dosPermissions && 16 & s.dosPermissions && (s.dir = !0), s.dir && (t = g(t)), s.createFolders && (i = _(t)) && b.call(this, i, !0); var a = "string" === n && !1 === s.binary && !1 === s.base64; r && void 0 !== r.binary || (s.binary = !a), (e instanceof d && 0 === e.uncompressedSize || s.dir || !e || 0 === e.length) && (s.base64 = !1, s.binary = !0, e = "", s.compression = "STORE", n = "string"); var o = null; o = e instanceof d || e instanceof l ? e : p.isNode && p.isStream(e) ? new m(t, e) : u.prepareContent(t, e, s.binary, s.optimizedBinaryString, s.base64); var h = new c(t, o, s); this.files[t] = h } function h(t) { return "[object RegExp]" === Object.prototype.toString.call(t) } var n = t("./utf8"), u = t("./utils"), l = t("./stream/GenericWorker"), a = t("./stream/StreamHelper"), f = t("./defaults"), d = t("./compressedObject"), c = t("./zipObject"), o = t("./generate"), p = t("./nodejsUtils"), m = t("./nodejs/NodejsStreamInputAdapter"), _ = function (t) { "/" === t.slice(-1) && (t = t.substring(0, t.length - 1)); var e = t.lastIndexOf("/"); return e > 0 ? t.substring(0, e) : "" }, g = function (t) { return "/" !== t.slice(-1) && (t += "/"), t }, b = function (t, e) { return e = void 0 !== e ? e : f.createFolders, t = g(t), this.files[t] || s.call(this, t, null, { dir: !0, createFolders: e }), this.files[t] }, i = { load: function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, forEach: function (t) { var e, r, i; for (e in this.files) i = this.files[e], (r = e.slice(this.root.length, e.length)) && e.slice(0, this.root.length) === this.root && t(r, i) }, filter: function (r) { var i = []; return this.forEach(function (t, e) { r(t, e) && i.push(e) }), i }, file: function (t, e, r) { if (1 !== arguments.length) return t = this.root + t, s.call(this, t, e, r), this; if (h(t)) { var i = t; return this.filter(function (t, e) { return !e.dir && i.test(t) }) } var n = this.files[this.root + t]; return n && !n.dir ? n : null }, folder: function (r) { if (!r) return this; if (h(r)) return this.filter(function (t, e) { return e.dir && r.test(t) }); var t = this.root + r, e = b.call(this, t), i = this.clone(); return i.root = e.name, i }, remove: function (r) { r = this.root + r; var t = this.files[r]; if (t || ("/" !== r.slice(-1) && (r += "/"), t = this.files[r]), t && !t.dir) delete this.files[r]; else for (var e = this.filter(function (t, e) { return e.name.slice(0, r.length) === r }), i = 0; i < e.length; i++) delete this.files[e[i].name]; return this }, generate: function (t) { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, generateInternalStream: function (t) { var e, r = {}; try { if ((r = u.extend(t || {}, { streamFiles: !1, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: n.utf8encode })).type = r.type.toLowerCase(), r.compression = r.compression.toUpperCase(), "binarystring" === r.type && (r.type = "string"), !r.type) throw new Error("No output type specified."); u.checkSupport(r.type), "darwin" !== r.platform && "freebsd" !== r.platform && "linux" !== r.platform && "sunos" !== r.platform || (r.platform = "UNIX"), "win32" === r.platform && (r.platform = "DOS"); var i = r.comment || this.comment || ""; e = o.generateWorker(this, r, i) } catch (t) { (e = new l("error")).error(t) } return new a(e, r.type || "string", r.mimeType) }, generateAsync: function (t, e) { return this.generateInternalStream(t).accumulate(e) }, generateNodeStream: function (t, e) { return (t = t || {}).type || (t.type = "nodebuffer"), this.generateInternalStream(t).toNodejsStream(e) } }; e.exports = i }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function (t, e, r) { e.exports = t("stream") }, {stream: void 0}], 17: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t); for (var e = 0; e < this.data.length; e++) t[e] = 255 & t[e] } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data[this.zero + t] }, n.prototype.lastIndexOfSignature = function (t) { for (var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.length - 4; s >= 0; --s) if (this.data[s] === e && this.data[s + 1] === r && this.data[s + 2] === i && this.data[s + 3] === n) return s - this.zero; return -1 }, n.prototype.readAndCheckSignature = function (t) { var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.readData(4); return e === s[0] && r === s[1] && i === s[2] && n === s[3] }, n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return []; var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, {"../utils": 32, "./DataReader": 18}], 18: [function (t, e, r) { "use strict"; function n(t) { this.data = t, this.length = t.length, this.index = 0, this.zero = 0 } var i = t("../utils"); n.prototype = { checkOffset: function (t) { this.checkIndex(this.index + t) }, checkIndex: function (t) { if (this.length < this.zero + t || 0 > t) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + t + "). Corrupted zip ?") }, setIndex: function (t) { this.checkIndex(t), this.index = t }, skip: function (t) { this.setIndex(this.index + t) }, byteAt: function (t) { }, readInt: function (t) { var e, r = 0; for (this.checkOffset(t), e = this.index + t - 1; e >= this.index; e--) r = (r << 8) + this.byteAt(e); return this.index += t, r }, readString: function (t) { return i.transformTo("string", this.readData(t)) }, readData: function (t) { }, lastIndexOfSignature: function (t) { }, readAndCheckSignature: function (t) { }, readDate: function () { var t = this.readInt(4); return new Date(Date.UTC(1980 + (t >> 25 & 127), (t >> 21 & 15) - 1, t >> 16 & 31, t >> 11 & 31, t >> 5 & 63, (31 & t) << 1)) } }, e.exports = n }, {"../utils": 32}], 19: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./Uint8ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, {"../utils": 32, "./Uint8ArrayReader": 21}], 20: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data.charCodeAt(this.zero + t) }, n.prototype.lastIndexOfSignature = function (t) { return this.data.lastIndexOf(t) - this.zero }, n.prototype.readAndCheckSignature = function (t) { return t === this.readData(4) }, n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, {"../utils": 32, "./DataReader": 18}], 21: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return new Uint8Array(0); var e = this.data.subarray(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, {"../utils": 32, "./ArrayReader": 17}], 22: [function (t, e, r) { "use strict"; var i = t("../utils"), n = t("../support"), s = t("./ArrayReader"), a = t("./StringReader"), o = t("./NodeBufferReader"), h = t("./Uint8ArrayReader"); e.exports = function (t) { var e = i.getTypeOf(t); return i.checkSupport(e), "string" !== e || n.uint8array ? "nodebuffer" === e ? new o(t) : n.uint8array ? new h(i.transformTo("uint8array", t)) : new s(i.transformTo("array", t)) : new a(t) } }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function (t, e, r) { "use strict"; r.LOCAL_FILE_HEADER = "PK", r.CENTRAL_FILE_HEADER = "PK", r.CENTRAL_DIRECTORY_END = "PK", r.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK", r.ZIP64_CENTRAL_DIRECTORY_END = "PK", r.DATA_DESCRIPTOR = "PK\b" }, {}], 24: [function (t, e, r) { "use strict"; function s(t) { i.call(this, "ConvertWorker to " + t), this.destType = t } var i = t("./GenericWorker"), n = t("../utils"); n.inherits(s, i), s.prototype.processChunk = function (t) { this.push({data: n.transformTo(this.destType, t.data), meta: t.meta}) }, e.exports = s }, {"../utils": 32, "./GenericWorker": 28}], 25: [function (t, e, r) { "use strict"; function s() { i.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0) } var i = t("./GenericWorker"), n = t("../crc32"); t("../utils").inherits(s, i), s.prototype.processChunk = function (t) { this.streamInfo.crc32 = n(t.data, this.streamInfo.crc32 || 0), this.push(t) }, e.exports = s }, {"../crc32": 4, "../utils": 32, "./GenericWorker": 28}], 26: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataLengthProbe for " + t), this.propName = t, this.withStreamInfo(t, 0) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.processChunk = function (t) { if (t) { var e = this.streamInfo[this.propName] || 0; this.streamInfo[this.propName] = e + t.data.length } n.prototype.processChunk.call(this, t) }, e.exports = s }, {"../utils": 32, "./GenericWorker": 28}], 27: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataWorker"); var e = this; this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, t.then(function (t) { e.dataIsReady = !0, e.data = t, e.max = t && t.length || 0, e.type = i.getTypeOf(t), e.isPaused || e._tickAndRepeat() }, function (t) { e.error(t) }) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.cleanUp = function () { n.prototype.cleanUp.call(this), this.data = null }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, i.delay(this._tickAndRepeat, [], this)), !0) }, s.prototype._tickAndRepeat = function () { this._tickScheduled = !1, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (i.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0)) }, s.prototype._tick = function () { if (this.isPaused || this.isFinished) return !1; var t = null, e = Math.min(this.max, this.index + 16384); if (this.index >= this.max) return this.end(); switch (this.type) { case"string": t = this.data.substring(this.index, e); break; case"uint8array": t = this.data.subarray(this.index, e); break; case"array": case"nodebuffer": t = this.data.slice(this.index, e) } return this.index = e, this.push({ data: t, meta: {percent: this.max ? this.index / this.max * 100 : 0} }) }, e.exports = s }, {"../utils": 32, "./GenericWorker": 28}], 28: [function (t, e, r) { "use strict"; function i(t) { this.name = t || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = { data: [], end: [], error: [] }, this.previous = null } i.prototype = { push: function (t) { this.emit("data", t) }, end: function () { if (this.isFinished) return !1; this.flush(); try { this.emit("end"), this.cleanUp(), this.isFinished = !0 } catch (t) { this.emit("error", t) } return !0 }, error: function (t) { return !this.isFinished && (this.isPaused ? this.generatedError = t : (this.isFinished = !0, this.emit("error", t), this.previous && this.previous.error(t), this.cleanUp()), !0) }, on: function (t, e) { return this._listeners[t].push(e), this }, cleanUp: function () { this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [] }, emit: function (t, e) { if (this._listeners[t]) for (var r = 0; r < this._listeners[t].length; r++) this._listeners[t][r].call(this, e) }, pipe: function (t) { return t.registerPrevious(this) }, registerPrevious: function (t) { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.streamInfo = t.streamInfo, this.mergeStreamInfo(), this.previous = t; var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.end() }), t.on("error", function (t) { e.error(t) }), this }, pause: function () { return !this.isPaused && !this.isFinished && (this.isPaused = !0, this.previous && this.previous.pause(), !0) }, resume: function () { if (!this.isPaused || this.isFinished) return !1; var t = this.isPaused = !1; return this.generatedError && (this.error(this.generatedError), t = !0), this.previous && this.previous.resume(), !t }, flush: function () { }, processChunk: function (t) { this.push(t) }, withStreamInfo: function (t, e) { return this.extraStreamInfo[t] = e, this.mergeStreamInfo(), this }, mergeStreamInfo: function () { for (var t in this.extraStreamInfo) this.extraStreamInfo.hasOwnProperty(t) && (this.streamInfo[t] = this.extraStreamInfo[t]) }, lock: function () { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.isLocked = !0, this.previous && this.previous.lock() }, toString: function () { var t = "Worker " + this.name; return this.previous ? this.previous + " -> " + t : t } }, e.exports = i }, {}], 29: [function (t, e, r) { "use strict"; function l(t, o) { return new a.Promise(function (e, r) { var i = [], n = t._internalType, s = t._outputType, a = t._mimeType; t.on("data", function (t, e) { i.push(t), o && o(e) }).on("error", function (t) { i = [], r(t) }).on("end", function () { try { var t = function (t, e, r) { switch (t) { case"blob": return h.newBlob(h.transformTo("arraybuffer", e), r); case"base64": return u.encode(e); default: return h.transformTo(t, e) } }(s, function (t, e) { var r, i = 0, n = null, s = 0; for (r = 0; r < e.length; r++) s += e[r].length; switch (t) { case"string": return e.join(""); case"array": return Array.prototype.concat.apply([], e); case"uint8array": for (n = new Uint8Array(s), r = 0; r < e.length; r++) n.set(e[r], i), i += e[r].length; return n; case"nodebuffer": return Buffer.concat(e); default: throw new Error("concat : unsupported type '" + t + "'") } }(n, i), a); e(t) } catch (t) { r(t) } i = [] }).resume() }) } function f(t, e, r) { var i = e; switch (e) { case"blob": case"arraybuffer": i = "uint8array"; break; case"base64": i = "string" } try { this._internalType = i, this._outputType = e, this._mimeType = r, h.checkSupport(i), this._worker = t.pipe(new n(i)), t.lock() } catch (t) { this._worker = new s("error"), this._worker.error(t) } } var h = t("../utils"), n = t("./ConvertWorker"), s = t("./GenericWorker"), u = t("../base64"), i = t("../support"), a = t("../external"), o = null; if (i.nodestream) try { o = t("../nodejs/NodejsStreamOutputAdapter") } catch (t) { } f.prototype = { accumulate: function (t) { return l(this, t) }, on: function (t, e) { var r = this; return "data" === t ? this._worker.on(t, function (t) { e.call(r, t.data, t.meta) }) : this._worker.on(t, function () { h.delay(e, arguments, r) }), this }, resume: function () { return h.delay(this._worker.resume, [], this._worker), this }, pause: function () { return this._worker.pause(), this }, toNodejsStream: function (t) { if (h.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method"); return new o(this, {objectMode: "nodebuffer" !== this._outputType}, t) } }, e.exports = f }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function (t, e, r) { "use strict"; if (r.base64 = !0, r.array = !0, r.string = !0, r.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r.nodebuffer = "undefined" != typeof Buffer, r.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) r.blob = !1; else { var i = new ArrayBuffer(0); try { r.blob = 0 === new Blob([i], {type: "application/zip"}).size } catch (t) { try { var n = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); n.append(i), r.blob = 0 === n.getBlob("application/zip").size } catch (t) { r.blob = !1 } } } try { r.nodestream = !!t("readable-stream").Readable } catch (t) { r.nodestream = !1 } }, {"readable-stream": 16}], 31: [function (t, e, s) { "use strict"; function a() { i.call(this, "utf-8 decode"), this.leftOver = null } function l() { i.call(this, "utf-8 encode") } for (var o = t("./utils"), h = t("./support"), r = t("./nodejsUtils"), i = t("./stream/GenericWorker"), u = new Array(256), n = 0; 256 > n; n++) u[n] = n >= 252 ? 6 : n >= 248 ? 5 : n >= 240 ? 4 : n >= 224 ? 3 : n >= 192 ? 2 : 1; u[254] = u[254] = 1, s.utf8encode = function (t) { return h.nodebuffer ? r.newBufferFrom(t, "utf-8") : function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++) 55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = h.uint8array ? new Uint8Array(o) : new Array(o), n = s = 0; o > s; n++) 55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }(t) }, s.utf8decode = function (t) { return h.nodebuffer ? o.transformTo("nodebuffer", t).toString("utf-8") : function (t) { var e, r, i, n, s = t.length, a = new Array(2 * s); for (e = r = 0; s > e;) if ((i = t[e++]) < 128) a[r++] = i; else if (4 < (n = u[i])) a[r++] = 65533, e += n - 1; else { for (i &= 2 === n ? 31 : 3 === n ? 15 : 7; n > 1 && s > e;) i = i << 6 | 63 & t[e++], n--; n > 1 ? a[r++] = 65533 : 65536 > i ? a[r++] = i : (i -= 65536, a[r++] = 55296 | i >> 10 & 1023, a[r++] = 56320 | 1023 & i) } return a.length !== r && (a.subarray ? a = a.subarray(0, r) : a.length = r), o.applyFromCharCode(a) }(t = o.transformTo(h.uint8array ? "uint8array" : "array", t)) }, o.inherits(a, i), a.prototype.processChunk = function (t) { var e = o.transformTo(h.uint8array ? "uint8array" : "array", t.data); if (this.leftOver && this.leftOver.length) { if (h.uint8array) { var r = e; (e = new Uint8Array(r.length + this.leftOver.length)).set(this.leftOver, 0), e.set(r, this.leftOver.length) } else e = this.leftOver.concat(e); this.leftOver = null } var i = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);) r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e }(e), n = e; i !== e.length && (h.uint8array ? (n = e.subarray(0, i), this.leftOver = e.subarray(i, e.length)) : (n = e.slice(0, i), this.leftOver = e.slice(i, e.length))), this.push({ data: s.utf8decode(n), meta: t.meta }) }, a.prototype.flush = function () { this.leftOver && this.leftOver.length && (this.push({ data: s.utf8decode(this.leftOver), meta: {} }), this.leftOver = null) }, s.Utf8DecodeWorker = a, o.inherits(l, i), l.prototype.processChunk = function (t) { this.push({data: s.utf8encode(t.data), meta: t.meta}) }, s.Utf8EncodeWorker = l }, {"./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32}], 32: [function (t, e, a) { "use strict"; function n(t) { return t } function l(t, e) { for (var r = 0; r < t.length; ++r) e[r] = 255 & t.charCodeAt(r); return e } function f(t) { var e = 65536, r = a.getTypeOf(t), i = !0; if ("uint8array" === r ? i = s.applyCanBeUsed.uint8array : "nodebuffer" === r && (i = s.applyCanBeUsed.nodebuffer), i) for (; e > 1;) try { return s.stringifyByChunk(t, r, e) } catch (t) { e = Math.floor(e / 2) } return s.stringifyByChar(t) } function d(t, e) { for (var r = 0; r < t.length; r++) e[r] = t[r]; return e } var o = t("./support"), h = t("./base64"), r = t("./nodejsUtils"), i = t("set-immediate-shim"), u = t("./external"); a.newBlob = function (e, r) { a.checkSupport("blob"); try { return new Blob([e], {type: r}) } catch (t) { try { var i = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); return i.append(e), i.getBlob(r) } catch (t) { throw new Error("Bug : can't construct the Blob.") } } }; var s = { stringifyByChunk: function (t, e, r) { var i = [], n = 0, s = t.length; if (r >= s) return String.fromCharCode.apply(null, t); for (; s > n;) "array" === e || "nodebuffer" === e ? i.push(String.fromCharCode.apply(null, t.slice(n, Math.min(n + r, s)))) : i.push(String.fromCharCode.apply(null, t.subarray(n, Math.min(n + r, s)))), n += r; return i.join("") }, stringifyByChar: function (t) { for (var e = "", r = 0; r < t.length; r++) e += String.fromCharCode(t[r]); return e }, applyCanBeUsed: { uint8array: function () { try { return o.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length } catch (t) { return !1 } }(), nodebuffer: function () { try { return o.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length } catch (t) { return !1 } }() } }; a.applyFromCharCode = f; var c = {}; c.string = { string: n, array: function (t) { return l(t, new Array(t.length)) }, arraybuffer: function (t) { return c.string.uint8array(t).buffer }, uint8array: function (t) { return l(t, new Uint8Array(t.length)) }, nodebuffer: function (t) { return l(t, r.allocBuffer(t.length)) } }, c.array = { string: f, array: n, arraybuffer: function (t) { return new Uint8Array(t).buffer }, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.arraybuffer = { string: function (t) { return f(new Uint8Array(t)) }, array: function (t) { return d(new Uint8Array(t), new Array(t.byteLength)) }, arraybuffer: n, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(new Uint8Array(t)) } }, c.uint8array = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return t.buffer }, uint8array: n, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.nodebuffer = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return c.nodebuffer.uint8array(t).buffer }, uint8array: function (t) { return d(t, new Uint8Array(t.length)) }, nodebuffer: n }, a.transformTo = function (t, e) { if (e = e || "", !t) return e; a.checkSupport(t); var r = a.getTypeOf(e); return c[r][t](e) }, a.getTypeOf = function (t) { return "string" == typeof t ? "string" : "[object Array]" === Object.prototype.toString.call(t) ? "array" : o.nodebuffer && r.isBuffer(t) ? "nodebuffer" : o.uint8array && t instanceof Uint8Array ? "uint8array" : o.arraybuffer && t instanceof ArrayBuffer ? "arraybuffer" : void 0 }, a.checkSupport = function (t) { if (!o[t.toLowerCase()]) throw new Error(t + " is not supported by this platform") }, a.MAX_VALUE_16BITS = 65535, a.MAX_VALUE_32BITS = -1, a.pretty = function (t) { var e, r, i = ""; for (r = 0; r < (t || "").length; r++) i += "\\x" + ((e = t.charCodeAt(r)) < 16 ? "0" : "") + e.toString(16).toUpperCase(); return i }, a.delay = function (t, e, r) { i(function () { t.apply(r || null, e || []) }) }, a.inherits = function (t, e) { function r() { } r.prototype = e.prototype, t.prototype = new r }, a.extend = function () { var t, e, r = {}; for (t = 0; t < arguments.length; t++) for (e in arguments[t]) arguments[t].hasOwnProperty(e) && void 0 === r[e] && (r[e] = arguments[t][e]); return r }, a.prepareContent = function (r, t, i, n, s) { return u.Promise.resolve(t).then(function (i) { return o.blob && (i instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(i))) && "undefined" != typeof FileReader ? new u.Promise(function (e, r) { var t = new FileReader; t.onload = function (t) { e(t.target.result) }, t.onerror = function (t) { r(t.target.error) }, t.readAsArrayBuffer(i) }) : i }).then(function (t) { var e = a.getTypeOf(t); return e ? ("arraybuffer" === e ? t = a.transformTo("uint8array", t) : "string" === e && (s ? t = h.decode(t) : i && !0 !== n && (t = function (t) { return l(t, o.uint8array ? new Uint8Array(t.length) : new Array(t.length)) }(t))), t) : u.Promise.reject(new Error("Can't read the data of '" + r + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")) }) } }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, "set-immediate-shim": 54 }], 33: [function (t, e, r) { "use strict"; function h(t) { this.files = [], this.loadOptions = t } var i = t("./reader/readerFor"), n = t("./utils"), s = t("./signature"), a = t("./zipEntry"), o = (t("./utf8"), t("./support")); h.prototype = { checkSignature: function (t) { if (!this.reader.readAndCheckSignature(t)) { this.reader.index -= 4; var e = this.reader.readString(4); throw new Error("Corrupted zip or bug: unexpected signature (" + n.pretty(e) + ", expected " + n.pretty(t) + ")") } }, isSignature: function (t, e) { var r = this.reader.index; this.reader.setIndex(t); var i = this.reader.readString(4) === e; return this.reader.setIndex(r), i }, readBlockEndOfCentral: function () { this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2); var t = this.reader.readData(this.zipCommentLength), e = o.uint8array ? "uint8array" : "array", r = n.transformTo(e, t); this.zipComment = this.loadOptions.decodeFileName(r) }, readBlockZip64EndOfCentral: function () { this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; for (var t, e, r, i = this.zip64EndOfCentralSize - 44; i > 0;) t = this.reader.readInt(2), e = this.reader.readInt(4), r = this.reader.readData(e), this.zip64ExtensibleData[t] = { id: t, length: e, value: r } }, readBlockZip64EndOfCentralLocator: function () { if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported") }, readLocalFiles: function () { var t, e; for (t = 0; t < this.files.length; t++) e = this.files[t], this.reader.setIndex(e.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), e.readLocalPart(this.reader), e.handleUTF8(), e.processAttributes() }, readCentralDir: function () { var t; for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);) (t = new a({zip64: this.zip64}, this.loadOptions)).readCentralPart(this.reader), this.files.push(t); if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length) }, readEndOfCentral: function () { var t = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END); if (0 > t) throw this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Corrupted zip: can't find end of central directory") : new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); this.reader.setIndex(t); var e = t; if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === n.MAX_VALUE_16BITS || this.diskWithCentralDirStart === n.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === n.MAX_VALUE_16BITS || this.centralDirRecords === n.MAX_VALUE_16BITS || this.centralDirSize === n.MAX_VALUE_32BITS || this.centralDirOffset === n.MAX_VALUE_32BITS) { if (this.zip64 = !0, (t = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); if (this.reader.setIndex(t), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral() } var r = this.centralDirOffset + this.centralDirSize; this.zip64 && (r += 20, r += 12 + this.zip64EndOfCentralSize); var i = e - r; if (i > 0) this.isSignature(e, s.CENTRAL_FILE_HEADER) || (this.reader.zero = i); else if (0 > i) throw new Error("Corrupted zip: missing " + Math.abs(i) + " bytes.") }, prepareReader: function (t) { this.reader = i(t) }, load: function (t) { this.prepareReader(t), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles() } }, e.exports = h }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utf8": 31, "./utils": 32, "./zipEntry": 34 }], 34: [function (t, e, r) { "use strict"; function l(t, e) { this.options = t, this.loadOptions = e } var i = t("./reader/readerFor"), s = t("./utils"), n = t("./compressedObject"), a = t("./crc32"), o = t("./utf8"), h = t("./compressions"), u = t("./support"); l.prototype = { isEncrypted: function () { return 1 == (1 & this.bitFlag) }, useUTF8: function () { return 2048 == (2048 & this.bitFlag) }, readLocalPart: function (t) { var e, r; if (t.skip(22), this.fileNameLength = t.readInt(2), r = t.readInt(2), this.fileName = t.readData(this.fileNameLength), t.skip(r), -1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)"); if (null === (e = function (t) { for (var e in h) if (h.hasOwnProperty(e) && h[e].magic === t) return h[e]; return null }(this.compressionMethod))) throw new Error("Corrupted zip : compression " + s.pretty(this.compressionMethod) + " unknown (inner file : " + s.transformTo("string", this.fileName) + ")"); this.decompressed = new n(this.compressedSize, this.uncompressedSize, this.crc32, e, t.readData(this.compressedSize)) }, readCentralPart: function (t) { this.versionMadeBy = t.readInt(2), t.skip(2), this.bitFlag = t.readInt(2), this.compressionMethod = t.readString(2), this.date = t.readDate(), this.crc32 = t.readInt(4), this.compressedSize = t.readInt(4), this.uncompressedSize = t.readInt(4); var e = t.readInt(2); if (this.extraFieldsLength = t.readInt(2), this.fileCommentLength = t.readInt(2), this.diskNumberStart = t.readInt(2), this.internalFileAttributes = t.readInt(2), this.externalFileAttributes = t.readInt(4), this.localHeaderOffset = t.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported"); t.skip(e), this.readExtraFields(t), this.parseZIP64ExtraField(t), this.fileComment = t.readData(this.fileCommentLength) }, processAttributes: function () { this.unixPermissions = null, this.dosPermissions = null; var t = this.versionMadeBy >> 8; this.dir = !!(16 & this.externalFileAttributes), 0 == t && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == t && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = !0) }, parseZIP64ExtraField: function (t) { if (this.extraFields[1]) { var e = i(this.extraFields[1].value); this.uncompressedSize === s.MAX_VALUE_32BITS && (this.uncompressedSize = e.readInt(8)), this.compressedSize === s.MAX_VALUE_32BITS && (this.compressedSize = e.readInt(8)), this.localHeaderOffset === s.MAX_VALUE_32BITS && (this.localHeaderOffset = e.readInt(8)), this.diskNumberStart === s.MAX_VALUE_32BITS && (this.diskNumberStart = e.readInt(4)) } }, readExtraFields: function (t) { var e, r, i, n = t.index + this.extraFieldsLength; for (this.extraFields || (this.extraFields = {}); t.index + 4 < n;) e = t.readInt(2), r = t.readInt(2), i = t.readData(r), this.extraFields[e] = { id: e, length: r, value: i }; t.setIndex(n) }, handleUTF8: function () { var t = u.uint8array ? "uint8array" : "array"; if (this.useUTF8()) this.fileNameStr = o.utf8decode(this.fileName), this.fileCommentStr = o.utf8decode(this.fileComment); else { var e = this.findExtraFieldUnicodePath(); if (null !== e) this.fileNameStr = e; else { var r = s.transformTo(t, this.fileName); this.fileNameStr = this.loadOptions.decodeFileName(r) } var i = this.findExtraFieldUnicodeComment(); if (null !== i) this.fileCommentStr = i; else { var n = s.transformTo(t, this.fileComment); this.fileCommentStr = this.loadOptions.decodeFileName(n) } } }, findExtraFieldUnicodePath: function () { var t = this.extraFields[28789]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileName) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null }, findExtraFieldUnicodeComment: function () { var t = this.extraFields[25461]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileComment) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null } }, e.exports = l }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function (t, e, r) { "use strict"; function i(t, e, r) { this.name = t, this.dir = r.dir, this.date = r.date, this.comment = r.comment, this.unixPermissions = r.unixPermissions, this.dosPermissions = r.dosPermissions, this._data = e, this._dataBinary = r.binary, this.options = { compression: r.compression, compressionOptions: r.compressionOptions } } var s = t("./stream/StreamHelper"), n = t("./stream/DataWorker"), a = t("./utf8"), o = t("./compressedObject"), h = t("./stream/GenericWorker"); i.prototype = { internalStream: function (t) { var e = null, r = "string"; try { if (!t) throw new Error("No output type specified."); var i = "string" === (r = t.toLowerCase()) || "text" === r; "binarystring" !== r && "text" !== r || (r = "string"), e = this._decompressWorker(); var n = !this._dataBinary; n && !i && (e = e.pipe(new a.Utf8EncodeWorker)), !n && i && (e = e.pipe(new a.Utf8DecodeWorker)) } catch (t) { (e = new h("error")).error(t) } return new s(e, r, "") }, async: function (t, e) { return this.internalStream(t).accumulate(e) }, nodeStream: function (t, e) { return this.internalStream(t || "nodebuffer").toNodejsStream(e) }, _compressWorker: function (t, e) { if (this._data instanceof o && this._data.compression.magic === t.magic) return this._data.getCompressedWorker(); var r = this._decompressWorker(); return this._dataBinary || (r = r.pipe(new a.Utf8EncodeWorker)), o.createWorkerFrom(r, t, e) }, _decompressWorker: function () { return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof h ? this._data : new n(this._data) } }; for (var u = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], l = function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, f = 0; f < u.length; f++) i.prototype[u[f]] = l; e.exports = i }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function (t, l, e) { (function (e) { "use strict"; function u() { var t, e; i = !0; for (var r = h.length; r;) { for (e = h, h = [], t = -1; ++t < r;) e[t](); r = h.length } i = !1 } var r, i, t = e.MutationObserver || e.WebKitMutationObserver; if (t) { var n = 0, s = new t(u), a = e.document.createTextNode(""); s.observe(a, {characterData: !0}), r = function () { a.data = n = ++n % 2 } } else if (e.setImmediate || void 0 === e.MessageChannel) r = "document" in e && "onreadystatechange" in e.document.createElement("script") ? function () { var t = e.document.createElement("script"); t.onreadystatechange = function () { u(), t.onreadystatechange = null, t.parentNode.removeChild(t), t = null }, e.document.documentElement.appendChild(t) } : function () { setTimeout(u, 0) }; else { var o = new e.MessageChannel; o.port1.onmessage = u, r = function () { o.port2.postMessage(0) } } var h = []; l.exports = function (t) { 1 !== h.push(t) || i || r() } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 37: [function (t, e, r) { "use strict"; function u() { } function o(t) { if ("function" != typeof t) throw new TypeError("resolver must be a function"); this.state = i, this.queue = [], this.outcome = void 0, t !== u && c(this, t) } function h(t, e, r) { this.promise = t, "function" == typeof e && (this.onFulfilled = e, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r && (this.onRejected = r, this.callRejected = this.otherCallRejected) } function f(e, r, i) { n(function () { var t; try { t = r(i) } catch (t) { return l.reject(e, t) } t === e ? l.reject(e, new TypeError("Cannot resolve promise with itself")) : l.resolve(e, t) }) } function d(t) { var e = t && t.then; return !t || "object" != typeof t && "function" != typeof t || "function" != typeof e ? void 0 : function () { e.apply(t, arguments) } } function c(e, t) { function i(t) { r || (r = !0, l.reject(e, t)) } function n(t) { r || (r = !0, l.resolve(e, t)) } var r = !1, s = p(function () { t(n, i) }); "error" === s.status && i(s.value) } function p(t, e) { var r = {}; try { r.value = t(e), r.status = "success" } catch (t) { r.status = "error", r.value = t } return r } var n = t("immediate"), l = {}, s = ["REJECTED"], a = ["FULFILLED"], i = ["PENDING"]; (e.exports = o).prototype["finally"] = function (e) { if ("function" != typeof e) return this; var r = this.constructor; return this.then(function (t) { return r.resolve(e()).then(function () { return t }) }, function (t) { return r.resolve(e()).then(function () { throw t }) }) }, o.prototype["catch"] = function (t) { return this.then(null, t) }, o.prototype.then = function (t, e) { if ("function" != typeof t && this.state === a || "function" != typeof e && this.state === s) return this; var r = new this.constructor(u); return this.state !== i ? f(r, this.state === a ? t : e, this.outcome) : this.queue.push(new h(r, t, e)), r }, h.prototype.callFulfilled = function (t) { l.resolve(this.promise, t) }, h.prototype.otherCallFulfilled = function (t) { f(this.promise, this.onFulfilled, t) }, h.prototype.callRejected = function (t) { l.reject(this.promise, t) }, h.prototype.otherCallRejected = function (t) { f(this.promise, this.onRejected, t) }, l.resolve = function (t, e) { var r = p(d, e); if ("error" === r.status) return l.reject(t, r.value); var i = r.value; if (i) c(t, i); else { t.state = a, t.outcome = e; for (var n = -1, s = t.queue.length; ++n < s;) t.queue[n].callFulfilled(e) } return t }, l.reject = function (t, e) { t.state = s, t.outcome = e; for (var r = -1, i = t.queue.length; ++r < i;) t.queue[r].callRejected(e); return t }, o.resolve = function (t) { return t instanceof this ? t : l.resolve(new this(u), t) }, o.reject = function (t) { var e = new this(u); return l.reject(e, t) }, o.all = function (t) { function h(t, e) { r.resolve(t).then(function (t) { s[e] = t, ++a !== i || n || (n = !0, l.resolve(o, s)) }, function (t) { n || (n = !0, l.reject(o, t)) }) } var r = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var i = t.length, n = !1; if (!i) return this.resolve([]); for (var s = new Array(i), a = 0, e = -1, o = new this(u); ++e < i;) h(t[e], e); return o }, o.race = function (t) { var e = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var r = t.length, i = !1; if (!r) return this.resolve([]); for (var n = -1, s = new this(u); ++n < r;) a = t[n], e.resolve(a).then(function (t) { i || (i = !0, l.resolve(s, t)) }, function (t) { i || (i = !0, l.reject(s, t)) }); var a; return s } }, {immediate: 36}], 38: [function (t, e, r) { "use strict"; var i = {}; t("./lib/utils/common").assign(i, t("./lib/deflate"), t("./lib/inflate"), t("./lib/zlib/constants")), e.exports = i }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function (t, e, r) { "use strict"; function p(t) { if (!(this instanceof p)) return new p(t); this.options = o.assign({ level: f, method: c, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: d, to: "" }, t || {}); var e = this.options; e.raw && 0 < e.windowBits ? e.windowBits = -e.windowBits : e.gzip && 0 < e.windowBits && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new s, this.strm.avail_out = 0; var r = a.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy); if (r !== l) throw new Error(n[r]); if (e.header && a.deflateSetHeader(this.strm, e.header), e.dictionary) { var i; if (i = "string" == typeof e.dictionary ? h.string2buf(e.dictionary) : "[object ArrayBuffer]" === u.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, (r = a.deflateSetDictionary(this.strm, i)) !== l) throw new Error(n[r]); this._dict_set = !0 } } function i(t, e) { var r = new p(e); if (r.push(t, !0), r.err) throw r.msg || n[r.err]; return r.result } var a = t("./zlib/deflate"), o = t("./utils/common"), h = t("./utils/strings"), n = t("./zlib/messages"), s = t("./zlib/zstream"), u = Object.prototype.toString, l = 0, f = -1, d = 0, c = 8; p.prototype.push = function (t, e) { var r, i, n = this.strm, s = this.options.chunkSize; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? 4 : 0, "string" == typeof t ? n.input = h.string2buf(t) : "[object ArrayBuffer]" === u.call(t) ? n.input = new Uint8Array(t) : n.input = t, n.next_in = 0, n.avail_in = n.input.length; do { if (0 === n.avail_out && (n.output = new o.Buf8(s), n.next_out = 0, n.avail_out = s), 1 !== (r = a.deflate(n, i)) && r !== l) return this.onEnd(r), !(this.ended = !0); 0 !== n.avail_out && (0 !== n.avail_in || 4 !== i && 2 !== i) || ("string" === this.options.to ? this.onData(h.buf2binstring(o.shrinkBuf(n.output, n.next_out))) : this.onData(o.shrinkBuf(n.output, n.next_out))) } while ((0 < n.avail_in || 0 === n.avail_out) && 1 !== r); return 4 === i ? (r = a.deflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === l) : 2 !== i || (this.onEnd(l), !(n.avail_out = 0)) }, p.prototype.onData = function (t) { this.chunks.push(t) }, p.prototype.onEnd = function (t) { t === l && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Deflate = p, r.deflate = i, r.deflateRaw = function (t, e) { return (e = e || {}).raw = !0, i(t, e) }, r.gzip = function (t, e) { return (e = e || {}).gzip = !0, i(t, e) } }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function (t, e, r) { "use strict"; function a(t) { if (!(this instanceof a)) return new a(t); this.options = c.assign({chunkSize: 16384, windowBits: 0, to: ""}, t || {}); var e = this.options; e.raw && 0 <= e.windowBits && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(0 <= e.windowBits && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), 15 < e.windowBits && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new n, this.strm.avail_out = 0; var r = d.inflateInit2(this.strm, e.windowBits); if (r !== m.Z_OK) throw new Error(i[r]); this.header = new s, d.inflateGetHeader(this.strm, this.header) } function o(t, e) { var r = new a(e); if (r.push(t, !0), r.err) throw r.msg || i[r.err]; return r.result } var d = t("./zlib/inflate"), c = t("./utils/common"), p = t("./utils/strings"), m = t("./zlib/constants"), i = t("./zlib/messages"), n = t("./zlib/zstream"), s = t("./zlib/gzheader"), _ = Object.prototype.toString; a.prototype.push = function (t, e) { var r, i, n, s, a, o, h = this.strm, u = this.options.chunkSize, l = this.options.dictionary, f = !1; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? m.Z_FINISH : m.Z_NO_FLUSH, "string" == typeof t ? h.input = p.binstring2buf(t) : "[object ArrayBuffer]" === _.call(t) ? h.input = new Uint8Array(t) : h.input = t, h.next_in = 0, h.avail_in = h.input.length; do { if (0 === h.avail_out && (h.output = new c.Buf8(u), h.next_out = 0, h.avail_out = u), (r = d.inflate(h, m.Z_NO_FLUSH)) === m.Z_NEED_DICT && l && (o = "string" == typeof l ? p.string2buf(l) : "[object ArrayBuffer]" === _.call(l) ? new Uint8Array(l) : l, r = d.inflateSetDictionary(this.strm, o)), r === m.Z_BUF_ERROR && !0 === f && (r = m.Z_OK, f = !1), r !== m.Z_STREAM_END && r !== m.Z_OK) return this.onEnd(r), !(this.ended = !0); h.next_out && (0 !== h.avail_out && r !== m.Z_STREAM_END && (0 !== h.avail_in || i !== m.Z_FINISH && i !== m.Z_SYNC_FLUSH) || ("string" === this.options.to ? (n = p.utf8border(h.output, h.next_out), s = h.next_out - n, a = p.buf2string(h.output, n), h.next_out = s, h.avail_out = u - s, s && c.arraySet(h.output, h.output, n, s, 0), this.onData(a)) : this.onData(c.shrinkBuf(h.output, h.next_out)))), 0 === h.avail_in && 0 === h.avail_out && (f = !0) } while ((0 < h.avail_in || 0 === h.avail_out) && r !== m.Z_STREAM_END); return r === m.Z_STREAM_END && (i = m.Z_FINISH), i === m.Z_FINISH ? (r = d.inflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === m.Z_OK) : i !== m.Z_SYNC_FLUSH || (this.onEnd(m.Z_OK), !(h.avail_out = 0)) }, a.prototype.onData = function (t) { this.chunks.push(t) }, a.prototype.onEnd = function (t) { t === m.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = c.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Inflate = a, r.inflate = o, r.inflateRaw = function (t, e) { return (e = e || {}).raw = !0, o(t, e) }, r.ungzip = o }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function (t, e, r) { "use strict"; var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; r.assign = function (t) { for (var e = Array.prototype.slice.call(arguments, 1); e.length;) { var r = e.shift(); if (r) { if ("object" != typeof r) throw new TypeError(r + "must be non-object"); for (var i in r) r.hasOwnProperty(i) && (t[i] = r[i]) } } return t }, r.shrinkBuf = function (t, e) { return t.length === e ? t : t.subarray ? t.subarray(0, e) : (t.length = e, t) }; var n = { arraySet: function (t, e, r, i, n) { if (e.subarray && t.subarray) t.set(e.subarray(r, r + i), n); else for (var s = 0; i > s; s++) t[n + s] = e[r + s] }, flattenChunks: function (t) { var e, r, i, n, s, a; for (e = i = 0, r = t.length; r > e; e++) i += t[e].length; for (a = new Uint8Array(i), e = n = 0, r = t.length; r > e; e++) s = t[e], a.set(s, n), n += s.length; return a } }, s = { arraySet: function (t, e, r, i, n) { for (var s = 0; i > s; s++) t[n + s] = e[r + s] }, flattenChunks: function (t) { return [].concat.apply([], t) } }; r.setTyped = function (t) { t ? (r.Buf8 = Uint8Array, r.Buf16 = Uint16Array, r.Buf32 = Int32Array, r.assign(r, n)) : (r.Buf8 = Array, r.Buf16 = Array, r.Buf32 = Array, r.assign(r, s)) }, r.setTyped(i) }, {}], 42: [function (t, e, r) { "use strict"; function l(t, e) { if (65537 > e && (t.subarray && s || !t.subarray && n)) return String.fromCharCode.apply(null, h.shrinkBuf(t, e)); for (var r = "", i = 0; e > i; i++) r += String.fromCharCode(t[i]); return r } var h = t("./common"), n = !0, s = !0; try { String.fromCharCode.apply(null, [0]) } catch (t) { n = !1 } try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (t) { s = !1 } for (var u = new h.Buf8(256), i = 0; 256 > i; i++) u[i] = i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1; u[254] = u[254] = 1, r.string2buf = function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++) 55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = new h.Buf8(o), n = s = 0; o > s; n++) 55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }, r.buf2binstring = function (t) { return l(t, t.length) }, r.binstring2buf = function (t) { for (var e = new h.Buf8(t.length), r = 0, i = e.length; i > r; r++) e[r] = t.charCodeAt(r); return e }, r.buf2string = function (t, e) { var r, i, n, s, a = e || t.length, o = new Array(2 * a); for (r = i = 0; a > r;) if ((n = t[r++]) < 128) o[i++] = n; else if (4 < (s = u[n])) o[i++] = 65533, r += s - 1; else { for (n &= 2 === s ? 31 : 3 === s ? 15 : 7; s > 1 && a > r;) n = n << 6 | 63 & t[r++], s--; s > 1 ? o[i++] = 65533 : 65536 > n ? o[i++] = n : (n -= 65536, o[i++] = 55296 | n >> 10 & 1023, o[i++] = 56320 | 1023 & n) } return l(o, i) }, r.utf8border = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);) r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e } }, {"./common": 41}], 43: [function (t, e, r) { "use strict"; e.exports = function (t, e, r, i) { for (var n = 65535 & t | 0, s = t >>> 16 & 65535 | 0, a = 0; 0 !== r;) { for (r -= a = r > 2e3 ? 2e3 : r; s = s + (n = n + e[i++] | 0) | 0, --a;) ; n %= 65521, s %= 65521 } return n | s << 16 | 0 } }, {}], 44: [function (t, e, r) { "use strict"; e.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 } }, {}], 45: [function (t, e, r) { "use strict"; var o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++) t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++) t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t } }, {}], 46: [function (t, e, r) { "use strict"; function R(t, e) { return t.msg = i[e], e } function T(t) { return (t << 1) - (t > 4 ? 9 : 0) } function D(t) { for (var e = t.length; 0 <= --e;) t[e] = 0 } function F(t) { var e = t.state, r = e.pending; r > t.avail_out && (r = t.avail_out), 0 !== r && (d.arraySet(t.output, e.pending_buf, e.pending_out, r, t.next_out), t.next_out += r, e.pending_out += r, t.total_out += r, t.avail_out -= r, e.pending -= r, 0 === e.pending && (e.pending_out = 0)) } function N(t, e) { u._tr_flush_block(t, 0 <= t.block_start ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, F(t.strm) } function U(t, e) { t.pending_buf[t.pending++] = e } function P(t, e) { t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e } function L(t, e) { var r, i, n = t.max_chain_length, s = t.strstart, a = t.prev_length, o = t.nice_match, h = t.strstart > t.w_size - z ? t.strstart - (t.w_size - z) : 0, u = t.window, l = t.w_mask, f = t.prev, d = t.strstart + S, c = u[s + a - 1], p = u[s + a]; t.prev_length >= t.good_match && (n >>= 2), o > t.lookahead && (o = t.lookahead); do if (u[(r = e) + a] === p && u[r + a - 1] === c && u[r] === u[s] && u[++r] === u[s + 1]) { s += 2, r++; do ; while (u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && d > s); if (i = S - (d - s), s = d - S, i > a) { if (t.match_start = e, o <= (a = i)) break; c = u[s + a - 1], p = u[s + a] } } while ((e = f[e & l]) > h && 0 != --n); return a <= t.lookahead ? a : t.lookahead } function j(t) { var e, r, i, n, s, a, o, h, u, l, f = t.w_size; do { if (n = t.window_size - t.lookahead - t.strstart, t.strstart >= f + (f - z)) { for (d.arraySet(t.window, t.window, f, f, 0), t.match_start -= f, t.strstart -= f, t.block_start -= f, e = r = t.hash_size; i = t.head[--e], t.head[e] = i >= f ? i - f : 0, --r;) ; for (e = r = f; i = t.prev[--e], t.prev[e] = i >= f ? i - f : 0, --r;) ; n += f } if (0 === t.strm.avail_in) break; if (a = t.strm, o = t.window, h = t.strstart + t.lookahead, u = n, l = void 0, l = a.avail_in, l > u && (l = u), r = 0 === l ? 0 : (a.avail_in -= l, d.arraySet(o, a.input, a.next_in, l, h), 1 === a.state.wrap ? a.adler = c(a.adler, o, l, h) : 2 === a.state.wrap && (a.adler = p(a.adler, o, l, h)), a.next_in += l, a.total_in += l, l), t.lookahead += r, t.lookahead + t.insert >= x) for (s = t.strstart - t.insert, t.ins_h = t.window[s], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + x - 1]) & t.hash_mask, t.prev[s & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = s, s++, t.insert--, !(t.lookahead + t.insert < x));) ; } while (t.lookahead < z && 0 !== t.strm.avail_in) } function Z(t, e) { for (var r, i; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== r && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r)), t.match_length >= x) if (i = u._tr_tally(t, t.strstart - t.match_start, t.match_length - x), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= x) { for (t.match_length--; t.strstart++, t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart, 0 != --t.match_length;) ; t.strstart++ } else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask; else i = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++; if (i && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function W(t, e) { for (var r, i, n; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = x - 1, 0 !== r && t.prev_length < t.max_lazy_match && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r), t.match_length <= 5 && (1 === t.strategy || t.match_length === x && 4096 < t.strstart - t.match_start) && (t.match_length = x - 1)), t.prev_length >= x && t.match_length <= t.prev_length) { for (n = t.strstart + t.lookahead - x, i = u._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - x), t.lookahead -= t.prev_length - 1, t.prev_length -= 2; ++t.strstart <= n && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 != --t.prev_length;) ; if (t.match_available = 0, t.match_length = x - 1, t.strstart++, i && (N(t, !1), 0 === t.strm.avail_out)) return A } else if (t.match_available) { if ((i = u._tr_tally(t, 0, t.window[t.strstart - 1])) && N(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return A } else t.match_available = 1, t.strstart++, t.lookahead-- } return t.match_available && (i = u._tr_tally(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function M(t, e, r, i, n) { this.good_length = t, this.max_lazy = e, this.nice_length = r, this.max_chain = i, this.func = n } function H() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new d.Buf16(2 * w), this.dyn_dtree = new d.Buf16(2 * (2 * a + 1)), this.bl_tree = new d.Buf16(2 * (2 * o + 1)), D(this.dyn_ltree), D(this.dyn_dtree), D(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new d.Buf16(k + 1), this.heap = new d.Buf16(2 * s + 1), D(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new d.Buf16(2 * s + 1), D(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } function G(t) { var e; return t && t.state ? (t.total_in = t.total_out = 0, t.data_type = n, (e = t.state).pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = e.wrap ? C : E, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = l, u._tr_init(e), m) : R(t, _) } function K(t) { var e = G(t); return e === m && function (t) { t.window_size = 2 * t.w_size, D(t.head), t.max_lazy_match = h[t.level].max_lazy, t.good_match = h[t.level].good_length, t.nice_match = h[t.level].nice_length, t.max_chain_length = h[t.level].max_chain, t.strstart = 0, t.block_start = 0, t.lookahead = 0, t.insert = 0, t.match_length = t.prev_length = x - 1, t.match_available = 0, t.ins_h = 0 }(t.state), e } function Y(t, e, r, i, n, s) { if (!t) return _; var a = 1; if (e === g && (e = 6), 0 > i ? (a = 0, i = -i) : i > 15 && (a = 2, i -= 16), 1 > n || n > y || r !== v || 8 > i || i > 15 || 0 > e || e > 9 || 0 > s || s > b) return R(t, _); 8 === i && (i = 9); var o = new H; return (t.state = o).strm = t, o.wrap = a, o.gzhead = null, o.w_bits = i, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = n + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + x - 1) / x), o.window = new d.Buf8(2 * o.w_size), o.head = new d.Buf16(o.hash_size), o.prev = new d.Buf16(o.w_size), o.lit_bufsize = 1 << n + 6, o.pending_buf_size = 4 * o.lit_bufsize, o.pending_buf = new d.Buf8(o.pending_buf_size), o.d_buf = 1 * o.lit_bufsize, o.l_buf = 3 * o.lit_bufsize, o.level = e, o.strategy = s, o.method = r, K(t) } var h, d = t("../utils/common"), u = t("./trees"), c = t("./adler32"), p = t("./crc32"), i = t("./messages"), l = 0, f = 4, m = 0, _ = -2, g = -1, b = 4, n = 2, v = 8, y = 9, s = 286, a = 30, o = 19, w = 2 * s + 1, k = 15, x = 3, S = 258, z = S + x + 1, C = 42, E = 113, A = 1, I = 2, O = 3, B = 4; h = [new M(0, 0, 0, 0, function (t, e) { var r = 65535; for (r > t.pending_buf_size - 5 && (r = t.pending_buf_size - 5); ;) { if (t.lookahead <= 1) { if (j(t), 0 === t.lookahead && e === l) return A; if (0 === t.lookahead) break } t.strstart += t.lookahead, t.lookahead = 0; var i = t.block_start + r; if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i, t.strstart = i, N(t, !1), 0 === t.strm.avail_out)) return A; if (t.strstart - t.block_start >= t.w_size - z && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : (t.strstart > t.block_start && (N(t, !1), t.strm.avail_out), A) }), new M(4, 4, 8, 4, Z), new M(4, 5, 16, 8, Z), new M(4, 6, 32, 32, Z), new M(4, 4, 16, 16, W), new M(8, 16, 32, 32, W), new M(8, 16, 128, 128, W), new M(8, 32, 128, 256, W), new M(32, 128, 258, 1024, W), new M(32, 258, 258, 4096, W)], r.deflateInit = function (t, e) { return Y(t, e, v, 15, 8, 0) }, r.deflateInit2 = Y, r.deflateReset = K, r.deflateResetKeep = G, r.deflateSetHeader = function (t, e) { return t && t.state ? 2 !== t.state.wrap ? _ : (t.state.gzhead = e, m) : _ }, r.deflate = function (t, e) { var r, i, n, s; if (!t || !t.state || e > 5 || 0 > e) return t ? R(t, _) : _; if (i = t.state, !t.output || !t.input && 0 !== t.avail_in || 666 === i.status && e !== f) return R(t, 0 === t.avail_out ? -5 : _); if (i.strm = t, r = i.last_flush, i.last_flush = e, i.status === C) if (2 === i.wrap) t.adler = 0, U(i, 31), U(i, 139), U(i, 8), i.gzhead ? (U(i, (i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)), U(i, 255 & i.gzhead.time), U(i, i.gzhead.time >> 8 & 255), U(i, i.gzhead.time >> 16 & 255), U(i, i.gzhead.time >> 24 & 255), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 255 & i.gzhead.os), i.gzhead.extra && i.gzhead.extra.length && (U(i, 255 & i.gzhead.extra.length), U(i, i.gzhead.extra.length >> 8 & 255)), i.gzhead.hcrc && (t.adler = p(t.adler, i.pending_buf, i.pending, 0)), i.gzindex = 0, i.status = 69) : (U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 3), i.status = E); else { var a = v + (i.w_bits - 8 << 4) << 8; a |= (2 <= i.strategy || i.level < 2 ? 0 : i.level < 6 ? 1 : 6 === i.level ? 2 : 3) << 6, 0 !== i.strstart && (a |= 32), a += 31 - a % 31, i.status = E, P(i, a), 0 !== i.strstart && (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), t.adler = 1 } if (69 === i.status) if (i.gzhead.extra) { for (n = i.pending; i.gzindex < (65535 & i.gzhead.extra.length) && (i.pending !== i.pending_buf_size || (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending !== i.pending_buf_size));) U(i, 255 & i.gzhead.extra[i.gzindex]), i.gzindex++; i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), i.gzindex === i.gzhead.extra.length && (i.gzindex = 0, i.status = 73) } else i.status = 73; if (73 === i.status) if (i.gzhead.name) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.name.length ? 255 & i.gzhead.name.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.gzindex = 0, i.status = 91) } else i.status = 91; if (91 === i.status) if (i.gzhead.comment) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.comment.length ? 255 & i.gzhead.comment.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.status = 103) } else i.status = 103; if (103 === i.status && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && F(t), i.pending + 2 <= i.pending_buf_size && (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), t.adler = 0, i.status = E)) : i.status = E), 0 !== i.pending) { if (F(t), 0 === t.avail_out) return i.last_flush = -1, m } else if (0 === t.avail_in && T(e) <= T(r) && e !== f) return R(t, -5); if (666 === i.status && 0 !== t.avail_in) return R(t, -5); if (0 !== t.avail_in || 0 !== i.lookahead || e !== l && 666 !== i.status) { var o = 2 === i.strategy ? function (t, e) { for (var r; ;) { if (0 === t.lookahead && (j(t), 0 === t.lookahead)) { if (e === l) return A; break } if (t.match_length = 0, r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : 3 === i.strategy ? function (t, e) { for (var r, i, n, s, a = t.window; ;) { if (t.lookahead <= S) { if (j(t), t.lookahead <= S && e === l) return A; if (0 === t.lookahead) break } if (t.match_length = 0, t.lookahead >= x && 0 < t.strstart && (i = a[n = t.strstart - 1]) === a[++n] && i === a[++n] && i === a[++n]) { s = t.strstart + S; do ; while (i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && s > n); t.match_length = S - (s - n), t.match_length > t.lookahead && (t.match_length = t.lookahead) } if (t.match_length >= x ? (r = u._tr_tally(t, 1, t.match_length - x), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : h[i.level].func(i, e); if (o !== O && o !== B || (i.status = 666), o === A || o === O) return 0 === t.avail_out && (i.last_flush = -1), m; if (o === I && (1 === e ? u._tr_align(i) : 5 !== e && (u._tr_stored_block(i, 0, 0, !1), 3 === e && (D(i.head), 0 === i.lookahead && (i.strstart = 0, i.block_start = 0, i.insert = 0))), F(t), 0 === t.avail_out)) return i.last_flush = -1, m } return e !== f ? m : i.wrap <= 0 ? 1 : (2 === i.wrap ? (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), U(i, t.adler >> 16 & 255), U(i, t.adler >> 24 & 255), U(i, 255 & t.total_in), U(i, t.total_in >> 8 & 255), U(i, t.total_in >> 16 & 255), U(i, t.total_in >> 24 & 255)) : (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), F(t), 0 < i.wrap && (i.wrap = -i.wrap), 0 !== i.pending ? m : 1) }, r.deflateEnd = function (t) { var e; return t && t.state ? (e = t.state.status) !== C && 69 !== e && 73 !== e && 91 !== e && 103 !== e && e !== E && 666 !== e ? R(t, _) : (t.state = null, e === E ? R(t, -3) : m) : _ }, r.deflateSetDictionary = function (t, e) { var r, i, n, s, a, o, h, u, l = e.length; if (!t || !t.state) return _; if (2 === (s = (r = t.state).wrap) || 1 === s && r.status !== C || r.lookahead) return _; for (1 === s && (t.adler = c(t.adler, e, l, 0)), r.wrap = 0, l >= r.w_size && (0 === s && (D(r.head), r.strstart = 0, r.block_start = 0, r.insert = 0), u = new d.Buf8(r.w_size), d.arraySet(u, e, l - r.w_size, r.w_size, 0), e = u, l = r.w_size), a = t.avail_in, o = t.next_in, h = t.input, t.avail_in = l, t.next_in = 0, t.input = e, j(r); r.lookahead >= x;) { for (i = r.strstart, n = r.lookahead - (x - 1); r.ins_h = (r.ins_h << r.hash_shift ^ r.window[i + x - 1]) & r.hash_mask, r.prev[i & r.w_mask] = r.head[r.ins_h], r.head[r.ins_h] = i, i++, --n;) ; r.strstart = i, r.lookahead = x - 1, j(r) } return r.strstart += r.lookahead, r.block_start = r.strstart, r.insert = r.lookahead, r.lookahead = 0, r.match_length = r.prev_length = x - 1, r.match_available = 0, t.next_in = o, t.input = h, t.avail_in = a, r.wrap = s, m }, r.deflateInfo = "pako deflate (from Nodeca project)" }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function (t, e, r) { "use strict"; e.exports = function () { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1 } }, {}], 48: [function (t, e, r) { "use strict"; e.exports = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C; r = t.state, i = t.next_in, z = t.input, n = i + (t.avail_in - 5), s = t.next_out, C = t.output, a = s - (e - t.avail_out), o = s + (t.avail_out - 257), h = r.dmax, u = r.wsize, l = r.whave, f = r.wnext, d = r.window, c = r.hold, p = r.bits, m = r.lencode, _ = r.distcode, g = (1 << r.lenbits) - 1, b = (1 << r.distbits) - 1; t:do { 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = m[c & g]; e:for (; ;) { if (c >>>= y = v >>> 24, p -= y, 0 === (y = v >>> 16 & 255)) C[s++] = 65535 & v; else { if (!(16 & y)) { if (0 == (64 & y)) { v = m[(65535 & v) + (c & (1 << y) - 1)]; continue e } if (32 & y) { r.mode = 12; break t } t.msg = "invalid literal/length code", r.mode = 30; break t } w = 65535 & v, (y &= 15) && (y > p && (c += z[i++] << p, p += 8), w += c & (1 << y) - 1, c >>>= y, p -= y), 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = _[c & b]; r:for (; ;) { if (c >>>= y = v >>> 24, p -= y, !(16 & (y = v >>> 16 & 255))) { if (0 == (64 & y)) { v = _[(65535 & v) + (c & (1 << y) - 1)]; continue r } t.msg = "invalid distance code", r.mode = 30; break t } if (k = 65535 & v, p < (y &= 15) && (c += z[i++] << p, (p += 8) < y && (c += z[i++] << p, p += 8)), h < (k += c & (1 << y) - 1)) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (c >>>= y, p -= y, (y = s - a) < k) { if (l < (y = k - y) && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (S = d, (x = 0) === f) { if (x += u - y, w > y) { for (w -= y; C[s++] = d[x++], --y;) ; x = s - k, S = C } } else if (y > f) { if (x += u + f - y, (y -= f) < w) { for (w -= y; C[s++] = d[x++], --y;) ; if (x = 0, w > f) { for (w -= y = f; C[s++] = d[x++], --y;) ; x = s - k, S = C } } } else if (x += f - y, w > y) { for (w -= y; C[s++] = d[x++], --y;) ; x = s - k, S = C } for (; w > 2;) C[s++] = S[x++], C[s++] = S[x++], C[s++] = S[x++], w -= 3; w && (C[s++] = S[x++], w > 1 && (C[s++] = S[x++])) } else { for (x = s - k; C[s++] = C[x++], C[s++] = C[x++], C[s++] = C[x++], 2 < (w -= 3);) ; w && (C[s++] = C[x++], w > 1 && (C[s++] = C[x++])) } break } } break } } while (n > i && o > s); i -= w = p >> 3, c &= (1 << (p -= w << 3)) - 1, t.next_in = i, t.next_out = s, t.avail_in = n > i ? n - i + 5 : 5 - (i - n), t.avail_out = o > s ? o - s + 257 : 257 - (s - o), r.hold = c, r.bits = p } }, {}], 49: [function (t, e, r) { "use strict"; function L(t) { return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24) } function s() { this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I.Buf16(320), this.work = new I.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } function a(t) { var e; return t && t.state ? (e = t.state, t.total_in = t.total_out = e.total = 0, t.msg = "", e.wrap && (t.adler = 1 & e.wrap), e.mode = P, e.last = 0, e.havedict = 0, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new I.Buf32(i), e.distcode = e.distdyn = new I.Buf32(n), e.sane = 1, e.back = -1, N) : U } function o(t) { var e; return t && t.state ? ((e = t.state).wsize = 0, e.whave = 0, e.wnext = 0, a(t)) : U } function h(t, e) { var r, i; return t && t.state ? (i = t.state, 0 > e ? (r = 0, e = -e) : (r = 1 + (e >> 4), 48 > e && (e &= 15)), e && (8 > e || e > 15) ? U : (null !== i.window && i.wbits !== e && (i.window = null), i.wrap = r, i.wbits = e, o(t))) : U } function u(t, e) { var r, i; return t ? (i = new s, (t.state = i).window = null, (r = h(t, e)) !== N && (t.state = null), r) : U } function j(t) { if (d) { var e; for (l = new I.Buf32(512), f = new I.Buf32(32), e = 0; 144 > e;) t.lens[e++] = 8; for (; 256 > e;) t.lens[e++] = 9; for (; 280 > e;) t.lens[e++] = 7; for (; 288 > e;) t.lens[e++] = 8; for (T(D, t.lens, 0, 288, l, 0, t.work, {bits: 9}), e = 0; 32 > e;) t.lens[e++] = 5; T(F, t.lens, 0, 32, f, 0, t.work, {bits: 5}), d = !1 } t.lencode = l, t.lenbits = 9, t.distcode = f, t.distbits = 5 } function Z(t, e, r, i) { var n, s = t.state; return null === s.window && (s.wsize = 1 << s.wbits, s.wnext = 0, s.whave = 0, s.window = new I.Buf8(s.wsize)), i >= s.wsize ? (I.arraySet(s.window, e, r - s.wsize, s.wsize, 0), s.wnext = 0, s.whave = s.wsize) : (i < (n = s.wsize - s.wnext) && (n = i), I.arraySet(s.window, e, r - i, n, s.wnext), (i -= n) ? (I.arraySet(s.window, e, r - i, i, 0), s.wnext = i, s.whave = s.wsize) : (s.wnext += n, s.wnext === s.wsize && (s.wnext = 0), s.whave < s.wsize && (s.whave += n))), 0 } var l, f, I = t("../utils/common"), O = t("./adler32"), B = t("./crc32"), R = t("./inffast"), T = t("./inftrees"), D = 1, F = 2, N = 0, U = -2, P = 1, i = 852, n = 592, d = !0; r.inflateReset = o, r.inflateReset2 = h, r.inflateResetKeep = a, r.inflateInit = function (t) { return u(t, 15) }, r.inflateInit2 = u, r.inflate = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C = 0, E = new I.Buf8(4), A = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in) return U; 12 === (r = t.state).mode && (r.mode = 13), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, f = o, d = h, x = N; t:for (; ;) switch (r.mode) { case P: if (0 === r.wrap) { r.mode = 13; break } for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (2 & r.wrap && 35615 === u) { E[r.check = 0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0), l = u = 0, r.mode = 2; break } if (r.flags = 0, r.head && (r.head.done = !1), !(1 & r.wrap) || (((255 & u) << 8) + (u >> 8)) % 31) { t.msg = "incorrect header check", r.mode = 30; break } if (8 != (15 & u)) { t.msg = "unknown compression method", r.mode = 30; break } if (l -= 4, k = 8 + (15 & (u >>>= 4)), 0 === r.wbits) r.wbits = k; else if (k > r.wbits) { t.msg = "invalid window size", r.mode = 30; break } r.dmax = 1 << k, t.adler = r.check = 1, r.mode = 512 & u ? 10 : 12, l = u = 0; break; case 2: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.flags = u, 8 != (255 & r.flags)) { t.msg = "unknown compression method", r.mode = 30; break } if (57344 & r.flags) { t.msg = "unknown header flags set", r.mode = 30; break } r.head && (r.head.text = u >> 8 & 1), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 3; case 3: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.time = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, E[2] = u >>> 16 & 255, E[3] = u >>> 24 & 255, r.check = B(r.check, E, 4, 0)), l = u = 0, r.mode = 4; case 4: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.xflags = 255 & u, r.head.os = u >> 8), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 5; case 5: if (1024 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length = u, r.head && (r.head.extra_len = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0 } else r.head && (r.head.extra = null); r.mode = 6; case 6: if (1024 & r.flags && (o < (c = r.length) && (c = o), c && (r.head && (k = r.head.extra_len - r.length, r.head.extra || (r.head.extra = new Array(r.head.extra_len)), I.arraySet(r.head.extra, i, s, c, k)), 512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, r.length -= c), r.length)) break t; r.length = 0, r.mode = 7; case 7: if (2048 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.name += String.fromCharCode(k)), k && o > c;) ; if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.name = null); r.length = 0, r.mode = 8; case 8: if (4096 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.comment += String.fromCharCode(k)), k && o > c;) ; if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.comment = null); r.mode = 9; case 9: if (512 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (65535 & r.check)) { t.msg = "header crc mismatch", r.mode = 30; break } l = u = 0 } r.head && (r.head.hcrc = r.flags >> 9 & 1, r.head.done = !0), t.adler = r.check = 0, r.mode = 12; break; case 10: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } t.adler = r.check = L(u), l = u = 0, r.mode = 11; case 11: if (0 === r.havedict) return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, 2; t.adler = r.check = 1, r.mode = 12; case 12: if (5 === e || 6 === e) break t; case 13: if (r.last) { u >>>= 7 & l, l -= 7 & l, r.mode = 27; break } for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } switch (r.last = 1 & u, l -= 1, 3 & (u >>>= 1)) { case 0: r.mode = 14; break; case 1: if (j(r), r.mode = 20, 6 !== e) break; u >>>= 2, l -= 2; break t; case 2: r.mode = 17; break; case 3: t.msg = "invalid block type", r.mode = 30 } u >>>= 2, l -= 2; break; case 14: for (u >>>= 7 & l, l -= 7 & l; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if ((65535 & u) != (u >>> 16 ^ 65535)) { t.msg = "invalid stored block lengths", r.mode = 30; break } if (r.length = 65535 & u, l = u = 0, r.mode = 15, 6 === e) break t; case 15: r.mode = 16; case 16: if (c = r.length) { if (c > o && (c = o), c > h && (c = h), 0 === c) break t; I.arraySet(n, i, s, c, a), o -= c, s += c, h -= c, a += c, r.length -= c; break } r.mode = 12; break; case 17: for (; 14 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.nlen = 257 + (31 & u), u >>>= 5, l -= 5, r.ndist = 1 + (31 & u), u >>>= 5, l -= 5, r.ncode = 4 + (15 & u), u >>>= 4, l -= 4, 286 < r.nlen || 30 < r.ndist) { t.msg = "too many length or distance symbols", r.mode = 30; break } r.have = 0, r.mode = 18; case 18: for (; r.have < r.ncode;) { for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.lens[A[r.have++]] = 7 & u, u >>>= 3, l -= 3 } for (; r.have < 19;) r.lens[A[r.have++]] = 0; if (r.lencode = r.lendyn, r.lenbits = 7, S = {bits: r.lenbits}, x = T(0, r.lens, 0, 19, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid code lengths set", r.mode = 30; break } r.have = 0, r.mode = 19; case 19: for (; r.have < r.nlen + r.ndist;) { for (; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (16 > b) u >>>= _, l -= _, r.lens[r.have++] = b; else { if (16 === b) { for (z = _ + 2; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u >>>= _, l -= _, 0 === r.have) { t.msg = "invalid bit length repeat", r.mode = 30; break } k = r.lens[r.have - 1], c = 3 + (3 & u), u >>>= 2, l -= 2 } else if (17 === b) { for (z = _ + 3; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 3 + (7 & (u >>>= _)), u >>>= 3, l -= 3 } else { for (z = _ + 7; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 11 + (127 & (u >>>= _)), u >>>= 7, l -= 7 } if (r.have + c > r.nlen + r.ndist) { t.msg = "invalid bit length repeat", r.mode = 30; break } for (; c--;) r.lens[r.have++] = k } } if (30 === r.mode) break; if (0 === r.lens[256]) { t.msg = "invalid code -- missing end-of-block", r.mode = 30; break } if (r.lenbits = 9, S = {bits: r.lenbits}, x = T(D, r.lens, 0, r.nlen, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid literal/lengths set", r.mode = 30; break } if (r.distbits = 6, r.distcode = r.distdyn, S = {bits: r.distbits}, x = T(F, r.lens, r.nlen, r.ndist, r.distcode, 0, r.work, S), r.distbits = S.bits, x) { t.msg = "invalid distances set", r.mode = 30; break } if (r.mode = 20, 6 === e) break t; case 20: r.mode = 21; case 21: if (o >= 6 && h >= 258) { t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, R(t, d), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, 12 === r.mode && (r.back = -1); break } for (r.back = 0; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (g && 0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.lencode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, r.length = b, 0 === g) { r.mode = 26; break } if (32 & g) { r.back = -1, r.mode = 12; break } if (64 & g) { t.msg = "invalid literal/length code", r.mode = 30; break } r.extra = 15 & g, r.mode = 22; case 22: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } r.was = r.length, r.mode = 23; case 23: for (; g = (C = r.distcode[u & (1 << r.distbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.distcode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, 64 & g) { t.msg = "invalid distance code", r.mode = 30; break } r.offset = b, r.extra = 15 & g, r.mode = 24; case 24: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.offset += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } if (r.offset > r.dmax) { t.msg = "invalid distance too far back", r.mode = 30; break } r.mode = 25; case 25: if (0 === h) break t; if (c = d - h, r.offset > c) { if ((c = r.offset - c) > r.whave && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break } p = c > r.wnext ? (c -= r.wnext, r.wsize - c) : r.wnext - c, c > r.length && (c = r.length), m = r.window } else m = n, p = a - r.offset, c = r.length; for (c > h && (c = h), h -= c, r.length -= c; n[a++] = m[p++], --c;) ; 0 === r.length && (r.mode = 21); break; case 26: if (0 === h) break t; n[a++] = r.length, h--, r.mode = 21; break; case 27: if (r.wrap) { for (; 32 > l;) { if (0 === o) break t; o--, u |= i[s++] << l, l += 8 } if (d -= h, t.total_out += d, r.total += d, d && (t.adler = r.check = r.flags ? B(r.check, n, d, a - d) : O(r.check, n, d, a - d)), d = h, (r.flags ? u : L(u)) !== r.check) { t.msg = "incorrect data check", r.mode = 30; break } l = u = 0 } r.mode = 28; case 28: if (r.wrap && r.flags) { for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (4294967295 & r.total)) { t.msg = "incorrect length check", r.mode = 30; break } l = u = 0 } r.mode = 29; case 29: x = 1; break t; case 30: x = -3; break t; case 31: return -4; case 32: default: return U } return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, (r.wsize || d !== t.avail_out && r.mode < 30 && (r.mode < 27 || 4 !== e)) && Z(t, t.output, t.next_out, d - t.avail_out) ? (r.mode = 31, -4) : (f -= t.avail_in, d -= t.avail_out, t.total_in += f, t.total_out += d, r.total += d, r.wrap && d && (t.adler = r.check = r.flags ? B(r.check, n, d, t.next_out - d) : O(r.check, n, d, t.next_out - d)), t.data_type = r.bits + (r.last ? 64 : 0) + (12 === r.mode ? 128 : 0) + (20 === r.mode || 15 === r.mode ? 256 : 0), (0 == f && 0 === d || 4 === e) && x === N && (x = -5), x) }, r.inflateEnd = function (t) { if (!t || !t.state) return U; var e = t.state; return e.window && (e.window = null), t.state = null, N }, r.inflateGetHeader = function (t, e) { var r; return t && t.state ? 0 == (2 & (r = t.state).wrap) ? U : ((r.head = e).done = !1, N) : U }, r.inflateSetDictionary = function (t, e) { var r, i = e.length; return t && t.state ? 0 !== (r = t.state).wrap && 11 !== r.mode ? U : 11 === r.mode && O(1, e, i, 0) !== r.check ? -3 : Z(t, e, i, i) ? (r.mode = 31, -4) : (r.havedict = 1, N) : U }, r.inflateInfo = "pako inflate (from Nodeca project)" }, {"../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50}], 50: [function (t, e, r) { "use strict"; var D = t("../utils/common"), F = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], N = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], U = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], P = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; e.exports = function (t, e, r, i, n, s, a, o) { var h, u, l, f, d, c, p, m, _, g = o.bits, b = 0, v = 0, y = 0, w = 0, k = 0, x = 0, S = 0, z = 0, C = 0, E = 0, A = null, I = 0, O = new D.Buf16(16), B = new D.Buf16(16), R = null, T = 0; for (b = 0; 15 >= b; b++) O[b] = 0; for (v = 0; i > v; v++) O[e[r + v]]++; for (k = g, w = 15; w >= 1 && 0 === O[w]; w--) ; if (k > w && (k = w), 0 === w) return n[s++] = 20971520, n[s++] = 20971520, o.bits = 1, 0; for (y = 1; w > y && 0 === O[y]; y++) ; for (y > k && (k = y), b = z = 1; 15 >= b; b++) if (z <<= 1, (z -= O[b]) < 0) return -1; if (z > 0 && (0 === t || 1 !== w)) return -1; for (B[1] = 0, b = 1; 15 > b; b++) B[b + 1] = B[b] + O[b]; for (v = 0; i > v; v++) 0 !== e[r + v] && (a[B[e[r + v]]++] = v); if (c = 0 === t ? (A = R = a, 19) : 1 === t ? (A = F, I -= 257, R = N, T -= 257, 256) : (A = U, R = P, -1), b = y, d = s, S = v = E = 0, l = -1, f = (C = 1 << (x = k)) - 1, 1 === t && C > 852 || 2 === t && C > 592) return 1; for (; ;) { for (p = b - S, _ = a[v] < c ? (m = 0, a[v]) : a[v] > c ? (m = R[T + a[v]], A[I + a[v]]) : (m = 96, 0), h = 1 << b - S, y = u = 1 << x; n[d + (E >> S) + (u -= h)] = p << 24 | m << 16 | _ | 0, 0 !== u;) ; for (h = 1 << b - 1; E & h;) h >>= 1; if (0 !== h ? (E &= h - 1, E += h) : E = 0, v++, 0 == --O[b]) { if (b === w) break; b = e[r + a[v]] } if (b > k && (E & f) !== l) { for (0 === S && (S = k), d += y, z = 1 << (x = b - S); w > x + S && !((z -= O[x + S]) <= 0);) x++, z <<= 1; if (C += 1 << x, 1 === t && C > 852 || 2 === t && C > 592) return 1; n[l = E & f] = k << 24 | x << 16 | d - s | 0 } } return 0 !== E && (n[d + E] = b - S << 24 | 64 << 16 | 0), o.bits = k, 0 } }, {"../utils/common": 41}], 51: [function (t, e, r) { "use strict"; e.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" } }, {}], 52: [function (t, e, r) { "use strict"; function i(t) { for (var e = t.length; 0 <= --e;) t[e] = 0 } function D(t, e, r, i, n) { this.static_tree = t, this.extra_bits = e, this.extra_base = r, this.elems = i, this.max_length = n, this.has_stree = t && t.length } function F(t, e) { this.dyn_tree = t, this.max_code = 0, this.stat_desc = e } function N(t) { return 256 > t ? E[t] : E[256 + (t >>> 7)] } function U(t, e) { t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255 } function P(t, e, r) { t.bi_valid > c - r ? (t.bi_buf |= e << t.bi_valid & 65535, U(t, t.bi_buf), t.bi_buf = e >> c - t.bi_valid, t.bi_valid += r - c) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += r) } function L(t, e, r) { P(t, r[2 * e], r[2 * e + 1]) } function j(t, e) { for (var r = 0; r |= 1 & t, t >>>= 1, r <<= 1, 0 < --e;) ; return r >>> 1 } function Z(t, e, r) { var i, n, s = new Array(g + 1), a = 0; for (i = 1; g >= i; i++) s[i] = a = a + r[i - 1] << 1; for (n = 0; e >= n; n++) { var o = t[2 * n + 1]; 0 !== o && (t[2 * n] = j(s[o]++, o)) } } function W(t) { var e; for (e = 0; l > e; e++) t.dyn_ltree[2 * e] = 0; for (e = 0; f > e; e++) t.dyn_dtree[2 * e] = 0; for (e = 0; d > e; e++) t.bl_tree[2 * e] = 0; t.dyn_ltree[2 * m] = 1, t.opt_len = t.static_len = 0, t.last_lit = t.matches = 0 } function M(t) { 8 < t.bi_valid ? U(t, t.bi_buf) : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0 } function H(t, e, r, i) { var n = 2 * e, s = 2 * r; return t[n] < t[s] || t[n] === t[s] && i[e] <= i[r] } function G(t, e, r) { for (var i = t.heap[r], n = r << 1; n <= t.heap_len && (n < t.heap_len && H(e, t.heap[n + 1], t.heap[n], t.depth) && n++, !H(e, i, t.heap[n], t.depth));) t.heap[r] = t.heap[n], r = n, n <<= 1; t.heap[r] = i } function K(t, e, r) { var i, n, s, a, o = 0; if (0 !== t.last_lit) for (; i = t.pending_buf[t.d_buf + 2 * o] << 8 | t.pending_buf[t.d_buf + 2 * o + 1], n = t.pending_buf[t.l_buf + o], o++, 0 === i ? L(t, n, e) : (L(t, (s = A[n]) + u + 1, e), 0 !== (a = w[s]) && P(t, n -= I[s], a), L(t, s = N(--i), r), 0 !== (a = k[s]) && P(t, i -= T[s], a)), o < t.last_lit;) ; L(t, m, e) } function Y(t, e) { var r, i, n, s = e.dyn_tree, a = e.stat_desc.static_tree, o = e.stat_desc.has_stree, h = e.stat_desc.elems, u = -1; for (t.heap_len = 0, t.heap_max = _, r = 0; h > r; r++) 0 !== s[2 * r] ? (t.heap[++t.heap_len] = u = r, t.depth[r] = 0) : s[2 * r + 1] = 0; for (; t.heap_len < 2;) s[2 * (n = t.heap[++t.heap_len] = 2 > u ? ++u : 0)] = 1, t.depth[n] = 0, t.opt_len--, o && (t.static_len -= a[2 * n + 1]); for (e.max_code = u, r = t.heap_len >> 1; r >= 1; r--) G(t, s, r); for (n = h; r = t.heap[1], t.heap[1] = t.heap[t.heap_len--], G(t, s, 1), i = t.heap[1], t.heap[--t.heap_max] = r, t.heap[--t.heap_max] = i, s[2 * n] = s[2 * r] + s[2 * i], t.depth[n] = (t.depth[r] >= t.depth[i] ? t.depth[r] : t.depth[i]) + 1, s[2 * r + 1] = s[2 * i + 1] = n, t.heap[1] = n++, G(t, s, 1), 2 <= t.heap_len;) ; t.heap[--t.heap_max] = t.heap[1], function (t, e) { var r, i, n, s, a, o, h = e.dyn_tree, u = e.max_code, l = e.stat_desc.static_tree, f = e.stat_desc.has_stree, d = e.stat_desc.extra_bits, c = e.stat_desc.extra_base, p = e.stat_desc.max_length, m = 0; for (s = 0; g >= s; s++) t.bl_count[s] = 0; for (h[2 * t.heap[t.heap_max] + 1] = 0, r = t.heap_max + 1; _ > r; r++) p < (s = h[2 * h[2 * (i = t.heap[r]) + 1] + 1] + 1) && (s = p, m++), h[2 * i + 1] = s, i > u || (t.bl_count[s]++, a = 0, i >= c && (a = d[i - c]), o = h[2 * i], t.opt_len += o * (s + a), f && (t.static_len += o * (l[2 * i + 1] + a))); if (0 !== m) { do { for (s = p - 1; 0 === t.bl_count[s];) s--; t.bl_count[s]--, t.bl_count[s + 1] += 2, t.bl_count[p]--, m -= 2 } while (m > 0); for (s = p; 0 !== s; s--) for (i = t.bl_count[s]; 0 !== i;) u < (n = t.heap[--r]) || (h[2 * n + 1] !== s && (t.opt_len += (s - h[2 * n + 1]) * h[2 * n], h[2 * n + 1] = s), i--) } }(t, e), Z(s, u, t.bl_count) } function X(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), e[2 * (r + 1) + 1] = 65535, i = 0; r >= i; i++) n = a, a = e[2 * (i + 1) + 1], ++o < h && n === a || (u > o ? t.bl_tree[2 * n] += o : 0 !== n ? (n !== s && t.bl_tree[2 * n]++, t.bl_tree[2 * b]++) : 10 >= o ? t.bl_tree[2 * v]++ : t.bl_tree[2 * y]++, s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4)) } function V(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), i = 0; r >= i; i++) if (n = a, a = e[2 * (i + 1) + 1], !(++o < h && n === a)) { if (u > o) for (; L(t, n, t.bl_tree), 0 != --o;) ; else 0 !== n ? (n !== s && (L(t, n, t.bl_tree), o--), L(t, b, t.bl_tree), P(t, o - 3, 2)) : 10 >= o ? (L(t, v, t.bl_tree), P(t, o - 3, 3)) : (L(t, y, t.bl_tree), P(t, o - 11, 7)); s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4) } } function J(t, e, r, i) { P(t, (s << 1) + (i ? 1 : 0), 3), function (t, e, r, i) { M(t), i && (U(t, r), U(t, ~r)), n.arraySet(t.pending_buf, t.window, e, r, t.pending), t.pending += r }(t, e, r, !0) } var n = t("../utils/common"), o = 0, h = 1, s = 0, a = 29, u = 256, l = u + 1 + a, f = 30, d = 19, _ = 2 * l + 1, g = 15, c = 16, p = 7, m = 256, b = 16, v = 17, y = 18, w = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], k = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], S = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], z = new Array(2 * (l + 2)); i(z); var C = new Array(2 * f); i(C); var E = new Array(512); i(E); var A = new Array(256); i(A); var I = new Array(a); i(I); var O, B, R, T = new Array(f); i(T); var q = !1; r._tr_init = function (t) { q || (function () { var t, e, r, i, n, s = new Array(g + 1); for (i = r = 0; a - 1 > i; i++) for (I[i] = r, t = 0; t < 1 << w[i]; t++) A[r++] = i; for (A[r - 1] = i, i = n = 0; 16 > i; i++) for (T[i] = n, t = 0; t < 1 << k[i]; t++) E[n++] = i; for (n >>= 7; f > i; i++) for (T[i] = n << 7, t = 0; t < 1 << k[i] - 7; t++) E[256 + n++] = i; for (e = 0; g >= e; e++) s[e] = 0; for (t = 0; 143 >= t;) z[2 * t + 1] = 8, t++, s[8]++; for (; 255 >= t;) z[2 * t + 1] = 9, t++, s[9]++; for (; 279 >= t;) z[2 * t + 1] = 7, t++, s[7]++; for (; 287 >= t;) z[2 * t + 1] = 8, t++, s[8]++; for (Z(z, l + 1, s), t = 0; f > t; t++) C[2 * t + 1] = 5, C[2 * t] = j(t, 5); O = new D(z, w, u + 1, l, g), B = new D(C, k, 0, f, g), R = new D(new Array(0), x, 0, d, p) }(), q = !0), t.l_desc = new F(t.dyn_ltree, O), t.d_desc = new F(t.dyn_dtree, B), t.bl_desc = new F(t.bl_tree, R), t.bi_buf = 0, t.bi_valid = 0, W(t) }, r._tr_stored_block = J, r._tr_flush_block = function (t, e, r, i) { var n, s, a = 0; 0 < t.level ? (2 === t.strm.data_type && (t.strm.data_type = function (t) { var e, r = 4093624447; for (e = 0; 31 >= e; e++, r >>>= 1) if (1 & r && 0 !== t.dyn_ltree[2 * e]) return o; if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return h; for (e = 32; u > e; e++) if (0 !== t.dyn_ltree[2 * e]) return h; return o }(t)), Y(t, t.l_desc), Y(t, t.d_desc), a = function (t) { var e; for (X(t, t.dyn_ltree, t.l_desc.max_code), X(t, t.dyn_dtree, t.d_desc.max_code), Y(t, t.bl_desc), e = d - 1; e >= 3 && 0 === t.bl_tree[2 * S[e] + 1]; e--) ; return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e }(t), n = t.opt_len + 3 + 7 >>> 3, (s = t.static_len + 3 + 7 >>> 3) <= n && (n = s)) : n = s = r + 5, n >= r + 4 && -1 !== e ? J(t, e, r, i) : 4 === t.strategy || s === n ? (P(t, 2 + (i ? 1 : 0), 3), K(t, z, C)) : (P(t, 4 + (i ? 1 : 0), 3), function (t, e, r, i) { var n; for (P(t, e - 257, 5), P(t, r - 1, 5), P(t, i - 4, 4), n = 0; i > n; n++) P(t, t.bl_tree[2 * S[n] + 1], 3); V(t, t.dyn_ltree, e - 1), V(t, t.dyn_dtree, r - 1) }(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, a + 1), K(t, t.dyn_ltree, t.dyn_dtree)), W(t), i && M(t) }, r._tr_tally = function (t, e, r) { return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255, t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e, t.pending_buf[t.l_buf + t.last_lit] = 255 & r, t.last_lit++, 0 === e ? t.dyn_ltree[2 * r]++ : (t.matches++, e--, t.dyn_ltree[2 * (A[r] + u + 1)]++, t.dyn_dtree[2 * N(e)]++), t.last_lit === t.lit_bufsize - 1 }, r._tr_align = function (t) { P(t, 2, 3), L(t, m, z), function (t) { 16 === t.bi_valid ? (U(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : 8 <= t.bi_valid && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) }(t) } }, {"../utils/common": 41}], 53: [function (t, e, r) { "use strict"; e.exports = function () { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0 } }, {}], 54: [function (t, e, r) { "use strict"; e.exports = "function" == typeof setImmediate ? setImmediate : function () { var t = [].slice.apply(arguments); t.splice(1, 0, 0), setTimeout.apply(null, t) } }, {}] }, {}, [10])(10) }) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}, require("buffer").Buffer) }, {buffer: 78}], 88: [function (require, module, exports) { exports.Parser = require("./lib/parser").Parser, exports.rules = require("./lib/rules"), exports.errors = require("./lib/errors"), exports.results = require("./lib/parsing-results"), exports.StringSource = require("./lib/StringSource"), exports.Token = require("./lib/Token"), exports.bottomUp = require("./lib/bottom-up"), exports.RegexTokeniser = require("./lib/regex-tokeniser").RegexTokeniser, exports.rule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } }, { "./lib/StringSource": 89, "./lib/Token": 90, "./lib/bottom-up": 92, "./lib/errors": 93, "./lib/parser": 95, "./lib/parsing-results": 96, "./lib/regex-tokeniser": 97, "./lib/rules": 98 }], 89: [function (require, module, exports) { var util = require("util"), StringSourceRange = (module.exports = function (string, description) { var self = { asString: function () { return string }, range: function (startIndex, endIndex) { return new StringSourceRange(string, description, startIndex, endIndex) } }; return self }, function (string, description, startIndex, endIndex) { this._string = string, this._description = description, this._startIndex = startIndex, this._endIndex = endIndex }); StringSourceRange.prototype.to = function (otherRange) { return new StringSourceRange(this._string, this._description, this._startIndex, otherRange._endIndex) }, StringSourceRange.prototype.describe = function () { var position = this._position(), description = this._description ? this._description + "\n" : ""; return util.format("%sLine number: %s\nCharacter number: %s", description, position.lineNumber, position.characterNumber) }, StringSourceRange.prototype.lineNumber = function () { return this._position().lineNumber }, StringSourceRange.prototype.characterNumber = function () { return this._position().characterNumber }, StringSourceRange.prototype._position = function () { for (var self = this, index = 0, nextNewLine = function () { return self._string.indexOf("\n", index) }, lineNumber = 1; -1 !== nextNewLine() && nextNewLine() < this._startIndex;) index = nextNewLine() + 1, lineNumber += 1; var characterNumber = this._startIndex - index + 1; return {lineNumber: lineNumber, characterNumber: characterNumber} } }, {util: 121}], 90: [function (require, module, exports) { module.exports = function (name, value, source) { this.name = name, this.value = value, source && (this.source = source) } }, {}], 91: [function (require, module, exports) { var TokenIterator = module.exports = function (tokens, startIndex) { this._tokens = tokens, this._startIndex = startIndex || 0 }; TokenIterator.prototype.head = function () { return this._tokens[this._startIndex] }, TokenIterator.prototype.tail = function (startIndex) { return new TokenIterator(this._tokens, this._startIndex + 1) }, TokenIterator.prototype.toArray = function () { return this._tokens.slice(this._startIndex) }, TokenIterator.prototype.end = function () { return this._tokens[this._tokens.length - 1] }, TokenIterator.prototype.to = function (end) { var start = this.head().source, endToken = end.head() || end.end(); return start.to(endToken.source) } }, {}], 92: [function (require, module, exports) { function InfixRules(infixRules) { function untilExclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name))) } function untilInclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name) + 1)) } function ruleNames() { return infixRules.map(function (rule) { return rule.name }) } function apply(leftResult) { for (var currentResult, source; ;) { if (currentResult = applyToTokens(leftResult.remaining()), !currentResult.isSuccess()) return currentResult.isFailure() ? leftResult : currentResult; source = leftResult.source().to(currentResult.source()), leftResult = results.success(currentResult.value()(leftResult.value(), source), currentResult.remaining(), source) } } function applyToTokens(tokens) { return rules.firstOf("infix", infixRules.map(function (infix) { return infix.rule }))(tokens) } return {apply: apply, untilExclusive: untilExclusive, untilInclusive: untilInclusive} } var rules = require("./rules"), results = require("./parsing-results"); exports.parser = function (name, prefixRules, infixRuleBuilders) { function createInfixRule(infixRuleBuilder) { return {name: infixRuleBuilder.name, rule: lazyRule(infixRuleBuilder.ruleBuilder.bind(null, self))} } function rule() { return createRule(infixRules) } function leftAssociative(name) { return createRule(infixRules.untilExclusive(name)) } function rightAssociative(name) { return createRule(infixRules.untilInclusive(name)) } function createRule(infixRules) { return apply.bind(null, infixRules) } function apply(infixRules, tokens) { var leftResult = prefixRule(tokens); return leftResult.isSuccess() ? infixRules.apply(leftResult) : leftResult } var self = {rule: rule, leftAssociative: leftAssociative, rightAssociative: rightAssociative}, infixRules = new InfixRules(infixRuleBuilders.map(createInfixRule)), prefixRule = rules.firstOf(name, prefixRules); return self }, exports.infix = function (name, ruleBuilder) { function map(func) { return exports.infix(name, function (parser) { var rule = ruleBuilder(parser); return function (tokens) { var result = rule(tokens); return result.map(function (right) { return function (left, source) { return func(left, right, source) } }) } }) } return {name: name, ruleBuilder: ruleBuilder, map: map} }; var lazyRule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } }, {"./parsing-results": 96, "./rules": 98}], 93: [function (require, module, exports) { exports.error = function (options) { return new Error(options) }; var Error = function (options) { this.expected = options.expected, this.actual = options.actual, this._location = options.location }; Error.prototype.describe = function () { var locationDescription = this._location ? this._location.describe() + ":\n" : ""; return locationDescription + "Expected " + this.expected + "\nbut got " + this.actual }, Error.prototype.lineNumber = function () { return this._location.lineNumber() }, Error.prototype.characterNumber = function () { return this._location.characterNumber() } }, {}], 94: [function (require, module, exports) { var LazyIterator = (exports.fromArray = function (array) { var index = 0, hasNext = function () { return index < array.length }; return new LazyIterator({ hasNext: hasNext, next: function () { if (hasNext()) return array[index++]; throw new Error("No more elements") } }) }, function (iterator) { this._iterator = iterator }); LazyIterator.prototype.map = function (func) { var iterator = this._iterator; return new LazyIterator({ hasNext: function () { return iterator.hasNext() }, next: function () { return func(iterator.next()) } }) }, LazyIterator.prototype.filter = function (condition) { var next, iterator = this._iterator, moved = !1, hasNext = !1, moveIfNecessary = function () { if (!moved) for (moved = !0, hasNext = !1; iterator.hasNext() && !hasNext;) next = iterator.next(), hasNext = condition(next) }; return new LazyIterator({ hasNext: function () { return moveIfNecessary(), hasNext }, next: function () { moveIfNecessary(); var toReturn = next; return moved = !1, toReturn } }) }, LazyIterator.prototype.first = function () { var iterator = this._iterator; return this._iterator.hasNext() ? iterator.next() : null }, LazyIterator.prototype.toArray = function () { for (var result = []; this._iterator.hasNext();) result.push(this._iterator.next()); return result } }, {}], 95: [function (require, module, exports) { var TokenIterator = require("./TokenIterator"); exports.Parser = function (options) { var parseTokens = function (parser, tokens) { return parser(new TokenIterator(tokens)) }; return {parseTokens: parseTokens} } }, {"./TokenIterator": 91}], 96: [function (require, module, exports) { module.exports = { failure: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({status: "failure", remaining: remaining, errors: errors}) }, error: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({status: "error", remaining: remaining, errors: errors}) }, success: function (value, remaining, source) { return new Result({ status: "success", value: value, source: source, remaining: remaining, errors: [] }) }, cut: function (remaining) { return new Result({status: "cut", remaining: remaining, errors: []}) } }; var Result = function (options) { this._value = options.value, this._status = options.status, this._hasValue = void 0 !== options.value, this._remaining = options.remaining, this._source = options.source, this._errors = options.errors }; Result.prototype.map = function (func) { return this._hasValue ? new Result({ value: func(this._value, this._source), status: this._status, remaining: this._remaining, source: this._source, errors: this._errors }) : this }, Result.prototype.changeRemaining = function (remaining) { return new Result({ value: this._value, status: this._status, remaining: remaining, source: this._source, errors: this._errors }) }, Result.prototype.isSuccess = function () { return "success" === this._status || "cut" === this._status }, Result.prototype.isFailure = function () { return "failure" === this._status }, Result.prototype.isError = function () { return "error" === this._status }, Result.prototype.isCut = function () { return "cut" === this._status }, Result.prototype.value = function () { return this._value }, Result.prototype.remaining = function () { return this._remaining }, Result.prototype.source = function () { return this._source }, Result.prototype.errors = function () { return this._errors } }, {}], 97: [function (require, module, exports) { function RegexTokeniser(rules) { function tokenise(input, description) { for (var source = new StringSource(input, description), index = 0, tokens = []; index < input.length;) { var result = readNextToken(input, index, source); index = result.endIndex, tokens.push(result.token) } return tokens.push(endToken(input, source)), tokens } function readNextToken(string, startIndex, source) { for (var i = 0; i < rules.length; i++) { var regex = rules[i].regex; regex.lastIndex = startIndex; var result = regex.exec(string); if (result) { var endIndex = startIndex + result[0].length; if (result.index === startIndex && endIndex > startIndex) { var value = result[1], token = new Token(rules[i].name, value, source.range(startIndex, endIndex)); return {token: token, endIndex: endIndex} } } } var endIndex = startIndex + 1, token = new Token("unrecognisedCharacter", string.substring(startIndex, endIndex), source.range(startIndex, endIndex)); return {token: token, endIndex: endIndex} } function endToken(input, source) { return new Token("end", null, source.range(input.length, input.length)) } return rules = rules.map(function (rule) { return {name: rule.name, regex: new RegExp(rule.regex.source, "g")} }), {tokenise: tokenise} } var Token = require("./Token"), StringSource = require("./StringSource"); exports.RegexTokeniser = RegexTokeniser }, {"./StringSource": 89, "./Token": 90}], 98: [function (require, module, exports) { function noOpRule(input) { return results.success(null, input) } function describeTokenMismatch(input, expected) { var error, token = input.head(); return error = token ? errors.error({ expected: expected, actual: describeToken(token), location: token.source }) : errors.error({expected: expected, actual: "end of tokens"}), results.failure([error], input) } var _ = require("underscore"), options = require("option"), results = require("./parsing-results"), errors = require("./errors"), lazyIterators = require("./lazy-iterators"); exports.token = function (tokenType, value) { var matchValue = void 0 !== value; return function (input) { var token = input.head(); if (!token || token.name !== tokenType || matchValue && token.value !== value) { var expected = describeToken({name: tokenType, value: value}); return describeTokenMismatch(input, expected) } return results.success(token.value, input.tail(), token.source) } }, exports.tokenOfType = function (tokenType) { return exports.token(tokenType) }, exports.firstOf = function (name, parsers) { return _.isArray(parsers) || (parsers = Array.prototype.slice.call(arguments, 1)), function (input) { return lazyIterators.fromArray(parsers).map(function (parser) { return parser(input) }).filter(function (result) { return result.isSuccess() || result.isError() }).first() || describeTokenMismatch(input, name) } }, exports.then = function (parser, func) { return function (input) { var result = parser(input); return result.map || console.log(result), result.map(func) } }, exports.sequence = function () { function isCapturedRule(subRule) { return subRule.isCaptured } var parsers = Array.prototype.slice.call(arguments, 0), rule = function (input) { var result = _.foldl(parsers, function (memo, parser) { var result = memo.result, hasCut = memo.hasCut; if (!result.isSuccess()) return {result: result, hasCut: hasCut}; var subResult = parser(result.remaining()); if (subResult.isCut()) return {result: result, hasCut: !0}; if (subResult.isSuccess()) { var values; values = parser.isCaptured ? result.value().withValue(parser, subResult.value()) : result.value(); var remaining = subResult.remaining(), source = input.to(remaining); return {result: results.success(values, remaining, source), hasCut: hasCut} } return hasCut ? { result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut } : {result: subResult, hasCut: hasCut} }, {result: results.success(new SequenceValues, input), hasCut: !1}).result, source = input.to(result.remaining()); return result.map(function (values) { return values.withValue(exports.sequence.source, source) }) }; return rule.head = function () { var firstCapture = _.find(parsers, isCapturedRule); return exports.then(rule, exports.sequence.extract(firstCapture)) }, rule.map = function (func) { return exports.then(rule, function (result) { return func.apply(this, result.toArray()) }) }, rule }; var SequenceValues = function (values, valuesArray) { this._values = values || {}, this._valuesArray = valuesArray || [] }; SequenceValues.prototype.withValue = function (rule, value) { if (rule.captureName && rule.captureName in this._values) throw new Error('Cannot add second value for capture "' + rule.captureName + '"'); var newValues = _.clone(this._values); newValues[rule.captureName] = value; var newValuesArray = this._valuesArray.concat([value]); return new SequenceValues(newValues, newValuesArray) }, SequenceValues.prototype.get = function (rule) { if (rule.captureName in this._values) return this._values[rule.captureName]; throw new Error('No value for capture "' + rule.captureName + '"') }, SequenceValues.prototype.toArray = function () { return this._valuesArray }, exports.sequence.capture = function (rule, name) { var captureRule = function () { return rule.apply(this, arguments) }; return captureRule.captureName = name, captureRule.isCaptured = !0, captureRule }, exports.sequence.extract = function (rule) { return function (result) { return result.get(rule) } }, exports.sequence.applyValues = function (func) { var rules = Array.prototype.slice.call(arguments, 1); return function (result) { var values = rules.map(function (rule) { return result.get(rule) }); return func.apply(this, values) } }, exports.sequence.source = {captureName: "☃source☃"}, exports.sequence.cut = function () { return function (input) { return results.cut(input) } }, exports.optional = function (rule) { return function (input) { var result = rule(input); return result.isSuccess() ? result.map(options.some) : result.isFailure() ? results.success(options.none, input) : result } }, exports.zeroOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !1) }, exports.oneOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !0) }; var zeroOrMore = exports.zeroOrMore = function (rule) { return function (input) { for (var result, values = []; (result = rule(input)) && result.isSuccess();) input = result.remaining(), values.push(result.value()); return result.isError() ? result : results.success(values, input) } }; exports.oneOrMore = function (rule) { return exports.oneOrMoreWithSeparator(rule, noOpRule) }; var repeatedWithSeparator = function (rule, separator, isOneOrMore) { return function (input) { var result = rule(input); if (result.isSuccess()) { var mainRule = exports.sequence.capture(rule, "main"), remainingRule = zeroOrMore(exports.then(exports.sequence(separator, mainRule), exports.sequence.extract(mainRule))), remainingResult = remainingRule(result.remaining()); return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining()) } return isOneOrMore || result.isError() ? result : results.success([], input) } }; exports.leftAssociative = function (leftRule, rightRule, func) { var rights; rights = func ? [{func: func, rule: rightRule}] : rightRule, rights = rights.map(function (right) { return exports.then(right.rule, function (rightValue) { return function (leftValue, source) { return right.func(leftValue, rightValue, source) } }) }); var repeatedRule = exports.firstOf.apply(null, ["rules"].concat(rights)); return function (input) { var start = input, leftResult = leftRule(input); if (!leftResult.isSuccess()) return leftResult; for (var repeatedResult = repeatedRule(leftResult.remaining()); repeatedResult.isSuccess();) { var remaining = repeatedResult.remaining(), source = start.to(repeatedResult.remaining()), right = repeatedResult.value(); leftResult = results.success(right(leftResult.value(), source), remaining, source), repeatedResult = repeatedRule(leftResult.remaining()) } return repeatedResult.isError() ? repeatedResult : leftResult } }, exports.leftAssociative.firstOf = function () { return Array.prototype.slice.call(arguments, 0) }, exports.nonConsuming = function (rule) { return function (input) { return rule(input).changeRemaining(input) } }; var describeToken = function (token) { return token.value ? token.name + ' "' + token.value + '"' : token.name } }, {"./errors": 93, "./lazy-iterators": 94, "./parsing-results": 96, option: 99, underscore: 117}], 99: [function (require, module, exports) { function callOrReturn(value) { return "function" == typeof value ? value() : value } exports.none = Object.create({ value: function () { throw new Error("Called value on none") }, isNone: function () { return !0 }, isSome: function () { return !1 }, map: function () { return exports.none }, flatMap: function () { return exports.none }, filter: function () { return exports.none }, toArray: function () { return [] }, orElse: callOrReturn, valueOrElse: callOrReturn }), exports.some = function (value) { return new Some(value) }; var Some = function (value) { this._value = value }; Some.prototype.value = function () { return this._value }, Some.prototype.isNone = function () { return !1 }, Some.prototype.isSome = function () { return !0 }, Some.prototype.map = function (func) { return new Some(func(this._value)) }, Some.prototype.flatMap = function (func) { return func(this._value) }, Some.prototype.filter = function (predicate) { return predicate(this._value) ? this : exports.none }, Some.prototype.toArray = function () { return [this._value] }, Some.prototype.orElse = function (value) { return this }, Some.prototype.valueOrElse = function (value) { return this._value }, exports.isOption = function (value) { return value === exports.none || value instanceof Some }, exports.fromNullable = function (value) { return null == value ? exports.none : new Some(value) } }, {}], 100: [function (require, module, exports) { (function (process) { function normalizeArray(parts, allowAboveRoot) { for (var up = 0, i = parts.length - 1; i >= 0; i--) { var last = parts[i]; "." === last ? parts.splice(i, 1) : ".." === last ? (parts.splice(i, 1), up++) : up && (parts.splice(i, 1), up--) } if (allowAboveRoot) for (; up--; up) parts.unshift(".."); return parts } function filter(xs, f) { if (xs.filter) return xs.filter(f); for (var res = [], i = 0; i < xs.length; i++) f(xs[i], i, xs) && res.push(xs[i]); return res } var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, splitPath = function (filename) { return splitPathRe.exec(filename).slice(1) }; exports.resolve = function () { for (var resolvedPath = "", resolvedAbsolute = !1, i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : process.cwd(); if ("string" != typeof path) throw new TypeError("Arguments to path.resolve must be strings"); path && (resolvedPath = path + "/" + resolvedPath, resolvedAbsolute = "/" === path.charAt(0)) } return resolvedPath = normalizeArray(filter(resolvedPath.split("/"), function (p) { return !!p }), !resolvedAbsolute).join("/"), (resolvedAbsolute ? "/" : "") + resolvedPath || "." }, exports.normalize = function (path) { var isAbsolute = exports.isAbsolute(path), trailingSlash = "/" === substr(path, -1); return path = normalizeArray(filter(path.split("/"), function (p) { return !!p }), !isAbsolute).join("/"), path || isAbsolute || (path = "."), path && trailingSlash && (path += "/"), (isAbsolute ? "/" : "") + path }, exports.isAbsolute = function (path) { return "/" === path.charAt(0) }, exports.join = function () { var paths = Array.prototype.slice.call(arguments, 0); return exports.normalize(filter(paths, function (p, index) { if ("string" != typeof p) throw new TypeError("Arguments to path.join must be strings"); return p }).join("/")) }, exports.relative = function (from, to) { function trim(arr) { for (var start = 0; start < arr.length && "" === arr[start]; start++) ; for (var end = arr.length - 1; end >= 0 && "" === arr[end]; end--) ; return start > end ? [] : arr.slice(start, end - start + 1) } from = exports.resolve(from).substr(1), to = exports.resolve(to).substr(1); for (var fromParts = trim(from.split("/")), toParts = trim(to.split("/")), length = Math.min(fromParts.length, toParts.length), samePartsLength = length, i = 0; length > i; i++) if (fromParts[i] !== toParts[i]) { samePartsLength = i; break } for (var outputParts = [], i = samePartsLength; i < fromParts.length; i++) outputParts.push(".."); return outputParts = outputParts.concat(toParts.slice(samePartsLength)), outputParts.join("/") }, exports.sep = "/", exports.delimiter = ":", exports.dirname = function (path) { var result = splitPath(path), root = result[0], dir = result[1]; return root || dir ? (dir && (dir = dir.substr(0, dir.length - 1)), root + dir) : "." }, exports.basename = function (path, ext) { var f = splitPath(path)[2]; return ext && f.substr(-1 * ext.length) === ext && (f = f.substr(0, f.length - ext.length)), f }, exports.extname = function (path) { return splitPath(path)[3] }; var substr = "b" === "ab".substr(-1) ? function (str, start, len) { return str.substr(start, len) } : function (str, start, len) { return 0 > start && (start = str.length + start), str.substr(start, len) } }).call(this, require("_process")) }, {_process: 102}], 101: [function (require, module, exports) { (function (process) { "use strict"; function nextTick(fn, arg1, arg2, arg3) { if ("function" != typeof fn) throw new TypeError('"callback" argument must be a function'); var args, i, len = arguments.length; switch (len) { case 0: case 1: return process.nextTick(fn); case 2: return process.nextTick(function () { fn.call(null, arg1) }); case 3: return process.nextTick(function () { fn.call(null, arg1, arg2) }); case 4: return process.nextTick(function () { fn.call(null, arg1, arg2, arg3) }); default: for (args = new Array(len - 1), i = 0; i < args.length;) args[i++] = arguments[i]; return process.nextTick(function () { fn.apply(null, args) }) } } !process.version || 0 === process.version.indexOf("v0.") || 0 === process.version.indexOf("v1.") && 0 !== process.version.indexOf("v1.8.") ? module.exports = nextTick : module.exports = process.nextTick }).call(this, require("_process")) }, {_process: 102}], 102: [function (require, module, exports) { function defaultSetTimout() { throw new Error("setTimeout has not been defined") } function defaultClearTimeout() { throw new Error("clearTimeout has not been defined") } function runTimeout(fun) { if (cachedSetTimeout === setTimeout) return setTimeout(fun, 0); if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) return cachedSetTimeout = setTimeout, setTimeout(fun, 0); try { return cachedSetTimeout(fun, 0) } catch (e) { try { return cachedSetTimeout.call(null, fun, 0) } catch (e) { return cachedSetTimeout.call(this, fun, 0) } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) return clearTimeout(marker); if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) return cachedClearTimeout = clearTimeout, clearTimeout(marker); try { return cachedClearTimeout(marker) } catch (e) { try { return cachedClearTimeout.call(null, marker) } catch (e) { return cachedClearTimeout.call(this, marker) } } } function cleanUpNextTick() { draining && currentQueue && (draining = !1, currentQueue.length ? queue = currentQueue.concat(queue) : queueIndex = -1, queue.length && drainQueue()) } function drainQueue() { if (!draining) { var timeout = runTimeout(cleanUpNextTick); draining = !0; for (var len = queue.length; len;) { for (currentQueue = queue, queue = []; ++queueIndex < len;) currentQueue && currentQueue[queueIndex].run(); queueIndex = -1, len = queue.length } currentQueue = null, draining = !1, runClearTimeout(timeout) } } function Item(fun, array) { this.fun = fun, this.array = array } function noop() { } var cachedSetTimeout, cachedClearTimeout, process = module.exports = {}; !function () { try { cachedSetTimeout = "function" == typeof setTimeout ? setTimeout : defaultSetTimout } catch (e) { cachedSetTimeout = defaultSetTimout } try { cachedClearTimeout = "function" == typeof clearTimeout ? clearTimeout : defaultClearTimeout } catch (e) { cachedClearTimeout = defaultClearTimeout } }(); var currentQueue, queue = [], draining = !1, queueIndex = -1; process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) for (var i = 1; i < arguments.length; i++) args[i - 1] = arguments[i]; queue.push(new Item(fun, args)), 1 !== queue.length || draining || runTimeout(drainQueue) }, Item.prototype.run = function () { this.fun.apply(null, this.array) }, process.title = "browser", process.browser = !0, process.env = {}, process.argv = [], process.version = "", process.versions = {}, process.on = noop, process.addListener = noop, process.once = noop, process.off = noop, process.removeListener = noop, process.removeAllListeners = noop, process.emit = noop, process.binding = function (name) { throw new Error("process.binding is not supported") }, process.cwd = function () { return "/" }, process.chdir = function (dir) { throw new Error("process.chdir is not supported") }, process.umask = function () { return 0 } }, {}], 103: [function (require, module, exports) { module.exports = require("./lib/_stream_duplex.js") }, {"./lib/_stream_duplex.js": 104}], 104: [function (require, module, exports) { "use strict"; function Duplex(options) { return this instanceof Duplex ? (Readable.call(this, options), Writable.call(this, options), options && options.readable === !1 && (this.readable = !1), options && options.writable === !1 && (this.writable = !1), this.allowHalfOpen = !0, options && options.allowHalfOpen === !1 && (this.allowHalfOpen = !1), void this.once("end", onend)) : new Duplex(options) } function onend() { this.allowHalfOpen || this._writableState.ended || processNextTick(onEndNT, this) } function onEndNT(self) { self.end() } var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) keys.push(key); return keys }; module.exports = Duplex; var processNextTick = require("process-nextick-args"), util = require("core-util-is"); util.inherits = require("inherits"); var Readable = require("./_stream_readable"), Writable = require("./_stream_writable"); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; Duplex.prototype[method] || (Duplex.prototype[method] = Writable.prototype[method]) } }, { "./_stream_readable": 106, "./_stream_writable": 108, "core-util-is": 79, inherits: 84, "process-nextick-args": 101 }], 105: [function (require, module, exports) { "use strict"; function PassThrough(options) { return this instanceof PassThrough ? void Transform.call(this, options) : new PassThrough(options) } module.exports = PassThrough; var Transform = require("./_stream_transform"), util = require("core-util-is"); util.inherits = require("inherits"), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk) } }, {"./_stream_transform": 107, "core-util-is": 79, inherits: 84}], 106: [function (require, module, exports) { (function (process) { "use strict"; function prependListener(emitter, event, fn) { return "function" == typeof emitter.prependListener ? emitter.prependListener(event, fn) : void(emitter._events && emitter._events[event] ? isArray(emitter._events[event]) ? emitter._events[event].unshift(fn) : emitter._events[event] = [fn, emitter._events[event]] : emitter.on(event, fn)) } function ReadableState(options, stream) { Duplex = Duplex || require("./_stream_duplex"), options = options || {}, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.buffer = new BufferList, this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.ranOut = !1, this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = require("string_decoder/").StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding) } function Readable(options) { return Duplex = Duplex || require("./_stream_duplex"), this instanceof Readable ? (this._readableState = new ReadableState(options, this), this.readable = !0, options && "function" == typeof options.read && (this._read = options.read), void Stream.call(this)) : new Readable(options) } function readableAddChunk(stream, state, chunk, encoding, addToFront) { var er = chunkInvalid(state, chunk); if (er) stream.emit("error", er); else if (null === chunk) state.reading = !1, onEofChunk(stream, state); else if (state.objectMode || chunk && chunk.length > 0) if (state.ended && !addToFront) { var e = new Error("stream.push() after EOF"); stream.emit("error", e) } else if (state.endEmitted && addToFront) { var _e = new Error("stream.unshift() after end event"); stream.emit("error", _e) } else { var skipAdd; !state.decoder || addToFront || encoding || (chunk = state.decoder.write(chunk), skipAdd = !state.objectMode && 0 === chunk.length), addToFront || (state.reading = !1), skipAdd || (state.flowing && 0 === state.length && !state.sync ? (stream.emit("data", chunk), stream.read(0)) : (state.length += state.objectMode ? 1 : chunk.length, addToFront ? state.buffer.unshift(chunk) : state.buffer.push(chunk), state.needReadable && emitReadable(stream))), maybeReadMore(stream, state) } else addToFront || (state.reading = !1); return needMoreData(state) } function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || 0 === state.length) } function computeNewHighWaterMark(n) { return n >= MAX_HWM ? n = MAX_HWM : (n--, n |= n >>> 1, n |= n >>> 2, n |= n >>> 4, n |= n >>> 8, n |= n >>> 16, n++), n } function howMuchToRead(n, state) { return 0 >= n || 0 === state.length && state.ended ? 0 : state.objectMode ? 1 : n !== n ? state.flowing && state.length ? state.buffer.head.data.length : state.length : (n > state.highWaterMark && (state.highWaterMark = computeNewHighWaterMark(n)), n <= state.length ? n : state.ended ? state.length : (state.needReadable = !0, 0)) } function chunkInvalid(state, chunk) { var er = null; return Buffer.isBuffer(chunk) || "string" == typeof chunk || null === chunk || void 0 === chunk || state.objectMode || (er = new TypeError("Invalid non-string/buffer chunk")), er } function onEofChunk(stream, state) { if (!state.ended) { if (state.decoder) { var chunk = state.decoder.end(); chunk && chunk.length && (state.buffer.push(chunk), state.length += state.objectMode ? 1 : chunk.length) } state.ended = !0, emitReadable(stream) } } function emitReadable(stream) { var state = stream._readableState; state.needReadable = !1, state.emittedReadable || (debug("emitReadable", state.flowing), state.emittedReadable = !0, state.sync ? processNextTick(emitReadable_, stream) : emitReadable_(stream)) } function emitReadable_(stream) { debug("emit readable"), stream.emit("readable"), flow(stream) } function maybeReadMore(stream, state) { state.readingMore || (state.readingMore = !0, processNextTick(maybeReadMore_, stream, state)) } function maybeReadMore_(stream, state) { for (var len = state.length; !state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark && (debug("maybeReadMore read 0"), stream.read(0), len !== state.length);) len = state.length; state.readingMore = !1 } function pipeOnDrain(src) { return function () { var state = src._readableState; debug("pipeOnDrain", state.awaitDrain), state.awaitDrain && state.awaitDrain--, 0 === state.awaitDrain && EElistenerCount(src, "data") && (state.flowing = !0, flow(src)) } } function nReadingNextTick(self) { debug("readable nexttick read 0"), self.read(0) } function resume(stream, state) { state.resumeScheduled || (state.resumeScheduled = !0, processNextTick(resume_, stream, state)) } function resume_(stream, state) { state.reading || (debug("resume read 0"), stream.read(0)), state.resumeScheduled = !1, state.awaitDrain = 0, stream.emit("resume"), flow(stream), state.flowing && !state.reading && stream.read(0) } function flow(stream) { var state = stream._readableState; for (debug("flow", state.flowing); state.flowing && null !== stream.read();) ; } function fromList(n, state) { if (0 === state.length) return null; var ret; return state.objectMode ? ret = state.buffer.shift() : !n || n >= state.length ? (ret = state.decoder ? state.buffer.join("") : 1 === state.buffer.length ? state.buffer.head.data : state.buffer.concat(state.length), state.buffer.clear()) : ret = fromListPartial(n, state.buffer, state.decoder), ret } function fromListPartial(n, list, hasStrings) { var ret; return n < list.head.data.length ? (ret = list.head.data.slice(0, n), list.head.data = list.head.data.slice(n)) : ret = n === list.head.data.length ? list.shift() : hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list), ret } function copyFromBufferString(n, list) { var p = list.head, c = 1, ret = p.data; for (n -= ret.length; p = p.next;) { var str = p.data, nb = n > str.length ? str.length : n; if (ret += nb === str.length ? str : str.slice(0, n), n -= nb, 0 === n) { nb === str.length ? (++c, p.next ? list.head = p.next : list.head = list.tail = null) : (list.head = p, p.data = str.slice(nb)); break } ++c } return list.length -= c, ret } function copyFromBuffer(n, list) { var ret = bufferShim.allocUnsafe(n), p = list.head, c = 1; for (p.data.copy(ret), n -= p.data.length; p = p.next;) { var buf = p.data, nb = n > buf.length ? buf.length : n; if (buf.copy(ret, ret.length - n, 0, nb), n -= nb, 0 === n) { nb === buf.length ? (++c, p.next ? list.head = p.next : list.head = list.tail = null) : (list.head = p, p.data = buf.slice(nb)); break } ++c } return list.length -= c, ret } function endReadable(stream) { var state = stream._readableState; if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); state.endEmitted || (state.ended = !0, processNextTick(endReadableNT, state, stream)) } function endReadableNT(state, stream) { state.endEmitted || 0 !== state.length || (state.endEmitted = !0, stream.readable = !1, stream.emit("end")) } function forEach(xs, f) { for (var i = 0, l = xs.length; l > i; i++) f(xs[i], i) } function indexOf(xs, x) { for (var i = 0, l = xs.length; l > i; i++) if (xs[i] === x) return i; return -1 } module.exports = Readable; var Duplex, processNextTick = require("process-nextick-args"), isArray = require("isarray"); Readable.ReadableState = ReadableState; var Stream, EElistenerCount = (require("events").EventEmitter, function (emitter, type) { return emitter.listeners(type).length }); !function () { try { Stream = require("stream") } catch (_) { } finally { Stream || (Stream = require("events").EventEmitter) } }(); var Buffer = require("buffer").Buffer, bufferShim = require("buffer-shims"), util = require("core-util-is"); util.inherits = require("inherits"); var debugUtil = require("util"), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function () { }; var StringDecoder, BufferList = require("./internal/streams/BufferList"); util.inherits(Readable, Stream), Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; return state.objectMode || "string" != typeof chunk || (encoding = encoding || state.defaultEncoding, encoding !== state.encoding && (chunk = bufferShim.from(chunk, encoding), encoding = "")), readableAddChunk(this, state, chunk, encoding, !1) }, Readable.prototype.unshift = function (chunk) { var state = this._readableState; return readableAddChunk(this, state, chunk, "", !0) }, Readable.prototype.isPaused = function () { return this._readableState.flowing === !1 }, Readable.prototype.setEncoding = function (enc) { return StringDecoder || (StringDecoder = require("string_decoder/").StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this }; var MAX_HWM = 8388608; Readable.prototype.read = function (n) { debug("read", n), n = parseInt(n, 10); var state = this._readableState, nOrig = n; if (0 !== n && (state.emittedReadable = !1), 0 === n && state.needReadable && (state.length >= state.highWaterMark || state.ended)) return debug("read: emitReadable", state.length, state.ended), 0 === state.length && state.ended ? endReadable(this) : emitReadable(this), null; if (n = howMuchToRead(n, state), 0 === n && state.ended) return 0 === state.length && endReadable(this), null; var doRead = state.needReadable; debug("need readable", doRead), (0 === state.length || state.length - n < state.highWaterMark) && (doRead = !0, debug("length less than watermark", doRead)), state.ended || state.reading ? (doRead = !1, debug("reading or ended", doRead)) : doRead && (debug("do read"), state.reading = !0, state.sync = !0, 0 === state.length && (state.needReadable = !0), this._read(state.highWaterMark), state.sync = !1, state.reading || (n = howMuchToRead(nOrig, state))); var ret; return ret = n > 0 ? fromList(n, state) : null, null === ret ? (state.needReadable = !0, n = 0) : state.length -= n, 0 === state.length && (state.ended || (state.needReadable = !0), nOrig !== n && state.ended && endReadable(this)), null !== ret && this.emit("data", ret), ret }, Readable.prototype._read = function (n) { this.emit("error", new Error("_read() is not implemented")) }, Readable.prototype.pipe = function (dest, pipeOpts) { function onunpipe(readable) { debug("onunpipe"), readable === src && cleanup() } function onend() { debug("onend"), dest.end() } function cleanup() { debug("cleanup"), dest.removeListener("close", onclose), dest.removeListener("finish", onfinish), dest.removeListener("drain", ondrain), dest.removeListener("error", onerror), dest.removeListener("unpipe", onunpipe), src.removeListener("end", onend), src.removeListener("end", cleanup), src.removeListener("data", ondata), cleanedUp = !0, !state.awaitDrain || dest._writableState && !dest._writableState.needDrain || ondrain() } function ondata(chunk) { debug("ondata"), increasedAwaitDrain = !1; var ret = dest.write(chunk); !1 !== ret || increasedAwaitDrain || ((1 === state.pipesCount && state.pipes === dest || state.pipesCount > 1 && -1 !== indexOf(state.pipes, dest)) && !cleanedUp && (debug("false write response, pause", src._readableState.awaitDrain), src._readableState.awaitDrain++, increasedAwaitDrain = !0), src.pause()) } function onerror(er) { debug("onerror", er), unpipe(), dest.removeListener("error", onerror), 0 === EElistenerCount(dest, "error") && dest.emit("error", er) } function onclose() { dest.removeListener("finish", onfinish), unpipe() } function onfinish() { debug("onfinish"), dest.removeListener("close", onclose), unpipe() } function unpipe() { debug("unpipe"), src.unpipe(dest) } var src = this, state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest) } state.pipesCount += 1, debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== !1) && dest !== process.stdout && dest !== process.stderr, endFn = doEnd ? onend : cleanup; state.endEmitted ? processNextTick(endFn) : src.once("end", endFn), dest.on("unpipe", onunpipe); var ondrain = pipeOnDrain(src); dest.on("drain", ondrain); var cleanedUp = !1, increasedAwaitDrain = !1; return src.on("data", ondata), prependListener(dest, "error", onerror), dest.once("close", onclose), dest.once("finish", onfinish), dest.emit("pipe", src), state.flowing || (debug("pipe resume"), src.resume()), dest }, Readable.prototype.unpipe = function (dest) { var state = this._readableState; if (0 === state.pipesCount) return this; if (1 === state.pipesCount) return dest && dest !== state.pipes ? this : (dest || (dest = state.pipes), state.pipes = null, state.pipesCount = 0, state.flowing = !1, dest && dest.emit("unpipe", this), this); if (!dest) { var dests = state.pipes, len = state.pipesCount; state.pipes = null, state.pipesCount = 0, state.flowing = !1; for (var i = 0; len > i; i++) dests[i].emit("unpipe", this); return this } var index = indexOf(state.pipes, dest); return -1 === index ? this : (state.pipes.splice(index, 1), state.pipesCount -= 1, 1 === state.pipesCount && (state.pipes = state.pipes[0]), dest.emit("unpipe", this), this) }, Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); if ("data" === ev) this._readableState.flowing !== !1 && this.resume(); else if ("readable" === ev) { var state = this._readableState; state.endEmitted || state.readableListening || (state.readableListening = state.needReadable = !0, state.emittedReadable = !1, state.reading ? state.length && emitReadable(this, state) : processNextTick(nReadingNextTick, this)) } return res }, Readable.prototype.addListener = Readable.prototype.on, Readable.prototype.resume = function () { var state = this._readableState; return state.flowing || (debug("resume"), state.flowing = !0, resume(this, state)), this }, Readable.prototype.pause = function () { return debug("call pause flowing=%j", this._readableState.flowing), !1 !== this._readableState.flowing && (debug("pause"), this._readableState.flowing = !1, this.emit("pause")), this }, Readable.prototype.wrap = function (stream) { var state = this._readableState, paused = !1, self = this; stream.on("end", function () { if (debug("wrapped end"), state.decoder && !state.ended) { var chunk = state.decoder.end(); chunk && chunk.length && self.push(chunk) } self.push(null) }), stream.on("data", function (chunk) { if (debug("wrapped data"), state.decoder && (chunk = state.decoder.write(chunk)), (!state.objectMode || null !== chunk && void 0 !== chunk) && (state.objectMode || chunk && chunk.length)) { var ret = self.push(chunk); ret || (paused = !0, stream.pause()) } }); for (var i in stream) void 0 === this[i] && "function" == typeof stream[i] && (this[i] = function (method) { return function () { return stream[method].apply(stream, arguments) } }(i)); var events = ["error", "close", "destroy", "pause", "resume"]; return forEach(events, function (ev) { stream.on(ev, self.emit.bind(self, ev)) }), self._read = function (n) { debug("wrapped _read", n), paused && (paused = !1, stream.resume()) }, self }, Readable._fromList = fromList }).call(this, require("_process")) }, { "./_stream_duplex": 104, "./internal/streams/BufferList": 109, _process: 102, buffer: 78, "buffer-shims": 77, "core-util-is": 79, events: 82, inherits: 84, isarray: 86, "process-nextick-args": 101, "string_decoder/": 116, util: 76 }], 107: [function (require, module, exports) { "use strict"; function TransformState(stream) { this.afterTransform = function (er, data) { return afterTransform(stream, er, data) }, this.needTransform = !1, this.transforming = !1, this.writecb = null, this.writechunk = null, this.writeencoding = null } function afterTransform(stream, er, data) { var ts = stream._transformState; ts.transforming = !1; var cb = ts.writecb; if (!cb) return stream.emit("error", new Error("no writecb in Transform class")); ts.writechunk = null, ts.writecb = null, null !== data && void 0 !== data && stream.push(data), cb(er); var rs = stream._readableState; rs.reading = !1, (rs.needReadable || rs.length < rs.highWaterMark) && stream._read(rs.highWaterMark) } function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options), this._transformState = new TransformState(this); var stream = this; this._readableState.needReadable = !0, this._readableState.sync = !1, options && ("function" == typeof options.transform && (this._transform = options.transform), "function" == typeof options.flush && (this._flush = options.flush)), this.once("prefinish", function () { "function" == typeof this._flush ? this._flush(function (er, data) { done(stream, er, data) }) : done(stream) }) } function done(stream, er, data) { if (er) return stream.emit("error", er); null !== data && void 0 !== data && stream.push(data); var ws = stream._writableState, ts = stream._transformState; if (ws.length) throw new Error("Calling transform done when ws.length != 0"); if (ts.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null) } module.exports = Transform; var Duplex = require("./_stream_duplex"), util = require("core-util-is"); util.inherits = require("inherits"), util.inherits(Transform, Duplex), Transform.prototype.push = function (chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding) }, Transform.prototype._transform = function (chunk, encoding, cb) { throw new Error("_transform() is not implemented") }, Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; if (ts.writecb = cb, ts.writechunk = chunk, ts.writeencoding = encoding, !ts.transforming) { var rs = this._readableState; (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) && this._read(rs.highWaterMark) } }, Transform.prototype._read = function (n) { var ts = this._transformState; null !== ts.writechunk && ts.writecb && !ts.transforming ? (ts.transforming = !0, this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform)) : ts.needTransform = !0 } }, {"./_stream_duplex": 104, "core-util-is": 79, inherits: 84}], 108: [function (require, module, exports) { (function (process) { "use strict"; function nop() { } function WriteReq(chunk, encoding, cb) { this.chunk = chunk, this.encoding = encoding, this.callback = cb, this.next = null } function WritableState(options, stream) { Duplex = Duplex || require("./_stream_duplex"), options = options || {}, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1; var noDecode = options.decodeStrings === !1; this.decodeStrings = !noDecode, this.defaultEncoding = options.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function (er) { onwrite(stream, er) }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.bufferedRequestCount = 0, this.corkedRequestsFree = new CorkedRequest(this) } function Writable(options) { return Duplex = Duplex || require("./_stream_duplex"), realHasInstance.call(Writable, this) || this instanceof Duplex ? (this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev)), void Stream.call(this)) : new Writable(options) } function writeAfterEnd(stream, cb) { var er = new Error("write after end"); stream.emit("error", er), processNextTick(cb, er) } function validChunk(stream, state, chunk, cb) { var valid = !0, er = !1; return null === chunk ? er = new TypeError("May not write null values to stream") : "string" == typeof chunk || void 0 === chunk || state.objectMode || (er = new TypeError("Invalid non-string/buffer chunk")), er && (stream.emit("error", er), processNextTick(cb, er), valid = !1), valid } function decodeChunk(state, chunk, encoding) { return state.objectMode || state.decodeStrings === !1 || "string" != typeof chunk || (chunk = bufferShim.from(chunk, encoding)), chunk } function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { isBuf || (chunk = decodeChunk(state, chunk, encoding), Buffer.isBuffer(chunk) && (encoding = "buffer")); var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; if (ret || (state.needDrain = !0), state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = new WriteReq(chunk, encoding, cb), last ? last.next = state.lastBufferedRequest : state.bufferedRequest = state.lastBufferedRequest, state.bufferedRequestCount += 1 } else doWrite(stream, state, !1, len, chunk, encoding, cb); return ret } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len, state.writecb = cb, state.writing = !0, state.sync = !0, writev ? stream._writev(chunk, state.onwrite) : stream._write(chunk, encoding, state.onwrite), state.sync = !1 } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb, sync ? processNextTick(cb, er) : cb(er), stream._writableState.errorEmitted = !0, stream.emit("error", er) } function onwriteStateUpdate(state) { state.writing = !1, state.writecb = null, state.length -= state.writelen, state.writelen = 0 } function onwrite(stream, er) { var state = stream._writableState, sync = state.sync, cb = state.writecb; if (onwriteStateUpdate(state), er) onwriteError(stream, state, sync, er, cb); else { var finished = needFinish(state); finished || state.corked || state.bufferProcessing || !state.bufferedRequest || clearBuffer(stream, state), sync ? asyncWrite(afterWrite, stream, state, finished, cb) : afterWrite(stream, state, finished, cb) } } function afterWrite(stream, state, finished, cb) { finished || onwriteDrain(stream, state), state.pendingcb--, cb(), finishMaybe(stream, state) } function onwriteDrain(stream, state) { 0 === state.length && state.needDrain && (state.needDrain = !1, stream.emit("drain")) } function clearBuffer(stream, state) { state.bufferProcessing = !0; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { var l = state.bufferedRequestCount, buffer = new Array(l), holder = state.corkedRequestsFree; holder.entry = entry; for (var count = 0; entry;) buffer[count] = entry, entry = entry.next, count += 1; doWrite(stream, state, !0, state.length, buffer, "", holder.finish), state.pendingcb++, state.lastBufferedRequest = null, holder.next ? (state.corkedRequestsFree = holder.next, holder.next = null) : state.corkedRequestsFree = new CorkedRequest(state) } else { for (; entry;) { var chunk = entry.chunk, encoding = entry.encoding, cb = entry.callback, len = state.objectMode ? 1 : chunk.length; if (doWrite(stream, state, !1, len, chunk, encoding, cb), entry = entry.next, state.writing) break } null === entry && (state.lastBufferedRequest = null) } state.bufferedRequestCount = 0, state.bufferedRequest = entry, state.bufferProcessing = !1 } function needFinish(state) { return state.ending && 0 === state.length && null === state.bufferedRequest && !state.finished && !state.writing } function prefinish(stream, state) { state.prefinished || (state.prefinished = !0, stream.emit("prefinish")) } function finishMaybe(stream, state) { var need = needFinish(state); return need && (0 === state.pendingcb ? (prefinish(stream, state), state.finished = !0, stream.emit("finish")) : prefinish(stream, state)), need } function endWritable(stream, state, cb) { state.ending = !0, finishMaybe(stream, state), cb && (state.finished ? processNextTick(cb) : stream.once("finish", cb)), state.ended = !0, stream.writable = !1 } function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function (err) { var entry = _this.entry; for (_this.entry = null; entry;) { var cb = entry.callback; state.pendingcb--, cb(err), entry = entry.next } state.corkedRequestsFree ? state.corkedRequestsFree.next = _this : state.corkedRequestsFree = _this } } module.exports = Writable; var Duplex, processNextTick = require("process-nextick-args"), asyncWrite = !process.browser && ["v0.10", "v0.9."].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; Writable.WritableState = WritableState; var util = require("core-util-is"); util.inherits = require("inherits"); var Stream, internalUtil = {deprecate: require("util-deprecate")}; !function () { try { Stream = require("stream") } catch (_) { } finally { Stream || (Stream = require("events").EventEmitter) } }(); var Buffer = require("buffer").Buffer, bufferShim = require("buffer-shims"); util.inherits(Writable, Stream), WritableState.prototype.getBuffer = function () { for (var current = this.bufferedRequest, out = []; current;) out.push(current), current = current.next; return out }, function () { try { Object.defineProperty(WritableState.prototype, "buffer", { get: internalUtil.deprecate(function () { return this.getBuffer() }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.") }) } catch (_) { } }(); var realHasInstance; "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (realHasInstance = Function.prototype[Symbol.hasInstance], Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { return realHasInstance.call(this, object) ? !0 : object && object._writableState instanceof WritableState } })) : realHasInstance = function (object) { return object instanceof this }, Writable.prototype.pipe = function () { this.emit("error", new Error("Cannot pipe, not readable")) }, Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState, ret = !1, isBuf = Buffer.isBuffer(chunk); return "function" == typeof encoding && (cb = encoding, encoding = null), isBuf ? encoding = "buffer" : encoding || (encoding = state.defaultEncoding), "function" != typeof cb && (cb = nop), state.ended ? writeAfterEnd(this, cb) : (isBuf || validChunk(this, state, chunk, cb)) && (state.pendingcb++, ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb)), ret }, Writable.prototype.cork = function () { var state = this._writableState; state.corked++ }, Writable.prototype.uncork = function () { var state = this._writableState; state.corked && (state.corked--, state.writing || state.corked || state.finished || state.bufferProcessing || !state.bufferedRequest || clearBuffer(this, state)) }, Writable.prototype.setDefaultEncoding = function (encoding) { if ("string" == typeof encoding && (encoding = encoding.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) throw new TypeError("Unknown encoding: " + encoding); return this._writableState.defaultEncoding = encoding, this }, Writable.prototype._write = function (chunk, encoding, cb) { cb(new Error("_write() is not implemented")) }, Writable.prototype._writev = null, Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; "function" == typeof chunk ? (cb = chunk, chunk = null, encoding = null) : "function" == typeof encoding && (cb = encoding, encoding = null), null !== chunk && void 0 !== chunk && this.write(chunk, encoding), state.corked && (state.corked = 1, this.uncork()), state.ending || state.finished || endWritable(this, state, cb) } }).call(this, require("_process")) }, { "./_stream_duplex": 104, _process: 102, buffer: 78, "buffer-shims": 77, "core-util-is": 79, events: 82, inherits: 84, "process-nextick-args": 101, "util-deprecate": 118 }], 109: [function (require, module, exports) { "use strict"; function BufferList() { this.head = null, this.tail = null, this.length = 0 } var bufferShim = (require("buffer").Buffer, require("buffer-shims")); module.exports = BufferList, BufferList.prototype.push = function (v) { var entry = {data: v, next: null}; this.length > 0 ? this.tail.next = entry : this.head = entry, this.tail = entry, ++this.length }, BufferList.prototype.unshift = function (v) { var entry = {data: v, next: this.head}; 0 === this.length && (this.tail = entry), this.head = entry, ++this.length }, BufferList.prototype.shift = function () { if (0 !== this.length) { var ret = this.head.data; return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, ret } }, BufferList.prototype.clear = function () { this.head = this.tail = null, this.length = 0 }, BufferList.prototype.join = function (s) { if (0 === this.length) return ""; for (var p = this.head, ret = "" + p.data; p = p.next;) ret += s + p.data; return ret }, BufferList.prototype.concat = function (n) { if (0 === this.length) return bufferShim.alloc(0); if (1 === this.length) return this.head.data; for (var ret = bufferShim.allocUnsafe(n >>> 0), p = this.head, i = 0; p;) p.data.copy(ret, i), i += p.data.length, p = p.next; return ret } }, {buffer: 78, "buffer-shims": 77}], 110: [function (require, module, exports) { module.exports = require("./lib/_stream_passthrough.js") }, {"./lib/_stream_passthrough.js": 105}], 111: [function (require, module, exports) { (function (process) { var Stream = function () { try { return require("stream") } catch (_) { } }(); exports = module.exports = require("./lib/_stream_readable.js"), exports.Stream = Stream || exports, exports.Readable = exports, exports.Writable = require("./lib/_stream_writable.js"), exports.Duplex = require("./lib/_stream_duplex.js"), exports.Transform = require("./lib/_stream_transform.js"), exports.PassThrough = require("./lib/_stream_passthrough.js"), !process.browser && "disable" === process.env.READABLE_STREAM && Stream && (module.exports = Stream) }).call(this, require("_process")) }, { "./lib/_stream_duplex.js": 104, "./lib/_stream_passthrough.js": 105, "./lib/_stream_readable.js": 106, "./lib/_stream_transform.js": 107, "./lib/_stream_writable.js": 108, _process: 102 }], 112: [function (require, module, exports) { module.exports = require("./lib/_stream_transform.js") }, {"./lib/_stream_transform.js": 107}], 113: [function (require, module, exports) { module.exports = require("./lib/_stream_writable.js") }, {"./lib/_stream_writable.js": 108}], 114: [function (require, module, exports) { (function (Buffer) { !function (sax) { function SAXParser(strict, opt) { if (!(this instanceof SAXParser)) return new SAXParser(strict, opt); var parser = this; clearBuffers(parser), parser.q = parser.c = "", parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH, parser.opt = opt || {}, parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags, parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase", parser.tags = [], parser.closed = parser.closedRoot = parser.sawRoot = !1, parser.tag = parser.error = null, parser.strict = !!strict, parser.noscript = !(!strict && !parser.opt.noscript), parser.state = S.BEGIN, parser.strictEntities = parser.opt.strictEntities, parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES), parser.attribList = [], parser.opt.xmlns && (parser.ns = Object.create(rootNS)), parser.trackPosition = parser.opt.position !== !1, parser.trackPosition && (parser.position = parser.line = parser.column = 0), emit(parser, "onready") } function checkBufferLength(parser) { for (var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10), maxActual = 0, i = 0, l = buffers.length; l > i; i++) { var len = parser[buffers[i]].length; if (len > maxAllowed) switch (buffers[i]) { case"textNode": closeText(parser); break; case"cdata": emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""; break; case"script": emitNode(parser, "onscript", parser.script), parser.script = ""; break; default: error(parser, "Max buffer length exceeded: " + buffers[i]) } maxActual = Math.max(maxActual, len) } var m = sax.MAX_BUFFER_LENGTH - maxActual; parser.bufferCheckPosition = m + parser.position } function clearBuffers(parser) { for (var i = 0, l = buffers.length; l > i; i++) parser[buffers[i]] = "" } function flushBuffers(parser) { closeText(parser), "" !== parser.cdata && (emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""), "" !== parser.script && (emitNode(parser, "onscript", parser.script), parser.script = "") } function createStream(strict, opt) { return new SAXStream(strict, opt) } function SAXStream(strict, opt) { if (!(this instanceof SAXStream)) return new SAXStream(strict, opt); Stream.apply(this), this._parser = new SAXParser(strict, opt), this.writable = !0, this.readable = !0; var me = this; this._parser.onend = function () { me.emit("end") }, this._parser.onerror = function (er) { me.emit("error", er), me._parser.error = null }, this._decoder = null, streamWraps.forEach(function (ev) { Object.defineProperty(me, "on" + ev, { get: function () { return me._parser["on" + ev] }, set: function (h) { return h ? void me.on(ev, h) : (me.removeAllListeners(ev), me._parser["on" + ev] = h, h) }, enumerable: !0, configurable: !1 }) }) } function charClass(str) { return str.split("").reduce(function (s, c) { return s[c] = !0, s }, {}) } function isRegExp(c) { return "[object RegExp]" === Object.prototype.toString.call(c) } function is(charclass, c) { return isRegExp(charclass) ? !!c.match(charclass) : charclass[c] } function not(charclass, c) { return !is(charclass, c) } function emit(parser, event, data) { parser[event] && parser[event](data) } function emitNode(parser, nodeType, data) { parser.textNode && closeText(parser), emit(parser, nodeType, data) } function closeText(parser) { parser.textNode = textopts(parser.opt, parser.textNode), parser.textNode && emit(parser, "ontext", parser.textNode), parser.textNode = "" } function textopts(opt, text) { return opt.trim && (text = text.trim()), opt.normalize && (text = text.replace(/\s+/g, " ")), text } function error(parser, er) { return closeText(parser), parser.trackPosition && (er += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c), er = new Error(er), parser.error = er, emit(parser, "onerror", er), parser } function end(parser) { return parser.sawRoot && !parser.closedRoot && strictFail(parser, "Unclosed root tag"), parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT && error(parser, "Unexpected end"), closeText(parser), parser.c = "", parser.closed = !0, emit(parser, "onend"), SAXParser.call(parser, parser.strict, parser.opt), parser } function strictFail(parser, message) { if ("object" != typeof parser || !(parser instanceof SAXParser)) throw new Error("bad call to strictFail"); parser.strict && error(parser, message) } function newTag(parser) { parser.strict || (parser.tagName = parser.tagName[parser.looseCase]()); var parent = parser.tags[parser.tags.length - 1] || parser, tag = parser.tag = {name: parser.tagName, attributes: {}}; parser.opt.xmlns && (tag.ns = parent.ns), parser.attribList.length = 0 } function qname(name, attribute) { var i = name.indexOf(":"), qualName = 0 > i ? ["", name] : name.split(":"), prefix = qualName[0], local = qualName[1]; return attribute && "xmlns" === name && (prefix = "xmlns", local = ""), { prefix: prefix, local: local } } function attrib(parser) { if (parser.strict || (parser.attribName = parser.attribName[parser.looseCase]()), -1 !== parser.attribList.indexOf(parser.attribName) || parser.tag.attributes.hasOwnProperty(parser.attribName)) return void(parser.attribName = parser.attribValue = ""); if (parser.opt.xmlns) { var qn = qname(parser.attribName, !0), prefix = qn.prefix, local = qn.local; if ("xmlns" === prefix) if ("xml" === local && parser.attribValue !== XML_NAMESPACE) strictFail(parser, "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue); else if ("xmlns" === local && parser.attribValue !== XMLNS_NAMESPACE) strictFail(parser, "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\nActual: " + parser.attribValue); else { var tag = parser.tag, parent = parser.tags[parser.tags.length - 1] || parser; tag.ns === parent.ns && (tag.ns = Object.create(parent.ns)), tag.ns[local] = parser.attribValue } parser.attribList.push([parser.attribName, parser.attribValue]) } else parser.tag.attributes[parser.attribName] = parser.attribValue, emitNode(parser, "onattribute", { name: parser.attribName, value: parser.attribValue }); parser.attribName = parser.attribValue = "" } function openTag(parser, selfClosing) { if (parser.opt.xmlns) { var tag = parser.tag, qn = qname(parser.tagName); tag.prefix = qn.prefix, tag.local = qn.local, tag.uri = tag.ns[qn.prefix] || "", tag.prefix && !tag.uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(parser.tagName)), tag.uri = qn.prefix); var parent = parser.tags[parser.tags.length - 1] || parser; tag.ns && parent.ns !== tag.ns && Object.keys(tag.ns).forEach(function (p) { emitNode(parser, "onopennamespace", {prefix: p, uri: tag.ns[p]}) }); for (var i = 0, l = parser.attribList.length; l > i; i++) { var nv = parser.attribList[i], name = nv[0], value = nv[1], qualName = qname(name, !0), prefix = qualName.prefix, local = qualName.local, uri = "" === prefix ? "" : tag.ns[prefix] || "", a = {name: name, value: value, prefix: prefix, local: local, uri: uri}; prefix && "xmlns" !== prefix && !uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(prefix)), a.uri = prefix), parser.tag.attributes[name] = a, emitNode(parser, "onattribute", a) } parser.attribList.length = 0 } parser.tag.isSelfClosing = !!selfClosing, parser.sawRoot = !0, parser.tags.push(parser.tag), emitNode(parser, "onopentag", parser.tag), selfClosing || (parser.noscript || "script" !== parser.tagName.toLowerCase() ? parser.state = S.TEXT : parser.state = S.SCRIPT, parser.tag = null, parser.tagName = ""), parser.attribName = parser.attribValue = "", parser.attribList.length = 0 } function closeTag(parser) { if (!parser.tagName) return strictFail(parser, "Weird empty close tag."), parser.textNode += "", void(parser.state = S.TEXT); if (parser.script) { if ("script" !== parser.tagName) return parser.script += "", parser.tagName = "", void(parser.state = S.SCRIPT); emitNode(parser, "onscript", parser.script), parser.script = "" } var t = parser.tags.length, tagName = parser.tagName; parser.strict || (tagName = tagName[parser.looseCase]()); for (var closeTo = tagName; t--;) { var close = parser.tags[t]; if (close.name === closeTo) break; strictFail(parser, "Unexpected close tag") } if (0 > t) return strictFail(parser, "Unmatched closing tag: " + parser.tagName), parser.textNode += "", void(parser.state = S.TEXT); parser.tagName = tagName; for (var s = parser.tags.length; s-- > t;) { var tag = parser.tag = parser.tags.pop(); parser.tagName = parser.tag.name, emitNode(parser, "onclosetag", parser.tagName); var x = {}; for (var i in tag.ns) x[i] = tag.ns[i]; var parent = parser.tags[parser.tags.length - 1] || parser; parser.opt.xmlns && tag.ns !== parent.ns && Object.keys(tag.ns).forEach(function (p) { var n = tag.ns[p]; emitNode(parser, "onclosenamespace", {prefix: p, uri: n}) }) } 0 === t && (parser.closedRoot = !0), parser.tagName = parser.attribValue = parser.attribName = "", parser.attribList.length = 0, parser.state = S.TEXT } function parseEntity(parser) { var num, entity = parser.entity, entityLC = entity.toLowerCase(), numStr = ""; return parser.ENTITIES[entity] ? parser.ENTITIES[entity] : parser.ENTITIES[entityLC] ? parser.ENTITIES[entityLC] : (entity = entityLC, "#" === entity.charAt(0) && ("x" === entity.charAt(1) ? (entity = entity.slice(2), num = parseInt(entity, 16), numStr = num.toString(16)) : (entity = entity.slice(1), num = parseInt(entity, 10), numStr = num.toString(10))), entity = entity.replace(/^0+/, ""), numStr.toLowerCase() !== entity ? (strictFail(parser, "Invalid character entity"), "&" + parser.entity + ";") : String.fromCodePoint(num)) } function beginWhiteSpace(parser, c) { "<" === c ? (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position) : not(whitespace, c) && (strictFail(parser, "Non-whitespace before first tag."), parser.textNode = c, parser.state = S.TEXT) } function charAt(chunk, i) { var result = ""; return i < chunk.length && (result = chunk.charAt(i)), result } function write(chunk) { var parser = this; if (this.error) throw this.error; if (parser.closed) return error(parser, "Cannot write after close. Assign an onready handler."); if (null === chunk) return end(parser); "object" == typeof chunk && (chunk = chunk.toString()); for (var i = 0, c = ""; ;) { if (c = charAt(chunk, i++), parser.c = c, !c) break; switch (parser.trackPosition && (parser.position++, "\n" === c ? (parser.line++, parser.column = 0) : parser.column++), parser.state) { case S.BEGIN: if (parser.state = S.BEGIN_WHITESPACE, "\ufeff" === c) continue; beginWhiteSpace(parser, c); continue; case S.BEGIN_WHITESPACE: beginWhiteSpace(parser, c); continue; case S.TEXT: if (parser.sawRoot && !parser.closedRoot) { for (var starti = i - 1; c && "<" !== c && "&" !== c;) c = charAt(chunk, i++), c && parser.trackPosition && (parser.position++, "\n" === c ? (parser.line++, parser.column = 0) : parser.column++); parser.textNode += chunk.substring(starti, i - 1) } "<" !== c || parser.sawRoot && parser.closedRoot && !parser.strict ? (!not(whitespace, c) || parser.sawRoot && !parser.closedRoot || strictFail(parser, "Text data outside of root node."), "&" === c ? parser.state = S.TEXT_ENTITY : parser.textNode += c) : (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position); continue; case S.SCRIPT: "<" === c ? parser.state = S.SCRIPT_ENDING : parser.script += c; continue; case S.SCRIPT_ENDING: "/" === c ? parser.state = S.CLOSE_TAG : (parser.script += "<" + c, parser.state = S.SCRIPT); continue; case S.OPEN_WAKA: if ("!" === c) parser.state = S.SGML_DECL, parser.sgmlDecl = ""; else if (is(whitespace, c)) ; else if (is(nameStart, c)) parser.state = S.OPEN_TAG, parser.tagName = c; else if ("/" === c) parser.state = S.CLOSE_TAG, parser.tagName = ""; else if ("?" === c) parser.state = S.PROC_INST, parser.procInstName = parser.procInstBody = ""; else { if (strictFail(parser, "Unencoded <"), parser.startTagPosition + 1 < parser.position) { var pad = parser.position - parser.startTagPosition; c = new Array(pad).join(" ") + c } parser.textNode += "<" + c, parser.state = S.TEXT } continue; case S.SGML_DECL: (parser.sgmlDecl + c).toUpperCase() === CDATA ? (emitNode(parser, "onopencdata"), parser.state = S.CDATA, parser.sgmlDecl = "", parser.cdata = "") : parser.sgmlDecl + c === "--" ? (parser.state = S.COMMENT, parser.comment = "", parser.sgmlDecl = "") : (parser.sgmlDecl + c).toUpperCase() === DOCTYPE ? (parser.state = S.DOCTYPE, (parser.doctype || parser.sawRoot) && strictFail(parser, "Inappropriately located doctype declaration"), parser.doctype = "", parser.sgmlDecl = "") : ">" === c ? (emitNode(parser, "onsgmldeclaration", parser.sgmlDecl), parser.sgmlDecl = "", parser.state = S.TEXT) : is(quote, c) ? (parser.state = S.SGML_DECL_QUOTED, parser.sgmlDecl += c) : parser.sgmlDecl += c; continue; case S.SGML_DECL_QUOTED: c === parser.q && (parser.state = S.SGML_DECL, parser.q = ""), parser.sgmlDecl += c; continue; case S.DOCTYPE: ">" === c ? (parser.state = S.TEXT, emitNode(parser, "ondoctype", parser.doctype), parser.doctype = !0) : (parser.doctype += c, "[" === c ? parser.state = S.DOCTYPE_DTD : is(quote, c) && (parser.state = S.DOCTYPE_QUOTED, parser.q = c)); continue; case S.DOCTYPE_QUOTED: parser.doctype += c, c === parser.q && (parser.q = "", parser.state = S.DOCTYPE); continue; case S.DOCTYPE_DTD: parser.doctype += c, "]" === c ? parser.state = S.DOCTYPE : is(quote, c) && (parser.state = S.DOCTYPE_DTD_QUOTED, parser.q = c); continue; case S.DOCTYPE_DTD_QUOTED: parser.doctype += c, c === parser.q && (parser.state = S.DOCTYPE_DTD, parser.q = ""); continue; case S.COMMENT: "-" === c ? parser.state = S.COMMENT_ENDING : parser.comment += c; continue; case S.COMMENT_ENDING: "-" === c ? (parser.state = S.COMMENT_ENDED, parser.comment = textopts(parser.opt, parser.comment), parser.comment && emitNode(parser, "oncomment", parser.comment), parser.comment = "") : (parser.comment += "-" + c, parser.state = S.COMMENT); continue; case S.COMMENT_ENDED: ">" !== c ? (strictFail(parser, "Malformed comment"), parser.comment += "--" + c, parser.state = S.COMMENT) : parser.state = S.TEXT; continue; case S.CDATA: "]" === c ? parser.state = S.CDATA_ENDING : parser.cdata += c; continue; case S.CDATA_ENDING: "]" === c ? parser.state = S.CDATA_ENDING_2 : (parser.cdata += "]" + c, parser.state = S.CDATA); continue; case S.CDATA_ENDING_2: ">" === c ? (parser.cdata && emitNode(parser, "oncdata", parser.cdata), emitNode(parser, "onclosecdata"), parser.cdata = "", parser.state = S.TEXT) : "]" === c ? parser.cdata += "]" : (parser.cdata += "]]" + c, parser.state = S.CDATA); continue; case S.PROC_INST: "?" === c ? parser.state = S.PROC_INST_ENDING : is(whitespace, c) ? parser.state = S.PROC_INST_BODY : parser.procInstName += c; continue; case S.PROC_INST_BODY: if (!parser.procInstBody && is(whitespace, c)) continue; "?" === c ? parser.state = S.PROC_INST_ENDING : parser.procInstBody += c; continue; case S.PROC_INST_ENDING: ">" === c ? (emitNode(parser, "onprocessinginstruction", { name: parser.procInstName, body: parser.procInstBody }), parser.procInstName = parser.procInstBody = "", parser.state = S.TEXT) : (parser.procInstBody += "?" + c, parser.state = S.PROC_INST_BODY); continue; case S.OPEN_TAG: is(nameBody, c) ? parser.tagName += c : (newTag(parser), ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : (not(whitespace, c) && strictFail(parser, "Invalid character in tag name"), parser.state = S.ATTRIB)); continue; case S.OPEN_TAG_SLASH: ">" === c ? (openTag(parser, !0), closeTag(parser)) : (strictFail(parser, "Forward-slash in opening tag not followed by >"), parser.state = S.ATTRIB); continue; case S.ATTRIB: if (is(whitespace, c)) continue; ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : is(nameStart, c) ? (parser.attribName = c, parser.attribValue = "", parser.state = S.ATTRIB_NAME) : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_NAME: "=" === c ? parser.state = S.ATTRIB_VALUE : ">" === c ? (strictFail(parser, "Attribute without value"), parser.attribValue = parser.attribName, attrib(parser), openTag(parser)) : is(whitespace, c) ? parser.state = S.ATTRIB_NAME_SAW_WHITE : is(nameBody, c) ? parser.attribName += c : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_NAME_SAW_WHITE: if ("=" === c) parser.state = S.ATTRIB_VALUE; else { if (is(whitespace, c)) continue; strictFail(parser, "Attribute without value"), parser.tag.attributes[parser.attribName] = "", parser.attribValue = "", emitNode(parser, "onattribute", { name: parser.attribName, value: "" }), parser.attribName = "", ">" === c ? openTag(parser) : is(nameStart, c) ? (parser.attribName = c, parser.state = S.ATTRIB_NAME) : (strictFail(parser, "Invalid attribute name"), parser.state = S.ATTRIB) } continue; case S.ATTRIB_VALUE: if (is(whitespace, c)) continue; is(quote, c) ? (parser.q = c, parser.state = S.ATTRIB_VALUE_QUOTED) : (strictFail(parser, "Unquoted attribute value"), parser.state = S.ATTRIB_VALUE_UNQUOTED, parser.attribValue = c); continue; case S.ATTRIB_VALUE_QUOTED: if (c !== parser.q) { "&" === c ? parser.state = S.ATTRIB_VALUE_ENTITY_Q : parser.attribValue += c; continue } attrib(parser), parser.q = "", parser.state = S.ATTRIB_VALUE_CLOSED; continue; case S.ATTRIB_VALUE_CLOSED: is(whitespace, c) ? parser.state = S.ATTRIB : ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : is(nameStart, c) ? (strictFail(parser, "No whitespace between attributes"), parser.attribName = c, parser.attribValue = "", parser.state = S.ATTRIB_NAME) : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_VALUE_UNQUOTED: if (not(attribEnd, c)) { "&" === c ? parser.state = S.ATTRIB_VALUE_ENTITY_U : parser.attribValue += c; continue } attrib(parser), ">" === c ? openTag(parser) : parser.state = S.ATTRIB; continue; case S.CLOSE_TAG: if (parser.tagName) ">" === c ? closeTag(parser) : is(nameBody, c) ? parser.tagName += c : parser.script ? (parser.script += "" === c ? closeTag(parser) : strictFail(parser, "Invalid characters in closing tag"); continue; case S.TEXT_ENTITY: case S.ATTRIB_VALUE_ENTITY_Q: case S.ATTRIB_VALUE_ENTITY_U: var returnState, buffer; switch (parser.state) { case S.TEXT_ENTITY: returnState = S.TEXT, buffer = "textNode"; break; case S.ATTRIB_VALUE_ENTITY_Q: returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"; break; case S.ATTRIB_VALUE_ENTITY_U: returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue" } ";" === c ? (parser[buffer] += parseEntity(parser), parser.entity = "", parser.state = returnState) : is(parser.entity.length ? entityBody : entityStart, c) ? parser.entity += c : (strictFail(parser, "Invalid character in entity name"), parser[buffer] += "&" + parser.entity + c, parser.entity = "", parser.state = returnState); continue; default: throw new Error(parser, "Unknown state: " + parser.state) } } return parser.position >= parser.bufferCheckPosition && checkBufferLength(parser), parser } sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }, sax.SAXParser = SAXParser, sax.SAXStream = SAXStream, sax.createStream = createStream, sax.MAX_BUFFER_LENGTH = 65536; var buffers = ["comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script"]; sax.EVENTS = ["text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace"], Object.create || (Object.create = function (o) { function F() { } F.prototype = o; var newf = new F; return newf }), Object.keys || (Object.keys = function (o) { var a = []; for (var i in o) o.hasOwnProperty(i) && a.push(i); return a }), SAXParser.prototype = { end: function () { end(this) }, write: write, resume: function () { return this.error = null, this }, close: function () { return this.write(null) }, flush: function () { flushBuffers(this) } }; var Stream; try { Stream = require("stream").Stream } catch (ex) { Stream = function () { } } var streamWraps = sax.EVENTS.filter(function (ev) { return "error" !== ev && "end" !== ev }); SAXStream.prototype = Object.create(Stream.prototype, {constructor: {value: SAXStream}}), SAXStream.prototype.write = function (data) { if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { if (!this._decoder) { var SD = require("string_decoder").StringDecoder; this._decoder = new SD("utf8") } data = this._decoder.write(data) } return this._parser.write(data.toString()), this.emit("data", data), !0 }, SAXStream.prototype.end = function (chunk) { return chunk && chunk.length && this.write(chunk), this._parser.end(), !0 }, SAXStream.prototype.on = function (ev, handler) { var me = this; return me._parser["on" + ev] || -1 === streamWraps.indexOf(ev) || (me._parser["on" + ev] = function () { var args = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments); args.splice(0, 0, ev), me.emit.apply(me, args) }), Stream.prototype.on.call(me, ev, handler) }; var whitespace = "\r\n ", number = "0124356789", letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", quote = "'\"", attribEnd = whitespace + ">", CDATA = "[CDATA[", DOCTYPE = "DOCTYPE", XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace", XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/", rootNS = {xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE}; whitespace = charClass(whitespace), number = charClass(number), letter = charClass(letter); var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/, entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/; quote = charClass(quote), attribEnd = charClass(attribEnd); var S = 0; sax.STATE = { BEGIN: S++, BEGIN_WHITESPACE: S++, TEXT: S++, TEXT_ENTITY: S++, OPEN_WAKA: S++, SGML_DECL: S++, SGML_DECL_QUOTED: S++, DOCTYPE: S++, DOCTYPE_QUOTED: S++, DOCTYPE_DTD: S++, DOCTYPE_DTD_QUOTED: S++, COMMENT_STARTING: S++, COMMENT: S++, COMMENT_ENDING: S++, COMMENT_ENDED: S++, CDATA: S++, CDATA_ENDING: S++, CDATA_ENDING_2: S++, PROC_INST: S++, PROC_INST_BODY: S++, PROC_INST_ENDING: S++, OPEN_TAG: S++, OPEN_TAG_SLASH: S++, ATTRIB: S++, ATTRIB_NAME: S++, ATTRIB_NAME_SAW_WHITE: S++, ATTRIB_VALUE: S++, ATTRIB_VALUE_QUOTED: S++, ATTRIB_VALUE_CLOSED: S++, ATTRIB_VALUE_UNQUOTED: S++, ATTRIB_VALUE_ENTITY_Q: S++, ATTRIB_VALUE_ENTITY_U: S++, CLOSE_TAG: S++, CLOSE_TAG_SAW_WHITE: S++, SCRIPT: S++, SCRIPT_ENDING: S++ }, sax.XML_ENTITIES = {amp: "&", gt: ">", lt: "<", quot: '"', apos: "'"}, sax.ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'", AElig: 198, Aacute: 193, Acirc: 194, Agrave: 192, Aring: 197, Atilde: 195, Auml: 196, Ccedil: 199, ETH: 208, Eacute: 201, Ecirc: 202, Egrave: 200, Euml: 203, Iacute: 205, Icirc: 206, Igrave: 204, Iuml: 207, Ntilde: 209, Oacute: 211, Ocirc: 212, Ograve: 210, Oslash: 216, Otilde: 213, Ouml: 214, THORN: 222, Uacute: 218, Ucirc: 219, Ugrave: 217, Uuml: 220, Yacute: 221, aacute: 225, acirc: 226, aelig: 230, agrave: 224, aring: 229, atilde: 227, auml: 228, ccedil: 231, eacute: 233, ecirc: 234, egrave: 232, eth: 240, euml: 235, iacute: 237, icirc: 238, igrave: 236, iuml: 239, ntilde: 241, oacute: 243, ocirc: 244, ograve: 242, oslash: 248, otilde: 245, ouml: 246, szlig: 223, thorn: 254, uacute: 250, ucirc: 251, ugrave: 249, uuml: 252, yacute: 253, yuml: 255, copy: 169, reg: 174, nbsp: 160, iexcl: 161, cent: 162, pound: 163, curren: 164, yen: 165, brvbar: 166, sect: 167, uml: 168, ordf: 170, laquo: 171, not: 172, shy: 173, macr: 175, deg: 176, plusmn: 177, sup1: 185, sup2: 178, sup3: 179, acute: 180, micro: 181, para: 182, middot: 183, cedil: 184, ordm: 186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, times: 215, divide: 247, OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml: 376, fnof: 402, circ: 710, tilde: 732, Alpha: 913, Beta: 914, Gamma: 915, Delta: 916, Epsilon: 917, Zeta: 918, Eta: 919, Theta: 920, Iota: 921, Kappa: 922, Lambda: 923, Mu: 924, Nu: 925, Xi: 926, Omicron: 927, Pi: 928, Rho: 929, Sigma: 931, Tau: 932, Upsilon: 933, Phi: 934, Chi: 935, Psi: 936, Omega: 937, alpha: 945, beta: 946, gamma: 947, delta: 948, epsilon: 949, zeta: 950, eta: 951, theta: 952, iota: 953, kappa: 954, lambda: 955, mu: 956, nu: 957, xi: 958, omicron: 959, pi: 960, rho: 961, sigmaf: 962, sigma: 963, tau: 964, upsilon: 965, phi: 966, chi: 967, psi: 968, omega: 969, thetasym: 977, upsih: 978, piv: 982, ensp: 8194, emsp: 8195, thinsp: 8201, zwnj: 8204, zwj: 8205, lrm: 8206, rlm: 8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, bull: 8226, hellip: 8230, permil: 8240, prime: 8242, Prime: 8243, lsaquo: 8249, rsaquo: 8250, oline: 8254, frasl: 8260, euro: 8364, image: 8465, weierp: 8472, real: 8476, trade: 8482, alefsym: 8501, larr: 8592, uarr: 8593, rarr: 8594, darr: 8595, harr: 8596, crarr: 8629, lArr: 8656, uArr: 8657, rArr: 8658, dArr: 8659, hArr: 8660, forall: 8704, part: 8706, exist: 8707, empty: 8709, nabla: 8711, isin: 8712, notin: 8713, ni: 8715, prod: 8719, sum: 8721, minus: 8722, lowast: 8727, radic: 8730, prop: 8733, infin: 8734, ang: 8736, and: 8743, or: 8744, cap: 8745, cup: 8746, "int": 8747, there4: 8756, sim: 8764, cong: 8773, asymp: 8776, ne: 8800, equiv: 8801, le: 8804, ge: 8805, sub: 8834, sup: 8835, nsub: 8836, sube: 8838, supe: 8839, oplus: 8853, otimes: 8855, perp: 8869, sdot: 8901, lceil: 8968, rceil: 8969, lfloor: 8970, rfloor: 8971, lang: 9001, rang: 9002, loz: 9674, spades: 9824, clubs: 9827, hearts: 9829, diams: 9830 }, Object.keys(sax.ENTITIES).forEach(function (key) { var e = sax.ENTITIES[key], s = "number" == typeof e ? String.fromCharCode(e) : e; sax.ENTITIES[key] = s }); for (var s in sax.STATE) sax.STATE[sax.STATE[s]] = s; S = sax.STATE, String.fromCodePoint || !function () { var stringFromCharCode = String.fromCharCode, floor = Math.floor, fromCodePoint = function () { var highSurrogate, lowSurrogate, MAX_SIZE = 16384, codeUnits = [], index = -1, length = arguments.length; if (!length) return ""; for (var result = ""; ++index < length;) { var codePoint = Number(arguments[index]); if (!isFinite(codePoint) || 0 > codePoint || codePoint > 1114111 || floor(codePoint) !== codePoint) throw RangeError("Invalid code point: " + codePoint); 65535 >= codePoint ? codeUnits.push(codePoint) : (codePoint -= 65536, highSurrogate = (codePoint >> 10) + 55296, lowSurrogate = codePoint % 1024 + 56320, codeUnits.push(highSurrogate, lowSurrogate)), (index + 1 === length || codeUnits.length > MAX_SIZE) && (result += stringFromCharCode.apply(null, codeUnits), codeUnits.length = 0) } return result }; Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { value: fromCodePoint, configurable: !0, writable: !0 }) : String.fromCodePoint = fromCodePoint }() }("undefined" == typeof exports ? this.sax = {} : exports) }).call(this, require("buffer").Buffer) }, {buffer: 78, stream: 115, string_decoder: 116}], 115: [function (require, module, exports) { function Stream() { EE.call(this) } module.exports = Stream; var EE = require("events").EventEmitter, inherits = require("inherits"); inherits(Stream, EE), Stream.Readable = require("readable-stream/readable.js"), Stream.Writable = require("readable-stream/writable.js"), Stream.Duplex = require("readable-stream/duplex.js"), Stream.Transform = require("readable-stream/transform.js"), Stream.PassThrough = require("readable-stream/passthrough.js"), Stream.Stream = Stream, Stream.prototype.pipe = function (dest, options) { function ondata(chunk) { dest.writable && !1 === dest.write(chunk) && source.pause && source.pause() } function ondrain() { source.readable && source.resume && source.resume() } function onend() { didOnEnd || (didOnEnd = !0, dest.end()) } function onclose() { didOnEnd || (didOnEnd = !0, "function" == typeof dest.destroy && dest.destroy()) } function onerror(er) { if (cleanup(), 0 === EE.listenerCount(this, "error")) throw er } function cleanup() { source.removeListener("data", ondata), dest.removeListener("drain", ondrain), source.removeListener("end", onend), source.removeListener("close", onclose), source.removeListener("error", onerror), dest.removeListener("error", onerror), source.removeListener("end", cleanup), source.removeListener("close", cleanup), dest.removeListener("close", cleanup) } var source = this; source.on("data", ondata), dest.on("drain", ondrain), dest._isStdio || options && options.end === !1 || (source.on("end", onend), source.on("close", onclose)); var didOnEnd = !1; return source.on("error", onerror), dest.on("error", onerror), source.on("end", cleanup), source.on("close", cleanup), dest.on("close", cleanup), dest.emit("pipe", source), dest } }, { events: 82, inherits: 84, "readable-stream/duplex.js": 103, "readable-stream/passthrough.js": 110, "readable-stream/readable.js": 111, "readable-stream/transform.js": 112, "readable-stream/writable.js": 113 }], 116: [function (require, module, exports) { function assertEncoding(encoding) { if (encoding && !isBufferEncoding(encoding)) throw new Error("Unknown encoding: " + encoding) } function passThroughWrite(buffer) { return buffer.toString(this.encoding) } function utf16DetectIncompleteChar(buffer) { this.charReceived = buffer.length % 2, this.charLength = this.charReceived ? 2 : 0 } function base64DetectIncompleteChar(buffer) { this.charReceived = buffer.length % 3, this.charLength = this.charReceived ? 3 : 0 } var Buffer = require("buffer").Buffer, isBufferEncoding = Buffer.isEncoding || function (encoding) { switch (encoding && encoding.toLowerCase()) { case"hex": case"utf8": case"utf-8": case"ascii": case"binary": case"base64": case"ucs2": case"ucs-2": case"utf16le": case"utf-16le": case"raw": return !0; default: return !1 } }, StringDecoder = exports.StringDecoder = function (encoding) { switch (this.encoding = (encoding || "utf8").toLowerCase().replace(/[-_]/, ""), assertEncoding(encoding), this.encoding) { case"utf8": this.surrogateSize = 3; break; case"ucs2": case"utf16le": this.surrogateSize = 2, this.detectIncompleteChar = utf16DetectIncompleteChar; break; case"base64": this.surrogateSize = 3, this.detectIncompleteChar = base64DetectIncompleteChar; break; default: return void(this.write = passThroughWrite) } this.charBuffer = new Buffer(6), this.charReceived = 0, this.charLength = 0 }; StringDecoder.prototype.write = function (buffer) { for (var charStr = ""; this.charLength;) { var available = buffer.length >= this.charLength - this.charReceived ? this.charLength - this.charReceived : buffer.length; if (buffer.copy(this.charBuffer, this.charReceived, 0, available), this.charReceived += available, this.charReceived < this.charLength) return ""; buffer = buffer.slice(available, buffer.length), charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); var charCode = charStr.charCodeAt(charStr.length - 1); if (!(charCode >= 55296 && 56319 >= charCode)) { if (this.charReceived = this.charLength = 0, 0 === buffer.length) return charStr; break } this.charLength += this.surrogateSize, charStr = "" } this.detectIncompleteChar(buffer); var end = buffer.length; this.charLength && (buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end), end -= this.charReceived), charStr += buffer.toString(this.encoding, 0, end); var end = charStr.length - 1, charCode = charStr.charCodeAt(end); if (charCode >= 55296 && 56319 >= charCode) { var size = this.surrogateSize; return this.charLength += size, this.charReceived += size, this.charBuffer.copy(this.charBuffer, size, 0, size), buffer.copy(this.charBuffer, 0, 0, size), charStr.substring(0, end) } return charStr }, StringDecoder.prototype.detectIncompleteChar = function (buffer) { for (var i = buffer.length >= 3 ? 3 : buffer.length; i > 0; i--) { var c = buffer[buffer.length - i]; if (1 == i && c >> 5 == 6) { this.charLength = 2; break } if (2 >= i && c >> 4 == 14) { this.charLength = 3; break } if (3 >= i && c >> 3 == 30) { this.charLength = 4; break } } this.charReceived = i }, StringDecoder.prototype.end = function (buffer) { var res = ""; if (buffer && buffer.length && (res = this.write(buffer)), this.charReceived) { var cr = this.charReceived, buf = this.charBuffer, enc = this.encoding; res += buf.slice(0, cr).toString(enc) } return res } }, {buffer: 78}], 117: [function (require, module, exports) { (function (global) { !function (global, factory) { "object" == typeof exports && "undefined" != typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define("underscore", factory) : (global = "undefined" != typeof globalThis ? globalThis : global || self, function () { var current = global._, exports = global._ = factory(); exports.noConflict = function () { return global._ = current, exports } }()) }(this, function () { function restArguments(func, startIndex) { return startIndex = null == startIndex ? func.length - 1 : +startIndex, function () { for (var length = Math.max(arguments.length - startIndex, 0), rest = Array(length), index = 0; length > index; index++) rest[index] = arguments[index + startIndex]; switch (startIndex) { case 0: return func.call(this, rest); case 1: return func.call(this, arguments[0], rest); case 2: return func.call(this, arguments[0], arguments[1], rest) } var args = Array(startIndex + 1); for (index = 0; startIndex > index; index++) args[index] = arguments[index]; return args[startIndex] = rest, func.apply(this, args) } } function isObject(obj) { var type = typeof obj; return "function" === type || "object" === type && !!obj } function isNull(obj) { return null === obj } function isUndefined(obj) { return void 0 === obj } function isBoolean(obj) { return obj === !0 || obj === !1 || "[object Boolean]" === toString.call(obj) } function isElement(obj) { return !(!obj || 1 !== obj.nodeType) } function tagTester(name) { var tag = "[object " + name + "]"; return function (obj) { return toString.call(obj) === tag } } function ie10IsDataView(obj) { return null != obj && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer) } function has$1(obj, key) { return null != obj && hasOwnProperty.call(obj, key) } function isFinite$1(obj) { return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)) } function isNaN$1(obj) { return isNumber(obj) && _isNaN(obj) } function constant(value) { return function () { return value } } function createSizePropertyCheck(getSizeProperty) { return function (collection) { var sizeProperty = getSizeProperty(collection); return "number" == typeof sizeProperty && sizeProperty >= 0 && MAX_ARRAY_INDEX >= sizeProperty } } function shallowProperty(key) { return function (obj) { return null == obj ? void 0 : obj[key] } } function isTypedArray(obj) { return nativeIsView ? nativeIsView(obj) && !isDataView$1(obj) : isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)) } function emulatedSet(keys) { for (var hash = {}, l = keys.length, i = 0; l > i; ++i) hash[keys[i]] = !0; return { contains: function (key) { return hash[key] }, push: function (key) { return hash[key] = !0, keys.push(key) } } } function collectNonEnumProps(obj, keys) { keys = emulatedSet(keys); var nonEnumIdx = nonEnumerableProps.length, constructor = obj.constructor, proto = isFunction$1(constructor) && constructor.prototype || ObjProto, prop = "constructor"; for (has$1(obj, prop) && !keys.contains(prop) && keys.push(prop); nonEnumIdx--;) prop = nonEnumerableProps[nonEnumIdx], prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop) && keys.push(prop) } function keys(obj) { if (!isObject(obj)) return []; if (nativeKeys) return nativeKeys(obj); var keys = []; for (var key in obj) has$1(obj, key) && keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function isEmpty(obj) { if (null == obj) return !0; var length = getLength(obj); return "number" == typeof length && (isArray(obj) || isString(obj) || isArguments$1(obj)) ? 0 === length : 0 === getLength(keys(obj)) } function isMatch(object, attrs) { var _keys = keys(attrs), length = _keys.length; if (null == object) return !length; for (var obj = Object(object), i = 0; length > i; i++) { var key = _keys[i]; if (attrs[key] !== obj[key] || !(key in obj)) return !1 } return !0 } function _$1(obj) { return obj instanceof _$1 ? obj : this instanceof _$1 ? void(this._wrapped = obj) : new _$1(obj) } function toBufferView(bufferSource) { return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, getByteLength(bufferSource)) } function eq(a, b, aStack, bStack) { if (a === b) return 0 !== a || 1 / a === 1 / b; if (null == a || null == b) return !1; if (a !== a) return b !== b; var type = typeof a; return "function" !== type && "object" !== type && "object" != typeof b ? !1 : deepEq(a, b, aStack, bStack) } function deepEq(a, b, aStack, bStack) { a instanceof _$1 && (a = a._wrapped), b instanceof _$1 && (b = b._wrapped); var className = toString.call(a); if (className !== toString.call(b)) return !1; if (hasStringTagBug && "[object Object]" == className && isDataView$1(a)) { if (!isDataView$1(b)) return !1; className = tagDataView } switch (className) { case"[object RegExp]": case"[object String]": return "" + a == "" + b; case"[object Number]": return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b; case"[object Date]": case"[object Boolean]": return +a === +b; case"[object Symbol]": return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); case"[object ArrayBuffer]": case tagDataView: return deepEq(toBufferView(a), toBufferView(b), aStack, bStack) } var areArrays = "[object Array]" === className; if (!areArrays && isTypedArray$1(a)) { var byteLength = getByteLength(a); if (byteLength !== getByteLength(b)) return !1; if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return !0; areArrays = !0 } if (!areArrays) { if ("object" != typeof a || "object" != typeof b) return !1; var aCtor = a.constructor, bCtor = b.constructor; if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && isFunction$1(bCtor) && bCtor instanceof bCtor) && "constructor" in a && "constructor" in b) return !1 } aStack = aStack || [], bStack = bStack || []; for (var length = aStack.length; length--;) if (aStack[length] === a) return bStack[length] === b; if (aStack.push(a), bStack.push(b), areArrays) { if (length = a.length, length !== b.length) return !1; for (; length--;) if (!eq(a[length], b[length], aStack, bStack)) return !1 } else { var key, _keys = keys(a); if (length = _keys.length, keys(b).length !== length) return !1; for (; length--;) if (key = _keys[length], !has$1(b, key) || !eq(a[key], b[key], aStack, bStack)) return !1 } return aStack.pop(), bStack.pop(), !0 } function isEqual(a, b) { return eq(a, b) } function allKeys(obj) { if (!isObject(obj)) return []; var keys = []; for (var key in obj) keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function ie11fingerprint(methods) { var length = getLength(methods); return function (obj) { if (null == obj) return !1; var keys = allKeys(obj); if (getLength(keys)) return !1; for (var i = 0; length > i; i++) if (!isFunction$1(obj[methods[i]])) return !1; return methods !== weakMapMethods || !isFunction$1(obj[forEachName]) } } function values(obj) { for (var _keys = keys(obj), length = _keys.length, values = Array(length), i = 0; length > i; i++) values[i] = obj[_keys[i]]; return values } function pairs(obj) { for (var _keys = keys(obj), length = _keys.length, pairs = Array(length), i = 0; length > i; i++) pairs[i] = [_keys[i], obj[_keys[i]]]; return pairs } function invert(obj) { for (var result = {}, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++) result[obj[_keys[i]]] = _keys[i]; return result } function functions(obj) { var names = []; for (var key in obj) isFunction$1(obj[key]) && names.push(key); return names.sort() } function createAssigner(keysFunc, defaults) { return function (obj) { var length = arguments.length; if (defaults && (obj = Object(obj)), 2 > length || null == obj) return obj; for (var index = 1; length > index; index++) for (var source = arguments[index], keys = keysFunc(source), l = keys.length, i = 0; l > i; i++) { var key = keys[i]; defaults && void 0 !== obj[key] || (obj[key] = source[key]) } return obj } } function ctor() { return function () { } } function baseCreate(prototype) { if (!isObject(prototype)) return {}; if (nativeCreate) return nativeCreate(prototype); var Ctor = ctor(); Ctor.prototype = prototype; var result = new Ctor; return Ctor.prototype = null, result } function create(prototype, props) { var result = baseCreate(prototype); return props && extendOwn(result, props), result } function clone(obj) { return isObject(obj) ? isArray(obj) ? obj.slice() : extend({}, obj) : obj } function tap(obj, interceptor) { return interceptor(obj), obj } function toPath$1(path) { return isArray(path) ? path : [path] } function toPath(path) { return _$1.toPath(path) } function deepGet(obj, path) { for (var length = path.length, i = 0; length > i; i++) { if (null == obj) return void 0; obj = obj[path[i]] } return length ? obj : void 0 } function get(object, path, defaultValue) { var value = deepGet(object, toPath(path)); return isUndefined(value) ? defaultValue : value } function has(obj, path) { path = toPath(path); for (var length = path.length, i = 0; length > i; i++) { var key = path[i]; if (!has$1(obj, key)) return !1; obj = obj[key] } return !!length } function identity(value) { return value } function matcher(attrs) { return attrs = extendOwn({}, attrs), function (obj) { return isMatch(obj, attrs) } } function property(path) { return path = toPath(path), function (obj) { return deepGet(obj, path) } } function optimizeCb(func, context, argCount) { if (void 0 === context) return func; switch (null == argCount ? 3 : argCount) { case 1: return function (value) { return func.call(context, value) }; case 3: return function (value, index, collection) { return func.call(context, value, index, collection) }; case 4: return function (accumulator, value, index, collection) { return func.call(context, accumulator, value, index, collection) } } return function () { return func.apply(context, arguments) } } function baseIteratee(value, context, argCount) { return null == value ? identity : isFunction$1(value) ? optimizeCb(value, context, argCount) : isObject(value) && !isArray(value) ? matcher(value) : property(value) } function iteratee(value, context) { return baseIteratee(value, context, 1 / 0) } function cb(value, context, argCount) { return _$1.iteratee !== iteratee ? _$1.iteratee(value, context) : baseIteratee(value, context, argCount) } function mapObject(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = keys(obj), length = _keys.length, results = {}, index = 0; length > index; index++) { var currentKey = _keys[index]; results[currentKey] = iteratee(obj[currentKey], currentKey, obj) } return results } function noop() { } function propertyOf(obj) { return null == obj ? noop : function (path) { return get(obj, path) } } function times(n, iteratee, context) { var accum = Array(Math.max(0, n)); iteratee = optimizeCb(iteratee, context, 1); for (var i = 0; n > i; i++) accum[i] = iteratee(i); return accum } function random(min, max) { return null == max && (max = min, min = 0), min + Math.floor(Math.random() * (max - min + 1)) } function createEscaper(map) { var escaper = function (match) { return map[match] }, source = "(?:" + keys(map).join("|") + ")", testRegexp = RegExp(source), replaceRegexp = RegExp(source, "g"); return function (string) { return string = null == string ? "" : "" + string, testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string } } function escapeChar(match) { return "\\" + escapes[match] } function template(text, settings, oldSettings) { !settings && oldSettings && (settings = oldSettings), settings = defaults({}, settings, _$1.templateSettings); var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join("|") + "|$", "g"), index = 0, source = "__p+='"; text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { return source += text.slice(index, offset).replace(escapeRegExp, escapeChar), index = offset + match.length, escape ? source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'" : interpolate ? source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'" : evaluate && (source += "';\n" + evaluate + "\n__p+='"), match }), source += "';\n"; var argument = settings.variable; if (argument) { if (!bareIdentifier.test(argument)) throw new Error("variable is not a bare identifier: " + argument) } else source = "with(obj||{}){\n" + source + "}\n", argument = "obj"; source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n"; var render; try { render = new Function(argument, "_", source) } catch (e) { throw e.source = source, e } var template = function (data) { return render.call(this, data, _$1) }; return template.source = "function(" + argument + "){\n" + source + "}", template } function result(obj, path, fallback) { path = toPath(path); var length = path.length; if (!length) return isFunction$1(fallback) ? fallback.call(obj) : fallback; for (var i = 0; length > i; i++) { var prop = null == obj ? void 0 : obj[path[i]]; void 0 === prop && (prop = fallback, i = length), obj = isFunction$1(prop) ? prop.call(obj) : prop } return obj } function uniqueId(prefix) { var id = ++idCounter + ""; return prefix ? prefix + id : id } function chain(obj) { var instance = _$1(obj); return instance._chain = !0, instance } function executeBound(sourceFunc, boundFunc, context, callingContext, args) { if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); var self = baseCreate(sourceFunc.prototype), result = sourceFunc.apply(self, args); return isObject(result) ? result : self } function flatten$1(input, depth, strict, output) { if (output = output || [], depth || 0 === depth) { if (0 >= depth) return output.concat(input) } else depth = 1 / 0; for (var idx = output.length, i = 0, length = getLength(input); length > i; i++) { var value = input[i]; if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) if (depth > 1) flatten$1(value, depth - 1, strict, output), idx = output.length; else for (var j = 0, len = value.length; len > j;) output[idx++] = value[j++]; else strict || (output[idx++] = value) } return output } function memoize(func, hasher) { var memoize = function (key) { var cache = memoize.cache, address = "" + (hasher ? hasher.apply(this, arguments) : key); return has$1(cache, address) || (cache[address] = func.apply(this, arguments)), cache[address] }; return memoize.cache = {}, memoize } function throttle(func, wait, options) { var timeout, context, args, result, previous = 0; options || (options = {}); var later = function () { previous = options.leading === !1 ? 0 : now(), timeout = null, result = func.apply(context, args), timeout || (context = args = null) }, throttled = function () { var _now = now(); previous || options.leading !== !1 || (previous = _now); var remaining = wait - (_now - previous); return context = this, args = arguments, 0 >= remaining || remaining > wait ? (timeout && (clearTimeout(timeout), timeout = null), previous = _now, result = func.apply(context, args), timeout || (context = args = null)) : timeout || options.trailing === !1 || (timeout = setTimeout(later, remaining)), result }; return throttled.cancel = function () { clearTimeout(timeout), previous = 0, timeout = context = args = null }, throttled } function debounce(func, wait, immediate) { var timeout, previous, args, result, context, later = function () { var passed = now() - previous; wait > passed ? timeout = setTimeout(later, wait - passed) : (timeout = null, immediate || (result = func.apply(context, args)), timeout || (args = context = null)) }, debounced = restArguments(function (_args) { return context = this, args = _args, previous = now(), timeout || (timeout = setTimeout(later, wait), immediate && (result = func.apply(context, args))), result }); return debounced.cancel = function () { clearTimeout(timeout), timeout = args = context = null }, debounced } function wrap(func, wrapper) { return partial(wrapper, func) } function negate(predicate) { return function () { return !predicate.apply(this, arguments) } } function compose() { var args = arguments, start = args.length - 1; return function () { for (var i = start, result = args[start].apply(this, arguments); i--;) result = args[i].call(this, result); return result } } function after(times, func) { return function () { return --times < 1 ? func.apply(this, arguments) : void 0 } } function before(times, func) { var memo; return function () { return --times > 0 && (memo = func.apply(this, arguments)), 1 >= times && (func = null), memo } } function findKey(obj, predicate, context) { predicate = cb(predicate, context); for (var key, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++) if (key = _keys[i], predicate(obj[key], key, obj)) return key } function createPredicateIndexFinder(dir) { return function (array, predicate, context) { predicate = cb(predicate, context); for (var length = getLength(array), index = dir > 0 ? 0 : length - 1; index >= 0 && length > index; index += dir) if (predicate(array[index], index, array)) return index; return -1 } } function sortedIndex(array, obj, iteratee, context) { iteratee = cb(iteratee, context, 1); for (var value = iteratee(obj), low = 0, high = getLength(array); high > low;) { var mid = Math.floor((low + high) / 2); iteratee(array[mid]) < value ? low = mid + 1 : high = mid } return low } function createIndexFinder(dir, predicateFind, sortedIndex) { return function (array, item, idx) { var i = 0, length = getLength(array); if ("number" == typeof idx) dir > 0 ? i = idx >= 0 ? idx : Math.max(idx + length, i) : length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; else if (sortedIndex && idx && length) return idx = sortedIndex(array, item), array[idx] === item ? idx : -1; if (item !== item) return idx = predicateFind(slice.call(array, i, length), isNaN$1), idx >= 0 ? idx + i : -1; for (idx = dir > 0 ? i : length - 1; idx >= 0 && length > idx; idx += dir) if (array[idx] === item) return idx; return -1 } } function find(obj, predicate, context) { var keyFinder = isArrayLike(obj) ? findIndex : findKey, key = keyFinder(obj, predicate, context); return void 0 !== key && -1 !== key ? obj[key] : void 0 } function findWhere(obj, attrs) { return find(obj, matcher(attrs)) } function each(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) for (i = 0, length = obj.length; length > i; i++) iteratee(obj[i], i, obj); else { var _keys = keys(obj); for (i = 0, length = _keys.length; length > i; i++) iteratee(obj[_keys[i]], _keys[i], obj) } return obj } function map(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, results = Array(length), index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; results[index] = iteratee(obj[currentKey], currentKey, obj) } return results } function createReduce(dir) { var reducer = function (obj, iteratee, memo, initial) { var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = dir > 0 ? 0 : length - 1; for (initial || (memo = obj[_keys ? _keys[index] : index], index += dir); index >= 0 && length > index; index += dir) { var currentKey = _keys ? _keys[index] : index; memo = iteratee(memo, obj[currentKey], currentKey, obj) } return memo }; return function (obj, iteratee, memo, context) { var initial = arguments.length >= 3; return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial) } } function filter(obj, predicate, context) { var results = []; return predicate = cb(predicate, context), each(obj, function (value, index, list) { predicate(value, index, list) && results.push(value) }), results } function reject(obj, predicate, context) { return filter(obj, negate(cb(predicate)), context) } function every(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (!predicate(obj[currentKey], currentKey, obj)) return !1 } return !0 } function some(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (predicate(obj[currentKey], currentKey, obj)) return !0 } return !1 } function contains(obj, item, fromIndex, guard) { return isArrayLike(obj) || (obj = values(obj)), ("number" != typeof fromIndex || guard) && (fromIndex = 0), indexOf(obj, item, fromIndex) >= 0 } function pluck(obj, key) { return map(obj, property(key)) } function where(obj, attrs) { return filter(obj, matcher(attrs)) } function max(obj, iteratee, context) { var value, computed, result = -(1 / 0), lastComputed = -(1 / 0); if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++) value = obj[i], null != value && value > result && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (computed > lastComputed || computed === -(1 / 0) && result === -(1 / 0)) && (result = v, lastComputed = computed) }); return result } function min(obj, iteratee, context) { var value, computed, result = 1 / 0, lastComputed = 1 / 0; if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++) value = obj[i], null != value && result > value && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (lastComputed > computed || computed === 1 / 0 && result === 1 / 0) && (result = v, lastComputed = computed) }); return result } function sample(obj, n, guard) { if (null == n || guard) return isArrayLike(obj) || (obj = values(obj)), obj[random(obj.length - 1)]; var sample = isArrayLike(obj) ? clone(obj) : values(obj), length = getLength(sample); n = Math.max(Math.min(n, length), 0); for (var last = length - 1, index = 0; n > index; index++) { var rand = random(index, last), temp = sample[index]; sample[index] = sample[rand], sample[rand] = temp } return sample.slice(0, n) } function shuffle(obj) { return sample(obj, 1 / 0) } function sortBy(obj, iteratee, context) { var index = 0; return iteratee = cb(iteratee, context), pluck(map(obj, function (value, key, list) { return {value: value, index: index++, criteria: iteratee(value, key, list)} }).sort(function (left, right) { var a = left.criteria, b = right.criteria; if (a !== b) { if (a > b || void 0 === a) return 1; if (b > a || void 0 === b) return -1 } return left.index - right.index }), "value") } function group(behavior, partition) { return function (obj, iteratee, context) { var result = partition ? [[], []] : {}; return iteratee = cb(iteratee, context), each(obj, function (value, index) { var key = iteratee(value, index, obj); behavior(result, value, key) }), result } } function toArray(obj) { return obj ? isArray(obj) ? slice.call(obj) : isString(obj) ? obj.match(reStrSymbol) : isArrayLike(obj) ? map(obj, identity) : values(obj) : [] } function size(obj) { return null == obj ? 0 : isArrayLike(obj) ? obj.length : keys(obj).length } function keyInObj(value, key, obj) { return key in obj } function initial(array, n, guard) { return slice.call(array, 0, Math.max(0, array.length - (null == n || guard ? 1 : n))) } function first(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[0] : initial(array, array.length - n) } function rest(array, n, guard) { return slice.call(array, null == n || guard ? 1 : n) } function last(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[array.length - 1] : rest(array, Math.max(0, array.length - n)) } function compact(array) { return filter(array, Boolean) } function flatten(array, depth) { return flatten$1(array, depth, !1) } function uniq(array, isSorted, iteratee, context) { isBoolean(isSorted) || (context = iteratee, iteratee = isSorted, isSorted = !1), null != iteratee && (iteratee = cb(iteratee, context)); for (var result = [], seen = [], i = 0, length = getLength(array); length > i; i++) { var value = array[i], computed = iteratee ? iteratee(value, i, array) : value; isSorted && !iteratee ? (i && seen === computed || result.push(value), seen = computed) : iteratee ? contains(seen, computed) || (seen.push(computed), result.push(value)) : contains(result, value) || result.push(value) } return result } function intersection(array) { for (var result = [], argsLength = arguments.length, i = 0, length = getLength(array); length > i; i++) { var item = array[i]; if (!contains(result, item)) { var j; for (j = 1; argsLength > j && contains(arguments[j], item); j++) ; j === argsLength && result.push(item) } } return result } function unzip(array) { for (var length = array && max(array, getLength).length || 0, result = Array(length), index = 0; length > index; index++) result[index] = pluck(array, index); return result } function object(list, values) { for (var result = {}, i = 0, length = getLength(list); length > i; i++) values ? result[list[i]] = values[i] : result[list[i][0]] = list[i][1]; return result } function range(start, stop, step) { null == stop && (stop = start || 0, start = 0), step || (step = start > stop ? -1 : 1); for (var length = Math.max(Math.ceil((stop - start) / step), 0), range = Array(length), idx = 0; length > idx; idx++, start += step) range[idx] = start; return range } function chunk(array, count) { if (null == count || 1 > count) return []; for (var result = [], i = 0, length = array.length; length > i;) result.push(slice.call(array, i, i += count)); return result } function chainResult(instance, obj) { return instance._chain ? _$1(obj).chain() : obj } function mixin(obj) { return each(functions(obj), function (name) { var func = _$1[name] = obj[name]; _$1.prototype[name] = function () { var args = [this._wrapped]; return push.apply(args, arguments), chainResult(this, func.apply(_$1, args)) } }), _$1 } var VERSION = "1.13.1", root = "object" == typeof self && self.self === self && self || "object" == typeof global && global.global === global && global || Function("return this")() || {}, ArrayProto = Array.prototype, ObjProto = Object.prototype, SymbolProto = "undefined" != typeof Symbol ? Symbol.prototype : null, push = ArrayProto.push, slice = ArrayProto.slice, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty, supportsArrayBuffer = "undefined" != typeof ArrayBuffer, supportsDataView = "undefined" != typeof DataView, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeCreate = Object.create, nativeIsView = supportsArrayBuffer && ArrayBuffer.isView, _isNaN = isNaN, _isFinite = isFinite, hasEnumBug = !{toString: null}.propertyIsEnumerable("toString"), nonEnumerableProps = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"], MAX_ARRAY_INDEX = Math.pow(2, 53) - 1, isString = tagTester("String"), isNumber = tagTester("Number"), isDate = tagTester("Date"), isRegExp = tagTester("RegExp"), isError = tagTester("Error"), isSymbol = tagTester("Symbol"), isArrayBuffer = tagTester("ArrayBuffer"), isFunction = tagTester("Function"), nodelist = root.document && root.document.childNodes; "function" != typeof/./ && "object" != typeof Int8Array && "function" != typeof nodelist && (isFunction = function (obj) { return "function" == typeof obj || !1 }); var isFunction$1 = isFunction, hasObjectTag = tagTester("Object"), hasStringTagBug = supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))), isIE11 = "undefined" != typeof Map && hasObjectTag(new Map), isDataView = tagTester("DataView"), isDataView$1 = hasStringTagBug ? ie10IsDataView : isDataView, isArray = nativeIsArray || tagTester("Array"), isArguments = tagTester("Arguments"); !function () { isArguments(arguments) || (isArguments = function (obj) { return has$1(obj, "callee") }) }(); var isArguments$1 = isArguments, getByteLength = shallowProperty("byteLength"), isBufferLike = createSizePropertyCheck(getByteLength), typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/, isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(!1), getLength = shallowProperty("length"); _$1.VERSION = VERSION, _$1.prototype.value = function () { return this._wrapped }, _$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value, _$1.prototype.toString = function () { return String(this._wrapped) }; var tagDataView = "[object DataView]", forEachName = "forEach", hasName = "has", commonInit = ["clear", "delete"], mapTail = ["get", hasName, "set"], mapMethods = commonInit.concat(forEachName, mapTail), weakMapMethods = commonInit.concat(mapTail), setMethods = ["add"].concat(commonInit, forEachName, hasName), isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester("Map"), isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester("WeakMap"), isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester("Set"), isWeakSet = tagTester("WeakSet"), extend = createAssigner(allKeys), extendOwn = createAssigner(keys), defaults = createAssigner(allKeys, !0); _$1.toPath = toPath$1, _$1.iteratee = iteratee; var now = Date.now || function () { return (new Date).getTime() }, escapeMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "`": "`" }, _escape = createEscaper(escapeMap), unescapeMap = invert(escapeMap), _unescape = createEscaper(unescapeMap), templateSettings = _$1.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }, noMatch = /(.)^/, escapes = {"'": "'", "\\": "\\", "\r": "r", "\n": "n", "\u2028": "u2028", "\u2029": "u2029"}, escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g, bareIdentifier = /^\s*(\w|\$)+\s*$/, idCounter = 0, partial = restArguments(function (func, boundArgs) { var placeholder = partial.placeholder, bound = function () { for (var position = 0, length = boundArgs.length, args = Array(length), i = 0; length > i; i++) args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; for (; position < arguments.length;) args.push(arguments[position++]); return executeBound(func, bound, this, this, args) }; return bound }); partial.placeholder = _$1; var bind = restArguments(function (func, context, args) { if (!isFunction$1(func)) throw new TypeError("Bind must be called on a function"); var bound = restArguments(function (callArgs) { return executeBound(func, bound, context, this, args.concat(callArgs)) }); return bound }), isArrayLike = createSizePropertyCheck(getLength), bindAll = restArguments(function (obj, keys) { keys = flatten$1(keys, !1, !1); var index = keys.length; if (1 > index) throw new Error("bindAll must be passed function names"); for (; index--;) { var key = keys[index]; obj[key] = bind(obj[key], obj) } return obj }), delay = restArguments(function (func, wait, args) { return setTimeout(function () { return func.apply(null, args) }, wait) }), defer = partial(delay, _$1, 1), once = partial(before, 2), findIndex = createPredicateIndexFinder(1), findLastIndex = createPredicateIndexFinder(-1), indexOf = createIndexFinder(1, findIndex, sortedIndex), lastIndexOf = createIndexFinder(-1, findLastIndex), reduce = createReduce(1), reduceRight = createReduce(-1), invoke = restArguments(function (obj, path, args) { var contextPath, func; return isFunction$1(path) ? func = path : (path = toPath(path), contextPath = path.slice(0, -1), path = path[path.length - 1]), map(obj, function (context) { var method = func; if (!method) { if (contextPath && contextPath.length && (context = deepGet(context, contextPath)), null == context) return void 0; method = context[path] } return null == method ? method : method.apply(context, args) }) }), groupBy = group(function (result, value, key) { has$1(result, key) ? result[key].push(value) : result[key] = [value] }), indexBy = group(function (result, value, key) { result[key] = value }), countBy = group(function (result, value, key) { has$1(result, key) ? result[key]++ : result[key] = 1 }), partition = group(function (result, value, pass) { result[pass ? 0 : 1].push(value) }, !0), reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g, pick = restArguments(function (obj, keys) { var result = {}, iteratee = keys[0]; if (null == obj) return result; isFunction$1(iteratee) ? (keys.length > 1 && (iteratee = optimizeCb(iteratee, keys[1])), keys = allKeys(obj)) : (iteratee = keyInObj, keys = flatten$1(keys, !1, !1), obj = Object(obj)); for (var i = 0, length = keys.length; length > i; i++) { var key = keys[i], value = obj[key]; iteratee(value, key, obj) && (result[key] = value) } return result }), omit = restArguments(function (obj, keys) { var context, iteratee = keys[0]; return isFunction$1(iteratee) ? (iteratee = negate(iteratee), keys.length > 1 && (context = keys[1])) : (keys = map(flatten$1(keys, !1, !1), String), iteratee = function (value, key) { return !contains(keys, key) }), pick(obj, iteratee, context) }), difference = restArguments(function (array, rest) { return rest = flatten$1(rest, !0, !0), filter(array, function (value) { return !contains(rest, value) }) }), without = restArguments(function (array, otherArrays) { return difference(array, otherArrays) }), union = restArguments(function (arrays) { return uniq(flatten$1(arrays, !0, !0)) }), zip = restArguments(unzip); each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (method.apply(obj, arguments), "shift" !== name && "splice" !== name || 0 !== obj.length || delete obj[0]), chainResult(this, obj) } }), each(["concat", "join", "slice"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (obj = method.apply(obj, arguments)), chainResult(this, obj) } }); var allExports = { __proto__: null, VERSION: VERSION, restArguments: restArguments, isObject: isObject, isNull: isNull, isUndefined: isUndefined, isBoolean: isBoolean, isElement: isElement, isString: isString, isNumber: isNumber, isDate: isDate, isRegExp: isRegExp, isError: isError, isSymbol: isSymbol, isArrayBuffer: isArrayBuffer, isDataView: isDataView$1, isArray: isArray, isFunction: isFunction$1, isArguments: isArguments$1, isFinite: isFinite$1, isNaN: isNaN$1, isTypedArray: isTypedArray$1, isEmpty: isEmpty, isMatch: isMatch, isEqual: isEqual, isMap: isMap, isWeakMap: isWeakMap, isSet: isSet, isWeakSet: isWeakSet, keys: keys, allKeys: allKeys, values: values, pairs: pairs, invert: invert, functions: functions, methods: functions, extend: extend, extendOwn: extendOwn, assign: extendOwn, defaults: defaults, create: create, clone: clone, tap: tap, get: get, has: has, mapObject: mapObject, identity: identity, constant: constant, noop: noop, toPath: toPath$1, property: property, propertyOf: propertyOf, matcher: matcher, matches: matcher, times: times, random: random, now: now, escape: _escape, unescape: _unescape, templateSettings: templateSettings, template: template, result: result, uniqueId: uniqueId, chain: chain, iteratee: iteratee, partial: partial, bind: bind, bindAll: bindAll, memoize: memoize, delay: delay, defer: defer, throttle: throttle, debounce: debounce, wrap: wrap, negate: negate, compose: compose, after: after, before: before, once: once, findKey: findKey, findIndex: findIndex, findLastIndex: findLastIndex, sortedIndex: sortedIndex, indexOf: indexOf, lastIndexOf: lastIndexOf, find: find, detect: find, findWhere: findWhere, each: each, forEach: each, map: map, collect: map, reduce: reduce, foldl: reduce, inject: reduce, reduceRight: reduceRight, foldr: reduceRight, filter: filter, select: filter, reject: reject, every: every, all: every, some: some, any: some, contains: contains, includes: contains, include: contains, invoke: invoke, pluck: pluck, where: where, max: max, min: min, shuffle: shuffle, sample: sample, sortBy: sortBy, groupBy: groupBy, indexBy: indexBy, countBy: countBy, partition: partition, toArray: toArray, size: size, pick: pick, omit: omit, first: first, head: first, take: first, initial: initial, last: last, rest: rest, tail: rest, drop: rest, compact: compact, flatten: flatten, without: without, uniq: uniq, unique: uniq, union: union, intersection: intersection, difference: difference, unzip: unzip, transpose: unzip, zip: zip, object: object, range: range, chunk: chunk, mixin: mixin, "default": _$1 }, _ = mixin(allExports); return _._ = _, _ }) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 118: [function (require, module, exports) { (function (global) { function deprecate(fn, msg) { function deprecated() { if (!warned) { if (config("throwDeprecation")) throw new Error(msg); config("traceDeprecation") ? console.trace(msg) : console.warn(msg), warned = !0 } return fn.apply(this, arguments) } if (config("noDeprecation")) return fn; var warned = !1; return deprecated } function config(name) { try { if (!global.localStorage) return !1 } catch (_) { return !1 } var val = global.localStorage[name]; return null == val ? !1 : "true" === String(val).toLowerCase() } module.exports = deprecate }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 119: [function (require, module, exports) { arguments[4][84][0].apply(exports, arguments) }, {dup: 84}], 120: [function (require, module, exports) { module.exports = function (arg) { return arg && "object" == typeof arg && "function" == typeof arg.copy && "function" == typeof arg.fill && "function" == typeof arg.readUInt8 } }, {}], 121: [function (require, module, exports) { (function (process, global) { function inspect(obj, opts) { var ctx = {seen: [], stylize: stylizeNoColor}; return arguments.length >= 3 && (ctx.depth = arguments[2]), arguments.length >= 4 && (ctx.colors = arguments[3]), isBoolean(opts) ? ctx.showHidden = opts : opts && exports._extend(ctx, opts), isUndefined(ctx.showHidden) && (ctx.showHidden = !1), isUndefined(ctx.depth) && (ctx.depth = 2), isUndefined(ctx.colors) && (ctx.colors = !1), isUndefined(ctx.customInspect) && (ctx.customInspect = !0), ctx.colors && (ctx.stylize = stylizeWithColor), formatValue(ctx, obj, ctx.depth) } function stylizeWithColor(str, styleType) { var style = inspect.styles[styleType]; return style ? "[" + inspect.colors[style][0] + "m" + str + "[" + inspect.colors[style][1] + "m" : str } function stylizeNoColor(str, styleType) { return str } function arrayToHash(array) { var hash = {}; return array.forEach(function (val, idx) { hash[val] = !0 }), hash } function formatValue(ctx, value, recurseTimes) { if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== exports.inspect && (!value.constructor || value.constructor.prototype !== value)) { var ret = value.inspect(recurseTimes, ctx); return isString(ret) || (ret = formatValue(ctx, ret, recurseTimes)), ret } var primitive = formatPrimitive(ctx, value); if (primitive) return primitive; var keys = Object.keys(value), visibleKeys = arrayToHash(keys); if (ctx.showHidden && (keys = Object.getOwnPropertyNames(value)), isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)) return formatError(value); if (0 === keys.length) { if (isFunction(value)) { var name = value.name ? ": " + value.name : ""; return ctx.stylize("[Function" + name + "]", "special") } if (isRegExp(value)) return ctx.stylize(RegExp.prototype.toString.call(value), "regexp"); if (isDate(value)) return ctx.stylize(Date.prototype.toString.call(value), "date"); if (isError(value)) return formatError(value) } var base = "", array = !1, braces = ["{", "}"]; if (isArray(value) && (array = !0, braces = ["[", "]"]), isFunction(value)) { var n = value.name ? ": " + value.name : ""; base = " [Function" + n + "]" } if (isRegExp(value) && (base = " " + RegExp.prototype.toString.call(value)), isDate(value) && (base = " " + Date.prototype.toUTCString.call(value)), isError(value) && (base = " " + formatError(value)), 0 === keys.length && (!array || 0 == value.length)) return braces[0] + base + braces[1]; if (0 > recurseTimes) return isRegExp(value) ? ctx.stylize(RegExp.prototype.toString.call(value), "regexp") : ctx.stylize("[Object]", "special"); ctx.seen.push(value); var output; return output = array ? formatArray(ctx, value, recurseTimes, visibleKeys, keys) : keys.map(function (key) { return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) }), ctx.seen.pop(), reduceToSingleString(output, base, braces) } function formatPrimitive(ctx, value) { if (isUndefined(value)) return ctx.stylize("undefined", "undefined"); if (isString(value)) { var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'"; return ctx.stylize(simple, "string") } return isNumber(value) ? ctx.stylize("" + value, "number") : isBoolean(value) ? ctx.stylize("" + value, "boolean") : isNull(value) ? ctx.stylize("null", "null") : void 0 } function formatError(value) { return "[" + Error.prototype.toString.call(value) + "]" } function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { for (var output = [], i = 0, l = value.length; l > i; ++i) hasOwnProperty(value, String(i)) ? output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), !0)) : output.push(""); return keys.forEach(function (key) { key.match(/^\d+$/) || output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, !0)) }), output } function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { var name, str, desc; if (desc = Object.getOwnPropertyDescriptor(value, key) || {value: value[key]}, desc.get ? str = desc.set ? ctx.stylize("[Getter/Setter]", "special") : ctx.stylize("[Getter]", "special") : desc.set && (str = ctx.stylize("[Setter]", "special")), hasOwnProperty(visibleKeys, key) || (name = "[" + key + "]"), str || (ctx.seen.indexOf(desc.value) < 0 ? (str = isNull(recurseTimes) ? formatValue(ctx, desc.value, null) : formatValue(ctx, desc.value, recurseTimes - 1), str.indexOf("\n") > -1 && (str = array ? str.split("\n").map(function (line) { return " " + line }).join("\n").substr(2) : "\n" + str.split("\n").map(function (line) { return " " + line }).join("\n"))) : str = ctx.stylize("[Circular]", "special")), isUndefined(name)) { if (array && key.match(/^\d+$/)) return str; name = JSON.stringify("" + key), name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (name = name.substr(1, name.length - 2), name = ctx.stylize(name, "name")) : (name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), name = ctx.stylize(name, "string")) } return name + ": " + str } function reduceToSingleString(output, base, braces) { var numLinesEst = 0, length = output.reduce(function (prev, cur) { return numLinesEst++, cur.indexOf("\n") >= 0 && numLinesEst++, prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1 }, 0); return length > 60 ? braces[0] + ("" === base ? "" : base + "\n ") + " " + output.join(",\n ") + " " + braces[1] : braces[0] + base + " " + output.join(", ") + " " + braces[1] } function isArray(ar) { return Array.isArray(ar) } function isBoolean(arg) { return "boolean" == typeof arg } function isNull(arg) { return null === arg } function isNullOrUndefined(arg) { return null == arg } function isNumber(arg) { return "number" == typeof arg } function isString(arg) { return "string" == typeof arg } function isSymbol(arg) { return "symbol" == typeof arg } function isUndefined(arg) { return void 0 === arg } function isRegExp(re) { return isObject(re) && "[object RegExp]" === objectToString(re) } function isObject(arg) { return "object" == typeof arg && null !== arg } function isDate(d) { return isObject(d) && "[object Date]" === objectToString(d) } function isError(e) { return isObject(e) && ("[object Error]" === objectToString(e) || e instanceof Error) } function isFunction(arg) { return "function" == typeof arg } function isPrimitive(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || "undefined" == typeof arg } function objectToString(o) { return Object.prototype.toString.call(o) } function pad(n) { return 10 > n ? "0" + n.toString(10) : n.toString(10) } function timestamp() { var d = new Date, time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":"); return [d.getDate(), months[d.getMonth()], time].join(" ") } function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop) } var formatRegExp = /%[sdj%]/g; exports.format = function (f) { if (!isString(f)) { for (var objects = [], i = 0; i < arguments.length; i++) objects.push(inspect(arguments[i])); return objects.join(" ") } for (var i = 1, args = arguments, len = args.length, str = String(f).replace(formatRegExp, function (x) { if ("%%" === x) return "%"; if (i >= len) return x; switch (x) { case"%s": return String(args[i++]); case"%d": return Number(args[i++]); case"%j": try { return JSON.stringify(args[i++]) } catch (_) { return "[Circular]" } default: return x } }), x = args[i]; len > i; x = args[++i]) str += isNull(x) || !isObject(x) ? " " + x : " " + inspect(x); return str }, exports.deprecate = function (fn, msg) { function deprecated() { if (!warned) { if (process.throwDeprecation) throw new Error(msg); process.traceDeprecation ? console.trace(msg) : console.error(msg), warned = !0 } return fn.apply(this, arguments) } if (isUndefined(global.process)) return function () { return exports.deprecate(fn, msg).apply(this, arguments) }; if (process.noDeprecation === !0) return fn; var warned = !1; return deprecated }; var debugEnviron, debugs = {}; exports.debuglog = function (set) { if (isUndefined(debugEnviron) && (debugEnviron = process.env.NODE_DEBUG || ""), set = set.toUpperCase(), !debugs[set]) if (new RegExp("\\b" + set + "\\b", "i").test(debugEnviron)) { var pid = process.pid; debugs[set] = function () { var msg = exports.format.apply(exports, arguments); console.error("%s %d: %s", set, pid, msg) } } else debugs[set] = function () { }; return debugs[set] }, exports.inspect = inspect, inspect.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, inspect.styles = { special: "cyan", number: "yellow", "boolean": "yellow", undefined: "grey", "null": "bold", string: "green", date: "magenta", regexp: "red" }, exports.isArray = isArray, exports.isBoolean = isBoolean, exports.isNull = isNull, exports.isNullOrUndefined = isNullOrUndefined, exports.isNumber = isNumber, exports.isString = isString, exports.isSymbol = isSymbol, exports.isUndefined = isUndefined, exports.isRegExp = isRegExp, exports.isObject = isObject, exports.isDate = isDate, exports.isError = isError, exports.isFunction = isFunction, exports.isPrimitive = isPrimitive, exports.isBuffer = require("./support/isBuffer"); var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; exports.log = function () { console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments)) }, exports.inherits = require("inherits"), exports._extend = function (origin, add) { if (!add || !isObject(add)) return origin; for (var keys = Object.keys(add), i = keys.length; i--;) origin[keys[i]] = add[keys[i]]; return origin } }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {"./support/isBuffer": 120, _process: 102, inherits: 119}], 122: [function (require, module, exports) { (function () { var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, slice = [].slice, hasProp = {}.hasOwnProperty; assign = function () { var i, key, len, source, sources, target; if (target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [], isFunction(Object.assign)) Object.assign.apply(null, arguments); else for (i = 0, len = sources.length; len > i; i++) if (source = sources[i], null != source) for (key in source) hasProp.call(source, key) && (target[key] = source[key]); return target }, isFunction = function (val) { return !!val && "[object Function]" === Object.prototype.toString.call(val) }, isObject = function (val) { var ref; return !!val && ("function" == (ref = typeof val) || "object" === ref) }, isArray = function (val) { return isFunction(Array.isArray) ? Array.isArray(val) : "[object Array]" === Object.prototype.toString.call(val) }, isEmpty = function (val) { var key; if (isArray(val)) return !val.length; for (key in val) if (hasProp.call(val, key)) return !1; return !0 }, isPlainObject = function (val) { var ctor, proto; return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && "function" == typeof ctor && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object) }, getValue = function (obj) { return isFunction(obj.valueOf) ? obj.valueOf() : obj }, module.exports.assign = assign, module.exports.isFunction = isFunction, module.exports.isObject = isObject, module.exports.isArray = isArray, module.exports.isEmpty = isEmpty, module.exports.isPlainObject = isPlainObject, module.exports.getValue = getValue }).call(this) }, {}], 123: [function (require, module, exports) { (function () { var XMLAttribute; module.exports = XMLAttribute = function () { function XMLAttribute(parent, name, value) { if (this.options = parent.options, this.stringify = parent.stringify, this.parent = parent, null == name) throw new Error("Missing attribute name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing attribute value. " + this.debugInfo(name)); this.name = this.stringify.attName(name), this.value = this.stringify.attValue(value) } return XMLAttribute.prototype.clone = function () { return Object.create(this) }, XMLAttribute.prototype.toString = function (options) { return this.options.writer.set(options).attribute(this) }, XMLAttribute.prototype.debugInfo = function (name) { var ref, ref1; return name = name || this.name, null != name || (null != (ref = this.parent) ? ref.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref1 = this.parent) ? ref1.name : void 0) ? "attribute: {" + name + "}, parent: <" + this.parent.name + ">" : "attribute: {" + name + "}" : "" }, XMLAttribute }() }).call(this) }, {}], 124: [function (require, module, exports) { (function () { var XMLCData, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLCData = function (superClass) { function XMLCData(parent, text) { if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text. " + this.debugInfo()); this.text = this.stringify.cdata(text) } return extend(XMLCData, superClass), XMLCData.prototype.clone = function () { return Object.create(this) }, XMLCData.prototype.toString = function (options) { return this.options.writer.set(options).cdata(this) }, XMLCData }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 125: [function (require, module, exports) { (function () { var XMLComment, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLComment = function (superClass) { function XMLComment(parent, text) { if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text. " + this.debugInfo()); this.text = this.stringify.comment(text) } return extend(XMLComment, superClass), XMLComment.prototype.clone = function () { return Object.create(this) }, XMLComment.prototype.toString = function (options) { return this.options.writer.set(options).comment(this) }, XMLComment }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 126: [function (require, module, exports) { (function () { var XMLDTDAttList, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDAttList = function (superClass) { function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name. " + this.debugInfo()); if (null == attributeName) throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName)); if (!attributeType) throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName)); if (!defaultValueType) throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName)); if (0 !== defaultValueType.indexOf("#") && (defaultValueType = "#" + defaultValueType), !defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName)); if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName)); this.elementName = this.stringify.eleName(elementName), this.attributeName = this.stringify.attName(attributeName), this.attributeType = this.stringify.dtdAttType(attributeType), this.defaultValue = this.stringify.dtdAttDefault(defaultValue), this.defaultValueType = defaultValueType } return extend(XMLDTDAttList, superClass), XMLDTDAttList.prototype.toString = function (options) { return this.options.writer.set(options).dtdAttList(this) }, XMLDTDAttList }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 127: [function (require, module, exports) { (function () { var XMLDTDElement, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDElement = function (superClass) { function XMLDTDElement(parent, name, value) { if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name. " + this.debugInfo()); value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), this.name = this.stringify.eleName(name), this.value = this.stringify.dtdElementValue(value) } return extend(XMLDTDElement, superClass), XMLDTDElement.prototype.toString = function (options) { return this.options.writer.set(options).dtdElement(this) }, XMLDTDElement }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 128: [function (require, module, exports) { (function () { var XMLDTDEntity, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDTDEntity = function (superClass) { function XMLDTDEntity(parent, pe, name, value) { if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD entity name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing DTD entity value. " + this.debugInfo(name)); if (this.pe = !!pe, this.name = this.stringify.eleName(name), isObject(value)) { if (!value.pubID && !value.sysID) throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name)); if (value.pubID && !value.sysID) throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name)); if (null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)), null != value.nData && (this.nData = this.stringify.dtdNData(value.nData)), this.pe && this.nData) throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name)) } else this.value = this.stringify.dtdEntityValue(value) } return extend(XMLDTDEntity, superClass), XMLDTDEntity.prototype.toString = function (options) { return this.options.writer.set(options).dtdEntity(this) }, XMLDTDEntity }(XMLNode) }).call(this) }, {"./Utility": 122, "./XMLNode": 135}], 129: [function (require, module, exports) { (function () { var XMLDTDNotation, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDNotation = function (superClass) { function XMLDTDNotation(parent, name, value) { if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD notation name. " + this.debugInfo(name)); if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); this.name = this.stringify.eleName(name), null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)) } return extend(XMLDTDNotation, superClass), XMLDTDNotation.prototype.toString = function (options) { return this.options.writer.set(options).dtdNotation(this) }, XMLDTDNotation }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 130: [function (require, module, exports) { (function () { var XMLDeclaration, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDeclaration = function (superClass) { function XMLDeclaration(parent, version, encoding, standalone) { var ref; XMLDeclaration.__super__.constructor.call(this, parent), isObject(version) && (ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone), version || (version = "1.0"), this.version = this.stringify.xmlVersion(version), null != encoding && (this.encoding = this.stringify.xmlEncoding(encoding)), null != standalone && (this.standalone = this.stringify.xmlStandalone(standalone)) } return extend(XMLDeclaration, superClass), XMLDeclaration.prototype.toString = function (options) { return this.options.writer.set(options).declaration(this) }, XMLDeclaration }(XMLNode) }).call(this) }, {"./Utility": 122, "./XMLNode": 135}], 131: [function (require, module, exports) { (function () { var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), module.exports = XMLDocType = function (superClass) { function XMLDocType(parent, pubID, sysID) { var ref, ref1; XMLDocType.__super__.constructor.call(this, parent), this.name = "!DOCTYPE", this.documentObject = parent, isObject(pubID) && (ref = pubID, pubID = ref.pubID, sysID = ref.sysID), null == sysID && (ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]), null != pubID && (this.pubID = this.stringify.dtdPubID(pubID)), null != sysID && (this.sysID = this.stringify.dtdSysID(sysID)) } return extend(XMLDocType, superClass), XMLDocType.prototype.element = function (name, value) { var child; return child = new XMLDTDElement(this, name, value), this.children.push(child), this }, XMLDocType.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var child; return child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.children.push(child), this }, XMLDocType.prototype.entity = function (name, value) { var child; return child = new XMLDTDEntity(this, !1, name, value), this.children.push(child), this }, XMLDocType.prototype.pEntity = function (name, value) { var child; return child = new XMLDTDEntity(this, !0, name, value), this.children.push(child), this }, XMLDocType.prototype.notation = function (name, value) { var child; return child = new XMLDTDNotation(this, name, value), this.children.push(child), this }, XMLDocType.prototype.toString = function (options) { return this.options.writer.set(options).docType(this) }, XMLDocType.prototype.ele = function (name, value) { return this.element(name, value) }, XMLDocType.prototype.att = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue) }, XMLDocType.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocType.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocType.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocType.prototype.up = function () { return this.root() || this.documentObject }, XMLDocType }(XMLNode) }).call(this) }, { "./Utility": 122, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLNode": 135 }], 132: [function (require, module, exports) { (function () { var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isPlainObject = require("./Utility").isPlainObject, XMLNode = require("./XMLNode"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocument = function (superClass) { function XMLDocument(options) { XMLDocument.__super__.constructor.call(this, null), this.name = "?xml", options || (options = {}), options.writer || (options.writer = new XMLStringWriter), this.options = options, this.stringify = new XMLStringifier(options), this.isDocument = !0 } return extend(XMLDocument, superClass), XMLDocument.prototype.end = function (writer) { var writerOptions; return writer ? isPlainObject(writer) && (writerOptions = writer, writer = this.options.writer.set(writerOptions)) : writer = this.options.writer, writer.document(this) }, XMLDocument.prototype.toString = function (options) { return this.options.writer.set(options).document(this) }, XMLDocument }(XMLNode) }).call(this) }, {"./Utility": 122, "./XMLNode": 135, "./XMLStringWriter": 139, "./XMLStringifier": 140}], 133: [function (require, module, exports) { (function () { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue, XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), XMLAttribute = require("./XMLAttribute"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocumentCB = function () { function XMLDocumentCB(options, onData, onEnd) { var writerOptions; this.name = "?xml", options || (options = {}), options.writer ? isPlainObject(options.writer) && (writerOptions = options.writer, options.writer = new XMLStringWriter(writerOptions)) : options.writer = new XMLStringWriter(options), this.options = options, this.writer = options.writer, this.stringify = new XMLStringifier(options), this.onDataCallback = onData || function () { }, this.onEndCallback = onEnd || function () { }, this.currentNode = null, this.currentLevel = -1, this.openTags = {}, this.documentStarted = !1, this.documentCompleted = !1, this.root = null } return XMLDocumentCB.prototype.node = function (name, attributes, text) { var ref1; if (null == name) throw new Error("Missing node name."); if (this.root && -1 === this.currentLevel) throw new Error("Document can only have one root node. " + this.debugInfo(name)); return this.openCurrent(), name = getValue(name), null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), this.currentNode = new XMLElement(this, name, attributes), this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, null != text && this.text(text), this }, XMLDocumentCB.prototype.element = function (name, attributes, text) { return this.currentNode && this.currentNode instanceof XMLDocType ? this.dtdElement.apply(this, arguments) : this.node(name, attributes, text) }, XMLDocumentCB.prototype.attribute = function (name, value) { var attName, attValue; if (!this.currentNode || this.currentNode.children) throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name)); if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.currentNode.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLDocumentCB.prototype.text = function (value) { var node; return this.openCurrent(), node = new XMLText(this, value), this.onData(this.writer.text(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.cdata = function (value) { var node; return this.openCurrent(), node = new XMLCData(this, value), this.onData(this.writer.cdata(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.comment = function (value) { var node; return this.openCurrent(), node = new XMLComment(this, value), this.onData(this.writer.comment(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.raw = function (value) { var node; return this.openCurrent(), node = new XMLRaw(this, value), this.onData(this.writer.raw(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.instruction = function (target, value) { var i, insTarget, insValue, len, node; if (this.openCurrent(), null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (i = 0, len = target.length; len > i; i++) insTarget = target[i], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), node = new XMLProcessingInstruction(this, target, value), this.onData(this.writer.processingInstruction(node, this.currentLevel + 1), this.currentLevel + 1); return this }, XMLDocumentCB.prototype.declaration = function (version, encoding, standalone) { var node; if (this.openCurrent(), this.documentStarted) throw new Error("declaration() must be the first node."); return node = new XMLDeclaration(this, version, encoding, standalone), this.onData(this.writer.declaration(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.doctype = function (root, pubID, sysID) { if (this.openCurrent(), null == root) throw new Error("Missing root node name."); if (this.root) throw new Error("dtd() must come before the root node."); return this.currentNode = new XMLDocType(this, pubID, sysID), this.currentNode.rootNodeName = root, this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, this }, XMLDocumentCB.prototype.dtdElement = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDElement(this, name, value), this.onData(this.writer.dtdElement(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var node; return this.openCurrent(), node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.onData(this.writer.dtdAttList(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.entity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !1, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.pEntity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !0, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.notation = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDNotation(this, name, value), this.onData(this.writer.dtdNotation(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.up = function () { if (this.currentLevel < 0) throw new Error("The document node has no parent."); return this.currentNode ? (this.currentNode.children ? this.closeNode(this.currentNode) : this.openNode(this.currentNode), this.currentNode = null) : this.closeNode(this.openTags[this.currentLevel]), delete this.openTags[this.currentLevel], this.currentLevel--, this }, XMLDocumentCB.prototype.end = function () { for (; this.currentLevel >= 0;) this.up(); return this.onEnd() }, XMLDocumentCB.prototype.openCurrent = function () { return this.currentNode ? (this.currentNode.children = !0, this.openNode(this.currentNode)) : void 0 }, XMLDocumentCB.prototype.openNode = function (node) { return node.isOpen ? void 0 : (!this.root && 0 === this.currentLevel && node instanceof XMLElement && (this.root = node), this.onData(this.writer.openNode(node, this.currentLevel), this.currentLevel), node.isOpen = !0) }, XMLDocumentCB.prototype.closeNode = function (node) { return node.isClosed ? void 0 : (this.onData(this.writer.closeNode(node, this.currentLevel), this.currentLevel), node.isClosed = !0) }, XMLDocumentCB.prototype.onData = function (chunk, level) { return this.documentStarted = !0, this.onDataCallback(chunk, level + 1) }, XMLDocumentCB.prototype.onEnd = function () { return this.documentCompleted = !0, this.onEndCallback() }, XMLDocumentCB.prototype.debugInfo = function (name) { return null == name ? "" : "node: <" + name + ">" }, XMLDocumentCB.prototype.ele = function () { return this.element.apply(this, arguments) }, XMLDocumentCB.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.txt = function (value) { return this.text(value) }, XMLDocumentCB.prototype.dat = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.com = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLDocumentCB.prototype.dtd = function (root, pubID, sysID) { return this.doctype(root, pubID, sysID) }, XMLDocumentCB.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLDocumentCB.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.t = function (value) { return this.text(value) }, XMLDocumentCB.prototype.d = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.c = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.r = function (value) { return this.raw(value) }, XMLDocumentCB.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.att = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.a = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocumentCB.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocumentCB.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocumentCB }() }).call(this) }, { "./Utility": 122, "./XMLAttribute": 123, "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLStringWriter": 139, "./XMLStringifier": 140, "./XMLText": 141 }], 134: [function (require, module, exports) { (function () { var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue, XMLNode = require("./XMLNode"), XMLAttribute = require("./XMLAttribute"), module.exports = XMLElement = function (superClass) { function XMLElement(parent, name, attributes) { if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name. " + this.debugInfo()); this.name = this.stringify.eleName(name), this.attributes = {}, null != attributes && this.attribute(attributes), parent.isDocument && (this.isRoot = !0, this.documentObject = parent, parent.rootObject = this) } return extend(XMLElement, superClass), XMLElement.prototype.clone = function () { var att, attName, clonedSelf, ref1; clonedSelf = Object.create(this), clonedSelf.isRoot && (clonedSelf.documentObject = null), clonedSelf.attributes = {}, ref1 = this.attributes; for (attName in ref1) hasProp.call(ref1, attName) && (att = ref1[attName], clonedSelf.attributes[attName] = att.clone()); return clonedSelf.children = [], this.children.forEach(function (child) { var clonedChild; return clonedChild = child.clone(), clonedChild.parent = clonedSelf, clonedSelf.children.push(clonedChild) }), clonedSelf }, XMLElement.prototype.attribute = function (name, value) { var attName, attValue; if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLElement.prototype.removeAttribute = function (name) { var attName, i, len; if (null == name) throw new Error("Missing attribute name. " + this.debugInfo()); if (name = getValue(name), Array.isArray(name)) for (i = 0, len = name.length; len > i; i++) attName = name[i], delete this.attributes[attName]; else delete this.attributes[name]; return this }, XMLElement.prototype.toString = function (options) { return this.options.writer.set(options).element(this) }, XMLElement.prototype.att = function (name, value) { return this.attribute(name, value) }, XMLElement.prototype.a = function (name, value) { return this.attribute(name, value) }, XMLElement }(XMLNode) }).call(this) }, {"./Utility": 122, "./XMLAttribute": 123, "./XMLNode": 135}], 135: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, getValue = ref.getValue, XMLElement = null, XMLCData = null, XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, XMLProcessingInstruction = null, module.exports = XMLNode = function () { function XMLNode(parent) { this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), this.children = [], XMLElement || (XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction")) } return XMLNode.prototype.element = function (name, attributes, text) { var childNode, item, j, k, key, lastChild, len, len1, ref1, val; if (lastChild = null, null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), null != name && (name = getValue(name)), Array.isArray(name)) for (j = 0, len = name.length; len > j; j++) item = name[j], lastChild = this.element(item); else if (isFunction(name)) lastChild = this.element(name.apply()); else if (isObject(name)) { for (key in name) if (hasProp.call(name, key)) if (val = name[key], isFunction(val) && (val = val.apply()), isObject(val) && isEmpty(val) && (val = null), !this.options.ignoreDecorators && this.stringify.convertAttKey && 0 === key.indexOf(this.stringify.convertAttKey)) lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); else if (!this.options.separateArrayItems && Array.isArray(val)) for (k = 0, len1 = val.length; len1 > k; k++) item = val[k], childNode = {}, childNode[key] = item, lastChild = this.element(childNode); else isObject(val) ? (lastChild = this.element(key), lastChild.element(val)) : lastChild = this.element(key, val) } else lastChild = !this.options.ignoreDecorators && this.stringify.convertTextKey && 0 === name.indexOf(this.stringify.convertTextKey) ? this.text(text) : !this.options.ignoreDecorators && this.stringify.convertCDataKey && 0 === name.indexOf(this.stringify.convertCDataKey) ? this.cdata(text) : !this.options.ignoreDecorators && this.stringify.convertCommentKey && 0 === name.indexOf(this.stringify.convertCommentKey) ? this.comment(text) : !this.options.ignoreDecorators && this.stringify.convertRawKey && 0 === name.indexOf(this.stringify.convertRawKey) ? this.raw(text) : !this.options.ignoreDecorators && this.stringify.convertPIKey && 0 === name.indexOf(this.stringify.convertPIKey) ? this.instruction(name.substr(this.stringify.convertPIKey.length), text) : this.node(name, attributes, text); if (null == lastChild) throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo()); return lastChild }, XMLNode.prototype.insertBefore = function (name, attributes, text) { var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child }, XMLNode.prototype.insertAfter = function (name, attributes, text) { var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child }, XMLNode.prototype.remove = function () { var i, ref1; if (this.isRoot) throw new Error("Cannot remove the root element. " + this.debugInfo()); return i = this.parent.children.indexOf(this), [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1, this.parent }, XMLNode.prototype.node = function (name, attributes, text) { var child, ref1; return null != name && (name = getValue(name)), attributes || (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), child = new XMLElement(this, name, attributes), null != text && child.text(text), this.children.push(child), child }, XMLNode.prototype.text = function (value) { var child; return child = new XMLText(this, value), this.children.push(child), this }, XMLNode.prototype.cdata = function (value) { var child; return child = new XMLCData(this, value), this.children.push(child), this }, XMLNode.prototype.comment = function (value) { var child; return child = new XMLComment(this, value), this.children.push(child), this }, XMLNode.prototype.commentBefore = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.commentAfter = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.raw = function (value) { var child; return child = new XMLRaw(this, value), this.children.push(child), this }, XMLNode.prototype.instruction = function (target, value) { var insTarget, insValue, instruction, j, len; if (null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (j = 0, len = target.length; len > j; j++) insTarget = target[j], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), instruction = new XMLProcessingInstruction(this, target, value), this.children.push(instruction); return this }, XMLNode.prototype.instructionBefore = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.instructionAfter = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.declaration = function (version, encoding, standalone) { var doc, xmldec; return doc = this.document(), xmldec = new XMLDeclaration(doc, version, encoding, standalone), doc.children[0] instanceof XMLDeclaration ? doc.children[0] = xmldec : doc.children.unshift(xmldec), doc.root() || doc }, XMLNode.prototype.doctype = function (pubID, sysID) { var child, doc, doctype, i, j, k, len, len1, ref1, ref2; for (doc = this.document(), doctype = new XMLDocType(doc, pubID, sysID), ref1 = doc.children, i = j = 0, len = ref1.length; len > j; i = ++j) if (child = ref1[i], child instanceof XMLDocType) return doc.children[i] = doctype, doctype; for (ref2 = doc.children, i = k = 0, len1 = ref2.length; len1 > k; i = ++k) if (child = ref2[i], child.isRoot) return doc.children.splice(i, 0, doctype), doctype; return doc.children.push(doctype), doctype }, XMLNode.prototype.up = function () { if (this.isRoot) throw new Error("The root node has no parent. Use doc() if you need to get the document object."); return this.parent }, XMLNode.prototype.root = function () { var node; for (node = this; node;) { if (node.isDocument) return node.rootObject; if (node.isRoot) return node; node = node.parent } }, XMLNode.prototype.document = function () { var node; for (node = this; node;) { if (node.isDocument) return node; node = node.parent } }, XMLNode.prototype.end = function (options) { return this.document().end(options) }, XMLNode.prototype.prev = function () { var i; if (i = this.parent.children.indexOf(this), 1 > i) throw new Error("Already at the first node. " + this.debugInfo()); return this.parent.children[i - 1] }, XMLNode.prototype.next = function () { var i; if (i = this.parent.children.indexOf(this), -1 === i || i === this.parent.children.length - 1) throw new Error("Already at the last node. " + this.debugInfo()); return this.parent.children[i + 1] }, XMLNode.prototype.importDocument = function (doc) { var clonedRoot; return clonedRoot = doc.root().clone(), clonedRoot.parent = this, clonedRoot.isRoot = !1, this.children.push(clonedRoot), this }, XMLNode.prototype.debugInfo = function (name) { var ref1, ref2; return name = name || this.name, null != name || (null != (ref1 = this.parent) ? ref1.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref2 = this.parent) ? ref2.name : void 0) ? "node: <" + name + ">, parent: <" + this.parent.name + ">" : "node: <" + name + ">" : "" }, XMLNode.prototype.ele = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.txt = function (value) { return this.text(value) }, XMLNode.prototype.dat = function (value) { return this.cdata(value) }, XMLNode.prototype.com = function (value) { return this.comment(value) }, XMLNode.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.doc = function () { return this.document() }, XMLNode.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLNode.prototype.dtd = function (pubID, sysID) { return this.doctype(pubID, sysID) }, XMLNode.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.t = function (value) { return this.text(value) }, XMLNode.prototype.d = function (value) { return this.cdata(value) }, XMLNode.prototype.c = function (value) { return this.comment(value) }, XMLNode.prototype.r = function (value) { return this.raw(value) }, XMLNode.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.u = function () { return this.up() }, XMLNode.prototype.importXMLBuilder = function (doc) { return this.importDocument(doc) }, XMLNode }() }).call(this) }, { "./Utility": 122, "./XMLCData": 124, "./XMLComment": 125, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141 }], 136: [function (require, module, exports) { (function () { var XMLNode, XMLProcessingInstruction, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLProcessingInstruction = function (superClass) { function XMLProcessingInstruction(parent, target, value) { if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target. " + this.debugInfo()); this.target = this.stringify.insTarget(target), value && (this.value = this.stringify.insValue(value)) } return extend(XMLProcessingInstruction, superClass), XMLProcessingInstruction.prototype.clone = function () { return Object.create(this) }, XMLProcessingInstruction.prototype.toString = function (options) { return this.options.writer.set(options).processingInstruction(this) }, XMLProcessingInstruction }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 137: [function (require, module, exports) { (function () { var XMLNode, XMLRaw, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLRaw = function (superClass) { function XMLRaw(parent, text) { if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text. " + this.debugInfo()); this.value = this.stringify.raw(text) } return extend(XMLRaw, superClass), XMLRaw.prototype.clone = function () { return Object.create(this) }, XMLRaw.prototype.toString = function (options) { return this.options.writer.set(options).raw(this) }, XMLRaw }(XMLNode) }).call(this) }, {"./XMLNode": 135}], 138: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStreamWriter = function (superClass) { function XMLStreamWriter(stream, options) { XMLStreamWriter.__super__.constructor.call(this, options), this.stream = stream } return extend(XMLStreamWriter, superClass), XMLStreamWriter.prototype.document = function (doc) { var child, i, j, len, len1, ref, ref1, results; for (ref = doc.children, i = 0, len = ref.length; len > i; i++) child = ref[i], child.isLastRootNode = !1; for (doc.children[doc.children.length - 1].isLastRootNode = !0, ref1 = doc.children, results = [], j = 0, len1 = ref1.length; len1 > j; j++) switch (child = ref1[j], !1) { case!(child instanceof XMLDeclaration): results.push(this.declaration(child)); break; case!(child instanceof XMLDocType): results.push(this.docType(child)); break; case!(child instanceof XMLComment): results.push(this.comment(child)); break; case!(child instanceof XMLProcessingInstruction): results.push(this.processingInstruction(child)); break; default: results.push(this.element(child)) } return results }, XMLStreamWriter.prototype.attribute = function (att) { return this.stream.write(" " + att.name + '="' + att.value + '"') }, XMLStreamWriter.prototype.cdata = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.comment = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.declaration = function (node, level) { return this.stream.write(this.space(level)), this.stream.write('"), this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.docType = function (node, level) { var child, i, len, ref; if (level || (level = 0), this.stream.write(this.space(level)), this.stream.write(" 0) { for (this.stream.write(" ["), this.stream.write(this.endline(node)), ref = node.children, i = 0, len = ref.length; len > i; i++) switch (child = ref[i], !1) { case!(child instanceof XMLDTDAttList): this.dtdAttList(child, level + 1); break; case!(child instanceof XMLDTDElement): this.dtdElement(child, level + 1); break; case!(child instanceof XMLDTDEntity): this.dtdEntity(child, level + 1); break; case!(child instanceof XMLDTDNotation): this.dtdNotation(child, level + 1); break; case!(child instanceof XMLCData): this.cdata(child, level + 1); break; case!(child instanceof XMLComment): this.comment(child, level + 1); break; case!(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown DTD node type: " + child.constructor.name) } this.stream.write("]") } return this.stream.write(this.spacebeforeslash + ">"), this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.element = function (node, level) { var att, child, i, len, name, ref, ref1, space; level || (level = 0), space = this.space(level), this.stream.write(space + "<" + node.name), ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) this.allowEmpty ? this.stream.write(">") : this.stream.write(this.spacebeforeslash + "/>"); else if (this.pretty && 1 === node.children.length && null != node.children[0].value) this.stream.write(">"), this.stream.write(node.children[0].value), this.stream.write(""); else { for (this.stream.write(">" + this.newline), ref1 = node.children, i = 0, len = ref1.length; len > i; i++) switch (child = ref1[i], !1) { case!(child instanceof XMLCData): this.cdata(child, level + 1); break; case!(child instanceof XMLComment): this.comment(child, level + 1); break; case!(child instanceof XMLElement): this.element(child, level + 1); break; case!(child instanceof XMLRaw): this.raw(child, level + 1); break; case!(child instanceof XMLText): this.text(child, level + 1); break; case!(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown XML node type: " + child.constructor.name) } this.stream.write(space + "") } return this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.processingInstruction = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.raw = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.text = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.dtdAttList = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdElement = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdEntity = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdNotation = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.endline = function (node) { return node.isLastRootNode ? "" : this.newline }, XMLStreamWriter }(XMLWriterBase) }).call(this) }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 139: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStringWriter = function (superClass) { function XMLStringWriter(options) { XMLStringWriter.__super__.constructor.call(this, options) } return extend(XMLStringWriter, superClass), XMLStringWriter.prototype.document = function (doc) { var child, i, len, r, ref; for (this.textispresent = !1, r = "", ref = doc.children, i = 0, len = ref.length; len > i; i++) child = ref[i], r += function () { switch (!1) { case!(child instanceof XMLDeclaration): return this.declaration(child); case!(child instanceof XMLDocType): return this.docType(child); case!(child instanceof XMLComment): return this.comment(child); case!(child instanceof XMLProcessingInstruction): return this.processingInstruction(child); default: return this.element(child, 0) } }.call(this); return this.pretty && r.slice(-this.newline.length) === this.newline && (r = r.slice(0, -this.newline.length)), r }, XMLStringWriter.prototype.attribute = function (att) { return " " + att.name + '="' + att.value + '"' }, XMLStringWriter.prototype.cdata = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.comment = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.declaration = function (node, level) { var r; return r = this.space(level), r += '", r += this.newline }, XMLStringWriter.prototype.docType = function (node, level) { var child, i, len, r, ref; if (level || (level = 0), r = this.space(level), r += " 0) { for (r += " [", r += this.newline, ref = node.children, i = 0, len = ref.length; len > i; i++) child = ref[i], r += function () { switch (!1) { case!(child instanceof XMLDTDAttList): return this.dtdAttList(child, level + 1); case!(child instanceof XMLDTDElement): return this.dtdElement(child, level + 1); case!(child instanceof XMLDTDEntity): return this.dtdEntity(child, level + 1); case!(child instanceof XMLDTDNotation): return this.dtdNotation(child, level + 1); case!(child instanceof XMLCData): return this.cdata(child, level + 1); case!(child instanceof XMLComment): return this.comment(child, level + 1); case!(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown DTD node type: " + child.constructor.name) } }.call(this); r += "]" } return r += this.spacebeforeslash + ">", r += this.newline }, XMLStringWriter.prototype.element = function (node, level) { var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset; level || (level = 0), textispresentwasset = !1, this.textispresent ? (this.newline = "", this.pretty = !1) : (this.newline = this.newlinedefault, this.pretty = this.prettydefault), space = this.space(level), r = "", r += space + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) r += this.allowEmpty ? ">" + this.newline : this.spacebeforeslash + "/>" + this.newline; else if (this.pretty && 1 === node.children.length && null != node.children[0].value) r += ">", r += node.children[0].value, r += "" + this.newline; else { if (this.dontprettytextnodes) for (ref1 = node.children, i = 0, len = ref1.length; len > i; i++) if (child = ref1[i], null != child.value) { this.textispresent++, textispresentwasset = !0; break } for (this.textispresent && (this.newline = "", this.pretty = !1, space = this.space(level)), r += ">" + this.newline, ref2 = node.children, j = 0, len1 = ref2.length; len1 > j; j++) child = ref2[j], r += function () { switch (!1) { case!(child instanceof XMLCData): return this.cdata(child, level + 1); case!(child instanceof XMLComment): return this.comment(child, level + 1); case!(child instanceof XMLElement): return this.element(child, level + 1); case!(child instanceof XMLRaw): return this.raw(child, level + 1); case!(child instanceof XMLText): return this.text(child, level + 1); case!(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown XML node type: " + child.constructor.name) } }.call(this); textispresentwasset && this.textispresent--, this.textispresent || (this.newline = this.newlinedefault, this.pretty = this.prettydefault), r += space + "" + this.newline } return r }, XMLStringWriter.prototype.processingInstruction = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.raw = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.text = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.dtdAttList = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdElement = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdEntity = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdNotation = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.openNode = function (node, level) { var att, name, r, ref; if (level || (level = 0), node instanceof XMLElement) { r = this.space(level) + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); return r += (node.children ? ">" : "/>") + this.newline } return r = this.space(level) + "") + this.newline }, XMLStringWriter.prototype.closeNode = function (node, level) { switch (level || (level = 0), !1) { case!(node instanceof XMLElement): return this.space(level) + "" + this.newline; case!(node instanceof XMLDocType): return this.space(level) + "]>" + this.newline } }, XMLStringWriter }(XMLWriterBase) }).call(this) }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 140: [function (require, module, exports) { (function () { var XMLStringifier, bind = function (fn, me) { return function () { return fn.apply(me, arguments) } }, hasProp = {}.hasOwnProperty; module.exports = XMLStringifier = function () { function XMLStringifier(options) { this.assertLegalChar = bind(this.assertLegalChar, this); var key, ref, value; options || (options = {}), this.noDoubleEncoding = options.noDoubleEncoding, ref = options.stringify || {}; for (key in ref) hasProp.call(ref, key) && (value = ref[key], this[key] = value) } return XMLStringifier.prototype.eleName = function (val) { return val = "" + val || "", this.assertLegalChar(val) }, XMLStringifier.prototype.eleText = function (val) { return val = "" + val || "", this.assertLegalChar(this.elEscape(val)) }, XMLStringifier.prototype.cdata = function (val) { return val = "" + val || "", val = val.replace("]]>", "]]]]>"), this.assertLegalChar(val) }, XMLStringifier.prototype.comment = function (val) { if (val = "" + val || "", val.match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); return this.assertLegalChar(val) }, XMLStringifier.prototype.raw = function (val) { return "" + val || "" }, XMLStringifier.prototype.attName = function (val) { return val = "" + val || "" }, XMLStringifier.prototype.attValue = function (val) { return val = "" + val || "", this.attEscape(val) }, XMLStringifier.prototype.insTarget = function (val) { return "" + val || "" }, XMLStringifier.prototype.insValue = function (val) { if (val = "" + val || "", val.match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); return val }, XMLStringifier.prototype.xmlVersion = function (val) { if (val = "" + val || "", !val.match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); return val }, XMLStringifier.prototype.xmlEncoding = function (val) { if (val = "" + val || "", !val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); return val }, XMLStringifier.prototype.xmlStandalone = function (val) { return val ? "yes" : "no" }, XMLStringifier.prototype.dtdPubID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdSysID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdElementValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttType = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttDefault = function (val) { return null != val ? "" + val || "" : val }, XMLStringifier.prototype.dtdEntityValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdNData = function (val) { return "" + val || "" }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", XMLStringifier.prototype.assertLegalChar = function (str) { var res; if (res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)) throw new Error("Invalid character in string: " + str + " at index " + res.index); return str }, XMLStringifier.prototype.elEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " ") }, XMLStringifier.prototype.attEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(/ 0 ? new Array(indent).join(this.indent) : "") : "" }, XMLWriterBase }() }).call(this) }, {}], 143: [function (require, module, exports) { (function () { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; ref = require("./Utility"), assign = ref.assign, isFunction = ref.isFunction, XMLDocument = require("./XMLDocument"), XMLDocumentCB = require("./XMLDocumentCB"), XMLStringWriter = require("./XMLStringWriter"), XMLStreamWriter = require("./XMLStreamWriter"), module.exports.create = function (name, xmldec, doctype, options) { var doc, root; if (null == name) throw new Error("Root element needs a name."); return options = assign({}, xmldec, doctype, options), doc = new XMLDocument(options), root = doc.element(name), options.headless || (doc.declaration(options), (null != options.pubID || null != options.sysID) && doc.doctype(options)), root }, module.exports.begin = function (options, onData, onEnd) { var ref1; return isFunction(options) && (ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1], options = {}), onData ? new XMLDocumentCB(options, onData, onEnd) : new XMLDocument(options) }, module.exports.stringWriter = function (options) { return new XMLStringWriter(options) }, module.exports.streamWriter = function (stream, options) { return new XMLStreamWriter(stream, options) } }).call(this) }, { "./Utility": 122, "./XMLDocument": 132, "./XMLDocumentCB": 133, "./XMLStreamWriter": 138, "./XMLStringWriter": 139 }] }, {}, [21])(21) }); PK\BLY Y testdao.jsnu[$(document).ready(function () { lists(); $('#listTable').dataTable({ "bPaginate": true, "bInfo": true, "bFilter": true, "bLengthChange": true, "pageLength": 10 }); // list all user in datatable function lists() { $.ajax({ type: 'ajax', url: 'jurusan/tampilkanData', async: false, dataType: 'json', success: function (data) { var html = ''; var i; var no = 1; for (i = 0; i < data.length; i++) { html += '' + '' + no++ + '' + '' + data[i].nama_jurusan + '' + '' + data[i].kode_jurusan + '' + '' + 'Edit' + ' ' + 'Delete' + '' + ''; } $('#list').html(html); } }); } // save new user record $('#saveForm').submit('click', function () { var name = $('#username').val(); var Email = $('#email').val(); var Password = $('#password').val(); $.ajax({ type: "POST", url: "user/simpanData", dataType: "JSON", data: { username: name, email: Email, password: Password }, success: function (data) { $('#username').val(""); $('#email').val(""); $('#password').val(""); $('#addModal').modal('hide'); lists(); } }); return false; }); // show edit modal form with user data $('#list').on('click', '.editRecord', function () { $('#editModal').modal('show'); $("#userId").val($(this).data('id')); $("#usernameEdit").val($(this).data('username')); $("#emailEdit").val($(this).data('email')); }); // save edit record $('#editForm').on('submit', function () { var id = $('#userId').val(); var username = $('#usernameEdit').val(); var email = $('#emailEdit').val(); $.ajax({ type: "POST", url: "user/update", dataType: "JSON", data: { id: id, username: username, email: email }, success: function (data) { $("#userId").val(""); $("#usernameEdit").val(""); $('#emailEdit').val(""); $('#editModal').modal('hide'); lists(); } }); return false; }); // show delete modal $('#list').on('click', '.deleteRecord', function () { var Id = $(this).data('id'); $('#deleteModal').modal('show'); $('#deleteId').val(Id); }); // delete user record $('#deleteForm').on('submit', function () { var Id = $('#deleteId').val(); $.ajax({ type: "POST", url: "user/hapus", dataType: "JSON", data: { id: Id }, success: function (data) { $("#" + Id).remove(); $('#deleteId').val(""); $('#deleteModal').modal('hide'); lists(); } }); return false; }); }); PK\ 1css/install.cssnu[#hero { width: 100%; position: relative; overflow: hidden; padding: 140px 0 100px 0; margin-bottom: -75px; } #hero::before { content: ''; position: absolute; right: -100%; top: 20%; width: 250%; height: 200%; z-index: -1; background-color: #e8ecf5; transform: skewY(135deg); } #hero h1 { margin: 0 0 10px 0; font-size: 48px; font-weight: 500; line-height: 56px; color: #5777ba; font-family: "Poppins", sans-serif; } #hero h2 { color: #515f7d; margin-bottom: 50px; font-size: 20px; } #hero .download-btn { font-family: "Raleway", sans-serif; font-weight: 500; font-size: 15px; display: inline-block; padding: 8px 24px 10px 46px; border-radius: 3px; transition: 0.5s; color: #fff; background: #47536e; position: relative; } #hero .download-btn:hover { background: #5777ba; } #hero .download-btn i { font-size: 20px; position: absolute; left: 18px; top: 8.5px; } #hero .download-btn + .download-btn { margin-left: 20px; } .setup-right { z-index: 0; color: #fff; } .setup-right:before { background-image:url("../../img/hero-img.png"); background-repeat: no-repeat; content: ''; display: block; position: absolute; z-index: -1; width: 999em; /* allow for bootstrap column padding */ top: -15px; left: -15px; bottom: -15px; } @media (max-width: 991px) { #hero { text-align: center; } #hero .download-btn + .download-btn { margin: 0 10px; } #hero .hero-img { text-align: center; } #hero .hero-img img { width: 60%; } } @media (max-width: 768px) { #hero h1 { font-size: 28px; line-height: 36px; } #hero h2 { font-size: 18px; line-height: 24px; margin-bottom: 30px; } #hero .hero-img img { width: 70%; } } @media (max-width: 575px) { #hero .hero-img img { width: 80%; } } PK\pF&css/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2nu[wOF2AZ8`2 h8 D6$& z [^sUI zt1t N\(Ox?ߑ4DrKmCئ@E߇X[Wґ g:jk<~'$;,%V,ji-)-N[]jeD[cBw r JTnZ =^CqCԢ> _Sž?j=u_KS z Ԟgx=vԗqG' =o/bDs+*Hћ. RQl3ArDMӦ,*I)].6ϸqc##CS-_1;BcE'yRҌWfYgKYOk0uVi 0Ã*  WNh,.MfgbRbe"'//mj]}_;@ /Xq!Trbz-78sY}wfJmI2*IZRIƶ;6F~onpJ*SƳ"*L\DUYnKJ+X,I726;Hȸ}Ȕ@aJ. ;H@Ep'JT@pje JC%~~3߫fsw$P=wQRӓΦK+J/^Yu۔MnÔ++?fpcY_{@Xp DD*VvZ$힗NLuP̯ҩ!M/oԧNJi 2l*."""~;/%7ijHx^K lM>A!6MAʴx]DU/!/|с sH˅%N( \0p8w:~8.p v:K fǩvKKL7m^YVmE)`؇esPS#e. g7 g|*sn{qAD䶂< 2I~@-$-X?w:zy )5v_ɺ|^ X0uTeYakC`3X#T_Ѐtrr?? u!X&% TI$*rLd}ĝj_J] 67oe|}jn*"LxQ޶*&~F >)1"um Y{\˜Uvu,ZRHRN{,Mƚyݞ)溛^_U@/ B W(?ZhyI:3P4HyPt(Br(o{bޘ}\s)tq_Z\ʴNhOJSMG}9\ y/!)(J6nyqASlS_=S@Ӂ-EG XO?/g)짝^*HQNhtM|yEWL@bZ{D^{"Hi;k5q[)8; \ga:<~*T.' V_✹ٮYY]z3>Qh@ƆpUU,&`^K{҅.gﯪjck}9=dC,b윪lQ~aok$\J9"_{-엝ϯTv t&M[M,J6]H';ntGFq `\3NPc]?ZЬWF$Z=gﯙ.Y%mS.fi2Fn4@CDZte sסh2aȼ-)"Rck f}'Guh@# XZ- !3buXC+A8)jiA8T g{nls_X2YXʶyw]v#A7Haii*EYrc]%UsF؝鶏׻ P E O03i <NY;PìeFW34-mĠ:X|BH#"W9Tۤzjy,F`_u<25GdLFs#@wHc21nbAz"ȀYg0HW?}{]'x Ԋ%x3d5~=Rp+tk/i#&# 突D>nP QO~$2Oe7~NT<ic_sn?ɬ(}t$EfeO-}^Z^oL[wuPH5 #4ëHltacSi詞M:֘{2g~'@yٲ33.bQ~$ bG{>c5M #,RFPs;>o'Ys 3nOdkr<n9 ݾ9b^̼WhY~EyTo`& }('_kUCyɥ#f QQ֎N1lͷ$qy/v99F'91+[b0= WI7z>?28#Ҁ%wrweb񆭧q8򺃳v jL E*PQD~RP9-~1CR($"|lX81ZNb&;Ĩm>óC!㍲9.9ZF 1c8BE=ku@'.YO_wP;ݥYY|t%׏Ձ?.⊂Qa@584Wc:)l q jOŴwq*)ʕX_0^J˚݈p&WE8 %ܝa\ UVZ)#P?r lcdN1r t1ڭj: Xu?m[릊>xo;nh B̿aL>iaC.c=OU ؽ|z9ϵNw-T ۗ6e*2Pplq<m #G* A($ç N{D^Wf,: :y9udp@6+dܩ)JwH524>?45у@A `v8e"f!R9#RRꫨxlacf+rH5 Idthpǝچvl[jw=O_v\ddJ %rn4acFYBI(,>TZ!S ,FBt L+۠7/WS}l"ػ>?z:WE$$4}ч33FQnjK,PEa]m!Tjp#9<k?PZ%^vޠX̴15%Z7F>@n3* |ŝ'#Q`hU% Il=E°| O[h-؍P?bؗ&IۏR3'[X4-68 [.:g|Ѡ* aiԫ"ǽg'z5$_E%x">Yjr`h~q er 1G]7)R~ ߙxףy^D?y줟j(GJ=Ĥ˨X6X@PōɺZKNōȢjb`:pcv)EH#$*ͣ7S6X..ph Mtr{cZvE $=2H>r~u슌a"/3+K:WJ<)` S9): Y1qO%wK/8c/nW8sJBSg8JjRf^b7SV/̧ /vs+ $< Gںdj!#%h$H 3(QNLk\Y82rS mdk؀ף/?kzNU ]|/xWH)7|Ź!}s\Q5q}GzPVIcS6щ@L51ɵ^F\7 T; ԰a }MJ깘?eBw5.^Ŝ*s;C_ӯX#Q#);9F,(hW.0$$!T5D$^1[Z &-fzSyҴ=%<MZz!%!3 X'*>K"ů.ՄpgRi -D!`զUD8S|^[Dыpb*'')` pE[1Fq0#db)'֐"zi |F@g\%8Y&Mi*᠞_Y)]xlAcnxr/_#4Ów yw ΅-Pva\aLW ,%ޖ;+)Y+9uB9 q3!B6e`dщPn_++OVS~v>g&7q: \Q,OsHjL }:tÅ*4)¦Gnq.S؟nQ.^6vP|Y1-݋*UE !g*8&pSb`!t#ud\#c^#l| B$4o7,?kyoux1b2Hmc^3Ľ}*@ 砧ݪ<>D27ȻxrzgP SI(>ϙ)Y(U|)|UNX7auqCcm ׽ ؠkģc9땓kv ]îq3a^neӸJEǭM]i@=AIڑ( t먫'\zvK(&WUk [>ڑ󄽋~tiذ7eYzT=#^LbĮrK]ssbRqsì{~R?4VE_BfN3‚-י4C&JBS| O}:7dNEgHC!-ל}-ɣ,b-'6y"Y /X 0IjEҺӓUg< LgrnMJ7M#!AvGg w@zUɍdT ]="j.R^>i7`?ʙHNvaPKro4UdERzhؙFy!kjQ>(MdHˍzv?G)$(x_%z{ {mKt&ؙx<ঠ uӺXQ|\^J@{vp{#n,Nl180l(+tFL։18Rx>V|_tͭw T>x\~qQL:Oc))9| BOhxxļe 7*ӮeV'NW&VH)QF(tի8\"Nɾ#+~ت;sGa",+FPz dzvy۠Sl }o7K -5D{b%u)/V/%c^IV(ò.QE՞.vM~ZI N  PDt#)`U_>}ܖ?5"# 1`Gx$! ,19,|19psim? XC($3fYk ܾɊ]Hڇ%ZIP$ ˰Q EBĴ{G~eodtMwqfo<$(MtÐo黑?!߸*8jHreǁ1(ƭ%V <ޱ.t9ˮe$KN<.yUg$XMxHi@W nԬ _Q*WͨjXsվ c}JdԁSTk:gvߦ$.Y ع t2';@:ߓ.!;? GA8uu+4_7cեm'q[Ydtݹ C>! =`_ jh_P9UC!!)MSK;k,1J2VlU/i(yt!.V;"_ބ^ޛ~܎%B F ?$#-C*rݔMIdOV&diRA4xVxmVϚ$"Y Bw]Y<-A2 (M"j`~MVl0SBDƒa'#xZ 6b" B wJ/;_D!ūнzcd\kbtE ,=c֭-wz>e -X&s7bv|"?'cҫ't̠Iv'vw+*@J).9EEd嘈ƻ{:$kۤW]lN:šj j؉duY0f׈E:x4xq4t >r Do񎦹;S!~c"G;7<t&kF`l?C `U廯b@ tÖx+8AeT!ryH".ӣugf1؃" +, {$I &ߟ}ܙz9`rLsQU;l:kģ&9X7S;`ZO;PfL%V.f&%UYa`Y!UrxT`WYi:ҀT9KT0iySynӒ/QEmcOy j#WƎZP"UP(} ߿zKA+ҘSKJS1M6$Xc-j#Sg9}e&̽2\ bRʣ1tao2m{7FSg#`.NG\( .MKۿA8"KfP (k0-d3!XRG d?#΅^o.6Ö*K%!IkvCZ]+P۩| h`v rƾԄϠiy)(>=3';TfSf-5G+ T$o+y$"`ScH#ЫD`Nhw aasmcҊ (Ѹہ$؉ $wIO .jn&,f7,V@v6\,IDv4. ]@r 1^q}E6Nxx.= Aa. .d{s3Sٿ"ˬmEZ3 s(Ny pBel~Q4*F jR:Du ?&aIХũ DVd.[+TYylV&E/m'_$n%M5 -!.KYxN-Mʦ>am|ue07ӳ=g_=v{A- 2pqc] <0.zB479iIk'ѾV(T0{" ҩ9/0 NeW)v,c9~v<;AL{ja{eҘo@Evw#Bǖc;d5;ԍ=-{U.L,!/rJk΢1OEK;C6~1'oqG벿}՘GڟGcYnu0cJ}E 9.7^()[ 9Wn.kͶ)FVMFy^tsL x3_M-{(bn[$ Hy?8܍Z"nl7Dde%w oFn'$' Tm6 ǥt8TMi o~gm" LӓAIYKS*C^p0qXr(~7դ ;SNðRu 3Z{Ʌn(5ނS_i(Fo+XEt8x}6W!<𧱇l2KqOcfJY:$'ș +V,ʑǢD@8%={"=! :kcd#IyVGNDJitFc+ݴ39?xgC݆>WY~6D6тD,& 3O$"IHV۴fPNa{9\ScJ%RJ4P(=I%4+ե|0jTN46'n tۀ< 4~I+kLZd`*)Jy9lUa~TEvzRAIle`'vv'ސa_fO> s P,2Z=cO4[LwcҚ2) $; #t3l ,%n{ DƳ[.[= O4pwwrx$C u2g !v gP ,OUbACi8^-'_VאV(Fe;IS C/xoa^Sf`>RB3XvDt=< e׵2 y Ph b͚尸/)|g0Y?Ԧӌ|v"R:lT=tUț^n\]2TbM>ډմ&+ hA͜L5J do}G"0~FrS\8 i'&TUfcEP}|=GgNtRQ&"*F:E ↣~+M7ZOL 4#Z?9I_&? WIzHSbh,~Ww0N<9>ʙ[ѡ2OZU): > +Bf@J@͛=oaTNq8@>Pو[D^N-7 }ċz58dZK7րFbkmF8k!S h?cʼnpqkl9cAf(J]ɴ|>SZh1K TҨuv,%Y$ 22.y7 pnP᠇8[y![$'5*7T)%u65Hrխ17Z:iI<;p-WjEA]kfKPmq~3髓~P (DBelM I[&Ic?xx֦[%}@Xm\Ao)x$rT3\0L蠈E %*^@ɆTz;* SbVĘaNBAm/%{fiLSĠmUR2C0W|ogUzЗ)DԳ1F@\͢J{e7di&RC8N3LJÃ5[r}B!`}Z"i9[zIؤoӋk7|%6n`?0aAM$Js]X} _̗]lc>t@Ngn!'W8;iFBcFzq|i]}˲u%4@7fe^`{{ש{,4C-.ms+K̥ҍS/ ,Շ&e;2#XFFr*$8$J 2 Zԩ~ N+І|/Iнlz wH8 !#fܑL0C^xf2X;X{P-?ڬQ DMV[nw]{Klgv([.f`WRy*(Z[/:TWU>RTv#u $NzWY(6s^Fi}?l7g#)zh%E~C$1w'%}d%+W\FB6SXv iVC:OXMI`|(r>d#bjgH˺`6!)#"A_ -Iy{9\i5A, '$).BȀ*>+DNυ|^yw* 3GxWLUΑv#U1FU)rH1.z\я"8.D{aZJmz>+.u65td=oחq``ck3С>6{w Sv:AO^JZ4C\11%.Os-|TE\;N? F$\V?x8k7yw`֋ۇ8 GphL4x<,]o]؀UKAq9C"˰Z' ؏ٌHk'CKյ"{KX?0w]<当2Up/f[PPӌ 5#di|9Qt+Ԯa=q߻}9`{8h+I} Y\F?CY΂ [u풎ӰtOE\o.  f^Iܗ.+fs]7IWniSaQA oi-4 1jSf-NW "'IWRjv_zyΡ,~iC݅-_̻Cw v(e&zw9hF{Ƅ)yY>,=$74#6K7S!,.9]e$\[BOljp Hfǖ!(4}MKmH -aPi_.+#7KquK`߳][G=&( sĽ$I`Vߤ;5Po*Vە"kKy(ui5"bia6n }Ls—nی`2 yfu Ƭf.[+d贿"V0wbP*"lr"H.s9nfm)6aIsqf9"qhk+xpt@<6DOTJDaHWʱӸJLJMHfZ#aJkN:vRlA]isdq W$ac y<+L^Q4wlMS(k\/#=xi5U[ >AoepQbMW:܏N‚l'o=yИ7lN׬I!| |S>Мr(t顐Ptm,&hBw@B\bPߨbtr&5g>lr쫸Q z&pnV tZM'Q6 Z!yɫg{ YC/ǽ~ c\4!Lme !ig.U ^1lmM#8uCwp3fMtFM GYF(EXvM&n`ְZ{WD+gO|ג A w# :&FYny'}ڃ{?sPn6I ?~Ÿźmh#wt{և(qP>kXXJ8j D귝-4=zT_7F86Su|fkyS.F_G O $xNmr4ٍ]:gZoZ(3!hJ6&"QSwze{dTr!g2bL;dq4x[!LGwhC$] tGMMr^ E9mrK?ˆ"kJlYpc`2{v:^od |w!"Az|D׉+Is~y{a<%ww-\y flK?,k٩SY#+i;(ߞ]`ghO9[ q{=L$nZ˼ɋtšfOt313ƂO X-ϩ=/73J^13Z4F _h_xW}c^y(4'fHRGXSx1ܦ%31@*;cfZ+LÖ́Bdm4@o,1po,YFp|-OĄ 1Z1&Mq?~K2d(IF2L- EbdɲRT'!%͎?8^5~bvxxƇ'&&''>L|N*LLO&E#!7PJ<'=?6O.,4f]`9$h6ڬȯ* WS[Ϯc fϙGdƩUl -ڸki\x=t\y._rS M\>0WLR@*jkҢU,s??\\\\\\\t*+1,cȤY,L%HY켬SvW3:òznoq҄DrϩϓrIv1EC}/3`տrGsRuZ ߂˭5zBH7n-]C[q|q(z}s/ȔRUn|,Vڋ?va!guv->Z?v]pƶl,ؖmvbܽSs9;2D7kly4H<"qLTHկ*q#5(P@zם9˜Kp&q P)@yN %GA\,SQ,DU*}p4_w;g?bwg{oc/>ԺOzчZsK0H R.gȽx n` fL G1w/"Ȥ1 gy$/+>r])"lQVpdV53Ca2ɘ#᫟O_w0x0/ϪH|E2?),ê'Y#f,2q0'l"jODhRmeR|kR@8mPx2RR &UmDƣz`/n|"Y۾VHB+t{ϨQ zkq1G+?Y7O"sK1 P`pa'O@Е펧gS XDxlquLۈe|)T;h+BC;JDŽ805;ՋҠAfb\*V6 ]蚛Vw~qi,[^OK^3jF26yBSl'Ef3C_~+?;,Zs?_vMD/w&J/w&=_jĉlږٱĞ= r8^O\xD‡*_GoOaDO!Bz%) DB-{)~y\/_nZ>%š6mt8&|?~FK~kniز4N09#rB+WxI/Zy3Ç/_VC GB,X""$JP)„!BH6Zi͢D"Zbī QV,ETNKY 筱FLɒlٞˑ%)arɓgB|(Ygex2 3 J{|鈹XMl GN(04d&PN\ 0w*&i"}8;b-//b TLFI.wIT2TqY @dC тh3 S?7xE""wBd|`w^Țj;pXv"Yv8zF+<C %/jf"H\ygqC^i0pHVђ ĸHA&Ɓmd1FGsRvP\" g OBx;W9+>Oȅ/{Zxsv uYR:|WQ88x*,}4Jt@p`&ZegWsa"5vB7Qz\83Ό6g J%' {hzu`F(6J#(Ɓ;9~߯ R&S {jb4>nBc!ڔD"siyiW7wBk@N恈uG4By*zJmB XWKZ4婵1cO:}s!Ft6 a [k_v65Vѯ3)@{hA(C$k6+ʆ\KcS2܂ kK<cdH)_ 0B?x`lRWy3K^Bti"*Nl*M% tNS-T5AZh֧.)B"2kˣ~Rw8MGVzM1z@{E%zJKJ"IUEi0"GKٰ<ZkZPNAtﰊ4Yoq&Q _Z d&+HMQלc2gC2:KZ{5䯮$3mEPELHMa0 0^kaAf+0X d +=hdȱ5#0P[wbeXA ;-;>kFT븘03Q9NJpHnXPbw#'7 #(1"DMfsoHQ] EDFJ3/)&ÍڥDg䐺~Mj EipgCzdlB'РƃF >܂&~kΥf\# |yp:$ Yntu Sb }$/ĈO =P2{9b 79)H9{"!LzsO.f綕*W"z@fѣT$EH$&==KМd%m$]"2DѾ/MQ:`EI҂s +`jS+|GaV~uH,1;2Nl"cL> S2 &%6rEf9I*;XDwz1F YH*g1'q5aF/rJ%iOҡ*d@*s(`1x42F:2hAnv6 Dy%6Ӽ6 !)I`drtA.Bh=D3Vj Q&zgsȸ(;#j#Lj>IDuR.$egK %` hhbkRW]ǧ𮢋.1ry*B ;vCHQ7SE1+fּ(*]'.Y5 ӓmX#UW%wtU {&QS6\QPV!b@rjIgf%9fP a+ wXO5יڧTmIG#:0rr >;^H"%jz*5XRi^U< Q?@]kX/9\*h|S%6Xx>,:ێvU܄yvY$Q:F(8YqSCҿaY0gM=s1h%t|2`}%HGTWTiU];mW}lo!5IX3LX$+:H>DyJ -]%}YY%g ;.~njgR>1m唑prR=Ӫf7OkP\$#4L~WDL QX ၴ 9H5+Ht{kh۩Gnn6:WtIr]hIjċT*mi,R'CBruzwB1]H ̰( \ϋ SrF(SWM!'#,`SO=ᬫ\VK\-1Cݡ\g`X8$M*48ӋʕYU" sWiy-4`!V Zl]GnSI[ ,]ĩj/bG%k^I&jo&z{9o0D:M+h2@d"qX~ւ.s3*uAd:V+jTz/Ptq 8V.xK!?uţy<(Yf6tՌEn-OџރTSQ#~3K4X @őDAPj38SXQաރ-~m FF C/]-l{lZ< ?B(drdf3Í{siJVB{5t۠b=V6bXl?EYl~Oe)9]oޜQ^<:6ۺr·?΀Fq"S':HܒwE,F aU0fLqW_cٌ/ruA,h-r0ӵ!(whjft[56Ⱥ2C2%UƏli_kh:6jisL:1fٿF/fߨaӖ8ab$`ݤ*lMwUc$S =余Ѱ֏hvho%o7M7kFl\nݫ^Iib 9VwN N@x}Ǚn~Ct;+n!>'fULT[|@n,'m۶lP @qmUڶ?@}k\wf7Z"PDsKѐ&}zx4mH}F0d!>AŶ#ڮ0NzNhn Lhgp?۟}}]m2a=]L 2371,QDѣJΏZݿoڛvX422_z1}Nbtã#P {+!0 ][iќ<}"XSs{],j-jHߍq%zwߙ!4{۵塛Cy~=^{VǍ] %]̉]j<5!f@D/˅ oL;li|!XJفޯǭiwEf& bcU{3jK.n[^S7>/-YFC(>FA5ڝ~>S镇Nۘh[ s%%My\rӕfh`_dߟSVReCG1a2@q?E Tr/Q)wf>IpuUFT sU 묩Q.(qߣU]aW׷J)W5|P; ("]Oj?)UlmbPk{[ên rIBN*{De2a8FȒo?9 zۀVu /@W1կoM<}]d mbz6ƶP107oG98 B&Qs6z;jrƀ,Mu9,F9:YWafCM^N*<1S}_KM›,p hm_ьU0O]*t~j(+@T1/9xCQ#8E7Ž9CblW7Mc/M*}rFhDblZc|XR[;N9U\@-+0U4 40!F:/2M Jqm D='Q i~k0HS5A-׋̮W]R+b%V†FpˍmyW*ڦO@\"s%4 ۲՝ѷτ+Ospn FvZ=_" i'P"9+I$lZF%;#>^ۣNbvLme!n:j`Ce5bO#)$~jM4jI^- PƻcwTǹPVRKG罒mNDLˮ.dR}MȥIo}z0/]i~tEaJGsp3h40vȗ, Bt>Q{v_ic;c(:Mkč/e (-Xh ءt*]5:†YkV;GIY blޘ䎭x4#M:9%Z IxMy@(f+ZYkrW#^ Ɇ aV0BsT ` @BN )EG(Ee׃. ́ԁKQĩSK逰gWt=uRYKē1eI14l*1Lb gw! A%ɒ_o #s2BؗJ/pLj=aM|[~x2m`إCԌ/B4Uk)d+$lh}b^H 3ꊛ 9 9Ax.h6 >S{ê`5s]b+j'b rpBP._u!bځ<4 19sf}n/$ߏYƛ Q}~(RBg!S|>8j+?Lʇg4!q- 7SfɎ[ 6U1옧+8ݨ:zmWw _gz;"v'H"5W(ιLEu!dÅY\`j?IWS|ըbxҸ\xüb/ ۲Y ; SL!Qdws1ZlWç{=5xǘ~ ]ټfzT%N1֭ wn[,T3` 3KY L@ k M0=%X5<҇D@ j#|GAαEЙ7bn$ȱ 3 0 `Rvi 8fܶcLq^-[a}a]>)?ԺѩΓZ[Xsy؇ҹHf VI꙳M M΃ P ?ņ!Rc`tgNދw2x*7 ,]?*Wm(TrŇ6b=A& E; i{;LH_1tU!*l@'Z+-!+ :G9>ҐMtqh&{g?&ٗdX.dk`u; fUPL nЧBN=]. (R C7$5z! KuɓF f 刅ۨ`p~#-932%T 6rÀ+›ɭQ.PRbj>4~_!WToG|3{ %`ʍZp4GQw B1i6 Կ5?=ҀʊqGq >ZڠzuWAwi-PV2Ɂ~9à0T'+~E͍!ϼ)"zG}/|\4sWc>,H~1S=-(1G*Ca$$eyHamid. 7v]Hr^J0 r>!Y,$OxpD 5KŠTY0[!$ L]`"㕮 Ր6IJ׀4'yϥ>=&~灃VlgKd{hv?l9?ZN 蛙"*숫abZ cWv-xdEי}s*UvXL?IU4+[q%St֒m¯TN9dlfɝA`p s^Y6|֧m}1ՂUW(OfZ #*'gV8 fv6k5`sjۘ v5.4JV&cbhoV($Pt[Ʋ41NJxN[޻v_e*5I, I9G3Mẹ d}YbyJke1Gn+2CI|iOiH,AJ8z/lsܼi"lK$I nT pi Iz-6#Y,U /zˑ7މ$>vhCEnsK~{[H5zwv陑pq"q{{u6gpc\ `ͩ6fyA5ϹC8dY0]QQuCsEKpv QL9<;`CӺɥe{Jq ݐ "ic`3Cb@r$:"Gi`DK2+̇R#f=#PAJhO^4)PUyO2/`buL \M֑Ŝ֮\#&RƓKa">:&:$vts) 7;2:9- Ό cT3Ǘ?'O_b!tyd1<$ZR,+k}$܎urH&,[d2"l@$%6AAye#&O`kJ?. Qmpn$:M'Ч W܁~80u`VFĴ}帐_[Td@gFgP'`D˻#teS@_R)}RHZqf > ҷsQ~j$VXC maB<̀ 5XSipU =Cx|s1LC#H\γJpu|z42݆ t =mЮH8]EyI~ 'k"mlbpTdFjCj1Vۘ%9UPcHVكxݩ<6_3Bȉ1{ۦLo^m7]8=P~0?}uvRSRrg@4qY7yW^bV-Gw w0Bϋ9B_|*S̔zgh[%)I@ sJ} stb0`!½lP9RnGFr{ Ю,jwt~c|xkn&HK!vjb2W, B̒Vl02d,!Tq d|~͠%3bXHI u%vol>B 2=m;?ưu0W!TQ~ez GTI0,Jt "Z .RR&JǘԘT 1+asaYqDfFn񻧀bOH|>!;*Mo&Gka,|6T#tғM!)&Rܭ#{V:S>oO?l~~LH/ps-5q}a])7/&Py-~;C/bv5pU&fr[xX+xN-֍g*. 9y0sZIiMJ'?KK3aa.O,D]f@3N#9JAVSEc2&3f$0E'Q8U.gOLkg*Dxm;+#9\!j'ce'a[dE+ɠ(C<7L53[sk&U.-JM x$ge=2&K p.8 8'D0jNsPF_hi>K83[Yj/E;Ԫ)狀*V?6Kq)< 6ێ6L^mE•U7T Ў5> H?=O^tfvj!SW8_QXIVXQ&e^1:7*aQ)Z4}k!PGz7$hp%1Z*9]9S;` ~9q*[ M١]5}x|W+`O|)ӓ޴7L[ObpuThv ۂ_DsHJTBp*K*90M$xx!E߸#kj~e ^K, e ;D>v׿C^. Zuv-2ܺ]CRZi#aȽQlrnޖ).:cW+l6vjpEos]Qb@E DRvRSr- _Gĵco^qMw#AyWԮC`߉9HsT F eQkKvqwTpYEid| B%t BCС'q٠Se?2 Vgݼ陈VҵCc3U!:P}Z(~̸Mr\i H@W#d \z⎾9DBNMquem-H`겼 xq n՜^C+=h!`Cex6V9fZ`܂ۯE׺Js)^[ZU?ƕVjI>5ڔg]ֶ/nmI (J/o`G#՗bĴe;J?5FӢNCH~T/Uv*[_v-nLOQcJA.Ew/pn B c{fĉ8"_T0ġC^\>hsʩ4 '5t;@W|PH鹎`7X3jVh%3!zΆ< $=lt3e?Ҽv?S0؛>0).>ϺigrRKzKӡ$:-_ 32_M rVisE*oC;T9oAuTeU@<]5CK \""H!ё`)PNA2 zkL"YmmC֣ q{7GT%Q_{R^YnW:SdjۣA҃gQYvPIֹRgkU Վأ}ePլJn^YE.OP ~U o4ko Vŗe|0nJ3I9\{5j [yUA+g> U‚hd&\E7ZMUՍ*(Ow=J=1a/@x.e$&qZ.x&O'0U)a( W(w|R+%MeԈ X\1]ls()w :K$O' Yܝ9o^aqzN syH$j0I/'5]"yd_]7,~.7Ϳu L2Kluns)?0li5OԅE:gn7] k%0^aϫz=_Tu륧xc-UՍkYpuxC)IuPzTU_@fG@RPQE0j b~JH,4`H =}0(_շIH:׀8KS@nͦ"?gemOW NKӱ;|͆2A2P2]0%:Ĩo2t%Y%^&!ށ@d;9;@ 6‰V\g9HK H0O|\\Ԯ?eZZ lU䁰Eweܟ_7#FeITɿrU)4Ǔ[!gZ9}Vx%=̙ LrPcfɦ`i_\Zw8ĸ;$wzZ?7Iv{Q;bkkSgJE'r? Qm w.{ϡkˊm/Y.MJfI vY5NG?! 3D^N{Beʃu, >z~/"LV&>[.\u7LuP,:xd(8볈KhmA>ިVzn,W5UˀbRQ3dZ}sFw_P ~F쮈3qx#{5KT"K ow|wfΨ pLd:!}fӅZ̆:3L4A;)p *qLti4 ;A'U%VT];51S6/q^JKtܷ2zȟE[m_K6y_:>\t1a=l OvQ험ƜwW|[zYm821% ~_\jTKKx!lD(`ևĠ6<_!՘gUz9ǔL0y}!W1u2U+} 7YJ`8Ѹi*b71^4G kiQejub2ps8#q_#Ya(7E~(z{>T0Mx=U XXO IQ \p0LnDvs4Ms!L`.Ȑ%䄖hƼd ylc/ϔ3D,fnZb5(09,ݸ*Ne2ǝq`6\UIuar%eTòߵ= ;󖬯w/BOb mͤyqr.!5, 5 &)!m 9ʇ1/-(̃ K=^%& YDzZ.'G N.{<\=VԬM|0~6]$* ϖAqH}WJ mlS% e^(.@'W(e =MfȽg#ri zb*իj,mEM2@ԆeR߀ bq/9TNFҀT`Ѣdp(xA،>ScX_kޟj(NH'8 },G02Mȿې+-Jj)Ӯxg@c{o!{/NekLz+FGkm`N7>tڇu߀keK߳;\:l_FGKn|qxuLwys/PUE}piJ-i( חb֣dT3- *Kk?t1pO)GP{G /7Fxab_KNTbYmܿҟE[H~1ɾO28Ξil4EYg/cE鷴'v#n)~:rUco陁[<${!MtݕxC0y35'>z+LwہױdY:1xy  tW_ӟ&"!0erK˫(9ߒWh*inV\1;Jdo16grJYx DąBY&C:񋔱ow_Jh4-B:gNjeW%y⨅t;MzF~R?V=܀h7.sjN| cM@Xsi%dF2 g$6u)$@ ,#9ko('}YIƶ+GMNCpVvv Ǟok'/L۶T_1ѹЄ0ا`b59);C p+D ([Y:y d!(V y_.?3W#?G݀/C}.{c 'u y NڞT4s M5'r VX񮅻E GklOCkUX[\)iN$˕$39浰\ZYs̀$s[I>[Q"E{?jPvCUnE^E-]qH֕~jYlw'pDQΙhLG*Ѫy>J4J:ho[~}A.es 9l+[0_6e\nJ."2\{O gQo| pi~ڍUlm A _Yϋ}^HH^мs~d k#6Qxخ9Jia1V`[?d5KG%VKη/g-f[PiPwI@9dɏ!?|_{ 4jzշo_ }5rkH ןo7LmSI-Pt0ʺ?fs\#m u%Y>!! ޱd\wѨ?u5#肮J{()䀐v`;rzpǿ:̷Ъ~ϨHRKD&ngehm$H-sf}cЖ/ w.#UjiNX~دHJFPdˑgG0z3meSj"&'e`O^sy u""傧`FI0}~d"%| üȅJBN\Ƭwjծx#)\қg0n?gճ Cd~eɌ,8u-շc7cJpAFd z\ PSnDbAZPCPC5<2./zc,"JWZ-(i򄛑16< 83 )tZo[z[8Z*Fp d :/rr-$# Bhp;xFk= {̓AQZ\HLrάHI"<[@S|*T,?`Y:YǷ@Q d6*=tJTBQkfD_rk>ӯ=tCq=N1ЕLB{g-4BJ#g&4B, 12m6aO@gu ,EZ?X͠0gz|BZ?C{*ط5߳F:!=m: n.$ Dfd K@7q)L惰 4b$2s[H|ٷj o͈elqpTXJ-&EHlJM6k,D mcV]u0dAKz )gٗ剢Y9~ť(ke?AIrGP4x4O\*2M8UYF9Zt,"p yKpS~u13Z(Xl$kƷ -,h]j1*Q=jdoh $S^d7dd|~\ۏa3E#0\$p⼆7-aXM :U2h}qP ?qh? YJffTKXB.ՠi')R 0^3vڒAQ#`+t>:3wB"mFE8^ Wn"o4_BAQI` INQAdr`/*o#ѻ|dB59$&Xd{6p. O-Rg}-FWؚ9zLyp|V\Ǥ˹"jl7te*>v]JD=œ1YhkgZ* W{|}Or!kLֲ贠u'Ckܵ4jZԕ#vcnP. GxCKcL}bhBiޖiԍ5R"ow1vby|p^A$^:v2 ډLAY̴EAz j6Q*T06G+ lgwe -=[Q,D xyӔ>M辥jY ^a9 m*P2.;q ,BC-qkL=& CqdJV2"NoUe: >)dߘ܄0I:Oy2'gn^# $UBqly(usAw흛^O+i BQ q.bpo osCذpߩVkPHMo8sKs9|jWVfiO7Khnַh+ b `PVY߬=5Ǩ4 i*ơM]qr%p}nj[hol/6dh2uZ(M '[GksԬM:O)aMLcjٱ>8-w٥B%xKfݘ_%lQ| v- %5UJf<`etz'<*ܐ$VES,M'1BفvJӉ^HD'q`<5(`Y?]XU]F0]i6SAr')Odra* Փa.?=tO*ٕbŁ҃+n(>*Kpgfc^Zɋ?i<~A*vI{Qczx~9SOx+C}ۊGxzJQ߷fIB-U[:*LG!U v0{8r\͹_W jM{zSF癷wqHL٩`ޥuWS&3;bC_qH7*L2vk}ͼ=\Z|s|z~x}IwM_ ndZ+v3t!M4j[@B>WcQП^QbVoL>s?9F>1 d X#y,)%!r<1lb7z^Y_o4g͵'v(us M1U.^zD8uE8iw{ PoI@rFܺ˽ɼGb;KQ?oƇk1qK妞`+u!j9 cGf;5_iL (1a=4K1Wu2=w?TbTs8-#? 74wut޿ixچnEL5\Wعm|w}h&0ލb;M'zvX3L<hŚ2Ҝưm/J]^v֒-߰\d!'Vw]~|Tc-F+eYwi%SFcդΡ#N$/[.WF3r{E.it,jqn3"ʦ$p,iN_ZRm,a%c={+4h?:x] ](K}zjD%CUU3^i zyRˡMC:HZqTZ$M&z7yﵫujӲk8]s6UB3Bn$ &\z(!0@ _k '0CNз*5tƛ o+|!2 |ygh!eωc]wiu;LM`3P}‚Q@dC֝ Yy&\Ӝ~h!3@m{+}` !Y)yI y0 G= xra0AS .੫T:N X/L{LKRV22؟Ő,]E|1GKzVk*UQʠLM1yjɫOj_xH#.W T,=EebX @2=XVW=b3U{F_lg>mc8Yu$Lg1Y99GkL6??Oe&K{c{_I›,O]23iQzG%"3/"ac!ip%jW)\"l"k{O(w5RsFHٰ`hG٢ݴ;vϑd/'\:qE7n+ iiRg3 .y:F OQ^X \z4&U5byqSw(B8ٶHEY+ccCr _c$BGy0 rh}Lz`2Bd ަױ.m]n4S[;ߩxic5L᜹t6q`ܢ)R`mEuIv5hSeӪm96AaްKs˸0w~vAZZƥS + V·嫘;5'%2J Eth/R4W<28/JHnԐc,J7j_RT^R)@KZhU4"Y«SZR8,}B"<u*TB"91V,bmuqG{d;|1,{ 吇9s$UeM0+{R~6P9u˖rP[ktOk%cQA.,7zضcm sLPIU#wBiGB#cALQua/zC3TU0ƒ J XB Lo|\F* .Ѩt)t I&5v2E)l٩ }~L{H)I 7BB\^1;du6z#]60&5 ZlX"YV'šKs !ؑ{Q(e[dg{a[U0uٌ,݁ wy!?/?΀} KMhsQ)%?PP[Q6NNao|Gy K 4 yjwq5 pm ZdZ*D:G7A75Ϯw3 aAzewqJlc @LKRb=pF柅uy bEٵ5+a !Zom\reO%T*)֊*Sȍێ4g/+.?;ddan>S"mHb6pRZ&R]&f{![5$#zHw6 OAvipjϫ3x}vO~ TY;=97 >WN^xWb/0!ZYϯN[[YHyw$}G4cs܀SD.LS$MHߪ|O OD 2!WcC'n !9&]ס3D:ŝ~x77."w_ZL/CL3NcZCG9R<S=RL ';|Ą&b4.2ɾf\6Qi?2Zņj$y!K65j4tQ 䕚T/H|BtLCIz}u. ۆ{WUD̰;tNiD>N4=-p75}%I*S?%ש2*}BpR/FA{k,p,ho{k5QRV6GǤ64JIhSZkT2%~-SODY&n\t;8GVw$wI)\T =/8u{\oRx6' ,s^|{E'Ux4 zr!f bprR1>`;!,u<ӃO)ܪ 㕶P9y9AhF%EU$j$ɫ at@Qda=Ųu_EDFe1&"Epns&Tg@qy+-='&mK<;( ~H[')y%ߐ[\'%o]s+g9ki!2g5@vέI:Bb6z?y^.\-)LogȀoTS$(zJk΋\O0*^\[jpFxA\Y>$BgWׯ9ԍdǶkMCٞʒ0ӥ^8ٝ45n'՗tA: |] $*N5!+vlu\V"5 %A\mP?S)LM#uo_u:>*UӛT`OfbkT2 7-bLaTe)lzhaY1VEƸ]3aaeiHly@jn fX?GzJbu/i GyhDlA@֝r*&DقhnddHsQ0߰&=ROLP쉈HЃr,khi1~ KwOF~,*}<.C܄]b$FWo pwzx{-Q3MW(t-+fZẊwPԊ~-(υD̞q"BH&&)UIii 6?{ֺ|c7/I p@Vu8 Bӓ^9b\^Uj__^YXVQp| @K2REh,Hɨsh1AI"ep"v< $+}.g b]uI}Jg!SY^чU6ɣRH*B(j. /Es.{u"8\ nq 1ֱ=?6M3a4ҷG0R7Ha?R> =Rq{]~l<Wo!%^`ŎkQ-eZj+0*q ~\IUI9$]‡Շz((<G&ڸRV1 <*!{9bU 87?KǓNvEz-؜F61!GX W[D9/us)O%M瘜%1'&]MKJh)“e7NM.v^`=8z8 M`.FF~Ҳu\k'!yzr UXYQ"e^@Ӕ,:d,{Q[l&"P##*/UNv ͇:W>"%5LkD% cBM.9tO `? s/KP2R\cvŅڨO ڦ[nÄȋ,֎3}aZdƋ{\ 6xbs?'j, hTb LOB=hTI!a(J80E2KvI]Gb&X v;GynbetD]׼{&^fuFmQ­\I2BƋjo9dEgg7ޝL(!dGtD0Lp;cI!,9>yKU}>VH6Xǁ{01wQ])-ptyqZXr#5(!S#c4h,7JA+-!;+Eko0<""7b.Ӥ.=>+G:7c TׯHn;P?l< ryV9q3TmØ>6[*s'JFzL*-|!xi#Ωܟ/ &wG1{yU(9g\X(1՛|~ [ו6`Lkr$nݣsoQ}1b:uzˇIgNagN(^["F LǞYӘIjF> I lw!h!Arsr?nh73Eo]"CPH;kP igd\Pcq3C,] H@.[꽲1n+Z$T5[@٤Bfebg \\ P錛 h0V(,v8IAX*@o~=#[kx1Aׇ/S=J ɄWgל ^c;CzDv̈́9C*z Ï-`0R9=Q{YgB/d;=(_6NV2NzvO^DDA[~̚Ó2-;: y2fo˥TL4 7^5lǍj_j_F7v rg7YU>2kM\V~/gç'ˆIl).OUzS R0؅/pm=ET:A:.%SMFIB{-<'JxK*Bni%5VWX,9%V S6nmF5|67:gگ:v][-46y\/qkܷgѮγ*W;s@/N)e嘲.`Yфż#Y~DLWOl>%ⷨ x}<ǯA s>Uԯ2jIvxT&&WByj#am}(GDAyXkYK EChV"q˄LhO~ƝRu) UQ$5<@uOQ༐Q&G2(@kܾaဵWwoenzX+H,Ћ1He=.bpSmPC!c.L|ĔW0ᗥȁTOӃ : 79_lA/'/ He#/a{dVdtx\M(#N C0w_M5%1:"5p-;wZb>wrp"*vSZ@՚ 0zidIUUF)tNܠ!ə'A+͔3%ԎWH)})l 9}Z"ةs%+Q]fp!6+skmĤ`Q5 Ahz_VΰtT[aԋ}# y4j T?K^.!\$C=UTsy<#ȸʍr1};Dp\9$LHM8D?p\b q]Ǯ(>V"`gtxk(@";c2,-&-{0_ҙSxu!/Buvݟ:[Uj.euanH?&8;ɲN3JUXZ&k5"g#v]Jn1IÆ=b̲;^%?ESjATVhjm,IҢ?xt K -%PXp)q+J&AX,̈́&YB S^!W5,NY11fo% xr'N88Y:jՍ xXsٔQ[Q"|3\)чHhuWDS>?ȯN'\ՠMTSXUѭ"j"?9<֮2\2HNJ!$ܙ: 9M(hK5\*ɭ|wA~)ZT: R1N[+ހӲ>3hU]1mEƄ>"+}yPe{+4* Y ZMCeVѯ(%:jV/6-ǡԍHVws1h_Lw~t3b6ǕyhxRwo/'}W@`e(2q=aJFk-M..PwZ=MK]C-q}Q"t,8&BEzV}: t5*H'vXB8AR}B@${s;3 ѫ]VSFJ;(dPp#zl,Cz2C]Vb6wa_HTӜ,M_jM /Nՙ:H$c9 5ܭ>K\wG_-eNIUR_QҨ;qk+دع@Ut\IeAlX8EST u CjЪ!uthCD`@,~W@vo{%UJ"ٯk@RVSٳ3N !^C@h \csD Wpv}Ȗj{siN֠bQ]'~63pmi*u$O./jcکKnt5x&GZE @2蛰 U eIQ׫lǽeMU^j}@{uщGhU/꭪Jb^Z%$:jj,kÅ6*[K3VD-q: <.9U…3/EKM8wVrgSKx)e0r5%OSuN1ITW(# ~}fW_IR-<^Ia>U2Z$?I"{~A#0*u&x7 F[)۠O4jgG&?=2 fJ5HHqG1%Igs8]UvuAvMnY@EqCOeCL15|x鱬7\u!<+̢l3^ Azue2M]Za&9L^w(.:%rCCNwJ'qNEO%^/oH}b߭x<Ζk?CqF'8UeUt57&a$Sծĸ H7T@qǯFN)F8"ݠ^%$ ,0QW OZe  \PXriZF'"F{o8~UKw"DSjEwFLIS]xdz &?FOAMP+ cd^$E""%==_Q[RV6Ѳͮ%5xRJ @Q~D,/Z>ӣoY8p= d!EQGEbn@@D0Sb6!Dnd119 6asTK( (3<%i|ME'hl:/[ ׮\\0?eqmCE4qgڦ$Љ˴tΩSd#hQU"XuȖL+0MOA:ZubHǩLlE 9]MueL&~1_cP |Ty"ܖLV}G(i2$3*IH5K;pa$!;K$׫l4Q OպJkm_ӳ!lu8Ue*MMxxGy#{D`:-ЍУcŪr&Z :b<*:i+OG{>:o]qkEÂ8$b cVT\Ȗ}ؚ(vُςT"D.gkGf6\)3W9a*}:nXP/k{k& ,qjUt /]599Pӣ_8Lm?A||m I,]l_)lV^ٰ:B#f\/}{Xp[`&2Eg(%mUm~b3v=Cymu涟m0I ?ViuSM`tP ]1(8չhУ[&#Q--΄L)V$׷ob$ nnRّ7דW>dx˓t?FK&ho/LBQQ(.mPD|Y@b 4 @bKb 1DG όAC Ba@)(^jMI( A M2Ʊe*>|:kOGv\#B@v/36mZ u9*aԔ4韠b`{t3&a0Y c]})_6$`w&%D`Ź5a6c+ݙLĎs(g=2iMfZӭ=zt9Yvb]FgR(q&gLԚ/6_R7뇶AX/;0-ck6V,eF d C+bP pO=o!pN=҈ HEtʓaŸN;/Ou: \쯞#r3DOh]-3͑oc5ֱuo}eKӱK[0ʬߦR@K0Bf#b~Yԑi:N2C 'ln\=KcI K?Imy+*.TH_Sx:%s;%%:';! z8yP 0x%TO2}B`9oŢ^ X;E;5b{@R )!Φtw2% {}xbtNWZׯ0mSA`k!80)C<R$gl?f8a-oy+?aƈw*QV=s.ZJ- zƆכ|Ї#etO;o? _uY#Yu*B߯$+OWC&k=0ӜN?9s#4aR5K%ť]eL ̏gw\w}-m^f/>k,0~4>qJ{Vg]Ή&]K 9 .c_Sgb~N=KRH6m)i_2@fkBBjȘznav5~IBeWǍ(=i] 4HgϘ 6K)T_UU'*!!*̣@`I,7tP-,"?_8h;47W4m0,` KMnx'bM/+mW 0h0__WMFêB]TۡÛgܕo)l֙710K7CL@[d_W5s6>܍*PV]U_trľLXavu/Vѹ%rHRZEֹHG B !)1qX(E{"XS,ْt~rث8i. /]FR FMhty]zZuuC _i|EhD4 ̯ӉTg36SB#b5s(WI uBJ3, *پV3ӽ)V_e߅%A*KT nZNElmLBŐ+B]gQG/T9 gREp'{R1~b…~'tq^ڏi_]^uyڵ{|S‘B5UQʥ;|h0.Vcb,/Q%=~=Ԏָ [mU㞈 ud7/|Hoo-x!ɯHf XŢy`M_Jy]V<`M鑗 Y@ @;*('ɖ*mo"Wrn//L uMQ:Sޟ GFR%C0 ^wag\ev BBUZ:]7,Ӻ+Z*BK,az88cW+Bг&b#mM7#8x^;/.S ]0Þ@i? 5. F \=r?,`1 ۣ%n H Pnx Ҏ׵rCoss/QOo=פ/!3eTLP8eyH<>tЇ< P9pJo^:G^X~n\i pu V%pTU9OI=ElzSU'ArΠb+ӭa,V.KXDGd)ut!&I'kq(}|}؛Er.Rh#J!I|H'ոk( w$5۹Φ]OyU6$Erx{YQ i2SE4DSULRl_a4XTbx!JTlE%F@IZhCNfM,=3&Z @~*iF:Z)hGJ ҙLJrpqGvHED"nForu8kjj~Rn'! nuY$W\88tsG8O8{!p:JU}[X;cDC>F1ޖUN,h(<O>~ (0`FyTpjOJEH328%ʿ֢y3U?1k%< զ+ܵMꕽޓ_StBb~7FaQC62T-- B]O|#GSF8$ 'A9rSݨ>9raDFn?55Xf_F@)ɧ:4M4O< f񸯈S[iT1')q38A'i 2b60Z@ V󢲼Q2+1FV^ `sOWĩ*5Pױg:zՓ&ioϋ g(w%n&륝 {EW)><ş'>Š4pbwyQȔ]g+{6%6~9F(a$$U}aL x/?~"+5PHzDJ}CbQăp/p7KxQ`Bf-w%bYĽiGt7omKb;<4a?IFl;ۇ!k$ |]D a~wƎyivmˊꂅ_;kiQr[mre3FC7?Ȉj7k^p@QˆFDMߺۗjuy CʸF xlvǢ sENŤxhIe|6:wQĒh?K^j.2t*~0(A@$$r(ȡ@C3+1ӣڔN",ʔ7 ~1GEN GA)tKv#A?ikGG=*n/šT1EѹV)|(5l ߫?_-#C )Z'5f&BtMwPcP"A-0jҞ[-Qd$_Տ")2\-Ѿ)rTXई8tjӡ󵒨bji4K /!8N7.U!K=B 1i> Qfì,|cdkxAPckҥ"+M=l ֭Q(b ОH/+'5kۃh9 '6ƿcwYqES4@k:!~~Ys΢~Y_KKVPXT3n?1Q4k YY!sZ>9X |-lP4&%,r2(uELph`\.!Oh)?rbhU$ ,Bi)2c&1LT&G,HP/R4;g"eb}isi ,y/ Shƿ'!p aISE*RB!+!I( In8nl047e" UMkVwL fbEr4OhhxŔ%WНKħmKlk 溦[(BᇌѺ0aYA-;iE "HzQe&CG5?eHa3W]17GY YR{sIQ&'rj e~k1Q́*_-B=ٳ{<5n~DD,?_tOb_uk.D͵`V S|LF.^r Y++kq즯{jg vzM&AX 䜑 cڼ* DBsϥ ܑsӁl12g/u[}{qUT-l*B]?#bӌ[_"Vmq-8 (a{XD&}cʏ eCľ%MA:v?ښJdX^ zON> !RL9;BEb s:z :1eK=>( A90 &6$!ݠ]h;Y\>vS:T~qmJoJIWR,!8[pw.a:E0/D(0+ C.ۻKoEYJz ؂ԇ㒵Nv1q8Zu buI!6D艮d{@Ari;v¶:քKCȐt<=fyvC#K:y.O,ZgX9 ( =Eyn~yu$?i;3;/a_m{Ó84[J ?5j6bHT& JQBgSBt=@ƌ-=_M}3ay^ ڵ,*QH0\< ;;owb6g*|edٷ$_p_Sg7J /TJI<^Xǭ./*j{)TIӾQgsgTaM21n=\C"ܮ 枛grTYԵ(w#f9E^%*tz AD<̍XOYyG.G7|_ݾ"{9A&BjV C,ɖO}Xn[% B=! }v F"}oD"@\Hy­26$M8-''3G5z%6/^ּxmٸxkQcz*;z '꫘yࡷ LJ0 7 L5U ( [gFļ*#ZcûUT8Gk`jF&4; +\zd65?tD|J.\ 8t-[EI<*&*́{I) \3`7ykR'-4;M7vgrSFh <# =uH]O‘䤷x9l) M'^i:D%%YF $/OŐ03;H[.&z)FL:XQv*~Y9*w]GE :* <m`M7tlDJU5+mo !gA-yo'<6 KvHЩfĪ?!_~kSGe#mP_y!^}8^#\ӥv ƾ S`\Wc+؊) ^N@DA-.Eg)h3 B< 9d|jt_LfU¶)ÏQaּ-x ajZ^{%wQQMݸrťnI:i{d6fګ3Bq!L.jJwm cnTsu4#=vBE`-aq޽-Hf[^3f-^⫮g; ߰(8.۫WH8>u(C `0H4%,`!`$R_ VWixJ #1yn-'}1Qyֵ=\^rt|Cr0{ vF ,8'D мsR' LN|zuVu头esooћi,ZL;:#~(+ y|jjamuVNFPp#k٢= $ht^Ya:p4EUJ;0KT[IomJPǀGWI-ₙޔHSy~\NSRMPoV9^MqU7Ȑ+a454pstyí¤ۆV*W-&@M1`li/{8w~޸c~FVq;_z5Ԉ>i 9#tDG^\KUwg%fե@Fr"T}p5%彫U6]+]-DĀ4S#ZT gAB!wru2Ǣa;bzTD`Ppr˒$Mp8D<.\\XĵN )=83Qh-Yf[Cv5뗤d4} B VR7FL'yRj;Lk[JCk[di>lt%Hր'l',w)0ad>j;K]qh!]oLfSM.a4܇r!uۦ%mH10ߠub2`K6.MД*Hm^FPCȆ_<ѹae:xգ !`H4Gnm^S V bH~ghX# b|oVz2o3W /3YNlO6bp=sH)2FEr˶0n"+6A:'C)Ta|i̯~E+;g|%N6MsRݪyh)s^V 9uC-P4=_ZGR3(Y91]bՈH$y<pWxM9ثadǬ3dfCn"gСo`A8K7i D D@OوJ bH4\2]J ?|)FȖL'~nZЄt᜸#3);"))qf% 3r9bϦXc:Շ۰Th{'TՔUԯDi.ga`˽tA҇l {uB,1Dk+q0Nkvͩ Rcrb$V@ᑀ&d_}*paGxϧcΡ-6xr7W'T  :H/JVI0.6ag&ȌOB_CFMDtOOp4o4'h\/'1==oyY[&j;=嘴Tnv,U+bq|Y|{L45-o*i~Y~=sfh+{iJ*c̞: Mr!m}#k'+>7fA׿O8uioJj–O,jd64EʨM8,x%WE_}`i2cvh0w>+}JTNr*^͈H8_C_M!aH:lқux~{QϞGn콆 GG2d=2psTlQs},2ƨxgy_q TõJ_H4lg6? Ӂ2Z2Cܛ܄uk PE/c^B1 lJџTeи,Q9W}:žQ4=3&Sb`C>,-JWӋ矺 yB"I`0\@TPY0|/w) L:)Js=\~(\Jʺn֑qP~Cڜ ɽhT}N̙Pn)WF ObΈ]^ԃָj"{]AC]?]L45!S8;fSwiSEV"{Qzw@"6zYuE>%$7h.}UnCm-Y Mbb9zasۏhsm2g=JPTT[n$HPLEAońآymU>,H9~#Vky[!< j_3m)GD %++΂s$ˈ[U 6H$sn2%to0x8$[{ :_z1:$ p[+j7k7ڸٔSWs\j~v?t<52xo G: w;}0x]߼ sB:bG[Oypy8_&"4HONB<.Q2ӆjPWO[$jwۉO!L߄re$SFB 8Xf<[=up5׬IS/:] !a,2pXoS)k=)t\kf* ž΅^?/yg6pY2 JV1&tlq7lNZ%kaڵd֖wd a|XNp6?.3PC1g5×N=cuJf2= O6+*PnCөK(.H&"/t7'! L]ZQa5XFsA7QK".5Dʪҫt(_j+/u8vHdjS%UǛoB{5-h&5= q A?R./%;ު+PIsChJAdr}EfvS7!'wȥ݄녊{HY1Yi<񇓣t4UJR}ƳgKJSYgDE6B.3>vN {ޮ:Z.qpRsQ]|Ch]eϝ~)?pςo2j+ބc9DS$o^6H873Fheq5 }}̔d|R͞i2_[Fto-wmHBVɯ"+.{kBCUBygs?Lɏ8O̸6\1( ro *R &dH[@8} >)v9::0}k[Nȏ;p9Ǎ\8qk9]Bja-=͕O^YUO}@*Yʬ9 YDKňۑKIO*<2@ٽU/jdo.*O2 =㌞wI͝\/7CV"V&CX7S13İP^.U`m>l01htd/WC4 R'VNE7 #ٻ6 }uBB#)wElgZ6,òSr{:KuhQ {Ak'3㗕3Q_U}4KweSVNGna\Yg0! 0?Zd22H7ָ! O9U+=]{ULw!MpOÿp4bAz<" AmAR&PhQޏkYX.a 9-ܘs0e7NIltm(DJ|ud٣3* HHU#=_i/,= wќj٦['zffAB6x ^`n^iA+vمeÎnpʇb,[օˍ@x,^1]:}',׬Vu$vuD*Gǜ\l.ɶAZ j.Ph#OuT'lxXr]0:FOZ`%@,Z92! k)b )P) ɝ1%+᭟G Q'w܏z]$D"R"IU*KZtЛ۶ɮϲg=w ̼u~S9@N?ߞ_%Ұ1gcCMa/[71-;ڍ7VS%l6pX}mMR؀tJp͛+n@A-5B+X=60.\c^۱ :OB^iBڬmO};;_PePxf0+oeN!Fˠ\6[B(N 'vf.pɰ6i6 eC=|}lH4 ,H=߯_b%[E}.E;qpו XCETM0mJ'CAjt!ݩJ*A ; zfk :*ZU9h)W3˟ʘ.pC1h1M6*BLM]NmVA!ʀ5D: s]rCW#6{S64XÓ$7~QhI7v3FHޟ0lA ) +^zɣ%=GϹI*&fhȏ 0' [ru4 @`KwܒveE9؞P(Kt{% ؇G&9rɌ#+s5d)gyJb5e8&zKxe'p5G*E\ bZo}gLXUaBVs:m9(l@Zቄ@gRQAL;xϚ:v4 KgR\>+g!F10j 4E+p]M42B=}E?pȦE2& PYw{KF;I7GQ/f3CьS34&dCr'V_c]XS8شg"Y3wYM}?oy$> gU*o4o9wҲ qhotj_n'VjE/kOXb[Uo .wSKv&ON'##7>r#m E񉀷 @1"DqhYn[E d#n剑 ^'<-} yxd=SWa}B4RFEEuKPd*Q:fh}sl\hZ=K\^aiK[sKC>b+~:GmyI$z2ڑ2ڬz#"mx/|rY!F>9Pַccj!:`],C'JRګ'&Pwu]𘬞)m{{y-AMǧpꩾ3#K9ee 20S|!y:ea>{]Zs~p3gˠPZ%IDB.M's͵٥2/% n .;zZ[q57 feege"yﵶi:i<_KHY?ӽXf=e_>_NO[dyN$ ƷnzZb82r!9c*~HvǘbAϤitQS/^W~u]usP < KscnE- {g F\_Sw 0=Cr? &١+J- T%?R7PechqeF{!ÍpQ}jþJ [薙' w=z/r%E;؞mX91tZV s"/o?Şu B_=nbkt v]p.U1Ptg$e"Tw-> rGybaR1;x±YPPbMzE5Yu;⦷ɒ_HZ+V7VEGE19w@>~@2-?iǭ5I"2Ihx u?d5 D`WZɇEr"X6PmU!6Fxf74pWbTAMmd\tL-25j%{ؽ|WRïs\ :oæv%FSLNslLwSJ/iN]?1лT×Lw%5@m*-{gUv.+h~]'zIK;C 7l-5+zÝ+~W86Э%ykx(;IщS@.Λ-̭YW-}c'OOTgePqTP"Nڑ#+^I{D8́q4|v"42Ww.u>Nid&d}6hmeO9o!_z֦9Ta/ɶM(1Ul} ByP^je;ΜZ۴R咏JIeq[^߉ g:AIedkBN a\xxl7oHeCJ0zHgl;?/ED4ر$vojm=7wMfgQ.?ogY]~;vb ndcvlb%_QB XZ@ >c \-P#fhq[2H)+ud, QC3Ҍ<+xB(T7Kt!e $@ڇR $QiTűu?ɞuVo?QW?qcSzy{Ą"L :3&yK!)a4[Keqɦ|ohr%O#ZAݬ>iwHќ~Btd,!]ovgg~58:|--;FƲōay ttCoדs^us[ԥ׼َ b2P(;5LG w:(vSSf DKx]Β[tAs8qD#*Q];bjx%'7i^ˏY'PcˆØ Yi,Vm*TnC/;ѕY: [AZBPnK:amL{LŰEțjKݼOv;5 HM҂ Ҿ ־ӗ8.C{Fl k̤ _A=8?}]Bo5~ zڬ?x/km}&A[1=\)@鹄IzȲ9 ,Hly (u'g^z}L9S:Ѧv+6VT/Ll@+e)1= ŕys)޷ظ)$d%|W?)kQgۮi2HWEWXRrb4Nsr2R_0<լPW3 oz|m濫l@g۸E MJ z[6׎ۣ>;"*IF^}͐=ץjvgVoׁ:ϝۅ~{0V@ny]hecH`c 1=!O*ee@ *:#(VIZyn zS2̡^Af1$Zc!t Ҙ@t׀jl,'FH2c*nM;vr9V$U%J)J􀢍 g`ˆB{rs+#7N-z'n kxFUƅ ` P^v o.ꨁuD=PdȌ8ȂesOz¢9plڤAw"T 4;'xFLp ?p!=GS|MD1/o+cCAM&fH2lS2jF":^!|ƆP{ue}dl1q>[?ѝX\4w/ޓ|OӱXosܱgK MH0(dMշ\TM/RYwʹFt+sSk43G7i ,eڇNv8;#vFa:hvv88;Sa!Ʉ+*1s󺟙-fX=zmo+ 29e (v >rp7Cu0럤aIpmLXV}]v9 LM=*&bBSŊϲ3T]zոum3+V,\8PR Feί~;b~_ _sc6eQX;2- }w͝bQPmzV`FeźYP[;FOó̰0q\ oL Qۉ v`;w'TI`hh qAtLn`Q^&zk5–Dsա`L' Ɩ|`٠a '=|B@|](| I~&7c9/zWO W%Uf4vGd\R[[7^B&_x1FIIL& 4(ӥhYP'4mʻPlr]峻7aQ2T,t?"Xե@\'pl4R3:hT6k⃊˺fO|UHZFԫ#盎t^$5_ xU7ŕ7A im\類΅(b"X9^y4{gE =j,Dz."=yX҉E,C 3pɼx=H<ÉD2>LW/>!j@󂢢GE4sao~z+؉5ê%D%.s2(֪ X4wZw%Mi雖vos/Q3yWI19\, HjoW` LYRģ1~~4 96OS_ N\nkj~:v̧'o2Z$?K.X[`CrŴ1U{޿*ISV-]bɉ^&B 2dybop__)5xɄAVz$Ά<4@E_n))[')-c=wrycbPqiR]+= Q}O T)/J !l=kt%D76T+"(@mwܶΆ<.!y|{z.b#K#Sb~v]fIKﮭ͚͛OTv;h"@,Y Z62PĆ0a9|l #)zmBzї\;yV9 "po!0q[bA\&KD8N T1Fiڞv7tc~Vb-U~'dXn\|{ y>-?%jL$^ORsdxpchC{=Ϝ=K-ر[@}ŬH,,HqW!'‰% ntXLS{0|SA cVKF@[7)rdZr4q&ItӉIK ^NQ̝; (W`ˇVx"8y^SJJ$i."["6*Pb`§W3"'Im$&F{5{K[ޝ&O.LǨK1!|\9%9sE4-zϢ/]~zgCn<~◊KҦ \!MpčlRM*ómk$/rOP+>*I4K y `0J[*-z`ߖO*76ȧQgQj) \Eu }EK`D,;XݰqEtJUSNΡ{ꅨ`߯(tXǚ8Dh/xWxx@WŢ5jw샏?< 8$LĹ{[KU\BА>eW%iwI81įP+ְ kk$ދԽ,ݗ0> _}KrRJA4x~GKo#A`7(oO} 8v6ۥͪ݌b1[zE:0;\:<Қ ~B\‚-{ﹿ؈FIsC4l{&'DOdM9Eۃcb)ܘ uT:jF!3xZcQ6 2i7WGVkC[FL6m3>: P^#UvRZ'H Zb?7ՋQx؏QO bVɨHx:PT`pȊ#">m,=b R,5V4hIc}{F;8ռu00S>KbB\7!nTp(}@} Mب {7/Gʾ$,ɵYoMw{9ߵO/Yp :z7s$TUųÈ@($91fªkz,HNZS-W`lpU-}Mefְm}ݎf(Vt$$mn\್ }5`%XH, S?EM`ϏKK\hnrvǙ|LU??ӥb+}R8{EjS%NL*W]RE4D,$H oO׌l2Ν#P`~c]Hw0nr*곈顅py^ ?, ":2;*c瓫"8o՝#D;xFR%K\8gt7ML5!8+ J7;Kqq\ ,ͪo\nu(!!cĊRڳ}+L'`Q"Q FWbsrc=[B%l=䰕6Igy5hAb9~_!u1ą=zlI=^+@v`@Xui1S:ۍXdOnōcGtCN~'NHC%bM<KCN|< v#jtQ'gxxQT C6LEсŇ{؋d!;&v`Zi%]Z4Λݕy{ S?:aq#>M,F&]?x8gbFc,&Mr=B~D"OgH(R(+x Ub!DJ|9͹tqsFd gzPQkiϺF\<^{8SHH#I%ަn\/7x8o7Oǩ:>PMM*LajOQdH~c54 &:NBw}[# ߨYԤg3$jK BWr;9{&~#ԕ76jUC ;HR*e,Ne B8Rr+ ^u:'zYn;:FάUcJaRzJG<1h5g : && ǟ &S͐-PqăUY9{ ]qn ~:Me.';!(5Y7Uv$^"ZLfFRc3(OIq@UM7Ӂ (NNkK~e!9=|< 8ӟ96*To4t!`H:  {N<I`&<'1 A9Ky7jv7YЌFcdHa1s01ED :蟊?IR HjaԘ-vxV^RDeel~)JJXeݷ%xñO,. DDagV KRV`h,y  Ѷ; m__⏕QbčIDAcrX>A29iF83D!FL?{3]Պ D~{Ǖuf'ɮX(!jy@LnŻg.9gn^3BݷT["!"Þ |2A~7%w0 = iۭ^2r> <[ ~Y_0r OzW1`&p Ma٢N>̬[: ${CVf<϶+'{AytԸvaIiw[WTG7 !'1I yZT䴀_c݉vþ1.1s%10?tSwYaey7y3Oogh\SAgNH #S5q`|4W~0uW*+v "5eemF9ܶ/<νIiǙ?> ͔y c^C?OQW?!)=k7Z,f025ǔvj|_\[[`S|ïĠCCb}/'6/-%<9B>v.eIIx=mm0LGGh&BB Q]j%([Gfj8554J`LLQhȻEmfm8}mlQԷ|Pt`h ţX?N.e3aƍBg1x}nZT[mٷ4s<80`_phEy_&0lNjudCLhjAAa Qru7bW|3$m^{qzD_ d8z0/K/n!;P}[;<xjj*$ '76R ;O($ٰ ArrJ:C0OT+l9׷ٿxT򕲳7r*oye)KP] 9O%mruɦay'7+i$[`N5^ШFƸltB/a&a "J&K]X:S]Lcgd,Z͵B =G56`75 _hxK5֧QJm \&ԣ*+A]#:695b&bQb'1lp)l|/zqTG (ʧuap6gR@ ˸&}s>+f+-#n0%y7m8?2#Z>YoJYƈE.E?_Iw6;>ɯ 7=P~> Yu{ >զiR@^b]G\A)1Љw's;=Q?Ғo Ȩj=nRmMٹ=@z\[^!m';"QV+` Ѐ}u\(ټG9F;8%Bh!ЩS{Pↇ]#&[8$D8u:yv$D Zq`CbT|0 y8>XD ;?ZWs~d- BX*aO84aM殃:?,z~&Ws {lrvNp'IjG%.h1La:'4'>?ȧH)sxaSuNi| ;dF IlWh:2u2 KB0P}њC}VAmܞY*`\XBW<?h(@&.ݷ}TG'_jV&YsvuDlom$+(TT{75{Ԝo>tI,SŤ9=X@v ~]h{%u\/&^B jntDU3'?j04`|,ᾝ'}RYnxLWd)o3D&r/\oF?[Bu[4a W[&*d>lh$~^ еM4SDnd Lt}/Gq9*ojN%&ϖFQ !80|za퉡e+6 &\wk]ƭ}o+i8D$C u[Gt+C<鯹0WRYIdv8LZV&pA4 Z PHSնۯX /?Jfa? 3cn$˗ 4fi׹t@]A4OIWFTe5o) (n4ܳItJT<O&H=͛R :R yIDcs)#p4 ѧ;١bvfXt3=qd9Xav⿞S rcn20Eu&09!kX8^k-yV)wI ]Es#*dd/:d_]`/GkEĬ*}Zr*` DrrhЏЧWpqjګ.{C*ϼ̱!U_9ոLD);j5=wp4w1࠘rIi"WyןԈĂ5"ϬqjRYֽHeIFªMpҋ[]V]<mĊ9j$.#F?3 O%0D-<yL,e0/)=^Qm+$%`ևCñ]FYg:;MLd.4Y545?Qa.e K 1p' zẉԉS%p_^%X;#6VzFнÉhZj ֈQߘ5 T=)fUYe_w_"b8n lTAAyjI(Mxo9yHJ79o9(!\A54}?F֖˧V /G8B&4gVcDfM ,A |tT> 6UXAb@Bv$6 B|vmȜGS}GLw;A;ajkx( nhY:_{}NeGԲ2=;qɀb:j_x F## =8X tcoA2Oo|Jo7&*VZ69A6CqqP~ijc9IP F9dd *|}U3Q<^^BAxDrvZ `B&<^ՏjEwFր5' Z{f^^N1P(ãґe|5uL; LϠL"Fڈ7T+n}Z\ՠܺt|8e A9@МP*%y)|J [' pykŎ]Y<{fXIIF?A7ԯ;/]x ANl-&Cu~Y#l;ƃG]W@]b)|Jk3᜴TyHy:9rA'E}{9?t1llE0g V$i.,&&NMcO$=ps;1/Jeۛ,(sJ{M.uaDSF PXSzN'B4ȪYØF U]GxV-㼨Ϝ*DQQAƫ/Ffg,/1Npkf좏a`3oؠRiFjŋzУWL4ed64ԢM=A:.?WeU~$Y ̞W3)D!0'7MHѭI/V-]ߥ<gy;Տq @3[]ly3].!bݻeh7/;SU`[}tX:~䬨s7Fh1փI&N"7$fc$߸r?dV'fKO^[-Ex~ˮ=ӯff~˭:jF3M,̭TkH5T\21LQy0&P ZyFݹc|27,m±ҕ?ޜA׌u+dgmbRPSW)տAf}}}]^\H>?ra.A߹Dx!h1$"o_D]FTr6aG8~' j,xfgMS));l䫲Qسmo50TeHi0s(h x1 _If R&E\ uF7IG}E2$temhH;.Jv .)I%GsK;_oIu?~,cWw/ KԵ>3菙Z iXH6=AlЈ1Ȗ@2.'$K cJ<28vj))ư-; |#W_w$VK|v$/£]@o4}V^@(r}ag`N- 9xf,SؔVՀhm,N 6" 3$M Xe\ڲb0:І0aMY;&[vofs9_8 FEi=wox{iif~ H؏τ ܞy~x GG4$v{O51LozG|C})v]YPf!!uʜwP6~K{W8T4?wZ%a`-,uV5'}{$>+;P E#D MRzd$ng`@9.>a$^$Ó07S}?&LD1| dQ/\S !:a, 9 2Ȏ/xMT&l*~4 -&FC/d0Loī#=[7.*0ىfjaҤ0Ta+p8Qn-w$aFEGEm2BEv9Dž ;.FcS_]sTB6 %;z?f:>Gf977<59dCR8~Pgܙ`N\;9 qҏ,}hN0_hFx[q 8WcGqRVƗ%itF[kUr [-?AϏ?ڗ m*p QU DK`^9KB<#kG}zK)2  o?W}e?ֆ1pc%IXoY1Oi)w)N\1TY)H~4/['VO smקDCi\KۃcGN70ٖI:x"̻Ņ @`IƒaE0.~"q71QE .Ħdz=ٍw3>ZcEh;L z&~sjΞI*䛞zluii_6>m>C_̵8$zE*s4t:A{ѵ0Ppi$B^{zP Fƅ$6 I(TX,|zP B \vy oܑȣ'{Pbf*(j0Gt[UX ԅQ @g]`gUNZXJ,΋dN;_WAKFds#DQԱsH/g6-NvylE*#v]xrmg.c=Sxqb@ DOF+%b`- p:Жo(R'5Kv51S7&-UI {p˟< b Mcy],T~-'7"`|ga"/8 5=acv1X EN9@& `3=fF}7*fhZN]t>SQĚeq# [ln02cA{|uٖMl^<0䁗/+f'&U(ݎEJw}!ބ_dr.`7@€w홁Id@H.:^wD'&j,/͹ԕ.b}Dܐi=: , г<1T?u@ǯLZsJdL>醂}ػ2`s+Al>=-D/h?Dqk07/ c^خ?GavлL:~ͶKҧݠRO9qbNvmW /R K"! &H@\ }V})N v{О]aun#}F¤c!U8 5xg7ҊdL1li8, vrxt#c%;L5AwlZ_m,1Vð 8j}MeknyˣU@ѕBUÈj%JBpDEh 9pNuLtbj`Ϊ1@f]S;i+>pMC?eمR9tґ}BQ.R 8-!>e`hn.M S/H Q%;Pu9H`m=b:_B}J`(;Zr4/~G/ܹkppnvNc4_ǿB߄uNUawPwjwuHvpMW[\ꏀ}pF|ƕ>\^ 1$HGR ;>˭0\=2Bl z$oiؚb6+a=H4/?D\]l~)3`uy2b8}Q*_I`wyf~H>/OWG;[EL|bw[+NLd18jxf0Vh], ñҭLf'do cᣤn'{W+*5UWr>\_K] H=Tc"T[9wŠYM 4ug ͎0wN9mAkD|R~@x'R//H?[q74N!voE@yF}CvV_}.z]nz?rd.c]Wy`fA`,B[vEUc6 F`&XSIRdƷ`*[4 TΖ`^!fŖLSOhbY7Xϯ' bJgA exUYu+RW?L> \1W6}*jj^ T65bNsð?ZxYQ6=Г.2H_JEkQ#BQhc˚O4UO]\@,p x> _K]#'+ 4H5R FG_r 5A `lql/ +p>J6FԃEVJnKs8߉=8==*A\[ЏM+nϤՑn"`\sh7׬{Ú8/#?(eγ97q\ügng$9^8iپvS9/:~ ]ftZ{rŒDK'iBkGG=--{ʫ3>w}팺J[c|Di Z#xVk*}`84SWΓկ^ץ1L:MB0g+9oKEa3gܟdt^HceDr'aT-_I(\#^fdXNJYmK浊i~n9O-Vfaxѫ@pv$\q?)r}(Sc-jy'Z> tׄ%cNCI(9I_RjFk8,.1Z}!$$Yר.{ӯ imc_-'u* QsL; z;i-pӃv\aaE+,m}`!'S!B,jbkSN#DUZ΋ݢ46<"*+U0W}CDOFThND{dsE3#N{"~xy9 ed8C\u.Q =.'IqnBBa!b[F ג(!q>>N}9_mP 2Z6D?U`P-A-Z~:L04XC5Qj5E,U4.^ h~AZCbyC24pF"Ð"(, zH-N1Ыnэ_DsWE]n;U F컣hWۘ|'=p͋ .X]no|Mt,u}zH<;a۶<]mE@:~4,ƬYƢ+:olvhMqWx٬;C ; lϴ ~an(Gx cy`̨PB>Q| j036\7%$Y4ospAιWnFŒBEPFz:H{vH#7;˓cFdG'!Ex2/?y YV5\&Xu/ZE}kס D3,(T"ƪvX U(uAML2Fִ"V O3!׌BioN\J ^5/r^whUƧ8r2Yz ,Ӵp KFJeVBrfr 5U~DSR:c5 饉L15,$Ĥ;]Ɓ9 Օ_igپJ*_o2!B=> 9m_GDziuQ2=y*kx?G\T0n?NJsG!]`[4Cd>B(@ۉoɕ_i;`~)LύHp.p5!tXݚI[Xet7d ̊tϣu| ZB8ܔnJT REi|f SL & u%P-HET&j3 v2n$ }`=2[kxӮ;D %b{,ÛAUcDܜ;Aа5XR>3A72I){de#ZȎu2(c^}u:JA[+f鞋DOBHYފILˮZeY1ٛ1蝩\gKkϝ[%9Ǟ"u֫_3FI˩Z+ (iz=[~P Wf7ބBn8@p]r>!w0o|3ٛ઻zE1G™?4vL1|ˊ&A.ʵw]MX17Af Z.z?(/A(jD,7^Y2aś眇ʝ|=c_)kThR: lvU]-0lHoC?N& =^,gM*SQ{joagB!jo, fpI xk-5240cP(afp'}fAr$υ/Fk$>LEm`> l=9aVgXTcѰb_jo"Ik/(GVtյODѹ3_nqfH6` 砉ukGuƏ9< RZxgͧLuMUΜŅb n`~˜~i0 qx@C>"9F%a>ڻ[h3as= Z_I1 iŭ+phWs d 撈IM]ᳬi. APzrB? d*.5d#BB֑)u̘c+}Idx2#QQػ^4u5L&G=*&:ﬨPbu#y+7l]a [rpO|"CagsͅifK~9 W_DF}31lj pY@$h6A=Ē%,BеF 2i %bÛWc錘ko4TG?aQJ4;"iw xJ躅bѕNrOfVlGB؀'<>yw0_/8U>ܪ~e4b橯.IldC1H8E kqbzCYB<=|aլ܄gXKxp2חvΪOs䦼!Pd(F/6|!m1 yPT D1NkHg^ /*RrB2׃=JkOj򧢔ב4ik[Xj28㸳ٰ3ۑ*սpOU`Y-2JJa`ue0`@@ #u=Zb:tq6`}ũ3t]N g?AF 68a1yNf92V#UHyQD6(t*}ƲlTWwgw-p'٤{1H=v%0GD]\,R5՜{a7RO5HNx"r̟ظ#_%<ܦ tz7yTFwqww}/ipҗrrÔ׾ 'T_y0ȿ@J.8;Ld,*d2[u%_j+ʋ.yAq䀃ɫ™7:p( 93O|M ͧyuۍbburq\f{f` ƬP]lP 뻕 BkN2:Ar0δHɺS #Fy:⎍yy06gItat]l|F}yj2C?'oKoīb~Ɖ3nhi@~ ɦe˭/]AKq룟㹋W֦fw{ZP? ws">QɶN{aen\+\M6\,pGI8/ƒ}֨51gCqO aɋ﷕37޸G'KcCb͙b׋]@=ҌG]z ͿsXF]g(>0R]@7OS{FD :/s87K@q-,,r$}A{G<(y0Tƈܣ>%[ ?ؙnG#ZBDØaa:6PImxY4zIedY Pp(_&zbW:'3u'34ZFݿ~5`-'_ѥPO3l1-w'06 x׉nZspuXSh"793YnG]|[yP)[˕ !?ͷaUo'5 >"pGg`]G-Q-X>8TD6}+-WiBBFx,)ni OtPH@QV퀏-q #E𔿱(t;, bi%k_ Y?9Z\NMB{ _.B ᰀI'Н;͜Bn2+sZ! ™-;mS-HPK\]s88css/show.toast.cssnu[ .jq-toast-wrap .jq-icon-success { background-color: #29c0b1; } .jq-toast-wrap .jq-icon-info { background-color: #2c50ed; } .jq-toast-wrap .jq-icon-warning { background-color: #fbbc06; } .jq-toast-wrap .jq-icon-error { background-color: #ff3366; } .modal-box{ font-family: 'Varela Round', sans-serif; } .modal-box .show-modal{ color: #222; background-color: #fff; font-size: 18px; font-weight: 600; text-transform: capitalize; padding: 10px 15px; margin: 80px auto 0; border: none; outline: none; box-shadow: 0 0 10px #555; display: block; } .modal-box .show-modal:hover, .modal-box .show-modal:focus{ color: #222; background-color: #fff; border: none; outline: none; text-decoration: none; } .modal-backdrop.in{ opacity: 0.1; } .modal-box .modal{ top: 70px !important; } .modal-box .modal-dialog{ width: 400px; margin: 30px auto 10px; } .modal-box .modal-dialog .modal-content{ border-radius: 25px; box-shadow: 0 0 25px -8px #555; } .modal-box .modal-dialog .modal-content .close{ color: #e74c3c; background-color: #fff; font-size: 28px; text-shadow: none; line-height: 33px; height: 33px; width: 33px; opacity: 1; border-radius: 50%; box-shadow: 0 0 5px #555; position: absolute; left: auto; right: -5px; top: -5px; z-index: 1; transition: all 0.3s; } .modal-box .modal-dialog .modal-content .close span{ margin: -1px 0 0 0; display: block; } .modal-box .modal-dialog .modal-content .close:hover{ color: #fff; background-color: #e74c3c; } .modal-box .modal-dialog .modal-content .modal-body{ padding: 50px 20px !important; } .modal-box .modal-dialog .modal-content .modal-body .icon{ color: #26de81; font-size: 36px; text-align: center; text-shadow: 4px 0 0 #fff, 0 -3px 0 #fff; line-height: 40px; height: 50px; width: 50px; margin: 0 auto 30px; position: relative; z-index: 1; } .modal-box .modal-dialog .modal-content .modal-body .icon:after{ content: ''; height: 45px; width: 45px; border: 5px solid #c1c1c1; border-radius: 50%; position: absolute; left: -5px; top: 3px; z-index: -1; } .modal-box .modal-dialog .modal-content .modal-body .title{ margin: 0 0 20px 0; font-size: 20px; color: #222; text-transform: capitalize; font-weight: 600; text-align: center; } .modal-box .modal-dialog .modal-content .modal-body .description{ color: #999; text-align: center; margin: 0 0 15px; } .modal-box .modal-dialog .modal-content .modal-body .subscribe{ color: #fff; background-color: #26de81; font-size: 18px; text-transform: uppercase; padding: 10px 20px; margin: 0 auto; border: 0 solid #222; border-radius: 50px; overflow: hidden; display: block; position: relative; z-index: 1; transition: all 0.3s; } .modal-box .modal-dialog .modal-content .modal-body .subscribe:hover{ background-color: #222; } @media only screen and (max-width: 768px){ .modal-dialog{ width: 400px !important; } } @media only screen and (max-width: 576px){ .modal-dialog{ width: auto !important; } } .user-profile-2 { text-align: center; position: relative; margin-top:10px; } .box-info { position: relative; padding: 15px; background: #fff; color: #5b5b5b; margin-bottom: 20px; -webkit-transition: All 0.4s ease; -moz-transition: All 0.4s ease; -o-transition: All 0.4s ease; } .user-profile-2 .header-cover { position: absolute; left: 0; top: 0; right: 0; height: 140px; overflow: hidden; z-index: 1; } .user-profile-2 .user-profile-inner { z-index: 2; position: relative; } .user-profile-2 .user-profile-inner h4.white { color: #fff; } .user-profile-2 .user-profile-inner img.profile-avatar { box-shadow: 0 0 0 5px rgba(255,255,255,1); -moz-box-shadow: 0 0 0 5px rgba(255,255,255,1); -webkit-box-shadow: 0 0 0 5px rgba(255,255,255,1); border-radius: 50% !important; width:140px; height:140px; border: 3px solid #adb5bd; padding: 5px; } .user-button { margin: 15px 0; } .panel.with-nav-tabs .panel-heading{ padding: 5px 5px 0 5px; } .panel.with-nav-tabs .nav-tabs{ border-bottom: none; } .panel.with-nav-tabs .nav-justified{ margin-bottom: -1px; } /********************************************************************/ /*** PANEL DEFAULT ***/ .with-nav-tabs.panel-default .nav-tabs > li > a, .with-nav-tabs.panel-default .nav-tabs > li > a:hover, .with-nav-tabs.panel-default .nav-tabs > li > a:focus { color: #777; } .with-nav-tabs.panel-default .nav-tabs > .open > a, .with-nav-tabs.panel-default .nav-tabs > .open > a:hover, .with-nav-tabs.panel-default .nav-tabs > .open > a:focus, .with-nav-tabs.panel-default .nav-tabs > li > a:hover, .with-nav-tabs.panel-default .nav-tabs > li > a:focus { color: #777; background-color: #ddd; border-color: transparent; } .with-nav-tabs.panel-default .nav-tabs > li.active > a, .with-nav-tabs.panel-default .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-default .nav-tabs > li.active > a:focus { color: #555; background-color: #fff; border-color: #ddd; border-bottom-color: transparent; } .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu { background-color: #f5f5f5; border-color: #ddd; } .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #777; } .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #ddd; } .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-default .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { color: #fff; background-color: #555; } /********************************************************************/ /*** PANEL PRIMARY ***/ .with-nav-tabs.panel-primary .nav-tabs > li > a, .with-nav-tabs.panel-primary .nav-tabs > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li > a:focus { color: #fff; } .with-nav-tabs.panel-primary .nav-tabs > .open > a, .with-nav-tabs.panel-primary .nav-tabs > .open > a:hover, .with-nav-tabs.panel-primary .nav-tabs > .open > a:focus, .with-nav-tabs.panel-primary .nav-tabs > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li > a:focus { color: #fff; background-color: #3071a9; border-color: transparent; } .with-nav-tabs.panel-primary .nav-tabs > li.active > a, .with-nav-tabs.panel-primary .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.active > a:focus { color: #428bca; background-color: #fff; border-color: #428bca; border-bottom-color: transparent; } .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu { background-color: #428bca; border-color: #3071a9; } .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #fff; } .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #3071a9; } .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { background-color: #4a9fe9; } /********************************************************************/ /*** PANEL SUCCESS ***/ .with-nav-tabs.panel-success .nav-tabs > li > a, .with-nav-tabs.panel-success .nav-tabs > li > a:hover, .with-nav-tabs.panel-success .nav-tabs > li > a:focus { color: #3c763d; } .with-nav-tabs.panel-success .nav-tabs > .open > a, .with-nav-tabs.panel-success .nav-tabs > .open > a:hover, .with-nav-tabs.panel-success .nav-tabs > .open > a:focus, .with-nav-tabs.panel-success .nav-tabs > li > a:hover, .with-nav-tabs.panel-success .nav-tabs > li > a:focus { color: #3c763d; background-color: #d6e9c6; border-color: transparent; } .with-nav-tabs.panel-success .nav-tabs > li.active > a, .with-nav-tabs.panel-success .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-success .nav-tabs > li.active > a:focus { color: #3c763d; background-color: #fff; border-color: #d6e9c6; border-bottom-color: transparent; } .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu { background-color: #dff0d8; border-color: #d6e9c6; } .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #3c763d; } .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #d6e9c6; } .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-success .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { color: #fff; background-color: #3c763d; } /********************************************************************/ /*** PANEL INFO ***/ .with-nav-tabs.panel-info .nav-tabs > li > a, .with-nav-tabs.panel-info .nav-tabs > li > a:hover, .with-nav-tabs.panel-info .nav-tabs > li > a:focus { color: #31708f; } .with-nav-tabs.panel-info .nav-tabs > .open > a, .with-nav-tabs.panel-info .nav-tabs > .open > a:hover, .with-nav-tabs.panel-info .nav-tabs > .open > a:focus, .with-nav-tabs.panel-info .nav-tabs > li > a:hover, .with-nav-tabs.panel-info .nav-tabs > li > a:focus { color: #31708f; background-color: #bce8f1; border-color: transparent; } .with-nav-tabs.panel-info .nav-tabs > li.active > a, .with-nav-tabs.panel-info .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-info .nav-tabs > li.active > a:focus { color: #31708f; background-color: #fff; border-color: #bce8f1; border-bottom-color: transparent; } .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu { background-color: #d9edf7; border-color: #bce8f1; } .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #31708f; } .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #bce8f1; } .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-info .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { color: #fff; background-color: #31708f; } /********************************************************************/ /*** PANEL WARNING ***/ .with-nav-tabs.panel-warning .nav-tabs > li > a, .with-nav-tabs.panel-warning .nav-tabs > li > a:hover, .with-nav-tabs.panel-warning .nav-tabs > li > a:focus { color: #8a6d3b; } .with-nav-tabs.panel-warning .nav-tabs > .open > a, .with-nav-tabs.panel-warning .nav-tabs > .open > a:hover, .with-nav-tabs.panel-warning .nav-tabs > .open > a:focus, .with-nav-tabs.panel-warning .nav-tabs > li > a:hover, .with-nav-tabs.panel-warning .nav-tabs > li > a:focus { color: #8a6d3b; background-color: #faebcc; border-color: transparent; } .with-nav-tabs.panel-warning .nav-tabs > li.active > a, .with-nav-tabs.panel-warning .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-warning .nav-tabs > li.active > a:focus { color: #8a6d3b; background-color: #fff; border-color: #faebcc; border-bottom-color: transparent; } .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu { background-color: #fcf8e3; border-color: #faebcc; } .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #8a6d3b; } .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #faebcc; } .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-warning .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { color: #fff; background-color: #8a6d3b; } /********************************************************************/ /*** PANEL DANGER ***/ .with-nav-tabs.panel-danger .nav-tabs > li > a, .with-nav-tabs.panel-danger .nav-tabs > li > a:hover, .with-nav-tabs.panel-danger .nav-tabs > li > a:focus { color: #a94442; } .with-nav-tabs.panel-danger .nav-tabs > .open > a, .with-nav-tabs.panel-danger .nav-tabs > .open > a:hover, .with-nav-tabs.panel-danger .nav-tabs > .open > a:focus, .with-nav-tabs.panel-danger .nav-tabs > li > a:hover, .with-nav-tabs.panel-danger .nav-tabs > li > a:focus { color: #a94442; background-color: #ebccd1; border-color: transparent; } .with-nav-tabs.panel-danger .nav-tabs > li.active > a, .with-nav-tabs.panel-danger .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-danger .nav-tabs > li.active > a:focus { color: #a94442; background-color: #fff; border-color: #ebccd1; border-bottom-color: transparent; } .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu { background-color: #f2dede; /* bg color */ border-color: #ebccd1; /* border color */ } .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > li > a { color: #a94442; /* normal text color */ } .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > li > a:focus { background-color: #ebccd1; /* hover bg color */ } .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-danger .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus { color: #fff; /* active text color */ background-color: #a94442; /* active bg color */ } PK\WKKcss/login-style.cssnu[body { background-color: #f8fafb; } p { color: #b3b3b3; font-weight: 300; } a { -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; } a:hover { text-decoration: none !important; } h2 { font-size: 20px; } @media (max-width: 991.98px) { .content .bg { height: 500px; } } .content .contents, .content .bg { width: 50%; } @media (max-width: 1199.98px) { .content .contents, .content .bg { width: 100%; } } .content .contents .form-group, .content .bg .form-group { position: relative; } .content .contents .form-group label, .content .bg .form-group label { position: absolute; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; } .content .contents .form-group input, .content .bg .form-group input { background: transparent; border-bottom: 1px solid #ccc; } .content .contents .form-group.first, .content .bg .form-group.first { border-top-left-radius: 7px; border-top-right-radius: 7px; } .content .contents .form-group.last, .content .bg .form-group.last { border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; } .content .contents .form-group label, .content .bg .form-group label { font-size: 12px; display: block; margin-bottom: 0; color: #b3b3b3; } .content .contents .form-group.focus, .content .bg .form-group.focus { background: #fff; } .content .contents .form-group.field--not-empty label, .content .bg .form-group.field--not-empty label { margin-top: -25px; } .content .contents .form-control, .content .bg .form-control { border: none; padding: 0; font-size: 20px; border-radius: 0; } .content .contents .form-control:active, .content .contents .form-control:focus, .content .bg .form-control:active, .content .bg .form-control:focus { outline: none; -webkit-box-shadow: none; box-shadow: none; } .content .bg { background-size: cover; background-position: center; } .content a { color: #888; text-decoration: underline; } .content .btn { height: 54px; padding-left: 30px; padding-right: 30px; } .content .forgot-pass { position: relative; top: 2px; font-size: 14px; } .social-login a { text-decoration: none; position: relative; text-align: center; color: #fff; margin-bottom: 10px; width: 50px; height: 50px; border-radius: 50%; display: inline-block; } .social-login a span { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .social-login a:hover { color: #fff; } .social-login a.facebook { background: #3b5998; } .social-login a.facebook:hover { background: #344e86; } .social-login a.twitter { background: #1da1f2; } .social-login a.twitter:hover { background: #0d95e8; } .social-login a.google { background: #ea4335; } .social-login a.google:hover { background: #e82e1e; } .control { display: block; position: relative; padding-left: 30px; margin-bottom: 15px; cursor: pointer; font-size: 14px; } .control .caption { position: relative; top: .2rem; color: #888; } .control input { position: absolute; z-index: -1; opacity: 0; } .control__indicator { position: absolute; top: 2px; left: 0; height: 20px; width: 20px; background: #e6e6e6; border-radius: 4px; } .control--radio .control__indicator { border-radius: 50%; } .control:hover input ~ .control__indicator, .control input:focus ~ .control__indicator { background: #ccc; } .control input:checked ~ .control__indicator { background: #38d39f; } .control:hover input:not([disabled]):checked ~ .control__indicator, .control input:checked:focus ~ .control__indicator { background: #4dd8a9; } .control input:disabled ~ .control__indicator { background: #e6e6e6; opacity: 0.9; pointer-events: none; } .control__indicator:after { font-family: 'icomoon'; content: '\e5ca'; position: absolute; display: none; font-size: 16px; -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; } .control input:checked ~ .control__indicator:after { display: block; color: #fff; } .control--checkbox .control__indicator:after { top: 50%; left: 50%; margin-top: -1px; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .control--checkbox input:disabled ~ .control__indicator:after { border-color: #7b7b7b; } .control--checkbox input:disabled:checked ~ .control__indicator { background-color: #7e0cf5; opacity: .2; } PK\P css/prism.cssnu[/* PrismJS 1.21.0 https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ /** * prism.js default theme for JavaScript, CSS and HTML * Based on dabblet (http://dabblet.com) * @author Lea Verou */ code[class*="language-"], pre[class*="language-"] { color: black; background: none; text-shadow: 0 1px white; font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 1em; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; line-height: 1.5; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; } pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { text-shadow: none; background: #b3d4fc; } pre[class*="language-"]::selection, pre[class*="language-"] ::selection, code[class*="language-"]::selection, code[class*="language-"] ::selection { text-shadow: none; background: #b3d4fc; } @media print { code[class*="language-"], pre[class*="language-"] { text-shadow: none; } } /* Code blocks */ pre[class*="language-"] { padding: 1em; margin: .5em 0; overflow: auto; } :not(pre) > code[class*="language-"], pre[class*="language-"] { background: #f5f2f0; } /* Inline code */ :not(pre) > code[class*="language-"] { padding: .1em; border-radius: .3em; white-space: normal; } .token.comment, .token.prolog, .token.doctype, .token.cdata { color: slategray; } .token.punctuation { color: #999; } .token.namespace { opacity: .7; } .token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: #905; } .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #690; } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string { color: #9a6e3a; /* This background color was intended by the author of this theme. */ background: hsla(0, 0%, 100%, .5); } .token.atrule, .token.attr-value, .token.keyword { color: #07a; } .token.function, .token.class-name { color: #DD4A68; } .token.regex, .token.important, .token.variable { color: #e90; } .token.important, .token.bold { font-weight: bold; } .token.italic { font-style: italic; } .token.entity { cursor: help; } PK\6css/multi-step-theme.cssnu[.multi-step .btn.btn-primary { color: white; background-color: #39c0ba !important; } .multi-step .card-header .card-steps .step:before { border-color: #EAEAEA; } .multi-step .card-header .card-steps .step .dot { border-color: #EAEAEA; background-color: #EAEAEA; } .multi-step .card-header .card-steps .step:after { border-color: #EAEAEA; } .multi-step .card-header .card-steps .step.current:after { border-color: #39c0ba; } .multi-step .card-header .card-steps .step.current .dot { border-color: #39c0ba; } .multi-step .card-header .card-steps .step.current .dot:before { background-color: #EAEAEA; } .multi-step .card-header .card-steps .step.completed:after { border-color: #39c0ba; } .multi-step .card-header .card-steps .step.completed .dot { border-color: #39c0ba; } .multi-step .card-header .card-steps .step.completed .dot:before { background-color: #39c0ba; } .multi-step .card-header .card-steps .step .label.completed { color: #39c0ba; } .multi-step .card-header .card-steps .step.skipped:after { border-color: #ffc107; } .multi-step .card-header .card-steps .step.skipped .dot { border-color: #ffc107; } .multi-step .card-header .card-steps .step.skipped .dot:before { background-color: #ffc107; } .multi-step .card-footer .btn-prev { background-color: #39c0ba; } .multi-step .card-footer .btn-prev.disabled { background-color: #EAEAEA; color: #000; } .multi-step .card-footer .btn-skip { background-color: #ffc107; } .multi-step .card-footer .btn-skip.disabled { background-color: #EAEAEA; color: #000; } .multi-step .card-footer .btn-next { background-color: #39c0ba; } .multi-step .card-footer .btn-next.disabled { background-color: #EAEAEA; color: #000; } PK\?Ecss/jquery.toast.min.cssnu[.jq-toast-wrap,.jq-toast-wrap *{margin:0;padding:0}.jq-toast-wrap{display:block;position:fixed;width:250px;pointer-events:none!important;letter-spacing:normal;z-index:9000!important}.jq-toast-wrap.bottom-left{bottom:20px;left:20px}.jq-toast-wrap.bottom-right{bottom:20px;right:40px}.jq-toast-wrap.top-left{top:20px;left:20px}.jq-toast-wrap.top-right{top:20px;right:40px}.jq-toast-single{display:block;width:100%;padding:10px;margin:0 0 5px;border-radius:4px;font-size:12px;font-family:arial,sans-serif;line-height:17px;position:relative;pointer-events:all!important;background-color:#444;color:#fff}.jq-toast-single h2{font-family:arial,sans-serif;font-size:14px;margin:0 0 7px;background:0 0;color:inherit;line-height:inherit;letter-spacing:normal}.jq-toast-single a{color:#eee;text-decoration:none;font-weight:700;border-bottom:1px solid #fff;padding-bottom:3px;font-size:12px}.jq-toast-single ul{margin:0 0 0 15px;background:0 0;padding:0}.jq-toast-single ul li{list-style-type:disc!important;line-height:17px;background:0 0;margin:0;padding:0;letter-spacing:normal}.close-jq-toast-single{position:absolute;top:3px;right:7px;font-size:14px;cursor:pointer}.jq-toast-loader{display:block;position:absolute;top:-2px;height:5px;width:0;left:0;border-radius:5px;background:red}.jq-toast-loaded{width:100%}.jq-has-icon{padding:10px 10px 10px 50px;background-repeat:no-repeat;background-position:10px}.jq-icon-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=);background-color:#31708f;color:#d9edf7;border-color:#bce8f1}.jq-icon-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=);background-color:#8a6d3b;color:#fcf8e3;border-color:#faebcc}.jq-icon-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=);background-color:#a94442;color:#f2dede;border-color:#ebccd1}.jq-icon-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==);color:#dff0d8;background-color:#3c763d;border-color:#d6e9c6}PK\񐶃7 7 css/weekCalendar.cssnu[.wcYear { float: left; width: 94px; height: 110px; background: #deecff; text-align: center; line-height: 110px; font-size: 20px; color: #666; position: relative; } .wcYear > i { position: absolute; background-repeat: no-repeat; padding-left: 8px; padding-top: 7px; left: 45px; cursor: pointer; } .wcYear > i:first-child { background-image: url(../img/icArrowUp.png); top: 20px; } .wcYear > i:last-child { background-image: url(../img/icArrowDown.png); bottom: 20px; } ul.wcMonth, ul.wcDate { padding-left: 0; margin-bottom: 0; } ul.wcMonth > li, ul.wcDate > li { list-style: none; } ul.wcMonth { height: 40px; width: 1225px; background: #e8f1fc; font-size: 16px; color: #666; cursor: pointer; } ul.wcMonth > li { float: left; width: 94.2px; line-height: 40px; text-align: center; } ul.wcMonth > li.active { background: #5b99ee; color: #fff; -webkit-animation: bgChange .7s linear both; animation: bgChange .7s linear both; } ul.wcMonth > li.today { background: #b2b8cf; color: #fff; } ul.wcMonth > li.mouseActive { -webkit-animation: bgChange .7s linear both; animation: bgChange .7s linear both; background: #5b99ee; color: #fff; } ul.wcDate { height: 70px; width: 1225px; background: #f2f7fe; font-size: 18px; color: #666; margin: 0; } ul.wcDate > li { float: left; width: 58px; line-height: 58px; text-align: center; margin: 6px 33.8px; height: 58px; cursor: pointer; } ul.wcDate > li > span:first-of-type { font-size: 22px; width: 55px; float: left; margin-top: -10px; height: 20px; } ul.wcDate > li > span:last-of-type { font-size: 14px; color: #999; } ul.wcDate > li.today { background: #d8e4f3; color: #5b99ee; border-radius: 50%; } ul.wcDate > li.active { -webkit-animation: bgChange .7s linear both; animation: bgChange .7s linear both; background-color: #5b99ee; border-radius: 50%; color: #fff; } ul.wcDate > li.mouseActive { -webkit-animation: bgChange .7s linear both; animation: bgChange .7s linear both; background-color: #5b99ee; border-radius: 50%; color: #fff; } @keyframes bgChange { from { background: transparent; } to { background: #5b99ee; } } ul.wcDate > li.today > span:last-of-type { color: #5b99ee; } ul.wcDate > li.active > span:last-of-type { color: #fff; } ul.wcDate > li.mouseActive > span:last-of-type { color: #fff; }PK\.3//css/animate.cssnu[@charset "UTF-8"; /*! * animate.css -http://daneden.me/animate * Version - 3.7.0 * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2018 Daniel Eden */ @-webkit-keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0, -4px, 0); transform: translate3d(0, -4px, 0); } } @keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0, -4px, 0); transform: translate3d(0, -4px, 0); } } .bounce { -webkit-animation-name: bounce; animation-name: bounce; -webkit-transform-origin: center bottom; transform-origin: center bottom; } @-webkit-keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } @keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } .flash { -webkit-animation-name: flash; animation-name: flash; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .pulse { -webkit-animation-name: pulse; animation-name: pulse; } @-webkit-keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(0.95, 1.05, 1); transform: scale3d(0.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, 0.95, 1); transform: scale3d(1.05, 0.95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(0.95, 1.05, 1); transform: scale3d(0.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, 0.95, 1); transform: scale3d(1.05, 0.95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .rubberBand { -webkit-animation-name: rubberBand; animation-name: rubberBand; } @-webkit-keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } @keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } .shake { -webkit-animation-name: shake; animation-name: shake; } @-webkit-keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } .headShake { -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-name: headShake; animation-name: headShake; } @-webkit-keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } @keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } .swing { -webkit-transform-origin: top center; transform-origin: top center; -webkit-animation-name: swing; animation-name: swing; } @-webkit-keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .tada { -webkit-animation-name: tada; animation-name: tada; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes wobble { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes wobble { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .wobble { -webkit-animation-name: wobble; animation-name: wobble; } @-webkit-keyframes jello { from, 11.1%, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } @keyframes jello { from, 11.1%, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } .jello { -webkit-animation-name: jello; animation-name: jello; -webkit-transform-origin: center; transform-origin: center; } @-webkit-keyframes heartBeat { 0% { -webkit-transform: scale(1); transform: scale(1); } 14% { -webkit-transform: scale(1.3); transform: scale(1.3); } 28% { -webkit-transform: scale(1); transform: scale(1); } 42% { -webkit-transform: scale(1.3); transform: scale(1.3); } 70% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes heartBeat { 0% { -webkit-transform: scale(1); transform: scale(1); } 14% { -webkit-transform: scale(1.3); transform: scale(1.3); } 28% { -webkit-transform: scale(1); transform: scale(1); } 42% { -webkit-transform: scale(1.3); transform: scale(1.3); } 70% { -webkit-transform: scale(1); transform: scale(1); } } .heartBeat { -webkit-animation-name: heartBeat; animation-name: heartBeat; -webkit-animation-duration: 1.3s; animation-duration: 1.3s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } @-webkit-keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(0.9, 0.9, 0.9); transform: scale3d(0.9, 0.9, 0.9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(0.97, 0.97, 0.97); transform: scale3d(0.97, 0.97, 0.97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(0.9, 0.9, 0.9); transform: scale3d(0.9, 0.9, 0.9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(0.97, 0.97, 0.97); transform: scale3d(0.97, 0.97, 0.97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .bounceIn { -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-name: bounceIn; animation-name: bounceIn; } @-webkit-keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInDown { -webkit-animation-name: bounceInDown; animation-name: bounceInDown; } @-webkit-keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInLeft { -webkit-animation-name: bounceInLeft; animation-name: bounceInLeft; } @-webkit-keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInRight { -webkit-animation-name: bounceInRight; animation-name: bounceInRight; } @-webkit-keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInUp { -webkit-animation-name: bounceInUp; animation-name: bounceInUp; } @-webkit-keyframes bounceOut { 20% { -webkit-transform: scale3d(0.9, 0.9, 0.9); transform: scale3d(0.9, 0.9, 0.9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } } @keyframes bounceOut { 20% { -webkit-transform: scale3d(0.9, 0.9, 0.9); transform: scale3d(0.9, 0.9, 0.9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } } .bounceOut { -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-name: bounceOut; animation-name: bounceOut; } @-webkit-keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .bounceOutDown { -webkit-animation-name: bounceOutDown; animation-name: bounceOutDown; } @-webkit-keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .bounceOutLeft { -webkit-animation-name: bounceOutLeft; animation-name: bounceOutLeft; } @-webkit-keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .bounceOutRight { -webkit-animation-name: bounceOutRight; animation-name: bounceOutRight; } @-webkit-keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .bounceOutUp { -webkit-animation-name: bounceOutUp; animation-name: bounceOutUp; } @-webkit-keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fadeIn { -webkit-animation-name: fadeIn; animation-name: fadeIn; } @-webkit-keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; } @-webkit-keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInDownBig { -webkit-animation-name: fadeInDownBig; animation-name: fadeInDownBig; } @-webkit-keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; } @-webkit-keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInLeftBig { -webkit-animation-name: fadeInLeftBig; animation-name: fadeInLeftBig; } @-webkit-keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; } @-webkit-keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInRightBig { -webkit-animation-name: fadeInRightBig; animation-name: fadeInRightBig; } @-webkit-keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInUp { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; } @-webkit-keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .fadeInUpBig { -webkit-animation-name: fadeInUpBig; animation-name: fadeInUpBig; } @-webkit-keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } .fadeOut { -webkit-animation-name: fadeOut; animation-name: fadeOut; } @-webkit-keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .fadeOutDown { -webkit-animation-name: fadeOutDown; animation-name: fadeOutDown; } @-webkit-keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .fadeOutDownBig { -webkit-animation-name: fadeOutDownBig; animation-name: fadeOutDownBig; } @-webkit-keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .fadeOutLeft { -webkit-animation-name: fadeOutLeft; animation-name: fadeOutLeft; } @-webkit-keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .fadeOutLeftBig { -webkit-animation-name: fadeOutLeftBig; animation-name: fadeOutLeftBig; } @-webkit-keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .fadeOutRight { -webkit-animation-name: fadeOutRight; animation-name: fadeOutRight; } @-webkit-keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .fadeOutRightBig { -webkit-animation-name: fadeOutRightBig; animation-name: fadeOutRightBig; } @-webkit-keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .fadeOutUp { -webkit-animation-name: fadeOutUp; animation-name: fadeOutUp; } @-webkit-keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .fadeOutUpBig { -webkit-animation-name: fadeOutUpBig; animation-name: fadeOutUpBig; } @-webkit-keyframes flip { from { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } @keyframes flip { from { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } .animated.flip { -webkit-backface-visibility: visible; backface-visibility: visible; -webkit-animation-name: flip; animation-name: flip; } @-webkit-keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInX { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInX; animation-name: flipInX; } @-webkit-keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInY; animation-name: flipInY; } @-webkit-keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } @keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .flipOutX { -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-name: flipOutX; animation-name: flipOutX; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; } @-webkit-keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } @keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } .flipOutY { -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipOutY; animation-name: flipOutY; } @-webkit-keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .lightSpeedIn { -webkit-animation-name: lightSpeedIn; animation-name: lightSpeedIn; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } @-webkit-keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } @keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } .lightSpeedOut { -webkit-animation-name: lightSpeedOut; animation-name: lightSpeedOut; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } @-webkit-keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } .rotateIn { -webkit-animation-name: rotateIn; animation-name: rotateIn; } @-webkit-keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } .rotateInDownLeft { -webkit-animation-name: rotateInDownLeft; animation-name: rotateInDownLeft; } @-webkit-keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } .rotateInDownRight { -webkit-animation-name: rotateInDownRight; animation-name: rotateInDownRight; } @-webkit-keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } .rotateInUpLeft { -webkit-animation-name: rotateInUpLeft; animation-name: rotateInUpLeft; } @-webkit-keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); opacity: 1; } } .rotateInUpRight { -webkit-animation-name: rotateInUpRight; animation-name: rotateInUpRight; } @-webkit-keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } @keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } .rotateOut { -webkit-animation-name: rotateOut; animation-name: rotateOut; } @-webkit-keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } @keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } .rotateOutDownLeft { -webkit-animation-name: rotateOutDownLeft; animation-name: rotateOutDownLeft; } @-webkit-keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutDownRight { -webkit-animation-name: rotateOutDownRight; animation-name: rotateOutDownRight; } @-webkit-keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutUpLeft { -webkit-animation-name: rotateOutUpLeft; animation-name: rotateOutUpLeft; } @-webkit-keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } @keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } .rotateOutUpRight { -webkit-animation-name: rotateOutUpRight; animation-name: rotateOutUpRight; } @-webkit-keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } @keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } .hinge { -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-name: hinge; animation-name: hinge; } @-webkit-keyframes jackInTheBox { from { opacity: 0; -webkit-transform: scale(0.1) rotate(30deg); transform: scale(0.1) rotate(30deg); -webkit-transform-origin: center bottom; transform-origin: center bottom; } 50% { -webkit-transform: rotate(-10deg); transform: rotate(-10deg); } 70% { -webkit-transform: rotate(3deg); transform: rotate(3deg); } to { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } @keyframes jackInTheBox { from { opacity: 0; -webkit-transform: scale(0.1) rotate(30deg); transform: scale(0.1) rotate(30deg); -webkit-transform-origin: center bottom; transform-origin: center bottom; } 50% { -webkit-transform: rotate(-10deg); transform: rotate(-10deg); } 70% { -webkit-transform: rotate(3deg); transform: rotate(3deg); } to { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } .jackInTheBox { -webkit-animation-name: jackInTheBox; animation-name: jackInTheBox; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .rollIn { -webkit-animation-name: rollIn; animation-name: rollIn; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } @keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } .rollOut { -webkit-animation-name: rollOut; animation-name: rollOut; } @-webkit-keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } 50% { opacity: 1; } } @keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } 50% { opacity: 1; } } .zoomIn { -webkit-animation-name: zoomIn; animation-name: zoomIn; } @-webkit-keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomInDown { -webkit-animation-name: zoomInDown; animation-name: zoomInDown; } @-webkit-keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomInLeft { -webkit-animation-name: zoomInLeft; animation-name: zoomInLeft; } @-webkit-keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomInRight { -webkit-animation-name: zoomInRight; animation-name: zoomInRight; } @-webkit-keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } 60% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomInUp { -webkit-animation-name: zoomInUp; animation-name: zoomInUp; } @-webkit-keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } to { opacity: 0; } } @keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } to { opacity: 0; } } .zoomOut { -webkit-animation-name: zoomOut; animation-name: zoomOut; } @-webkit-keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } to { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } to { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomOutDown { -webkit-animation-name: zoomOutDown; animation-name: zoomOutDown; } @-webkit-keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); transform: scale(0.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } @keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); transform: scale(0.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } .zoomOutLeft { -webkit-animation-name: zoomOutLeft; animation-name: zoomOutLeft; } @-webkit-keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); transform: scale(0.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } @keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); transform: scale(0.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } .zoomOutRight { -webkit-animation-name: zoomOutRight; animation-name: zoomOutRight; } @-webkit-keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } to { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } @keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } to { opacity: 0; -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } .zoomOutUp { -webkit-animation-name: zoomOutUp; animation-name: zoomOutUp; } @-webkit-keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInDown { -webkit-animation-name: slideInDown; animation-name: slideInDown; } @-webkit-keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInLeft { -webkit-animation-name: slideInLeft; animation-name: slideInLeft; } @-webkit-keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInRight { -webkit-animation-name: slideInRight; animation-name: slideInRight; } @-webkit-keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInUp { -webkit-animation-name: slideInUp; animation-name: slideInUp; } @-webkit-keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .slideOutDown { -webkit-animation-name: slideOutDown; animation-name: slideOutDown; } @-webkit-keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .slideOutLeft { -webkit-animation-name: slideOutLeft; animation-name: slideOutLeft; } @-webkit-keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .slideOutRight { -webkit-animation-name: slideOutRight; animation-name: slideOutRight; } @-webkit-keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .slideOutUp { -webkit-animation-name: slideOutUp; animation-name: slideOutUp; } .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .animated.delay-1s { -webkit-animation-delay: 1s; animation-delay: 1s; } .animated.delay-2s { -webkit-animation-delay: 2s; animation-delay: 2s; } .animated.delay-3s { -webkit-animation-delay: 3s; animation-delay: 3s; } .animated.delay-4s { -webkit-animation-delay: 4s; animation-delay: 4s; } .animated.delay-5s { -webkit-animation-delay: 5s; animation-delay: 5s; } .animated.fast { -webkit-animation-duration: 800ms; animation-duration: 800ms; } .animated.faster { -webkit-animation-duration: 500ms; animation-duration: 500ms; } .animated.slow { -webkit-animation-duration: 2s; animation-duration: 2s; } .animated.slower { -webkit-animation-duration: 3s; animation-duration: 3s; } @media (print), (prefers-reduced-motion) { .animated { -webkit-animation: unset !important; animation: unset !important; -webkit-transition: none !important; transition: none !important; } }PK\6css/font-material.cssnu[/* fallback */ @font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; src: url(flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); } .material-icons { font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -moz-font-feature-settings: 'liga'; -moz-osx-font-smoothing: grayscale; } PK\oBlElEcss/mystyle.cssnu[/* styling opsi */ .form-signin { max-width: 500px; margin: 20px auto; background-color: #fff; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; background-color:rgba(255,255,255,.8); -webkit-border-radius: 5px; -moz-border-radius: 5px; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05); -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05); border-radius:8px; box-shadow:4px 4px 10px 0 rgba(20,20,20,.6); } #background-carousel{ position:fixed; width:100%; height:100%; z-index:-1; } .item { width:100%; height:100%; background-position:center center; background-size:cover; z-index:0; } #content-wrapper { position:absolute; z-index:1 !important; min-width:100%; min-height:100%; } .well { opacity:0.85 } .login-container { -ms-flex-align:center; align-items:center; background:#00000000; display:-ms-flexbox; display:flex; -ms-flex-direction:column; flex-direction:column; height:100vh; -ms-flex-pack:center; justify-content:center } /* WHAT IS NEW IN 3.3: "Added transforms to improve carousel performance in modern browsers." now override the 3.3 new styles for modern browsers & apply opacity */ @media all and (transform-3d), (-webkit-transform-3d) { .carousel-fade .carousel-inner > .item.next, .carousel-fade .carousel-inner > .item.active.right { opacity: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .carousel-fade .carousel-inner > .item.prev, .carousel-fade .carousel-inner > .item.active.left { opacity: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .carousel-fade .carousel-inner > .item.next.left, .carousel-fade .carousel-inner > .item.prev.right, .carousel-fade .carousel-inner > .item.active { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .sticky { position: -webkit-sticky; position: sticky; top: 0; padding: 50px; background-image: url("../img/bgx.jpg"); background-size:52px; background-repeat: repeat; height: 300px; } .overlap { margin-top: -260px } .funkyradio div { clear: both; overflow: hidden; } .funkyradio label { width: 100%; border-radius: 3px; border: 1px solid #D1D3D4; font-weight: normal; padding: 5px 0 5px 50px; } .funkyradio input[type="radio"]:empty, .funkyradio input[type="checkbox"]:empty { display: none; } .funkyradio input[type="radio"]:empty ~ label, .funkyradio input[type="checkbox"]:empty ~ label { position: relative; line-height: 2em; /*text-indent: 3.25em;*/ margin-top: 5px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .funkyradio input[type="radio"]:empty ~ label:before, .funkyradio input[type="checkbox"]:empty ~ label:before { position: absolute; display: block; top: 0; bottom: 0; left: 0; content: ''; width: 2.5em; background: #D1D3D4; border-radius: 3px 0 0 3px; } .funkyradio input[type="radio"]:hover:not(:checked) ~ label, .funkyradio input[type="checkbox"]:hover:not(:checked) ~ label { color: #888; } .funkyradio input[type="radio"]:hover:not(:checked) ~ label:before, .funkyradio input[type="checkbox"]:hover:not(:checked) ~ label:before { /*content: '\2714';*/ text-indent: .9em; color: #000; font-weight: bold; padding: 5px 0 0 0; } .funkyradio input[type="radio"]:checked ~ label, .funkyradio input[type="checkbox"]:checked ~ label { color: #fff; background: #86C186; font-weight: bold; } .funkyradio input[type="radio"]:checked ~ label:before, .funkyradio input[type="checkbox"]:checked ~ label:before { /*content: '\2714';*/ text-indent: .9em; color: #333; background-color: #ccc; padding: 5px 0 0 0; } .funkyradio input[type="radio"]:focus ~ label:before, .funkyradio input[type="checkbox"]:focus ~ label:before { box-shadow: 0 0 0 3px #999; } .funkyradio-default input[type="radio"]:checked ~ label:before, .funkyradio-default input[type="checkbox"]:checked ~ label:before { color: #333; background-color: #ccc; } .funkyradio-primary input[type="radio"]:checked ~ label:before, .funkyradio-primary input[type="checkbox"]:checked ~ label:before { color: #fff; background-color: #337ab7; } .funkyradio-success input[type="radio"]:checked ~ label:before, .funkyradio-success input[type="checkbox"]:checked ~ label:before { color: #fff; background-color: #5cb85c; } .funkyradio-danger input[type="radio"]:checked ~ label:before, .funkyradio-danger input[type="checkbox"]:checked ~ label:before { color: #fff; background-color: #d9534f; } .funkyradio-warning input[type="radio"]:checked ~ label:before, .funkyradio-warning input[type="checkbox"]:checked ~ label:before { color: #fff; background-color: #f0ad4e; } .funkyradio-info input[type="radio"]:checked ~ label:before, .funkyradio-info input[type="checkbox"]:checked ~ label:before { color: #fff; background-color: #5bc0de; } .huruf_opsi { margin-left: -36px; margin-top: 9px; position: absolute; } .btn.no-hover:hover { cursor:default !important; } /* shadow */ .shadow-sm { box-shadow: 0 .125rem .25rem 0 rgba(58, 59, 69, .2) !important } .my-shadow { box-shadow: 0 .15rem 1.75rem 0 rgba(58, 59, 69, .15) !important } .shadow-lg { box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important } .shadow-none { box-shadow: none !important } .input-group>.w-40 { flex: 0 0 40%; } .input-group>.input-group-prepend { flex: 0 0 15%; } .input-group .input-group-text { width: 100%; } .note-editor.note-frame, .note-editor.note-airframe { border: 1px solid #ffffff; } .bg-circle { width: 49px; height: 49px; text-align: center; padding: 5px 0 5px 10px; line-height: 2.00; border-radius: 30px; white-space: nowrap; } .btn-circle { width: 49px; height: 49px; text-align: center; padding: 5px 0; font-size: 20px; line-height: 2.00; border-radius: 30px; } .btn-oval { height: 49px; text-align: center; padding: 5px 0; font-size: 20px; line-height: 2.00; border-radius: 30px; } .btn-circle-micro { /*height: 19px;*/ display: inline-block; padding: .25em .4em; font-size: 75%; font-weight: 700; line-height: 1; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .80rem; } .btn-circle-sm { width: 35px; height: 35px; text-align: center; padding: 4px 0; font-size: 12pt; line-height: 1.65; border-radius: 30px; } .btn-oval-sm { height: 35px; text-align: center; font-size: 12pt; line-height: 1.65; border-radius: 30px; padding: .25em 1em; } .btn-circle-lg { width: 79px; height: 79px; text-align: center; padding: 13px 0; font-size: 30px; line-height: 2.00; border-radius: 70px; } .no-search .select2-search { display:none } .container-jawaban { display: block; position: relative; padding-left: 50px; margin-bottom: 30px; cursor: pointer; font-size: 18px; text-align: justify; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .container-jawaban input { position: absolute; opacity: 0; cursor: pointer; } .checkmark { position: absolute; top: -5px; left: 0; height: 40px; width: 40px; background-color: #eee; border-radius: 50%; border: 1px solid #ccc; font-size: 24px; line-height: 1.6; text-align: center; } .boxmark { position: absolute; top: -5px; left: 0; height: 40px; width: 40px; background-color: #eee; border-radius: 8px; border: 1px solid #ccc; font-size: 24px; line-height: 1.6; text-align: center; } .container-jawaban:hover input ~ .checkmark { background-color: #ccc; } .container-jawaban input:checked ~ .checkmark { background-color: #2196F3; color: #fff; } .container-jawaban:hover input ~ .boxmark { background-color: #ccc; } .container-jawaban input:checked ~ .boxmark { font-weight: bold; background-color: #2196F3; color: #fff; } .container-jawaban input:checked ~ .boxmark:before { content: "\2713"; } .checkbox-lg .custom-control-label::before, .checkbox-lg .custom-control-label::after { top: .8rem; width: 1.55rem; height: 1.55rem; } .checkbox-lg .custom-control-label { padding-top: 13px; padding-left: 6px; cursor: pointer; } .checkbox-xl .custom-control-label::before, .checkbox-xl .custom-control-label::after { top: 1.2rem; width: 1.85rem; height: 1.85rem; } .checkbox-xl .custom-control-label { padding-top: 23px; padding-left: 20px; cursor: pointer; } ul.media-list li img { width: 100px; height: 100px } ul.media-list li { height: 102px } ul.media-list li video { width: 100px; position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%) } div#hint_brand .modal-dialog { top: 110px; width: 567px; max-width: 100% } li.myupload span { position: relative; width: 100px; height: 100px; display: block; background: #fff } li.myupload span input { opacity: 0; position: absolute; top: 0; bottom: 0; left: 0; right: 0 } li.myupload span i { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ccc; font-size: 54px } ul.media-list li { float: left; border: 1px solid #ccc; position: relative; margin: 0 5px 5px 0; width: 102px } ul.media-list li:last-child { margin-right: 0 } .post-thumb { position: absolute; background: rgba(0, 0, 0, 0.3); left: 0; top: 0; right: 0; bottom: 0; display: none } li .title-thumb { position: absolute; height: 28px; width: 100px; padding: 4px; background: rgba(0, 0, 0, 0.6); bottom: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: white; } ul.media-list li:hover .post-thumb { display: block } a.remove-pic { position: absolute; top: 5px; right: 5px; font-size: 12px; color: #fff; border: 1px solid #fff; border-radius: 50%; display: block; height: 25px; width: 25px; text-align: center; padding: 3px 0 } .inner-post-thumb { position: relative } .user-post-text-wrap { position: relative } .user-pic-post { position: absolute; width: 50px; height: 50px; top: 0; left: 0 } .user-pic-post img { width: 100% } .user-txt-post { padding: 0 0 0 65px } textarea.form-control.upostTextarea { border: 0; box-shadow: none; height: 85px; resize: none } .user-post-text-wrap { border-bottom: 1px solid #ccc; margin: 0 0 15px } .user-post-btn-wrap { margin: 25px 0 0 } ul.btn-nav { list-style: none; padding: 0; margin: 0 } ul.btn-nav li { position: relative; float: left; margin: 0 10px 0 0 } ul.btn-nav li span input { position: absolute; left: 0; top: 0; height: 100%; width: 100%; z-index: 9; opacity: 0; filter: alpha(opacity=100) } ul.media-list { list-style: none; padding: 0; margin: 0 } input.picupload { width: 100px; height: 100px } .select2-container { width: auto; } .bstreeview { position: relative; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; min-width: 0; word-wrap: break-word; background-color: #fff; background-clip: border-box; border: 1px solid rgba(0,0,0,.125); border-radius: .25rem; padding: 0; overflow: hidden; } .bstreeview .list-group { margin-bottom: 0; } .bstreeview .list-group-item { border-radius: 0; border-width: 1px 0 0 0; padding-top: 0.5rem; padding-bottom: 0.5rem; cursor: pointer; } .bstreeview .list-group-item:hover { background-color:#dee2e6; } .bstreeview > .list-group-item:first-child { border-top-width: 0; } .bstreeview .state-icon { margin-right: 8px; width: 12px; text-align: center; } .bstreeview .item-icon { margin-right: 5px; } .tbl-vertical { white-space: nowrap; transform: rotate(-90deg); text-align: left; bottom: 4px; padding: 1px 1px 1px 10px; width: 30px; } /*from bs 3*/ @media (max-width:767px){ .hidden-xs{display:none!important} } @media (min-width:768px) and (max-width:991px){ .hidden-sm{display:none!important} } @media (min-width:992px) and (max-width:1199px){ .hidden-md{display:none!important} } @media (min-width:1200px){ .hidden-lg{display:none!important} } .img-zoom { transition: transform .2s; margin: 0 auto; } .img-zoom:hover { -ms-transform: scale(2); /* IE 9 */ -webkit-transform: scale(2); /* Safari 3-8 */ transform: scale(2); } div.list-jadwal-ujian div:nth-child(even) { background: white; padding-left: .25rem!important; padding-right: .25rem!important; color: black; } div.list-jadwal-ujian div:nth-child(odd) { background: #dee2e6; padding-left: .25rem!important; padding-right: .25rem!important; color: black; } #guru.dataTable.no-footer{ border-bottom: unset; } #guru tbody td { display: block; border: unset; } #guru>tbody>tr>td{ border-top: unset; } .hrspan { position: relative; margin-bottom: 20px; width: 100%; text-align: center; } .hrspan span { position: absolute; top: -11px; background: #fff; padding: 0 20px; font-weight: bold; font-size: 16px; } div.hr-or { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee; text-align: center; height: 0px; line-height: 0px; } div.hr-or:before { content: 'OR'; background-color: #fff; } div.hr { margin-top: 20px; margin-bottom: 12px; margin-right: 20px; border: 0; border-top: 1px solid rgba(0, 0, 0, 0.1); height: 0px; line-height: 0px; } .hr-title { background-color: #fff; font-weight: bold; padding: 0 4px 0 0; } .hr-text { line-height: 1em; position: relative; outline: 0; border: 0; color: black; text-align: center; height: 1.5em; opacity: .5; } .hr-text:before { content: ''; background: linear-gradient(to right, transparent, #818078, transparent); position: absolute; left: 0; top: 50%; width: 100%; height: 1px; } .hr-text:after { content: attr(data-content); position: relative; display: inline-block; padding: 0 .5em; line-height: 1.5em; color: #818078; background-color: #fcfcfa; } .btn-disabled, .btn-disabled[disabled] { opacity: .65; cursor: not-allowed; } .crop-text-1 { -webkit-line-clamp: 1; overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; } .crop-text-2 { -webkit-line-clamp: 2; overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; } .crop-text-table { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; max-width: 300px; } .rTable { display: table; width: 100%; } .rTableRow { display: table-row; } .rTableHeading { display: table-header-group; background-color: #ddd; } .rTableCell, .rTableHead { display: table-cell; border-top: 10px solid #EBEBEB; } .rTableHeading { display: table-header-group; background-color: #ddd; font-weight: bold; } .rTableFoot { display: table-footer-group; font-weight: bold; background-color: #ddd; } .rTableBody { display: table-row-group; } .sTable { display: table; width: 100%; } .sTableRow { display: table-row; } .sTableHeading { display: table-header-group; background-color: #ddd; } .sTableCell, .sTableHead { display: table-cell; padding: 3px 10px; border: 1px solid #999999; } .sTableHeading { display: table-header-group; background-color: #ddd; font-weight: bold; } .sTableFoot { display: table-footer-group; font-weight: bold; background-color: #ddd; } .sTableBody { display: table-row-group; } connection { border: 2px solid #b51c29; border-radius: 31px; } .jodohkan ul { list-style: none; margin-left: 0px; padding-left: 0px; font-weight: normal; } .jodohkan li { border: solid 1px grey; padding: 5px 2px 5px 8px; margin-top: 10px; margin-bottom: 10px; user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; cursor: pointer; background-color: #fff; color: black; border-radius: 4px; text-overflow: ellipsis; overflow: hidden; } button.btn.btn-icon { display: flex; } button.btn.btn-icon > i:first-child:not(:only-child) { margin-right: 0.75rem; } button.btn.btn-icon > span + i { margin-left: 0.75rem; } button.btn.shaded.btn-icon { display: flex; position: relative; } button.btn.shaded.btn-icon.shaded > i { display: flex; align-items: center; position: absolute; z-index: 100; top: 0; border-radius: 0; padding: 0 0.4rem; height: 100%; } button.btn.shaded.btn-icon.shaded > i::before { background-color: rgba(6, 7, 8, 0.3); content: ''; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -10; } button.btn.shaded.btn-icon.left.shaded { padding-left: 2.7rem; } button.btn.shaded.btn-icon.left.shaded > i { left: 0; border-top-left-radius: inherit; border-bottom-left-radius: inherit; margin-right: 0.75rem; } button.btn.shaded.btn-icon.right.shaded { padding-right: 2.7rem; } button.btn.shaded.btn-icon.right.shaded > i { right: 0; border-top-right-radius: inherit; border-bottom-right-radius: inherit; margin-left: 0.75rem; } button.btn.shaded.btn-icon.primary > i::before { background-color: rgba(0, 86, 179, 0.5); } button.btn.shaded.btn-icon.danger > i::before { background-color: rgba(167, 29, 42, 0.5); } button.btn.shaded.btn-icon.info > i::before { background-color: rgba(15, 102, 116, 0.5); } button.btn.shaded.btn-icon.outline.primary > i::before { background-color: rgba(77, 163, 255, 0.3); } button.btn.shaded.btn-icon.outline.danger > i::before { background-color: rgba(231, 118, 129, 0.3); } button.btn.shaded.btn-icon.outline.info > i::before { background-color: rgba(54, 206, 230, 0.3); } /* .btn-label {position: relative;left: -12px;display: inline-block;padding: 6px 12px;background: rgba(0,0,0,0.15);border-radius: 3px 0 0 3px;} .btn-labeled {padding-top: 0;padding-bottom: 0;} .btn { margin-bottom:10px; } */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-results-button, input[type="search"]::-webkit-search-results-decoration { -webkit-appearance:none; }PK\bcss/stylised.cssnu[@charset "UTF-8"; video { width: 100%; height: auto; } /* TYPOGRAPHY */ .stylised-player h3, .stylised-player p { margin: 0; padding: 0; font-weight: normal; } .stylised-player h3 { font-size: 20px; color: #1F1F1F; font-family: "Montserrat-Medium", Arial; line-height: 27px; letter-spacing: -0.25px } .stylised-player p { font-size: 20px; color: #000000; font-family: "Montserrat-Light", Arial; line-height: 27px; padding-bottom: 24px; } /* STYLISED PLAYER */ .stylised-player { max-width: 100%; height: 40px; margin: 10px 0; background-color: #F5F3F0; position: relative; box-shadow: 1px 2px 2px 1px rgba(0, 0, 0, 0.10); } .stylised-player p { color: black; text-align: center; position: absolute; top: 8px; left: 40px; right: 40px; z-index: 1; cursor: pointer; } .stylised-play, .stylised-pause { width: 40px; height: 40px; background-color: #F7B932; position: absolute; left: 0; text-align: center; padding-top: 24px; padding-left: 20px; cursor: pointer; } .stylised-restart { width: 40px; height: 40px; background-color: #F7B932; position: absolute; right: 0; background-image: url(../img/icon_restart_black.png); background-size: 40px 40px; background-repeat: no-repeat; cursor: pointer; } .stylised-time-wrapper { height: 40px; position: absolute; left: 40px; right: 40px; cursor: pointer; } .stylised-time-progress { height: 40px; background-color: #EF8609; cursor: pointer; } .stylised-play:active, .stylised-pause:active, .stylised-restart:active { background-color: #EF8609; } .stylised-play-icon { position: absolute; top: 4px; left: 4px; width: 32px; height: 32px; background-image: url(../img/icon_play_black.png); background-size: 32px 32px; background-repeat: no-repeat; } .stylised-pause-icon { position: absolute; top: 4px; left: 4px; width: 32px; height: 32px; background-image: url(../img/icon_pause_black.png); background-size: 32px 32px; background-repeat: no-repeat; } PK\<css/multi-step.cssnu[.multi-step, .multi-step * { -webkit-box-sizing: border-box; box-sizing: border-box; font-family: Roboto, sans-serif; } .multi-step *::after { -webkit-box-sizing: border-box; box-sizing: border-box; } .multi-step *::before { -webkit-box-sizing: border-box; box-sizing: border-box; } .multi-step .btn { -webkit-box-shadow: rgba(0, 0, 0, 0.16) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 2px 10px 0px; box-shadow: rgba(0, 0, 0, 0.16) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 2px 10px 0px; cursor: pointer; text-transform: uppercase; white-space: normal; overflow-wrap: break-word; color: white; line-height: 1.5; -webkit-transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, -webkit-box-shadow 0.15s ease-in-out 0s; transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, -webkit-box-shadow 0.15s ease-in-out 0s; -o-transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s, -webkit-box-shadow 0.15s ease-in-out 0s; margin: 0.375rem; border-width: 0px; border-style: initial; border-color: initial; -webkit-border-image: initial; -o-border-image: initial; border-image: initial; -webkit-border-radius: 0.125rem; border-radius: 0.125rem; position: relative; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; font-size: 0.64rem; padding: 0.5rem 1.6rem; } .multi-step .card-step-header { -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } .multi-step .card-step-header .card-step-title { text-align: center; -webkit-box-flex: 1; -webkit-flex: 1 0 auto; -ms-flex: 1 0 auto; flex: 1 0 auto; font-size: 0.8rem; } .multi-step .card-step-header .card-steps { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; padding-top: 0.3rem; } .multi-step .card-step-header .card-steps .step { width: 100%; position: relative; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } .multi-step .card-step-header .card-steps .step:first-child:before { width: 50% !important; left: unset; right: unset; -webkit-transform: translateX(51%); -ms-transform: translateX(51%); transform: translateX(51%); } .multi-step .card-step-header .card-steps .step:first-child:after { width: 50% !important; left: unset; right: unset; -webkit-transform: translateX(51%); -ms-transform: translateX(51%); transform: translateX(51%); } .multi-step .card-step-header .card-steps .step:last-child:before { width: 50% !important; left: 0; } .multi-step .card-step-header .card-steps .step:last-child:after { width: 50% !important; left: 0; } .multi-step .card-step-header .card-steps .step:before { position: absolute; border: 1px solid; width: 100%; height: 1px; display: block; z-index: 1; top: 11px; content: ''; } .multi-step .card-step-header .card-steps .step:after { position: absolute; border: 1px solid; width: 0%; height: 1px; display: block; z-index: 1; top: 11px; left: 0; content: ''; -webkit-transition: 0.2s linear; -o-transition: 0.2s linear; transition: 0.2s linear; } .multi-step .card-step-header .card-steps .step.current:after { width: calc(50% - 10px); -webkit-transition: 0.2s linear; -o-transition: 0.2s linear; transition: 0.2s linear; } .multi-step .card-step-header .card-steps .step.current:first-child:after { width: 0% !important; -webkit-transition: 0.2s linear; -o-transition: 0.2s linear; transition: 0.2s linear; } .multi-step .card-step-header .card-steps .step.completed:after { width: 100%; -webkit-transition: 0.2s linear; -o-transition: 0.2s linear; transition: 0.2s linear; } .multi-step .card-step-header .card-steps .step.skipped:after { width: 100%; -webkit-transition: 0.2s linear; -o-transition: 0.2s linear; transition: 0.2s linear; } .multi-step .card-step-header .card-steps .step .dot { height: 20px; width: 20px; -webkit-border-radius: 20px; border-radius: 20px; display: inline-block; position: relative; top: 0.125em; z-index: 2; margin: auto; border: 1px solid; } .multi-step .card-step-header .card-steps .step .dot:before { content: ''; position: absolute; top: -1px; left: -1px; width: 20px; height: 20px; -webkit-transform: scale(0.75); -ms-transform: scale(0.75); transform: scale(0.75); -webkit-border-radius: 20px; border-radius: 20px; } .multi-step .card-step-header .card-steps .step .label { font-size: 12px; display: block; margin: 0; text-align: center; -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; margin-top: 0.5em; margin-bottom: 0.5em; } .multi-step .card-step-body .step-content-container { position: relative; height: 100%; } .multi-step .card-step-body .step-content-container .step-content { display: none; position: relative; top: 0; left: 0; width: 100%; } .multi-step .card-step-body .step-content-container .step-content .content-inner { position: relative; } .multi-step .card-step-body .step-content-container .step-content.active { display: inline-block; } .multi-step .card-step-footer .btn-prev { margin-right: auto; } .multi-step .card-step-footer .btn-skip { display: none; } .multi-step .card-step-footer .btn-skip.skippable { display: block; } .multi-step .card-step-footer .disabled, .multi-step .card-step-footer :disabled { cursor: not-allowed; } .flex-center { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; height: 100%; } .flex-center p { margin: 0; } .flex-center ul { text-align: center; } .flex-center ul li { margin-bottom: 1rem; } .flex-center ul li:last-of-type { margin-bottom: 0; } PK\ index.htmlnu[ 404 - Resource not found

WAK WAWWWW !!!

"Ketika kita sakit hati atas perbuatan orang lain, pada saat yang sama kita belajar untuk menjaga perasaan orang lain"

PK\wwjs/excel/exceljs.jsnu[/*! ExcelJS 21-08-2021 */ !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).ExcelJS=t()}}((function(){return function t(e,r,n){function i(a,s){if(!r[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[a]={exports:{}};e[a][0].call(f.exports,(function(t){return i(e[a][1][t]||t)}),f,f.exports,t,e,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a2&&void 0!==arguments[2]?arguments[2]:0;if(n(this,t),r)if("string"==typeof r){var a=o.decodeAddress(r);this.nativeCol=a.col+i,this.nativeColOff=0,this.nativeRow=a.row+i,this.nativeRowOff=0}else void 0!==r.nativeCol?(this.nativeCol=r.nativeCol||0,this.nativeColOff=r.nativeColOff||0,this.nativeRow=r.nativeRow||0,this.nativeRowOff=r.nativeRowOff||0):void 0!==r.col?(this.col=r.col+i,this.row=r.row+i):(this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0);else this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0;this.worksheet=e}var e,r,a;return e=t,a=[{key:"asInstance",value:function(e){return e instanceof t||null==e?e:new t(e)}}],(r=[{key:"col",get:function(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth},set:function(t){this.nativeCol=Math.floor(t),this.nativeColOff=Math.floor((t-this.nativeCol)*this.colWidth)}},{key:"row",get:function(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight},set:function(t){this.nativeRow=Math.floor(t),this.nativeRowOff=Math.floor((t-this.nativeRow)*this.rowHeight)}},{key:"colWidth",get:function(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(1e4*this.worksheet.getColumn(this.nativeCol+1).width):64e4}},{key:"rowHeight",get:function(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(1e4*this.worksheet.getRow(this.nativeRow+1).height):18e4}},{key:"model",get:function(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff}},set:function(t){this.nativeCol=t.nativeCol,this.nativeColOff=t.nativeColOff,this.nativeRow=t.nativeRow,this.nativeRowOff=t.nativeRowOff}}])&&i(e.prototype,r),a&&i(e,a),t}();e.exports=a},{"../utils/col-cache":19}],3:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var r=0;r0||this.type===t.Types.Merge}},{key:"master",get:function(){return this.type===t.Types.Merge?this._value.master:this}},{key:"isHyperlink",get:function(){return this._value.type===t.Types.Hyperlink}},{key:"hyperlink",get:function(){return this._value.hyperlink}},{key:"value",get:function(){return this._value.value},set:function(e){this.type!==t.Types.Merge?(this._value.release(),this._value=S.create(S.getType(e),this,e)):this._value.master.value=e}},{key:"note",get:function(){return this._comment&&this._comment.note},set:function(t){this._comment=new f(t)}},{key:"text",get:function(){return this._value.toString()}},{key:"html",get:function(){return s.escapeHtml(this.text)}},{key:"formula",get:function(){return this._value.formula}},{key:"result",get:function(){return this._value.result}},{key:"formulaType",get:function(){return this._value.formulaType}},{key:"fullAddress",get:function(){return{sheetName:this._row.worksheet.name,address:this.address,row:this.row,col:this.col}}},{key:"name",get:function(){return this.names[0]},set:function(t){this.names=[t]}},{key:"names",get:function(){return this.workbook.definedNames.getNamesEx(this.fullAddress)},set:function(t){var e=this,r=this.workbook.definedNames;r.removeAllNames(this.fullAddress),t.forEach((function(t){r.addEx(e.fullAddress,t)}))}},{key:"_dataValidations",get:function(){return this.worksheet.dataValidations}},{key:"dataValidation",get:function(){return this._dataValidations.find(this.address)},set:function(t){this._dataValidations.add(this.address,t)}},{key:"model",get:function(){var t=this._value.model;return t.style=this.style,this._comment&&(t.comment=this._comment.model),t},set:function(t){if(this._value.release(),this._value=S.create(t.type,this),this._value.model=t,t.comment)switch(t.comment.type){case"note":this._comment=f.fromModel(t.comment)}t.style?this.style=t.style:this.style={}}}]),t}();l.Types=u.ValueType;var h=function(){function t(e){n(this,t),this.model={address:e.address,type:l.Types.Null}}return o(t,[{key:"toCsvString",value:function(){return""}},{key:"release",value:function(){}},{key:"toString",value:function(){return""}},{key:"value",get:function(){return null},set:function(t){}},{key:"type",get:function(){return l.Types.Null}},{key:"effectiveType",get:function(){return l.Types.Null}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),d=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Number,value:r}}return o(t,[{key:"toCsvString",value:function(){return this.model.value.toString()}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value.toString()}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.Number}},{key:"effectiveType",get:function(){return l.Types.Number}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),p=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:r}}return o(t,[{key:"toCsvString",value:function(){return'"'.concat(this.model.value.replace(/"/g,'""'),'"')}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.String}},{key:"effectiveType",get:function(){return l.Types.String}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),m=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:r}}return o(t,[{key:"toString",value:function(){return this.model.value.richText.map((function(t){return t.text})).join("")}},{key:"toCsvString",value:function(){return'"'.concat(this.text.replace(/"/g,'""'),'"')}},{key:"release",value:function(){}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.RichText}},{key:"effectiveType",get:function(){return l.Types.RichText}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),y=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Date,value:r}}return o(t,[{key:"toCsvString",value:function(){return this.model.value.toISOString()}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value.toString()}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.Date}},{key:"effectiveType",get:function(){return l.Types.Date}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),b=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Hyperlink,text:r?r.text:void 0,hyperlink:r?r.hyperlink:void 0},r&&r.tooltip&&(this.model.tooltip=r.tooltip)}return o(t,[{key:"toCsvString",value:function(){return this.model.hyperlink}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.text}},{key:"value",get:function(){var t={text:this.model.text,hyperlink:this.model.hyperlink};return this.model.tooltip&&(t.tooltip=this.model.tooltip),t},set:function(t){this.model={text:t.text,hyperlink:t.hyperlink},t.tooltip&&(this.model.tooltip=t.tooltip)}},{key:"text",get:function(){return this.model.text},set:function(t){this.model.text=t}},{key:"hyperlink",get:function(){return this.model.hyperlink},set:function(t){this.model.hyperlink=t}},{key:"type",get:function(){return l.Types.Hyperlink}},{key:"effectiveType",get:function(){return l.Types.Hyperlink}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),v=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Merge,master:r?r.address:void 0},this._master=r,r&&r.addMergeRef()}return o(t,[{key:"isMergedTo",value:function(t){return t===this._master}},{key:"toCsvString",value:function(){return""}},{key:"release",value:function(){this._master.releaseMergeRef()}},{key:"toString",value:function(){return this.value.toString()}},{key:"value",get:function(){return this._master.value},set:function(t){t instanceof l?(this._master&&this._master.releaseMergeRef(),t.addMergeRef(),this._master=t):this._master.value=t}},{key:"master",get:function(){return this._master}},{key:"type",get:function(){return l.Types.Merge}},{key:"effectiveType",get:function(){return this._master.effectiveType}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),g=function(){function t(e,r){n(this,t),this.cell=e,this.model={address:e.address,type:l.Types.Formula,shareType:r?r.shareType:void 0,ref:r?r.ref:void 0,formula:r?r.formula:void 0,sharedFormula:r?r.sharedFormula:void 0,result:r?r.result:void 0}}return o(t,[{key:"_copyModel",value:function(t){var e={},r=function(r){var n=t[r];n&&(e[r]=n)};return r("formula"),r("result"),r("ref"),r("shareType"),r("sharedFormula"),e}},{key:"validate",value:function(t){switch(S.getType(t)){case l.Types.Null:case l.Types.String:case l.Types.Number:case l.Types.Date:break;case l.Types.Hyperlink:case l.Types.Formula:default:throw new Error("Cannot process that type of result value")}}},{key:"_getTranslatedFormula",value:function(){if(!this._translatedFormula&&this.model.sharedFormula){var t=this.cell.worksheet.findCell(this.model.sharedFormula);this._translatedFormula=t&&c(t.formula,t.address,this.model.address)}return this._translatedFormula}},{key:"toCsvString",value:function(){return"".concat(this.model.result||"")}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.result?this.model.result.toString():""}},{key:"value",get:function(){return this._copyModel(this.model)},set:function(t){this.model=this._copyModel(t)}},{key:"dependencies",get:function(){return{ranges:this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g),cells:this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g,"").match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}/g)}}},{key:"formula",get:function(){return this.model.formula||this._getTranslatedFormula()},set:function(t){this.model.formula=t}},{key:"formulaType",get:function(){return this.model.formula?u.FormulaType.Master:this.model.sharedFormula?u.FormulaType.Shared:u.FormulaType.None}},{key:"result",get:function(){return this.model.result},set:function(t){this.model.result=t}},{key:"type",get:function(){return l.Types.Formula}},{key:"effectiveType",get:function(){var t=this.model.result;return null==t?u.ValueType.Null:t instanceof String||"string"==typeof t?u.ValueType.String:"number"==typeof t?u.ValueType.Number:t instanceof Date?u.ValueType.Date:t.text&&t.hyperlink?u.ValueType.Hyperlink:t.formula?u.ValueType.Formula:u.ValueType.Null}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),w=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.SharedString,value:r}}return o(t,[{key:"toCsvString",value:function(){return this.model.value.toString()}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value.toString()}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.SharedString}},{key:"effectiveType",get:function(){return l.Types.SharedString}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),_=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Boolean,value:r}}return o(t,[{key:"toCsvString",value:function(){return this.model.value?1:0}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value.toString()}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.Boolean}},{key:"effectiveType",get:function(){return l.Types.Boolean}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),k=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Error,value:r}}return o(t,[{key:"toCsvString",value:function(){return this.toString()}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value.error.toString()}},{key:"value",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:"type",get:function(){return l.Types.Error}},{key:"effectiveType",get:function(){return l.Types.Error}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),x=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:JSON.stringify(r),rawValue:r}}return o(t,[{key:"toCsvString",value:function(){return this.model.value}},{key:"release",value:function(){}},{key:"toString",value:function(){return this.model.value}},{key:"value",get:function(){return this.model.rawValue},set:function(t){this.model.rawValue=t,this.model.value=JSON.stringify(t)}},{key:"type",get:function(){return l.Types.String}},{key:"effectiveType",get:function(){return l.Types.String}},{key:"address",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),S={getType:function(t){return null==t?l.Types.Null:t instanceof String||"string"==typeof t?l.Types.String:"number"==typeof t?l.Types.Number:"boolean"==typeof t?l.Types.Boolean:t instanceof Date?l.Types.Date:t.text&&t.hyperlink?l.Types.Hyperlink:t.formula||t.sharedFormula?l.Types.Formula:t.richText?l.Types.RichText:t.sharedString?l.Types.SharedString:t.error?l.Types.Error:l.Types.JSON},types:[{t:l.Types.Null,f:h},{t:l.Types.Number,f:d},{t:l.Types.String,f:p},{t:l.Types.Date,f:y},{t:l.Types.Hyperlink,f:b},{t:l.Types.Formula,f:g},{t:l.Types.Merge,f:v},{t:l.Types.JSON,f:x},{t:l.Types.SharedString,f:w},{t:l.Types.RichText,f:m},{t:l.Types.Boolean,f:_},{t:l.Types.Error,f:k}].reduce((function(t,e){return t[e.t]=e.f,t}),[]),create:function(t,e,r){var n=this.types[t];if(!n)throw new Error("Could not create Value of type ".concat(t));return new n(e,r)}};e.exports=l},{"../utils/col-cache":19,"../utils/shared-formula":22,"../utils/under-dash":25,"./enums":7,"./note":9}],4:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r=this._worksheet.properties.outlineLevelCol)}},{key:"isDefault",get:function(){if(this.isCustomWidth)return!1;if(this.hidden)return!1;if(this.outlineLevel)return!1;var t=this.style;return!t||!(t.font||t.numFmt||t.alignment||t.border||t.fill||t.protection)}},{key:"headerCount",get:function(){return this.headers.length}},{key:"values",get:function(){var t=[];return this.eachCell((function(e,r){e&&e.type!==o.ValueType.Null&&(t[r]=e.value)})),t},set:function(t){var e=this;if(t){var r=this.number,n=0;t.hasOwnProperty("0")&&(n=1),t.forEach((function(t,i){e._worksheet.getCell(i+n,r).value=t}))}}},{key:"numFmt",get:function(){return this.style.numFmt},set:function(t){this._applyStyle("numFmt",t)}},{key:"font",get:function(){return this.style.font},set:function(t){this._applyStyle("font",t)}},{key:"alignment",get:function(){return this.style.alignment},set:function(t){this._applyStyle("alignment",t)}},{key:"protection",get:function(){return this.style.protection},set:function(t){this._applyStyle("protection",t)}},{key:"border",get:function(){return this.style.border},set:function(t){this._applyStyle("border",t)}},{key:"fill",get:function(){return this.style.fill},set:function(t){this._applyStyle("fill",t)}}])&&n(e.prototype,r),s&&n(e,s),t}();e.exports=s},{"../utils/col-cache":19,"../utils/under-dash":25,"./enums":7}],5:[function(t,e,r){"use strict";function n(t,e){for(var r=0;rthis.bottom)&&(this.bottom=r),(!this.model.right||n>this.right)&&(this.right=n)}},{key:"expandRow",value:function(t){if(t){var e=t.dimensions,r=t.number;e&&this.expand(r,e.min,r,e.max)}}},{key:"expandToAddress",value:function(t){var e=o.decodeEx(t);this.expand(e.row,e.col,e.row,e.col)}},{key:"toString",value:function(){return this.range}},{key:"intersects",value:function(t){return!(t.sheetName&&this.sheetName&&t.sheetName!==this.sheetName||t.bottomthis.bottom||t.rightthis.right)}},{key:"contains",value:function(t){var e=o.decodeEx(t);return this.containsEx(e)}},{key:"containsEx",value:function(t){return(!t.sheetName||!this.sheetName||t.sheetName===this.sheetName)&&t.row>=this.top&&t.row<=this.bottom&&t.col>=this.left&&t.col<=this.right}},{key:"forEachAddress",value:function(t){for(var e=this.left;e<=this.right;e++)for(var r=this.top;r<=this.bottom;r++)t(o.encodeAddress(r,e),r,e)}},{key:"top",get:function(){return this.model.top||1},set:function(t){this.model.top=t}},{key:"left",get:function(){return this.model.left||1},set:function(t){this.model.left=t}},{key:"bottom",get:function(){return this.model.bottom||1},set:function(t){this.model.bottom=t}},{key:"right",get:function(){return this.model.right||1},set:function(t){this.model.right=t}},{key:"sheetName",get:function(){return this.model.sheetName},set:function(t){this.model.sheetName=t}},{key:"_serialisedSheetName",get:function(){var t=this.model.sheetName;return t?/^[a-zA-Z0-9]*$/.test(t)?"".concat(t,"!"):"'".concat(t,"'!"):""}},{key:"tl",get:function(){return o.n2l(this.left)+this.top}},{key:"$t$l",get:function(){return"$".concat(o.n2l(this.left),"$").concat(this.top)}},{key:"br",get:function(){return o.n2l(this.right)+this.bottom}},{key:"$b$r",get:function(){return"$".concat(o.n2l(this.right),"$").concat(this.bottom)}},{key:"range",get:function(){return"".concat(this._serialisedSheetName+this.tl,":").concat(this.br)}},{key:"$range",get:function(){return"".concat(this._serialisedSheetName+this.$t$l,":").concat(this.$b$r)}},{key:"shortRange",get:function(){return this.count>1?this.range:this._serialisedSheetName+this.tl}},{key:"$shortRange",get:function(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l}},{key:"count",get:function(){return(1+this.bottom-this.top)*(1+this.right-this.left)}}])&&i(e.prototype,r),a&&i(e,a),t}();e.exports=a},{"../utils/col-cache":19}],11:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r2?n-2:0),o=2;o0)for(a=f;a>=r;a--)(s=this._cells[a-1])?((u=this.getCell(a+c)).value=s.value,u.style=s.style,u._comment=s._comment):this._cells[a+c-1]=void 0;for(a=0;ar.col)&&(t=r.col),e0?{min:t,max:e}:null}},{key:"numFmt",get:function(){return this.style.numFmt},set:function(t){this._applyStyle("numFmt",t)}},{key:"font",get:function(){return this.style.font},set:function(t){this._applyStyle("font",t)}},{key:"alignment",get:function(){return this.style.alignment},set:function(t){this._applyStyle("alignment",t)}},{key:"protection",get:function(){return this.style.protection},set:function(t){this._applyStyle("protection",t)}},{key:"border",get:function(){return this.style.border},set:function(t){this._applyStyle("border",t)}},{key:"fill",get:function(){return this.style.fill},set:function(t){this._applyStyle("fill",t)}},{key:"hidden",get:function(){return!!this._hidden},set:function(t){this._hidden=t}},{key:"outlineLevel",get:function(){return this._outlineLevel||0},set:function(t){this._outlineLevel=t}},{key:"collapsed",get:function(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow)}},{key:"model",get:function(){var t=[],e=0,r=0;return this._cells.forEach((function(n){if(n){var i=n.model;i&&((!e||e>n.col)&&(e=n.col),r0,"Table must be on valid row"),n(s>0,"Table must be on valid col");var u=this.width,c=this.filterHeight,f=this.tableHeight;e.autoFilterRef=a.encode(o,s,o+c-1,s+u-1),e.tableRef=a.encode(o,s,o+f-1,s+u-1),e.columns.forEach((function(e,i){n(e.name,"Column ".concat(i," must have a name")),0===i?r(e,"totalsRowLabel","Total"):(r(e,"totalsRowFunction","none"),e.totalsRowFormula=t.getFormula(e))}))}},{key:"store",value:function(){var t=this,e=function(t,e){e&&Object.keys(e).forEach((function(r){t[r]=e[r]}))},r=this.worksheet,n=this.table,i=n.tl,o=i.row,a=i.col,s=0;if(n.headerRow){var u=r.getRow(o+s++);n.columns.forEach((function(t,r){var n=t.style,i=t.name,o=u.getCell(a+r);o.value=i,e(o,n)}))}if(n.rows.forEach((function(t){var i=r.getRow(o+s++);t.forEach((function(t,r){var o=i.getCell(a+r);o.value=t,e(o,n.columns[r].style)}))})),n.totalsRow){var c=r.getRow(o+s++);n.columns.forEach((function(r,n){var i=c.getCell(a+n);if(0===n)i.value=r.totalsRowLabel;else{var o=t.getFormula(r);i.value=o?{formula:r.totalsRowFormula,result:r.totalsRowResult}:null}e(i,r.style)}))}}},{key:"load",value:function(t){var e=this,r=this.table,n=r.tl,i=n.row,o=n.col,a=0;if(r.headerRow){var s=t.getRow(i+a++);r.columns.forEach((function(t,e){s.getCell(o+e).value=t.name}))}if(r.rows.forEach((function(e){var r=t.getRow(i+a++);e.forEach((function(t,e){r.getCell(o+e).value=t}))})),r.totalsRow){var u=t.getRow(i+a++);r.columns.forEach((function(t,r){var n=u.getCell(o+r);0===r?n.value=t.totalsRowLabel:e.getFormula(t)&&(n.value={formula:t.totalsRowFormula,result:t.totalsRowResult})}))}}},{key:"cacheState",value:function(){this._cache||(this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight})}},{key:"commit",value:function(){if(this._cache){this.validate();var t=a.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref)for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.rows.splice(t,e)}},{key:"getColumn",value:function(t){var e=this.table.columns[t];return new s(this,e,t)}},{key:"addColumn",value:function(t,e,r){this.cacheState(),void 0===r?(this.table.columns.push(t),this.table.rows.forEach((function(t,r){t.push(e[r])}))):(this.table.columns.splice(r,0,t),this.table.rows.forEach((function(t,n){t.splice(r,0,e[n])})))}},{key:"removeColumns",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.columns.splice(t,e),this.table.rows.forEach((function(r){r.splice(t,e)}))}},{key:"_assign",value:function(t,e,r){this.cacheState(),t[e]=r}},{key:"width",get:function(){return this.table.columns.length}},{key:"height",get:function(){return this.table.rows.length}},{key:"filterHeight",get:function(){return this.height+(this.table.headerRow?1:0)}},{key:"tableHeight",get:function(){return this.filterHeight+(this.table.totalsRow?1:0)}},{key:"model",get:function(){return this.table},set:function(t){this.table=t}},{key:"ref",get:function(){return this.table.ref},set:function(t){this._assign(this.table,"ref",t)}},{key:"name",get:function(){return this.table.name},set:function(t){this.table.name=t}},{key:"displayName",get:function(){return this.table.displyName||this.table.name}},{key:"displayNamename",set:function(t){this.table.displayName=t}},{key:"headerRow",get:function(){return this.table.headerRow},set:function(t){this._assign(this.table,"headerRow",t)}},{key:"totalsRow",get:function(){return this.table.totalsRow},set:function(t){this._assign(this.table,"totalsRow",t)}},{key:"theme",get:function(){return this.table.style.name},set:function(t){this.table.style.name=t}},{key:"showFirstColumn",get:function(){return this.table.style.showFirstColumn},set:function(t){this.table.style.showFirstColumn=t}},{key:"showLastColumn",get:function(){return this.table.style.showLastColumn},set:function(t){this.table.style.showLastColumn=t}},{key:"showRowStripes",get:function(){return this.table.style.showRowStripes},set:function(t){this.table.style.showRowStripes=t}},{key:"showColumnStripes",get:function(){return this.table.style.showColumnStripes},set:function(t){this.table.style.showColumnStripes=t}}]),t}();e.exports=u},{"../utils/col-cache":19}],13:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r31&&console.warn("Worksheet name ".concat(t," exceeds 31 chars. This will be truncated")),/[*?:/\\[\]]/.test(t))throw new Error("Worksheet name ".concat(t," cannot include any of the following characters: * ? : \\ / [ ]"));if(/(^')|('$)/.test(t))throw new Error("The first or last character of worksheet name cannot be a single quotation mark: ".concat(t));if(t=(t||"sheet".concat(r)).substring(0,31),this._worksheets.find((function(e){return e&&e.name.toLowerCase()===t.toLowerCase()})))throw new Error("Worksheet name already exists: ".concat(t));e&&("string"==typeof e?(console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: "rbg value" } }'),e={properties:{tabColor:{argb:e}}}):(e.argb||e.theme||e.indexed)&&(console.trace("tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }"),e={properties:{tabColor:e}}));var n=this._worksheets.reduce((function(t,e){return(e&&e.orderNo)>t?e.orderNo:t}),0),o=Object.assign({},e,{id:r,name:t,orderNo:n+1,workbook:this}),a=new i(o);return this._worksheets[r]=a,a}},{key:"removeWorksheetEx",value:function(t){delete this._worksheets[t.id]}},{key:"removeWorksheet",value:function(t){var e=this.getWorksheet(t);e&&e.destroy()}},{key:"getWorksheet",value:function(t){return void 0===t?this._worksheets.find(Boolean):"number"==typeof t?this._worksheets[t]:"string"==typeof t?this._worksheets.find((function(e){return e&&e.name===t})):void 0}},{key:"eachSheet",value:function(t){this.worksheets.forEach((function(e){t(e,e.id)}))}},{key:"clearThemes",value:function(){this._themes=void 0}},{key:"addImage",value:function(t){var e=this.media.length;return this.media.push(Object.assign({},t,{type:"image"})),e}},{key:"getImage",value:function(t){return this.media[t]}},{key:"xlsx",get:function(){return this._xlsx||(this._xlsx=new a(this)),this._xlsx}},{key:"csv",get:function(){return this._csv||(this._csv=new s(this)),this._csv}},{key:"nextId",get:function(){for(var t=1;tt.length)&&(e=t.length);for(var r=0,n=new Array(e);rthis._columns.length)for(var r=this._columns.length+1;r<=t;)this._columns.push(new d(this,r++));return this._columns[t-1]}},{key:"spliceColumns",value:function(t,e){for(var r=this,n=this._rows,i=n.length,o=arguments.length,a=new Array(o>2?o-2:0),s=2;s0)for(var u=function(n){var i=[t,e];a.forEach((function(t){i.push(t[n]||null)}));var o=r.getRow(n+1);o.splice.apply(o,i)},c=0;c0)for(var p=h;p>=l;p--)this.getColumn(p+f).defn=this.getColumn(p).defn;for(var m=t;m1&&void 0!==arguments[1]?arguments[1]:"n",r=this._nextRow,n=this.getRow(r);return n.values=t,this._setStyleOption(r,"i"===e[0]?e:"n"),n}},{key:"addRows",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"n",n=[];return t.forEach((function(t){n.push(e.addRow(t,r))})),n}},{key:"insertRow",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"n";return this.spliceRows(t,0,e),this._setStyleOption(t,r),this.getRow(t)}},{key:"insertRows",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"n";if(this.spliceRows.apply(this,[t,0].concat(a(e))),"n"!==r)for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"n";"o"===e[0]&&void 0!==this.findRow(t+1)?this._copyStyle(t+1,t,"+"===e[1]):"i"===e[0]&&void 0!==this.findRow(t-1)&&this._copyStyle(t-1,t,"+"===e[1])}},{key:"_copyStyle",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.getRow(t),o=this.getRow(e);o.style=Object.freeze(i({},n.style)),n.eachCell({includeEmpty:r},(function(t,e){o.getCell(e).style=Object.freeze(i({},t.style))})),o.height=n.height}},{key:"duplicateRow",value:function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this._rows[t-1],o=new Array(e).fill(i.values);this.spliceRows.apply(this,[t+1,n?0:e].concat(a(o)));for(var s=function(e){var n=r._rows[t+e];n.style=i.style,n.height=i.height,i.eachCell({includeEmpty:!0},(function(t,e){n.getCell(e).style=t.style}))},u=0;u2?i-2:0),a=2;a0)for(s=l;s>=n;s--)(u=this._rows[s-1])?function(){var t=r.getRow(s+f);t.values=u.values,t.style=u.style,t.height=u.height,u.eachCell({includeEmpty:!0},(function(e,n){if(t.getCell(n).style=e.style,"MergeValue"===e._value.constructor.name){var i=r.getRow(e._row._number+c).getCell(n),o=e._value._master,a=r.getRow(o._row._number+c).getCell(o._column._number);i.merge(a)}}))}():this._rows[s+f-1]=void 0;for(s=0;st.top||i>t.left)&&this.getCell(n,i).merge(r,e);this._merges[r.address]=t}},{key:"_unMergeMaster",value:function(t){var e=this._merges[t.address];if(e){for(var r=e.top;r<=e.bottom;r++)for(var n=e.left;n<=e.right;n++)this.getCell(r,n).unmerge();delete this._merges[t.address]}}},{key:"unMergeCells",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r3&&void 0!==arguments[3]?arguments[3]:"shared",o=f.decode(t),a=o.top,s=o.left,u=o.bottom,c=o.right,l=c-s+1,h=f.encodeAddress(a,s),d="shared"===i;n="function"==typeof r?r:Array.isArray(r)?Array.isArray(r[0])?function(t,e){return r[t-a][e-s]}:function(t,e){return r[(t-a)*l+(e-s)]}:function(){};for(var p=!0,m=a;m<=u;m++)for(var y=s;y<=c;y++)p?(this.getCell(m,y).value={shareType:i,formula:e,ref:t,result:n(m,y)},p=!1):this.getCell(m,y).value=d?{sharedFormula:h,result:n(m,y)}:n(m,y)}},{key:"addImage",value:function(t,e){var r={type:"image",imageId:t,range:e};this._media.push(new m(this,r))}},{key:"getImages",value:function(){return this._media.filter((function(t){return"image"===t.type}))}},{key:"addBackgroundImage",value:function(t){var e={type:"background",imageId:t};this._media.push(new m(this,e))}},{key:"getBackgroundImageId",value:function(){var t=this._media.find((function(t){return"background"===t.type}));return t&&t.imageId}},{key:"protect",value:function(t,e){var r=this;return new Promise((function(n){r.sheetProtection={sheet:!0},e&&"spinCount"in e&&(e.spinCount=Number.isFinite(e.spinCount)?Math.round(Math.max(0,e.spinCount)):1e5),t&&(r.sheetProtection.algorithmName="SHA-512",r.sheetProtection.saltValue=v.randomBytes(16).toString("base64"),r.sheetProtection.spinCount=e&&"spinCount"in e?e.spinCount:1e5,r.sheetProtection.hashValue=v.convertPasswordToHash(t,"SHA512",r.sheetProtection.saltValue,r.sheetProtection.spinCount)),e&&(r.sheetProtection=Object.assign(r.sheetProtection,e),!t&&"spinCount"in e&&delete r.sheetProtection.spinCount),n()}))}},{key:"unprotect",value:function(){this.sheetProtection=null}},{key:"addTable",value:function(t){var e=new y(this,t);return this.tables[t.name]=e,e}},{key:"getTable",value:function(t){return this.tables[t]}},{key:"removeTable",value:function(t){delete this.tables[t]}},{key:"getTables",value:function(){return Object.values(this.tables)}},{key:"addConditionalFormatting",value:function(t){this.conditionalFormattings.push(t)}},{key:"removeConditionalFormatting",value:function(t){"number"==typeof t?this.conditionalFormattings.splice(t,1):this.conditionalFormattings=t instanceof Function?this.conditionalFormattings.filter(t):[]}},{key:"_parseRows",value:function(t){var e=this;this._rows=[],t.rows.forEach((function(t){var r=new h(e,t.number);e._rows[r.number-1]=r,r.model=t}))}},{key:"_parseMergeCells",value:function(t){var e=this;c.each(t.mergeCells,(function(t){e.mergeCellsWithoutStyle(t)}))}},{key:"workbook",get:function(){return this._workbook}},{key:"dimensions",get:function(){var t=new l;return this._rows.forEach((function(e){if(e){var r=e.dimensions;r&&t.expand(e.number,r.min,e.number,r.max)}})),t}},{key:"columns",get:function(){return this._columns},set:function(t){var e=this;this._headerRowCount=t.reduce((function(t,e){var r=(e.header?1:e.headers&&e.headers.length)||0;return Math.max(t,r)}),0);var r=1,n=this._columns=[];t.forEach((function(t){var i=new d(e,r++,!1);n.push(i),i.defn=t}))}},{key:"lastColumn",get:function(){return this.getColumn(this.columnCount)}},{key:"columnCount",get:function(){var t=0;return this.eachRow((function(e){t=Math.max(t,e.cellCount)})),t}},{key:"actualColumnCount",get:function(){var t=[],e=0;return this.eachRow((function(r){r.eachCell((function(r){var n=r.col;t[n]||(t[n]=!0,e++)}))})),e}},{key:"_lastRowNumber",get:function(){for(var t=this._rows,e=t.length;e>0&&void 0===t[e-1];)e--;return e}},{key:"_nextRow",get:function(){return this._lastRowNumber+1}},{key:"lastRow",get:function(){if(this._rows.length)return this._rows[this._rows.length-1]}},{key:"rowCount",get:function(){return this._lastRowNumber}},{key:"actualRowCount",get:function(){var t=0;return this.eachRow((function(){t++})),t}},{key:"hasMerges",get:function(){return c.some(this._merges,Boolean)}},{key:"tabColor",get:function(){return console.trace("worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor"),this.properties.tabColor},set:function(t){console.trace("worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor"),this.properties.tabColor=t}},{key:"model",get:function(){var t={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map((function(t){return t.model})),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map((function(t){return t.model})),conditionalFormattings:this.conditionalFormattings};t.cols=d.toModel(this.columns);var e=t.rows=[],r=t.dimensions=new l;return this._rows.forEach((function(t){var n=t&&t.model;n&&(r.expand(n.number,n.min,n.number,n.max),e.push(n))})),t.merges=[],c.each(this._merges,(function(e){t.merges.push(e.range)})),t},set:function(t){var e=this;this.name=t.name,this._columns=d.fromModel(this,t.cols),this._parseRows(t),this._parseMergeCells(t),this.dataValidations=new b(t.dataValidations),this.properties=t.properties,this.pageSetup=t.pageSetup,this.headerFooter=t.headerFooter,this.views=t.views,this.autoFilter=t.autoFilter,this._media=t.media.map((function(t){return new m(e,t)})),this.sheetProtection=t.sheetProtection,this.tables=t.tables.reduce((function(t,e){var r=new y;return r.model=e,t[e.name]=r,t}),{}),this.conditionalFormattings=t.conditionalFormattings}}])&&u(e.prototype,r),n&&u(e,n),t}();e.exports=g},{"../utils/col-cache":19,"../utils/encryptor":20,"../utils/under-dash":25,"./column":4,"./data-validations":5,"./enums":7,"./image":8,"./range":10,"./row":11,"./table":12}],15:[function(t,e,r){"use strict";t("core-js/modules/es.promise"),t("core-js/modules/es.object.assign"),t("core-js/modules/es.object.keys"),t("core-js/modules/es.object.values"),t("core-js/modules/es.symbol"),t("core-js/modules/es.symbol.async-iterator"),t("core-js/modules/es.array.iterator"),t("core-js/modules/es.array.includes"),t("core-js/modules/es.array.find-index"),t("core-js/modules/es.array.find"),t("core-js/modules/es.string.from-code-point"),t("core-js/modules/es.string.includes"),t("core-js/modules/es.number.is-nan"),t("regenerator-runtime/runtime");var n={Workbook:t("./doc/workbook")},i=t("./doc/enums");Object.keys(i).forEach((function(t){n[t]=i[t]})),e.exports=n},{"./doc/enums":7,"./doc/workbook":13,"core-js/modules/es.array.find":316,"core-js/modules/es.array.find-index":315,"core-js/modules/es.array.includes":317,"core-js/modules/es.array.iterator":318,"core-js/modules/es.number.is-nan":319,"core-js/modules/es.object.assign":320,"core-js/modules/es.object.keys":321,"core-js/modules/es.object.values":322,"core-js/modules/es.promise":323,"core-js/modules/es.string.from-code-point":324,"core-js/modules/es.string.includes":325,"core-js/modules/es.symbol":327,"core-js/modules/es.symbol.async-iterator":326,"regenerator-runtime/runtime":492}],16:[function(t,e,r){"use strict";var n="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8");r.bufferToString=function(t){return"string"==typeof t?t:n?n.decode(t):t.toString()}},{}],17:[function(t,e,r){"use strict";var n="undefined"==typeof TextEncoder?null:new TextEncoder("utf-8"),i=t("buffer").Buffer;r.stringToBuffer=function(t){return"string"!=typeof t?t:n?i.from(n.encode(t).buffer):i.from(t)}},{buffer:216}],18:[function(t,e,r){"use strict";function n(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=4)throw new Error("Out of bounds. Excel supports columns from 1 to 16384");if(this._l2nFill<1&&t>=1){for(;a<=26;)e=this._dictionary[a-1],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=1}if(this._l2nFill<2&&t>=2){for(a=27;a<=702;)n=(r=a-27)%26,i=Math.floor(r/26),e=this._dictionary[i]+this._dictionary[n],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=2}if(this._l2nFill<3&&t>=3){for(a=703;a<=16384;)n=(r=a-703)%26,i=Math.floor(r/26)%26,o=Math.floor(r/676),e=this._dictionary[o]+this._dictionary[i]+this._dictionary[n],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=3}},l2n:function(t){if(this._l2n[t]||this._fill(t.length),!this._l2n[t])throw new Error("Out of bounds. Invalid column letter: ".concat(t));return this._l2n[t]},n2l:function(t){if(t<1||t>16384)throw new Error("".concat(t," is out of bounds. Excel supports columns from 1 to 16384"));return this._n2l[t]||this._fill(this._level(t)),this._n2l[t]},_hash:{},validateAddress:function(t){if(!s.test(t))throw new Error("Invalid Address: ".concat(t));return!0},decodeAddress:function(t){var e=t.length<5&&this._hash[t];if(e)return e;for(var r,n=!1,i="",o=0,a=!1,s="",u=0,c=0;c=65&&r<=90)n=!0,i+=t[c],o=26*o+r-64;else if(r>=48&&r<=57)a=!0,s+=t[c],u=10*u+r-48;else if(a&&n&&36!==r)break;if(n){if(o>16384)throw new Error("Out of bounds. Invalid column letter: ".concat(i))}else o=void 0;a||(u=void 0);var f={address:t=i+s,col:o,row:u,$col$row:"$".concat(i,"$").concat(s)};return o<=100&&u<=100&&(this._hash[t]=f,this._hash[f.$col$row]=f),f},getAddress:function(t,e){if(e){var r=this.n2l(e)+t;return this.decodeAddress(r)}return this.decodeAddress(t)},decode:function(t){var e=t.split(":");if(2===e.length){var r=this.decodeAddress(e[0]),n=this.decodeAddress(e[1]),i={top:Math.min(r.row,n.row),left:Math.min(r.col,n.col),bottom:Math.max(r.row,n.row),right:Math.max(r.col,n.col)};return i.tl=this.n2l(i.left)+i.top,i.br=this.n2l(i.right)+i.bottom,i.dimensions="".concat(i.tl,":").concat(i.br),i}return this.decodeAddress(t)},decodeEx:function(t){var e=t.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/),r=e[1]||e[2],n=e[3],i=n.split(":");if(i.length>1){var s=this.decodeAddress(i[0]),u=this.decodeAddress(i[1]),c=Math.min(s.row,u.row),f=Math.min(s.col,u.col),l=Math.max(s.row,u.row),h=Math.max(s.col,u.col);return s=this.n2l(f)+c,u=this.n2l(h)+l,{top:c,left:f,bottom:l,right:h,sheetName:r,tl:{address:s,col:f,row:c,$col$row:"$".concat(this.n2l(f),"$").concat(c),sheetName:r},br:{address:u,col:h,row:l,$col$row:"$".concat(this.n2l(h),"$").concat(l),sheetName:r},dimensions:"".concat(s,":").concat(u)}}if(n.startsWith("#"))return r?{sheetName:r,error:n}:{error:n};var d=this.decodeAddress(n);return r?function(t){for(var e=1;e=i&&c<=a&&f>=o&&f<=s}};e.exports=u},{}],20:[function(t,e,r){(function(r){"use strict";var n=t("crypto"),i={hash:function(t){for(var e=n.createHash(t),i=arguments.length,o=new Array(i>1?i-1:0),a=1;a3||3===l.length&&l>"XFD")return t;var p=n.l2n(l),m=parseInt(d,10);return f||(p+=s.col-a.col),h||(m+=s.row-a.row),(e||"")+(f||"")+n.n2l(p)+(h||"")+m}return t}))}}},{"./col-cache":19}],23:[function(t,e,r){(function(r,n){"use strict";function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function s(t){i(a,n,o,s,u,"next",t)}function u(t){i(a,n,o,s,u,"throw",t)}s(void 0)}))}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){for(var r=0;r=this.length?(e=this.toBuffer(),this.iRead=this.iWrite,e):(e=n.alloc(t),this.buffer.copy(e,0,this.iRead,t),this.iRead+=t,e)}},{key:"write",value:function(t,e,r){var n=Math.min(r,this.size-this.iWrite);return t.copy(this.buffer,this.iWrite,e,e+n),this.iWrite+=n,n}},{key:"length",get:function(){return this.iWrite-this.iRead}},{key:"eod",get:function(){return this.iRead===this.iWrite}},{key:"full",get:function(){return this.iWrite===this.size}}]),t}(),y=function(t){t=t||{},this.bufSize=t.bufSize||1048576,this.buffers=[],this.batch=t.batch||!1,this.corked=!1,this.inPos=0,this.outPos=0,this.pipes=[],this.paused=!1,this.encoding=null};f.inherits(y,c.Duplex,{toBuffer:function(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return n.concat(this.buffers.map((function(t){return t.toBuffer()})))}},_getWritableBuffer:function(){if(this.buffers.length){var t=this.buffers[this.buffers.length-1];if(!t.full)return t}var e=new m(this.bufSize);return this.buffers.push(e),e},_pipe:function(t){var e=this;return o(regeneratorRuntime.mark((function r(){var n;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=function(e){return new Promise((function(r){e.write(t.toBuffer(),(function(){r()}))}))},r.next=3,Promise.all(e.pipes.map(n));case 3:case"end":return r.stop()}}),r)})))()},_writeToBuffers:function(t){for(var e=0,r=t.length;e1;)a._pipe(a.buffers.shift());o.next=29;break;case 21:if(a.corked){o.next=27;break}return o.next=24,a._pipe(s);case 24:i(),o.next=29;break;case 27:a._writeToBuffers(s),r.nextTick(i);case 29:o.next=34;break;case 31:a.paused||a.emit("data",s.toBuffer()),a._writeToBuffers(s),a.emit("readable");case 34:return o.abrupt("return",!0);case 35:case"end":return o.stop()}}),o)})))()},cork:function(){this.corked=!0},_flush:function(){if(this.pipes.length)for(;this.buffers.length;)this._pipe(this.buffers.shift())},uncork:function(){this.corked=!1,this._flush()},end:function(t,e,r){var n=this,i=function(t){t?r(t):(n._flush(),n.pipes.forEach((function(t){t.end()})),n.emit("finish"))};t?this.write(t,e,i):i()},read:function(t){var e;if(t){for(e=[];t&&this.buffers.length&&!this.buffers[0].eod;){var r=this.buffers[0],i=r.read(t);t-=i.length,e.push(i),r.eod&&r.full&&this.buffers.shift()}return n.concat(e)}return e=this.buffers.map((function(t){return t.toBuffer()})).filter(Boolean),this.buffers=[],n.concat(e)},setEncoding:function(t){this.encoding=t},pause:function(){this.paused=!0},resume:function(){this.paused=!1},isPaused:function(){return!!this.paused},pipe:function(t){this.pipes.push(t),!this.paused&&this.buffers.length&&this.end()},unpipe:function(t){this.pipes=this.pipes.filter((function(e){return e!==t}))},unshift:function(){throw new Error("Not Implemented")},wrap:function(){throw new Error("Not Implemented")}}),e.exports=y}).call(this,t("_process"),t("buffer").Buffer)},{"./string-buf":24,"./utils":26,_process:467,buffer:216,"readable-stream":491}],24:[function(t,e,r){(function(t){"use strict";function r(t,e){for(var r=0;r=this._buf.length-4;)this._grow(this._inPos+t.length),e=this._inPos+this._buf.write(t,this._inPos,this._encoding);this._inPos=e}},{key:"addStringBuf",value:function(t){t.length&&(this._buffer=void 0,this.length+t.length>this.capacity&&this._grow(this.length+t.length),t._buf.copy(this._buf,this._inPos,0,t.length),this._inPos+=t.length)}},{key:"length",get:function(){return this._inPos}},{key:"capacity",get:function(){return this._buf.length}},{key:"buffer",get:function(){return this._buf}}])&&r(n.prototype,i),o&&r(n,o),e}();e.exports=n}).call(this,t("buffer").Buffer)},{buffer:216}],25:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i=Object.prototype.toString,o=/["&<>]/,a={each:function(t,e){t&&(Array.isArray(t)?t.forEach(e):Object.keys(t).forEach((function(r){e(t[r],r)})))},some:function(t,e){return!!t&&(Array.isArray(t)?t.some(e):Object.keys(t).some((function(r){return e(t[r],r)})))},every:function(t,e){return!t||(Array.isArray(t)?t.every(e):Object.keys(t).every((function(r){return e(t[r],r)})))},map:function(t,e){return t?Array.isArray(t)?t.map(e):Object.keys(t).map((function(r){return e(t[r],r)})):[]},keyBy:function(t,e){return t.reduce((function(t,r){return t[r[e]]=r,t}),{})},isEqual:function(t,e){var r=n(t),i=n(e),o=Array.isArray(t),s=Array.isArray(e);if(r!==i)return!1;switch(n(t)){case"object":return o||s?!(!o||!s)&&(t.length===e.length&&t.every((function(t,r){var n=e[r];return a.isEqual(t,n)}))):a.every(t,(function(t,r){var n=e[r];return a.isEqual(t,n)}));default:return t===e}},escapeHtml:function(t){var e=o.exec(t);if(!e)return t;for(var r="",n="",i=0,a=e.index;a":n=">";break;default:continue}i!==a&&(r+=t.substring(i,a)),i=a+1,r+=n}return i!==a?r+t.substring(i,a):r},strcmp:function(t,e){return te?1:0},isUndefined:function(t){return"[object Undefined]"===i.call(t)},isObject:function(t){return"[object Object]"===i.call(t)},deepMerge:function(){var t,e,r,n=arguments[0]||{},i=arguments.length;function o(i,o){t=n[o],r=Array.isArray(i),a.isObject(i)||r?(r?(r=!1,e=t&&Array.isArray(t)?t:[]):e=t&&a.isObject(t)?t:{},n[o]=a.deepMerge(e,i)):a.isUndefined(i)||(n[o]=i)}for(var s=0;s&'"\x7F\x00-\x08\x0B-\x0C\x0E-\x1F]/,a={nop:function(){},promiseImmediate:function(t){return new Promise((function(e){r.setImmediate?n((function(){e(t)})):setTimeout((function(){e(t)}),1)}))},inherits:function(t,e,r,n){t.super_=e,n||(n=r,r=null),r&&Object.keys(r).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}));var i={constructor:{value:t,enumerable:!1,writable:!1,configurable:!0}};n&&Object.keys(n).forEach((function(t){i[t]=Object.getOwnPropertyDescriptor(n,t)})),t.prototype=Object.create(e.prototype,i)},dateToExcel:function(t,e){return 25569+t.getTime()/864e5-(e?1462:0)},excelToDate:function(t,e){var r=Math.round(24*(t-25569+(e?1462:0))*3600*1e3);return new Date(r)},parsePath:function(t){var e=t.lastIndexOf("/");return{path:t.substring(0,e),name:t.substring(e+1)}},getRelsPath:function(t){var e=a.parsePath(t);return"".concat(e.path,"/_rels/").concat(e.name,".rels")},xmlEncode:function(t){var e=o.exec(t);if(!e)return t;for(var r="",n="",i=0,a=e.index;a=11&&13!==s)){n="";break}continue}i!==a&&(r+=t.substring(i,a)),i=a+1,n&&(r+=n)}return i!==a?r+t.substring(i,a):r},xmlDecode:function(t){return t.replace(/&([a-z]*);/g,(function(t){switch(t){case"<":return"<";case">":return">";case"&":return"&";case"'":return"'";case""":return'"';default:return t}}))},validInt:function(t){var e=parseInt(t,10);return Number.isNaN(e)?0:e},isDateFmt:function(t){return!!t&&null!==(t=(t=t.replace(/\[[^\]]*]/g,"")).replace(/"[^"]*"/g,"")).match(/[ymdhMsb]+/)},fs:{exists:function(t){return new Promise((function(e){i.access(t,i.constants.F_OK,(function(t){e(!t)}))}))}},toIsoDateString:function(t){return t.toIsoString().subsstr(0,10)}};e.exports=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("timers").setImmediate)},{fs:215,timers:521}],27:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r\n")}},{key:"openNode",value:function(t,e){var r=this.tos,n=this._xml;r&&this.open&&n.push(">"),this._stack.push(t),n.push("<"),n.push(t),s(n,e),this.leaf=!0,this.open=!0}},{key:"addAttribute",value:function(t,e){if(!this.open)throw new Error("Cannot write attributes to node if it is not open");void 0!==e&&a(this._xml,t,e)}},{key:"addAttributes",value:function(t){if(!this.open)throw new Error("Cannot write attributes to node if it is not open");s(this._xml,t)}},{key:"writeText",value:function(t){var e=this._xml;this.open&&(e.push(">"),this.open=!1),this.leaf=!1,e.push(o.xmlEncode(t.toString()))}},{key:"writeXml",value:function(t){this.open&&(this._xml.push(">"),this.open=!1),this.leaf=!1,this._xml.push(t)}},{key:"closeNode",value:function(){var t=this._stack.pop(),e=this._xml;this.leaf?e.push("/>"):(e.push("")),this.open=!1,this.leaf=!1}},{key:"leafNode",value:function(t,e,r){this.openNode(t,e),void 0!==r&&this.writeText(r),this.closeNode()}},{key:"closeAll",value:function(){for(;this._stack.length;)this.closeNode()}},{key:"addRollback",value:function(){return this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open}),this.cursor}},{key:"commit",value:function(){this._rollbacks.pop()}},{key:"rollback",value:function(){var t=this._rollbacks.pop();this._xml.length>t.xml&&this._xml.splice(t.xml,this._xml.length-t.xml),this._stack.length>t.stack&&this._stack.splice(t.stack,this._stack.length-t.stack),this.leaf=t.leaf,this.open=t.open}},{key:"tos",get:function(){return this._stack.length?this._stack[this._stack.length-1]:void 0}},{key:"cursor",get:function(){return this._xml.length}},{key:"xml",get:function(){return this.closeAll(),this._xml.join("")}}])&&n(e.prototype,r),i&&n(e,i),t}();u.StdDocAttributes={version:"1.0",encoding:"UTF-8",standalone:"yes"},e.exports=u},{"./under-dash":25,"./utils":26}],28:[function(t,e,r){(function(r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r2&&void 0!==arguments[2]&&arguments[2];if(void 0===t){if(r)return e}else if(r||t!==e)return t.toString()}},{key:"toStringAttribute",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:"toStringValue",value:function(t,e){return void 0===t?e:t}},{key:"toBoolAttribute",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===t){if(r)return e}else if(r||t!==e)return t?"1":"0"}},{key:"toBoolValue",value:function(t,e){return void 0===t?e:"1"===t}},{key:"toIntAttribute",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:"toIntValue",value:function(t,e){return void 0===t?e:parseInt(t,10)}},{key:"toFloatAttribute",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:"toFloatValue",value:function(t,e){return void 0===t?e:parseFloat(t)}}],r&&s(e.prototype,r),i&&s(e,i),t}();e.exports=l},{"../../utils/parse-sax":21,"../../utils/xml-stream":27}],32:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;rthis.maxItems))throw new Error("Max ".concat(this.childXform.tag," count (").concat(this.maxItems,") exceeded"));return!0}return!1}},{key:"reconcile",value:function(t,e){if(t){var r=this.childXform;t.forEach((function(t){r.reconcile(t,e)}))}}}])&&i(e.prototype,r),n&&i(e,n),u}(t("./base-xform"));e.exports=c},{"./base-xform":31}],71:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r0");case"containsErrors":return"ISERROR(".concat(e,")");case"notContainsErrors":return"NOT(ISERROR(".concat(e,"))");default:return}}(e);r&&this.formulaXform.render(t,r),t.closeNode()}},{key:"renderTimePeriod",value:function(t,e){t.openNode(this.tag,{type:"timePeriod",dxfId:e.dxfId,priority:e.priority,timePeriod:e.timePeriod});var r=function(t){if(t.formulae&&t.formulae[0])return t.formulae[0];var e=new p(t.ref).tl;switch(t.timePeriod){case"thisWeek":return"AND(TODAY()-ROUNDDOWN(".concat(e,",0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(").concat(e,",0)-TODAY()<=7-WEEKDAY(TODAY()))");case"lastWeek":return"AND(TODAY()-ROUNDDOWN(".concat(e,",0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(").concat(e,",0)<(WEEKDAY(TODAY())+7))");case"nextWeek":return"AND(ROUNDDOWN(".concat(e,",0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(").concat(e,",0)-TODAY()<(15-WEEKDAY(TODAY())))");case"yesterday":return"FLOOR(".concat(e,",1)=TODAY()-1");case"today":return"FLOOR(".concat(e,",1)=TODAY()");case"tomorrow":return"FLOOR(".concat(e,",1)=TODAY()+1");case"last7Days":return"AND(TODAY()-FLOOR(".concat(e,",1)<=6,FLOOR(").concat(e,",1)<=TODAY())");case"lastMonth":return"AND(MONTH(".concat(e,")=MONTH(EDATE(TODAY(),0-1)),YEAR(").concat(e,")=YEAR(EDATE(TODAY(),0-1)))");case"thisMonth":return"AND(MONTH(".concat(e,")=MONTH(TODAY()),YEAR(").concat(e,")=YEAR(TODAY()))");case"nextMonth":return"AND(MONTH(".concat(e,")=MONTH(EDATE(TODAY(),0+1)),YEAR(").concat(e,")=YEAR(EDATE(TODAY(),0+1)))");default:return}}(e);r&&this.formulaXform.render(t,r),t.closeNode()}},{key:"createNewModel",value:function(t){var e=t.attributes;return o(o({},function(t){var e=t.type,r=t.operator;switch(e){case"containsText":case"containsBlanks":case"notContainsBlanks":case"containsErrors":case"notContainsErrors":return{type:"containsText",operator:e};default:return{type:e,operator:r}}}(e)),{},{dxfId:h.toIntValue(e.dxfId),priority:h.toIntValue(e.priority),timePeriod:e.timePeriod,percent:h.toBoolValue(e.percent),bottom:h.toBoolValue(e.bottom),rank:h.toIntValue(e.rank),aboveAverage:h.toBoolValue(e.aboveAverage)})}},{key:"onParserClose",value:function(t,e){switch(t){case"dataBar":case"extLst":case"colorScale":case"iconSet":Object.assign(this.model,e.model);break;case"formula":this.model.formulae=this.model.formulae||[],this.model.formulae.push(e.model)}}},{key:"tag",get:function(){return"cfRule"}}])&&s(e.prototype,r),n&&s(e,n),a}(d);e.exports=_},{"../../../../doc/range":10,"../../base-xform":31,"../../composite-xform":47,"./color-scale-xform":84,"./databar-xform":87,"./ext-lst-ref-xform":88,"./formula-xform":89,"./icon-set-xform":90}],83:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r1||s>1){var f=i.row+(o-1),h=i.col+(s-1);return l(l({},e.dataValidation),{},{sqref:"".concat(e.address,":").concat(m.encodeAddress(f,h))})}return l(l({},e.dataValidation),{},{sqref:e.address})}return null})).filter(Boolean)}(e);r.length&&(t.openNode("dataValidations",{count:r.length}),r.forEach((function(e){t.openNode("dataValidation"),"any"!==e.type&&(t.addAttribute("type",e.type),e.operator&&"list"!==e.type&&"between"!==e.operator&&t.addAttribute("operator",e.operator),e.allowBlank&&t.addAttribute("allowBlank","1")),e.showInputMessage&&t.addAttribute("showInputMessage","1"),e.promptTitle&&t.addAttribute("promptTitle",e.promptTitle),e.prompt&&t.addAttribute("prompt",e.prompt),e.showErrorMessage&&t.addAttribute("showErrorMessage","1"),e.errorStyle&&t.addAttribute("errorStyle",e.errorStyle),e.errorTitle&&t.addAttribute("errorTitle",e.errorTitle),e.error&&t.addAttribute("error",e.error),t.addAttribute("sqref",e.sqref),(e.formulae||[]).forEach((function(r,n){t.openNode("formula".concat(n+1)),"date"===e.type?t.writeText(p.dateToExcel(new Date(r))):t.writeText(r),t.closeNode()})),t.closeNode()})),t.closeNode())}},{key:"parseOpen",value:function(t){switch(t.name){case"dataValidations":return this.model={},!0;case"dataValidation":this._address=t.attributes.sqref;var e={type:t.attributes.type||"any",formulae:[]};switch(t.attributes.type&&g(e,t.attributes,"allowBlank"),g(e,t.attributes,"showInputMessage"),g(e,t.attributes,"showErrorMessage"),e.type){case"any":case"list":case"custom":break;default:v(e,t.attributes,"operator","between")}return v(e,t.attributes,"promptTitle"),v(e,t.attributes,"prompt"),v(e,t.attributes,"errorStyle"),v(e,t.attributes,"errorTitle"),v(e,t.attributes,"error"),this._dataValidation=e,!0;case"formula1":case"formula2":return this._formula=[],!0;default:return!1}}},{key:"parseText",value:function(t){this._formula&&this._formula.push(t)}},{key:"parseClose",value:function(t){var e=this;switch(t){case"dataValidations":return!1;case"dataValidation":return this._dataValidation.formulae&&this._dataValidation.formulae.length||(delete this._dataValidation.formulae,delete this._dataValidation.operator),(this._address.split(/\s+/g)||[]).forEach((function(t){t.includes(":")?new b(t).forEachAddress((function(t){e.model[t]=e._dataValidation})):e.model[t]=e._dataValidation})),!0;case"formula1":case"formula2":var r=this._formula.join("");switch(this._dataValidation.type){case"whole":case"textLength":r=parseInt(r,10);break;case"decimal":r=parseFloat(r);break;case"date":r=p.excelToDate(parseFloat(r))}return this._dataValidation.formulae.push(r),this._formula=void 0,!0;default:return!0}}},{key:"tag",get:function(){return"dataValidations"}}])&&o(e.prototype,r),n&&o(e,n),c}(y);e.exports=w},{"../../../doc/range":10,"../../../utils/col-cache":19,"../../../utils/under-dash":25,"../../../utils/utils":26,"../base-xform":31}],93:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;r0&&e.max>0&&e.min<=e.max&&t.addAttribute("spans","".concat(e.min,":").concat(e.max)),e.styleId&&(t.addAttribute("s",e.styleId),t.addAttribute("customFormat","1")),t.addAttribute("x14ac:dyDescent","0.25"),e.outlineLevel&&t.addAttribute("outlineLevel",e.outlineLevel),e.collapsed&&t.addAttribute("collapsed","1");var n=this.map.c;e.cells.forEach((function(e){n.render(t,e,r)})),t.closeNode()}},{key:"parseOpen",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;if("row"===t.name){this.numRowsSeen+=1;var e=t.attributes.spans?t.attributes.spans.split(":").map((function(t){return parseInt(t,10)})):[void 0,void 0],r=this.model={number:parseInt(t.attributes.r,10),min:e[0],max:e[1],cells:[]};return t.attributes.s&&(r.styleId=parseInt(t.attributes.s,10)),!0!==t.attributes.hidden&&"true"!==t.attributes.hidden&&1!==t.attributes.hidden&&"1"!==t.attributes.hidden||(r.hidden=!0),t.attributes.bestFit&&(r.bestFit=!0),t.attributes.ht&&(r.height=parseFloat(t.attributes.ht)),t.attributes.outlineLevel&&(r.outlineLevel=parseInt(t.attributes.outlineLevel,10)),t.attributes.collapsed&&(r.collapsed=!0),!0}return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}},{key:"parseText",value:function(t){this.parser&&this.parser.parseText(t)}},{key:"parseClose",value:function(t){if(this.parser){if(!this.parser.parseClose(t)){if(this.model.cells.push(this.parser.model),this.maxItems&&this.model.cells.length>this.maxItems)throw new Error("Max column count (".concat(this.maxItems,") exceeded"));this.parser=void 0}return!0}return!1}},{key:"reconcile",value:function(t,e){t.style=t.styleId?e.styles.getStyleModel(t.styleId):{},void 0!==t.styleId&&(t.styleId=void 0);var r=this.map.c;t.cells.forEach((function(t){r.reconcile(t,e)}))}},{key:"tag",get:function(){return"row"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{"../base-xform":31,"./cell-xform":72}],109:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;r0){var o={Id:i(n),Type:h.Comments,Target:"../comments".concat(t.id,".xml")};n.push(o);var a={Id:i(n),Type:h.VmlDrawing,Target:"../drawings/vmlDrawing".concat(t.id,".vml")};n.push(a),t.comments.forEach((function(t){t.refAddress=f.decodeAddress(t.ref)})),e.commentRefs.push({commentName:"comments".concat(t.id),vmlDrawing:"vmlDrawing".concat(t.id)})}var s,u=[];t.media.forEach((function(o){if("background"===o.type){var a=i(n);s=e.media[o.imageId],n.push({Id:a,Type:h.Image,Target:"../media/".concat(s.name,".").concat(s.extension)}),t.background={rId:a},t.image=e.media[o.imageId]}else if("image"===o.type){var c=t.drawing;s=e.media[o.imageId],c||(c=t.drawing={rId:i(n),name:"drawing".concat(++e.drawingsCount),anchors:[],rels:[]},e.drawings.push(c),n.push({Id:c.rId,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",Target:"../drawings/".concat(c.name,".xml")}));var f=r.preImageId===o.imageId?u[o.imageId]:u[c.rels.length];f||(f=i(c.rels),u[c.rels.length]=f,c.rels.push({Id:f,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Target:"../media/".concat(s.name,".").concat(s.extension)}));var l={picture:{rId:f},range:o.range};if(o.hyperlinks&&o.hyperlinks.hyperlink){var d=i(c.rels);u[c.rels.length]=d,l.picture.hyperlinks={tooltip:o.hyperlinks.tooltip,rId:d},c.rels.push({Id:d,Type:h.Hyperlink,Target:o.hyperlinks.hyperlink,TargetMode:"External"})}r.preImageId=o.imageId,c.anchors.push(l)}})),t.tables.forEach((function(t){var r=i(n);t.rId=r,n.push({Id:r,Type:h.Table,Target:"../tables/".concat(t.target)}),t.columns.forEach((function(t){var r=t.style;r&&(t.dxfId=e.styles.addDxfStyle(r))}))})),this.map.extLst.prepare(t,e)}},{key:"render",value:function(t,e){t.openXml(l.StdDocAttributes),t.openNode("worksheet",u.WORKSHEET_ATTRIBUTES);var r=e.properties?{defaultRowHeight:e.properties.defaultRowHeight,dyDescent:e.properties.dyDescent,outlineLevelCol:e.properties.outlineLevelCol,outlineLevelRow:e.properties.outlineLevelRow}:void 0;e.properties&&e.properties.defaultColWidth&&(r.defaultColWidth=e.properties.defaultColWidth);var n={outlineProperties:e.properties&&e.properties.outlineProperties,tabColor:e.properties&&e.properties.tabColor,pageSetup:e.pageSetup&&e.pageSetup.fitToPage?{fitToPage:e.pageSetup.fitToPage}:void 0},i=e.pageSetup&&e.pageSetup.margins,o={showRowColHeaders:e.pageSetup&&e.pageSetup.showRowColHeaders,showGridLines:e.pageSetup&&e.pageSetup.showGridLines,horizontalCentered:e.pageSetup&&e.pageSetup.horizontalCentered,verticalCentered:e.pageSetup&&e.pageSetup.verticalCentered},a=e.sheetProtection;this.map.sheetPr.render(t,n),this.map.dimension.render(t,e.dimensions),this.map.sheetViews.render(t,e.views),this.map.sheetFormatPr.render(t,r),this.map.cols.render(t,e.cols),this.map.sheetData.render(t,e.rows),this.map.sheetProtection.render(t,a),this.map.autoFilter.render(t,e.autoFilter),this.map.mergeCells.render(t,e.mergeCells),this.map.conditionalFormatting.render(t,e.conditionalFormattings),this.map.dataValidations.render(t,e.dataValidations),this.map.hyperlinks.render(t,e.hyperlinks),this.map.printOptions.render(t,o),this.map.pageMargins.render(t,i),this.map.pageSetup.render(t,e.pageSetup),this.map.headerFooter.render(t,e.headerFooter),this.map.rowBreaks.render(t,e.rowBreaks),this.map.drawing.render(t,e.drawing),this.map.picture.render(t,e.background),this.map.tableParts.render(t,e.tables),this.map.extLst.render(t,e),e.rels&&e.rels.forEach((function(e){e.Type===h.VmlDrawing&&t.leafNode("legacyDrawing",{"r:id":e.Id})})),t.closeNode()}},{key:"parseOpen",value:function(t){return this.parser?(this.parser.parseOpen(t),!0):"worksheet"===t.name?(c.each(this.map,(function(t){t.reset()})),!0):(this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t),!0)}},{key:"parseText",value:function(t){this.parser&&this.parser.parseText(t)}},{key:"parseClose",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case"worksheet":var e=this.map.sheetFormatPr.model||{};this.map.sheetPr.model&&this.map.sheetPr.model.tabColor&&(e.tabColor=this.map.sheetPr.model.tabColor),this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties&&(e.outlineProperties=this.map.sheetPr.model.outlineProperties);var r={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||!1,margins:this.map.pageMargins.model},n=Object.assign(r,this.map.pageSetup.model,this.map.printOptions.model),i=B(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model["x14:conditionalFormattings"]);return this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:e,views:this.map.sheetViews.model,pageSetup:n,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:i},this.map.autoFilter.model&&(this.model.autoFilter=this.map.autoFilter.model),this.map.sheetProtection.model&&(this.model.sheetProtection=this.map.sheetProtection.model),!1;default:return!0}}},{key:"reconcile",value:function(t,e){var r=(t.relationships||[]).reduce((function(r,n){if(r[n.Id]=n,n.Type===h.Comments&&(t.comments=e.comments[n.Target].comments),n.Type===h.VmlDrawing&&t.comments&&t.comments.length){var i=e.vmlDrawings[n.Target].comments;t.comments.forEach((function(t,e){t.note=Object.assign({},t.note,i[e])}))}return r}),{});if(e.commentsMap=(t.comments||[]).reduce((function(t,e){return e.ref&&(t[e.ref]=e),t}),{}),e.hyperlinkMap=(t.hyperlinks||[]).reduce((function(t,e){return e.rId&&(t[e.address]=r[e.rId].Target),t}),{}),e.formulae={},t.rows=t.rows&&t.rows.filter(Boolean)||[],t.rows.forEach((function(t){t.cells=t.cells&&t.cells.filter(Boolean)||[]})),this.map.cols.reconcile(t.cols,e),this.map.sheetData.reconcile(t.rows,e),this.map.conditionalFormatting.reconcile(t.conditionalFormattings,e),t.media=[],t.drawing){var n=r[t.drawing.rId].Target.match(/\/drawings\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(n){var i=n[1];e.drawings[i].anchors.forEach((function(e){if(e.medium){var r={type:"image",imageId:e.medium.index,range:e.range,hyperlinks:e.picture.hyperlinks};t.media.push(r)}}))}}var o=t.background&&r[t.background.rId];if(o){var a=o.Target.split("/media/")[1],s=e.mediaIndex&&e.mediaIndex[a];void 0!==s&&t.media.push({type:"background",imageId:s})}t.tables=(t.tables||[]).map((function(t){var n=r[t.rId];return e.tables[n.Target]})),delete t.relationships,delete t.hyperlinks,delete t.comments}}])&&i(e.prototype,r),n&&i(e,n),u}(p);F.WORKSHEET_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"},e.exports=F},{"../../../utils/col-cache":19,"../../../utils/under-dash":25,"../../../utils/xml-stream":27,"../../rel-type":30,"../base-xform":31,"../list-xform":70,"./auto-filter-xform":71,"./cf/conditional-formattings-xform":86,"./col-xform":91,"./data-validations-xform":92,"./dimension-xform":93,"./drawing-xform":94,"./ext-lst-xform":95,"./header-footer-xform":96,"./hyperlink-xform":97,"./merge-cell-xform":98,"./merges":99,"./page-margins-xform":102,"./page-setup-xform":104,"./picture-xform":105,"./print-options-xform":106,"./row-breaks-xform":107,"./row-xform":108,"./sheet-format-properties-xform":109,"./sheet-properties-xform":110,"./sheet-protection-xform":111,"./sheet-view-xform":112,"./table-part-xform":113}],115:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){for(var r=0;r=-90&&t<=90?t:void 0}},indent:function(t){return t=l.validInt(t),Math.max(0,t)},readingOrder:function(t){switch(t){case"ltr":return f.ReadingOrder.LeftToRight;case"rtl":return f.ReadingOrder.RightToLeft;default:return}}},p=function(t){if(t=d.textRotation(t)){if("vertical"===t)return 255;var e=Math.round(t);if(e>=0&&e<=90)return e;if(e<0&&e>=-90)return 90-e}},m=function(t){var e=l.validInt(t);if(void 0!==e){if(255===e)return"vertical";if(e>=0&&e<=90)return e;if(e>90&&e<=180)return 90-e}},y=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:"render",value:function(t,e){t.addRollback(),t.openNode("alignment");var r=!1;function n(e,n){n&&(t.addAttribute(e,n),r=!0)}n("horizontal",d.horizontal(e.horizontal)),n("vertical",d.vertical(e.vertical)),n("wrapText",!!d.wrapText(e.wrapText)&&"1"),n("shrinkToFit",!!d.shrinkToFit(e.shrinkToFit)&&"1"),n("indent",d.indent(e.indent)),n("textRotation",p(e.textRotation)),n("readingOrder",d.readingOrder(e.readingOrder)),t.closeNode(),r?t.commit():t.rollback()}},{key:"parseOpen",value:function(t){var e={},r=!1;function n(t,n,i){t&&(e[n]=i,r=!0)}n(t.attributes.horizontal,"horizontal",t.attributes.horizontal),n(t.attributes.vertical,"vertical","center"===t.attributes.vertical?"middle":t.attributes.vertical),n(t.attributes.wrapText,"wrapText",!!t.attributes.wrapText),n(t.attributes.shrinkToFit,"shrinkToFit",!!t.attributes.shrinkToFit),n(t.attributes.indent,"indent",parseInt(t.attributes.indent,10)),n(t.attributes.textRotation,"textRotation",m(t.attributes.textRotation)),n(t.attributes.readingOrder,"readingOrder","2"===t.attributes.readingOrder?"rtl":"ltr"),this.model=r?e:null}},{key:"parseText",value:function(){}},{key:"parseClose",value:function(){return!1}},{key:"tag",get:function(){return"alignment"}}])&&o(e.prototype,r),n&&o(e,n),c}(h);e.exports=y},{"../../../doc/enums":7,"../../../utils/utils":26,"../base-xform":31}],126:[function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t){for(var e=1;e=1)){t.next=6;break}return o=n.substr(i+1),a=n.substr(0,i),t.next=6,new Promise((function(t,i){var s=new h;s.on("finish",(function(){r.mediaIndex[n]=r.media.length,r.mediaIndex[a]=r.media.length;var e={type:"image",name:a,extension:o,buffer:s.toBuffer()};r.media.push(e),t()})),e.on("error",(function(t){i(t)})),e.pipe(s)}));case 6:case"end":return t.stop()}}),t)}))),function(t,e,r){return Y.apply(this,arguments)})},{key:"_processDrawingEntry",value:(Z=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new S,t.next=3,i.parseStream(e);case 3:o=t.sent,r.drawings[n]=o;case 5:case"end":return t.stop()}}),t)}))),function(t,e,r){return Z.apply(this,arguments)})},{key:"_processDrawingRelsEntry",value:(K=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new g,t.next=3,i.parseStream(e);case 3:o=t.sent,r.drawingRels[n]=o;case 5:case"end":return t.stop()}}),t)}))),function(t,e,r){return K.apply(this,arguments)})},{key:"_processVmlDrawingEntry",value:(X=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new E,t.next=3,i.parseStream(e);case 3:o=t.sent,r.vmlDrawings["../drawings/".concat(n,".vml")]=o;case 5:case"end":return t.stop()}}),t)}))),function(t,e,r){return X.apply(this,arguments)})},{key:"_processThemeEntry",value:($=o(regeneratorRuntime.mark((function t(e,r,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,new Promise((function(t,i){var o=new h;e.on("error",i),o.on("error",i),o.on("finish",(function(){r.themes[n]=o.read().toString(),t()})),e.pipe(o)}));case 2:case"end":return t.stop()}}),t)}))),function(t,e,r){return $.apply(this,arguments)})},{key:"createInputStream",value:function(){throw new Error("`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md")}},{key:"read",value:(W=o(regeneratorRuntime.mark((function t(e,r){var i,o,a,u,c,l,h,d;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:!e[Symbol.asyncIterator]&&e.pipe&&(e=e.pipe(new f)),i=[],o=!0,a=!1,t.prev=4,c=s(e);case 6:return t.next=8,c.next();case 8:return l=t.sent,o=l.done,t.next=12,l.value;case 12:if(h=t.sent,o){t.next=19;break}d=h,i.push(d);case 16:o=!0,t.next=6;break;case 19:t.next=25;break;case 21:t.prev=21,t.t0=t.catch(4),a=!0,u=t.t0;case 25:if(t.prev=25,t.prev=26,o||null==c.return){t.next=30;break}return t.next=30,c.return();case 30:if(t.prev=30,!a){t.next=33;break}throw u;case 33:return t.finish(30);case 34:return t.finish(25);case 35:return t.abrupt("return",this.load(n.concat(i),r));case 36:case"end":return t.stop()}}),t,this,[[4,21,25,35],[26,,30,34]])}))),function(t,e){return W.apply(this,arguments)})},{key:"load",value:(q=o(regeneratorRuntime.mark((function t(e,i){var o,a,s,u,l,h,d,p,g,w,k,x,S,O,j,E;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=i&&i.base64?n.from(e.toString(),"base64"):e,a={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}},t.next=4,c.loadAsync(o);case 4:s=t.sent,u=0,l=Object.values(s.files);case 6:if(!(u0&&(r=new p,o.render(r,t),e.append(r.xml,{name:"xl/comments".concat(t.id,".xml")}),r=new p,a.render(r,t),e.append(r.xml,{name:"xl/drawings/vmlDrawing".concat(t.id,".vml")}))}));case 5:case"end":return t.stop()}}),t)}))),function(t,e){return A.apply(this,arguments)})},{key:"_finalize",value:function(t){var e=this;return new Promise((function(r,n){t.on("finish",(function(){r(e)})),t.on("error",n),t.finalize()}))}},{key:"prepareModel",value:function(t,e){t.creator=t.creator||"ExcelJS",t.lastModifiedBy=t.lastModifiedBy||"ExcelJS",t.created=t.created||new Date,t.modified=t.modified||new Date,t.useSharedStrings=void 0===e.useSharedStrings||e.useSharedStrings,t.useStyles=void 0===e.useStyles||e.useStyles,t.sharedStrings=new v,t.styles=t.useStyles?new y(!0):new y.Mock;var r=new k,n=new x;r.prepare(t);var i={sharedStrings:t.sharedStrings,styles:t.styles,date1904:t.properties.date1904,drawingsCount:0,media:t.media};i.drawings=t.drawings=[],i.commentRefs=t.commentRefs=[];var o=0;t.tables=[],t.worksheets.forEach((function(e){e.tables.forEach((function(e){o++,e.target="table".concat(o,".xml"),e.id=o,t.tables.push(e)})),n.prepare(e,i)}))}},{key:"write",value:(M=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=r||{},n=this.workbook.model,(i=new l.ZipWriter(r.zip)).pipe(e),this.prepareModel(n,r),t.next=7,this.addContentTypes(i,n);case 7:return t.next=9,this.addOfficeRels(i,n);case 9:return t.next=11,this.addWorkbookRels(i,n);case 11:return t.next=13,this.addWorksheets(i,n);case 13:return t.next=15,this.addSharedStrings(i,n);case 15:return t.next=17,this.addDrawings(i,n);case 17:return t.next=19,this.addTables(i,n);case 19:return t.next=21,Promise.all([this.addThemes(i,n),this.addStyles(i,n)]);case 21:return t.next=23,this.addMedia(i,n);case 23:return t.next=25,Promise.all([this.addApp(i,n),this.addCore(i,n)]);case 25:return t.next=27,this.addWorkbook(i,n);case 27:return t.abrupt("return",this._finalize(i));case 28:case"end":return t.stop()}}),t,this)}))),function(t,e){return M.apply(this,arguments)})},{key:"writeFile",value:function(t,e){var r=this,n=u.createWriteStream(t);return new Promise((function(t,i){n.on("finish",(function(){t()})),n.on("error",(function(t){i(t)})),r.write(n,e).then((function(){n.end()}))}))}},{key:"writeBuffer",value:(P=o(regeneratorRuntime.mark((function t(e){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=new h,t.next=3,this.write(r,e);case 3:return t.abrupt("return",r.read());case 4:case"end":return t.stop()}}),t,this)}))),function(t){return P.apply(this,arguments)})}])&&a(e.prototype,i),C&&a(e,C),t}();C.RelType=t("./rel-type"),e.exports=C}).call(this,t("_process"),t("buffer").Buffer)},{"../utils/browser-buffer-decode":16,"../utils/stream-buf":23,"../utils/utils":26,"../utils/xml-stream":27,"../utils/zip-stream":28,"./rel-type":30,"./xform/book/workbook-xform":37,"./xform/comment/comments-xform":39,"./xform/comment/vml-notes-xform":44,"./xform/core/app-xform":50,"./xform/core/content-types-xform":51,"./xform/core/core-xform":52,"./xform/core/relationships-xform":54,"./xform/drawing/drawing-xform":61,"./xform/sheet/worksheet-xform":114,"./xform/strings/shared-strings-xform":123,"./xform/style/styles-xform":134,"./xform/table/table-xform":140,"./xml/theme1.js":142,_process:467,buffer:216,fs:215,jszip:399,"readable-stream":491}],142:[function(t,e,r){"use strict";e.exports='\n '},{}],143:[function(t,e,r){(function(e){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};n(this,t),this.objectMode=!0,this.delimiter=",",this.rowDelimiter="\n",this.quote='"',this.escape=this.quote,this.quoteColumns=!1,this.quoteHeaders=this.quoteColumns,this.headers=null,this.includeEndRowDelimiter=!1,this.writeBOM=!1,this.BOM="\ufeff",this.alwaysWriteHeaders=!1,Object.assign(this,r||{}),void 0===(null==r?void 0:r.quoteHeaders)&&(this.quoteHeaders=this.quoteColumns),!0===(null==r?void 0:r.quote)?this.quote='"':!1===(null==r?void 0:r.quote)&&(this.quote=""),"string"!=typeof(null==r?void 0:r.escape)&&(this.escape=this.quote),this.shouldWriteHeaders=!!this.headers&&(null===(e=r.writeHeaders)||void 0===e||e),this.headers=Array.isArray(this.headers)?this.headers:null,this.escapedQuote="".concat(this.escape).concat(this.quote)}},{}],145:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{},i=[],o=new u.Writable({write:function(t,e,r){i.push(t),r()}});return new Promise((function(a,s){o.on("error",s).on("finish",(function(){return a(e.concat(i))})),r.write(t,n).pipe(o)}))},r.writeToString=function(t,e){return r.writeToBuffer(t,e).then((function(t){return t.toString()}))},r.writeToPath=function(t,e,n){var i=c.createWriteStream(t,{encoding:"utf8"});return r.write(e,n).pipe(i)}}).call(this,t("buffer").Buffer)},{"./CsvFormatterStream":143,"./FormatterOptions":144,"./types":149,buffer:216,fs:215,stream:506,util:525}],149:[function(t,e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.isSyncTransform=void 0,r.isSyncTransform=function(t){return 1===t.length}},{}],150:[function(t,e,r){(function(e){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){for(var r=0;r1?r-1:0),i=1;i=i||n.hasHitRowLimit)return r();if(n.parsedLineCount+=1,n.shouldSkipLine)return s();var u=t[a];n.rowCount+=1,n.parsedRowCount+=1;var c=n.rowCount;return n.transformRow(u,(function(t,e){if(t)return n.rowCount-=1,s(t);if(!e)return s(new Error("expected transform result"));if(e.isValid){if(e.row)return n.pushRow(e.row,s)}else n.emit("data-invalid",e.row,c,e.reason);return s()}))}(0)}},{key:"transformRow",value:function(t,e){var r=this;try{this.headerTransformer.transform(t,(function(n,i){return n?e(n):i?i.isValid?i.row?r.shouldEmitRows?r.rowTransformerValidator.transformAndValidate(i.row,e):r.skipRow(e):(r.rowCount-=1,r.parsedRowCount-=1,e(null,{row:null,isValid:!0})):r.shouldEmitRows?e(null,{isValid:!1,row:t}):r.skipRow(e):e(new Error("Expected result from header transform"))}))}catch(t){e(t)}}},{key:"checkAndEmitHeaders",value:function(){!this.headersEmitted&&this.headerTransformer.headers&&(this.headersEmitted=!0,this.emit("headers",this.headerTransformer.headers))}},{key:"skipRow",value:function(t){return this.rowCount-=1,t(null,{row:null,isValid:!0})}},{key:"pushRow",value:function(t,e){try{this.parserOptions.objectMode?this.push(t):this.push(JSON.stringify(t)),e()}catch(t){e(t)}}},{key:"hasHitRowLimit",get:function(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows}},{key:"shouldEmitRows",get:function(){return this.parsedRowCount>this.parserOptions.skipRows}},{key:"shouldSkipLine",get:function(){return this.parsedLineCount<=this.parserOptions.skipLines}}])&&i(r.prototype,n),u&&i(r,u),p}(l.Transform);r.CsvParserStream=p}).call(this,t("timers").setImmediate)},{"./parser":162,"./transforms":165,stream:506,string_decoder:520,timers:521}],151:[function(t,e,r){"use strict";var n=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0}),r.ParserOptions=void 0;var i=n(t("lodash.escaperegexp")),o=n(t("lodash.isnil"));r.ParserOptions=function t(e){var r;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.objectMode=!0,this.delimiter=",",this.ignoreEmpty=!1,this.quote='"',this.escape=null,this.escapeChar=this.quote,this.comment=null,this.supportsComments=!1,this.ltrim=!1,this.rtrim=!1,this.trim=!1,this.headers=null,this.renameHeaders=!1,this.strictColumnHandling=!1,this.discardUnmappedColumns=!1,this.carriageReturn="\r",this.encoding="utf8",this.limitRows=!1,this.maxRows=0,this.skipLines=0,this.skipRows=0,Object.assign(this,e||{}),this.delimiter.length>1)throw new Error("delimiter option must be one character long");this.escapedDelimiter=i.default(this.delimiter),this.escapeChar=null!==(r=this.escape)&&void 0!==r?r:this.quote,this.supportsComments=!o.default(this.comment),this.NEXT_TOKEN_REGEXP=new RegExp("([^\\s]|\\r\\n|\\n|\\r|".concat(this.escapedDelimiter,")")),this.maxRows>0&&(this.limitRows=!0)}},{"lodash.escaperegexp":426,"lodash.isnil":431}],152:[function(t,e,r){"use strict";var n=Object.create?function(t,e,r,n){void 0===n&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]},i=Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e},o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.hasOwnProperty.call(t,r)&&n(e,t,r);return i(e,t),e},a=function(t,e){for(var r in t)"default"===r||e.hasOwnProperty(r)||n(e,t,r)};Object.defineProperty(r,"__esModule",{value:!0}),r.parseString=r.parseFile=r.parseStream=r.parse=void 0;var s=o(t("fs")),u=t("stream"),c=t("./ParserOptions"),f=t("./CsvParserStream");a(t("./types"),r);var l=t("./CsvParserStream");Object.defineProperty(r,"CsvParserStream",{enumerable:!0,get:function(){return l.CsvParserStream}});var h=t("./ParserOptions");Object.defineProperty(r,"ParserOptions",{enumerable:!0,get:function(){return h.ParserOptions}}),r.parse=function(t){return new f.CsvParserStream(new c.ParserOptions(t))},r.parseStream=function(t,e){return t.pipe(new f.CsvParserStream(new c.ParserOptions(e)))},r.parseFile=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s.createReadStream(t).pipe(new f.CsvParserStream(new c.ParserOptions(e)))},r.parseString=function(t,e){var r=new u.Readable;return r.push(t),r.push(null),r.pipe(new f.CsvParserStream(new c.ParserOptions(e)))}},{"./CsvParserStream":150,"./ParserOptions":151,"./types":166,fs:215,stream:506}],153:[function(t,e,r){"use strict";function n(t,e){for(var r=0;rthis.cursor}},{key:"nextNonSpaceToken",get:function(){var t=this.lineFromCursor,e=this.parserOptions.NEXT_TOKEN_REGEXP;if(-1===t.search(e))return null;var r=e.exec(t);if(null==r)return null;var n=r[1],o=this.cursor+(r.index||0);return new i.Token({token:n,startCursor:o,endCursor:o+n.length-1})}},{key:"nextCharacterToken",get:function(){var t=this.cursor;return this.lineLength<=t?null:new i.Token({token:this.line[t],startCursor:t,endCursor:t})}},{key:"lineFromCursor",get:function(){return this.line.substr(this.cursor)}}])&&n(e.prototype,r),a&&n(e,a),t}();r.Scanner=a},{"./Token":156}],156:[function(t,e,r){"use strict";function n(t,e){for(var r=0;rthis.headersLength){if(!e.strictColumnHandling)throw new Error("Unexpected Error: column header mismatch expected: ".concat(this.headersLength," columns got: ").concat(t.length));return{row:t,isValid:!1,reason:"Column header mismatch expected: ".concat(this.headersLength," columns got: ").concat(t.length)}}return e.strictColumnHandling&&t.length1}));throw new Error("Duplicate headers found ".concat(JSON.stringify(i)))}this.headers=t,this.receivedHeaders=!0,this.headersLength=(null===(e=this.headers)||void 0===e?void 0:e.length)||0}}])&&n(e.prototype,r),i&&n(e,i),t}();r.HeaderTransformer=c},{"lodash.groupby":427,"lodash.isfunction":430,"lodash.isundefined":432,"lodash.uniq":433}],164:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:s.tag[r]}}function l(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=31)return n.error("Multi-octet tag encoding unsupported");e||(i|=32);return i|=a.tagClassByName[r||"universal"]<<6}(t,e,r,this.reporter);if(n.length<128){var s=i.alloc(2);return s[0]=o,s[1]=n.length,this._createEncoderBuffer([s,n])}for(var u=1,c=n.length;c>=256;c>>=8)u++;var f=i.alloc(2+u);f[0]=o,f[1]=128|u;for(var l=1+u,h=n.length;h>0;l--,h>>=8)f[l]=255&h;return this._createEncoderBuffer([f,n])},u.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=i.alloc(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}for(var a=0,s=0;s=128;u>>=7)a++}for(var c=i.alloc(a),f=c.length-1,l=t.length-1;l>=0;l--){var h=t[l];for(c[f--]=127&h;(h>>=7)>0;)c[f--]=128|127&h}return this._createEncoderBuffer(c)},u.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=i.from(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=i.alloc(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);for(var a=1,s=t;s>=256;s>>=8)a++;for(var u=new Array(a),c=u.length-1;c>=0;c--)u[c]=255&t,t>>=8;return 128&u[0]&&u.unshift(0),this._createEncoderBuffer(i.from(u))},u.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},u.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},u.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function c(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"===n(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===n(t))return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===e?this._parseHex(t,o):this._parseBase(t,e,o),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,h=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=h;d++){var p=c-d|0;f+=(a=(i=0|t.words[p])*(o=0|e.words[d])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?f[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=l[t],d=h[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(d).toString(t);r=(p=p.idivn(d)).isZero()?m+r:f[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,c=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,y=0|a[2],b=8191&y,v=y>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],x=8191&k,S=k>>>13,O=0|a[5],j=8191&O,E=O>>>13,R=0|a[6],T=8191&R,C=R>>>13,P=0|a[7],M=8191&P,A=P>>>13,I=0|a[8],N=8191&I,D=I>>>13,B=0|a[9],F=8191&B,L=B>>>13,z=0|s[0],U=8191&z,H=z>>>13,V=0|s[1],q=8191&V,W=V>>>13,$=0|s[2],X=8191&$,K=$>>>13,Z=0|s[3],Y=8191&Z,G=Z>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ct=st>>>13,ft=0|s[8],lt=8191&ft,ht=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(c+(n=Math.imul(l,U))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(h,U)|0))<<13)|0;c=((o=Math.imul(h,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,H))+Math.imul(m,U)|0,o=Math.imul(m,H);var bt=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(h,q)|0))<<13)|0;c=((o=o+Math.imul(h,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,H))+Math.imul(v,U)|0,o=Math.imul(v,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,W)|0;var vt=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(h,X)|0))<<13)|0;c=((o=o+Math.imul(h,K)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,H))+Math.imul(_,U)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,W)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,K)|0;var gt=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(i=(i=i+Math.imul(l,G)|0)+Math.imul(h,Y)|0))<<13)|0;c=((o=o+Math.imul(h,G)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,H))+Math.imul(S,U)|0,o=Math.imul(S,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,X)|0,o=o+Math.imul(v,K)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,G)|0;var wt=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((o=o+Math.imul(h,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,H))+Math.imul(E,U)|0,o=Math.imul(E,H),n=n+Math.imul(x,q)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(S,q)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(v,Y)|0,o=o+Math.imul(v,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0;var _t=(c+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((o=o+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,H))+Math.imul(C,U)|0,o=Math.imul(C,H),n=n+Math.imul(j,q)|0,i=(i=i+Math.imul(j,W)|0)+Math.imul(E,q)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,K)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,G)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var kt=(c+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,at)|0)+Math.imul(h,ot)|0))<<13)|0;c=((o=o+Math.imul(h,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,H))+Math.imul(A,U)|0,o=Math.imul(A,H),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(C,q)|0,o=o+Math.imul(C,W)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,K)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var xt=(c+(n=n+Math.imul(l,ut)|0)|0)+((8191&(i=(i=i+Math.imul(l,ct)|0)+Math.imul(h,ut)|0))<<13)|0;c=((o=o+Math.imul(h,ct)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(N,U),i=(i=Math.imul(N,H))+Math.imul(D,U)|0,o=Math.imul(D,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,W)|0,n=n+Math.imul(T,X)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul(j,Y)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var St=(c+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ht)|0)+Math.imul(h,lt)|0))<<13)|0;c=((o=o+Math.imul(h,ht)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,H))+Math.imul(L,U)|0,o=Math.imul(L,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,W)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,W)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(b,ut)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ct)|0,n=n+Math.imul(p,lt)|0,i=(i=i+Math.imul(p,ht)|0)+Math.imul(m,lt)|0,o=o+Math.imul(m,ht)|0;var Ot=(c+(n=n+Math.imul(l,pt)|0)|0)+((8191&(i=(i=i+Math.imul(l,mt)|0)+Math.imul(h,pt)|0))<<13)|0;c=((o=o+Math.imul(h,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,q),i=(i=Math.imul(F,W))+Math.imul(L,q)|0,o=Math.imul(L,W),n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul(j,rt)|0,i=(i=i+Math.imul(j,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ct)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ct)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(v,lt)|0,o=o+Math.imul(v,ht)|0;var jt=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,o=Math.imul(L,K),n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,G)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,G)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul(j,ot)|0,i=(i=i+Math.imul(j,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ct)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,lt)|0,i=(i=i+Math.imul(w,ht)|0)+Math.imul(_,lt)|0,o=o+Math.imul(_,ht)|0;var Et=(c+(n=n+Math.imul(b,pt)|0)|0)+((8191&(i=(i=i+Math.imul(b,mt)|0)+Math.imul(v,pt)|0))<<13)|0;c=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,G))+Math.imul(L,Y)|0,o=Math.imul(L,G),n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,tt)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul(j,ut)|0,i=(i=i+Math.imul(j,ct)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ct)|0,n=n+Math.imul(x,lt)|0,i=(i=i+Math.imul(x,ht)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ht)|0;var Rt=(c+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,mt)|0)+Math.imul(_,pt)|0))<<13)|0;c=((o=o+Math.imul(_,mt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(L,Q)|0,o=Math.imul(L,tt),n=n+Math.imul(N,rt)|0,i=(i=i+Math.imul(N,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,at)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,at)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(C,ut)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul(j,lt)|0,i=(i=i+Math.imul(j,ht)|0)+Math.imul(E,lt)|0,o=o+Math.imul(E,ht)|0;var Tt=(c+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(S,pt)|0))<<13)|0;c=((o=o+Math.imul(S,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(L,rt)|0,o=Math.imul(L,nt),n=n+Math.imul(N,ot)|0,i=(i=i+Math.imul(N,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(C,lt)|0,o=o+Math.imul(C,ht)|0;var Ct=(c+(n=n+Math.imul(j,pt)|0)|0)+((8191&(i=(i=i+Math.imul(j,mt)|0)+Math.imul(E,pt)|0))<<13)|0;c=((o=o+Math.imul(E,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,ot),i=(i=Math.imul(F,at))+Math.imul(L,ot)|0,o=Math.imul(L,at),n=n+Math.imul(N,ut)|0,i=(i=i+Math.imul(N,ct)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,ct)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(A,lt)|0,o=o+Math.imul(A,ht)|0;var Pt=(c+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(C,pt)|0))<<13)|0;c=((o=o+Math.imul(C,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(F,ut),i=(i=Math.imul(F,ct))+Math.imul(L,ut)|0,o=Math.imul(L,ct),n=n+Math.imul(N,lt)|0,i=(i=i+Math.imul(N,ht)|0)+Math.imul(D,lt)|0,o=o+Math.imul(D,ht)|0;var Mt=(c+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ht))+Math.imul(L,lt)|0,o=Math.imul(L,ht);var At=(c+(n=n+Math.imul(N,pt)|0)|0)+((8191&(i=(i=i+Math.imul(N,mt)|0)+Math.imul(D,pt)|0))<<13)|0;c=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863;var It=(c+(n=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,mt))+Math.imul(L,pt)|0))<<13)|0;return c=((o=Math.imul(L,mt))+(i>>>13)|0)+(It>>>26)|0,It&=67108863,u[0]=yt,u[1]=bt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=xt,u[8]=St,u[9]=Ot,u[10]=jt,u[11]=Et,u[12]=Rt,u[13]=Tt,u[14]=Ct,u[15]=Pt,u[16]=Mt,u[17]=At,u[18]=It,0!==c&&(u[19]=c,r.length++),r};function m(t,e,r){return(new y).mulp(t,e,r)}function y(t,e){this.x=t,this.y=e}Math.imul||(p=d),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?d(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):m(this,t,e)},y.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},y.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,c=0;c=0&&(0!==f||c>=n);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var h=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,l);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=e.clone();!e.isZero();){for(var h=0,d=1;0==(e.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(f),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(e.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,h=1;0==(r.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new x(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function x(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){x.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new g;else if("p224"===t)e=new w;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return b[t]=e,e},x.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},x.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},x.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},x.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},x.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},x.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},x.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},x.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},x.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},x.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},x.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},x.prototype.isqr=function(t){return this.imul(t,t.clone())},x.prototype.sqr=function(t){return this.mul(t,t)},x.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,n),h=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=o;0!==d.cmp(s);){for(var m=d,y=0;0!==m.cmp(s);y++)m=m.redSqr();i(y=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===n&&0===f)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},x.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},x.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,x),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e)},{buffer:185}],182:[function(t,e,r){"use strict";r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r.toByteArray=function(t){var e,r,n=c(t),a=n[0],s=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,a,s)),f=0,l=s>0?a-4:a;for(r=0;r>16&255,u[f++]=e>>8&255,u[f++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[f++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e);return u},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],a=0,s=r-i;as?s:a+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function f(t,e,r){for(var i,o,a=[],s=e;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],183:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(e,r){function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===n(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=t("buffer").Buffer}catch(t){}function u(t,e,r){for(var n=0,o=Math.min(t.length,r),a=0,s=e;s=49&&c<=54?c-49+10:c>=17&&c<=22?c-17+10:c,a|=u}return i(!(240&a),"Invalid character in "+t),n}function c(t,e,r,n){for(var o=0,a=0,s=Math.min(t.length,r),u=e;u=49?c-49+10:c>=17?c-17+10:c,i(c>=0&&a0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===n(t))return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===e?this._parseHex(t,o):this._parseBase(t,e,o),"-"===t[0]&&(this.negative=1),this._strip(),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this._strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(t){a.prototype.inspect=l}else a.prototype.inspect=l;function l(){return(this.red?""}var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?h[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=d[t],f=p[t];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var m=l.modrn(f).toString(t);r=(l=l.idivn(f)).isZero()?m+r:h[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(t,e){return this.toArrayLike(s,t,e)}),a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function m(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,h=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=h;d++){var p=c-d|0;f+=(a=(i=0|t.words[p])*(o=0|e.words[d])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}a.prototype.toArrayLike=function(t,e,r){this._strip();var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0");var a=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](a,n),a},a.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r=0&&(t[r--]=a>>8&255),r>=0&&(t[r--]=a>>16&255),6===o?(r>=0&&(t[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,y=0|a[2],b=8191&y,v=y>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],x=8191&k,S=k>>>13,O=0|a[5],j=8191&O,E=O>>>13,R=0|a[6],T=8191&R,C=R>>>13,P=0|a[7],M=8191&P,A=P>>>13,I=0|a[8],N=8191&I,D=I>>>13,B=0|a[9],F=8191&B,L=B>>>13,z=0|s[0],U=8191&z,H=z>>>13,V=0|s[1],q=8191&V,W=V>>>13,$=0|s[2],X=8191&$,K=$>>>13,Z=0|s[3],Y=8191&Z,G=Z>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ct=st>>>13,ft=0|s[8],lt=8191&ft,ht=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(c+(n=Math.imul(l,U))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(h,U)|0))<<13)|0;c=((o=Math.imul(h,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,H))+Math.imul(m,U)|0,o=Math.imul(m,H);var bt=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(h,q)|0))<<13)|0;c=((o=o+Math.imul(h,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,H))+Math.imul(v,U)|0,o=Math.imul(v,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,W)|0;var vt=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(h,X)|0))<<13)|0;c=((o=o+Math.imul(h,K)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,H))+Math.imul(_,U)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,W)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,K)|0;var gt=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(i=(i=i+Math.imul(l,G)|0)+Math.imul(h,Y)|0))<<13)|0;c=((o=o+Math.imul(h,G)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,H))+Math.imul(S,U)|0,o=Math.imul(S,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,X)|0,o=o+Math.imul(v,K)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,G)|0;var wt=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((o=o+Math.imul(h,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,H))+Math.imul(E,U)|0,o=Math.imul(E,H),n=n+Math.imul(x,q)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(S,q)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(v,Y)|0,o=o+Math.imul(v,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0;var _t=(c+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((o=o+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,H))+Math.imul(C,U)|0,o=Math.imul(C,H),n=n+Math.imul(j,q)|0,i=(i=i+Math.imul(j,W)|0)+Math.imul(E,q)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,K)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,G)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var kt=(c+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,at)|0)+Math.imul(h,ot)|0))<<13)|0;c=((o=o+Math.imul(h,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,H))+Math.imul(A,U)|0,o=Math.imul(A,H),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(C,q)|0,o=o+Math.imul(C,W)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,K)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var xt=(c+(n=n+Math.imul(l,ut)|0)|0)+((8191&(i=(i=i+Math.imul(l,ct)|0)+Math.imul(h,ut)|0))<<13)|0;c=((o=o+Math.imul(h,ct)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(N,U),i=(i=Math.imul(N,H))+Math.imul(D,U)|0,o=Math.imul(D,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,W)|0,n=n+Math.imul(T,X)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul(j,Y)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var St=(c+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ht)|0)+Math.imul(h,lt)|0))<<13)|0;c=((o=o+Math.imul(h,ht)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,H))+Math.imul(L,U)|0,o=Math.imul(L,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,W)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,W)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(b,ut)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ct)|0,n=n+Math.imul(p,lt)|0,i=(i=i+Math.imul(p,ht)|0)+Math.imul(m,lt)|0,o=o+Math.imul(m,ht)|0;var Ot=(c+(n=n+Math.imul(l,pt)|0)|0)+((8191&(i=(i=i+Math.imul(l,mt)|0)+Math.imul(h,pt)|0))<<13)|0;c=((o=o+Math.imul(h,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,q),i=(i=Math.imul(F,W))+Math.imul(L,q)|0,o=Math.imul(L,W),n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul(j,rt)|0,i=(i=i+Math.imul(j,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ct)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ct)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(v,lt)|0,o=o+Math.imul(v,ht)|0;var jt=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,o=Math.imul(L,K),n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,G)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,G)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul(j,ot)|0,i=(i=i+Math.imul(j,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ct)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,lt)|0,i=(i=i+Math.imul(w,ht)|0)+Math.imul(_,lt)|0,o=o+Math.imul(_,ht)|0;var Et=(c+(n=n+Math.imul(b,pt)|0)|0)+((8191&(i=(i=i+Math.imul(b,mt)|0)+Math.imul(v,pt)|0))<<13)|0;c=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,G))+Math.imul(L,Y)|0,o=Math.imul(L,G),n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,tt)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul(j,ut)|0,i=(i=i+Math.imul(j,ct)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ct)|0,n=n+Math.imul(x,lt)|0,i=(i=i+Math.imul(x,ht)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ht)|0;var Rt=(c+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,mt)|0)+Math.imul(_,pt)|0))<<13)|0;c=((o=o+Math.imul(_,mt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(L,Q)|0,o=Math.imul(L,tt),n=n+Math.imul(N,rt)|0,i=(i=i+Math.imul(N,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,at)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,at)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(C,ut)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul(j,lt)|0,i=(i=i+Math.imul(j,ht)|0)+Math.imul(E,lt)|0,o=o+Math.imul(E,ht)|0;var Tt=(c+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(S,pt)|0))<<13)|0;c=((o=o+Math.imul(S,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(L,rt)|0,o=Math.imul(L,nt),n=n+Math.imul(N,ot)|0,i=(i=i+Math.imul(N,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(C,lt)|0,o=o+Math.imul(C,ht)|0;var Ct=(c+(n=n+Math.imul(j,pt)|0)|0)+((8191&(i=(i=i+Math.imul(j,mt)|0)+Math.imul(E,pt)|0))<<13)|0;c=((o=o+Math.imul(E,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,ot),i=(i=Math.imul(F,at))+Math.imul(L,ot)|0,o=Math.imul(L,at),n=n+Math.imul(N,ut)|0,i=(i=i+Math.imul(N,ct)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,ct)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(A,lt)|0,o=o+Math.imul(A,ht)|0;var Pt=(c+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(C,pt)|0))<<13)|0;c=((o=o+Math.imul(C,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(F,ut),i=(i=Math.imul(F,ct))+Math.imul(L,ut)|0,o=Math.imul(L,ct),n=n+Math.imul(N,lt)|0,i=(i=i+Math.imul(N,ht)|0)+Math.imul(D,lt)|0,o=o+Math.imul(D,ht)|0;var Mt=(c+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ht))+Math.imul(L,lt)|0,o=Math.imul(L,ht);var At=(c+(n=n+Math.imul(N,pt)|0)|0)+((8191&(i=(i=i+Math.imul(N,mt)|0)+Math.imul(D,pt)|0))<<13)|0;c=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863;var It=(c+(n=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,mt))+Math.imul(L,pt)|0))<<13)|0;return c=((o=Math.imul(L,mt))+(i>>>13)|0)+(It>>>26)|0,It&=67108863,u[0]=yt,u[1]=bt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=xt,u[8]=St,u[9]=Ot,u[10]=jt,u[11]=Et,u[12]=Rt,u[13]=Tt,u[14]=Ct,u[15]=Pt,u[16]=Mt,u[17]=At,u[18]=It,0!==c&&(u[19]=c,r.length++),r};function b(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function v(t,e,r){return b(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(y=m),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?y(this,t,e):r<63?m(this,t,e):r<1024?b(this,t,e):v(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,r+=o/67108864|0,r+=a>>>26,this.words[n]=67108863&a}return 0!==r&&(this.words[n]=r,this.length++),e?this.ineg():this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i&1}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,c=0;c=0&&(0!==f||c>=n);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this._strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this._strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var h=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,l);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=h)}return s&&s._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modrn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modrn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=(1<<26)%t,n=0,o=this.length-1;o>=0;o--)n=(r*n+(0|this.words[o]))%t;return e?-n:n},a.prototype.modn=function(t){return this.modrn(t)},a.prototype.idivn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*r;this.words[n]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=e.clone();!e.isZero();){for(var h=0,d=1;0==(e.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(f),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(e.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,h=1;0==(r.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new j(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var w={k256:null,p224:null,p192:null,p25519:null};function _(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function k(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function S(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function O(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function j(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){j.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},_.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(t,e){t.iushrn(this.n,0,e)},_.prototype.imulK=function(t){return t.imul(this.k)},o(k,_),k.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},k.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(w[t])return w[t];var e;if("k256"===t)e=new k;else if("p224"===t)e=new x;else if("p192"===t)e=new S;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new O}return w[t]=e,e},j.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},j.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},j.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(f(t,t.umod(this.m)._forceRed(this)),t)},j.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},j.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},j.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},j.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},j.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},j.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},j.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},j.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},j.prototype.isqr=function(t){return this.imul(t,t.clone())},j.prototype.sqr=function(t){return this.mul(t,t)},j.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,n),h=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=o;0!==d.cmp(s);){for(var m=d,y=0;0!==m.cmp(s);y++)m=m.redSqr();i(y=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===n&&0===f)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},j.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},j.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new E(t)},o(E,j),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e)},{buffer:185}],184:[function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i;function o(t){this.rand=t}if(e.exports=function(t){return i||(i=new o(null)),i.generate(t)},e.exports.Rand=o,o.prototype.generate=function(t){return this._rand(t)},o.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r>>24]^f[p>>>16&255]^l[m>>>8&255]^h[255&y]^e[b++],a=c[p>>>24]^f[m>>>16&255]^l[y>>>8&255]^h[255&d]^e[b++],s=c[m>>>24]^f[y>>>16&255]^l[d>>>8&255]^h[255&p]^e[b++],u=c[y>>>24]^f[d>>>16&255]^l[p>>>8&255]^h[255&m]^e[b++],d=o,p=a,m=s,y=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&y])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[y>>>8&255]<<8|n[255&d])^e[b++],s=(n[m>>>24]<<24|n[y>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[b++],u=(n[y>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],[o>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,r[a]=c,n[c]=a;var f=t[a],l=t[f],h=t[l],d=257*t[c]^16843008*c;i[0][a]=d<<24|d>>>8,i[1][a]=d<<16|d>>>16,i[2][a]=d<<8|d>>>24,i[3][a]=d,d=16843009*h^65537*l^257*f^16843008*a,o[0][c]=d<<24|d>>>8,o[1][c]=d<<16|d>>>16,o[2][c]=d<<8|d>>>24,o[3][c]=d,0===a?a=s=1:(a=f^t[t[t[h^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function c(t){this._key=i(t),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var c=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[h>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[h>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&h]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(t){return a(t=i(t),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},c.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},c.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=c},{"safe-buffer":494}],187:[function(t,e,r){"use strict";var n=t("./aes"),i=t("safe-buffer").Buffer,o=t("cipher-base"),a=t("inherits"),s=t("./ghash"),u=t("buffer-xor"),c=t("./incr32");function f(t,e,r,a){o.call(this);var u=i.alloc(4,0);this._cipher=new n.AES(e);var f=this._cipher.encryptBlock(u);this._ghash=new s(f),r=function(t,e,r){if(12===e.length)return t._finID=i.concat([e,i.from([0,0,0,1])]),i.concat([e,i.from([0,0,0,2])]);var n=new s(r),o=e.length,a=o%16;n.update(e),a&&(a=16-a,n.update(i.alloc(a,0))),n.update(i.alloc(8,0));var u=8*o,f=i.alloc(8);f.writeUIntBE(u,0,8),n.update(f),t._finID=n.state;var l=i.from(t._finID);return c(l),l}(this,r,f),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}a(f,o),f.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=i.alloc(e,0),this._ghash.update(e))}this._called=!0;var r=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(r),this._len+=t.length,r},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(t,e){var r=o[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=c(e,!1,r.key,r.iv);return h(t,n.key,n.iv)},r.createDecipheriv=h},{"./aes":186,"./authCipher":187,"./modes":199,"./streamCipher":202,"cipher-base":218,evp_bytestokey:368,inherits:387,"safe-buffer":494}],190:[function(t,e,r){"use strict";var n=t("./modes"),i=t("./authCipher"),o=t("safe-buffer").Buffer,a=t("./streamCipher"),s=t("cipher-base"),u=t("./aes"),c=t("evp_bytestokey");function f(t,e,r){s.call(this),this._cache=new h,this._cipher=new u.AES(e),this._prev=o.from(r),this._mode=t,this._autopadding=!0}t("inherits")(f,s),f.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get();)r=this._mode.encrypt(this,e),n.push(r);return o.concat(n)};var l=o.alloc(16,16);function h(){this.cache=o.allocUnsafe(0)}function d(t,e,r){var s=n[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=o.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof r&&(r=o.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===s.type?new a(s.module,e,r):"auth"===s.type?new i(s.module,e,r):new f(s.module,e,r)}f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},h.prototype.add=function(t){this.cache=o.concat([this.cache,t])},h.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},h.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;++r>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function a(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(t){for(var e=-1;++e0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},a.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},a.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,t,0,e])),this.state},e.exports=a},{"safe-buffer":494}],192:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=t.length;r--;){if(255!==(e=t.readUInt8(r))){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}},{}],193:[function(t,e,r){"use strict";var n=t("buffer-xor");r.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},r.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},{"buffer-xor":217}],194:[function(t,e,r){"use strict";var n=t("safe-buffer").Buffer,i=t("buffer-xor");function o(t,e,r){var o=e.length,a=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:a]),a}r.encrypt=function(t,e,r){for(var i,a=n.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){a=n.concat([a,o(t,e,r)]);break}i=t._cache.length,a=n.concat([a,o(t,e.slice(0,i),r)]),e=e.slice(i)}return a}},{"buffer-xor":217,"safe-buffer":494}],195:[function(t,e,r){"use strict";var n=t("safe-buffer").Buffer;function i(t,e,r){for(var n,i,a=-1,s=0;++a<8;)n=e&1<<7-a?128:0,s+=(128&(i=t._cipher.encryptBlock(t._prev)[0]^n))>>a%8,t._prev=o(t._prev,r?n:i);return s}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++i>7;return o}r.encrypt=function(t,e,r){for(var o=e.length,a=n.allocUnsafe(o),s=-1;++s=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new n(i(e));return r}e.exports=o,o.getr=a}).call(this,t("buffer").Buffer)},{"bn.js":207,buffer:216,randombytes:475}],207:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],208:[function(t,e,r){"use strict";e.exports=t("./browser/algorithms.json")},{"./browser/algorithms.json":209}],209:[function(t,e,r){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],210:[function(t,e,r){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],211:[function(t,e,r){"use strict";var n=t("safe-buffer").Buffer,i=t("create-hash"),o=t("readable-stream"),a=t("inherits"),s=t("./sign"),u=t("./verify"),c=t("./algorithms.json");function f(t){o.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function h(t){return new f(t)}function d(t){return new l(t)}Object.keys(c).forEach((function(t){c[t].id=n.from(c[t].id,"hex"),c[t.toLowerCase()]=c[t]})),a(f,o.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},f.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},a(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return"string"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},l.prototype.verify=function(t,e,r){"string"==typeof e&&(e=n.from(e,r)),this.end();var i=this._hash.digest();return u(e,i,t,this._signType,this._tag)},e.exports={Sign:h,Verify:d,createSign:h,createVerify:d}},{"./algorithms.json":209,"./sign":212,"./verify":213,"create-hash":331,inherits:387,"readable-stream":491,"safe-buffer":214}],212:[function(t,e,r){"use strict";var n=t("safe-buffer").Buffer,i=t("create-hmac"),o=t("browserify-rsa"),a=t("elliptic").ec,s=t("bn.js"),u=t("parse-asn1"),c=t("./curves.json");function f(t,e,r,o){if((t=n.from(t.toArray())).length0&&r.ishrn(n),r}function h(t,e,r){var o,a;do{for(o=n.alloc(0);8*o.length=e)throw new Error("invalid sig")}e.exports=function(t,e,r,c,f){var l=a(r);if("ec"===l.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),a=r.data.subjectPrivateKey.data;return i.verify(e,t,a)}(t,e,l)}if("dsa"===l.type){if("dsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var n=r.data.p,o=r.data.q,s=r.data.g,c=r.data.pub_key,f=a.signature.decode(t,"der"),l=f.s,h=f.r;u(l,o),u(h,o);var d=i.mont(n),p=l.invm(o);return 0===s.toRed(d).redPow(new i(e).mul(p).mod(o)).fromRed().mul(c.toRed(d).redPow(h.mul(p).mod(o)).fromRed()).mod(n).mod(o).cmp(h)}(t,e,l)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");e=n.concat([f,e]);for(var h=l.modulus.byteLength(),d=[1],p=0;e.length+d.length+2 */var n=t("buffer"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,r),r.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},{buffer:216}],215:[function(t,e,r){arguments[4][185][0].apply(r,arguments)},{dup:185}],216:[function(t,e,r){(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ "use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i=t("base64-js"),o=t("ieee754");r.Buffer=e,r.SlowBuffer=function(t){+t!=t&&(t=0);return e.alloc(+t)},r.INSPECT_MAX_BYTES=50;function a(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var r=new Uint8Array(t);return r.__proto__=e.prototype,r}function e(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return c(t)}return s(t,e,r)}function s(t,r,i){if("string"==typeof t)return function(t,r){"string"==typeof r&&""!==r||(r="utf8");if(!e.isEncoding(r))throw new TypeError("Unknown encoding: "+r);var n=0|h(t,r),i=a(n),o=i.write(t,r);o!==n&&(i=i.slice(0,o));return i}(t,r);if(ArrayBuffer.isView(t))return f(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+n(t));if(L(t,ArrayBuffer)||t&&L(t.buffer,ArrayBuffer))return function(t,r,n){if(r<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function h(t,r){if(e.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||L(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+n(t));var i=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===i)return 0;for(var a=!1;;)switch(r){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return D(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return B(t).length;default:if(a)return o?-1:D(t).length;r=(""+r).toLowerCase(),a=!0}}function d(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return E(this,e,r);case"utf8":case"utf-8":return S(this,e,r);case"ascii":return O(this,e,r);case"latin1":case"binary":return j(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function m(t,r,n,i,o){if(0===t.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),z(n=+n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof r&&(r=e.from(r,i)),e.isBuffer(r))return 0===r.length?-1:y(t,r,n,i,o);if("number"==typeof r)return r&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,r,n):Uint8Array.prototype.lastIndexOf.call(t,r,n):y(t,[r],n,i,o);throw new TypeError("val must be string, number or Buffer")}function y(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var l=!0,h=0;hi&&(n=i):n=i;var o=e.length;n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,r))}function S(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=l}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;ne&&(t+=" ... "),""},e.prototype.compare=function(t,r,i,o,a){if(L(t,Uint8Array)&&(t=e.from(t,t.offset,t.byteLength)),!e.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+n(t));if(void 0===r&&(r=0),void 0===i&&(i=t?t.length:0),void 0===o&&(o=0),void 0===a&&(a=this.length),r<0||i>t.length||o<0||a>this.length)throw new RangeError("out of range index");if(o>=a&&r>=i)return 0;if(o>=a)return-1;if(r>=i)return 1;if(this===t)return 0;for(var s=(a>>>=0)-(o>>>=0),u=(i>>>=0)-(r>>>=0),c=Math.min(s,u),f=this.slice(o,a),l=t.slice(r,i),h=0;h>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,t,e,r);case"utf8":case"utf-8":return v(this,t,e,r);case"ascii":return g(this,t,e,r);case"latin1":case"binary":return w(this,t,e,r);case"base64":return _(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},e.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function C(t,r,n,i,o,a){if(!e.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>o||rt.length)throw new RangeError("Index out of range")}function P(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function M(t,e,r,n,i){return e=+e,r>>>=0,i||P(t,0,r,4),o.write(t,e,r,n,23,4),r+4}function A(t,e,r,n,i){return e=+e,r>>>=0,i||P(t,0,r,8),o.write(t,e,r,n,52,8),r+8}e.prototype.slice=function(t,r){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},e.prototype.readUInt8=function(t,e){return t>>>=0,e||T(t,1,this.length),this[t]},e.prototype.readUInt16LE=function(t,e){return t>>>=0,e||T(t,2,this.length),this[t]|this[t+1]<<8},e.prototype.readUInt16BE=function(t,e){return t>>>=0,e||T(t,2,this.length),this[t]<<8|this[t+1]},e.prototype.readUInt32LE=function(t,e){return t>>>=0,e||T(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},e.prototype.readUInt32BE=function(t,e){return t>>>=0,e||T(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},e.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},e.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},e.prototype.readInt8=function(t,e){return t>>>=0,e||T(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},e.prototype.readInt16LE=function(t,e){t>>>=0,e||T(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt16BE=function(t,e){t>>>=0,e||T(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt32LE=function(t,e){return t>>>=0,e||T(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},e.prototype.readInt32BE=function(t,e){return t>>>=0,e||T(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},e.prototype.readFloatLE=function(t,e){return t>>>=0,e||T(t,4,this.length),o.read(this,t,!0,23,4)},e.prototype.readFloatBE=function(t,e){return t>>>=0,e||T(t,4,this.length),o.read(this,t,!1,23,4)},e.prototype.readDoubleLE=function(t,e){return t>>>=0,e||T(t,8,this.length),o.read(this,t,!0,52,8)},e.prototype.readDoubleBE=function(t,e){return t>>>=0,e||T(t,8,this.length),o.read(this,t,!1,52,8)},e.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},e.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,255,0),this[e]=255&t,e+1},e.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},e.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},e.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},e.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},e.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},e.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeFloatLE=function(t,e,r){return M(this,t,e,!0,r)},e.prototype.writeFloatBE=function(t,e,r){return M(this,t,e,!1,r)},e.prototype.writeDoubleLE=function(t,e,r){return A(this,t,e,!0,r)},e.prototype.writeDoubleBE=function(t,e,r){return A(this,t,e,!1,r)},e.prototype.copy=function(t,r,n,i){if(!e.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r=0;--a)t[a+r]=this[a+n];else Uint8Array.prototype.set.call(t,this.subarray(n,i),r);return o},e.prototype.fill=function(t,r,n,i){if("string"==typeof t){if("string"==typeof r?(i=r,r=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!e.isEncoding(i))throw new TypeError("Unknown encoding: "+i);if(1===t.length){var o=t.charCodeAt(0);("utf8"===i&&o<128||"latin1"===i)&&(t=o)}}else"number"==typeof t&&(t&=255);if(r<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=r;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function B(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(I,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function L(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function z(t){return t!=t}}).call(this,t("buffer").Buffer)},{"base64-js":182,buffer:216,ieee754:385}],217:[function(t,e,r){(function(t){"use strict";e.exports=function(e,r){for(var n=Math.min(e.length,r.length),i=new t(n),o=0;of;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},{"../internals/to-absolute-index":304,"../internals/to-indexed-object":305,"../internals/to-length":307}],225:[function(t,e,r){var n=t("../internals/function-bind-context"),i=t("../internals/indexed-object"),o=t("../internals/to-object"),a=t("../internals/to-length"),s=t("../internals/array-species-create"),u=[].push,c=function(t){var e=1==t,r=2==t,c=3==t,f=4==t,l=6==t,h=5==t||l;return function(d,p,m,y){for(var b,v,g=o(d),w=i(g),_=n(p,m,3),k=a(w.length),x=0,S=y||s,O=e?S(d,k):r?S(d,0):void 0;k>x;x++)if((h||x in w)&&(v=_(b=w[x],x,g),t))if(e)O[x]=v;else if(v)switch(t){case 3:return!0;case 5:return b;case 6:return x;case 2:u.call(O,b)}else if(f)return!1;return l?-1:c||f?f:O}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},{"../internals/array-species-create":227,"../internals/function-bind-context":248,"../internals/indexed-object":257,"../internals/to-length":307,"../internals/to-object":308}],226:[function(t,e,r){var n=t("../internals/descriptors"),i=t("../internals/fails"),o=t("../internals/has"),a=Object.defineProperty,s={},u=function(t){throw t};e.exports=function(t,e){if(o(s,t))return s[t];e||(e={});var r=[][t],c=!!o(e,"ACCESSORS")&&e.ACCESSORS,f=o(e,0)?e[0]:u,l=o(e,1)?e[1]:void 0;return s[t]=!!r&&!i((function(){if(c&&!n)return!0;var t={length:-1};c?a(t,1,{enumerable:!0,get:u}):t[1]=1,r.call(t,f,l)}))}},{"../internals/descriptors":240,"../internals/fails":247,"../internals/has":252}],227:[function(t,e,r){var n=t("../internals/is-object"),i=t("../internals/is-array"),o=t("../internals/well-known-symbol")("species");e.exports=function(t,e){var r;return i(t)&&("function"!=typeof(r=t.constructor)||r!==Array&&!i(r.prototype)?n(r)&&null===(r=r[o])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)}},{"../internals/is-array":261,"../internals/is-object":263,"../internals/well-known-symbol":314}],228:[function(t,e,r){var n=t("../internals/an-object");e.exports=function(t,e,r,i){try{return i?e(n(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&n(o.call(t)),e}}},{"../internals/an-object":223}],229:[function(t,e,r){var n=t("../internals/well-known-symbol")("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[n]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}e.exports=function(t,e){if(!e&&!i)return!1;var r=!1;try{var o={};o[n]=function(){return{next:function(){return{done:r=!0}}}},t(o)}catch(t){}return r}},{"../internals/well-known-symbol":314}],230:[function(t,e,r){var n={}.toString;e.exports=function(t){return n.call(t).slice(8,-1)}},{}],231:[function(t,e,r){var n=t("../internals/to-string-tag-support"),i=t("../internals/classof-raw"),o=t("../internals/well-known-symbol")("toStringTag"),a="Arguments"==i(function(){return arguments}());e.exports=n?i:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:a?i(e):"Object"==(n=i(e))&&"function"==typeof e.callee?"Arguments":n}},{"../internals/classof-raw":230,"../internals/to-string-tag-support":310,"../internals/well-known-symbol":314}],232:[function(t,e,r){var n=t("../internals/has"),i=t("../internals/own-keys"),o=t("../internals/object-get-own-property-descriptor"),a=t("../internals/object-define-property");e.exports=function(t,e){for(var r=i(e),s=a.f,u=o.f,c=0;c=74)&&(n=a.match(/Chrome\/(\d+)/))&&(i=n[1]),e.exports=i&&+i},{"../internals/engine-user-agent":243,"../internals/global":251}],245:[function(t,e,r){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},{}],246:[function(t,e,r){var n=t("../internals/global"),i=t("../internals/object-get-own-property-descriptor").f,o=t("../internals/create-non-enumerable-property"),a=t("../internals/redefine"),s=t("../internals/set-global"),u=t("../internals/copy-constructor-properties"),c=t("../internals/is-forced");e.exports=function(t,e){var r,f,l,h,d,p=t.target,m=t.global,y=t.stat;if(r=m?n:y?n[p]||s(p,{}):(n[p]||{}).prototype)for(f in e){if(h=e[f],l=t.noTargetGet?(d=i(r,f))&&d.value:r[f],!c(m?f:p+(y?".":"#")+f,t.forced)&&void 0!==l){if(typeof h==typeof l)continue;u(h,l)}(t.sham||l&&l.sham)&&o(h,"sham",!0),a(r,f,h,t)}}},{"../internals/copy-constructor-properties":232,"../internals/create-non-enumerable-property":236,"../internals/global":251,"../internals/is-forced":262,"../internals/object-get-own-property-descriptor":279,"../internals/redefine":294,"../internals/set-global":296}],247:[function(t,e,r){e.exports=function(t){try{return!!t()}catch(t){return!0}}},{}],248:[function(t,e,r){var n=t("../internals/a-function");e.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}}},{"../internals/a-function":219}],249:[function(t,e,r){var n=t("../internals/path"),i=t("../internals/global"),o=function(t){return"function"==typeof t?t:void 0};e.exports=function(t,e){return arguments.length<2?o(n[t])||o(i[t]):n[t]&&n[t][e]||i[t]&&i[t][e]}},{"../internals/global":251,"../internals/path":290}],250:[function(t,e,r){var n=t("../internals/classof"),i=t("../internals/iterators"),o=t("../internals/well-known-symbol")("iterator");e.exports=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[n(t)]}},{"../internals/classof":231,"../internals/iterators":268,"../internals/well-known-symbol":314}],251:[function(t,e,r){(function(t){var r=function(t){return t&&t.Math==Math&&t};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],252:[function(t,e,r){var n={}.hasOwnProperty;e.exports=function(t,e){return n.call(t,e)}},{}],253:[function(t,e,r){e.exports={}},{}],254:[function(t,e,r){var n=t("../internals/global");e.exports=function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}},{"../internals/global":251}],255:[function(t,e,r){var n=t("../internals/get-built-in");e.exports=n("document","documentElement")},{"../internals/get-built-in":249}],256:[function(t,e,r){var n=t("../internals/descriptors"),i=t("../internals/fails"),o=t("../internals/document-create-element");e.exports=!n&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},{"../internals/descriptors":240,"../internals/document-create-element":241,"../internals/fails":247}],257:[function(t,e,r){var n=t("../internals/fails"),i=t("../internals/classof-raw"),o="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?o.call(t,""):Object(t)}:Object},{"../internals/classof-raw":230,"../internals/fails":247}],258:[function(t,e,r){var n=t("../internals/shared-store"),i=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(t){return i.call(t)}),e.exports=n.inspectSource},{"../internals/shared-store":300}],259:[function(t,e,r){var n,i,o,a=t("../internals/native-weak-map"),s=t("../internals/global"),u=t("../internals/is-object"),c=t("../internals/create-non-enumerable-property"),f=t("../internals/has"),l=t("../internals/shared-key"),h=t("../internals/hidden-keys"),d=s.WeakMap;if(a){var p=new d,m=p.get,y=p.has,b=p.set;n=function(t,e){return b.call(p,t,e),e},i=function(t){return m.call(p,t)||{}},o=function(t){return y.call(p,t)}}else{var v=l("state");h[v]=!0,n=function(t,e){return c(t,v,e),e},i=function(t){return f(t,v)?t[v]:{}},o=function(t){return f(t,v)}}e.exports={set:n,get:i,has:o,enforce:function(t){return o(t)?i(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=i(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}}},{"../internals/create-non-enumerable-property":236,"../internals/global":251,"../internals/has":252,"../internals/hidden-keys":253,"../internals/is-object":263,"../internals/native-weak-map":272,"../internals/shared-key":299}],260:[function(t,e,r){var n=t("../internals/well-known-symbol"),i=t("../internals/iterators"),o=n("iterator"),a=Array.prototype;e.exports=function(t){return void 0!==t&&(i.Array===t||a[o]===t)}},{"../internals/iterators":268,"../internals/well-known-symbol":314}],261:[function(t,e,r){var n=t("../internals/classof-raw");e.exports=Array.isArray||function(t){return"Array"==n(t)}},{"../internals/classof-raw":230}],262:[function(t,e,r){var n=t("../internals/fails"),i=/#|\.prototype\./,o=function(t,e){var r=s[a(t)];return r==c||r!=u&&("function"==typeof e?n(e):!!e)},a=o.normalize=function(t){return String(t).replace(i,".").toLowerCase()},s=o.data={},u=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},{"../internals/fails":247}],263:[function(t,e,r){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],264:[function(t,e,r){e.exports=!1},{}],265:[function(t,e,r){var n=t("../internals/is-object"),i=t("../internals/classof-raw"),o=t("../internals/well-known-symbol")("match");e.exports=function(t){var e;return n(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},{"../internals/classof-raw":230,"../internals/is-object":263,"../internals/well-known-symbol":314}],266:[function(t,e,r){var n=t("../internals/an-object"),i=t("../internals/is-array-iterator-method"),o=t("../internals/to-length"),a=t("../internals/function-bind-context"),s=t("../internals/get-iterator-method"),u=t("../internals/call-with-safe-iteration-closing"),c=function(t,e){this.stopped=t,this.result=e};(e.exports=function(t,e,r,f,l){var h,d,p,m,y,b,v,g=a(e,r,f?2:1);if(l)h=t;else{if("function"!=typeof(d=s(t)))throw TypeError("Target is not iterable");if(i(d)){for(p=0,m=o(t.length);m>p;p++)if((y=f?g(n(v=t[p])[0],v[1]):g(t[p]))&&y instanceof c)return y;return new c(!1)}h=d.call(t)}for(b=h.next;!(v=b.call(h)).done;)if("object"==typeof(y=u(h,g,v.value,f))&&y&&y instanceof c)return y;return new c(!1)}).stop=function(t){return new c(!0,t)}},{"../internals/an-object":223,"../internals/call-with-safe-iteration-closing":228,"../internals/function-bind-context":248,"../internals/get-iterator-method":250,"../internals/is-array-iterator-method":260,"../internals/to-length":307}],267:[function(t,e,r){"use strict";var n,i,o,a=t("../internals/object-get-prototype-of"),s=t("../internals/create-non-enumerable-property"),u=t("../internals/has"),c=t("../internals/well-known-symbol"),f=t("../internals/is-pure"),l=c("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(i=a(a(o)))!==Object.prototype&&(n=i):h=!0),null==n&&(n={}),f||u(n,l)||s(n,l,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},{"../internals/create-non-enumerable-property":236,"../internals/has":252,"../internals/is-pure":264,"../internals/object-get-prototype-of":283,"../internals/well-known-symbol":314}],268:[function(t,e,r){arguments[4][253][0].apply(r,arguments)},{dup:253}],269:[function(t,e,r){var n,i,o,a,s,u,c,f,l=t("../internals/global"),h=t("../internals/object-get-own-property-descriptor").f,d=t("../internals/classof-raw"),p=t("../internals/task").set,m=t("../internals/engine-is-ios"),y=l.MutationObserver||l.WebKitMutationObserver,b=l.process,v=l.Promise,g="process"==d(b),w=h(l,"queueMicrotask"),_=w&&w.value;_||(n=function(){var t,e;for(g&&(t=b.domain)&&t.exit();i;){e=i.fn,i=i.next;try{e()}catch(t){throw i?a():o=void 0,t}}o=void 0,t&&t.enter()},g?a=function(){b.nextTick(n)}:y&&!m?(s=!0,u=document.createTextNode(""),new y(n).observe(u,{characterData:!0}),a=function(){u.data=s=!s}):v&&v.resolve?(c=v.resolve(void 0),f=c.then,a=function(){f.call(c,n)}):a=function(){p.call(l,n)}),e.exports=_||function(t){var e={fn:t,next:void 0};o&&(o.next=e),i||(i=e,a()),o=e}},{"../internals/classof-raw":230,"../internals/engine-is-ios":242,"../internals/global":251,"../internals/object-get-own-property-descriptor":279,"../internals/task":303}],270:[function(t,e,r){var n=t("../internals/global");e.exports=n.Promise},{"../internals/global":251}],271:[function(t,e,r){var n=t("../internals/fails");e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},{"../internals/fails":247}],272:[function(t,e,r){var n=t("../internals/global"),i=t("../internals/inspect-source"),o=n.WeakMap;e.exports="function"==typeof o&&/native code/.test(i(o))},{"../internals/global":251,"../internals/inspect-source":258}],273:[function(t,e,r){"use strict";var n=t("../internals/a-function"),i=function(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n})),this.resolve=n(e),this.reject=n(r)};e.exports.f=function(t){return new i(t)}},{"../internals/a-function":219}],274:[function(t,e,r){var n=t("../internals/is-regexp");e.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},{"../internals/is-regexp":265}],275:[function(t,e,r){"use strict";var n=t("../internals/descriptors"),i=t("../internals/fails"),o=t("../internals/object-keys"),a=t("../internals/object-get-own-property-symbols"),s=t("../internals/object-property-is-enumerable"),u=t("../internals/to-object"),c=t("../internals/indexed-object"),f=Object.assign,l=Object.defineProperty;e.exports=!f||i((function(){if(n&&1!==f({b:1},f(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol();return t[r]=7,"abcdefghijklmnopqrst".split("").forEach((function(t){e[t]=t})),7!=f({},t)[r]||"abcdefghijklmnopqrst"!=o(f({},e)).join("")}))?function(t,e){for(var r=u(t),i=arguments.length,f=1,l=a.f,h=s.f;i>f;)for(var d,p=c(arguments[f++]),m=l?o(p).concat(l(p)):o(p),y=m.length,b=0;y>b;)d=m[b++],n&&!h.call(p,d)||(r[d]=p[d]);return r}:f},{"../internals/descriptors":240,"../internals/fails":247,"../internals/indexed-object":257,"../internals/object-get-own-property-symbols":282,"../internals/object-keys":285,"../internals/object-property-is-enumerable":286,"../internals/to-object":308}],276:[function(t,e,r){var n,i=t("../internals/an-object"),o=t("../internals/object-define-properties"),a=t("../internals/enum-bug-keys"),s=t("../internals/hidden-keys"),u=t("../internals/html"),c=t("../internals/document-create-element"),f=t("../internals/shared-key"),l=f("IE_PROTO"),h=function(){},d=function(t){return"