<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">!function(e){function t(t){for(var n,o,r=t[0],a=t[1],s=0,c=[];s&lt;r.length;s++)o=r[s],Object.prototype.hasOwnProperty.call(i,o)&amp;&amp;i[o]&amp;&amp;c.push(i[o][0]),i[o]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&amp;&amp;(e[n]=a[n]);for(l&amp;&amp;l(t);c.length;)c.shift()()}var n={},o={32:0},i={32:0};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&amp;&amp;{2:1,3:1,6:1,11:1,13:1,14:1,15:1,16:1,17:1,18:1,20:1,21:1,22:1,23:1,24:1,27:1,28:1,29:1,30:1,31:1,34:1,38:1,39:1,40:1,41:1,42:1,43:1,44:1,45:1,46:1,47:1,48:1,49:1}[e]&amp;&amp;t.push(o[e]=new Promise((function(t,n){for(var i=({0:"vendors~account_calendar~account_custom_purchases~account_customize~account_dashboard~account_direct~d2fab381",1:"vendors~account_calendar~account_custom_purchases~account_dashboard~account_direct_message~account_f~96cc08b6",2:"account_calendar~account_custom_purchases~account_customize~account_dashboard~account_direct_message~02fa328f",3:"account_calendar~account_custom_purchases~account_dashboard~account_direct_message~account_favorites~07afa347",4:"vendors~stream_create~stream_create_c2c~stream_view~stream_view_c2c",5:"account_earnings~creator_signup",6:"stream_view~stream_view_c2c",7:"vendors~account_referrals~profile_model",8:"vendors~stream_create_c2c~stream_view_c2c",9:"vendors~stream_view~stream_view_c2c",10:"account_billing_info",11:"account_calendar",12:"account_cop",13:"account_cross_promotion",14:"account_custom_purchases",15:"account_customize",16:"account_dashboard",17:"account_direct_message",18:"account_earnings",19:"account_email_and_pwd",20:"account_favorites",21:"account_follower",22:"account_following",23:"account_gift",24:"account_purchases",25:"account_referrals",26:"account_setting",27:"account_snapchat",28:"account_stats",29:"account_subscriber",30:"account_top_spenders",31:"account_vault",33:"creator_refer",34:"creator_signup",35:"creator_signup_agreement",38:"index_feed",39:"index_model",40:"index_popular",41:"index_rank",42:"post_create",43:"profile_model",44:"profile_user",45:"stream_create",46:"stream_create_c2c",47:"stream_view",48:"stream_view_c2c",49:"support",50:"vendors~account_cop",51:"vendors~account_customize",52:"vendors~stream_create"}[e]||e)+"."+{0:"31d6cfe0d16ae931b73c",1:"31d6cfe0d16ae931b73c",2:"9e4b1db488ada3bde91a",3:"073c876ffa4191b32028",4:"31d6cfe0d16ae931b73c",5:"31d6cfe0d16ae931b73c",6:"4024cd46f2d175ac312a",7:"31d6cfe0d16ae931b73c",8:"31d6cfe0d16ae931b73c",9:"31d6cfe0d16ae931b73c",10:"31d6cfe0d16ae931b73c",11:"4260e8985a790f40e3f8",12:"31d6cfe0d16ae931b73c",13:"50eb176a33ff388d066f",14:"d77c0465fa8f0459e655",15:"debc084b0cbb56f13404",16:"28d7b1301fdfc4618d9d",17:"5d2877c353861ef6c022",18:"fecaf92531eda2a1c972",19:"31d6cfe0d16ae931b73c",20:"6153d8e92d88fd1af50a",21:"52e7636463a7c46893a1",22:"f683f6d819b00d914064",23:"d77c0465fa8f0459e655",24:"6153d8e92d88fd1af50a",25:"31d6cfe0d16ae931b73c",26:"31d6cfe0d16ae931b73c",27:"52e7636463a7c46893a1",28:"9bf6d411ecffcc8bb040",29:"52e7636463a7c46893a1",30:"d77c0465fa8f0459e655",31:"30f48c0eac0f8b591280",33:"31d6cfe0d16ae931b73c",34:"dd66776b810c535a315c",35:"31d6cfe0d16ae931b73c",38:"b43a8e02689042f48aaa",39:"bc6b26741bc0d3485ea4",40:"56e01fd6d9b547ba96fe",41:"ed8e75bf53fa2b20be6e",42:"4260e8985a790f40e3f8",43:"83d7eaabd0a64159372d",44:"7725aa61f68849c477b4",45:"14d22a725e1ea18cb0a4",46:"490dd4613e9ce50f52e6",47:"318c9d43378de04c08ef",48:"3e0047c308cdd061f9cd",49:"281f785a2be16e217e98",50:"31d6cfe0d16ae931b73c",51:"31d6cfe0d16ae931b73c",52:"31d6cfe0d16ae931b73c"}[e]+".css",a=r.p+i,s=document.getElementsByTagName("link"),c=0;c&lt;s.length;c++){var l=(d=s[c]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&amp;&amp;(l===i||l===a))return t()}var u=document.getElementsByTagName("style");for(c=0;c&lt;u.length;c++){var d;if((l=(d=u[c]).getAttribute("data-href"))===i||l===a)return t()}var p=document.createElement("link");p.rel="stylesheet",p.type="text/css",p.onload=t,p.onerror=function(t){var i=t&amp;&amp;t.target&amp;&amp;t.target.src||a,r=new Error("Loading CSS chunk "+e+" failed.\n("+i+")");r.code="CSS_CHUNK_LOAD_FAILED",r.request=i,delete o[e],p.parentNode.removeChild(p),n(r)},p.href=a,document.getElementsByTagName("head")[0].appendChild(p)})).then((function(){o[e]=0})));var n=i[e];if(0!==n)if(n)t.push(n[2]);else{var a=new Promise((function(t,o){n=i[e]=[t,o]}));t.push(n[2]=a);var s,c=document.createElement("script");c.charset="utf-8",c.timeout=120,r.nc&amp;&amp;c.setAttribute("nonce",r.nc),c.src=function(e){return r.p+""+({0:"vendors~account_calendar~account_custom_purchases~account_customize~account_dashboard~account_direct~d2fab381",1:"vendors~account_calendar~account_custom_purchases~account_dashboard~account_direct_message~account_f~96cc08b6",2:"account_calendar~account_custom_purchases~account_customize~account_dashboard~account_direct_message~02fa328f",3:"account_calendar~account_custom_purchases~account_dashboard~account_direct_message~account_favorites~07afa347",4:"vendors~stream_create~stream_create_c2c~stream_view~stream_view_c2c",5:"account_earnings~creator_signup",6:"stream_view~stream_view_c2c",7:"vendors~account_referrals~profile_model",8:"vendors~stream_create_c2c~stream_view_c2c",9:"vendors~stream_view~stream_view_c2c",10:"account_billing_info",11:"account_calendar",12:"account_cop",13:"account_cross_promotion",14:"account_custom_purchases",15:"account_customize",16:"account_dashboard",17:"account_direct_message",18:"account_earnings",19:"account_email_and_pwd",20:"account_favorites",21:"account_follower",22:"account_following",23:"account_gift",24:"account_purchases",25:"account_referrals",26:"account_setting",27:"account_snapchat",28:"account_stats",29:"account_subscriber",30:"account_top_spenders",31:"account_vault",33:"creator_refer",34:"creator_signup",35:"creator_signup_agreement",38:"index_feed",39:"index_model",40:"index_popular",41:"index_rank",42:"post_create",43:"profile_model",44:"profile_user",45:"stream_create",46:"stream_create_c2c",47:"stream_view",48:"stream_view_c2c",49:"support",50:"vendors~account_cop",51:"vendors~account_customize",52:"vendors~stream_create"}[e]||e)+"."+{0:"28e66a5683f217a7c9a7",1:"d332f39939ef9ee265ce",2:"32af4bdd4f515d1805f8",3:"9c264b2962edf70d2fd4",4:"c25266db3e21bd67a0ff",5:"cd21b2cf58ba4d383b4c",6:"4fa5f9be15998ec9261d",7:"1664fbd9fe374627ecab",8:"a40bede4f126d9b612f6",9:"32938fdc372dbc554815",10:"2afa5e004f6e64747edf",11:"7abb5017a4fef7be3d96",12:"3bb05e1a3b936f155fae",13:"93ab9e4c425f00256b37",14:"e40d83ec0165d10ad1e0",15:"f6deb7c217782edca316",16:"bb553b81ae59a0965bde",17:"45ce25639d9dbbb83185",18:"39fdb968d173788a2c0d",19:"a9d37a227f27e034f143",20:"849c8c0cf78891dfc85b",21:"947b5f2c0a2756e9ae44",22:"28abe3d222e5a61e1f5d",23:"cea64381243a072de198",24:"c3716dfc76be35328ff3",25:"26274a049ab355aa8c60",26:"6135da6343b4e2750bd0",27:"ddbee15baa07cded69e8",28:"043583359b00a0fb8a2c",29:"447ad99f186703b23fed",30:"9f170f2b2735bfd0de41",31:"2a893186d1386bd874bd",33:"8204e8f49cdf6131f95d",34:"ef4ebb37cf8b18791621",35:"1b71c99c27807925affe",38:"5e66314eecef40ca054f",39:"423c173cf822bb996a0a",40:"f9d02678a008136af081",41:"415a5d95584b070b4180",42:"919d9424b5ace935b9bb",43:"9b4cace2b41b62b8bae9",44:"c2fc5d12cbe0d9c78d10",45:"b9e9368e31aa8cf56114",46:"ada5d441af04b1e19cad",47:"dd5d6bc61c1d6c4400e2",48:"8516c791558b8be0a973",49:"ab5e20131d89fc87d2a6",50:"aa03055b3ab51d1b493a",51:"c8f5398e0998f779225e",52:"599eda66015b43d35e32"}[e]+".js"}(e);var l=new Error;s=function(t){c.onerror=c.onload=null,clearTimeout(u);var n=i[e];if(0!==n){if(n){var o=t&amp;&amp;("load"===t.type?"missing":t.type),r=t&amp;&amp;t.target&amp;&amp;t.target.src;l.message="Loading chunk "+e+" failed.\n("+o+": "+r+")",l.name="ChunkLoadError",l.type=o,l.request=r,n[1](l)}i[e]=void 0}};var u=setTimeout((function(){s({type:"timeout",target:c})}),12e4);c.onerror=c.onload=s,document.head.appendChild(c)}return Promise.all(t)},r.m=e,r.c=n,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&amp;&amp;Symbol.toStringTag&amp;&amp;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&amp;t&amp;&amp;(e=r(e)),8&amp;t)return e;if(4&amp;t&amp;&amp;"object"==typeof e&amp;&amp;e&amp;&amp;e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&amp;t&amp;&amp;"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&amp;&amp;e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/js/",r.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],s=a.push.bind(a);a.push=t,a=a.slice();for(var c=0;c&lt;a.length;c++)t(a[c]);var l=s;r(r.s="HY66")}({"1Xrw":function(e,t,n){"use strict";var o=n("4m0D");n.n(o).a.module("fans_service_post_lock",[]).directive("postLock",["$rootScope","utils",function(e,t){return{link:function(n){if(n.icon_lock=t.webpImage(SITE.media_host+"/media/fans/assets/icon-lock-circle.png"),n.hideOffers=n.hideOffers||!1,n.canHide){var o=t.storage.getObject("hidden_user_ids");n.isHidden=o.hasOwnProperty(n.post.user_id),n.hideUser=function(i){i&amp;&amp;(o[i]=!0,t.storage.setObject("hidden_user_ids",o,2592e3),n.isHidden=!0,e.$broadcast("postLock.hideUser",{user_id:i}))},n.$on("postLock.hideUser",(function(e,t){n.post.user_id==t.user_id&amp;&amp;(n.isHidden=!0)}))}},replace:!0,restrict:"E",scope:{canHide:"=?",fromIndex:"&lt;?",hideOffers:"&lt;?",isFree:"&lt;?",model:"=",openFollowFree:"&lt;?",openPurchasePost:"&lt;?",openSubscribeBenefits:"=",post:"=",toRenew:"=?",toSubscribe:"=?"},template:'&lt;div class="csf_post csf_post_lock card" ng-show="!isHidden"&gt;\n\n    &lt;div class="card-header d-flex justify-content-between align-items-flex-start"&gt;\n        &lt;div class="d-flex"&gt;\n            &lt;div class="csf_post_lock__avatar"&gt;\n                &lt;a ng-if="toRenew || fromIndex" ng-href="/{{ model.user.username }}"\n                   class="csf_post_lock__avatar_img"\n                   back-img="{{ model.user.fans_avatar_url | webp }}"\n                   &gt;&lt;/a&gt;\n                &lt;div ng-if="!toRenew &amp;&amp; !fromIndex"\n                     class="csf_post_lock__avatar_img"\n                     back-img="{{ model.user.fans_avatar_url | webp }}"\n                &gt;&lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div&gt;\n                &lt;a ng-if="toRenew || fromIndex" class="csf_display_name d-block extra-font" ng-href="/{{ model.user.username }}"&gt;{{ model.user.display_name }}&lt;/a&gt;\n                &lt;div ng-if="!toRenew &amp;&amp; !fromIndex &amp;&amp; !toSubscribe" class="csf_display_name extra-font"&gt;&lt;small class="text-muted"&gt;{{ model.user.display_name }}&lt;/small&gt;&lt;/div&gt;\n                &lt;div ng-if="!toRenew &amp;&amp; !fromIndex &amp;&amp; toSubscribe" class="csf_display_name extra-font csf_profile__custom_text"&gt;{{ model.user.display_name }}&lt;/div&gt;\n                &lt;div class="d-flex align-items-center flex-wrap text-muted fs-0800 lh-1"&gt;\n                    &lt;div ng-if="(toRenew || toSubscribe) &amp;&amp; post" title="{{ post.created_at | datetimeFromUtc }}"&gt;{{ post.created_at | dateDiffInTextual }}&lt;/div&gt;\n                    &lt;div class="text-muted w-100  mt-1" ng-if="(toRenew || toSubscribe) &amp;&amp; post &amp;&amp; post.expires_at"  title="Expires"&gt;\n                        &lt;span ng-if="post.scheduled_at"&gt;&lt;i class="icon-fan_expiring me-1"&gt;&lt;/i&gt; after {{ post.expire_after | secondsToPeriod }}&lt;/span&gt;\n                        &lt;span ng-if="!post.scheduled_at &amp;&amp; !model.can_edit"&gt;This post will expire {{ post.expires_at | dateDiffInTextual }}&lt;/span&gt;\n                        &lt;span ng-if="!post.scheduled_at &amp;&amp; model.can_edit"&gt;&lt;i class="icon-fan_expiring me-1"&gt;&lt;/i&gt; {{ post.expires_at | dateDiffInTextual }}&lt;/span&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n\n        &lt;div class="post-menu" ng-if="canHide"&gt;\n            &lt;div&gt;\n                &lt;span uib-dropdown class="dropdown"&gt;\n                    &lt;button type="button"\n                            class="btn btn-transp btn-more-post dropdown-toggle" uib-dropdown-toggle&gt;\n                        &lt;i class="icon-fan_more"&gt;&lt;/i&gt;\n                    &lt;/button&gt;\n                    &lt;ul class="dropdown-menu right" uib-dropdown-menu&gt;\n                        &lt;li ng-if="toRenew"&gt;\n                            &lt;a ng-click="openSubscribeBenefits(model);$event.stopPropagation()"&gt;\n                                &lt;span class="icon-fan_invert"&gt;&lt;/span&gt; Renew Subscription\n                            &lt;/a&gt;\n                        &lt;/li&gt;\n                        &lt;li&gt;\n                            &lt;a ng-click="hideUser(post.user_id)"&gt;\n                                &lt;span class="icon-fan_times"&gt;&lt;/span&gt; Hide\n                            &lt;/a&gt;\n                        &lt;/li&gt;\n                    &lt;/ul&gt;\n                &lt;/span&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_post_lock__outer"&gt;\n\n        &lt;div\n            ng-if="!toRenew &amp;&amp; !isFree"\n            class="csf_post_lock__inner csf_post_lock__inner_clickable"\n            ng-click="openSubscribeBenefits(model);$event.stopPropagation()"&gt;\n            &lt;img ng-src="{{ icon_lock }}" alt="Subscribe to access all posts" width="60" height="60" /&gt;\n            &lt;div class="position-relative"&gt;\n                &lt;span ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount" class="csf_model_banner_winback d-flex flex-column align-items-center justify-content-center"&gt;\n                    &lt;span class="d-block mx-auto fs-0650 fw-bold"&gt;NOW&lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount &lt; 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;{{model.setting.winback_discount}}&lt;/span&gt;\n                        &lt;span class="csf_model_banner_winback_unities fs-0650 fw-bold"&gt;%&lt;br&gt;off&lt;/span&gt;\n                    &lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount === 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;FREE&lt;/span&gt;\n                    &lt;/span&gt;\n                &lt;/span&gt;\n                &lt;span ng-if="!hideOffers &amp;&amp; model.can_trial &amp;&amp; !model.can_winback &amp;&amp; model.setting.trial_discount" class="csf_model_banner_winback d-flex flex-column align-items-center justify-content-center"&gt;\n                    &lt;span class="d-block mx-auto fs-0650 fw-bold"&gt;NOW&lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.trial_discount &lt; 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;{{model.setting.trial_discount}}&lt;/span&gt;\n                        &lt;span class="csf_model_banner_winback_unities fs-0650 fw-bold"&gt;%&lt;br&gt;off&lt;/span&gt;\n                    &lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.trial_discount === 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;FREE&lt;/span&gt;\n                    &lt;/span&gt;\n                &lt;/span&gt;\n\n                &lt;button class="btn btn-dark mt-3"&gt;Subscribe to access all posts&lt;/button&gt;\n\n                &lt;countdown-offer ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount &amp;&amp; model.setting.winback_offer_ends_at"\n                                 offer="Special Offer ends" class="offer-counter d-block mt-2 fs-0750 fw-bold"\n                                 ends-at="model.setting.winback_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n\n                &lt;countdown-offer ng-if="!hideOffers &amp;&amp; model.can_trial &amp;&amp; !model.can_winback &amp;&amp; model.setting.trial_discount &amp;&amp; model.setting.trial_offer_ends_at"\n                                 offer="Special Offer ends" class="offer-counter d-block mt-2 fs-0750 fw-bold"\n                                 ends-at="model.setting.trial_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n\n        &lt;div\n            ng-if="isFree"\n            class="csf_post_lock__inner csf_post_lock__inner_clickable"\n            ng-class="{ mult_btn: post.amount_usd &gt; 0 &amp;&amp; model.is_subscribed_free }"&gt;\n            &lt;img ng-src="{{ icon_lock }}" alt="Follow to access all posts" /&gt;\n            &lt;div class="mt-3 position-relative"&gt;\n                &lt;span ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount" class="csf_model_banner_winback d-flex flex-column align-items-center justify-content-center"&gt;\n                    &lt;span class="d-block mx-auto fs-0650 fw-bold"&gt;NOW&lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount &lt; 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;{{model.setting.winback_discount}}&lt;/span&gt;\n                        &lt;span class="csf_model_banner_winback_unities fs-0650 fw-bold"&gt;%&lt;br&gt;off&lt;/span&gt;\n                    &lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount === 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;FREE&lt;/span&gt;\n                    &lt;/span&gt;\n                &lt;/span&gt;\n                &lt;span ng-if="!hideOffers &amp;&amp; model.can_trial &amp;&amp; !model.can_winback &amp;&amp; model.setting.trial_discount" class="csf_model_banner_winback d-flex flex-column align-items-center justify-content-center"&gt;\n                    &lt;span class="d-block mx-auto fs-0650 fw-bold"&gt;NOW&lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.trial_discount &lt; 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;{{model.setting.trial_discount}}&lt;/span&gt;\n                        &lt;span class="csf_model_banner_winback_unities fs-0650 fw-bold"&gt;%&lt;br&gt;off&lt;/span&gt;\n                    &lt;/span&gt;\n                    &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.trial_discount === 100"&gt;\n                        &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;FREE&lt;/span&gt;\n                    &lt;/span&gt;\n                &lt;/span&gt;\n\n                &lt;button ng-if="post.amount_usd &gt; 0" class="btn btn-dark" ng-click="openSubscribeBenefits(model);$event.stopPropagation()"&gt;Subscribe to access all posts&lt;/button&gt;\n                &lt;button ng-if="post.amount_usd &lt;= 0" class="btn btn-dark" ng-click="openFollowFree();$event.stopPropagation()"&gt;Follow to access all free posts&lt;/button&gt;\n\n                &lt;countdown-offer ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount &amp;&amp; model.setting.winback_offer_ends_at"\n                                 offer="Special Offer ends" class="offer-counter d-block mt-2 fs-0750 fw-bold"\n                                 ends-at="model.setting.winback_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n\n                &lt;countdown-offer ng-if="!hideOffers &amp;&amp; model.can_trial &amp;&amp; !model.can_winback &amp;&amp; model.setting.trial_discount &amp;&amp; model.setting.trial_offer_ends_at"\n                                 offer="Special Offer ends" class="offer-counter d-block mt-2 fs-0750 fw-bold"\n                                 ends-at="model.setting.trial_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n\n                &lt;div class="or-inline" ng-if="post.amount_usd &gt; 0 &amp;&amp; model.is_subscribed_free"&gt;\n                    &lt;span&gt;or&lt;/span&gt;\n                &lt;/div&gt;\n                &lt;button ng-if="!post.is_locked_fundraiser &amp;&amp; post.amount_usd &gt; 0 &amp;&amp; model.is_subscribed_free"\n                        class="btn btn-dark"\n                        ng-click="openPurchasePost(post, model);$event.stopPropagation()"&gt;\n                    Access this post for &lt;b&gt;{{ post.amount_usd | currency }}&lt;/b&gt;\n                &lt;/button&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n\n        &lt;div ng-if="toRenew" class="csf_post_lock__inner csf_post_lock__inner_clickable" ng-click="openSubscribeBenefits(model);$event.stopPropagation()"  &gt;\n            &lt;img ng-src="{{ icon_lock }}"  /&gt;\n            &lt;div class="mt-3 expired"&gt;\n                Your subscription to\n                &lt;span class="csf_display_name extra-font"&gt;{{model.user.display_name }}&lt;/span&gt;\n                has expired\n                &lt;div class="position-relative"&gt;\n                    &lt;span ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount" class="csf_model_banner_winback d-flex flex-column align-items-center justify-content-center"&gt;\n                        &lt;span class="d-block mx-auto fs-0650 fw-bold"&gt;NOW&lt;/span&gt;\n                        &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount &lt; 100"&gt;\n                            &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;{{model.setting.winback_discount}}&lt;/span&gt;\n                            &lt;span class="csf_model_banner_winback_unities fs-0650 fw-bold"&gt;%&lt;br&gt;off&lt;/span&gt;\n                        &lt;/span&gt;\n                        &lt;span class="d-flex align-items-center justify-content-center mx-auto" ng-if="model.setting.winback_discount === 100"&gt;\n                            &lt;span class="csf_model_banner_winback_discount fw-bold"&gt;FREE&lt;/span&gt;\n                        &lt;/span&gt;\n                    &lt;/span&gt;\n                    &lt;button class="btn btn-dark mt-3" ng-click="openSubscribeBenefits(model);$event.stopPropagation()"&gt;Renew your subscription&lt;/button&gt;\n                    &lt;countdown-offer ng-if="!hideOffers &amp;&amp; model.can_winback &amp;&amp; model.setting.winback_discount &amp;&amp; model.setting.winback_offer_ends_at"\n                                     offer="Special Offer ends" class="offer-counter d-block mt-2 fs-0750 fw-bold"\n                                     ends-at="model.setting.winback_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}}]);t.a="fans_service_post_lock"},"1ueU":function(e,t,n){var o,i,r;i=[n("4m0D")],void 0===(r="function"==typeof(o=function(e){e.module("pageslide-directive",[]).directive("pageslide",["$document","$timeout",function(t,n){return{restrict:"EA",transclude:!1,scope:{psOpen:"=?",psAutoClose:"@",psSide:"@",psSpeed:"@",psClass:"@",psSize:"@",psZindex:"@",psPush:"@",psContainer:"@",psKeyListener:"@",psBodyClass:"@",psClickOutside:"@",onopen:"&amp;?",onclose:"&amp;?"},link:function(o,i,r){var a={};a.side=o.psSide||"right",a.speed=o.psSpeed||"0.5",a.size=o.psSize||"300px",a.zindex=o.psZindex||1e3,a.className=o.psClass||"ng-pageslide",a.push="true"===o.psPush,a.container=o.psContainer||!1,a.keyListener="true"===o.psKeyListener,a.bodyClass=o.psBodyClass||!1,a.clickOutside="false"!==o.psClickOutside,a.autoClose=o.psAutoClose||!1,a.push=a.push&amp;&amp;!a.container,i.addClass(a.className);var s,c,l=!1;function u(e){var t=e.touches&amp;&amp;e.touches[0]||e.target;l&amp;&amp;c.contains(t)&amp;&amp;!s.contains(t)&amp;&amp;(l=!1,o.psOpen=!1,o.$apply()),o.psOpen&amp;&amp;(l=!0)}function d(e){if(a.bodyClass){var t=a.className+"-body",n=new RegExp(t+"-closed|"+t+"-open");c.className=c.className.replace(n,"");var o=t+"-"+e;" "!==c.className[c.className.length-1]?c.className+=" "+o:c.className+=o}}if(c=a.container?document.getElementById(a.container):document.body,"div"!==(s=i[0]).tagName.toLowerCase()&amp;&amp;"pageslide"!==s.tagName.toLowerCase())throw new Error("Pageslide can only be applied to &lt;div&gt; or &lt;pageslide&gt; elements");if(0===s.children.length)throw new Error("You need to have content inside the &lt;pageslide&gt;");function p(){o.psOpen?"function"==typeof o.onopen&amp;&amp;o.onopen()():"function"==typeof o.onclose&amp;&amp;o.onclose()()}function f(e,t){switch(t.side){case"right":case"left":e.style.width=t.size,e.style.height="100%",e.style.top="0px",e.style.bottom="0px";break;case"top":case"bottom":e.style.height=t.size,e.style.width="100%",e.style.left="0px",e.style.right="0px"}o.psOpen?g(e,t):m(e,t)}function m(e,n){switch(n.side){case"right":e.style.right="-"+n.size,n.push&amp;&amp;(c.style.right="0px",c.style.left="0px");break;case"left":e.style.left="-"+n.size,n.push&amp;&amp;(c.style.left="0px",c.style.right="0px");break;case"top":e.style.top="-"+n.size,n.push&amp;&amp;(c.style.top="0px",c.style.bottom="0px");break;case"bottom":e.style.bottom="-"+n.size,n.push&amp;&amp;(c.style.bottom="0px",c.style.top="0px")}n.keyListener&amp;&amp;t.off("keydown",h),n.clickOutside&amp;&amp;t.off("touchend click",u),l=!1,d("closed"),o.psOpen=!1}function g(e,n){switch(n.side){case"right":e.style.right="0px",n.push&amp;&amp;(c.style.right=n.size,c.style.left="-"+n.size);break;case"left":e.style.left="0px",n.push&amp;&amp;(c.style.left=n.size,c.style.right="-"+n.size);break;case"top":e.style.top="0px",n.push&amp;&amp;(c.style.top=n.size,c.style.bottom="-"+n.size);break;case"bottom":e.style.bottom="0px",n.push&amp;&amp;(c.style.bottom=n.size,c.style.top="-"+n.size)}o.psOpen=!0,n.keyListener&amp;&amp;t.on("keydown",h),n.clickOutside&amp;&amp;t.on("touchend click",u),d("open")}function h(e){27===(e.keyCode||e.which)&amp;&amp;(m(s,a),n((function(){o.$apply()})))}e.element(s.children),c.appendChild(s),s.style.zIndex=a.zindex,s.style.position="fixed",s.style.transitionDuration=a.speed+"s",s.style.webkitTransitionDuration=a.speed+"s",s.style.height=a.size,s.style.transitionProperty="top, bottom, left, right",a.push&amp;&amp;(c.style.position="absolute",c.style.transitionDuration=a.speed+"s",c.style.webkitTransitionDuration=a.speed+"s",c.style.transitionProperty="top, bottom, left, right"),a.container&amp;&amp;(s.style.position="absolute",c.style.position="relative",c.style.overflow="hidden"),s.addEventListener("transitionend",p),f(s,a),o.$watch("psOpen",(function(e){e?g(s,a):m(s,a)})),o.$watch("psSize",(function(e,t){t!==e&amp;&amp;(a.size=e,f(s,a))})),o.$on("$destroy",(function(){s.parentNode===c&amp;&amp;(a.clickOutside&amp;&amp;t.off("touchend click",u),c.removeChild(s)),s.removeEventListener("transitionend",p)})),a.autoClose&amp;&amp;(o.$on("$locationChangeStart",(function(){m(s,a)})),o.$on("$stateChangeStart",(function(){m(s,a)})))}}}])})?o.apply(t,i):o)||(e.exports=r)},"2Y2/":function(e,t,n){"use strict";var o=n("4m0D");n.n(o).a.module("services.snapchat",[]).service("SnapchatService",(function(){this.pendingSnapchatAddCnt=PENDING_SNAPCHAT_ADD_CNT||0,this.pendingSnapchatRemoveCnt=PENDING_SNAPCHAT_REMOVE_CNT||0,this.pendingSnapchatNotificationsCnt=this.pendingSnapchatAddCnt+this.pendingSnapchatRemoveCnt})),t.a="services.snapchat"},"2u4H":function(e,t,n){"use strict";var o=n("4m0D");n.n(o).a.module("common_utils",[]).service("utils",["$window","browser","localStorageService","toaster",function(e,t,n,o){return{secToTxt:function(e){var t=e/86400,n="day",o=0;return t&gt;31?(o=Math.ceil(t/31),n="month"):o=Math.ceil(t),{dur:o,type:n+=o&gt;1?"s":""}},colors:function(){return{linkColor:SITE.custom.link_color||("fantime"===SITE.signup_source?"#F7941C":"#05B0FA"),mainFollowColor:SITE.custom.main_follow_color||("fantime"===SITE.signup_source?"#FF6C00":"#F841B5"),messageColor:SITE.custom.message_color||"#FFFFFF",messageTextColor:SITE.custom.message_text_color||"#777676",textColor:SITE.custom.text_color||"#303030"}},RGBToHSL:function(e,t,n){e/=255,t/=255,n/=255;var o=Math.min(e,t,n),i=Math.max(e,t,n),r=i-o,a=0,s=0;return a=0==r?0:i==e?(t-n)/r%6:i==t?(n-e)/r+2:(e-t)/r+4,(a=Math.round(60*a))&lt;0&amp;&amp;(a+=360),s=(i+o)/2,"hsl("+a+","+ +(100*(0==r?0:r/(1-Math.abs(2*s-1)))).toFixed(1)+"%,"+(s=+(100*s).toFixed(1))+"%)"},hexAToRGBA:function(e){var t,n=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:1;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(e))return 3==(t=e.substring(1).split("")).length&amp;&amp;(t=[t[0],t[0],t[1],t[1],t[2],t[2]]),"rgba("+[(t="0x"+t.join(""))&gt;&gt;16&amp;255,t&gt;&gt;8&amp;255,255&amp;t].join(",")+","+n+")"},number:{formatBulk:function(e){var t,n;e&gt;=1e6?(t=1e6,n="m"):e&gt;=1e3?(t=1e3,n="k"):(t=1,n="");var o=(e/t).toFixed(1);return(".0"===o.slice(-2)?parseInt(o):o)+n},maxBubble:function(e){return e&gt;99?"99+":e},pad:function(e){for(e=e.toString();e.length&lt;2;)e="0"+e;return e}},string:{formatAlphanumeric:function(e){return e.replace(/[^a-zA-Z0-9\s\-_\.]/gi,"").replace(/\s\s+/gi," ").trim()||e},isNoEmail:function(e){return-1!==e.indexOf("#no-email")},ucFirst:function(e){return e.charAt(0).toUpperCase()+e.slice(1)}},date:{dateFromISO8601UTC:function(e){var t=e.match(/\d+/g);return new Date(Date.UTC(t[0],t[1]-1,t[2],t[3]||0,t[4]||0,t[5]||0))},datePad:function(e){return String(e).padStart(2,"0")},getWeekdays:function(){return["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},getMonths:function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},getDayMonthYear:function(e){var t=new Date;return e.getFullYear()!==t.getFullYear()?e.toLocaleString("default",{month:"short"})+" "+e.getFullYear():e.getDate()+" "+e.toLocaleString("default",{month:"short"})},getTimeDayMonthYear:function(e){var t=new Date;return e.getFullYear()!==t.getFullYear()?e.toLocaleString("default",{month:"short"})+" "+e.getDate()+", "+e.getFullYear()+" - "+e.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0}):e.toLocaleString("default",{month:"short"})+" "+e.getDate()+" - "+e.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0})},getReadableDate:function(e,t){var n=e.getTime(),o=t.getTime(),i="";if(isNaN(n)||isNaN(o))return"-";var r=new Date(n);return r.setDate(e.getDate()-1),e.toDateString()===t.toDateString()?"Today":r.toDateString()===t.toDateString()?"Yesterday":(t.getFullYear()!=e.getFullYear()&amp;&amp;(i=" "+t.getFullYear()),t.toLocaleString("default",{month:"short"})+" "+t.getDate()+i)},getTime:function(e){return e.toLocaleString("default",{hour:"numeric",minute:"numeric",hour12:!0})},getDiffInTextual:function(e,t){var n=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]&amp;&amp;arguments[2],o=e.getTime(),i=t.getTime();if(isNaN(o)||isNaN(i))return"-";var r=this.getDiffInTextualStr(o,i,n);return i&gt;o?"in "+r:r+" ago"},getCountDownFromSeconds:function(e){return{d:Math.floor(e/86400),h:Math.floor(e%86400/3600),m:Math.floor(e%3600/60),s:Math.floor(e%60)}},getDiffInTextualStr:function(e,t,n){var o=Math.abs(e-t),i={year:321408e5,month:26784e5,day:864e5,hour:36e5,min:6e4};for(var r in i){var a=o/i[r];if(Math.floor(a)&gt;0){var s=n?Math.floor(a):Math.ceil(a);return s+" "+r+(1===s?"":"min"!==r?"s":"")}}return"seconds"},isInThePast:function(e){var t=new Date;return e.getTime()&lt;=t.getTime()}},subscriptionPackagePrice:function(e){var t=null;return e.percent&amp;&amp;(t=(Math.floor(e.price*(1-e.percent/100)*100)/100).toFixed(2)),t},dataUriToBlob:function(e){for(var t=atob(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0],o=new ArrayBuffer(t.length),i=new DataView(o),r=0;r&lt;t.length;r++)i.setUint8(r,t.charCodeAt(r));return new Blob([o],{type:n})},isFileTypeAllowed:function(e,t){t||(t=["image","audio","video"]);for(var n=[],i=[],r={image:{mime:["image/gif","image/jpeg","image/png","image/webp"],ext:["png","jpg","gif"]},audio:{mime:["audio/mpeg","audio/mp3","audio/mp4","audio/x-m4a","audio/ogg","audio/vorbis","audio/vnd.wav","audio/wav","audio/x-wav"],ext:["mp3","m4a","ogg","wav"]},video:{mime:["video/avi","video/mpeg","video/mp4","video/quicktime","video/x-flv","video/x-ms-wmv","video/x-msvideo"],ext:["mp4","mov","wmv","flv"]}},a=0;a&lt;t.length;a++)n=n.concat(r[t[a]].mime),i=i.concat(r[t[a]].ext);return-1!==n.indexOf(e.type)||(o.pop("error","Error","Only "+i.join(", ").toUpperCase()+" files are supported."),!1)},isBreakpointView:function(t){switch(t){case"xs":return e.innerWidth&lt;576;case"sm":return e.innerWidth&gt;=576;case"md":return e.innerWidth&gt;=768;case"lg":return e.innerWidth&gt;=992;case"xl":return e.innerWidth&gt;=1200;case"xxl":return e.innerWidth&gt;=1400}return!1},isMobileView:function(){return e.innerWidth&lt;768},storage:{get:function(e){try{var t=n.get(e);if(null===t)return null;var o=t.expiresAt||0;return t=t.value,o&lt;Date.now()?(this.remove(e),null):t}catch(t){return console.log("getStorage: Error reading key ["+e+"] from localStorage: "+JSON.stringify(t)),null}},set:function(e,t){var o=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:86400;o=Math.abs(o),t={value:t,expiresAt:Date.now()+1e3*o};try{n.set(e,t)}catch(t){return console.log("localStorageService.set: Error setting key ["+e+"] in localStorageService: "+JSON.stringify(t)),!1}return!0},getObject:function(e){var t=this.get(e);return t?JSON.parse(t):{}},setObject:function(e,t){var n=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:86400;return this.set(e,JSON.stringify(t),n)},remove:function(e){try{n.remove(e)}catch(t){return console.log("localStorageService.remove: Error removing key ["+e+"] from localStorage: "+JSON.stringify(t)),!1}return!0}},webpImage:function(e){return e&amp;&amp;t.hasWebpSupport?e.replace(/\.(jpe?g|png)/,".webp"):e}}}]).directive("stringToNumber",(function(){return{require:"ngModel",link:function(e,t,n,o){o.$parsers.push((function(e){return""+e})),o.$formatters.push((function(e){return parseFloat(e)}))}}})).component("popupInfo",{bindings:{label:"@",title:"@",msg:"@",linkClass:"&lt;?"},controller:["$scope","$timeout",function(e,t){this.$onInit=function(){e.msg=this.msg,e.title=this.title,this.label?(e.label=this.label,e.pop_id=e.label.replace(/\W/g,"")):(e.label="",e.pop_id=e.title.replace(/\W/g,"")),e.linkClass=this.linkClass||""},e.is_visible=!1,e.switchPopup=function(t){document.querySelector("#"+e.pop_id).classList.toggle("opened")}}],template:function(){return'&lt;a class="fan-popup-link d-flex align-items-center justify-content-center {{linkClass}}" ng-click="switchPopup($event);$event.stopPropagation();"&gt;\n   &lt;span&gt;{{ label }}&lt;/span&gt; &lt;b class="icon-fan_help ms-1"&gt;&lt;/b&gt;\n&lt;/a&gt;\n\n&lt;div id="{{pop_id}}" class="fan-popup-overlay fixed-top top-0 start-0 end-0 bottom-0 align-items-center justify-content-center px-4" ng-click="switchPopup($event)"&gt;\n\t&lt;div class="fan-popup position-relative rounded p-3"&gt;\n\t\t&lt;a class="btn btn-close position-absolute end-0 top-0 px-3 py-2 pt-4" href="#"&gt;&lt;/a&gt;\n\t\t&lt;h5 class="text-muted"&gt;{{ title }}&lt;/h5&gt;\n\t\t&lt;p&gt;{{ msg }}&lt;/p&gt;\n\t&lt;/div&gt;\n&lt;/div&gt;'}}).component("datetimeCountdown",{bindings:{datetime:"&lt;"},controller:["$scope","autoInterval","DateUtils","utils",function(e,t,n,o){function i(){var t=o.date.dateFromISO8601UTC(e.$ctrl.datetime);e.text=o.date.isInThePast(t)?"now":o.date.getDiffInTextual(new Date,t)}this.$onInit=function(){t(i,5e3,e),i()}}],template:"{{ text }}"});t.a="common_utils"},"36aU":function(e,t){angular.module("rt.eventemitter",[]).factory("eventEmitter",(function(){var e="$$tinyEventListeners";function t(t,n,o){"string"==typeof t&amp;&amp;(o=n,n=t,t=null),this[e]||(this[e]={});var i=this[e];i[n]||(i[n]=[]),i[n].push(o);var r=this;return t&amp;&amp;t.$on("$destroy",(function(){r.off(n,o)})),this}function n(e,t,n){"string"==typeof e&amp;&amp;(n=t,t=e,e=null);var o=this,i=function(){n.apply(this,arguments),o.off(t,i)};return this.on(e,t,i),this}function o(t,n){if(!this[e]||!this[e][t])return this;var o=this[e];if(n){var i=o[t],r=i.indexOf(n);r&gt;-1&amp;&amp;i.splice(r,1)}else delete o[t];return this}function i(t){if(this[e]&amp;&amp;this[e][t]){for(var n=this[e][t].slice(0),o=[].slice.call(arguments,1),i=0;i&lt;n.length;i++)n[i].apply(null,o);return this}}return{inject:function(e){var r=e.prototype||e;r.on=t,r.once=n,r.off=o,r.emit=i}}}))},"4m0D":function(e,t,n){n("Lv82"),e.exports=angular},"5HRR":function(e,t,n){
/**
 * oclazyload - Load modules on demand (lazy load) with angularJS
 * @version v1.0.10
 * @link https://github.com/ocombe/ocLazyLoad
 * @license MIT
 * @author Olivier Combe &lt;olivier.combe@gmail.com&gt;
 */
!function(n,o){"use strict";var i=["ng","oc.lazyLoad"],r={},a=[],s=[],c=[],l=[],u=n.noop,d={},p=[];n.module("oc.lazyLoad",["ng"]).provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(e,t,f,h,v,b){var _={},y={$controllerProvider:e,$compileProvider:f,$filterProvider:h,$provide:t,$injector:v,$animateProvider:b},$=!1,w=!1,S=[],k={};S.push=function(e){-1===this.indexOf(e)&amp;&amp;Array.prototype.push.apply(this,arguments)},this.config=function(e){n.isDefined(e.modules)&amp;&amp;(n.isArray(e.modules)?n.forEach(e.modules,(function(e){_[e.name]=e})):_[e.modules.name]=e.modules),n.isDefined(e.debug)&amp;&amp;($=e.debug),n.isDefined(e.events)&amp;&amp;(w=e.events)},this._init=function(e){if(0===s.length){var t=[e],r=["ng:app","ng-app","x-ng-app","data-ng-app"],a=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,c=function(e){return e&amp;&amp;t.push(e)};n.forEach(r,(function(t){r[t]=!0,c(document.getElementById(t)),t=t.replace(":","\\:"),void 0!==e[0]&amp;&amp;e[0].querySelectorAll&amp;&amp;(n.forEach(e[0].querySelectorAll("."+t),c),n.forEach(e[0].querySelectorAll("."+t+"\\:"),c),n.forEach(e[0].querySelectorAll("["+t+"]"),c))})),n.forEach(t,(function(t){if(0===s.length){var o=" "+e.className+" ",i=a.exec(o);i?s.push((i[2]||"").replace(/\s+/g,",")):n.forEach(t.attributes,(function(e){0===s.length&amp;&amp;r[e.name]&amp;&amp;s.push(e.value)}))}}))}0!==s.length||(o.jasmine||o.mocha)&amp;&amp;n.isDefined(n.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");n.forEach(s,(function(e){!function e(t){if(-1===i.indexOf(t)){i.push(t);var o=n.module(t);E(null,o._invokeQueue,t),E(null,o._configBlocks,t),n.forEach(o.requires,e)}}(e)})),s=[],l.pop()};var x=function(e){try{return JSON.stringify(e)}catch(o){var t=[];return JSON.stringify(e,(function(e,o){if(n.isObject(o)&amp;&amp;null!==o){if(-1!==t.indexOf(o))return;t.push(o)}return o}))}},C=function(e){var t,n,o=0;if(0==e.length)return o;for(t=0,n=e.length;t&lt;n;t++)o=(o&lt;&lt;5)-o+e.charCodeAt(t),o|=0;return o};function A(e,t,o){if(t){var r,a,s,l=[];for(r=t.length-1;r&gt;=0;r--)if(a=t[r],n.isString(a)||(a=P(a)),a&amp;&amp;-1===p.indexOf(a)&amp;&amp;(!_[a]||-1!==c.indexOf(a))){var f=-1===i.indexOf(a);if(s=g(a),f&amp;&amp;(i.push(a),A(e,s.requires,o)),s._runBlocks.length&gt;0)for(d[a]=[];s._runBlocks.length&gt;0;)d[a].push(s._runBlocks.shift());n.isDefined(d[a])&amp;&amp;(f||o.rerun)&amp;&amp;(l=l.concat(d[a])),E(e,s._invokeQueue,a,o.reconfig),E(e,s._configBlocks,a,o.reconfig),u(f?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",a),t.pop(),p.push(a)}var m=e.getInstanceInjector();n.forEach(l,(function(e){m.invoke(e)}))}}function T(e,t){var o=e[2][0],i=e[1],a=!1;n.isUndefined(r[t])&amp;&amp;(r[t]={}),n.isUndefined(r[t][i])&amp;&amp;(r[t][i]={});var s=function(e,o){r[t][i].hasOwnProperty(e)||(r[t][i][e]=[]),function(e,t){var o,i=!0;t.length&amp;&amp;(o=c(e),n.forEach(t,(function(e){i=i&amp;&amp;c(e)!==o})));return i}(o,r[t][i][e])&amp;&amp;(a=!0,r[t][i][e].push(o),u("ocLazyLoad.componentLoaded",[t,i,e]))};function c(e){return n.isArray(e)?C(e.toString()):n.isObject(e)?C(x(e)):n.isDefined(e)&amp;&amp;null!==e?C(e.toString()):e}if(n.isString(o))s(o,e[2][1]);else{if(!n.isObject(o))return!1;n.forEach(o,(function(e,t){n.isString(e)?s(e,o[1]):s(t,e)}))}return a}function E(e,t,o,i){var r,s,c,l;if(t)for(r=0,s=t.length;r&lt;s;r++)if(c=t[r],n.isArray(c)){if(null!==e){if(!e.hasOwnProperty(c[0]))throw new Error("unsupported provider "+c[0]);l=e[c[0]]}var u=T(c,o);if("invoke"!==c[1])u&amp;&amp;n.isDefined(l)&amp;&amp;l[c[1]].apply(l,c[2]);else{var d=function(e){var t=a.indexOf(o+"-"+e);(-1===t||i)&amp;&amp;(-1===t&amp;&amp;a.push(o+"-"+e),n.isDefined(l)&amp;&amp;l[c[1]].apply(l,c[2]))};if(n.isFunction(c[2][0]))d(c[2][0]);else if(n.isArray(c[2][0]))for(var p=0,f=c[2][0].length;p&lt;f;p++)n.isFunction(c[2][0][p])&amp;&amp;d(c[2][0][p])}}}function P(e){var t=null;return n.isString(e)?t=e:n.isObject(e)&amp;&amp;e.hasOwnProperty("name")&amp;&amp;n.isString(e.name)&amp;&amp;(t=e.name),t}function O(e){if(!n.isString(e))return!1;try{return g(e)}catch(e){if(/No module/.test(e)||e.message.indexOf("$injector:nomod")&gt;-1)return!1}}this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(e,t,o,a,c){var d,f=a("ocLazyLoad");function h(t){var n=c.defer();return e.error(t.message),n.reject(t),n.promise}return $||((e={}).error=n.noop,e.warn=n.noop,e.info=n.noop),y.getInstanceInjector=function(){return d||(d=t.data("$injector")||n.injector())},{_broadcast:u=function(t,n){w&amp;&amp;o.$broadcast(t,n),$&amp;&amp;e.info(t,n)},_$log:e,_getFilesCache:function(){return f},toggleWatch:function(e){e?l.push(!0):l.pop()},getModuleConfig:function(e){if(!n.isString(e))throw new Error("You need to give the name of the module to get");return _[e]?n.copy(_[e]):null},setModuleConfig:function(e){if(!n.isObject(e))throw new Error("You need to give the module config object to set");return _[e.name]=e,e},getModules:function(){return i},isLoaded:function(e){var t=function(e){var t=i.indexOf(e)&gt;-1;return t||(t=!!O(e)),t};if(n.isString(e)&amp;&amp;(e=[e]),n.isArray(e)){var o,r;for(o=0,r=e.length;o&lt;r;o++)if(!t(e[o]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:P,_getModule:function(e){try{return g(e)}catch(t){throw(/No module/.test(t)||t.message.indexOf("$injector:nomod")&gt;-1)&amp;&amp;(t.message='The module "'+x(e)+'" that you are trying to load does not exist. '+t.message),t}},moduleExists:O,_loadDependencies:function(e,t){var o,i,r,a=[],s=this;if(null===(e=s._getModuleName(e)))return c.when();try{o=s._getModule(e)}catch(e){return h(e)}return i=s.getRequires(o),n.forEach(i,(function(o){if(n.isString(o)){var i=s.getModuleConfig(o);if(null===i)return void S.push(o);o=i,i.name=void 0}if(s.moduleExists(o.name))return 0!==(r=o.files.filter((function(e){return s.getModuleConfig(o.name).files.indexOf(e)&lt;0}))).length&amp;&amp;s._$log.warn('Module "',e,'" attempted to redefine configuration for dependency. "',o.name,'"\n Additional Files Loaded:',r),n.isDefined(s.filesLoader)?void a.push(s.filesLoader(o,t).then((function(){return s._loadDependencies(o)}))):h(new Error("Error: New dependencies need to be loaded from external files ("+o.files+"), but no loader has been defined."));if(n.isArray(o)){var c=[];n.forEach(o,(function(e){var t=s.getModuleConfig(e);null===t?c.push(e):t.files&amp;&amp;(c=c.concat(t.files))})),c.length&gt;0&amp;&amp;(o={files:c})}else n.isObject(o)&amp;&amp;o.hasOwnProperty("name")&amp;&amp;o.name&amp;&amp;(s.setModuleConfig(o),S.push(o.name));if(n.isDefined(o.files)&amp;&amp;0!==o.files.length){if(!n.isDefined(s.filesLoader))return h(new Error('Error: the module "'+o.name+'" is defined in external files ('+o.files+"), but no loader has been defined."));a.push(s.filesLoader(o,t).then((function(){return s._loadDependencies(o)})))}})),c.all(a)},inject:function(e){var t=arguments.length&lt;=1||void 0===arguments[1]?{}:arguments[1],o=!(arguments.length&lt;=2||void 0===arguments[2])&amp;&amp;arguments[2],i=this,r=c.defer();if(n.isDefined(e)&amp;&amp;null!==e){if(n.isArray(e)){var a=[];return n.forEach(e,(function(e){a.push(i.inject(e,t,o))})),c.all(a)}i._addToLoadList(i._getModuleName(e),!0,o)}if(s.length&gt;0){var l=s.slice(),u=function e(n){S.push(n),k[n]=r.promise,i._loadDependencies(n,t).then((function(){try{p=[],A(y,S,t)}catch(e){return i._$log.error(e.message),void r.reject(e)}s.length&gt;0?e(s.shift()):r.resolve(l)}),(function(e){r.reject(e)}))};u(s.shift())}else{if(t&amp;&amp;t.name&amp;&amp;k[t.name])return k[t.name];r.resolve()}return r.promise},getRequires:function(e){var t=[];return n.forEach(e.requires,(function(e){-1===i.indexOf(e)&amp;&amp;t.push(e)})),t},_invokeQueue:E,_registerInvokeList:T,_register:A,_addToLoadList:m,_unregister:function(e){n.isDefined(e)&amp;&amp;n.isArray(e)&amp;&amp;n.forEach(e,(function(e){r[e]=void 0}))}}}],this._init(n.element(o.document))}]);var f=n.bootstrap;n.bootstrap=function(e,t,o){return i=["ng","oc.lazyLoad"],r={},a=[],s=[],c=[],l=[],u=n.noop,d={},p=[],n.forEach(t.slice(),(function(e){m(e,!0,!0)})),f(e,t,o)};var m=function(e,t,o){(l.length&gt;0||t)&amp;&amp;n.isString(e)&amp;&amp;-1===s.indexOf(e)&amp;&amp;(s.push(e),o&amp;&amp;c.push(e))},g=n.module;n.module=function(e,t,n){return m(e,!1,!0),g(e,t,n)},e.exports===t&amp;&amp;(e.exports="oc.lazyLoad")}(angular,window),function(e){"use strict";e.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(t,n,o,i,r){return{restrict:"A",terminal:!0,priority:1e3,compile:function(r,a){var s=r[0].innerHTML;return r.html(""),function(r,a,c){var l=i(c.ocLazyLoad);r.$watch((function(){return l(r)||c.ocLazyLoad}),(function(i){e.isDefined(i)&amp;&amp;t.load(i).then((function(){o.enter(s,a),n(a.contents())(r)}))}),!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(t,n,o,i){var r=!1,a=o.document.getElementsByTagName("head")[0]||o.document.getElementsByTagName("body")[0];return t.buildElement=function(s,c,l){var u,d,p=n.defer(),f=t._getFilesCache(),m=function(e){var t=(new Date).getTime();return e.indexOf("?")&gt;=0?"&amp;"===e.substring(0,e.length-1)?e+"_dc="+t:e+"&amp;_dc="+t:e+"?_dc="+t};switch(e.isUndefined(f.get(c))&amp;&amp;f.put(c,p.promise),s){case"css":(u=o.document.createElement("link")).type="text/css",u.rel="stylesheet",u.href=!1===l.cache?m(c):c;break;case"js":(u=o.document.createElement("script")).src=!1===l.cache?m(c):c;break;default:f.remove(c),p.reject(new Error('Requested type "'+s+'" is not known. Could not inject "'+c+'"'))}u.onload=u.onreadystatechange=function(e){u.readyState&amp;&amp;!/^c|loade/.test(u.readyState)||d||(u.onload=u.onreadystatechange=null,d=1,t._broadcast("ocLazyLoad.fileLoaded",c),p.resolve(u))},u.onerror=function(){f.remove(c),p.reject(new Error("Unable to load "+c))},u.async=l.serie?0:1;var g=a.lastChild;if(l.insertBefore){var h=e.element(e.isDefined(window.jQuery)?l.insertBefore:document.querySelector(l.insertBefore));h&amp;&amp;h.length&gt;0&amp;&amp;(g=h[0])}if(g.parentNode.insertBefore(u,g),"css"==s){var v=o.navigator.userAgent.toLowerCase();if(v.indexOf("phantomjs/1.9")&gt;-1)r=!0;else if(/iP(hone|od|ad)/.test(o.navigator.platform)){var b=o.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),_=parseFloat([parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3]||0,10)].join("."));r=_&lt;6}else if(v.indexOf("android")&gt;-1){var y=parseFloat(v.slice(v.indexOf("android")+8));r=y&lt;4.4}else if(v.indexOf("safari")&gt;-1){var $=v.match(/version\/([\.\d]+)/i);r=$&amp;&amp;$[1]&amp;&amp;parseFloat($[1])&lt;6}if(r)var w=1e3,S=i((function(){try{u.sheet.cssRules,i.cancel(S),u.onload()}catch(e){--w&lt;=0&amp;&amp;u.onerror()}}),20)}return p.promise},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.filesLoader=function(o){var i=arguments.length&lt;=1||void 0===arguments[1]?{}:arguments[1],r=[],a=[],s=[],c=[],l=null,u=t._getFilesCache();t.toggleWatch(!0),e.extend(i,o);var d=function(n){var o,d=null;if(e.isObject(n)&amp;&amp;(d=n.type,n=n.path),l=u.get(n),e.isUndefined(l)||!1===i.cache){if(null!==(o=/^(css|less|html|htm|js)?(?=!)/.exec(n))&amp;&amp;(d=o[1],n=n.substr(o[1].length+1,n.length)),!d)if(null!==(o=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(n)))d=o[1];else{if(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!t.jsLoader.hasOwnProperty("requirejs"))return void t._$log.error("File type could not be determined. "+n);d="js"}"css"!==d&amp;&amp;"less"!==d||-1!==r.indexOf(n)?"html"!==d&amp;&amp;"htm"!==d||-1!==a.indexOf(n)?"js"===d||-1===s.indexOf(n)?s.push(n):t._$log.error("File type is not valid. "+n):a.push(n):r.push(n)}else l&amp;&amp;c.push(l)};if(i.serie?d(i.files.shift()):e.forEach(i.files,(function(e){d(e)})),r.length&gt;0){var p=n.defer();t.cssLoader(r,(function(n){e.isDefined(n)&amp;&amp;t.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),p.reject(n)):p.resolve()}),i),c.push(p.promise)}if(a.length&gt;0){var f=n.defer();t.templatesLoader(a,(function(n){e.isDefined(n)&amp;&amp;t.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),f.reject(n)):f.resolve()}),i),c.push(f.promise)}if(s.length&gt;0){var m=n.defer();t.jsLoader(s,(function(n){e.isDefined(n)&amp;&amp;(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||t.jsLoader.hasOwnProperty("requirejs"))?(t._$log.error(n),m.reject(n)):m.resolve()}),i),c.push(m.promise)}if(0===c.length){var g=n.defer(),h="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return t._$log.error(h),g.reject(h),g.promise}return i.serie&amp;&amp;i.files.length&gt;0?n.all(c).then((function(){return t.filesLoader(o,i)})):n.all(c).finally((function(e){return t.toggleWatch(!1),e}))},t.load=function(o){var i,r=arguments.length&lt;=1||void 0===arguments[1]?{}:arguments[1],a=this,s=null,c=[],l=n.defer(),u=e.copy(o),d=e.copy(r);if(e.isArray(u))return e.forEach(u,(function(e){c.push(a.load(e,d))})),n.all(c).then((function(e){l.resolve(e)}),(function(e){l.reject(e)})),l.promise;if(e.isString(u)?(s=a.getModuleConfig(u))||(s={files:[u]}):e.isObject(u)&amp;&amp;(s=e.isDefined(u.path)&amp;&amp;e.isDefined(u.type)?{files:[u]}:a.setModuleConfig(u)),null===s){var p=a._getModuleName(u);return i='Module "'+(p||"unknown")+'" is not configured, cannot load.',t._$log.error(i),l.reject(new Error(i)),l.promise}e.isDefined(s.template)&amp;&amp;(e.isUndefined(s.files)&amp;&amp;(s.files=[]),e.isString(s.template)?s.files.push(s.template):e.isArray(s.template)&amp;&amp;s.files.concat(s.template));var f=e.extend({},d,s);return e.isUndefined(s.files)&amp;&amp;e.isDefined(s.name)&amp;&amp;t.moduleExists(s.name)?t.inject(s.name,f,!0):(t.filesLoader(s,f).then((function(){t.inject(null,f).then((function(e){l.resolve(e)}),(function(e){l.reject(e)}))}),(function(e){l.reject(e)})),l.promise)},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.cssLoader=function(o,i,r){var a=[];e.forEach(o,(function(e){a.push(t.buildElement("css",e,r))})),n.all(a).then((function(){i()}),(function(e){i(e)}))},t.cssLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.jsLoader=function(o,i,r){var a=[];e.forEach(o,(function(e){a.push(t.buildElement("js",e,r))})),n.all(a).then((function(){i()}),(function(e){i(e)}))},t.jsLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(t,n,o,i){return t.templatesLoader=function(r,a,s){var c=[],l=t._getFilesCache();return e.forEach(r,(function(t){var r=o.defer();c.push(r.promise),i.get(t,s).then((function(o){var i=o.data;e.isString(i)&amp;&amp;i.length&gt;0&amp;&amp;e.forEach(e.element(i),(function(e){"SCRIPT"===e.nodeName&amp;&amp;"text/ng-template"===e.type&amp;&amp;n.put(e.id,e.innerHTML)})),e.isUndefined(l.get(t))&amp;&amp;l.put(t,!0),r.resolve()})).catch((function(e){r.reject(new Error('Unable to load template file "'+t+'": '+e.data))}))})),o.all(c).then((function(){a()}),(function(e){a(e)}))},t.templatesLoader.ocLazyLoadLoader=!0,t}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n;if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),i=o.length&gt;&gt;&gt;0;if(0===i)return-1;var r=+t||0;if(Math.abs(r)===1/0&amp;&amp;(r=0),r&gt;=i)return-1;for(n=Math.max(r&gt;=0?r:i-Math.abs(r),0);n&lt;i;){if(n in o&amp;&amp;o[n]===e)return n;n++}return-1})},"5VB2":function(e,t,n){angular.module("infinite-scroll",[]).value("THROTTLE_MILLISECONDS",null).directive("infiniteScroll",["$rootScope","$window","$interval","THROTTLE_MILLISECONDS",function(e,t,n,o){return{scope:{infiniteScroll:"&amp;",infiniteScrollContainer:"=",infiniteScrollDistance:"=",infiniteScrollDisabled:"=",infiniteScrollUseDocumentBottom:"=",infiniteScrollListenForEvent:"@"},link:function(i,r,a){var s,c,l,u,d,p,f,m,g,h,v,b,_,y,$,w,S,k;return k=angular.element(t),y=null,$=null,l=null,u=null,v=!0,S=!1,w=null,c=!1,h=function(e){return e=e[0]||e,isNaN(e.offsetHeight)?e.document.documentElement.clientHeight:e.offsetHeight},b=function(e){if(e[0].getBoundingClientRect&amp;&amp;!e.css("none"))return e[0].getBoundingClientRect().top+_(e)},_=function(e){return e=e[0]||e,isNaN(window.pageYOffset)?e.document.documentElement.scrollTop:e.ownerDocument.defaultView.pageYOffset},g=function(){var t,o,a;return u===k?(t=h(u)+_(u[0].document.documentElement),a=b(r)+h(r)):(t=h(u),o=0,void 0!==b(u)&amp;&amp;(o=b(u)),a=b(r)-o+h(r)),S&amp;&amp;(a=h((r[0].ownerDocument||r[0].document).documentElement)),a-t&lt;=h(u)*y+1?(l=!0,$?i.$$phase||e.$$phase?i.infiniteScroll():i.$apply(i.infiniteScroll):void 0):(c&amp;&amp;n.cancel(c),l=!1)},null!=o&amp;&amp;(g=function(e,t){var o,i,r;return r=null,i=0,o=function(){return i=(new Date).getTime(),n.cancel(r),r=null,e.call()},function(){var a,s;return a=(new Date).getTime(),(s=t-(a-i))&lt;=0?(n.cancel(r),r=null,i=a,e.call()):r?void 0:r=n(o,s,1)}}(g,o)),i.$on("$destroy",(function(){if(u.unbind("scroll",g),null!=w&amp;&amp;(w(),w=null),c)return n.cancel(c)})),f=function(e){return y=parseFloat(e)||0},i.$watch("infiniteScrollDistance",f),f(i.infiniteScrollDistance),p=function(e){if(($=!e)&amp;&amp;l)return l=!1,g()},i.$watch("infiniteScrollDisabled",p),p(i.infiniteScrollDisabled),m=function(e){return S=e},i.$watch("infiniteScrollUseDocumentBottom",m),m(i.infiniteScrollUseDocumentBottom),(s=function(e){if(null!=u&amp;&amp;u.unbind("scroll",g),u=e,null!=e)return u.bind("scroll",g)})(k),i.infiniteScrollListenForEvent&amp;&amp;(w=e.$on(i.infiniteScrollListenForEvent,g)),d=function(e){if(null!=e&amp;&amp;0!==e.length){if(e.nodeType&amp;&amp;1===e.nodeType?e=angular.element(e):"function"==typeof e.append?e=angular.element(e[e.length-1]):"string"==typeof e&amp;&amp;(e="window"===e?k:angular.element(document.querySelector(e))),null!=e)return s(e);throw new Error("invalid infinite-scroll-container attribute.")}},i.$watch("infiniteScrollContainer",d),d(i.infiniteScrollContainer||[]),null!=a.infiniteScrollParent&amp;&amp;s(angular.element(r.parent())),null!=a.infiniteScrollImmediateCheck&amp;&amp;(v=i.$eval(a.infiniteScrollImmediateCheck)),c=n((function(){return v&amp;&amp;g(),n.cancel(c)}))}}}]),e.exports===t&amp;&amp;(e.exports="infinite-scroll")},"5iwB":function(e,t,n){"use strict";var o=n("4m0D");n.n(o).a.module("services.cop",[]).service("CopService",(function(){this.forReviewCnt=CONTENT_COP_FOR_REVIEW_CNT||0})),t.a="services.cop"},"7MKW":function(e,t,n){"use strict";var o=n("4m0D"),i=n.n(o),r='&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;{{ titleTxt }} {{ user.type === \'model\' ? \'Creator\' : \'User\' }}&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body" ng-if="bodyTxt"&gt;\n            {{ bodyTxt }}\n        &lt;/div&gt;\n        &lt;div class="modal-footer"&gt;\n            &lt;a class="btn btn-primary loader" ng-click="confirm()"&gt;\n                &lt;span ng-if="!isProcessing"&gt;{{ titleTxt }}&lt;/span&gt;\n                &lt;svg-loading ng-if="isProcessing"&gt;&lt;/svg-loading&gt; \n            &lt;/a&gt;\n            &lt;a class="btn btn-cancel" ng-click="closeThisDialog()"&gt;Cancel&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt; \n',a=n("M7oJ");i.a.module("fans_service_account",[]).service("accountService",["$http","$location","$q","toaster","ngDialog",function(e,t,n,o,i){return{block:function(t){var a=n.defer();return i.open({className:"ngdialog--confirm",controller:["$scope",function(n){n.user=t,n.titleTxt="Block",n.bodyTxt='Are you sure you want to block "'+("model"===t.type?t.display_name:t.username)+'"?',n.confirm=function(){n.isProcessing=!0,e.post("/api/v1/account/follower/"+t.username+"/block").then((function(e){o.pop("success","Success","User blocked."),a.resolve()})).catch((function(e){a.reject()})).finally((function(e){n.isProcessing=!1,n.closeThisDialog()}))}}],template:r}),a.promise},unblock:function(t){var a=n.defer();return i.open({className:"ngdialog--confirm",controller:["$scope",function(n){n.user=t,n.titleTxt="Unblock",n.bodyTxt='Are you sure you want to unblock "'+("model"===t.type?t.display_name:t.username)+'"?',n.confirm=function(){n.isProcessing=!0,e.delete("/api/v1/account/follower/"+t.username+"/block").then((function(e){o.pop("success","Success","User unblocked."),a.resolve()})).catch((function(e){a.reject()})).finally((function(e){n.isProcessing=!1,n.closeThisDialog()}))}}],template:r}),a.promise},requestSupport:function(t,n){var o="/api/v1/account/support/request/".concat(t);return e.post(o,{issue:n})},verifyPayoutStatus:function(){var n=function(){i.openConfirm({className:"ngdialog--confirm",data:{btn_confirm:"Ok",text:"Enter your payout information so we can send you your earnings.",title:"It's time for you to get paid!"},template:a.a}).then((function(){i.closeAll(),t.path("/account/pay_to")}))};if(CURRENT_USER&amp;&amp;"model"===CURRENT_USER.type&amp;&amp;"undefined"!=typeof CAN_PAYOUT&amp;&amp;CAN_PAYOUT){if(void 0!==CURRENT_USER.missing_payout_info)return void(CURRENT_USER.missing_payout_info&amp;&amp;setTimeout(n,200));e.get("/api/v1/creator/payto").then((function(e){if(e.data&amp;&amp;(!e.data.payto||!e.data.payto.verified)&amp;&amp;(!e.data.payto||e.data.payto.minimum_payment&lt;=CAN_PAYOUT))return CURRENT_USER.missing_payout_info=!0,void n();CURRENT_USER.missing_payout_info=!1}))}}}}]);t.a="fans_service_account"},"7orZ":function(e,t,n){n("kvyo"),e.exports="LocalStorageModule"},"8N48":function(e,t){var n=["username","gender","is_model","is_vip","is_super_vip","has_tokens","email_confirmed","has_cc","has_purchase","is_guest","recentTips","tokens","recent_purchases","socket_id"],o={"v3.templates":["templates"],"v3.client.version":["version"],"v3.authorize.success":["success","user"],"v3.token.update":["username","tokens","token_change","membership","type"],"v3.tip.received":["tokens","receiver_name","sender_name","type","comment"],"v3.chat.message":["message"].concat(n,["user_language"]),"v3.chat.app_panels":[{type:"object",key:"app_panel",fields:["row1_label","row2_label","row3_label","row1_value","row2_value","row3_value"]},{type:"object",key:"tip_panel",fields:["label","radio_options"]}],"v3.chat.subject":["subject","subject_color"],"v3.chat.history":[{type:"array",key:"messages",fields:["message","username","has_tokens","has_purchase","recent_purchases"]}],"v3.app.koth":["username","tip"],"v3.chat.user_list":["count",{type:"array",key:"users",fields:n}],"v3.chat.userlist.start":[],"v3.chat.userlist.stop":[],"v3.chat.user_joined":[{type:"object",key:"user",fields:n}],"v3.chat.user_left":["room",{type:"object",key:"user",fields:n}],"v3.chat.update":["id","status","origin_server","module_ids","app_ids","cam2cam","thumb_small","stream_name"],"v3.private.started":["broadcaster","username","stream"],"v3.private.ping":["from"],"v3.chat.user_count":["user_count"]};e.exports=o},Ahln:function(e,t,n){"use strict";t.a='&lt;div class="webpack-loading"&gt;&lt;svg-loading&gt;&lt;/svg-loading&gt;&lt;/div&gt;\n'},HCI0:function(e,t,n){"use strict";var o=n("4m0D");n.n(o).a.module("services.utils",[]).service("Utils",(function(){return{arrayShuffle:function(e){var t,n,o;for(o=e.length;o;o--)t=Math.floor(Math.random()*o),n=e[o-1],e[o-1]=e[t],e[t]=n},stripHTML:function(e){var t=document.createElement("div"),n=document.createTextNode(e);return t.appendChild(n),t.innerHTML},getAvatar:function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:"50",n=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:"jpg",o=e[0]+"/"+e[1]+"/"+e[2],i=Math.floor(Date.now()/1e3/30);return("https://avatars.livemediahost.com/media/avatars/"+o+"/"+e+"-"+t+"."+n+"?cb="+i).toLowerCase()}}})),t.a="services.utils"},HY66:function(t,n,o){"use strict";o.r(n);var i=o("4m0D"),r=o.n(i),a=o("STM2"),s=o.n(a),c=o("lTFK"),l=o.n(c);r.a.module("utils.autostop",[]).service("autoInterval",["$interval",function(e){var t=function(t,n,o){var i=e(t,n);return o.$on("$destroy",(function(){i&amp;&amp;e.cancel(i)})),i};return t.cancel=function(t){e.cancel(t)},t}]).service("autoTimeout",["$timeout",function(e){var t=function(t,n,o){var i=e(t,n);return o.$on("$destroy",(function(){i&amp;&amp;e.cancel(i)})),i};return t.cancel=function(t){e.cancel(t)},t}]);var u=o("LtqK"),d=o.n(u);r.a.module("services.browser",[]).service("browser",["$location",function(e){var t,n;if(t=function(e){e=e.toLowerCase();var t=/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(firefox)[ \/]([\w.]+)/.exec(e)||/(crios)[ \/]([\w.]+)/.exec(e)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")&gt;=0&amp;&amp;/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")&lt;0&amp;&amp;/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],n=/(ipad)/.exec(e)||/(iphone)/.exec(e)||/(android)/.exec(e)||/(windows phone)/.exec(e)||/(win)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/i.exec(e)||[];return{browser:t[3]||t[1]||"",version:t[2]||"0",platform:n[0]||""}}(window.navigator.userAgent),n={},window.navigator.userAgent.match(/Prerender/gi)&amp;&amp;(n.prerender=!0),n.edge=window.navigator.userAgent.match("Edg"),n.lovense=window.navigator.userAgent.match("Lovense"),n.ios14=window.navigator.userAgent.match("iPhone OS 14"),n.ios13=window.navigator.userAgent.match("iPhone OS 13"),n.ios11=window.navigator.userAgent.match("iPhone OS 11"),n.ios10=window.navigator.userAgent.match("iPhone OS 10"),n.ios=window.navigator.userAgent.match("iPhone OS"),n.ios){var o=window.devicePixelRatio||1,i={width:window.screen.width*o,height:window.screen.height*o};if(n.iosx=1125===i.width&amp;&amp;2436===i.height,!n.iosx){var r=window.screen.width/window.screen.height;n.iphone11="0.462"===r.toFixed(3)}}if(t.browser&amp;&amp;(n[t.browser]=!0,n.version=t.version,n.versionNumber=parseInt(t.version)),t.platform&amp;&amp;(n[t.platform]=!0),n.mobile=n.isMobile=!1,(n.android||n.ios||n["windows phone"])&amp;&amp;(n.mobile=n.isMobile=!0),(n.ipad||n.android)&amp;&amp;(n.tablet=!0),(n.cros||n.mac||n.linux||n.win)&amp;&amp;(n.desktop=!0),(n.chrome||n.opr||n.safari)&amp;&amp;(n.webkit=!0),n.rv){t.browser="msie",n.msie=!0}if(n.opr){t.browser="opera",n.opera=!0}if(n.safari&amp;&amp;n.android){t.browser="android",n.android=!0}return n.name=t.browser,n.platform=t.platform,n.isIframed=function(){try{return window.self!==window.top}catch(e){return!0}}()||e.search().iframe,n.webrtc=d.a.isWebRTCSupported,n.hls="maybe"==document.createElement("video").canPlayType("application/vnd.apple.mpegURL"),n.hasWebpSupport=!0,window.navigator.userAgent.match(/iphone|ipad|ipod/i)?n.hasWebpSupport=!1:n.safari?n.hasWebpSupport=!1:n.msie&amp;&amp;(n.hasWebpSupport=!1),n}]);r.a.module("camsoda.config",[]).constant("camsodaConfig",{c2cHeight:480,country_list:[{name:"Afghanistan",code:"AF"},{name:"Ã…land Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"Andorra",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bonaire, Sint Eustatius and Saba",code:"BQ"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:"Cote D'Ivoire",code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"CuraÃ§ao",code:"CW"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:"Korea, Democratic People's Republic of",code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:"Lao People's Democratic Republic",code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montenegro",code:"ME"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"Rwanda",code:"RW"},{name:"Saint BarthÃ©lemy",code:"BL"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Martin (French part)",code:"MF"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia",code:"RS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Sint Maarten (Dutch part)",code:"SX"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"South Sudan",code:"SS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Vietnam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}],state_list:[{name:"ALABAMA",code:"AL"},{name:"ALASKA",code:"AK"},{name:"ALBERTA",code:"AB"},{name:"AMERICAN SAMOA",code:"AS"},{name:"ARIZONA",code:"AZ"},{name:"ARKANSAS",code:"AR"},{name:"BRITISH COLUMBIA",code:"BC"},{name:"CALIFORNIA",code:"CA"},{name:"COLORADO",code:"CO"},{name:"CONNECTICUT",code:"CT"},{name:"DELAWARE",code:"DE"},{name:"DISTRICT OF COLUMBIA",code:"DC"},{name:"FEDERATED STATES OF MICRONESIA",code:"FM"},{name:"FLORIDA",code:"FL"},{name:"GEORGIA",code:"GA"},{name:"GUAM",code:"GU"},{name:"HAWAII",code:"HI"},{name:"IDAHO",code:"ID"},{name:"ILLINOIS",code:"IL"},{name:"INDIANA",code:"IN"},{name:"IOWA",code:"IA"},{name:"KANSAS",code:"KS"},{name:"KENTUCKY",code:"KY"},{name:"LOUISIANA",code:"LA"},{name:"MAINE",code:"ME"},{name:"MANITOBA",code:"MB"},{name:"MARSHALL ISLANDS",code:"MH"},{name:"MARYLAND",code:"MD"},{name:"MASSACHUSETTS",code:"MA"},{name:"MICHIGAN",code:"MI"},{name:"MINNESOTA",code:"MN"},{name:"MISSISSIPPI",code:"MS"},{name:"MISSOURI",code:"MO"},{name:"MONTANA",code:"MT"},{name:"NEBRASKA",code:"NE"},{name:"NEVADA",code:"NV"},{name:"NEW BRUNSWICK",code:"NB"},{name:"NEWFOUNDLAND AND LABRADOR",code:"NL"},{name:"NEW HAMPSHIRE",code:"NH"},{name:"NEW JERSEY",code:"NJ"},{name:"NEW MEXICO",code:"NM"},{name:"NEW YORK",code:"NY"},{name:"NORTH CAROLINA",code:"NC"},{name:"NORTH DAKOTA",code:"ND"},{name:"NORTHERN MARIANA ISLANDS",code:"MP"},{name:"NOVA SCOTIA",code:"NS"},{name:"OHIO",code:"OH"},{name:"OKLAHOMA",code:"OK"},{name:"ONTARIO",code:"ON"},{name:"OREGON",code:"OR"},{name:"PALAU",code:"PW"},{name:"PENNSYLVANIA",code:"PA"},{name:"PRINCE EDWARD ISLAND",code:"PE"},{name:"PUERTO RICO",code:"PR"},{name:"QUEBEC",code:"QC"},{name:"RHODE ISLAND",code:"RI"},{name:"SASKATCHEWAN",code:"SK"},{name:"SOUTH CAROLINA",code:"SC"},{name:"SOUTH DAKOTA",code:"SD"},{name:"TENNESSEE",code:"TN"},{name:"TEXAS",code:"TX"},{name:"UTAH",code:"UT"},{name:"VERMONT",code:"VT"},{name:"VIRGIN ISLANDS",code:"VI"},{name:"VIRGINIA",code:"VA"},{name:"WASHINGTON",code:"WA"},{name:"WEST VIRGINIA",code:"WV"},{name:"WISCONSIN",code:"WI"},{name:"WYOMING",code:"WY"}],flash_params:{quality:"high",bgcolor:"#000000",play:"true",loop:"false",wmode:"direct",scale:"exactFit",menu:"true",devicefont:"false",salign:"",allowScriptAccess:"sameDomain",allowFullScreen:"true"},media_cdn:"//media.camsoda.com",www_cdn:"//cachew.camsoda.com",site:window.site});r.a.module("services.date-utils",[]).service("DateUtils",(function(){var e=this;this.getDiffInDays=function(e,t){var n=Math.abs(t.getTime()-e.getTime());return Math.floor(n/864e5)},this.getDiffInMinutes=function(e,t){var n=Math.abs(t.getTime()-e.getTime());return Math.floor(n/6e4)},this.isInThePast=function(e){var t=new Date;return e.getTime()&lt;=t.getTime()},this.getDiffInTextual=function(e,t){var n=e.getTime(),o=t.getTime();if(isNaN(n)||isNaN(o))return"-";var i=Math.abs(n-o),r=Math.floor(i/31536e6);i-=31536e6*r;var a=Math.floor(i/2628e6);i-=2628e6*a;var s=Math.floor(i/864e5);i-=864e5*s;var c=Math.floor(i/36e5);i-=36e5*c;var l=Math.floor(i/6e4),u="";return u=r&gt;0?r+" year"+(1===r?"":"s"):a&gt;0?a+" month"+(1===a?"":"s"):s&gt;0?s+" day"+(1===s?"":"s"):c&gt;0?c+" hour"+(1===c?"":"s"):l+" minute"+(1===l?"":"s"),o&gt;=n?"in "+u:u+" ago"},this.formatHourHumanReadable=function(e,t){var n=e%12,o=t;return(n=(n=n||12)&lt;10?"0"+n:n)+":"+(o=o&lt;10?"0"+o:o)+" "+(e&gt;=12?"PM":"AM")},this.formatSecondToTimeHumanReadable=function(e){var t=e%60,n=Math.floor(e/60%60),o=Math.floor(e/3600);return(o&gt;9?"":"0")+o+":"+(n&gt;9?"":"0")+n+":"+(t&gt;9?"":"0")+t},this.formatDateHumanReadable=function(e,t){if(isNaN(e.getTime()))return"-";var n=e.getDate(),o=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"][e.getMonth()];return!0===t?o+" "+n+", "+e.getFullYear():o+" "+n},this.formatDate=function(e){if(isNaN(e.getTime()))return"-";var t=e.getFullYear(),n=e.getDate();n=n&lt;10?"0"+n:n;var o=e.getMonth()+1;return t+"-"+(o=o&lt;10?"0"+o:o)+"-"+n},this.formatHumanReadable=function(t){var n=!(arguments.length&gt;1&amp;&amp;void 0!==arguments[1])||arguments[1];if(isNaN(t.getTime()))return"-";var o=e.formatDateHumanReadable(t),i=e.formatHourHumanReadable(t.getHours(),t.getMinutes()),r=e.getTimezoneString(t);return o+" - "+i+(n?" ("+r+")":"")},this.getTimezoneString=function(e){return/\((.*)\)/.exec(e.toString())[1]},this.getCurrentTimezoneString=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},this.getHoursFromUTCHours=function(e){var t=new Date;return t.setUTCHours(e),t.getHours()},this.formatDateUTC=function(e){if(isNaN(e.getTime()))return"-";var t=e.getUTCFullYear(),n=e.getUTCDate();n=n&lt;10?"0"+n:n;var o=e.getUTCMonth()+1;o=o&lt;10?"0"+o:o;var i=e.getUTCHours();i=i&lt;10?"0"+i:i;var r=e.getUTCMinutes();return t+"-"+o+"-"+n+"T"+i+":"+(r=r&lt;10?"0"+r:r)+":00+0000"},this.dateFromISO8601=function(e){var t=e.match(/\d+/g);return new Date(t[0],t[1]-1,t[2],t[3]||0,t[4]||0,t[5]||0)},this.dateFromISO8601UTC=function(e){var t=e.match(/\d+/g);return new Date(Date.UTC(t[0],t[1]-1,t[2],t[3]||0,t[4]||0,t[5]||0))}})).filter("datetimeFromUtc",["DateUtils",function(e){return function(t){return e.formatHumanReadable(e.dateFromISO8601UTC(t))}}]).filter("datetimeFromUtcNoTimezone",["DateUtils",function(e){return function(t){return e.formatHumanReadable(e.dateFromISO8601UTC(t),!1)}}]).filter("dateWithYearFromUtc",["DateUtils",function(e){return function(t){return e.formatDateHumanReadable(e.dateFromISO8601(t),!0)}}]).filter("dateDiffInTextual",["DateUtils",function(e){return function(t){return t?e.getDiffInTextual(new Date,e.dateFromISO8601UTC(t)):"-"}}]).filter("dateSecondToTimeHumanReadable",["DateUtils",function(e){return function(t){return t?e.formatSecondToTimeHumanReadable(t):"-"}}]).component("countdownDatetime",{bindings:{datetime:"&lt;"},controller:["$scope","autoInterval","DateUtils",function(e,t,n){function o(){var t=n.dateFromISO8601UTC(e.$ctrl.datetime);e.text=n.isInThePast(t)?"now":n.getDiffInTextual(new Date,t)}this.$onInit=function(){t(o,5e3,e),o()}}],template:"{{ text }}"});angular.module("fans_avatar",[]).directive("avatar",["$filter","utils","ProfileAvatarService",function(e,t,n){return{link:function(o,i){function r(){if(o.user){if(i.find("span").remove(),!o.user.fans_avatar_url&amp;&amp;o.showInitials)return(r=document.createElement("span")).className="csf_avatar__img",r.innerText=e("limitTo")(o.user.display_name,2),void i.append(r);if(i.addClass("no_initials"),o.user.fans_avatar_url){var n=new Image;n.onload=function(){var e=document.createElement("span");e.className="csf_avatar__img",e.style.backgroundImage="url("+n.src+")",i.append(e)},n.src=t.webpImage(o.user.fans_avatar_url)}else{var r;(r=document.createElement("span")).className="csf_avatar__img",i.append(r)}}}o.ngDisabled=!1!==o.ngDisabled,r(),o.edit=function(){n.editAvatar(o.user)},o.$on("security.current.update",(function(e,t){o.user.username===t.user.username&amp;&amp;(o.user=t.user,r())}))},replace:!0,restrict:"E",scope:{ngDisabled:"=?",showInitials:"&lt;?",user:"="},template:'&lt;span class="csf_avatar"&gt;&lt;/span&gt;'}}]);r.a.module("fans_custom_attributes",[]).directive("backImg",(function(){return function(e,t,n){n.$observe("backImg",(function(e){e&amp;&amp;t.css({"background-image":"url("+e+")"})}))}}));angular.module("fans_date_time_picker",[]).directive("dateTimePicker",[function(){return{link:function(e){function t(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:0,n=!(arguments.length&gt;2&amp;&amp;void 0!==arguments[2])||arguments[2];return Array.from(Array(e).keys()).map((function(e){return n?(e+t).toString().padStart(2,"0"):e+t}))}e.hourOnly=e.hourOnly||!1,e.dateTimePieces={day:e.dateTime.getDate().toString().padStart(2,"0"),hour:e.dateTime.getHours().toString().padStart(2,"0"),minute:e.dateTime.getMinutes().toString().padStart(2,"0"),month:(e.dateTime.getMonth()+1).toString().padStart(2,"0"),year:e.dateTime.getFullYear()},e.monthsList=Array.from(Array(12).keys()).map((function(e){return{key:(e+1).toString().padStart(2,"0"),label:new Date(2e3,e,2).toLocaleString("en-US",{month:"short"})}})),e.daysList=t(31,1),e.hoursList=t(24),e.minutesList=t(60),e.yearsList=t(2,(new Date).getFullYear(),!1),e.onChange=function(){e.dateTime=new Date(e.dateTimePieces.year,parseInt(e.dateTimePieces.month)-1,parseInt(e.dateTimePieces.day),parseInt(e.dateTimePieces.hour),parseInt(e.dateTimePieces.minute)),e.afterChange&amp;&amp;e.afterChange(e.dateTime)},e.handleMonthAndYearChange=function(n,o){var i=new Date(o,parseInt(n),0).getDate();e.daysList=t(i,1),e.dateTimePieces.day=Math.min(i,parseInt(e.dateTimePieces.day)).toString().padStart(2,"0"),e.onChange()}},replace:!0,restrict:"E",scope:{afterChange:"&lt;?",dateTime:"=",hourOnly:"&lt;?"},template:'&lt;div class="date-time-picker"&gt;\n    &lt;div class="date" &gt;\n        &lt;select\n            ng-disabled="hourOnly"\n            ng-model="dateTimePieces.month"\n            ng-change="handleMonthAndYearChange(dateTimePieces.month, dateTimePieces.year)"\n            class="form-control dt-month"\n        &gt;\n            &lt;option ng-repeat="month in monthsList" ng-value="month.key"&gt;{{ month.label }}&lt;/option&gt;\n        &lt;/select&gt;\n        &lt;select\n            ng-disabled="hourOnly"\n            ng-model="dateTimePieces.day"\n            ng-change="onChange()"\n            class="form-control dt-day"\n        &gt;\n            &lt;option ng-repeat="day in daysList" ng-value="day"&gt;{{ day }}&lt;/option&gt;\n        &lt;/select&gt;\n        &lt;select\n            ng-disabled="hourOnly"\n            ng-model="dateTimePieces.year"\n            ng-change="handleMonthAndYearChange(dateTimePieces.month, dateTimePieces.year)"\n            class="form-control dt-year"\n        &gt;\n            &lt;option ng-repeat="year in yearsList" ng-value="year"&gt;{{ year }}&lt;/option&gt;\n        &lt;/select&gt;\n    &lt;/div&gt;\n    &lt;div class="time"&gt;\n        &lt;select ng-model="dateTimePieces.hour" ng-change="onChange()" class="form-control dt-hour"&gt;\n            &lt;option ng-repeat="hour in hoursList" ng-value="hour"&gt;{{ hour }}&lt;/option&gt;\n        &lt;/select&gt;\n        &lt;span class="colon"&gt;:&lt;/span&gt;\n        &lt;select ng-model="dateTimePieces.minute" ng-change="onChange()" class="form-control dt-minute" &gt;\n            &lt;option ng-repeat="minute in minutesList" ng-value="minute"&gt;{{ minute }}&lt;/option&gt;\n        &lt;/select&gt;\n    &lt;/div&gt;\n&lt;/div&gt;'}}]);angular.module("fans_direct_message_common",[]).service("directMessageCommon",["$timeout","security","lobbySocket",function(e,t,n){var o=this;if(this.unreadUserId=DIRECT_MESSAGE_UNREAD_USER_ID,this.unreadNotificationCnt=NOTIFICATION_UNREAD_CNT,this.showDmGrowl=!1,this.unreadUserId.length&gt;0){var i=t.cookie("fans_dm_growl_displayed_at"),r=(new Date).getTime();(null===i||i&lt;r-72e5)&amp;&amp;e((function(){o.showDmGrowl=!0,t.cookie("fans_dm_growl_displayed_at",r),e((function(){o.showDmGrowl=!1}),7e3)}),3e3)}n.on("v3.fans.direct_message.new_message",(function(e){e.from_user_id!==t.getCurrent().user.id&amp;&amp;(o.unreadUserId.indexOf(e.from_user_id)&lt;0&amp;&amp;o.unreadUserId.push(e.from_user_id))})),n.on("v3.fans.direct_message.new_notification",(function(e){o.unreadNotificationCnt+=1}))}]);angular.module("fans_dropdown",[]).directive("dropdown",[function(){return{link:function(e,t){var n=angular.element(t.find("div")[0]),o=angular.element(t.find("a")[0]);function i(){n.removeClass("show"),o.removeClass("show")}t.on("click",(function(e){e.is_dropdown_open_click=!0,n.hasClass("show")?i():(n.addClass("show"),o.addClass("show"))})),angular.element(window.document).on("click",(function(e){!0!==e.is_dropdown_open_click&amp;&amp;i()}))},restrict:"A"}}]);r.a.module("fans_elem_ready",[]).directive("elemReady",["$parse",function(e){return{restrict:"A",link:function(e,t,n){t.ready((function(){e.$apply((function(){e[n.elemReady](t[0])}))}))}}}]).directive("elemLoad",["$parse",function(e){return{restrict:"A",link:function(e,t,n){t.bind("load",(function(){e.$apply((function(){e[n.elemLoad](t[0])}))}))}}}]);r.a.module("fans_error",[]).component("error",{bindings:{msg:"@",noOops:"&lt;?"},template:'&lt;div class="csf_errorpage"&gt;\n\n    &lt;h3 ng-if="$ctrl.noOops" class="csf_errorpage__title" style="font-size:20px"&gt;\n        {{ $ctrl.msg }}\n    &lt;/h3&gt;\n\n    &lt;h3 ng-if="!$ctrl.noOops" class="csf_errorpage__title"&gt;\n        Oops\n    &lt;/h3&gt;\n\n    &lt;p ng-if="!$ctrl.noOops" class="csf_errorpage__subtitle"&gt;\n        {{ $ctrl.msg }}\n    &lt;/p&gt;\n\n    &lt;p ng-if="!$ctrl.noOops" class="csf_errorpage__text"&gt;\n        Try another page meow\n    &lt;/p&gt;\n\n    &lt;img ng-if="!$ctrl.noOops" alt="404 - Page not found" class="csf_errorpage__img" src="/img/404.gif" /&gt;\n\n&lt;/div&gt;\n'});angular.module("fans_footer",[]).component("footer",{controller:["$rootScope","$scope","security","userTracking",function(e,t,n,o){t.isBottomNavVisible=n.isAuthenticated(),t.isVisible=!0,t.show2257=!0,t.trackingPixelUrl=null,n.isAuthenticated()?(t.currentUser=n.currentUser,t.modelHome=SITE.root_user?"/account/dashboard":"/",t.modelProfile=SITE.root_user?"/":"/"+n.currentUser.username):t.trackingPixelUrl=o.getTrackingPixelUrl(),t.userHomeCntrl=SITE.root_user?["StateProfileModelCtrl"]:["StateIndexFeedCtrl","StateIndexPopularCtrl"],t.isCustomDomain=!!SITE.root_user,t.isModelCustomDomain=SITE.root_user&amp;&amp;n.isAuthenticated()&amp;&amp;SITE.root_user.username===n.currentUser.username,t.hide2257=SITE.hide_2257,t.termsUri=null,e.$on("$routeChangeSuccess",(function(e,o,i){o.hasOwnProperty("$$route")&amp;&amp;(-1!==["CreatorSignupController","StateAccountDirectMessageInboxController"].indexOf(o.$$route.controller)?t.isVisible=!1:t.isVisible=!0,-1!==["CreatorSignupController","StateStreamCreateController","StateStreamViewController","StateStreamCreateC2cController","StateStreamViewC2cController"].indexOf(o.$$route.controller)?t.isBottomNavVisible=!1:t.isBottomNavVisible=n.isAuthenticated(),SITE.full_2257||(["StateIndexWelcomeCtrl","StateIndexSigninCtrl"].includes(o.$$route.controller)&amp;&amp;!n.getCurrent().user||"StateProfileCtrl"===o.$$route.controller&amp;&amp;SITE.root_user?t.show2257=!0:t.show2257=!1),!SITE.root_user&amp;&amp;"StateProfileCtrl"===o.$$route.controller&amp;&amp;o.params&amp;&amp;o.params.username&amp;&amp;"nickyjam"===o.params.username?t.termsUri="/support/terms_site":t.termsUri=null)})),t.companyGraphic=SITE.company.graphic,t.poweredBy=!!SITE.root_user,"fantime"===SITE.signup_source?t.poweredByUrl="https://www.fantime.com":t.poweredByUrl="https://www.fansoda.com",t.poweredByName=SITE.creator_platform}],template:'&lt;div id="redirecting" class="full-loader text-muted flex-column"&gt;\n    &lt;div class="fw-bold"&gt;Redirectingâ€¦&lt;/div&gt;\n    &lt;svg-loading&gt;&lt;/svg-loading&gt;\n&lt;/div&gt;\n\n&lt;div class="csf_mobile_bottom_nav position-fixed d-flex justify-content-evenly align-content-center align-items-center" menu-mobile ng-if="isBottomNavVisible"&gt;\n    &lt;a  class="position-relative"\n        ng-if="currentUser.type === \'model\' &amp;&amp; !isCustomDomain" ng-href="{{ modelHome }}"\n        ng-class="{\'active\': currentLocation === \'StateIndexModelsCtrl\'}"&gt;\n        &lt;i class="icon-fan_home" title="Home"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n    &lt;a  class="position-relative"\n        ng-if="currentUser.type !== \'model\' || isCustomDomain" href="/" ng-class="{\'active\': userHomeCntrl.includes(currentLocation)}"&gt;\n        &lt;i class="icon-fan_home" title="Home"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n    &lt;a  class="position-relative"\n        href="/account/direct-message" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageInboxController\')}"&gt;\n        &lt;i class="icon-fan_inbox" title="DMs"&gt;&lt;/i&gt;\n        &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-primary"&gt;{{ directMessageCommon.unreadUserId.length | maxBubble }}&lt;/span&gt;\n    &lt;/a&gt;\n    &lt;a  class="position-relative"\n        href="/account/direct-message/notifications" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageNotificationController\')}"&gt;\n        &lt;i class="icon-fan_notif" title="Notifications"&gt;&lt;/i&gt;\n        &lt;span ng-if="directMessageCommon.unreadNotificationCnt &gt; 0" class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-primary"&gt;{{ directMessageCommon.unreadNotificationCnt | maxBubble }}&lt;/span&gt;\n    &lt;/a&gt;\n\n    \x3c!-- USER ONLY --\x3e\n    &lt;a  class="position-relative"\n        ng-if="currentUser.type !== \'model\'" href="/account/following" ng-class="{\'active\': (currentLocation === \'StateAccountFollowingController\')}"&gt;\n        &lt;i class="icon-fan_like" title="Following"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n\n    \x3c!-- MODEL ONLY --\x3e\n    &lt;a class="position-relative"\n       ng-if="currentUser.type === \'model\' &amp;&amp; !isCustomDomain" ng-href="{{ modelProfile }}" ng-class="{\'active\': currentLocation === \'StateProfileModelCtrl\'}"&gt;\n        &lt;i class="icon-fan_profile" title="Profile"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n\n    &lt;a class="position-relative"\n        ng-if="currentUser.type === \'model\' &amp;&amp; isCustomDomain &amp;&amp; isModelCustomDomain" href="/account/dashboard" ng-class="{\'active\': currentLocation === \'StateAccountDashboardController\'}"&gt;\n        &lt;i class="icon-fan_stats" title="Stats"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n\n    &lt;a class="position-relative"\n        ng-if="currentUser.type === \'model\' &amp;&amp; isCustomDomain &amp;&amp; !isModelCustomDomain" href="/account/earnings" ng-class="{\'active\': (currentLocation === \'StateAccountEarningsController\')}"&gt;\n        &lt;i class="icon-fan_tip" title="Earnings"&gt;&lt;/i&gt;\n    &lt;/a&gt;\n&lt;/div&gt;\n\n&lt;nav class="csf_footer mt-3" ng-if="isVisible"&gt;\n    &lt;div class="csf_footer__wrapper position-relative text-center pt-md-3 p-md-3 pt-1 p-2 "&gt;\n\n        &lt;ul class="csf_footer__nav nav justify-content-center" &gt;\n            &lt;li class="nav-item"&gt;\n                &lt;a class="nav-link" href="/support/faq"&gt;Faq&lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item"&gt;\n                &lt;a class="nav-link" href="/support/index"&gt;Support&lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item"&gt;\n                &lt;a class="nav-link" href="/support/report"&gt;Report Content&lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item"&gt;\n                &lt;a class="nav-link" ng-href="{{ termsUri || \'/support/terms\' }}"&gt;Terms&lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item"&gt;\n                &lt;a class="nav-link" href="/support/privacy"&gt;Privacy&lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li ng-if="show2257 &amp;&amp; !show2257Full" class="nav-item" ng-class="{ invisible: hide2257 }"&gt;\n                &lt;a class="nav-link" href="/support/compliance"&gt;2257 Exempt&lt;/a&gt;\n            &lt;/li&gt;\n        &lt;/ul&gt;\n        &lt;span class="csf_footer__text d-block"&gt;\n            &lt;img ng-src="{{ companyGraphic }}" width="166" height="44" alt /&gt;\n        &lt;/span&gt;\n    &lt;/div&gt;\n\n    &lt;div ng-if="show2257 &amp;&amp; show2257Full"  class="csf_footer__compliance text-center pb-2"&gt;\n        &lt;a href="/support/compliance"&gt;18 U.S.C. 2257 Record-Keeping Requirements Compliance Statement&lt;/a&gt;\n    &lt;/div&gt;\n\n    &lt;div  ng-if="poweredBy" class="csf_footer__powered text-center pb-2"&gt;\n        Powered by &lt;a ng-href="{{ poweredByUrl }}"&gt;{{ poweredByName }}&lt;/a&gt;\n    &lt;/div&gt;\n&lt;/nav&gt;\n\n&lt;div ng-if="isBottomNavVisible" class="csf_mobile_bottom_nav_padding"&gt;&amp;nbsp;&lt;/div&gt;\n\n&lt;img ng-if="trackingPixelUrl" ng-src="{{::trackingPixelUrl}}" width="1" height="1"&gt;\n'}).directive("menuMobile",["$timeout","$window","$route","$rootScope","directMessageCommon",function(e,t,n,o,i){return{link:function(e,t){e.currentLocation=n.current&amp;&amp;n.current.$$route&amp;&amp;n.current.$$route.controller,o.$on("$routeChangeSuccess",(function(t,n,o){e.currentLocation=n.$$route&amp;&amp;n.$$route.controller,e.currentParams=n.params||{}})),e.directMessageCommon=i,e.custom_domain=SITE.subdomain||!1},replace:!0,restrict:"A"}}]);angular.module("fans_form_error",[]).directive("formError",(function(){return{replace:!0,restrict:"E",scope:{form:"=",name:"@"},template:'&lt;span class="csf__form__error"&gt;\n\n    &lt;span ng-if="form.$submitted &amp;&amp; form[name].$error.required"&gt;\n        This field is required.\n    &lt;/span&gt;\n\n    &lt;span ng-if="form.$submitted &amp;&amp; form[name].$error.email"&gt;\n        This should be a valid email address.\n    &lt;/span&gt;\n\n    &lt;span ng-if="form.$submitted &amp;&amp; form[name].$error.pattern"&gt;\n        This should be a valid snapchat username.\n    &lt;/span&gt;\n\n&lt;/span&gt;\n'}}));o("1ueU");r.a.module("fans_header_dropdown_logout_menu",["pageslide-directive"]).component("headerDropdownLogoutMenu",{bindings:{},controller:["$route","security","$scope",function(e,t,n){n.slide_menu_open=!1,n.slide_menu_close=function(){n.slide_menu_open=!1},n.openAuthForm=t.openAuthForm,n.openSignin=t.openSignin,n.headerLogo=SITE.custom.logo?SITE.media_host+SITE.custom.logo:SITE.custom.large_logo?SITE.media_host+SITE.custom.large_logo:""}],template:'&lt;div&gt;\n    &lt;button class="btn btn-link d-md-none" ng-click="slide_menu_open=!slide_menu_open"&gt;\n        &lt;i class="icon-fan_bars icon-lg"&gt;&lt;/i&gt;\n    &lt;/button&gt;\n\n    &lt;pageslide ps-open="slide_menu_open" ps-side="right" ps-size="280px" ps-speed=".2" class="csf_header__user_menu" ng-class="{ open: slide_menu_open }"&gt;\n        &lt;div class="btn btn-close position-absolute" ng-click="slide_menu_open=!slide_menu_open"&gt;&lt;/div&gt;\n        &lt;div class="csf_header__user_menu_header nbd"&gt;\n            &lt;a href="/" class="csf_header__user_menu_logo"&gt;\n               &lt;img ng-if="headerLogo" ng-src="{{ headerLogo | webp }}" width="180" height="38"&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n        &lt;div class="csf_header__user_menu_nlg_body"&gt;\n           &lt;div&gt;\n              &lt;div&gt;Already a member?&lt;/div&gt;\n              &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n           &lt;/div&gt;\n           &lt;div&gt;\n              &lt;div&gt;Wanna follow&lt;br&gt;your favorite creators?&lt;/div&gt;\n              &lt;button class="btn btn-primary fw-bold" ng-click="openAuthForm()"&gt;User Sign up&lt;/button&gt;\n           &lt;/div&gt;\n           &lt;div&gt;\n              &lt;div&gt;Apply to the world\'s most&lt;br&gt;exclusive fans platform&lt;/div&gt;\n              &lt;a class="btn btn-primary fw-bold" href="/creator" ng-click="slide_menu_close()"&gt;Setup Creator Account&lt;/a&gt;\n           &lt;/div&gt;\n        &lt;/div&gt;\n   &lt;/pageslide&gt;\n&lt;/div&gt;\n'});var p=o("Xk3Y"),f=o("VoZl");angular.module("fans_header",["fans_header_dropdown_logout_menu",p.a,f.a]).filter("maxBubble",["utils",function(e){return e.number.maxBubble}]).component("header",{controller:["$rootScope","$scope","$http","toaster","autoTimeout","directMessageCommon","modelManagerService","security","whitelabel","DateUtils","utils","$route",function(e,t,n,o,i,r,a,s,c,l,u,d){function p(){t.isCreatorSignup||!t.current.user?t.nagVisible=null:"user"===t.current.user.type?t.current.showEmailNag?t.nagVisible="email_validate":t.nagVisible=null:"model"===t.current.user.type&amp;&amp;("rejected"===t.complianceStatus?t.nagVisible="application_declined":["approved","rejected"].includes(t.complianceStatus)?"approved"!==t.complianceStatus||t.current.user.fans_avatar_url&amp;&amp;(t.current.user.fans_cover_picture_url||t.current.user.fans_cover_video_url)?t.current.showEmailNag&amp;&amp;l.getDiffInDays(new Date,l.dateFromISO8601UTC(t.current.user.created_at))&lt;=30?t.nagVisible="email_validate":t.nagVisible=null:t.nagVisible="upload_pics":t.nagVisible="application_review"),e.$broadcast("fans.header.top_bar_changed")}t.current=s.getCurrent(),t.directMessageCommon=r,t.logout=s.logout,t.openAuthForm=s.openAuthForm,t.openSignin=s.openSignin,t.profileUrl=t.current.user&amp;&amp;c.profileUrl(t.current.user.username),t.createPostUrl=t.current.user&amp;&amp;c.profileUrl(t.current.user.username,"posts/create"),t.title=SITE.display_name,t.headerLogo=SITE.custom.logo?SITE.media_host+SITE.custom.logo:null,t.isTooltipEnabled=!u.isMobileView(),t.sendEmailValidation=s.sendEmailValidation,t.acceptManagerInvitation=function(e){a.acceptInvite({username:e.model.username,fee:e.fee_percentage,hash:e.hash},(function(n){t.managerInviteList=MANAGED_USER_INVITE_LIST=n,o.pop("success","Success",'You are now manager of "'+e.model.username+'".')}),(function(e){o.pop("error","Error",e)}))},t.denyManagerInvitation=function(e){a.denyInvite(e,(function(e){t.managerInviteList=MANAGED_USER_INVITE_LIST=e}))},t.isCreatorSignup=!1,t.isVisible=!0,t.complianceStatus=COMPLIANCE_STATUS&amp;&amp;COMPLIANCE_STATUS.status,t.complianceReason=COMPLIANCE_STATUS&amp;&amp;COMPLIANCE_STATUS.reason,t.complianceUrl="/creator/signup",t.logoClick=function(t){"/"===window.location.pathname&amp;&amp;(t.preventDefault(),e.$broadcast("logoClicked"))},t.openBroadcast=function(t){window.location.pathname.startsWith("/account/direct-message/inbox")&amp;&amp;(t.preventDefault(),e.$broadcast("openBroadcast"))},t.hideEmailNag=function(){s.hideEmailNag(!0),p()},t.nagVisible=null,p(),t.$on("logo.update",(function(e,n){SITE.root_user&amp;&amp;SITE.root_user.username===t.current.user.username&amp;&amp;(t.headerLogo=SITE.media_host+n.logo)})),e.$on("$routeChangeSuccess",(function(e,n,o){t.isCreating="CreatorController"===(n.$$route&amp;&amp;n.$$route.controller)})),e.$on("security.current.update",(function(e,t){p()})),e.$on("$routeChangeSuccess",(function(e,n,o){n.hasOwnProperty("$$route")&amp;&amp;(["/:username/manager","/creator","/creator/signup","/creator/vip-signup-form"].includes(n.$$route.originalPath)?t.managerInviteList=[]:t.managerInviteList="undefined"!=typeof MANAGED_USER_INVITE_LIST?MANAGED_USER_INVITE_LIST:[],"CreatorSignupController"===n.$$route.controller?(t.isCreatorSignup=!0,t.isVisible=!1,angular.element(document.body).addClass("full-bg")):"CreatorReferController"===n.$$route.controller?(t.isCreatorSignup=!0,t.isVisible=!0,angular.element(document.body).removeClass("full-bg")):["StateProfileCtrl","StateProfileLoggedOutCtrl","StateProfileModelCtrl","StateProfileUserCtrl"].includes(n.$$route.controller)?(t.isCreatorSignup=!1,t.isVisible=!1,angular.element(document.body).removeClass("full-bg")):(angular.element(document.body).removeClass("full-bg"),t.isCreatorSignup=!1,"fantime"!==SITE.homepage_style||t.current.user?t.isVisible=!0:t.isVisible="StateIndexWelcomeCtrl"!==n.$$route.controller),p())}))}],template:'&lt;div id="header"&gt;\n    &lt;div class="csf_header__alert" ng-if="nagVisible === \'application_declined\'"&gt;\n        &lt;div class="csf_header__alert_item"&gt;\n            &lt;div class="csf_header__alert_item_icon"&gt;&lt;/div&gt;\n            &lt;div class="csf_header__alert_text"&gt;\n                &lt;strong&gt;Creator Application Declined:&lt;/strong&gt;\n                &lt;a ng-href="{{ complianceUrl }}"&gt;\n                    {{ complianceReason ? complianceReason : \'Please review and make the necessary changes.\' }}\n                &lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_header__alert" ng-if="nagVisible === \'application_review\'"&gt;\n        &lt;div class="csf_header__alert_item"&gt;\n            &lt;div class="csf_header__alert_item_icon"&gt;&lt;/div&gt;\n            &lt;div class="csf_header__alert_text"&gt;\n                &lt;strong&gt;Creator Application Under Review:&lt;/strong&gt;\n                &lt;a ng-href="{{ profileUrl }}"&gt;\n                    Please begin setting up your profile. You will be notified once your application has been reviewed.\n                &lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_header__alert" ng-if="nagVisible === \'upload_pics\'"&gt;\n        &lt;div class="csf_header__alert_item"&gt;\n            &lt;div class="csf_header__alert_item_icon"&gt;&lt;/div&gt;\n            &lt;div class="csf_header__alert_text"&gt;\n                &lt;strong&gt;Important Reminder:&lt;/strong&gt;\n                &lt;a ng-href="{{ profileUrl }}"&gt;\n                    Upload your bio &amp; header pics.\n                &lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_header__alert" ng-if="nagVisible === \'email_validate\'"&gt;\n        &lt;div class="csf_header__alert_item"&gt;\n            &lt;a ng-click="hideEmailNag()" class="btn-close close"&gt;&lt;/a&gt;\n            &lt;div class="csf_header__alert_item_icon"&gt;&lt;/div&gt;\n            &lt;div class="csf_header__alert_text"&gt;\n                &lt;b class="d-block" ng-if="current.user.type !== \'model\'"&gt;Validate your email to make sure you know when creators reply to your messages!&lt;/b&gt;\n                &lt;b class="d-block" ng-if="current.user.type === \'model\'"&gt;Validate your email to be notified in case of important information!&lt;/b&gt;\n                You didn\'t receive the message with the link to validate your email?\n                &lt;a class="csf_header__alert_item_link" ng-click="sendEmailValidation()"&gt;Click here to resend&lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_header__alert" ng-if="!isCreatorSignup" ng-repeat="invite in managerInviteList"&gt;\n        &lt;div class="csf_header__alert_item"&gt;\n            &lt;div class="csf_header__alert_item_icon"&gt;&lt;/div&gt;\n            &lt;div class="csf_header__alert_text"&gt;\n                &lt;p&gt;"{{invite.model.username}}" has invited you to be a Manager and to receive {{invite.fee_percentage}}% commission on earnings to help manage the account.&lt;/p&gt;\n                &lt;button ng-click="acceptManagerInvitation(invite)" class="btn btn-sm btn-success m-1 me-2"&gt;\n                    &amp;checkmark;&amp;nbsp;Accept manager invitation\n                &lt;/button&gt;\n                &lt;button ng-click="denyManagerInvitation(invite.model_user_id)" class="btn btn-sm btn-danger m-1"&gt;\n                    &amp;cross;&amp;nbsp;Deny\n                &lt;/button&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div ng-if="isVisible" class="csf_header"&gt;\n        &lt;nav class="csf_header__navbar navbar navbar-expand-lg"&gt;\n            &lt;div class="container-fluid"&gt;\n                &lt;a class="csf_header__brand navbar-brand" href="/" back-img="{{ headerLogo | webp }}" ng-click="logoClick($event)"&gt;\n                    {{ title }}\n                &lt;/a&gt;\n                &lt;div class="d-flex" ng-if="current.user"&gt;\n                    &lt;div class="d-flex align-items-center csf_header__menu_buttons" &gt;\n                        &lt;div&gt;\n                            &lt;a ng-if="current.user.type === \'model\'" class="csf_header__stream_button nav-link" href="/stream/create"\n                               uib-tooltip="Live Stream" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                               &gt;\n                                &lt;span class="icon icon-fan_stream align-middle"&gt;&lt;/span&gt;\n                            &lt;/a&gt;\n                        &lt;/div&gt;\n                        &lt;a ng-if="current.user.type === \'model\'" class="csf_header__post_button nav-link"\n                           ng-href="{{ createPostUrl }}"\n                           uib-tooltip="Create a post" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                           &gt;\n                            &lt;span class="icon icon-fan_write-plain align-middle"&gt;&lt;/span&gt;\n                        &lt;/a&gt;\n                        &lt;a ng-if="current.user.type === \'model\'" class="csf_header__broadcast_button nav-link"\n                           href="/account/direct-message/inbox/open-broadcast"\n                           ng-click="openBroadcast($event)"\n                           uib-tooltip="Send a DM" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                           &gt;\n                            &lt;span class="icon icon-fan_dm align-middle"&gt;&lt;/span&gt;\n                        &lt;/a&gt;\n                        &lt;a class="item csf_header__dm_button btn nav-link header-nav-item-dm position-relative"\n                           href="/account/direct-message"\n                           uib-tooltip="Inbox" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                           &gt;\n                            &lt;span class="icon icon-fan_inbox align-middle"&gt;&lt;/span&gt;\n                            &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="position-absolute badge rounded-pill"&gt;\n                                {{ directMessageCommon.unreadUserId.length | maxBubble }}\n                            &lt;/span&gt;\n                            &lt;span class="csf_header__dm_button__growl" ng-class="{\'csf_header__dm_button__growl--visible\': directMessageCommon.showDmGrowl}" ng-if="directMessageCommon.unreadUserId.length &gt; 0"&gt;\n                                You have\n                                &lt;strong&gt;{{ directMessageCommon.unreadUserId.length | maxBubble }} unread {{ directMessageCommon.unreadUserId.length === 1 ? \'message\' : \'messages\' }}&lt;/strong&gt;\n                            &lt;/span&gt;\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                    &lt;header-dropdown-menu ng-if="current.user" user="current.user"&gt;&lt;/header-dropdown-menu&gt;\n                &lt;/div&gt;\n\n                &lt;div class="csf_welcome__auth_buttons d-none d-md-flex" ng-if="!current.user"&gt;\n                    &lt;div ng-if="!isCreating"&gt;\n                         &lt;a class="btn btn-primary fw-bold no-above-text" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n                    &lt;/div&gt;\n                    &lt;div&gt;\n                        &lt;button class="btn btn-primary fw-bold no-above-text" ng-click="openAuthForm()"&gt;User Sign up&lt;/button&gt;\n                    &lt;/div&gt;\n                    &lt;div&gt;\n                        &lt;div&gt;Already a member?&lt;/div&gt;\n                        &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;header-dropdown-logout-menu class="d-md-none" ng-if="!current.user"&gt;&lt;/header-dropdown-logout-menu&gt;\n\n            &lt;/div&gt;\n        &lt;/nav&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'});var m=o("5iwB"),g=o("2Y2/");r.a.module("fans_header_dropdown_menu",[m.a,g.a]).filter("maxBubble",["utils",function(e){return e.number.maxBubble}]).directive("headerDropdownMenu",["$route","$http","security","whitelabel","directMessageCommon","CopService","ProfileAvatarService","SnapchatService",function(e,t,n,o,i,a,s,c){return{link:function(t,l){function u(){t.allSubBtn||(t.allSubBtn=document.querySelectorAll(".csf-header-sub-menu-btn"))}t.profileUrl=o.profileUrl(t.user.username),t.logout=n.logout,t.edit=function(){s.editAvatar(t.user)},t.slide_menu_open=!1,t.directMessageCommon=i,t.cop_service=a,t.snapchat_service=c,t.pendingCustomPurchasesCnt=PENDING_CUSTOM_PURCHASES_CNT,t.allSubBtn=null,t.toggleMenu=function(){t.slide_menu_open=!t.slide_menu_open},t.$watch("slide_menu_open",(function(){var e;for(u(),e=0;e&lt;t.allSubBtn.length;e++){var n=r.a.element(t.allSubBtn[e]),o=t.allSubBtn[e].getAttribute("data-rel"),i=r.a.element(document.querySelector("#"+o));!n.hasClass("active")&amp;&amp;n.hasClass("collapsed")?(n.removeClass("collapsed"),i.removeClass("show-sub")):n.hasClass("active")&amp;&amp;i.addClass("show-sub")}})),t.toggleSubMenu=function(e,n){var o,i=r.a.element(e.target),a=r.a.element(document.querySelector("#"+n));for(u(),o=0;o&lt;t.allSubBtn.length;o++){var s=t.allSubBtn[o].getAttribute("data-rel");if(t.allSubBtn[o].getAttribute("data-rel")!==n)r.a.element(t.allSubBtn[o]).removeClass("collapsed"),r.a.element(document.querySelector("#"+s)).removeClass("show-sub")}i.hasClass("collapsed")?(a.removeClass("show-sub"),i.removeClass("collapsed")):(a.addClass("show-sub"),i.addClass("collapsed"))},t.currentLocation=e.current&amp;&amp;e.current.$$route&amp;&amp;e.current.$$route.controller,t.$on("$routeChangeSuccess",(function(e,n,o){t.currentLocation=n.$$route&amp;&amp;n.$$route.controller,t.currentParams=n.params||{}}))},replace:!0,restrict:"E",scope:{user:"="},template:'&lt;div class="csf_header__user nav-item"&gt;\n\n    &lt;a class="csf_header__avatar position-relative d-block ms-2" ng-click="slide_menu_open=!slide_menu_open"&gt;\n        &lt;avatar ng-disabled="false" user="user" show-initials="true"&gt;&lt;/avatar&gt;\n        &lt;span class="position-absolute d-none d-sm-block badge rounded-pill bg-primary border border-light" ng-if="directMessageCommon.unreadNotificationCnt &gt; 0 || pendingCustomPurchasesCnt &gt; 0 || cop_service.forReviewCnt &gt; 0 || snapchat_service.pendingSnapchatNotificationsCnt &gt; 0"&gt;\n            {{ directMessageCommon.unreadNotificationCnt + pendingCustomPurchasesCnt + cop_service.forReviewCnt + snapchat_service.pendingSnapchatNotificationsCnt | maxBubble }}\n        &lt;/span&gt;\n        &lt;span class="position-absolute d-sm-none badge rounded-pill bg-primary border border-light" ng-if="directMessageCommon.unreadNotificationCnt &gt; 0 || pendingCustomPurchasesCnt &gt; 0 || cop_service.forReviewCnt &gt; 0 || snapchat_service.pendingSnapchatNotificationsCnt &gt; 0 || directMessageCommon.unreadUserId.length"&gt;\n            {{ directMessageCommon.unreadUserId.length + directMessageCommon.unreadNotificationCnt + pendingCustomPurchasesCnt + cop_service.forReviewCnt + snapchat_service.pendingSnapchatNotificationsCnt | maxBubble }}\n        &lt;/span&gt;\n    &lt;/a&gt;\n\n    &lt;pageslide ps-open="slide_menu_open" ps-side="right" ps-size="280px" ps-speed=".2" class="csf_header__user_menu" ng-class="{ open: slide_menu_open }"&gt;\n        &lt;div class="btn btn-close position-absolute" ng-click="slide_menu_open=!slide_menu_open"&gt;&lt;/div&gt;\n        &lt;div class="csf_header__user_menu_header"&gt;\n            &lt;avatar ng-click="edit();toggleMenu()" ng-disabled="false" user="user" show-initials="true"&gt;&lt;/avatar&gt;\n            &lt;div class="csf_header__user_menu_username"&gt;\n                &lt;span ng-class="{\'is_model\': (user.type === \'model\')}"&gt;{{ user.type === \'model\' ? user.display_name : user.username }}&lt;/span&gt;\n                &lt;a ng-click="edit();toggleMenu()"&gt;Edit your Avatar&lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n        &lt;div class="csf-menu pt-2 text-muted d-flex flex-column mx-2 fs-md-1000 text-uppercase" ng-if="user.type === \'model\'"&gt;\n            &lt;a ng-href="{{ profileUrl }}" ng-click="toggleMenu()" class="p-2 rounded mb-1-2" ng-class="{\'active\': currentLocation === \'StateProfileModelCtrl\'}"&gt;\n                &lt;i class="icon icon-fan_profile fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt; Profile\n            &lt;/a&gt;\n\n            &lt;a href="/account/direct-message/inbox" ng-click="toggleMenu()" class="p-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageInboxController\')}"&gt;\n                &lt;i class="icon icon-fan_inbox fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Inbox\n                &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ directMessageCommon.unreadUserId.length }}&lt;/span&gt;\n            &lt;/a&gt;\n\n            &lt;a href="/account/calendar" ng-click="toggleMenu()" class="p-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountCalendarController\')}"&gt;\n                &lt;i class="icon icon-fan_calendar fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Calendar\n            &lt;/a&gt;\n\n            &lt;a href="/account/direct-message/notifications" ng-click="toggleMenu()" class="p-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageNotificationController\')}"&gt;\n                &lt;i class="icon icon-fan_notif fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Notifications\n                &lt;span ng-if="directMessageCommon.unreadNotificationCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ directMessageCommon.unreadNotificationCnt | maxBubble }}&lt;/span&gt;\n            &lt;/a&gt;\n\n            &lt;a href="/account/cross_promotion" ng-click="toggleMenu()" class="p-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountCrossPromotionController\')}"&gt;\n                &lt;i class="icon icon-fan_cross-promo fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Cross Promotion\n            &lt;/a&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="dms-menu"\n                ng-click="toggleSubMenu($event, \'dms-menu\')"\n                ng-class="{\'active\': \'StateAccountDirectMessageAutoController\' === currentLocation &amp;&amp; [\'interval\',\'thankyou\',\'welcome\'].indexOf(currentParams.type) !== -1}"&gt;\n                    &lt;i class="icon icon-fan_dm fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                    DM\n            &lt;/a&gt;\n            &lt;div id="dms-menu" class="csf-header-sub-menu ms-2 text-normal"\n                 ng-class="{\'show-sub\': \'StateAccountDirectMessageAutoController\' === currentLocation &amp;&amp; [\'interval\',\'thankyou\',\'welcome\'].indexOf(currentParams.type) !== -1}"\n            &gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/direct-message/auto" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"\n                        ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'interval\')}"&gt;\n                        Auto DMs\n                    &lt;/a&gt;\n                    &lt;a href="/account/direct-message/welcome" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"\n                        ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'welcome\' )}"&gt;\n                        Welcome DMs\n                    &lt;/a&gt;\n                    &lt;a href="/account/direct-message/thankyou" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"\n                        ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'thankyou\' )}"&gt;\n                        Thank you DMs\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="media-menu"\n                ng-click="toggleSubMenu($event, \'media-menu\')"\n                ng-class="{\'active\':  (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'profile\') || currentLocation === \'StateAccountVaultController\' }"&gt;\n                    &lt;i class="icon icon-fan_media fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                    Media\n            &lt;/a&gt;\n            &lt;div id="media-menu" class="csf-header-sub-menu ms-2 text-normal"\n                 ng-class="{\'show-sub\': (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'profile\') || currentLocation === \'StateAccountVaultController\'}"\n            &gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/vault" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': currentLocation === \'StateAccountVaultController\'}"&gt;\n                        Media Vault\n                    &lt;/a&gt;\n                    &lt;a  href="/account/direct-message/profile" class="d-block p-2 ms-2 rounded mb-1-2" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageAutoController\' &amp;&amp; currentParams.type === \'profile\')}"&gt;\n                        Sell Media on Profile\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="fans-menu"\n                ng-click="toggleSubMenu($event, \'fans-menu\')"\n                ng-class="{\'active\': [\'StateAccountTopSpendersController\',\'StateAccountSubscriberController\',\'StateAccountFollowerController\',\'StateAccountSnapchatController\',\'StateAccountGiftController\'].indexOf(currentLocation) !== -1}"&gt;\n                    &lt;i class="icon-fan_subscribers fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                    Fans\n                    &lt;span ng-if="snapchat_service.pendingSnapchatNotificationsCnt &gt; 0 || pendingCustomPurchasesCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary d-inline-block "&gt;&lt;/span&gt;\n\n            &lt;/a&gt;\n            &lt;div id="fans-menu" class="csf-header-sub-menu ms-2 text-normal"\n                ng-class="{\'show-sub\': [\'StateAccountCustomPurchasesController\',\'StateAccountTopSpendersController\',\'StateAccountSubscriberController\',\'StateAccountFollowerController\',\'StateAccountSnapchatController\',\'StateAccountGiftController\'].indexOf(currentLocation) !== -1}"\n            &gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/custom-purchases" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountCustomPurchasesController\')}"&gt;\n                        Tip Menu Purchases\n                        &lt;span ng-if="pendingCustomPurchasesCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ pendingCustomPurchasesCnt | maxBubble }}&lt;/span&gt;\n                    &lt;/a&gt;\n                    &lt;a href="/account/gift" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountGiftController\')}"&gt;\n                        Gift Free Subscriptions\n                    &lt;/a&gt;\n                    &lt;a href="/account/top-spenders" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountTopSpendersController\')}"&gt;\n                        Top Spenders\n                    &lt;/a&gt;\n                    &lt;a href="/account/subscriber" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountSubscriberController\')}"&gt;\n                        Profile Subscribers\n                    &lt;/a&gt;\n                    &lt;a href="/account/follower" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountFollowerController\')}"&gt;\n                        Profile Free Followers\n                    &lt;/a&gt;\n                    &lt;a href="/account/snapchat" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountSnapchatController\')}"&gt;\n                        Snapchat Subscribers\n                        &lt;span ng-if="snapchat_service.pendingSnapchatNotificationsCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ snapchat_service.pendingSnapchatNotificationsCnt | maxBubble }}&lt;/span&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="stats-menu"\n                ng-click="toggleSubMenu($event, \'stats-menu\')"\n                ng-class="{\'active\': [\'StateAccountDashboardController\',\'StateAccountDirectMessageStatsController\',\'StateAccountStatsController\',\'StateAccountReferralsController\',\'StateAccountStreamStatsController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;i class="icon-fan_stats fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Stats\n            &lt;/a&gt;\n            &lt;div id="stats-menu" class="csf-header-sub-menu ms-2 text-normal"\n                 ng-class="{\'show-sub\':  [\'StateAccountDashboardController\',\'StateAccountDirectMessageStatsController\',\'StateAccountStatsController\',\'StateAccountReferralsController\'].indexOf(currentLocation) !== -1}"\n            &gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/dashboard" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': currentLocation === \'StateAccountDashboardController\'}"&gt;\n                        Dashboard\n                    &lt;/a&gt;\n                    &lt;a href="/account/direct-message/stats" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageStatsController\')}"&gt;\n                        Premium Media Stats\n                    &lt;/a&gt;\n                    &lt;a href="/account/stats" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountStatsController\')}"&gt;\n                        Profile Analytics\n                    &lt;/a&gt;\n                    &lt;a href="/account/referrals" ng-click="toggleMenu()"  class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountReferralsController\')}" ng-if="user.is_direct_pay"&gt;\n                        Referral Stats\n                    &lt;/a&gt;\n                    &lt;a href="/account/stream-stats" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountStreamStatsController\')}"&gt;\n                        Stream Stats\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="payout-menu"\n                ng-click="toggleSubMenu($event, \'payout-menu\')"\n                ng-class="{\'active\': [\'StateAccountEarningsController\',\'StateAccountPayToController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;i class="icon-fan_tip fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Payments\n            &lt;/a&gt;\n            &lt;div id="payout-menu" class="csf-header-sub-menu ms-2 text-normal"\n                 ng-class="{\'show-sub\': [\'StateAccountEarningsController\',\'StateAccountPayToController\'].indexOf(currentLocation) !== -1}"\n            &gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/earnings" ng-click="toggleMenu()"  class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountEarningsController\')}"&gt;\n                        Payout\n                    &lt;/a&gt;\n                    &lt;a href="/account/pay_to" ng-click="toggleMenu()"  class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountPayToController\')}"&gt;\n                        Payment Info\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="settings-menu"\n                ng-click="toggleSubMenu($event, \'settings-menu\')"\n                ng-class="{\'active\': [\'StateAccountCopController\',\'StateAccountSettingController\',\'StateAccountEmailAndPwdController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;i class="icon-fan_cog fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Settings\n                &lt;span ng-if="cop_service.forReviewCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary d-inline-block"&gt;&lt;/span&gt;\n            &lt;/a&gt;\n            &lt;div id="settings-menu" class="csf-header-sub-menu ms-2 text-normal"\n                ng-class="{\'show-sub\': [\'StateAccountCopController\',\'StateAccountSettingController\',\'StateAccountEmailAndPwdController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/customize" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountCustomizeController\')}"&gt;\n                        Customize Profile\n                    &lt;/a&gt;\n                    &lt;a href="/account/cop" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountCopController\')}"&gt;\n                        Content Cop&amp;trade;\n                        &lt;span ng-if="cop_service.forReviewCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ cop_service.forReviewCnt | maxBubble }}&lt;/span&gt;\n                    &lt;/a&gt;\n                    &lt;a href="/account/setting" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountSettingController\')}"&gt;\n                        Account Settings\n                    &lt;/a&gt;\n                    &lt;a href="/account/email_and_pwd" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2"  ng-class="{\'active\': (currentLocation === \'StateAccountEmailAndPwdController\')}"&gt;\n                        Email &amp;amp; Password\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n\n            &lt;a class="csf-header-sub-menu-btn accordion-button fs-md-1000 p-2 rounded mb-1-2 bg-transparent"\n                data-rel="creators-menu"\n                ng-click="toggleSubMenu($event, \'creators-menu\')"\n                ng-class="{\'active\': [\'StateAccountFollowingController\',\'StateAccountPurchasesController\',\'StateAccountFavoritesController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;i class="icon-fan_creators fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Meet other creators\n            &lt;/a&gt;\n            &lt;div id="creators-menu" class="csf-header-sub-menu ms-2 text-normal"\n                ng-class="{\'show-sub\': [\'StateAccountFollowingController\',\'StateAccountPurchasesController\',\'StateAccountFavoritesController\'].indexOf(currentLocation) !== -1}"&gt;\n                &lt;div class="mb-2 border-start ms-3"&gt;\n                    &lt;a href="/account/following" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountFollowingController\')}"&gt;\n                        Following\n                    &lt;/a&gt;\n                    &lt;a href="/account/purchases" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountPurchasesController\')}"&gt;\n                        Purchases\n                    &lt;/a&gt;\n                    &lt;a href="/account/favorites" ng-click="toggleMenu()" class="d-block p-2 ms-2 rounded mb-1-2" ng-class="{\'active\': (currentLocation === \'StateAccountFavoritesController\')}"&gt;\n                        Favorites\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n\n            &lt;a ng-click="logout();toggleMenu()"  class="p-2 rounded mb-1-2"&gt;\n                &lt;i class="icon icon-fan_logout fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt; Logout\n            &lt;/a&gt;\n        &lt;/div&gt;\n        &lt;div class="csf-menu pt-2 text-muted d-flex flex-column mx-2 fs-md-1000 text-uppercase" ng-if="user.type !== \'model\'"&gt;\n            &lt;a class="p-2 rounded mb-1-2" ng-if="false" href="/account/direct-message" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageInboxController\')}"&gt;\n                &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ directMessageCommon.unreadUserId.length }}&lt;/span&gt;\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/direct-message/notifications" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageNotificationController\')}"&gt;\n                &lt;i class="icon icon-fan_notif fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Notifications\n                &lt;span ng-if="directMessageCommon.unreadNotificationCnt &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ directMessageCommon.unreadNotificationCnt }}&lt;/span&gt;\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2 d-sm-none" href="/account/direct-message/inbox" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountDirectMessageInboxController\')}"&gt;\n                &lt;i class="icon icon-fan_comment fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Inbox\n                &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="badge rounded-pill ms-1 bg-primary align-text-bottom"&gt;{{ directMessageCommon.unreadUserId.length }}&lt;/span&gt;\n            &lt;/a&gt;\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/following" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountFollowingController\')}"&gt;\n                &lt;i class="icon icon-fan_like fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Following\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/favorites" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountFavoritesController\')}"&gt;\n                &lt;i class="icon icon-fan_bookmark fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Favorites\n            &lt;/a&gt;\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/purchases" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountPurchasesController\')}"&gt;\n                &lt;i class="icon icon-fan_purchase fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Purchases\n            &lt;/a&gt;\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/billing_info" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountBillingInfoController\')}"&gt;\n                &lt;i class="icon icon-fan_billing fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Billing Info\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/setting" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountSettingController\')}"&gt;\n                &lt;i class="icon icon-fan_cog fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Settings\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/account/email_and_pwd" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'StateAccountEmailAndPwdController\')}"&gt;\n                &lt;i class="icon icon-fan_vault fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Email &amp;amp; Password\n            &lt;/a&gt;\n            &lt;a class="p-2 rounded mb-1-2" href="/support/report" ng-click="toggleMenu()" ng-class="{\'active\': (currentLocation === \'SupportReportCtrl\')}"&gt;\n                &lt;i class="icon icon-fan_report fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n                Report Content\n            &lt;/a&gt;\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n            &lt;a class="btn btn-sm btn-primary mx-3 my-2" href="/creator" ng-click="toggleMenu()"&gt;\n                Setup Creator Account\n            &lt;/a&gt;\n            &lt;div class="border-bottom my-2"&gt;&lt;/div&gt;\n            &lt;a class="p-2 rounded" ng-click="logout();toggleMenu()"&gt;\n               &lt;i class="icon icon-fan_logout fs-5 me-2 align-text-bottom"&gt;&lt;/i&gt;\n               &lt;span&gt;Logout&lt;/span&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/pageslide&gt;\n&lt;/div&gt;\n'}}]);var h=o("M7oJ");function v(e){return(v="function"==typeof Symbol&amp;&amp;"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&amp;&amp;"function"==typeof Symbol&amp;&amp;e.constructor===Symbol&amp;&amp;e!==Symbol.prototype?"symbol":typeof e})(e)}r.a.module("fans_service_model_manager",[]).service("modelManagerService",["$http","$q","$rootScope","ngDialog","toaster",function(e,t,n,o,i){return{acceptInvite:function(t){var n=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:null,o=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:null;e.post("/api/v1/account/manager/accept",t).then((function(e){n&amp;&amp;n(e.data)})).catch((function(e){o&amp;&amp;o(e.data.error)}))},cancelInvite:function(t){o.openConfirm({className:"ngdialog--confirm",data:{btn_cancel:"Cancel",btn_confirm:"Yes, cancel",text:'Are you sure you want to cancel the Manager invitation to "'+t.user_username+'"?',title:"Cancel Invite"},template:h.a}).then((function(){e.delete("/api/v1/account/manager/sent-invite",{params:{manager:t.user_id}}).then((function(){n.$broadcast("user.setting.update"),i.pop("success","Success","Manager invitation canceled."),o.closeAll()})).catch((function(e){i.pop("error","Error",e.data.error)}))})).catch((function(){}))},denyInvite:function(t){var n=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:null;e.delete("/api/v1/account/manager/invite",{params:{model_id:t}}).then((function(e){i.pop("success","Success","Invitation denied."),n&amp;&amp;n(e.data)})).catch(r.a.noop)},edit:function(t){o.open({className:"ngdialog--profile-edit modal-full-mobile",controller:["$scope",function(o){o.data={fee_percentage:t.fee_percentage},o.is_loading=!1,o.submit=function(){o.is_loading||(o.is_loading=!0,e.post("/api/v1/account/manager/edit",o.data).then((function(e){n.$broadcast("user.setting.update"),i.pop("success","Success","Manager updated."),o.closeThisDialog()})).catch((function(e){o.is_loading=!1,i.pop("error","Error",e.data.error)})))}}],template:'&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content"&gt; \n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Edit Manager&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;form name="modelManagerEditForm" ng-submit="modelManagerEditForm.$valid &amp;&amp; submit()" novalidate="novalidate"&gt;\n            &lt;div class="modal-body"&gt; \n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Earnings Fee&lt;/label&gt;\n                    &lt;div class="input-group"&gt;\n                        &lt;input class="form-control" name="fee_percentage" ng-model="data.fee_percentage" max="100" min="0" required="required" type="number" /&gt;\n                        &lt;span class="input-group-text"&gt;%&lt;/span&gt;\n                    &lt;/div&gt;\n                    &lt;form-error form="modelManagerEditForm" name="fee_percentage"&gt;&lt;/form-error&gt;\n                &lt;/div&gt; \n            &lt;/div&gt;\n            &lt;div class="modal-footer"&gt; \n                &lt;button class="btn btn-primary loader" type="submit"&gt;\n                    &lt;span ng-if="is_loading"&gt;&lt;svg-loading&gt;&lt;/svg-loading&gt;&lt;/span&gt;\n                    &lt;span ng-if="!is_loading"&gt;Save&lt;/span&gt;\n                &lt;/button&gt;\n                &lt;a class="btn btn-cancel"  ng-click="closeThisDialog()"&gt;Cancel&lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/form&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})},invite:function(){o.open({className:"ngdialog--profile-edit",controller:["$scope",function(t){t.data={fee_percentage:0,username:""},t.is_loading=!1,t.submit=function(){t.is_loading||(t.is_loading=!0,e.post("/api/v1/account/manager/invite",t.data).then((function(e){n.$broadcast("user.setting.update"),i.pop("success","Success","Invite sent to manager."),t.closeThisDialog()})).catch((function(e){t.is_loading=!1,i.pop("error","Error",e.data.error)})))}}],template:'&lt;div class="modal-dialog  modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Invite a Manager&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n\n            &lt;form name="modelManagerInviteForm" ng-submit="modelManagerInviteForm.$valid &amp;&amp; submit()" novalidate="novalidate"&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Manager Username&lt;/label&gt;\n                    &lt;input class="form-control" name="username" ng-model="data.username" required="required" type="text" /&gt;\n                    &lt;form-error form="modelManagerInviteForm" name="username"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Earnings Fee&lt;/label&gt;\n                    &lt;div class="input-group"&gt;\n                        &lt;input class="form-control" name="fee_percentage" ng-model="data.fee_percentage" max="100" min="0" required="required" type="number" /&gt;\n                        &lt;span class="input-group-text"&gt;%&lt;/span&gt; \n                    &lt;/div&gt;\n                    &lt;form-error form="modelManagerInviteForm" name="fee_percentage"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-primary loader" type="submit"&gt;\n                        &lt;span ng-if="!is_loading"&gt;Send Invite&lt;/span&gt;\n                        &lt;span ng-if="is_loading"&gt;&lt;svg-loading&gt;&lt;/svg-loading&gt;&lt;/span&gt; \n                    &lt;/button&gt;\n                &lt;/div&gt;\n\n            &lt;/form&gt;\n\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})},remove:function(t){o.openConfirm({className:"ngdialog--confirm",data:{btn_cancel:"Cancel",btn_confirm:"Yes, remove",text:'Are you sure you want to remove "'+t.user_username+'" from your Manager?',title:"Remove Manager"},template:h.a}).then((function(){e.delete("/api/v1/account/manager").then((function(){n.$broadcast("user.setting.update"),i.pop("success","Success","Manager removed."),o.closeAll()})).catch((function(e){i.pop("error","Error",e.data.error)}))})).catch((function(){}))}}}]).component("managerSelect",{controller:["$filter","$http","$rootScope","$scope","$window","security","whitelabel",function(e,t,n,o,i,r,a){o.data={user_id:null,user_list:[]},this.$onInit=function(){var t=r.getCurrent();r.isAuthenticated()&amp;&amp;"model"===t.user.type&amp;&amp;"object"===("undefined"==typeof MANAGED_USER_LIST?"undefined":v(MANAGED_USER_LIST))&amp;&amp;(o.data.user_id=r.getCurrent().user.id,o.data.user_list=MANAGED_USER_LIST,o.cur=e("filter")(MANAGED_USER_LIST,{id:o.data.user_id},!0)[0])},o.select=function(n){t.get("/api/v1/account/manager/manage/"+n).then((function(t){var o=e("filter")(MANAGED_USER_LIST,{id:n},!0);o[0]?i.location.href=a.profileUrl(o[0].username):i.location.reload()}))}}],template:'&lt;div ng-if="data.user_list.length &gt; 0" class="csf_manager_select fs-0900 border-bottom d-flex justify-content-end align-items-center flex-row p-1 px-2"&gt;\n    &lt;span class="me-2"&gt;Creator to manage:&lt;/span&gt;\n    &lt;div uib-dropdown class="select-like dropdown nav-under border rounded bg-white"&gt;\n        &lt;a class="nav-link px-2 py-1 fw-bold nav-link-truncate text-black" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false"&gt;\n            {{ cur.username }}\n        &lt;/a&gt;\n        &lt;ul class="dropdown-menu right text-end px-2 sm" uib-dropdown-menu&gt;\n            &lt;li ng-click="select(item.id)" ng-repeat="item in data.user_list"\n                class="mb-1 p-2 fw-bold text-truncate d-block text-black pb-1"\n            &gt;\n                &lt;span"&gt;{{ item.username  }}&lt;/span&gt;\n            &lt;/li&gt;\n        &lt;/ul&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'});angular.module("fans_onesignal",[p.a]).component("onesignal",{controller:["$http","$scope","security",function(e,t,n){var o=!1;function i(){ONESIGNAL_APP_ID&amp;&amp;(o||(o=!0,window.OneSignal&amp;&amp;window.OneSignal.push((function(){window.OneSignal.init({appId:ONESIGNAL_APP_ID}),window.OneSignal.registerForPushNotifications(),window.OneSignal.isPushNotificationsEnabled().then((function(e){e&amp;&amp;r()})),window.OneSignal.on("subscriptionChange",(function(e){e&amp;&amp;r()}))}))))}function r(){window.OneSignal.push((function(){window.OneSignal.getUserId((function(t){e.post("api/v1/account/onesignal",{player_id:t})}))}))}var a=n.getCurrent().user;!0===(a&amp;&amp;a.has_subscription_active)&amp;&amp;i(),t.$on("payment",(function(e,t){["fans_snapchat","fans_subscription","fans_trial"].indexOf(t.type)&gt;=0&amp;&amp;i()}))}]});angular.module("fans_pending_bar",[p.a,g.a]).component("pendingBar",{controller:["$rootScope","$scope","security","SnapchatService",function(e,t,n,o){t.SnapchatService=o;var i=n.getCurrent();t.isEnabled=n.isAuthenticated()&amp;&amp;"model"===i.user.type,t.isVisible=!0,e.$on("$routeChangeSuccess",(function(e,n,o){n.hasOwnProperty("$$route")&amp;&amp;(-1!==["StateStreamCreateController","StateStreamViewController","StateStreamCreateC2cController","StateStreamViewC2cController"].indexOf(n.$$route.controller)?t.isVisible=!1:t.isVisible=!0)}))}],template:'&lt;div class="csf_pending_bar text-center" ng-if="isEnabled &amp;&amp; isVisible &amp;&amp; (SnapchatService.pendingSnapchatAddCnt &gt; 0||SnapchatService.pendingSnapchatRemoveCnt &gt; 0)" &gt; \n    &lt;ul class="m-0 p-3"&gt; \n        &lt;li ng-if="SnapchatService.pendingSnapchatAddCnt &gt; 0"&gt;\n            &lt;a class="d-block" href="/account/snapchat"&gt;\n                {{ SnapchatService.pendingSnapchatAddCnt }} new snapchat member{{ SnapchatService.pendingSnapchatAddCnt === 1 ? \'\' : \'s\' }}.\n            &lt;/a&gt;\n        &lt;/li&gt; \n        &lt;li ng-if="SnapchatService.pendingSnapchatRemoveCnt &gt; 0"&gt;\n            &lt;a class="d-block"  href="/account/snapchat?tab=expired"&gt;\n                {{ SnapchatService.pendingSnapchatRemoveCnt }} snapchat membership{{ SnapchatService.pendingSnapchatRemoveCnt === 1 ? \'\' : \'s\' }} expired.\n            &lt;/a&gt;\n        &lt;/li&gt; \n    &lt;/ul&gt;\n&lt;/div&gt; \n'});var b=o("HCI0");angular.module("fans_period_picker",[b.a]).directive("periodPicker",["utils",function(e){return{link:function(t){t.expiration={days:{dur:Array.from(Array(32).keys()).slice(1),val:15},months:{dur:Array.from(Array(7).keys()).slice(2),val:6}};var n=e.secToTxt(t.period);t.type="s"!==n.type.slice(-1)?n.type+"s":n.type,t.duration=n.dur,t.getExpSeconds=function(e,t){switch(e){case"months":return 2678400*t;case"days":return 86400*t}},t.updateExpiration=function(e,n){t.type=e,t.duration=n||t.expiration[t.type].val,t.period=t.getExpSeconds(t.type,t.duration),t.afterChange&amp;&amp;t.afterChange(t.period)}},replace:!0,restrict:"E",scope:{afterChange:"&lt;?",period:"="},template:'&lt;div class="d-flex"&gt;\n    &lt;select\n        class="form-select w-auto px-4 ps-2 pe-5 rounded-0 rounded-start"\n        ng-model="duration"\n        ng-change="updateExpiration(type, duration)"\n        ng-options="o for o in expiration[type].dur"\n    &gt;&lt;/select&gt;\n    &lt;select\n        class="form-select w-auto px-4 ps-2 pe-5 rounded-0 rounded-end border-start-0"\n        name="expiration_period_type"\n        ng-model="type"\n        ng-change="updateExpiration(type, duration)"\n    &gt;\n        &lt;option ng-repeat="(key, value) in expiration" value="{{key}}"&gt;{{key}}&lt;/option&gt;\n    &lt;/select&gt;\n&lt;/div&gt;\n'}}]);var _=o("7MKW");angular.module("fans_service_google_analytics",[]).service("GoogleAnalyticsService",["$window",function(e){var t=this,n=e.gtag;e.analyticsService=t,t.sendEvent=function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:{};if(n)return n("event",e,t),!0},t.trackRegistration=function(){t.sendEvent("registration")},t.trackPurchase=function(e){e&amp;&amp;(t.sendEvent("purchase",{transaction_id:e.transaction_id,value:e.amount,currency:"USD",items:[{item_name:e.payment_intent,price:e.amount,quantity:1}]}),!0===e.initial_purchase&amp;&amp;t.sendEvent("initial_purchase"))},"undefined"!=typeof GA4_EVENTS&amp;&amp;Array.isArray(GA4_EVENTS)&amp;&amp;setTimeout((function(){GA4_EVENTS.forEach((function(e){t.trackPurchase(e)})),GA4_EVENTS=null}),5e3)}]);var y=o("hfTl");r.a.module("fans_service_seo",[]).service("seo",["$window",function(e){return{setTitle:function(t){e.document.title=t;var n=e.document.querySelector('meta[property="og:title"]');n&amp;&amp;(n.content=t)},setMetaDescription:function(t){var n=e.document.getElementsByName("description")[0];n&amp;&amp;(n.content=t)},setMetaKeywords:function(t){var n=e.document.getElementsByName("keywords")[0];n&amp;&amp;(n.content=t)},setCanonical:function(t){var n=e.document.getElementsByName("canonical")[0];n&amp;&amp;(n.href=t)},setOgImage:function(t){var n=e.document.querySelector('meta[property="og:image"]');n&amp;&amp;(t&amp;&amp;0!==t.indexOf("http")&amp;&amp;(t=SITE.media_host+t),n.content=t)}}}]);r.a.module("fans_service_whitelabel",[]).service("whitelabel",["$window","$rootScope",function(e,t){return{profileUrl:function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:"";return SITE.root_user?SITE.root_user.username===e?"/"+(t||""):"https://"+("fantime"===SITE.signup_source?"www.fantime.com":"www.fansoda.com")+"/"+e+(t?"/"+t:""):"/"+e+(t?"/"+t:"")},profileUrlFull:function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:"";return SITE.root_user&amp;&amp;SITE.root_user.username===e?"https://www."+SITE.domain+(t?"/"+t:""):"https://"+("fantime"===SITE.signup_source?"www.fantime.com":"www.fansoda.com")+"/"+e+(t?"/"+t:"")},showTipButton:function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:"cover";return"post"===t?-1===["nayerregalado"].indexOf(e):-1===["gamebredfights","nayerregalado","valerieloureda"].indexOf(e)}}}]);r.a.module("fans_svg",[]).component("svgFilter",{template:'&lt;svg class="title" viewBox="0 0 224.972 224.972"&gt; \n    &lt;path d="M-667.984-57.017h-3c-2.427-1.593-5.2-2.839-7.225-4.836C-690.78-74.218-703.148-86.79-715.673-99.2a13.85,13.85,0,0,1-4.412-10.608c0.14-23.79,0-47.582.14-71.373a10.525,10.525,0,0,0-3.411-8.273q-36.651-36.4-73.057-73.053c-2.167-2.18-3.717-4.973-5.554-7.482v-3c1.652-6.13,6.077-8.562,12-9h204.974l8,9v4c-2.086,2.524-3.979,5.243-6.288,7.543q-35.88,35.74-71.93,71.31a11.533,11.533,0,0,0-3.856,9.067c0.144,36.591.087,73.182,0.086,109.773C-658.983-61.95-659.962-60.4-667.984-57.017Z" transform="translate(801.967 281.989)"/&gt;\n&lt;/svg&gt;  '}).component("svgCustomer",{template:'&lt;svg viewBox="0 0 18.5 16.094"  class="svg-customerservice"&gt;\n   &lt;ellipse cx="9.282" cy="9.026" rx="5.91" ry="6.692" style="fill:none;stroke:#757373;stroke-miterlimit:10;stroke-width:0.75px"/&gt;\n   &lt;ellipse cx="6.469" cy="8.738" rx="0.127" ry="0.135" style="fill:none;stroke:#757373;stroke-miterlimit:10;stroke-width:0.75px"/&gt;&lt;ellipse cx="11.951" cy="8.738" rx="0.127" ry="0.135" style="fill:none;stroke:#757373;stroke-miterlimit:10;stroke-width:0.75px"/&gt;\n   &lt;path d="M14.446,7.919c-4.194,1.124-8.43-3.3-8.43-3.3a2.986,2.986,0,0,1-2.657,3.32" transform="translate(0.375 -1.281)" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;path d="M2.753,8.883a1.879,1.879,0,0,0-1.359-.6,1.882,1.882,0,0,0-1.37.616L0,12.4a1.888,1.888,0,0,0,1.395.643,1.839,1.839,0,0,0,1.169-.429Z" transform="translate(0.375 -1.281)" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;path d="M15,8.838a1.83,1.83,0,0,1,2.728.012l0.025,3.5A1.888,1.888,0,0,1,16.355,13a1.839,1.839,0,0,1-1.169-.429Z" transform="translate(0.375 -1.281)" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;path d="M1.97,8.166c0-4.334,2.835-6.51,6.921-6.51s6.826,2.31,6.826,6.644" transform="translate(0.375 -1.281)" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;path d="M1.716,13.177c0.487,1.64-.212,1.438,4.808,1.438" transform="translate(0.375 -1.281)" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;rect x="7.047" y="12.757" width="2.781" height="1.034" rx="0.479" ry="0.479" style="fill:none;stroke:#757373;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75px"/&gt;&lt;/svg&gt;\n'}).component("svgIcons",{template:'&lt;svg style="display:none"&gt;\n   &lt;style type="text/css"&gt;\n      .st{fill:none;stroke-miterlimit:10;stroke-linecap:round;}\n   &lt;/style&gt;\n   &lt;symbol id="delete-icon"&gt;\n      &lt;path class="st" d="M28.2,35.1l1.8-3V15.3H9.1v16.6l1.8,3.2L28.2,35.1z"/&gt;\n      &lt;path class="st" d="M8.8,11.5h21.4V7.9h-3.6l-1.8-1.8H14.2l-1.8,1.8H8.8V11.5z"/&gt;\n      &lt;line class="st" x1="13.2" y1="18.5" x2="13.2" y2="31.3"/&gt;\n      &lt;line class="st" x1="25.3" y1="18.4" x2="25.3" y2="31.2"/&gt;\n      &lt;line class="st" x1="19.3" y1="18.6" x2="19.3" y2="31.4"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="preview-icon"&gt;\n      &lt;path class="st" d="M36.9,19.2c0,0-6.6-12.2-17.7-11S3,19.1,3,19.1s4.5,11.3,16.8,11.3S36.9,19.2,36.9,19.2z"/&gt;\n      &lt;circle class="st" cx="20.1" cy="19.2" r="6"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="play-icon"&gt;\n      &lt;polygon points="12.9,8.7 33.5,20.6 12.9,32.5"/&gt;\n   &lt;/symbol&gt; \n   &lt;symbol id="media-icon"&gt;\n      &lt;path class="st" d="M17.2,18.9v-3.2H2.8c-0.7,0-1.3,0.6-1.3,1.3v14c0,0.7,0.6,1.3,1.3,1.3c0,0,0,0,0,0h21.4c0.7,0,1.3-0.6,1.3-1.3c0,0,0,0,0,0v-9.8h-5.9c-1.2,0-2.2-0.9-2.3-2.1C17.2,19,17.2,18.9,17.2,18.9z M11.2,27.6v-7.3l6.2,3.7L11.2,27.6z"/&gt;\n      &lt;polygon class="st" points="11.2,27.6 17.4,23.9 11.2,20.3 \t"/&gt;\n      &lt;path class="st" d="M25.4,21.1h11c1.8,0,2-2,2-2V8.3c0-1.7-3.3-1.6-3.3-1.6c-0.9-0.1-1.1-2.3-2-2.3c-1.1,0-4.8,0-5.8,0s-1.4,2.5-1.4,2.5l-2.9,0.1l0-1.2h-3.2l-0.1,1.2c0,0-2.3,0.3-2.3,1.9v6.9 M20.2,10.2c-0.4,0-0.8-0.3-0.8-0.8c0-0.4,0.3-0.8,0.8-0.8S21,9,21,9.4C21,9.8,20.7,10.2,20.2,10.2C20.2,10.2,20.2,10.2,20.2,10.2L20.2,10.2z M30.2,19c-3,0-5.4-2.4-5.4-5.4s2.4-5.4,5.4-5.4c3,0,5.4,2.4,5.4,5.4S33.2,19,30.2,19L30.2,19z"/&gt;\n      &lt;path class="st" d="M17.2,15.7v3.2c0,1.2,0.9,2.2,2.1,2.3c0.1,0,0.1,0,0.2,0h5.9"/&gt;\n      &lt;circle class="st" cx="30.2" cy="13.6" r="5.4"/&gt;\n      &lt;circle class="st" cx="20.2" cy="9.4" r="0.8"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="video-upload-icon"&gt;\n      &lt;path class="st" d="M3.3,7.1h33.5c1.1,0,2,0.9,2,2v21.9c0,1.1-0.9,2-2,2H3.3c-1.1,0-2-0.9-2-2V9.1C1.3,8,2.1,7.1,3.3,7.1z"/&gt;\n      &lt;polygon class="st" points="16.4,14.2 26.1,20 16.4,25.8 \t"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="time-icon"&gt;\n      &lt;circle class="st" cx="20.9" cy="20.1" r="12.7"/&gt;\n      &lt;polyline class="st" points="21,10.5 21.1,19.9 26.3,17 \t"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="caret"&gt;\n      &lt;polygon points="9.2,2.4 5,7.6 0.8,2.4 "/&gt;\n   &lt;/symbol&gt; \n   &lt;symbol id="audio-icon"&gt;\n      &lt;path class="st" d="M5.89,16.02C5.38,16.3,5.4,16.18,5.4,20.45c0,3.71,0.01,3.88,0.16,4.1c0.27,0.4,0.48,0.45,1.86,0.45\n      c1.16,0,1.26-0.01,1.51-0.16c0.14-0.09,0.3-0.24,0.36-0.33c0.14-0.26,0.14-7.87,0-8.12c-0.05-0.09-0.22-0.25-0.36-0.33\n      c-0.25-0.16-0.34-0.16-1.52-0.16C6.29,15.88,6.11,15.89,5.89,16.02z"/&gt;\n      &lt;path class="st" d="M25.14,23.91c0,0,2.22-0.75,2.2-3.29v-0.37c0.02-2.54-2.2-3.29-2.2-3.29"/&gt;\n      &lt;path class="st" d="M26.12,26.58c0,0,4.02-1.36,3.98-5.96v-0.37c0.04-4.6-3.98-5.96-3.98-5.96"/&gt;\n      &lt;path class="st" d="M27.58,28.76c0,0,5.49-1.86,5.44-8.14v-0.37c0.05-6.28-5.44-8.14-5.44-8.14"/&gt;\n      &lt;path class="st" d="M22.09,20.47c0,9.31-0.01,9.59-0.15,9.81c-0.27,0.4-0.78,0.49-1.34,0.24c-0.17-0.08-2.23-1.26-4.56-2.62\n         c-4.49-2.61-4.66-2.72-4.85-3.35c-0.05-0.17-0.08-1.82-0.08-4.57v0.05c0-2.75,0.03-4.4,0.08-4.57c0.2-0.63,0.36-0.74,4.85-3.35\n         c2.34-1.36,4.39-2.54,4.56-2.62c0.55-0.26,1.07-0.16,1.34,0.24c0.14,0.22,0.15,0.5,0.15,9.81V20.47z"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="photo-icon"&gt;\n      &lt;circle cx="35.348" cy="25.393" r="12.339" style="fill:none;stroke-miterlimit:10;"/&gt;\n      &lt;circle cx="12.562" cy="15.843" r="1.75" style="fill:none;stroke-miterlimit:10;"/&gt;\n      &lt;path d="M56.766,25.194S64.33,25,64.33,28.786V53.558s-0.284,4.488-4.491,4.488H21.311s-5.129.095-5.129-5.129v-22.9c0-3.667,5.294-4.267,5.294-4.267l0.213-2.73h7.28l0.095,2.742,6.67-.115s0.988-5.653,3.257-5.653,10.635-.047,13.19-0.047C54.355,19.946,54.686,24.91,56.766,25.194Z" transform="translate(-10.402 -15.543)" style="fill:none;stroke-linecap:round;stroke-linejoin:round;"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="pause-icon"&gt;\n      &lt;path class="st" d="M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm-2 28h-4V16h4v16zm8 0h-4V16h4v16z"/&gt;\n   &lt;/symbol&gt;\n   &lt;symbol id="mic-icon"&gt;\n      &lt;path class="st" d="M12,16c2.206,0,4-1.795,4-4V6c0-2.206-1.794-4-4-4S8,3.794,8,6v6C8,14.205,9.794,16,12,16z"/&gt;\n      &lt;path class="st" d="M19,12v-2c0-0.552-0.447-1-1-1s-1,0.448-1,1v2c0,2.757-2.243,5-5,5s-5-2.243-5-5v-2c0-0.552-0.447-1-1-1s-1,0.448-1,1v2   c0,3.52,2.613,6.432,6,6.92V20H8c-0.553,0-1,0.447-1,1s0.447,1,1,1h8c0.553,0,1-0.447,1-1s-0.447-1-1-1h-3v-1.08   C16.387,18.432,19,15.52,19,12z"/&gt;\n   &lt;/symbol&gt;\n\n&lt;/svg&gt; '}).component("svgBan",{template:'&lt;svg viewBox="0 0 17.083 17.083" class="svg-ban"&gt;&lt;path d="M9,0.458A8.042,8.042,0,1,1,.958,8.5,8.042,8.042,0,0,1,9,.458Zm0,2.01a6,6,0,0,0-3.326,1l8.357,8.357A6.032,6.032,0,0,0,9,2.469Zm-5.032,2.7a6.032,6.032,0,0,0,8.358,8.358Z" transform="translate(-0.458 0.042)" style="fill:none;stroke:#757373;stroke-miterlimit:10"/&gt;&lt;/svg&gt;'}).component("svgDelete",{template:'&lt;svg viewBox="0 0 13 17.28"&gt;\n   &lt;path d="M14.86,18.28l1-1.68V7.13H4.14v9.33l1,1.82h9.73Z" transform="translate(-3.5 -1.5)" style="fill: #fff;stroke: #757373;stroke-miterlimit: 10;fill-rule: evenodd"/&gt;\n   &lt;path d="M4,5H16V3H14L13,2H7L6,3H4V5Z" transform="translate(-3.5 -1.5)" style="fill: #fff;stroke: #757373;stroke-miterlimit: 10;fill-rule: evenodd"/&gt;\n   &lt;line x1="2.97" y1="7.44" x2="2.97" y2="14.63" style="fill: none;stroke: #757373;stroke-miterlimit: 10"/&gt;\n   &lt;line x1="9.78" y1="7.41" x2="9.78" y2="14.59" style="fill: none;stroke: #757373;stroke-miterlimit: 10"/&gt;\n   &lt;line x1="6.38" y1="7.47" x2="6.38" y2="14.66" style="fill: none;stroke: #757373;stroke-miterlimit: 10"/&gt;\n&lt;/svg&gt;'}).component("svgLoading",{controller:["$scope","utils",function(e,t){e.colors=t.colors()}],template:'&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 20" class="svg-loading"&gt;\n    &lt;circle cx="84" cy="10" r="10" fill="{{ colors.mainFollowColor }}" class="cust"&gt;\n        &lt;animate attributeName="r" repeatCount="indefinite" dur="1.2s" calcMode="spline" keyTimes="0;1" values="7;0" keySplines="0 0.5 0.5 1" begin="0s"&gt;&lt;/animate&gt;\n        &lt;animate attributeName="fill" repeatCount="indefinite" dur="4.8s" calcMode="discrete" keyTimes="0;0.25;0.5;0.75;1" values="{{ colors.mainFollowColor }};#7b6f6f;{{ colors.mainFollowColor }};#7b6f6f;{{ colors.mainFollowColor }}" begin="0s"&gt;&lt;/animate&gt;\n    &lt;/circle&gt;&lt;circle cx="16" cy="10" r="10" fill="{{ colors.mainFollowColor }}" class="cust"&gt;\n        &lt;animate attributeName="r" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="0;0;7;7;7" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="0s"&gt;&lt;/animate&gt;\n        &lt;animate attributeName="cx" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="16;16;16;50;84" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="0s"&gt;&lt;/animate&gt;\n    &lt;/circle&gt;&lt;circle cx="50" cy="10" r="10" fill="#7b6f6f"&gt;\n        &lt;animate attributeName="r" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="0;0;7;7;7" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-1.2s"&gt;&lt;/animate&gt;\n        &lt;animate attributeName="cx" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="16;16;16;50;84" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-1.2s"&gt;&lt;/animate&gt;\n    &lt;/circle&gt;&lt;circle cx="84" cy="10" r="10" fill="{{ colors.mainFollowColor }}" class="cust"&gt;\n        &lt;animate attributeName="r" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="0;0;7;7;7" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-2.4s"&gt;&lt;/animate&gt;\n        &lt;animate attributeName="cx" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="16;16;16;50;84" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-2.4s"&gt;&lt;/animate&gt;\n    &lt;/circle&gt;&lt;circle cx="16" cy="10" r="10" fill="#7b6f6f"&gt;\n        &lt;animate attributeName="r" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="0;0;7;7;7" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-3.6s"&gt;&lt;/animate&gt;\n        &lt;animate attributeName="cx" repeatCount="indefinite" dur="4.8s" calcMode="spline" keyTimes="0;0.25;0.5;0.75;1" values="16;16;16;50;84" keySplines="0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1" begin="-3.6s"&gt;&lt;/animate&gt;\n    &lt;/circle&gt;\n&lt;/svg&gt;\n'}).component("svgSmallLoading",{template:'&lt;svg viewBox="0 0 105 105" xmlns="http://www.w3.org/2000/svg" fill="#666"&gt;\n    &lt;circle cx="12.5" cy="12.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="0s" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="12.5" cy="52.5" r="12.5" fill-opacity=".5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="100ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="52.5" cy="12.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="300ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="52.5" cy="52.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="600ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="92.5" cy="12.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="800ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="92.5" cy="52.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="400ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="12.5" cy="92.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="700ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="52.5" cy="92.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="500ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n    &lt;circle cx="92.5" cy="92.5" r="12.5"&gt;\n        &lt;animate attributeName="fill-opacity"\n         begin="200ms" dur="1s"\n         values="1;.2;1" calcMode="linear"\n         repeatCount="indefinite" /&gt;\n    &lt;/circle&gt;\n&lt;/svg&gt;'});var $=o("2u4H");r.a.module("fans_utils_currency_mask",[]).service("CurrencyMaskUtils",(function(){var e=this;e.clearSeparators=function(e){if(null!=e)return"number"==typeof e&amp;&amp;(e=e.toString()),parseFloat(e.replace(/,/g,".").replace(/\.(?![^.]*$)/g,""))},e.toIntCents=function(t){if(null!=t)return Math.abs(Math.round(100*e.clearSeparators(t)))},e.toFloatString=function(e){if(null!=e)return Math.abs(e/100).toFixed(2)}})).directive("currencyMask",["$timeout","$filter","CurrencyMaskUtils",function(e,t,n){return{restrict:"A",require:"?ngModel",link:function(o,i,r,a){var s,c;if("ngCurrencyMask",!a)throw new Error("ngCurrencyMask requires ngModel!");if(!/input/i.test(i[0].tagName))throw new Error("ngCurrencyMask should be binded to &lt;input /&gt;.");return s=n,c=function(e){if(null==e&amp;&amp;(e=a.$viewValue||i[0].value),null!=e)return i[0].value=t("currency")(s.clearSeparators(e),"").replace(",","")},i[0].addEventListener("blur",(function(){return c()})),a.$parsers.unshift(s.toIntCents),a.$formatters.unshift(s.toFloatString),e(c)}}}]).filter("currencyMaskFilter",["CurrencyMaskUtils",function(e){return function(t){var n=e.toFloatString(t);return n?-1!==n.indexOf(".00")?n.substring(0,n.length-3):n:"0"}}]);r.a.module("common_utils_filters",[]).filter("abs",(function(){return function(e){return Math.abs(e)}})).filter("monthOnly",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getDayMonthYear(e.dateFromISO8601UTC(n)):"-"}}]).filter("readableDate",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getReadableDate(new Date,e.dateFromISO8601UTC(n)):"-"}}]).filter("readableTime",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getTime(e.dateFromISO8601UTC(n)):"-"}}]).filter("readableDateAndTime",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getTimeDayMonthYear(e.dateFromISO8601UTC(n)):"-"}}]).filter("dateDiffInTextual",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getDiffInTextual(new Date,e.dateFromISO8601UTC(n)):"-"}}]).filter("dateDiffFloorInTextual",["DateUtils","utils",function(e,t){return function(n){return n?t.date.getDiffInTextual(new Date,e.dateFromISO8601UTC(n),!0):"-"}}]).filter("timestampToDiffInTextual",["utils",function(e){return function(t){return t?e.date.getDiffInTextual(new Date,new Date(1e3*t)):"-"}}]).filter("secondsToDiffInTextual",["utils",function(e){return function(t){return t?e.date.getDiffInTextual(new Date,new Date(Date.now()+1e3*t)):"-"}}]).filter("secondsToPeriod",["utils",function(e){return function(t){var n=e.secToTxt(t);return n.dur+" "+n.type}}]).filter("secondsToDateTime",[function(){return function(e){var t=Math.floor(e/86400),n=Math.floor(e%86400/3600),o=Math.floor(e%86400%3600/60),i=Math.floor(e%86400%3600%60);return(t&gt;0?t+"d ":"")+("00"+n).slice(-2)+":"+("00"+o).slice(-2)+":"+("00"+i).slice(-2)}}]).filter("secondsToMinSec",[function(){return function(e){var t=Math.floor(e%86400%3600/60),n=Math.floor(e%86400%3600%60);return("00"+t).slice(-2)+":"+("00"+n).slice(-2)}}]).filter("intFormatted",[function(){return function(e){return Number.isInteger(e)?e.toLocaleString("en-US",{maximumFractionDigits:0}):""}}]).filter("mathAbs",[function(){return function(e){return Math.abs(e)}}]).filter("startFrom",(function(){return function(e,t){return t=+t,e?e.slice(t):[]}})).filter("processInvites",["$sce",function(e){return function(t){var n=e.valueOf(t);if(n)return n=n.replace(/::invite-private-([0-9]+)-([0-9]+)::/g,""),e.trustAsHtml(n)}}]).filter("processLinks",["$sce",function(e){return function(t,n){var o;return n||(n=["amazon","camsoda"]),Array.isArray(n)||(n=[n]),t=String(t).replace(/&amp;/g,"&amp;amp;").replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/"/g,"&amp;quot;"),n.forEach((function(e){switch(e){case"amazon":o=/(http(s)?:\/\/)?(www\.)?(amazon\.com|amzn\.com)\b([-a-zA-Z0-9@:%_\+.~#?&amp;//=]*)/g;break;case"camsoda":o=/(http(s)?:\/\/)?(www\.)?(camsoda\.com)\b([-a-zA-Z0-9@:%_\+.~#?&amp;//=]*)/g}t=t.replace(o,(function(e,t){return'&lt;a href="'+(t?"":"http://")+e+'" target="_blank" rel="noreferrer noopener"&gt;'+e+"&lt;/a&gt;"}))})),e.trustAsHtml(t)}}]).filter("processTags",["$sce","whitelabel",function(e,t){return function(n,o){if(!o||!o.length)return n;var i=e.valueOf(n);return i?(o.forEach((function(e){i=i.replaceAll("@"+e,'&lt;a class="tag-mention" href="'+t.profileUrl(e)+'"&gt;@'+e+"&lt;/a&gt;")})),e.trustAsHtml(i)):void 0}}]).filter("ucFirst",["utils",function(e){return function(t){return e.string.ucFirst(t)}}]).filter("webp",["utils",function(e){return function(t){return e.webpImage(t)}}]).filter("html",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]);var w=o("l+tU"),S=o.n(w),k=o("5HRR"),x=o.n(k),C=o("h7dw"),A=o("7orZ"),T=o.n(A),E=o("POGS"),P=o.n(E),O=o("5VB2"),M=o.n(O);function D(e){return(D="function"==typeof Symbol&amp;&amp;"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&amp;&amp;"function"==typeof Symbol&amp;&amp;e.constructor===Symbol&amp;&amp;e!==Symbol.prototype?"symbol":typeof e})(e)}r.a.module("recaptcha",[]).component("recaptcha",{bindings:{isValid:"=",ngModel:"="},controller:["$element","$interval","$ocLazyLoad","$scope",function(e,t,n,o){this.$onInit=function(){var i=e[0].querySelector(".recaptcha"),r=null;n.load(["https://www.google.com/recaptcha/api.js"]);var a=t((function(){"object"===("undefined"==typeof grecaptcha?"undefined":D(grecaptcha))&amp;&amp;"function"==typeof grecaptcha.render&amp;&amp;(t.cancel(a),r=grecaptcha.render(i,{callback:function(){o.$ctrl.isValid=!0,o.$ctrl.ngModel=grecaptcha.getResponse(r),o.$apply()},"expired-callback":function(){o.$ctrl.isValid=!1,o.$ctrl.ngModel=null,o.$apply()},"error-callback":function(){o.$ctrl.isValid=!1,o.$ctrl.ngModel=null,o.$apply()},sitekey:"6LchZBYTAAAAAJlAU0JiYQHSQqTJ6QrCE-lCz0ub"}))}),100);o.$on("recaptcha.refresh",(function(){null!==r&amp;&amp;(grecaptcha.reset(r),o.$ctrl.isValid=!1,o.$ctrl.ngModel=null)}))}}],template:'&lt;div class="recaptcha"&gt;&lt;/div&gt;'});var I=o("Ahln");r.a.module("state_account_billing_info_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/billing_info",{controller:"StateAccountBillingInfoController",resolve:{currentUser:n.requireUser,loadController:t.account_billing_info},template:I.a})}]);r.a.module("state_account_calendar_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/calendar/:year",{controller:"StateAccountCalendarController",resolve:{currentUser:n.requireModelUser,loadController:t.account_calendar},template:I.a}),e.when("/account/calendar/:year/:month",{controller:"StateAccountCalendarController",resolve:{currentUser:n.requireModelUser,loadController:t.account_calendar},template:I.a}),e.when("/account/calendar/:year/:month/:day",{controller:"StateAccountCalendarController",resolve:{currentUser:n.requireModelUser,loadController:t.account_calendar},template:I.a}),e.when("/account/calendar",{controller:"StateAccountCalendarController",resolve:{currentUser:n.requireModelUser,loadController:t.account_calendar},template:I.a})}]);r.a.module("state_account_cop_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/cop",{controller:"StateAccountCopController",resolve:{currentUser:n.requireModelUser,loadController:t.account_cop},template:I.a})}]);r.a.module("state_account_cross_promotion_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/cross_promotion",{controller:"StateAccountCrossPromotionController",resolve:{currentUser:n.requireModelUser,loadController:t.account_cross_promotion},template:I.a})}]);r.a.module("state_account_custom_purchases_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/custom-purchases",{controller:"StateAccountCustomPurchasesController",resolve:{currentUser:n.requireModelUser,loadController:t.account_custom_purchases},template:I.a})}]);r.a.module("state_account_customize_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/customize",{controller:"StateAccountCustomizeController",name:"accountCustomize",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},template:I.a}).when("/account/customize/logo_tab",{controller:"StateAccountCustomizeController",name:"accountCustomizeLogoTab",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},tab:"logo",template:I.a}).when("/account/customize/domain_tab",{controller:"StateAccountCustomizeController",name:"accountCustomizeDomainTab",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},tab:"domain",template:I.a}).when("/account/customize/new",{controller:"StateAccountCustomizeNewController",name:"accountCustomizeNew",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},template:I.a}).when("/account/customize/existing",{controller:"StateAccountCustomizeExistingController",name:"accountCustomizeExisting",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},template:I.a}).when("/account/customize/existing/instructions",{controller:"StateAccountCustomizeExistingInstructionsController",name:"accountCustomizeExistingInstructions",resolve:{currentUser:n.requireModelUser,loadController:t.account_customize},template:I.a})}]);r.a.module("state_account_dashboard_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/dashboard",{controller:"StateAccountDashboardController",resolve:{currentUser:n.requireModelUser,loadController:t.account_dashboard},template:I.a})}]);r.a.module("state_account_direct_message_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/direct-message",{redirectTo:"/account/direct-message/inbox"}).when("/account/direct-message/inbox/:username/msg-id/:messageId",{redirectTo:"/account/direct-message/inbox/:username/chat/msg-id/:messageId"}).when("/account/direct-message/inbox",{controller:"StateAccountDirectMessageInboxController",reloadOnSearch:!1,reloadOnUrl:!1,resolve:{currentUser:n.requireUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/inbox/:username",{controller:"StateAccountDirectMessageInboxController",reloadOnSearch:!1,reloadOnUrl:!1,resolve:{currentUser:n.requireUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/inbox/:username/chat/msg-id/:messageId",{controller:"StateAccountDirectMessageInboxController",reloadOnSearch:!1,reloadOnUrl:!1,resolve:{currentUser:n.requireUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/inbox/:username/:chatView",{controller:"StateAccountDirectMessageInboxController",reloadOnSearch:!1,reloadOnUrl:!1,resolve:{currentUser:n.requireUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/inbox/:username/gallery/:galleryView",{controller:"StateAccountDirectMessageInboxController",reloadOnSearch:!1,reloadOnUrl:!1,resolve:{currentUser:n.requireUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/auto",{controller:"StateAccountDirectMessageAutoController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message,params:["$route",function(e){e.current.params.type="interval"}]},template:I.a}).when("/account/direct-message/profile",{controller:"StateAccountDirectMessageAutoController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message,params:["$route",function(e){e.current.params.type="profile"}]},template:I.a}).when("/account/direct-message/send",{controller:"StateAccountDirectMessageAutoController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message,params:["$route",function(e){e.current.params.type="scheduled"}]},template:I.a}).when("/account/direct-message/welcome",{controller:"StateAccountDirectMessageAutoController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message,params:["$route",function(e){e.current.params.type="welcome"}]},template:I.a}).when("/account/direct-message/thankyou",{controller:"StateAccountDirectMessageAutoController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message,params:["$route",function(e){e.current.params.type="thankyou"}]},template:I.a}).when("/account/direct-message/stats",{controller:"StateAccountDirectMessageStatsController",resolve:{currentUser:n.requireModelUser,loadController:t.account_direct_message},template:I.a}).when("/account/direct-message/notifications",{controller:"StateAccountDirectMessageNotificationController",resolve:{loadController:t.account_direct_message},template:I.a})}]);r.a.module("state_account_earnings_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/earnings",{controller:"StateAccountEarningsController",resolve:{currentUser:n.requireModelUser,loadController:t.account_earnings},template:I.a}).when("/account/pay_to",{controller:"StateAccountPayToController",resolve:{currentUser:n.requireModelUser,loadController:t.account_earnings},template:I.a})}]);r.a.module("state_account_email_and_pwd_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o={controller:"StateAccountEmailAndPwdController",resolve:{currentUser:n.requireUser,loadController:t.account_email_and_pwd},template:I.a};e.when("/account/email_and_pwd",o)}]);r.a.module("state_account_favorites_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o={controller:"StateAccountFavoritesController",resolve:{currentUser:n.requireUser,loadController:t.account_favorites},template:I.a};e.when("/account/favorites/photos",o).when("/account/favorites/video",o).when("/account/favorites/audio",o).when("/account/favorites",o)}]);r.a.module("state_account_follower_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/follower",{controller:"StateAccountFollowerController",resolve:{currentUser:n.requireModelUser,loadController:t.account_follower},template:I.a})}]);r.a.module("state_account_following_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/following",{controller:"StateAccountFollowingController",resolve:{currentUser:n.requireUser,loadController:t.account_following},template:I.a})}]);r.a.module("state_account_gift_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/gift",{controller:"StateAccountGiftController",resolve:{currentUser:n.requireModelUser,loadController:t.account_gift},template:I.a})}]);r.a.module("state_account_purchases_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o={controller:"StateAccountPurchasesController",resolve:{currentUser:n.requireUser,loadController:t.account_purchases},template:I.a};e.when("/account/purchases/photos",o).when("/account/purchases/video",o).when("/account/purchases/audio",o).when("/account/purchases",o)}]);r.a.module("state_account_referrals_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/referrals",{controller:"StateAccountReferralsController",resolve:{currentUser:n.requireModelUser,modelDirectPay:n.requireModelDirectPay,loadController:t.account_referrals},template:I.a})}]);r.a.module("state_account_setting_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o={controller:"StateAccountSettingController",resolve:{currentUser:n.requireUser,loadController:t.account_setting},template:I.a};e.when("/account/setting/billing",o).when("/account/setting/comments",o).when("/account/setting/account",o).when("/account/setting/notifications",o).when("/account/setting/privacy",o).when("/account/setting/manager",o).when("/account/setting/socials",o).when("/account/setting",o)}]);r.a.module("state_account_snapchat_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/snapchat",{controller:"StateAccountSnapchatController",resolve:{currentUser:n.requireModelUser,loadController:t.account_snapchat},template:I.a})}]);r.a.module("state_account_stats_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/stats",{controller:"StateAccountStatsController",resolve:{currentUser:n.requireModelUser,loadController:t.account_stats},template:I.a}),e.when("/account/stats/:period",{controller:"StateAccountStatsController",resolve:{currentUser:n.requireModelUser,loadController:t.account_stats},template:I.a})}]);r.a.module("state_account_stream_stats_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/stream-stats",{controller:"StateAccountStreamStatsController",resolve:{currentUser:n.requireModelUser,loadController:t.account_stream_stats},template:I.a})}]);r.a.module("state_account_subscriber_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/subscriber",{controller:"StateAccountSubscriberController",resolve:{currentUser:n.requireModelUser,loadController:t.account_subscriber},template:I.a})}]);r.a.module("state_account_top_spenders_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/top-spenders",{controller:"StateAccountTopSpendersController",resolve:{currentUser:n.requireModelUser,loadController:t.account_top_spenders},template:I.a})}]);r.a.module("state_account_vault_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/account/vault",{controller:"StateAccountVaultController",resolve:{currentUser:n.requireModelUser,loadController:t.account_vault},template:I.a})}]);r.a.module("state_creator",[]).config(["$routeProvider",function(e){e.when("/creator",{controller:"CreatorController",page_css_class:"creator",template:'&lt;div class="csf_creator"&gt;\n    &lt;div ng-if="source !== \'fantime\'" &gt;\n        &lt;h1 class="csf_creator__title"&gt;\n            Get Paid To Create \n        &lt;/h1&gt; \n        &lt;div ng-if="showSpecialOffer" ng-click="goSignup()" class="csf_creator_special_offer"&gt;\n            &lt;h4&gt;Special Offer&lt;/h4&gt;\n            &lt;p class="csf_creator_special_offer_l1"&gt;Signup in August and get&lt;/p&gt;\n            &lt;p class="csf_creator_special_offer_l2"&gt;\n                100% payout for 2021&lt;span&gt;*&lt;/span&gt;\n            &lt;/p&gt;\n        &lt;/div&gt;\n        &lt;div class="csf_creator__box"&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_socials"&gt;&lt;/i&gt;\n                &lt;strong&gt;Build Your Community&lt;/strong&gt;\n                &lt;span&gt;Interact directly with your fans&lt;br /&gt; to build reliable monthly income.&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_customize"&gt;&lt;/i&gt;\n                &lt;strong&gt;Sell and control your content&lt;/strong&gt;\n                &lt;span&gt;Images, movies, music, art work,&lt;br /&gt; BTS footage etc. You set the price.&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_protect"&gt;&lt;/i&gt;\n                &lt;strong&gt;Your Content is DMCA Protected&lt;/strong&gt;\n                &lt;span&gt;All of your content will be secured&lt;br /&gt; from copyright infringement and piracy.&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item csf_creator__box_item--title-only"&gt;\n                &lt;i class="icon-fan_tip"&gt;&lt;/i&gt;\n                &lt;strong&gt;Weekly payout of 80% &lt;br /&gt;Revenue share&lt;/strong&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n        &lt;h3 class="csf_creator__footer"&gt;\n            3 Easy Steps &lt;br /&gt;To Start Earning on Fansoda\n        &lt;/h3&gt;\n        &lt;a class="csf_creator__button" href="/creator/signup"&gt;\n            Get Started\n        &lt;/a&gt;\n        &lt;p ng-if="showOffer" class="csf_creator_special_offer_ast"&gt;* this offer is only available to new accounts&lt;/p&gt;\n    &lt;/div&gt;\n    &lt;div ng-if="source === \'fantime\'"&gt;\n        &lt;h1 ng-if="!isModelRef" class="csf_creator__title"&gt;Apply to the world\'s most exclusive fans platform&lt;/h1&gt;\n        &lt;h1 ng-if="isModelRef" class="csf_creator__title"&gt;Join the world\'s most exclusive fans platform&lt;/h1&gt;\n        &lt;div class="csf_creator__box"&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_domain"&gt;&lt;/i&gt;\n                &lt;strong&gt;Setup your own domain.&lt;/strong&gt;\n                &lt;span&gt;Pick your own domain for your fan site&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_protect"&gt;&lt;/i&gt;\n                &lt;strong&gt;Your Content Protected&lt;/strong&gt;\n                &lt;span&gt;Start getting your content monitored and secured&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_socials"&gt;&lt;/i&gt;\n                &lt;strong&gt;Social Account Services&lt;/strong&gt;\n                &lt;span&gt;Access to the most experienced social management team&lt;/span&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_creator__box_item"&gt;\n                &lt;i class="icon-fan_customize"&gt;&lt;/i&gt;\n                &lt;strong&gt;Customize your profile style&lt;/strong&gt;\n                &lt;span&gt;Easily customize your page with your own logo &amp;amp; colors&lt;/span&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n        &lt;a ng-if="!isModelRef" class="csf_creator__button" href="/creator/signup"&gt;\n            Apply Here\n        &lt;/a&gt;\n        &lt;a ng-if="isModelRef" class="csf_creator__button" href="/creator/signup"&gt;\n            Start Here\n        &lt;/a&gt;\n    &lt;/div&gt; \n&lt;/div&gt; \n'})}]).controller("CreatorController",["$scope","$window","$location",function(e,t,n){e.source=SITE.signup_source,e.isModelRef=t.localStorage.getItem("model_ref")||"undefined"!=typeof MODEL_REF&amp;&amp;MODEL_REF.length,e.showSpecialOffer=(new Date).getTime()&lt;new Date(2021,8,1).getTime(),e.goSignup=function(){n.url("/creator/signup")}}]);r.a.module("state_creator_signup_routes",[]).config(["$routeProvider","WebpackResolverProvider",function(e,t){"camsoda_fans"===SITE.signup_source&amp;&amp;e.when("/creator/signup",{controller:"CreatorSignupController",name:"creatorSignup",resolve:{loadController:t.creator_signup},template:I.a,title:"Creator Signup Wizard",page_css_class:"creator_signup"}),"fantime"===SITE.signup_source&amp;&amp;e.when("/creator/signup",{controller:"CreatorSignupController",name:"creatorSignup",resolve:{loadController:t.creator_signup},template:I.a,title:"Creator Signup Wizard",page_css_class:"creator_signup"}),"fantime"!==SITE.signup_source||SITE.root_user||(e.when("/creator/vip-signup-form",{controller:"CreatorSignupController",name:"creatorSignup",resolve:{loadController:t.creator_signup},template:I.a,title:"Creator Signup Wizard",page_css_class:"creator_signup"}),e.when("/creator/signup-form",{controller:"CreatorSignupController",name:"creatorReferSignup",resolve:{loadController:t.creator_signup},template:I.a,title:"Creator Signup Wizard",page_css_class:"creator_signup"})),e.when("/creator/signup/studio/:studio/:substudio?",{controller:"CreatorSignupController",name:"creatorSignup",resolve:{loadController:t.creator_signup},template:I.a,title:"Creator Signup Wizard",page_css_class:"creator_signup"})}]);r.a.module("state_index",["pageslide-directive"]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o;SITE.root_user||(CURRENT_USER?"model"===CURRENT_USER.type?(o={controller:"StateIndexModelsCtrl",resolve:{currentUser:n.requireModelUser,loadController:t.index_model},template:I.a},e.when("/",o).when("/feed",o),"fantime"!==SITE.homepage_style&amp;&amp;e.when("/browse",o).when("/browse/follow-for-free",o).when("/browse/join-for-free",o).when("/browse/latest-updates",o).when("/browse/most-recent-posts",o).when("/browse/newest-creators",o)):(o={controller:"fantime"===SITE.homepage_style?"StateIndexFeedCtrl":"StateIndexPopularCtrl",resolve:{currentUser:n.requireUser,loadController:"fantime"===SITE.homepage_style?t.index_feed:t.index_popular},template:I.a},e.when("/",o).when("/browse/follow-for-free",o).when("/browse/join-for-free",o).when("/browse/latest-updates",o).when("/browse/most-recent-posts",o).when("/browse/newest-creators",o)):(o={controller:"fantime"===SITE.homepage_style?"StateIndexWelcomeCtrl":"StateIndexSigninCtrl",template:"fantime"===SITE.homepage_style?'&lt;state-index&gt;&lt;/state-index&gt;\n\n&lt;div class="csf_welcome"&gt;\n\n    &lt;div class="csf_header d-none d-md-block"&gt;\n        &lt;nav class="csf_header__navbar csf_welcome__navbar"&gt;\n            &lt;div class="csf_welcome__logo"&gt;\n                &lt;h2&gt;\n                    &lt;a href="/"&gt;\n                        &lt;img ng-src="{{ logo_url }}" alt="{{ title }}" width="250" height="53"&gt;\n                        Exclusive services that make us #1\n                    &lt;/a&gt;\n                &lt;/h2&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_welcome__auth_buttons"&gt;\n                &lt;div&gt;\n                     &lt;a class="btn btn-primary fw-bold no-above-text" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n                &lt;/div&gt;\n                &lt;div&gt;\n                    &lt;button class="btn btn-primary fw-bold no-above-text" ng-click="openAuthForm()"&gt;User Sign up&lt;/button&gt;\n                &lt;/div&gt;\n                &lt;div&gt;\n                    &lt;div&gt;Already a member?&lt;/div&gt;\n                    &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/nav&gt;\n    &lt;/div&gt;\n    &lt;div class="csf_welcome__header pt-3 px-2 d-block d-md-none position-relative text-center"&gt;\n        &lt;div class="csf_welcome__header_menu position-absolute d-flex align-items-center justify-content-center"&gt;\n            &lt;button class="btn btn-link" ng-click="slide_menu_open=!slide_menu_open"&gt;\n                &lt;i class="icon-fan_bars"&gt;&lt;/i&gt;\n            &lt;/button&gt;\n        &lt;/div&gt;\n        &lt;h2&gt;\n            &lt;a href="/"&gt;\n                &lt;img ng-src="{{ logo_url }}" alt="{{ title }}" width="180" height="38"&gt;\n                Exclusive services that make us #1\n            &lt;/a&gt;\n        &lt;/h2&gt;\n    &lt;/div&gt;\n    &lt;pageslide ps-open="slide_menu_open" ps-side="right" ps-size="280px" ps-speed=".2" class="csf_header__user_menu" ng-class="{ open: slide_menu_open }"&gt;\n        &lt;div class="csf_header__user_menu_header nbd"&gt;\n            &lt;a href="/" class="csf_header__user_menu_logo"&gt;\n                &lt;img ng-src="{{ logo_url }}" alt="{{ title }}" width="180" height="38"&gt;\n            &lt;/a&gt;\n            &lt;div class="btn btn-close position-absolute" ng-click="slide_menu_open=!slide_menu_open"&gt;&lt;/div&gt;\n        &lt;/div&gt;\n        &lt;div class="csf_header__user_menu_nlg_body"&gt;\n           &lt;div&gt;\n              &lt;div&gt;Already a member?&lt;/div&gt;\n              &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n           &lt;/div&gt;\n           &lt;div&gt;\n              &lt;div&gt;Wanna follow&lt;br&gt;your favorite creators?&lt;/div&gt;\n              &lt;button class="btn btn-primary fw-bold" ng-click="openAuthForm()"&gt;User Sign up&lt;/button&gt;\n           &lt;/div&gt;\n           &lt;div&gt;\n              &lt;div&gt;Apply to the world\'s most&lt;br&gt;exclusive fans platform&lt;/div&gt;\n              &lt;a class="btn btn-primary fw-bold" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n           &lt;/div&gt;\n        &lt;/div&gt;\n   &lt;/pageslide&gt;\n   &lt;div class="csf_welcome__inner csf_welcome__banner_top_bg"&gt;\n        &lt;div class="csf_welcome__banner csf_welcome__banner_top"&gt;\n            &lt;div&gt;\n                &lt;div class="csf_welcome__banner_top_left"&gt;\n                    &amp;nbsp;\n                &lt;/div&gt;\n                &lt;div class="csf_welcome__banner_top_right"&gt;\n                    &lt;div&gt;\n                        &lt;p&gt;&lt;span&gt;Earn While&lt;/span&gt;&lt;/p&gt;\n                        &lt;p&gt;&lt;span&gt;Keeping Total&lt;/span&gt;&lt;/p&gt;\n                        &lt;p&gt;&lt;span&gt;Control Over&lt;/span&gt;&lt;/p&gt;\n                        &lt;p&gt;&lt;span&gt;Your Image&lt;/span&gt;&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;h1 class="csf_welcome__faqlink_desktop"&gt;\n                        &lt;a href="/support/how-to-make-money"&gt;How to make money with Fantime?&lt;/a&gt;\n                    &lt;/h1&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;h1 class="csf_welcome__faqlink_mobile"&gt;\n        &lt;a href="/support/how-to-make-money"&gt;How to make money with Fantime?&lt;/a&gt;\n    &lt;/h1&gt;\n\n    &lt;div class="dk_bg"&gt;\n        &lt;div class="csf_welcome__inner"&gt;\n            &lt;div class="csf_welcome__top_creators"&gt;\n                &lt;h2&gt;Meet our top Creators&lt;/h2&gt;\n                &lt;div class="csf_welcome__top_creators_list"&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/Alisha-Lehmann1.jpg\' | webp }}" alt="Alisha Lehmann: Professional Footballer and Top Creator on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Alisha Lehmann&lt;/h3&gt;\n                        &lt;p&gt;Professional Footballer&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/NickyJam.jpg\' | webp }}" alt="Nicky Jam: Rapper, Actor and Top Creator on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Nicky Jam&lt;/h3&gt;\n                        &lt;p&gt;Singer, Songwriter, Rapper &amp;amp;&amp;nbsp;Actor&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/ChristmasAbbott.jpg\' | webp }}" alt="Christmas Abbott: Fitness Guru, Actress and  Top Creator on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Christmas Abbott&lt;/h3&gt;\n                        &lt;p&gt;Fitness Guru &amp;amp; Actress&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/AshleySebara.jpg\' | webp }}"  alt="Ashley Sebara: Wrestling Champion and Bodybuilder on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Ashley Sebera&lt;/h3&gt;\n                        &lt;p&gt;Wrestling Champion &amp; Bodybuilder&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/JorgeMasvidal.jpg\' | webp }}" alt="Jorge Masvidal: MMA Fighter and Top Creator on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Jorge Masvidal&lt;/h3&gt;\n                        &lt;p&gt;Mixed Martial Artist&lt;/p&gt;\n                    &lt;/div&gt;\n                    &lt;div class="csf_welcome__top_creator"&gt;\n                        &lt;div class="csf_welcome__top_creator_portrait" back-img="{{ cdnAsset + \'/MaceyEstrella.jpg\' | webp }}" alt="Macey Estrella: Professional Wrestler, Former US Maring and Top Creator on Fantime.com"&gt;&lt;/div&gt;\n                        &lt;h3&gt;Macey Estrella&lt;/h3&gt;\n                        &lt;p&gt;Professional Wrestler&lt;/p&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf_welcome__inner" &gt;\n\n        &lt;div class="csf_welcome__two_cols"&gt;\n            &lt;div class="csf_welcome__two_col csf_welcome__offer"&gt;\n                &lt;h3&gt;\n                    We Offer the Best Services\n                    &lt;span&gt;Check for Yourself&lt;/span&gt;\n                &lt;/h3&gt;\n                &lt;div class="csf_welcome__table__holder"&gt;\n                    &lt;table class="table table-borderless table-striped csf_welcome__table"&gt;\n                        &lt;thead&gt;\n                            &lt;tr&gt;\n                                &lt;th&gt;&lt;/th&gt;\n                                &lt;th class="col1"&gt;&lt;img ng-src="{{ logo_url }}" alt /&gt;&lt;/th&gt;\n                                &lt;th class="col2"&gt;The other guys&lt;/th&gt;\n                            &lt;/tr&gt;\n                        &lt;/thead&gt;\n                        &lt;tbody class="align-middle"&gt;\n                            &lt;tr&gt;\n                                &lt;td&gt;Pick your &lt;b&gt;own domain name&lt;/b&gt;&lt;/td&gt;\n                                &lt;td class="col1"&gt;\n                                  &lt;i class="icon icon-fan_check"&gt;&lt;/i&gt;\n                                &lt;/td&gt;\n                                &lt;td class="col2"&gt;-&lt;/td&gt;\n                            &lt;/tr&gt;\n                            &lt;tr&gt;\n                                &lt;td&gt;Use your &lt;b&gt;own colors &amp; logo&lt;/b&gt;&lt;/td&gt;\n                                &lt;td class="col1"&gt;\n                                  &lt;i class="icon icon-fan_check"&gt;&lt;/i&gt;\n                                &lt;/td&gt;\n                                &lt;td class="col2"&gt;-&lt;/td&gt;\n                            &lt;/tr&gt;\n                            &lt;tr&gt;\n                                &lt;td&gt;Content &lt;b&gt;100% protected&lt;/b&gt;&lt;/td&gt;\n                                &lt;td class="col1"&gt;\n                                  &lt;i class="icon icon-fan_check"&gt;&lt;/i&gt;\n                                &lt;/td&gt;\n                                &lt;td class="col2"&gt;-&lt;/td&gt;\n                            &lt;/tr&gt;\n                            &lt;tr&gt;\n                                &lt;td&gt;Detailed &lt;b&gt;sales AND traffic stats&lt;/b&gt;&lt;/td&gt;\n                                &lt;td class="col1"&gt;\n                                  &lt;i class="icon icon-fan_check"&gt;&lt;/i&gt;\n                                &lt;/td&gt;\n                                &lt;td class="col2"&gt;-&lt;/td&gt;\n                            &lt;/tr&gt;\n                        &lt;/tbody&gt;\n                    &lt;/table&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_welcome__two_col csf_welcome__main_testimony_holder"&gt; \n                &lt;div ng-if="showTestimony1" class="csf_welcome__main_testimony" back-img="{{ cdnAsset + \'/AshleySebara2.jpg\' | webp }}"&gt;\n                    &lt;div class="csf_welcome__main_testimony_text"&gt;\n                        &lt;p&gt;Fantime has given me a platform to empower women all across the world to use YOUR unique gift that is different from everybody!&lt;/p&gt;\n                        &lt;p&gt;Be 1 of 1 and show the world how beautiful you are inside and out! Thank you Fantime for letting me explore a different side of me and sharing it with my fans!&lt;/p&gt;\n                        &lt;h4 class="extra-font"&gt;Ashley Sebera&lt;/h4&gt;\n                        &lt;span&gt;aka Dana Brooke Wrestling Champion &amp;amp; Bodybuilder&lt;/span&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;div ng-if="!showTestimony1" class="csf_welcome__main_testimony" back-img="{{ cdnAsset + \'/MaceyEstrella2.jpg\' | webp }}"&gt;\n                    &lt;div class="csf_welcome__main_testimony_text"&gt;\n                        &lt;p&gt;Being able to confidently and comfortably step into whatever outfit and position I want and share it privately with my fans has been so much fun!&lt;/p&gt;\n                        &lt;p&gt;Thank you, Fantime, for making it possible for women to express their sexuality however they want while providing them with a platform where they can monetize their self-expression, creativity and work!&lt;/p&gt;\n                        &lt;h4 class="extra-font"&gt;Macey Estrella &lt;/h4&gt;\n                        &lt;span&gt;aka Lacey Evans Professional Wrestler &amp;amp; former U.S. Marine&lt;/span&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt; \n    &lt;/div&gt;\n\n    &lt;div class="dk_bg"&gt;\n        &lt;div class="csf_welcome__auth_buttons"&gt;\n            &lt;div&gt;\n                 &lt;button class="btn btn-primary fw-bold no-above-text" ng-click="openAuthForm()"&gt;Sign up&lt;/button&gt;\n            &lt;/div&gt;\n            &lt;div&gt;\n                &lt;div class="text-above"&gt;Already a member?&lt;/div&gt;\n                &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n            &lt;/div&gt;\n            &lt;div class="csf_welcome__auth_button_creator"&gt;\n              &lt;a class="btn btn-primary fw-bold no-above-text" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf_welcome__banner csf_welcome__banner_bottom"&gt;\n        &lt;div class="csf_welcome__banner_overlay"&gt;\n            &lt;div class="d-flex"&gt;\n               &lt;div class="icon icon-fan_customize me-3"&gt;&lt;/div&gt;\n               &lt;div&gt;\n                  &lt;h3&gt;Get the Site you Want&lt;/h3&gt;\n                  &lt;p&gt;Pick your &lt;b&gt;own domain&lt;/b&gt; &amp;amp; &lt;b&gt;customize your page&lt;/b&gt; with your own logo &amp;amp; colors&lt;/p&gt;\n               &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="d-flex"&gt;\n               &lt;div class="icon icon-fan_controls me-3"&gt;&lt;/div&gt;\n               &lt;div&gt;\n                  &lt;h3&gt;Control your Image&lt;/h3&gt;\n                  &lt;p&gt;Keep full-control over your &lt;b&gt;own image &amp;amp; brand&lt;/b&gt; at every level.&lt;/p&gt;\n               &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="d-flex"&gt;\n               &lt;div class="icon icon-fan_protect me-3"&gt;&lt;/div&gt;\n               &lt;div&gt;\n                  &lt;h3&gt;Keep your Content Protected&lt;/h3&gt;\n                  &lt;p&gt;&lt;b&gt;Ultimate protection&lt;/b&gt; of your content.\n               &lt;/p&gt;&lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf_welcome__auth_buttons"&gt;\n        &lt;div&gt;\n             &lt;button class="btn btn-primary fw-bold no-above-text" ng-click="openAuthForm()"&gt;Sign up&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div&gt;\n            &lt;div class="text-above"&gt;Already a member?&lt;/div&gt;\n            &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="csf_welcome__auth_button_creator"&gt;\n          &lt;a class="btn btn-primary fw-bold no-above-text" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n':'&lt;state-index&gt;&lt;/state-index&gt;\n\n&lt;div&gt;\n    &lt;div ng-if="showSpecialOffer" class="csf__home2__row csf__home2__row--first"&gt;\n        &lt;div class="container"&gt;\n            &lt;div ng-click="goCreator()" class="csf_creator_special_offer"&gt;\n                &lt;div class="csf_creator_special_offer_bubble"&gt;\n                    only few days left!\n                &lt;/div&gt;\n                &lt;h4&gt;Special Offer for Creators&lt;/h4&gt;\n                &lt;p class="csf_creator_special_offer_l1"&gt;Signup in August and get&lt;/p&gt;\n                &lt;p class="csf_creator_special_offer_l2"&gt;\n                    100% payout for 2021&lt;span&gt;*&lt;/span&gt;\n                &lt;/p&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div class="jumbotron csf__home2__jumbotron"&gt;\n        &lt;h2&gt;\n            A community of creators,&lt;br /&gt;\n            models, artists and musicians.&lt;br /&gt;\n            ALL creators are welcome.\n        &lt;/h2&gt;\n        &lt;a class="btn btn-primary csf__home2__btn_rnd" ng-click="openAuthForm()"&gt;\n            Sign Up\n        &lt;/a&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf__home2__row csf__home2__row--first"&gt;\n        &lt;div class="container"&gt;\n            &lt;div class="row"&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;img ng-src="{{ cdnAsset + \'/icon1.png\' | webp }}" alt="Connect with Fans - Interact directly with your fans" width="65" height="65" /&gt;\n                     &lt;h4&gt;Connect with Fans&lt;/h4&gt;\n                     &lt;p&gt;Interact directly with your fans without any ads interfering with their experience.&lt;/p&gt;\n                &lt;/div&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;img ng-src="{{ cdnAsset + \'/icon2.png\' | webp }}" alt="Fan experience - Create exclusive content" width="65" height="65" /&gt;\n                     &lt;h4&gt;Fan experience&lt;/h4&gt;\n                     &lt;p&gt;Create exclusive content that cannot be seen anywhere else.&lt;br /&gt;Q&amp;A\'s, behind the scenes, let the fans meet the creator behind the curtain.&lt;/p&gt;\n                &lt;/div&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;img ng-src="{{ cdnAsset + \'/icon3.png\' | webp }}" alt="Fan Support - Develop reliable monthly income" width="65" height="65"/&gt;\n                     &lt;h4&gt;Fan Support&lt;/h4&gt;\n                     &lt;p&gt;Art and patronage. Develop reliable monthly income from people who support your work.&lt;/p&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf__home2__row csf__home2__row--second"&gt;\n        &lt;div class="container"&gt;\n            &lt;div class="row csf__home2__row_header"&gt;\n                &lt;div class="col"&gt;\n                     &lt;span&gt;Thousands are online now&lt;/span&gt;\n                     &lt;h1&gt;Build Your Community&lt;/h1&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="row"&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;i class=" icon-fan_like-plain"&gt;&lt;/i&gt;\n                     &lt;h4&gt;FANS WILL LOVE YOU&lt;/h4&gt;\n                     &lt;p&gt;Build a community and develop lasting relationships, deeper than social media.&lt;/p&gt;\n                &lt;/div&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;i class="icon-fan_comments"&gt;&lt;/i&gt;\n                     &lt;h4&gt;DIRECT MESSAGE&lt;/h4&gt;\n                     &lt;p&gt;Send text to all your fans when you upload new content. Automatically works in 1 step!&lt;/p&gt;\n                &lt;/div&gt;\n                &lt;div class="col-12 col-md-4 csf__home2__row_item"&gt;\n                     &lt;i class="icon-fan_customize"&gt;&lt;/i&gt;\n                     &lt;h4&gt;BE CREATIVE&lt;/h4&gt;\n                     &lt;p&gt;Share your new song, photo, video, or art piece! Sell custom made content just for your fans.&lt;/p&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="row csf__home2__row_footer"&gt;\n                &lt;div class="col"&gt;\n                    &lt;a class="btn btn-primary csf__home2__btn_rnd" ng-click="openAuthForm()"&gt;\n                        Join Now\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n    &lt;p ng-if="showSpecialOffer" class="csf_creator_special_offer_ast"&gt;* this offer is only available to new accounts&lt;/p&gt;\n&lt;/div&gt;\n'},e.when("/",o)),e.when("/password/reset/:passwordResetToken",o).when("/email/confirm/:emailConfirmToken",o).when("/password/forgot",o),"fantime"===SITE.homepage_style||SITE.root_user||e.when("/rankings",{controller:"StateIndexRankCtrl",resolve:{loadController:t.index_rank},template:I.a}))}]).component("stateIndex",{controller:["$routeParams","$route","$scope","security",function(e,t,n,o){e.emailConfirmToken&amp;&amp;o.sendEmailConfirm(e.emailConfirmToken),e.passwordResetToken&amp;&amp;o.openPasswordReset(e.passwordResetToken),!o.isAuthenticated()&amp;&amp;t.current&amp;&amp;t.current.$$route&amp;&amp;t.current.$$route.originalPath.startsWith("/password/forgot")&amp;&amp;o.openPasswordRecover(t.current&amp;&amp;t.current.params&amp;&amp;t.current.params.email)}],bindings:{},template:""}).controller("StateIndexWelcomeCtrl",["$interval","$scope","security",function(e,t,n){t.current=n.getCurrent(),t.logo_url=SITE.media_host+SITE.custom.large_logo,t.title=SITE.title||SITE.root_user&amp;&amp;SITE.root_user.username||SITE.display_name,t.openAuthForm=n.openAuthForm,t.openSignin=n.openSignin,t.showTestimony1=Math.random()&lt;.5,t.cdnAsset=SITE.media_host+"/media/fans/assets/home";var o=e((function(){t.showTestimony1=!t.showTestimony1}),6e4);t.$on("$destroy",(function(){o()})),t.slide_menu_close=function(){t.slide_menu_open=!1}}]).controller("StateIndexSigninCtrl",["$location","$scope","security",function(e,t,n){t.openAuthForm=n.openAuthForm,document.body.classList.add("csf__home2"),t.$on("$destroy",(function(){document.body.classList.remove("csf__home2")})),t.cdnAsset=SITE.media_host+"/media/fans/assets/home2",t.showSpecialOffer=(new Date).getTime()&lt;new Date(2021,8,1).getTime(),t.goCreator=function(){e.url("/creator")}}]);r.a.module("state_post_create_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/post/create",{controller:"StatePostCreateController",resolve:{currentUser:n.requireModelUser,loadController:t.post_create},template:I.a})}]);var U=o("fbB5"),L=o("OPHa"),R=o.n(L),F=o("hdXK");angular.module("fans_subscriptions",[F.a]).directive("subscriptions",["ModelService","toaster","whitelabel",function(e,t,n){return{link:function(o){o.model.profileUrl=n.profileUrl(o.model.username),o.cancelSubscription=function(n){e.cancelSubscription(o.model.username,n.type,o.model.display_name).then((function(e){n.canceled_at=e.canceled_at,n.status="gift"===n.type?"expired":"expiring"})).catch((function(){t.pop("error","Error","Subscriptions not found. Please, contact customer service.")}))},o.reactivateSubscription=function(n){e.reactivateSubscription(o.model.username,n.type,n.status).then((function(e){n.canceled_at=null})).catch((function(){t.pop("error","Error","Subscriptions not found. Please, contact customer service.")}))}},replace:!0,restrict:"E",scope:{inModal:"&lt;?",isBlocked:"&lt;?",model:"&lt;",subscriptions:"&lt;"},template:'&lt;div ng-class="{\'col\': !inModal}"&gt;\n    &lt;div ng-class="{\'border shadow rounded h-100\': !inModal}"&gt;\n        &lt;div class="csf-sub-box"&gt;\n            &lt;a ng-href="{{ model.profileUrl }}" class="d-block csf-sub-cover border-bottom d-flex mi10 rounded w-100 position-relative align-items-end img-inner-shd" ng-class="{\'mb-4\': inModal, \'mb-3\': !inModal}" back-img="{{ model.fans_cover_picture_url | webp }}"&gt;\n                &lt;span class="csf-avatar-lg rounded border-5 d-block position-absolute shadow-sm"&gt;\n                    &lt;avatar user="model"&gt;&lt;/avatar&gt;\n                &lt;/span&gt;\n                &lt;strong class="csf-sub-cover-name extra-font text-white lh-1"&gt;{{ model.display_name }}&lt;/strong&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n        &lt;div class="d-flex flex-column" ng-class="{\'mb-2\': inModal}"&gt;\n            &lt;div class="px-3 text-muted w-100 mx-auto text-center" ng-class="{\'mt-1\': inModal}" ng-repeat="subscription in subscriptions"&gt;\n\n                &lt;div ng-class="{\'md-m-4 m-1 border rounded\': inModal}" class="text-muted p-2 mb-2" ng-if="[\'access\', \'snapchat\'].includes(subscription.type) &amp;&amp; subscription.canceled_at" &gt;\n                    &lt;p class="m-0" ng-class="{\'fs-0800\': !inModal }"&gt;Your &lt;b&gt;{{ subscription.type === \'access\' ? \'profile\' : \'snapchat\' }}&lt;/b&gt; subscription will expire &lt;b&gt;{{subscription.canceled_at | dateDiffInTextual}}&lt;/b&gt;&lt;/p&gt;\n                    &lt;button class="btn btn-lg btn-outline-primary fw-bold d-block mt-2 lh-12 w-100" ng-class="{\'mx-auto fs-0900\': inModal}" ng-click="reactivateSubscription(subscription)"&gt;Reactivate&lt;/button&gt;\n                &lt;/div&gt;\n\n                &lt;div ng-class="{\'md-m-4 m-1 border rounded\': inModal}" class="text-muted p-2 mb-2" ng-if="[\'trial\', \'gift\'].includes(subscription.type)"&gt;\n                    &lt;p class="m-0" ng-class="{\'fs-0800\': !inModal }"&gt;\n                        Your &lt;b&gt;{{ subscription.type | ucFirst }}&lt;/b&gt; subscription &lt;b class="fw-bold" ng-if="subscription.canceled_at"&gt;{{ subscription.status === \'expired\' ? \'expired\' : \'expires\' }} {{subscription.canceled_at | dateDiffInTextual}}&lt;/b&gt;\n                    &lt;/p&gt;\n                    &lt;button class="btn btn-outline-primary fw-bold d-block mt-2 lh-12 mx-auto" ng-class="{\'fs-0900\': inModal}" ng-click="cancelSubscription(subscription)" ng-if="subscription.type === \'gift\' &amp;&amp; subscription.status !== \'expired\'"&gt;\n                        Cancel Gift Subscription\n                    &lt;/button&gt;\n                &lt;/div&gt;\n\n                &lt;div ng-class="{\'md-m-4 m-1 border rounded\': inModal}" class="text-muted p-2 mb-2" ng-if="![\'trial\', \'gift\'].includes(subscription.type) &amp;&amp; !subscription.canceled_at"&gt;\n                    &lt;p class="m-0 mb-2" ng-class="{\'fs-0900\': !inModal }" ng-if="subscription.type === \'free\'"&gt;\n                        You are currently following &lt;span class="whitespace-nowrap fw-bold"&gt;{{ model.display_name }}&lt;/span&gt; &lt;b&gt;for free&lt;/b&gt;\n                    &lt;/p&gt;\n                    &lt;p class="m-0 mb-2"  ng-class="{\'fs-0900\': !inModal }" ng-if="subscription.type !== \'free\'"&gt;\n                        &lt;span class="d-block" ng-if="subscription.type !== \'snapchat\'"&gt;\n                            You are currently &lt;b&gt;subscribed&lt;/b&gt;\n                        &lt;/span&gt;\n                        &lt;span class="d-block" ng-if="subscription.type === \'snapchat\'"&gt;\n                            You currently have a &lt;b&gt;Snapchat subscription&lt;/b&gt;\n                        &lt;/span&gt;\n                         to &lt;span class="whitespace-nowrap fw-bold"&gt;{{ model.display_name }}&lt;/span&gt;\n                    &lt;/p&gt;\n                    &lt;button class="btn btn-outline-primary fw-bold d-block lh-12 mx-auto" ng-class="{\'fs-0900\': inModal, \'w-100\': subscription.type !== \'free\'}" ng-click="cancelSubscription(subscription)"&gt;\n                        {{ subscription.type === \'free\' ? \'Unfollow\' : \'Unsubscribe\' }}\n                    &lt;/button&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;'}}]);angular.module("fans_service_subscriptions",[F.a,"fans_subscriptions"]).service("subscriptionsService",["accountService","ngDialog","$q","toaster",function(e,t,n,o){this.openSubscriptionModal=function(i,r,a){var s=n.defer();return(r&amp;&amp;r.length||a)&amp;&amp;i?(t.open({className:"ngdialog",controller:["$scope",function(t){t.isBlocked=a,t.subscriptions=r||[],t.model=i,t.toggleBlock=function(){var n=t.isBlocked?"unblock":"block";return e[n](i).then((function(){t.isBlocked=!t.isBlocked,window.location.reload(!0)}))}}],template:'&lt;div class="modal-dialog modal-dialog-scrollable modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-body p-0"&gt;\n            &lt;button class="btn-close btn-close-white position-absolute top-0 end-0 p-3" style="z-index: 6;" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n            &lt;subscriptions in-modal="\'true\'" model="model" subscriptions="subscriptions"&gt;&lt;/subscriptions&gt;\n\n            &lt;div class="text-muted p-2 mx-4 mb-3 csf_user__info_box"&gt;\n                &lt;div class="csf_user__info_box_main_actions"&gt;\n                    &lt;a class="fw-bold d-flex flex-row gap-2 text-center mx-auto w-auto p-2" ng-click="toggleBlock(model)" ng-attr-title="{{!isBlocked?\'Block\':\'Unblock\'}}"&gt;\n                        &lt;span class="icon-fan_block fs-5" ng-class="{\'text-danger\': isBlocked}"&gt;&lt;/span&gt;\n                        &lt;span ng-if="isBlocked"&gt;Unblock {{model.display_name}}&lt;/span&gt;\n                        &lt;span ng-if="!isBlocked"&gt;Block {{model.display_name}}&lt;/span&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt; \n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}),s.resolve({})):(o.pop("error","Error","Subscriptions not found. Please contact customer service."),s.reject({})),s.promise}}]);angular.module("fans_profile_cover",[F.a,"fans_service_subscriptions",R.a]).directive("profileCover",["$timeout","security","subscriptionsService","toaster","$rootScope","Upload","$http","whitelabel",function(e,t,n,o,i,r,a,s){return{link:function(c,l){function u(){c.user&amp;&amp;(c.imageUrl=null,c.videoUrl=null,c.user.fans_cover_video_url?c.videoUrl=c.user.fans_cover_video_url:c.user.fans_cover_picture_url&amp;&amp;(c.imageUrl=c.user.fans_cover_picture_url))}if(c.ngDisabled=!1!==c.ngDisabled,c.showTipButton=s.showTipButton(c.user.username),c.fileLoadingPercent=!1,c.streamingUrl=null,c.streamCdnAsset=null,c.isShowLikes=c.showLikes,!c.previewOnly&amp;&amp;c.ngDisabled&amp;&amp;"camsoda_fans"===SITE.signup_source&amp;&amp;c.user.is_streaming&amp;&amp;c.isSubscribed&amp;&amp;(t.isAuthenticated()?c.streamingUrl="/r/camsoda?username="+c.user.username:c.streamingUrl="https://www.camsoda.com/"+c.user.username,c.streamCdnAsset=SITE.media_host+"/media/fans/assets/camsoda.svg",c.streamTitle="Join me Live on CAMSODA.com"),u(),c.edit=function(){c.profileService&amp;&amp;c.profileService.editCover(c.user,(function(e){var t=-1!==e.file.type.indexOf("image");c.originalImageUrl||(c.originalImageUrl=c.imageUrl),c.originalVideoUrl||(c.originalVideoUrl=c.videoUrl),c.pendingApproval=!0,c.selectedFile=e,t?(c.imageUrl=URL.createObjectURL(e._file),c.videoUrl=null):(c.videoUrl=URL.createObjectURL(e._file),c.imageUrl=null),c.isShowLikes=!1}))},c.approveCover=function(){c.fileLoadingPercent=0,a.get("/api/v1/upload-token").then((function(e){var t=e.data.token,n="/api/v1/image/fans-cover",s=-1!==c.selectedFile._file.type.indexOf("image");s||(n="/api/v1/video/fans-media");var l=c.selectedFile._file.name.replaceAll(/[^a-zA-Z0-9-_.]/g,"");l.length&amp;&amp;"."!==l[0]||(l="default"+(new Date).getTime()+l);var u=new File([c.selectedFile._file],l,{type:c.selectedFile._file.type});r.upload({url:UPLOAD_HOST+n,headers:{"Upload-Token":t},data:{file:u}}).then((function(e){var t=new FormData;t.append("tkn",e.data.token),t.append("srv_id",e.data.server),t.append("filename",c.selectedFile._file.name),t.append("user_id",c.user.id),t.append("type",s?"image":"video"),a.post("/api/v1/account/cover",t,{headers:{"Content-Type":void 0}}).then((function(){c.fileLoadingPercent=!1,o.pop("success","Success","Cover uploaded."),i.$broadcast("profile.cover.upload"),c.isShowLikes=c.showLikes}))}),(function(e){c.fileLoadingPercent=!1,o.pop("error","Error",e&amp;&amp;e.data&amp;&amp;e.data.error)}),(function(e){c.fileLoadingPercent=parseInt(100*e.loaded/e.total)})).finally((function(){c.imageUrl&amp;&amp;URL.revokeObjectURL(c.imageUrl),c.videoUrl&amp;&amp;URL.revokeObjectURL(c.videoUrl),c.pendingApproval=!1}))}))},c.rejectCover=function(){c.pendingApproval=!1,c.isShowLikes=c.showLikes,c.imageUrl=c.originalImageUrl,c.videoUrl=c.originalVideoUrl},c.editDisplayName=function(){c.profileService&amp;&amp;c.profileService.editDisplayName(c.user)},c.$on("security.current.update",(function(e,t){c.user.username===t.user.username&amp;&amp;(c.user=t.user,u())})),c.openSubscribeManage=function(){n.openSubscriptionModal(c.user,c.subscriptions,c.isBlocked)},!c.previewOnly&amp;&amp;c.ngDisabled){var d=SITE.media_host+"/media/fans/assets/powered-by-"+("camsoda_fans"===SITE.signup_source?"fansoda.png":"fantime.png"),p="camsoda_fans"===SITE.signup_source?"https://www.fansoda.com":"https://www.fantime.com";c.poweredBy={logo:d,url:p}}e((function(){var e=l.find("video");e.length&gt;0&amp;&amp;(e[0].muted=!0)}))},replace:!0,restrict:"E",scope:{colorMessage:"=?",colorMessageText:"=?",colorLink:"=?",colorMainFollow:"=?",colorText:"=?",isBlocked:"=?",isFreeFollower:"=?",isSubscribed:"=?",ngDisabled:"=?",openDirectMessage:"=?",openSubscribeBenefits:"=?",openTip:"=?",previewOnly:"=?",profileService:"&lt;?",subscriptions:"&lt;?",tipProcessing:"&lt;?",user:"=",likes:"=?",showLikes:"&lt;?"},template:'&lt;div class="position-relative"&gt;\n    &lt;div class="alert text-center mb-0 w-100 rounded-0" style="z-index:6" ng-if="pendingApproval"&gt;\n        &lt;div ng-show="fileLoadingPercent == false"&gt; \n            &lt;div class="mb-2"&gt;&lt;b&gt;Save Cover Changes?&lt;/b&gt;&lt;/div&gt;\n            &lt;button class="btn btn-sm btn-primary me-1" ng-click="approveCover()"&gt;Save&lt;/button&gt;\n            &lt;button class="btn btn-sm btn-cancel ms-1" ng-click="rejectCover()"&gt;Cancel&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="progress" ng-show="fileLoadingPercent !== false"&gt;\n            &lt;div class="progress-bar progress-bar-striped" ng-style="{ width: fileLoadingPercent + \'%\' }" role="progressbar" aria-valuenow="{{ fileLoadingPercent }}" aria-valuemin="0" aria-valuemax="100"&gt;&lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n    \x3c!-- rejected cover  --\x3e\n    &lt;div class="alert alert-danger border-end-0 border-start-0 text-center mb-0 w-100 rounded-0" style="z-index:6" ng-if="!previewOnly &amp;&amp; (user.fans_cover_picture_rejected || user.fans_cover_video_rejected)"&gt;\n        &lt;div class="fw-bold mb-2"&gt;\n            Unfortunately your cover\n            &lt;span ng-if="user.fans_cover_picture_rejected"&gt;pic&lt;/span&gt;\n            &lt;span ng-if="user.fans_cover_video_rejected"&gt;video&lt;/span&gt;\n            was not approved.&lt;/div&gt;\n        Please upload a media with no nudity.\n    &lt;/div&gt;\n\n    \x3c!-- TOTAL LIKES--\x3e\n    &lt;div class="csf-profile-likes position-absolute btn btn-cancel border-2 fs-0875 fw-bold mx-2 cursor-d" ng-if="isShowLikes"&gt;\n        &lt;i class="icon icon-fan_like-plain text-primary"&gt;&lt;/i&gt;\n        &lt;span&gt;{{ likes | formatBulk }}&lt;/span&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf-profile-cover overflow-hidden position-relative"\n         ng-class="\n                {\'csf-cover-w-media img-inner-shd\': (imageUrl || videoUrl),\n                 \'csf-cover-0-media\': (!imageUrl &amp;&amp; !videoUrl),\n                 \'csf-cover-img\': (imageUrl &amp;&amp; !videoUrl),\n                 \'csf-cover-preview\': previewOnly\n    }"&gt;\n\n        &lt;div ng-if="previewOnly" class="preview position-absolute fw-bold px-2"&gt;PREVIEW&lt;/div&gt;\n\n        &lt;a ng-click="$event.stopPropagation();" ng-if="streamingUrl"\n            class="csf-cover-live-stream extra-font rounded position-absolute text-center text-decoration-none lh-1" ng-href="{{ streamingUrl }}" target="_blank"&gt;\n            I\'m currently live on&lt;img ng-src="{{ streamCdnAsset }}" ng-attr-title="{{ streamTitle }}" class="d-block d-block py-md-1 img-fluid"/&gt;\n        &lt;/a&gt;\n\n        &lt;div\n            class="csf-cover-pix position-absolute top-0 bottom-0 start-0 end-0"\n            ng-if="imageUrl"\n            back-img="{{ imageUrl | webp }}"\n        &gt;&lt;/div&gt;\n\n        &lt;video autoplay loop muted playsInline volume="0" class="csf-cover-vid position-absolute w-100 start-0 end-0 bottom-0"  ng-if="videoUrl" ng-src="{{ videoUrl }}" &gt;&lt;/video&gt;\n\n        &lt;div class="csf-cover-content position-absolute top-0 bottom-0 start-0 end-0"&gt;\n            &lt;div class="csf-cover-content-inner position-absolute top-0 bottom-0 end-0 w-100 start-0 d-flex align-items-start justify-content-end flex-column p-2"&gt;\n\n                &lt;h1 id="csf_profile__edit_name_button" class="extra-font lh-1 w-100 text-start text-md-center fw-normal my-0 text-white mb-0" ng-click="editDisplayName()" ng-class="{\'cursor-p\': !ngDisabled}"&gt;\n                    {{ user.display_name }}\n                &lt;/h1&gt;\n\n                &lt;div ng-if="previewOnly" class="d-flex align-items-center mt-2 mt-sm-0"&gt;\n                    &lt;a class="btn btn-sm csf-cc-msg-btn text-uppercase fw-bold mb-md-4 mb-2 mx-2" ng-if="previewOnly" ng-style="{\'background-color\': colorMessage, \'color\': colorMessageText, \'border-color\': colorMessage}"&gt;Send me a message&lt;/a&gt;\n                    &lt;a class="btn btn-sm btn-primary text-uppercase fw-bold mb-md-4 mb-2 mx-2 loader" ng-style="{\'background-color\': colorLink, \'border-color\': colorLink}"&gt;\n                        &lt;span ng-if="!tipProcessing"&gt;TIP ME&lt;/span&gt;\n                        &lt;svg-loading ng-if="tipProcessing"&gt;&lt;/svg-loading&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n\n                &lt;div ng-if="ngDisabled &amp;&amp; !previewOnly" class="d-flex mt-2 mt-sm-0 w-100 mb-2 justify-content-start justify-content-md-center"&gt;\n                    &lt;a class="btn btn-sm csf-cc-msg-btn text-uppercase fw-bold me-2" ng-if="!isSubscribed" ng-click="openSubscribeBenefits();$event.stopPropagation()"&gt;Send me a message&lt;/a&gt;\n\n                    &lt;a class="btn btn-sm csf-cc-msg-btn text-uppercase fw-bold me-2" ng-if="isSubscribed"  ng-click="openDirectMessage();$event.stopPropagation()"&gt;Send me a message&lt;/a&gt;\n\n                    &lt;a class="btn btn-sm btn-primary text-uppercase fw-bold loader me-2" ng-if="showTipButton" ng-click="openTip();$event.stopPropagation()"&gt;\n                        &lt;span ng-if="!tipProcessing"&gt;TIP ME&lt;/span&gt;\n                        &lt;svg-loading ng-if="tipProcessing"&gt;&lt;/svg-loading&gt;\n                    &lt;/a&gt;\n\n                    &lt;a class="btn btn-sm csf-cc-msg-btn csf-cog-btn text-uppercase fw-bold position-absolute me-2" ng-if="!streamingUrl &amp;&amp; (isSubscribed || isFreeFollower || isBlocked)" ng-click="openSubscribeManage();$event.stopPropagation()"&gt;&lt;i class="icon icon-fan_cog fs-5"&gt;&lt;/i&gt;&lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="csf-profile-edit-btn position-absolute"&gt;\n                &lt;a class="btn btn-sm btn-cancel fw-bold d-flex align-items-center" id="csf_profile__edit_cover_button" ng-class="{\'invisible\':previewOnly}" ng-click="edit();$event.stopPropagation();" ng-if="!ngDisabled || previewOnly"&gt;\n                    &lt;i class="icon icon-fan_photo"&gt;&lt;/i&gt; \n                &lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt; \n\n    &lt;a ng-if="poweredBy" class="csf-profile-powered-by position-absolute top-0 end-0 text-end" ng-click="$event.stopPropagation();" ng-href="{{ poweredBy.url }}"&gt;\n        &lt;img ng-src="{{ poweredBy.logo }}" class="img-fluid"/&gt;\n    &lt;/a&gt;\n    \n    &lt;div class="csf-packages d-flex align-items-center justify-content-center mx-auto mt-md-1 mt-4" ng-if="previewOnly"&gt;\n        &lt;a class="btn btn-full-w csf_profile__content_package csf-package-discount"&gt;\n            &lt;b class="full" ng-style="{\'background-color\': colorMainFollow}"&gt;XX%&lt;br&gt;off&lt;/b&gt;\n            &lt;span class="ng-binding"&gt;Subscribe for $XX.XX&lt;/span&gt;\n            &lt;br&gt;for X months\n        &lt;/a&gt;\n    &lt;/div&gt;\n    &lt;p ng-if="previewOnly" class="text-center" ng-style="{\'color\': colorText}"&gt;\n        Sample text with a\n        &lt;b&gt;&lt;a href="#" ng-style="{\'color\': colorLink}"&gt;Link&lt;/a&gt;&lt;/b&gt;\n    &lt;/p&gt;\n&lt;/div&gt;\n'}}]);angular.module("fans_profile_header",[]).directive("profileHeader",["directMessageCommon","security","$rootScope","utils","whitelabel",function(e,t,n,o,i){return{link:function(r,a){r.security=t.getCurrent(),r.user_current=t.getCurrent().user,r.openAuthForm=t.openAuthForm,r.openSignin=t.openSignin,r.isTooltipEnabled=!o.isMobileView(),r.directMessageCommon=e,r.headerLogoShow=r.headerLogo,r.showSiteHeader=!0,r.$watch("headerLogo",(function(e){r.headerLogoShow=e})),SITE.root_user&amp;&amp;SITE.custom.logo?r.headerLogoShow=SITE.media_host+SITE.custom.logo:r.showSiteHeader=!1,r.createPostUrl=r.user_current&amp;&amp;i.profileUrl(r.user_current.username,"posts/create"),r.createAPost=function(e){n.$broadcast("createAPost")}},replace:!0,restrict:"E",scope:{headerLogo:"&lt;?",logoClick:"=?"},template:'&lt;div class="csf_header"&gt;\n\n    &lt;nav class="csf_header__navbar navbar navbar-expand-lg"&gt;\n        &lt;div class="container-fluid"&gt;\n            &lt;a class="csf_header__brand navbar-brand" href="/" back-img="{{ headerLogoShow | webp }}" ng-click="logoClick()"&gt;&lt;/a&gt;\n\n            &lt;div class="d-flex"&gt;\n\n                &lt;div class="csf_header__profile_nav" ng-if="!user_current &amp;&amp; showSiteHeader"&gt;\n                    &lt;div class="csf_header__profile_nav_logged_out"&gt;\n                        &lt;a ng-click="openAuthForm()" class="text-muted"&gt;\n                            sign up\n                        &lt;/a&gt;\n                        &lt;a ng-click="openSignin()" class="text-muted"&gt;\n                            log in\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;div class="csf_welcome__auth_buttons d-none d-md-flex" ng-if="!user_current &amp;&amp; !showSiteHeader"&gt;\n                    &lt;div ng-if="!isCreating"&gt;\n                        &lt;a class="btn btn-primary fw-bold no-above-text" href="/creator"&gt;Setup Creator Account&lt;/a&gt;\n                    &lt;/div&gt;\n                    &lt;div&gt;\n                        &lt;button class="btn btn-primary fw-bold no-above-text" ng-click="openAuthForm()"&gt;User Sign up&lt;/button&gt;\n                    &lt;/div&gt;\n                    &lt;div&gt;\n                        &lt;div&gt;Already a member?&lt;/div&gt;\n                        &lt;button class="btn btn-outline-primary fw-bold" ng-click="openSignin()"&gt;Log in&lt;/button&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;header-dropdown-logout-menu class="d-md-none" ng-if="!user_current &amp;&amp; !showSiteHeader"&gt;&lt;/header-dropdown-logout-menu&gt;\n\n                &lt;div class="d-flex align-items-center csf_header__menu_buttons" ng-if="user_current"&gt;\n                    &lt;div&gt;\n                        &lt;a ng-if="user_current.type === \'model\'" class="csf_header__stream_button nav-link" href="/stream/create"\n                           uib-tooltip="Live Stream" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                           &gt;\n                            &lt;span class="icon icon-fan_stream align-middle"&gt;&lt;/span&gt;\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                    &lt;a ng-if="user_current.type === \'model\'" class="csf_header__post_button nav-link"\n                       ng-href="{{ createPostUrl }}"\n                       uib-tooltip="Create a post" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                       &gt;\n                        &lt;span class="icon icon-fan_write-plain align-middle"&gt;&lt;/span&gt;\n                    &lt;/a&gt;\n                    &lt;a ng-if="user_current.type === \'model\'" class="csf_header__broadcast_button nav-link"\n                       href="/account/direct-message/inbox/open-broadcast"\n                       ng-click="openBroadcast($event)"\n                       uib-tooltip="Send a DM" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                       &gt;\n                        &lt;span class="icon icon-fan_dm align-middle"&gt;&lt;/span&gt;\n                    &lt;/a&gt;\n                    &lt;a class="item csf_header__dm_button btn nav-link header-nav-item-dm position-relative"\n                       href="/account/direct-message"\n                       uib-tooltip="Inbox" tooltip-placement="bottom" tooltip-enable="isTooltipEnabled"\n                       &gt;\n                        &lt;span class="icon icon-fan_inbox align-middle"&gt;&lt;/span&gt;\n                        &lt;span ng-if="directMessageCommon.unreadUserId.length &gt; 0" class="position-absolute badge rounded-pill"&gt;\n                            {{ directMessageCommon.unreadUserId.length | maxBubble }}\n                        &lt;/span&gt;\n                        &lt;span class="csf_header__dm_button__growl" ng-class="{\'csf_header__dm_button__growl--visible\': directMessageCommon.showDmGrowl}" ng-if="directMessageCommon.unreadUserId.length &gt; 0"&gt;\n                            You have\n                            &lt;strong&gt;{{ directMessageCommon.unreadUserId.length | maxBubble }} unread {{ directMessageCommon.unreadUserId.length === 1 ? \'message\' : \'messages\' }}&lt;/strong&gt;\n                        &lt;/span&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n\n                &lt;header-dropdown-menu ng-if="user_current" user="user_current"&gt;&lt;/header-dropdown-menu&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/nav&gt;\n&lt;/div&gt;\n'}}]);r.a.module("fans_service_post_live",[]).directive("postLive",["$location","ModelService",function(e,t){return{link:function(n){n.goTo=function(){n.model.can_edit||n.model.is_gift||n.model.is_subscribed||n.model.is_trial?e.path("/stream/view/"+n.model.user.username):t.openSubscribeBenefits(n.model)}},replace:!0,restrict:"E",scope:{model:"&lt;",textClass:"&lt;"},template:'&lt;div class="profile_tabs_content profile_tabs_content_post" ng-click="goTo()"&gt;\n    &lt;div class="csf_profile__content_main_post csf_profile_live_stream position-relative"&gt;\n        &lt;div class="csf_post card"&gt;\n            &lt;div class="card-header d-flex justify-content-between align-items-flex-start"&gt;\n                &lt;div class="d-flex"&gt;\n                    &lt;a&gt;&lt;avatar user="model.user"&gt;&lt;/avatar&gt;&lt;/a&gt;\n                    &lt;div&gt;\n                        &lt;a class="csf_display_name extra-font {{ textClass || \'\' }}"&gt;\n                            {{ model.user.display_name }}\n                        &lt;/a&gt;\n                        &lt;a class="csf_display_live_stream"&gt;\n                            &lt;span&gt;live&lt;/span&gt;stream\n                        &lt;/a&gt;\n                        &lt;small class="text-muted"&gt;Live Now&lt;/small&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div class="post-menu position-relative"&gt;\n                &lt;a&gt;\n                    &lt;div back-img="{{ model.chat.poster }}" class="live-img img-responsive w-100"&gt;&lt;/div&gt;\n                    &lt;div class="live rounded extra-font position-absolute lh-1"&gt;Live&lt;/div&gt;\n                &lt;/a&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}}]);var N=o("1Xrw");r.a.module("fans_service_post_paginator",[]).factory("PostPaginator",["$http","$httpParamSerializer",function(e,t){var n=function(e){var t=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:"unpinned",n=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]&amp;&amp;arguments[2];this.delayUpdate=n,this.isEnd=!1,this.isLoading=!1,this.items=[],this.lastId=null,this.modelUsername=e,this.status=t,this.loadIndex=1};return n.prototype.nextPage=function(n){var o=this;if(!o.isEnd&amp;&amp;o.isLoading!==n){o.isLoading=n;var i={before_time:this.lastTime,limit:12,status:this.status};e.get("/api/v1/user/"+o.modelUsername+"/post?"+t(i)).then((function(e){return o.items.length&amp;&amp;o.delayUpdate?new Promise((function(t){setTimeout(t,3e3,e)})):e})).then((function(e){if(o.loadIndex===n){for(var t=0;t&lt;e.data.length;t++)o.items.push(e.data[t]),o.lastTime=e.data[t].post.created_at;o.isEnd=e.data.length&lt;i.limit,o.isLoading=!1}}))}},n.prototype.refresh=function(){this.isEnd=!1,this.items=[],this.lastTime=null,this.loadIndex+=1,this.nextPage(this.loadIndex)},n}]);var j=o("RtXU");r.a.module("fans_service_profile_avatar",[]).service("ProfileAvatarService",["ngDialog","toaster",function(e,t){this.editAvatar=function(t){e.open({className:"modal-full-mobile",controller:["$element","$http","$rootScope","$scope","FileUploader","toaster","utils",function(e,n,o,i,r,a,s){i.hasAvatar=null!=t.fans_avatar_url,i.user=t,i.deleteAvatar=function(){n.delete("/api/v1/account/avatar?user_id="+t.id).then((function(){i.closeThisDialog(),a.pop("success","Success","Avatar deleted."),window.location.reload()}))},i.fileLoadingPercent=!1,i.fileClick=function(){e.find("input")[0].click()},i.fileUploader=new r.noCSRFFileUploader({onAfterAddingFile:function(t){if(s.isFileTypeAllowed(t.file,["image"])){var n=t.file.name.replaceAll(/[^a-zA-Z0-9-_.]/g,"");n.length&amp;&amp;"."!==n[0]||(n="default"+(new Date).getTime()+n),t.file=new File([t.file],n,{type:t.file.type}),i.fileUploader.uploadItem(t),e.find("input")[0].value=""}},onErrorItem:function(e,t,n,o){i.fileLoadingPercent=!1,"image/gif"===e.file.type?a.pop("error","Error","Animated GIF images cannot be uploaded as your avatar."):a.pop("error","Error",t.message)},onProgressAll:function(e){i.fileLoadingPercent=e},onSuccessItem:function(e,r){var s=new FormData;s.append("tkn",r.token),s.append("srv_id",r.server),s.append("user_id",t.id),n.post("/api/v1/account/avatar",s,{headers:{"Content-Type":void 0}}).then((function(){i.closeThisDialog(),a.pop("success","Success","Avatar uploaded."),o.$broadcast("profile.avatar.upload")}))},url:"".concat(UPLOAD_HOST,"/api/v1/image/fans-avatar")}),n.get("/api/v1/upload-token").then((function(e){i.fileUploader.headers["Upload-Token"]=e.data.token}))}],template:j.a})}}]);r.a.module("state_profile",[U.a,"fans_profile_cover","fans_profile_header",_.a,F.a,"fans_service_post_live",N.a,"fans_service_post_paginator","fans_service_profile_avatar","fans_service_seo"]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){var o,i,r;CURRENT_USER?"model"===CURRENT_USER.type?(o="StateProfileModelCtrl",i={currentUser:n.requireModelUser,loadController:t.profile_model},r=I.a):(o="StateProfileUserCtrl",i={currentUser:n.requireUser,loadController:t.profile_user},r=I.a):(o="StateProfileLoggedOutCtrl",i={},r="&lt;profile&gt;&lt;/profile&gt;\n"),SITE.root_user?e.when("/",{controller:o,template:r,resolve:Object.assign({},i)}).when("/audios",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="audios"}]})}).when("/customize",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="subscriptions"}]})}).when("/customize/about",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="about"}]})}).when("/customize/settings",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="settings"}]})}).when("/customize/subscriptions",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="subscriptions"}]})}).when("/free",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="free"}]})}).when("/photos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="photos"}]})}).when("/posts",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="posts"}]})}).when("/posts/create",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="posts",e.current.params.action="create_post"}]})}).when("/videos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="videos"}]})}).when("/premium/audios",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="audio_dm"}]})}).when("/premium/photos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="photo_dm"}]})}).when("/premium/videos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="video_dm"}]})}).when("/premium",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="video_dm"}]})}):e.when("/:username",{controller:o,template:r,resolve:Object.assign({},i)}).when("/:username/audios",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="audios"}]})}).when("/:username/free",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="free"}]})}).when("/:username/manager",{controller:"StateProfileManagerCtrl",template:'&lt;div class="csf_setting"&gt;\n    &lt;div class="csf_setting__main text-center"&gt;\n        &lt;h2 class="lh-1 mt-md-3 p-md-0 fw-light my-2 fs-2 mb-4"&gt;Become &lt;b&gt;{{ params.username }}&lt;/b&gt; Manager&lt;/h2&gt;\n\n        &lt;div ng-if="state === \'ok\'"&gt;\n            &lt;p&gt;&lt;b&gt;By accepting you will:&lt;/b&gt;&lt;/p&gt;\n            &lt;ul&gt;\n                &lt;li&gt;be able to manage "{{ params.username }}" account.&lt;/li&gt;\n                &lt;li&gt;receive the {{ params.fee }}% of "{{ params.username }}" earnings on {{ platform }}&lt;/li&gt;\n            &lt;/ul&gt;\n            &lt;a class="btn btn-outline-primary fw-bold" href ng-click="accept()"&gt;\n                {{ is_loading ? \'Loadingâ€¦\' : \'Accept and Continue\' }}\n            &lt;/a&gt;\n        &lt;/div&gt;\n\n        &lt;div class="text-danger" ng-if="state === \'error_url_not_valid\'"&gt;\n            &lt;b&gt;This URL is not valid. Please check it and retry.&lt;/b&gt;\n        &lt;/div&gt;\n\n        &lt;div ng-if="state === \'error_not_model\' &amp;&amp; !hasApplied"&gt;\n            &lt;p&gt;&lt;b&gt;Please setup a creator account to continue.&lt;/b&gt;&lt;/p&gt;\n            &lt;a class="btn btn-outline-primary fw-bold" ng-href="/creator/{{ setupCreatorUrl }}"&gt;\n                Setup Creator Account\n            &lt;/a&gt;\n        &lt;/div&gt;\n\n        &lt;div ng-if="state === \'error_not_model\' &amp;&amp; hasApplied"&gt;\n            &lt;p&gt;&lt;b&gt;Your creator account is in pending review.&lt;br /&gt;You\'ll be able to accept the manager invite as soon as the account is approved.&lt;/b&gt;&lt;/p&gt;\n        &lt;/div&gt;\n\n        &lt;div ng-if="state === \'error_login_required\'"&gt;\n            &lt;p&gt;&lt;b&gt;Please login to continue.&lt;/b&gt;&lt;/p&gt;\n            &lt;a class="btn btn-outline-primary fw-bold" href ng-click="open_login()"&gt;Login&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}).when("/:username/photos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="photos"}]})}).when("/:username/posts/create",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="posts",e.current.params.action="create_post"}]})}).when("/:username/posts",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="posts"}]})}).when("/:username/videos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="videos"}]})}).when("/:username/premium/audios",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="audio_dm"}]})}).when("/:username/premium/photos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="photo_dm"}]})}).when("/:username/premium/videos",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="video_dm"}]})}).when("/:username/premium",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="premium",e.current.params.subSelector="video_dm"}]})}).when("/:username/customize/subscriptions",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="subscriptions"}]})}).when("/:username/customize/about",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="about"}]})}).when("/:username/customize/settings",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="settings"}]})}).when("/:username/customize",{controller:o,template:r,resolve:Object.assign({},i,{params:["$route",function(e){e.current.params.selector="customize",e.current.params.subSelector="subscriptions"}]})})}]).filter("formatBulk",["utils",function(e){return e.number.formatBulk}]).filter("maxBubble",["utils",function(e){return e.number.maxBubble}]).filter("subscriptionMonths",(function(){return function(e){return e.replace(/([0-9]+)(mo)/g,"$1 months")}})).controller("StateProfileLoggedOutCtrl",(function(){})).controller("StateProfileCtrl",["$anchorScroll","$location","$rootScope","$route","toaster","$scope","$window","$http","$timeout","accountService","ModelService","PostPaginator","security","seo","whitelabel","utils","ngDialog","CurrencyMaskUtils","localStorageService",function(t,n,o,i,a,s,c,l,u,d,p,f,m,g,v,b,_,y,$){s.isLoading=!0,s.isLoadingCustomize=!0,s.showLoadMore=!1,s.model=!1,s.freeFollowLoading=!1,s.tipProcessing=!1,s.timeouts=[],s.user_current=m.getCurrent().user,s.icon_instagram=SITE.media_host+"/media/fans/assets/social/icon-instagram.png",s.icon_snapchat=SITE.media_host+"/media/fans/assets/social/icon-snapchat.png",s.icon_tiktok=SITE.media_host+"/media/fans/assets/social/icon-tiktok.png",s.icon_twitter=SITE.media_host+"/media/fans/assets/social/icon-twitter.png",s.show_avatar_alert=!0,s.show_gift_alert=!0,s.show_trial_alert=!0,s.isNoEmail=s.user_current&amp;&amp;b.string.isNoEmail(s.user_current.email),s.emailNeedsConfirming=s.user_current&amp;&amp;!s.user_current.email_confirmed,s.sendEmailValidation=m.sendEmailValidation;function w(e){u((function(){n.hash("create_post"),t(),n.hash("")}),e)}s.show_twitter_alert="fantime"===SITE.signup_source&amp;&amp;!b.storage.get("fp_twitter_alert"),s.twitterAlert=function(){s.show_twitter_alert=!s.show_twitter_alert,b.storage.set("fp_twitter_alert",1,2592e3)},s.headerLogo=null,s.security=m.getCurrent(),s.openAuthForm=m.openAuthForm,s.openSignin=m.openSignin,s.logout=m.logout,s.isShowFullBio=!1,s.showFullBio=function(){s.isShowFullBio=!0},s.isBioOverflow=!1,s.tabs={selector:i.current.params.selector,subSelector:i.current.params.subSelector,select:function(e){if(s.model){var t=s.model.can_edit?"customize":"posts",n="_default_"===e||e===t;this.selector=n?t:e,this.checkSubSelect(),(s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_subscribed_free||s.model.is_trial)&amp;&amp;this.setTabUri(n?null:e)}},subSelect:function(e){!(arguments.length&gt;1&amp;&amp;void 0!==arguments[1])||arguments[1];this.subSelector=e,(s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_subscribed_free||s.model.is_trial)&amp;&amp;this.setTabUri(this.selector)},checkSubSelect:function(){if(-1!==["audios","photos","videos"].indexOf(this.selector)){"photos"===this.selector?this.count.photo:"videos"===this.selector?this.count.video:"audios"===this.selector&amp;&amp;this.count.audio,this.subSelect("feed",!1)}else["premium"].includes(this.selector)&amp;&amp;!["audio_dm","photo_dm","video_dm"].includes(this.subSelector)?this.count.photo&amp;&amp;this.count.photo.dm&amp;&amp;(!this.count.video||this.count.video&amp;&amp;!this.count.video.dm)?this.subSelect("photo_dm",!1):this.subSelect("video_dm",!1):["customize"].includes(this.selector)&amp;&amp;this.subSelect("subscriptions",!1)},setTabUri:function(e){var t=e||"";t=SITE.root_user?t?"/"+t:"":"/"+i.current.params.username+(t?"/"+t:""),"premium"===this.selector?"audio_dm"===this.subSelector?t+="/audios":"photo_dm"===this.subSelector?t+="/photos":this.subSelector&amp;&amp;"video_dm"!==this.subSelector||(t+="/videos"):"customize"===this.selector&amp;&amp;(t+=e?"/"+this.subSelector:"/customize/"+this.subSelector),n.path(t,!1)},count:{audio:null,photo:null,video:null}},s.audioCountUpdated=function(e){s.tabs.count.audio=e},s.photoCountUpdated=function(e){s.tabs.count.photo=e},s.videoCountUpdated=function(e){s.tabs.count.video=e},i.current.params.action&amp;&amp;"create_post"===i.current.params.action&amp;&amp;(d.verifyPayoutStatus(),w(800)),s.$on("createAPost",(function(){w(0)})),s.$on("logo.update",(function(e,t){s.user_current.id===s.model.user.id&amp;&amp;(s.headerLogo=SITE.media_host+t.logo)}));var S=SITE.root_user&amp;&amp;SITE.root_user.username||i.current.params.username;s.subscription_button_valerieloureda="valerieloureda"===S,p.getByUsername(S,{promote:1,wl_config:1}).then((function(t){var d;function w(){s.editingBio=!1,s.editingSocials=!1,s.editingSocials=!1,s.editingSubscriptionPrice=!1,s.editingSubscriptionPackage6=!1,s.editingSubscriptionPackage12=!1,s.editingSellSnapchat=!1}s.DEFAULTS=b.colors(),s.model=t,s.audioCountUpdated({dm:s.model.post_count.audio_dm_gallery,feed:s.model.post_count.audio,total:s.model.post_count.audio}),s.photoCountUpdated({dm:s.model.post_count.picture_dm_gallery,feed:s.model.post_count.picture,total:s.model.post_count.picture}),s.videoCountUpdated({dm:s.model.post_count.video_dm_gallery,feed:s.model.post_count.video,total:s.model.post_count.video}),"premium"===s.tabs.selector&amp;&amp;"video_dm"===s.tabs.subSelector&amp;&amp;!s.model.post_count.video_dm_gallery&amp;&amp;s.model.post_count.picture_dm_gallery&amp;&amp;s.tabs.subSelect("photo_dm"),s.tabs.hasAccess=s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_trial,s.tabs.hasAccessFree=s.model.is_subscribed_free,!s.tabs.hasAccess&amp;&amp;(!["free","posts","premium"].includes(s.tabs.selector)||"premium"===s.tabs.selector&amp;&amp;!s.tabs.hasAccessFree)||"free"===s.tabs.selector&amp;&amp;!s.model.post_count.free?s.tabs.select("posts"):s.tabs.selector||s.tabs.select("_default_"),i.current.params.selector&amp;&amp;((s.tabs.hasAccess||["free","premium"].includes(i.current.params.selector)&amp;&amp;("premium"!==i.current.params.selector||s.tabs.hasAccessFree))&amp;&amp;("free"!==i.current.params.selector||s.model.post_count.free)||s.tabs.setTabUri(null)),t.wl_config?(s.configLinkColor=t.wl_config.link_color,s.configMainFollowColor=t.wl_config.main_follow_color,s.configMessageColor=t.wl_config.message_color,s.configMessageTextColor=t.wl_config.message_text_color,s.configTextColor=t.wl_config.text_color,t.wl_config.logo&amp;&amp;(s.headerLogo=SITE.media_host+t.wl_config.logo),t.wl_config.og_image&amp;&amp;g.setOgImage(t.wl_config.og_image),SITE.root_user&amp;&amp;t.wl_config.warning_enabled&amp;&amp;!$.get("warning_agreed")&amp;&amp;!i.current.params.noterms&amp;&amp;_.openConfirm({template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;  \n        &lt;div class="modal-body"&gt;\n            &lt;img ng-if="headerLogo" ng-src="{{ headerLogo | webp }}" class="d-block mx-auto mb-3 img-fluid" /&gt;\n            &lt;p&gt;\n                By accessing or purchasing any content through this platform,\n                you are obtaining a personal, non-assignable license to view such content through this platform.\n            &lt;/p&gt;\n            &lt;p&gt;\n                Unauthorized copy and/or distribution of the content on this platform is a violation of law\n                and will be pursued accordingly.\n            &lt;/p&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-footer text-center"&gt;\n            &lt;button class="btn btn-dark btn-full-w" ng-click="confirm()"&gt;\n                I AGREE - CLICK HERE TO ENTER THE SITE\n            &lt;/button&gt;\n            &lt;a href="http://www.google.com?exitPopup=1" rel="nofollow" class="mx-auto d-block mt-3"&gt;\n                &lt;small&gt;Leave&lt;/small&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;  \n',className:"ngdialog-theme-default warning-dialog",scope:s,closeByEscape:!1,showClose:!1,closeByDocument:!1}).then((function(e){$.set("warning_agreed",!0)})),SITE.root_user||(g.setTitle(t.wl_config.display_name_path),g.setMetaDescription(t.wl_config.meta_description))):(s.configLinkColor=null,s.configMainFollowColor=null,s.configTextColor=null),s.hasPost=s.model.post_count.post&gt;0,s.showLikes=s.model.post_count.likes&gt;1,s.promote=t.promote,s.configLinkColor&amp;&amp;(s.configPinkHover=b.hexAToRGBA(s.configLinkColor,.8)),s.configMainFollowColor&amp;&amp;(s.configBlueHover=b.hexAToRGBA(s.configMainFollowColor,.8)),d="free"===s.tabs.selector?"unpinned-free":s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_trial||s.model.is_subscribed_free?"unpinned":"both",s.postPaginator=new f(s.model.user.username,d,SITE.root_user&amp;&amp;!m.isAuthenticated()),s.reloadPosts=function(){s.postPaginator.refresh(),s.model.can_edit&amp;&amp;(s.loadScheduledPosts(),s.loadAutoPostsCount()),(s.model.is_gift||s.model.is_subscribed||s.model.is_trial||s.model.can_edit)&amp;&amp;s.loadPinnedPosts(),s.showLoadMore=!1},s.subscribe=p.subscribe,s.openSubscribeBenefits=function(e){s.pendingVerification?a.pop("error","Error","Profile Pending Verification"):p.openSubscribeBenefits(s.model,e)},s.openSubscribeBenefitsLock=function(e){s.pendingVerification?a.pop("error","Error","Profile Pending Verification"):p.openSubscribeBenefits(e)},s.openFollowFree=function(){var e=!(arguments.length&gt;0&amp;&amp;void 0!==arguments[0])||arguments[0];s.pendingVerification?a.pop("error","Error","Profile Pending Verification"):m.isAuthenticated()?m.currentUser.has_purchase?s.freeFollowLoading||(s.freeFollowLoading=!0,l.post("/api/v1/user/"+s.model.user.username+"/follow").then((function(e){n.search("follow_free",null),i.reload()})).catch((function(e){a.pop("error","Error",e.data&amp;&amp;e.data.error||"")})).finally((function(){s.freeFollowLoading=!1}))):e&amp;&amp;(n.search("follow_free","1"),p.followFreePayment(s.model.user.username)):e&amp;&amp;p.openSubscribeBenefits(s.model,null,!0)},s.reactivateSubscription=function(){p.reactivateSubscription(s.model.user.username,"access","expiring").then((function(e){s.model.subscription_end_at=null})).catch((function(){}))},s.subscribeSnapchat=function(){s.pendingVerification?a.pop("error","Error","Profile Pending Verification"):p.subscribeSnapchat.apply(null,arguments)},s.tip=function(){if(s.tipProcessing=!0,s.pendingVerification)return s.tipProcessing=!1,void a.pop("error","Error","Profile Pending Verification");p.tip.apply(null,arguments).then((function(){s.tipProcessing=!1}))},s.openTip=function(){s.tip(s.model.user.username)},"1"===n.search().follow_free&amp;&amp;s.openFollowFree(!1),s.showTipButton=v.showTipButton(s.model.user.username),s.tipMenuProcessing=[],s.isTipMenuProcessing=function(e){return s.tipMenuProcessing.includes(e.id)},s.tipMenuTip=function(e){s.tipMenuProcessing.includes(e.id)||(s.tipMenuProcessing.push(e.id),p.tip(s.model.user.username,"menu",e.id,{amount:y.toIntCents(e.price),description:e.description}).then((function(){s.tipMenuProcessing=s.tipMenuProcessing.filter((function(t){return t!==e.id}))})))},s.autoPostsCount=0,s.loadAutoPostsCount=function(){l.get("/api/v1/user/calendar/auto-post/pending/count").then((function(e){s.autoPostsCount=e&amp;&amp;e.data&amp;&amp;e.data.count?e.data.count:0})).catch((function(e){a.pop("error","Error",e.data&amp;&amp;e.data.error||"")}))},s.scheduledPostsCount=0,s.loadScheduledPostsCount=function(){l.get("/api/v1/user/calendar/scheduled-post/count").then((function(e){s.scheduledPostsCount=e&amp;&amp;e.data&amp;&amp;e.data.count?e.data.count:0})).catch((function(e){a.pop("error","Error",e.data&amp;&amp;e.data.error||"")}))},s.scheduledPosts=[],s.loadScheduledPosts=function(){l.get("/api/v1/user/"+s.model.user.username+"/post",{params:{status:"scheduled"}}).then((function(e){s.scheduledPosts=e.data})).catch((function(){a.pop("error","Error",e.data&amp;&amp;e.data.error||"")}))},s.pinnedPosts=[],s.pinnedPostsIds=[],s.loadPinnedPosts=function(){l.get("/api/v1/user/"+s.model.user.username+"/post",{params:{status:"free"===s.tabs.selector?"pinned-free":"pinned"}}).then((function(e){s.pinnedPosts=e.data,s.pinnedPostsIds=e.data.map((function(e){return e.post.id}))}))},s.winbackPosts=[],s.loadWinbackPosts=function(){l.get("/api/v1/user/"+s.model.user.username+"/post",{params:{status:"winback"}}).then((function(e){s.winbackPosts=e.data})).catch((function(){}))},s.model.can_edit&amp;&amp;(s.loadScheduledPosts(),s.loadAutoPostsCount()),(s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_trial||s.model.is_subscribed_free)&amp;&amp;s.loadPinnedPosts(),s.model.can_edit||s.model.is_gift||s.model.is_subscribed||s.model.is_trial||!s.model.can_winback||s.loadWinbackPosts(),s.tip_menu=[],s.loadTipMenu=function(){l.get("/api/v1/user/tip_menu/"+s.model.user.username).then((function(e){s.tip_menu=e.data}))},(s.model.can_edit||!s.model.setting.tip_menu_disabled&amp;&amp;(s.model.is_gift||s.model.is_subscribed||s.model.is_trial))&amp;&amp;s.loadTipMenu(),s.isOwner=m.isAuthenticated()&amp;&amp;s.security.user.id===s.model.user.id,s.isShowFullBio=s.model.is_gift||s.model.is_subscribed||s.model.is_trial,s.pendingVerification=!s.model.compliance_status||!s.model.compliance_status.status||"approved"!==s.model.compliance_status.status,s.canSubscribe=s.hasPost&amp;&amp;!s.model.is_subscribed&amp;&amp;!s.pendingVerification,s.canSubscribeFree=s.model.can_subscribe_free&amp;&amp;!s.model.is_subscribed_free&amp;&amp;!s.pendingVerification,s.canSubscribeSnapchat=s.model.setting.sell_snapchat&amp;&amp;s.model.setting.sell_snapchat.on_sale&amp;&amp;!s.model.is_subscribed_snapchat&amp;&amp;!s.pendingVerification,s.canMessage=!s.isOwner&amp;&amp;(s.model.is_gift||s.model.is_subscribed_snapchat||s.model.is_subscribed||s.model.is_trial),s.newPost={user_id:s.model.user.id},s.twitterReconnect=function(){m.signInTwitter()},s.utils=b,s.$on("post.update",(function(e,t){if(t.post.user_id===s.model.user.id&amp;&amp;["feed","feed_purchase_free","fund","live_stream","poll"].includes(t.post.type)){if("add"===t.operation)s.newPost={user_id:s.model.user.id},s.model.post_count.post++;else if("delete"===t.operation)s.model.post_count.post--;else if("notify-new"===t.operation)return void(s.showLoadMore=!0);s.postPaginator.refresh(),s.model.can_edit&amp;&amp;u((function(){s.loadScheduledPosts(),s.loadAutoPostsCount()}),500),(s.model.is_gift||s.model.is_subscribed||s.model.is_trial||s.model.can_edit)&amp;&amp;s.loadPinnedPosts()}})),s.$on("profile.update",(function(e,t){t.post&amp;&amp;t.post.user_id&amp;&amp;t.post.user_id!==s.model.user.id||(s.postPaginator.refresh(),s.model.can_edit&amp;&amp;(s.loadScheduledPosts(),s.loadAutoPostsCount()),(s.model.is_gift||s.model.is_subscribed||s.model.is_trial||s.model.can_edit)&amp;&amp;s.loadPinnedPosts())})),s.$on("payment",(function(e,t){"fans_subscription"===t.type&amp;&amp;t.model_id===s.model.user.id&amp;&amp;c.location.reload()})),s.coverClick=function(){if(!s.model.can_edit&amp;&amp;!s.model.is_subscribed)if("free"!==s.tabs.selector)s.openSubscribeBenefits();else{if(s.model.is_subscribed_free)return;s.openFollowFree()}},u((function(){var e;(e=document.getElementById("csf_profile__bio_content"))&amp;&amp;(e.offsetHeight&lt;e.scrollHeight||e.offsetWidth&lt;e.scrollWidth)&amp;&amp;(s.isBioOverflow=!0)})),s.model.can_edit?(s.clipboard_error=function(e){a.pop("error","Error","Your browser does not support the copy function. Please select and copy it manually.")},s.clipboard_success=function(e){a.pop("success","Link copied")},s.profileFreeUrlFull=v.profileUrlFull(s.model.user.username,"free"),s.profileFreeUrl=v.profileUrl(s.model.user.username,"free"),s.profileUrlDomainList=[],s.profileUrlRootDomain=null,s.profileUrlSelectedDomain=null,s.profileUrlSelected=null,s.profileUrlSelectedFull=null,s.setProfileUrlSelected=function(e,t){s.profileUrlSelectedDomain=e,s.profileUrlSelected=t?s.profileUrlSelectedDomain:s.profileUrlSelectedDomain+"/"+s.model.user.username,s.profileUrlSelectedFull="https://"+s.profileUrlSelected},s.freeProfileRemove=function(){_.openConfirm({className:"ngdialog--confirm",data:{btn_cancel:"Cancel",btn_confirm:"Yes, remove free profile",text:"Your free profile will no longer be accessible and all free followers will be removed",title:"Remove Free Profile"},template:h.a}).then((function(e){l.delete("/api/v1/account/free-profile").then((function(e){s.dialogService.alert("Remove Free Profile","Your free profile is being removed. This may take a couple minutes. You can create another free profile in the future by creating any new post that is visible to free followers.")}))})).catch(r.a.noop)},l.get("/api/v1/account/customize",{params:{user_id:s.user_current.id}}).then((function(e){var t;if(s.data=e.data,e.data.whitelabel&amp;&amp;e.data.whitelabel.custom_domain&amp;&amp;e.data.whitelabel.custom_domain_status&amp;&amp;"online"===e.data.whitelabel.custom_domain_status&amp;&amp;(s.profileUrlRootDomain=e.data.whitelabel.custom_domain),s.profileUrlDomainList=e.data.domain_list,s.profileUrlRootDomain)s.setProfileUrlSelected(s.profileUrlRootDomain,!0);else{var n=(SITE.subdomain?SITE.subdomain+".":"")+SITE.domain;-1!==(t=s.profileUrlDomainList.indexOf(n))?s.setProfileUrlSelected(s.profileUrlDomainList[t],!1):s.setProfileUrlSelected(s.profileUrlDomainList[0],!1)}s.isLoadingCustomize=!1})).catch((function(e){s.isLoadingCustomize=!1}))):s.isLoadingCustomize=!1,s.logoClick=function(){"/"===window.location.pathname&amp;&amp;s.reloadPosts()},s.$on("post.thumb",(function(e,t){var n;if((n=s.pinnedPosts.find((function(e){return e.post.id===t.post_id})))||(n=s.scheduledPosts.find((function(e){return e.post.id===t.post_id}))),n||(n=s.pendingAutoPosts.find((function(e){return e.post.id===t.post_id}))),n||(n=s.postPaginator.items.find((function(e){return e.post.id===t.post_id}))),n){var o=n.post.media.find((function(e){return e.id===t.media_id}));o&amp;&amp;u((function(){o.thumb_url=o.thumb_url+"&amp;1"}),1e4)}})),s.directMessageService=s.$parent&amp;&amp;s.$parent.directMessageService,n.search().dm_id&amp;&amp;s.directMessageService.openChat(s.model.user.id,n.search().dm_id),s.openDirectMessage=function(){s.directMessageService.openChat(s.model.user.id)},s.openPurchasePost=function(e,t){s.$parent.postService.openPurchasePost(e,t.user)},s.dialogService=s.$parent&amp;&amp;s.$parent.$parent&amp;&amp;s.$parent.$parent.dialogService,s.mentionsService=s.$parent&amp;&amp;s.$parent.$parent&amp;&amp;s.$parent.$parent.mentionsService,s.profileService=s.$parent&amp;&amp;s.$parent.$parent&amp;&amp;s.$parent.$parent.profileService,s.editDisplayName=s.profileService&amp;&amp;s.profileService.editDisplayName,s.editTipMenu=function(e){s.profileService.editTipMenu(e,s.tip_menu)},s.updateComments=function(e){s.profileService.updateComments(e,s,o)},s.commentsEnabled=!s.model.setting.post_comments_disabled,s.editingBio=!1,s.saveBioTxt=function(e){w(),s.editingBio=!1,s.profileService.editBioTxt(e,s)},s.editBio=function(){s.orgFansBio=r.a.copy(s.model.content.fans_bio),s.editingBio=!s.editingBio,s.editingBio&amp;&amp;u((function(){document.querySelector("#editBio").focus()}),500)},s.cancelEditingBio=function(){s.model.content.fans_bio=s.orgFansBio,w()},s.editingSocials=!1,s.saveSocials=function(e){w(),s.profileService.editSocials(e,s.editSocials)},s.editSocials=function(){s.orgSocialsSettings=r.a.copy(s.model.setting),s.editingSocials=!s.editingSocials},s.cancelEditingSocials=function(){s.model.setting=s.orgSocialsSettings,w()},s.editingSubscriptionPrice=!1,s.subscriptionData={prices:null,subscription_price:y.toIntCents(s.model.setting.subscription_price)},s.saveSubscriptionPrice=function(e){s.subscriptionData.subscription_price&lt;=0?_.openConfirm({className:"ngdialog--confirm",data:{btn_cancel:"Cancel",btn_confirm:"Yes, make it free",text:"This will make your profile 100% free for all users",title:"Making subscription free"},template:h.a}).then((function(t){w(),s.profileService.editSubscriptionPrice(s,e,(function(){i.reload()}))})).catch(r.a.noop):(w(),s.profileService.editSubscriptionPrice(s,e,(function(){i.reload()})))},s.editSubscriptionPrice=function(){if(s.editingSubscriptionPrice)return!1;w(),s.orgSubscriptionPrice=r.a.copy(s.model.setting.subscription_price),s.editingSubscriptionPrice=!s.editingSubscriptionPrice},s.cancelEditingSubscriptionPrice=function(){w(),s.model.setting.subscription_price=s.orgSubscriptionPrice},s.editingSubscriptionPackage6=!1,s.editingSubscriptionPackage12=!1;s.percentages=["off","0","5","10","15","20","25","30","35","40","45","50","55","60","65","70","75"].map((function(e){return{key:"off"===e?"No Package":e+"%",value:e}})),s.subscription_price=s.model.setting.subscription_price,s.discounts={subscription_discount_6mo:"off",subscription_discount_12mo:"off"},s.model.setting.subscription_discount&amp;&amp;(s.model.setting.subscription_discount["6mo"]&amp;&amp;(s.discounts.subscription_discount_6mo=""+s.model.setting.subscription_discount["6mo"].percent),s.model.setting.subscription_discount["12mo"]&amp;&amp;(s.discounts.subscription_discount_12mo=""+s.model.setting.subscription_discount["12mo"].percent)),s.editSubscriptionPackage=function(e){if(w(),6===e){if(s.editingSubscriptionPackage6)return!1;s.editingSubscriptionPackage6=!s.editingSubscriptionPackage6}else{if(s.editingSubscriptionPackage12)return!1;s.editingSubscriptionPackage12=!s.editingSubscriptionPackage12}},s.saveSubscriptionPackage=function(e){s.profileService.editSubscriptionPackage(e,s,(function(){i.reload()}))},s.cancelEditSubscriptionPackage=function(e){6===e?s.editingSubscriptionPackage6=!s.editingSubscriptionPackage6:s.editingSubscriptionPackage12=!s.editingSubscriptionPackage12},s.editingSellSnapchat=!1;var S=null!==s.model.setting.sell_snapchat?y.toIntCents(s.model.setting.sell_snapchat.price):999;if(s.snapchatData={prices:null,subscription_price:S},s.snapchatData.on_sale=null!==s.model.setting.sell_snapchat&amp;&amp;!0===s.model.setting.sell_snapchat.on_sale,s.snapchatData.snapchat_username=null!==s.model.setting.sell_snapchat?s.model.setting.sell_snapchat.snapchat_username:"",s.editSellSnapchat=function(){w(),s.editingSellSnapchat=!s.editingSellSnapchat},s.toggleEnableSnapchat=function(){s.snapchatData.on_sale?_.openConfirm({className:"ngdialog--confirm",data:{btn_cancel:"Cancel",btn_confirm:"Yes, disable",text:"All active subscriptions will be cancelled.",title:"Disable snapchat"},template:h.a}).then((function(e){s.snapchatData.on_sale=!1})):u((function(){s.snapchatData.on_sale=!0}),10)},s.saveSellSnapchat=function(e){s.profileService.editSellSnapchat(e,s,(function(){i.reload()}))},s.cancelSellSnapchat=function(){w()},s.editTrialDuration=function(e){return w(),s.profileService.editTrialDuration(e),!1},s.winbackEnabled=!1,s.editWinback=function(e){w(),s.profileService.editWinback(e)},s.enableWinback=function(){s.winbackEnabled,s.winbackEnabled},s.editWelcomeAutoDM=s.profileService&amp;&amp;s.profileService.editWelcomeAutoDM,s.model.setting.subscription_discount){var k={};Object.keys(s.model.setting.subscription_discount).forEach((function(e){k[e]=s.model.setting.subscription_discount[e]})),s.subscriptionPackages=k}else s.subscriptionPackages=null;var x=b.storage.getObject("open_subscribe_benefits");Object.keys(x).length&amp;&amp;(b.storage.remove("open_subscribe_benefits"),x.isFree||u((function(){s.openSubscribeBenefits(x.duration)}),1e3))})).catch((function(e){s.error=e.error,s.noOops=e.no_oops})).finally((function(){s.isLoading=!1}))}]).controller("StateProfileManagerCtrl",["$route","$scope","$window","$http","modelManagerService","security","toaster",function(e,t,n,o,i,r,a){t.is_loading=!1,t.open_login=function(){r.openSignin(!0)},t.params=e.current.params,t.state="ok",t.user_current=r.getCurrent().user,t.platform=SITE.creator_platform,t.setupCreatorUrl="signup","fantime"===SITE.signup_source&amp;&amp;(t.setupCreatorUrl="vip-signup-form"),t.params.fee&amp;&amp;t.params.hash&amp;&amp;t.params.username?r.isAuthenticated()?(t.hasApplied=!1,o.get("/api/v1/approval").then((function(e){t.hasApplied=e.data&amp;&amp;"submitted"===e.data.status})),"model"===t.user_current.type?t.accept=function(){t.is_loading||(t.is_loading=!0,i.acceptInvite(t.params,(function(e){n.location.href="/",a.pop("success","Success",'You are now manager of "'+t.params.username+'".')}),(function(e){t.is_loading=!1,a.pop("error","Error",e)})))}:t.state="error_not_model"):t.state="error_login_required":t.state="error_url_not_valid"}]).component("profile",{controller:"StateProfileCtrl",template:'&lt;style ng-if="model &amp;&amp; !isLoading"&gt;\n    :root {\n        --color-pink: {{ configMainFollowColor || DEFAULTS.mainFollowColor }};\n        --color-blue: {{ configLinkColor || DEFAULTS.linkColor }};\n        --cc-text: {{ configTextColor || DEFAULTS.textColor }};\n        --cc-msg-bg: {{configMessageColor || DEFAULTS.messageColor}};\n        --cc-msg:  {{configMessageTextColor || DEFAULTS.messageTextColor}};\n        --cc-follow: {{configMainFollowColor || DEFAULTS.mainFollowColor}};\n        --color-pink-hover: {{ configPinkHover || DEFAULTS.mainFollowColor }};\n        --color-blue-hover: {{ configBlueHover || DEFAULTS.linkColor }};\n    }\n&lt;/style&gt;\n&lt;div class="full-loader" ng-if="isLoading"&gt;&lt;svg-loading&gt;&lt;/svg-loading&gt;&lt;/div&gt;\n&lt;div class="position-relative" ng-if="!model &amp;&amp; !isLoading"&gt;\n    &lt;profile-header&gt;&lt;/profile-header&gt;\n    &lt;error msg="{{ error }}" no-oops="noOops"&gt;&lt;/error&gt;\n&lt;/div&gt;\n&lt;div class="csf_profile position-relative mx-auto" ng-if="model &amp;&amp; ! isLoading" ng-style="{ color: configTextColor }"&gt;\n    &lt;profile-header header-logo="headerLogo" logo-click="logoClick"&gt;&lt;/profile-header&gt;\n    &lt;profile-cover  ng-click="coverClick()"\n                    ng-disabled="!model.can_edit"\n                    is-blocked="model.is_blocked"\n                    is-subscribed="model.is_gift || model.is_subscribed || model.is_trial"\n                    is-free-follower="model.is_subscribed_free"\n                    open-direct-message="openDirectMessage"\n                    open-subscribe-benefits="openSubscribeBenefits"\n                    open-tip="openTip"\n                    profile-service="profileService"\n                    tip-processing="tipProcessing"\n                    user="model.user"\n                    subscriptions="model.subscriptions"\n                    likes="model.post_count.likes"\n                    show-likes="showLikes"\n    &gt;&lt;/profile-cover&gt;\n\n    \x3c!-- tabs --\x3e\n    &lt;div class="border-bottom"&gt;\n        &lt;ul class="nav nav-tabs scroll profile-tabs  mx-auto border-0"&gt;\n            &lt;li class="nav-item" ng-if="model.can_edit &amp;&amp; tabs.selector !== \'free\'"&gt;\n                &lt;a class="nav-link" ng-click="tabs.select(\'customize\')" ng-class="{\'active\' : tabs.selector == \'customize\'}"&gt;\n                    &lt;span class="icon icon-fan_cog"&gt;&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="tabs.selector !== \'free\'"&gt;\n                &lt;a class="nav-link" ng-click="tabs.select(\'posts\')" ng-class="{\'active\' : tabs.selector == \'posts\', \'no-minimize\': !tabs.hasAccess}"&gt;\n                    &lt;span class="icon icon-fan_post"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i&gt;{{ model.post_count.post }}&lt;/i&gt; Posts&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="tabs.selector === \'free\'"&gt;\n                &lt;a class="nav-link active no-minimize"&gt;\n                    &lt;span class="icon icon-fan_post"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i&gt;{{ model.post_count.free }}&lt;/i&gt; Free Posts&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="tabs.hasAccess &amp;&amp; tabs.selector !== \'free\'"&gt;\n                &lt;a class="nav-link" ng-click="tabs.select(\'photos\')" ng-class="{\'active\' : tabs.selector == \'photos\'}"&gt;\n                    &lt;span class="icon icon-fan_photo"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i&gt;{{ tabs.count.photo.feed }}&lt;/i&gt; Photos&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="tabs.hasAccess &amp;&amp; tabs.selector !== \'free\'"&gt;\n                &lt;a class="nav-link" ng-click="tabs.select(\'videos\')" ng-class="{\'active\' : tabs.selector == \'videos\'}"&gt;\n                    &lt;span class="icon icon-fan_video"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i&gt;{{ tabs.count.video.feed }}&lt;/i&gt; Videos&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="tabs.hasAccess &amp;&amp; tabs.selector !== \'free\' &amp;&amp; tabs.count.audio.total &gt; 0"&gt;\n                &lt;a class="nav-link" ng-click="tabs.select(\'audios\')" ng-class="{\'active\' : tabs.selector == \'audios\'}"&gt;\n                    &lt;span class="icon icon-fan_audio"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i&gt;{{ tabs.count.audio.feed }}&lt;/i&gt; Audio&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n            &lt;li class="nav-item" ng-if="(tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.selector !== \'free\' &amp;&amp; (model.can_edit || tabs.count.audio.dm &gt; 0 || tabs.count.photo.dm &gt; 0 || tabs.count.video.dm &gt; 0)"&gt;\n                &lt;a class="nav-link fw-bold" ng-click="tabs.select(\'premium\')" ng-class="{\'active\' : tabs.selector == \'premium\'}"&gt;\n                    &lt;span class="icon icon-fan_premium text-secondary"&gt;&lt;/span&gt;&amp;nbsp;\n                    &lt;span&gt;&lt;i class="text-secondary"&gt;PREMIUM&lt;/i&gt;&lt;/span&gt;\n                &lt;/a&gt;\n            &lt;/li&gt;\n        &lt;/ul&gt;\n    &lt;/div&gt;\n\n    &lt;div class="csf-profile-cont"&gt;\n\n        \x3c!-- Expiring subscription  --\x3e\n        &lt;div class="csf-reactivate-holder bg-light2 text-center m-4 mx-auto pt-2 px-3 rounded border" ng-if="!model.can_edit &amp;&amp; (!tabs.hasAccess || tabs.selector === \'posts\') &amp;&amp; model.is_subscribed &amp;&amp; model.subscription_end_at"&gt;\n            &lt;p class="mb-1 fw-bold"&gt;&lt;small&gt;Your access to the profile &lt;br class="d-lg-none"&gt;will expire {{model.subscription_end_at | dateDiffInTextual}}&lt;/small&gt;&lt;/p&gt;\n            &lt;span class="btn btn-outline-primary d-block  mx-4 fw-bold border-2 my-2 mb-3" ng-click="reactivateSubscription()"&gt;Reactivate your Subscription&lt;/span&gt;\n        &lt;/div&gt;\n\n        &lt;div class="alert profile-alert mx-auto text-center my-3" ng-if="!model.can_edit &amp;&amp; pendingVerification"&gt;\n            &lt;b&gt;&lt;i&gt;Coming Soonâ€¦&lt;/i&gt;&lt;/b&gt;\n        &lt;/div&gt;\n\n        \x3c!-- profile URL ALERT --\x3e\n        &lt;div class="alert profile-alert mx-auto alert-dismissible my-3 fs-0900" ng-if="false &amp;&amp; model.can_edit &amp;&amp; user_current.has_accepted_terms &amp;&amp; !isLoadingCustomize &amp;&amp; profileUrlDomainList.length"&gt;\n            &lt;b&gt;More Profile URL Options&lt;/b&gt;\n            &lt;a class="word-break text-decoration-underline d-block" ng-href="{{ profileUrlSelectedFull }}" target="_blank"&gt;\n                    {{ profileUrlSelected }} &lt;i class="icon-fan_external-link"&gt;&lt;/i&gt;&lt;/a&gt;\n            &lt;div class="d-inline-block dropdown mt-2 mb-3" dropdown&gt;\n                &lt;button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"&gt;\n                    {{ profileUrlSelectedDomain }}\n                &lt;/button&gt;\n                &lt;div class="dropdown-menu"&gt;\n                    &lt;a ng-if="profileUrlRootDomain" ng-click="setProfileUrlSelected(profileUrlRootDomain, true)" class="dropdown-item" href="#"&gt;{{ profileUrlRootDomain }}&lt;/a&gt;\n                    &lt;a ng-repeat="domain in profileUrlDomainList" ng-click="setProfileUrlSelected(domain, false)" class="dropdown-item" href="#"&gt;{{ domain }}&lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div ng-if="!profileUrlRootDomain" &gt;\n                or get a &lt;a href="/account/customize" class="text-decoration-underline"&gt;custom domain name&lt;/a&gt;!\n            &lt;/div&gt;\n            &lt;a class="text-decoration-underline" ng-if="profileUrlRootDomain" href="/account/customize"&gt;Customize your logo and profile colors.&lt;/a&gt;\n        &lt;/div&gt;\n\n        \x3c!-- twitter ALERT --\x3e\n        &lt;div class="alert profile-alert mx-auto alert-dismissible my-3 fs-0900" ng-show="show_twitter_alert" ng-if="model.can_edit &amp;&amp; !model.user.twitter.is_valid &amp;&amp; user_current.has_accepted_terms"&gt;\n            &lt;p class="mb-2"&gt;\n                &lt;b&gt;Increase $&lt;/b&gt; by automatically tweeting when you have a new fan or upload new content.\n            &lt;/p&gt;\n\n            &lt;div ng-show="!isNoEmail &amp;&amp; !emailNeedsConfirming"&gt;\n                &lt;button class="csf_btn_social csf_btn_twitter btn mw pe-3" ng-click="twitterReconnect()"&gt;\n                    &lt;i class="icon icon-fan_twitter-plain"&gt;&lt;/i&gt;\n                    &lt;span&gt;{{ model.user.twitter.username ? \'Reconnect\' : \'Connect\' }} Twitter Account&lt;/span&gt;\n                &lt;/button&gt;\n                &lt;button type="button" class="btn-sm btn-close" ng-click="twitterAlert()"&gt;&lt;/button&gt;\n            &lt;/div&gt;\n            &lt;div ng-show="isNoEmail"&gt;\n                Must have an email address to connect Twitter\n                &lt;div&gt;\n                    &lt;a href="/account/email_and_pwd"&gt;Click here to add email address&lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div ng-show="!isNoEmail &amp;&amp; emailNeedsConfirming"&gt;\n                Please confirm your email address to connect Twitter.\n                &lt;div&gt;\n                    &lt;a href="#" ng-click="sendEmailValidation();$event.preventDefault()"&gt;Click here to resend validation email&lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n\n        \x3c!-- No Post ALERT --\x3e\n        &lt;div class="alert profile-alert mx-auto danger my-3 fs-0900" ng-if="model.can_edit &amp;&amp; !model.isLoading &amp;&amp; model.post_count.post === 0 &amp;&amp; tabs.selector === \'posts\'"&gt;\n            &lt;b&gt;NO POSTS HERE YET&lt;/b&gt;&lt;br /&gt;Make your first post to start earning moneyâ€¦\n        &lt;/div&gt;\n\n        \x3c!-- trial ALERT  --\x3e\n        &lt;div class="alert profile-alert mx-auto  warn alert-dismissible my-3 fs-0900" ng-show="show_trial_alert" ng-if="canSubscribe &amp;&amp; model.is_trial &amp;&amp; model.trial_end_at"&gt;\n            &lt;b&gt;Your trial ends &lt;datetime-countdown datetime="model.trial_end_at"&gt;&lt;/datetime-countdown&gt;.&lt;/b&gt;\n            &lt;button type="button" class="btn-sm btn-close" ng-click="show_trial_alert=!show_trial_alert"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n\n        \x3c!-- gift ALERT  --\x3e\n        &lt;div class="alert profile-alert mx-auto  warn alert-dismissible my-3 fs-0900" ng-show="show_gift_alert" ng-if="canSubscribe &amp;&amp; model.is_gift"&gt;\n            &lt;b&gt;Your gift ends &lt;datetime-countdown datetime="model.gift_end_at"&gt;&lt;/datetime-countdown&gt;.&lt;/b&gt;\n            &lt;button type="button" class="btn-sm btn-close" ng-click="show_gift_alert=!show_gift_alert"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n\n        \x3c!-- rejected avatar --\x3e\n        &lt;div class="alert profile-alert mx-auto  danger alert-dismissible profile-alert mx-auto  my-3 fs-0900" ng-show="show_avatar_alert" ng-if="model.can_edit &amp;&amp; model.user.fans_avatar_rejected"&gt;\n            &lt;b&gt;Unfortunately your avatar was not approved.&lt;/b&gt;&lt;br /&gt;\n            Please upload a pic with no nudity.\n            &lt;button type="button" class="btn-sm btn-close" ng-click="show_avatar_alert=!show_avatar_alert"&gt;\n            &lt;/button&gt;\n        &lt;/div&gt;\n\n        \x3c!-- WINBACK --\x3e\n        &lt;div class="csf-packages flex-column pt-2 mt-4" ng-if="tabs.selector !== \'free\' &amp;&amp; canSubscribe &amp;&amp; !model.can_edit &amp;&amp; !model.can_trial &amp;&amp; model.can_winback"&gt;\n            &lt;div class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount mb-0" ng-click="openSubscribeBenefits()"&gt;\n                &lt;i&gt;\n                    &lt;em&gt;Special Offer&lt;/em&gt;\n                &lt;/i&gt;\n                &lt;b ng-class="{ full: model.setting.winback_discount &gt;= 40 }"&gt;\n                    {{ model.setting.winback_discount }}%\n                    &lt;br&gt;\n                    off\n                &lt;/b&gt;\n                &lt;span&gt;Subscribe for {{ model.setting.winback_price | currency  }}&lt;/span&gt;\n                &lt;br&gt;for 1 month\n            &lt;/div&gt;\n            &lt;div ng-if="model.setting.winback_subscription_limit &amp;&amp; model.setting.winback_subscription_limit &lt;= 50" class="text-danger fw-bold fs-0875"&gt;Only {{model.setting.winback_subscription_limit}} special offer{{model.setting.winback_subscription_limit != 1 ? \'s\' : \'\'}} remaining!&lt;/div&gt;\n            &lt;countdown-offer ng-if="model.setting.winback_offer_ends_at" class="csf-profile-packages-counter fw-bold fs-0875" ends-at="model.setting.winback_offer_ends_at" offer="Ends"&gt;&lt;/countdown-offer&gt;\n        &lt;/div&gt;\n\n        \x3c!-- NEW MEMBER --\x3e\n        &lt;div class="csf-packages flex-column pt-2 mt-4" ng-if="tabs.selector !== \'free\' &amp;&amp; canSubscribe &amp;&amp; !model.can_edit &amp;&amp; model.can_trial &amp;&amp; !model.can_winback"&gt;\n            &lt;div class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-trial" ng-click="openSubscribeBenefits()" ng-class="{ \'csf-package-discount\': model.setting.trial_discount }"&gt;\n                &lt;i&gt;\n                    &lt;em&gt;New Member Trial Offer&lt;/em&gt;\n                &lt;/i&gt;\n                &lt;b ng-if="model.setting.trial_discount" ng-class="{ full: model.setting.trial_discount &gt;= 40 }"&gt;\n                    {{ model.setting.trial_discount }}%\n                    &lt;br&gt;\n                    off\n                &lt;/b&gt;\n                &lt;span ng-if="!model.setting.trial_price"&gt;Subscribe for FREE&lt;/span&gt;\n                &lt;div ng-if="model.setting.trial_price &gt; 0"&gt;\n                    &lt;span&gt;Subscribe for {{ model.setting.trial_price | currency }}&lt;/span&gt;\n                    &lt;br&gt;\n                    for {{ model.setting.trial_duration_in_day }} day{{ model.setting.trial_duration_in_day !== 1 ? \'s\' : \'\' }}\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div ng-if="model.setting.trial_subscription_limit &amp;&amp; model.setting.trial_subscription_limit &lt;= 50" class="text-danger fw-bold fs-0875"&gt;Only {{model.setting.trial_subscription_limit}} trial offer{{model.setting.trial_subscription_limit != 1 ? \'s\' : \'\'}} remaining!&lt;/div&gt;\n            &lt;countdown-offer offer="Ends" ng-if="model.setting.trial_offer_ends_at" class="csf-profile-packages-counter fw-bold fs-0875" ends-at="model.setting.trial_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n        &lt;/div&gt;\n        &lt;div class="or-inline" ng-if="tabs.selector !== \'free\' &amp;&amp; canSubscribe &amp;&amp; !model.can_edit &amp;&amp; (model.can_trial || model.can_winback)"&gt;\n            &lt;span&gt;or&lt;/span&gt;\n        &lt;/div&gt;\n        &lt;div class="csf-packages" ng-if="tabs.selector !== \'free\' &amp;&amp; canSubscribe &amp;&amp; !model.can_edit"\n            ng-class="{\'csf_profile__content_packages_multiple\': subscriptionPackages &amp;&amp; model.setting.subscription_price &gt; 0, \'csf-valerieloureda\': subscription_button_valerieloureda }"&gt;\n            &lt;button class="btn btn-full-w csf_profile__content_package"\n            ng-class="{\'csf-package-single\': !subscriptionPackages || !(model.setting.subscription_price &gt; 0), \'csf-valerieloureda\': subscription_button_valerieloureda }"\n            ng-click="openSubscribeBenefits(\'1mo\')"&gt;\n                &lt;span ng-if="model.setting.subscription_price &lt;= 0"&gt;Subscribe for FREE&lt;/span&gt;\n                &lt;div ng-if="model.setting.subscription_price &gt; 0"&gt;\n                    &lt;span&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;/span&gt;\n                    &lt;br&gt;\n                    for 1 month\n                &lt;/div&gt;\n            &lt;/button&gt;\n            &lt;button ng-if="subscriptionPackages &amp;&amp; model.setting.subscription_price &gt; 0"\n            ng-repeat="(duration, discount) in subscriptionPackages" class="btn btn-full-w csf_profile__content_package"\n            ng-click="openSubscribeBenefits(duration)" ng-class="{\'csf-package-discount\': discount.percent &gt; 0 }"&gt;\n                &lt;b ng-if="discount.percent &gt; 0" ng-class="{\'full\': discount.percent &gt;= 40 }"&gt;\n                    {{ discount.percent }}%\n                    &lt;br&gt;\n                    off\n                &lt;/b&gt;\n                &lt;span&gt;Subscribe for {{ discount.price | currency }}&lt;/span&gt;\n                &lt;br&gt;\n                for {{ duration | subscriptionMonths }}\n            &lt;/button&gt;\n        &lt;/div&gt;\n\n        \x3c!-- FOLLOW FOR FREE --\x3e\n        &lt;div class="text-center my-3" ng-if="!model.can_edit &amp;&amp; canSubscribeFree &amp;&amp; (!tabs.hasAccess || tabs.selector === \'posts\')"&gt;\n            &lt;a class="btn btn-primary fw-bold fs-0875 loader mx-2 mb-md-0 mb-2 px-4" ng-click="openFollowFree()"&gt;\n                &lt;span ng-if="!freeFollowLoading"&gt;Follow for FREE&lt;/span&gt;\n                &lt;svg-loading ng-if="freeFollowLoading"&gt;&lt;/svg-loading&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n\n        \x3c!-- TABS CONTENT --\x3e\n        &lt;div class="tab-content"&gt;\n            &lt;div ng-if="!tabs.hasAccess &amp;&amp; !tabs.hasAccessFree"&gt;\n\n                &lt;div class="csf_profile__bio rounded border p-3 mx-auto bg-light2 my-4" ng-if="!model.can_edit &amp;&amp; (model.content.fans_bio || model.setting.instagram_username || model.setting.snapchat_username || model.setting.twitter_username || model.setting.tiktok_username)"&gt;\n                    &lt;p ng-if="model.content.fans_bio" id="csf_profile__bio_content" class="csf_profile__bio_content text-break whitespace-preline mb-2 fs-0900 text-center" ng-class="{\'csf_profile__bio_content_clamp\': !isShowFullBio, \'csf_profile__bio_content_clickable\': !isShowFullBio &amp;&amp; isBioOverflow }" ng-click="showFullBio()" ng-bind-html="model.content.fans_bio | processLinks | processTags:model.content.fans_bio_mentions"&gt;&lt;/p&gt;\n                    &lt;div class="csf_profile__socials mt-0 d-flex justify-content-center"&gt;\n                        &lt;a class="mx-2" ng-if="model.setting.instagram_username" ng-href="//instagram.com/{{ model.setting.instagram_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_instagram | webp }}" alt="{{ model.setting.instagram_username }} instagram" width="35" height="35" /&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2"  ng-if="model.setting.snapchat_username" ng-href="//snapchat.com/add/{{ model.setting.snapchat_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_snapchat | webp }}" alt="{{ model.setting.snapchat_username }} snapchat" width="35" height="35" /&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2"  ng-if="model.setting.twitter_username" ng-href="//twitter.com/{{ model.setting.twitter_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_twitter | webp }}" alt="{{ model.setting.twitter_username }} twitter" width="35" height="35" /&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2"  ng-if="model.setting.tiktok_username" ng-href="//tiktok.com/@{{ model.setting.tiktok_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_tiktok | webp }}" alt="{{ model.setting.tiktok_username }} tiktok" width="35" height="35" /&gt;\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                \x3c!-- NO POST  --\x3e\n                &lt;div class="alert profile-alert mx-auto text-center my-3" ng-if="!model.isLoading &amp;&amp; model.post_count.post === 0"&gt;\n                    &lt;p&gt;&lt;strong&gt;Hey, thanks for coming to my page!&lt;/strong&gt;&lt;/p&gt;\n                    &lt;p ng-if="(!canSubscribe || model.is_trial) &amp;&amp; canSubscribeSnapchat"&gt;\n                        For instant access to my private snaps click below or drop me a tip.\n                    &lt;/p&gt;\n                    &lt;a class="btn btn-snapchat btn-with-icon border fw-bold" ng-if="(!canSubscribe || model.is_trial) &amp;&amp; canSubscribeSnapchat" ng-click="subscribeSnapchat(model.user.username)"&gt;\n                        &lt;i class=" icon-fan_snapchat-plain me-1"&gt;&lt;/i&gt;\n                        &lt;span&gt;Access {{ model.setting.sell_snapchat.price | currency }}&lt;small&gt;/mo&lt;/small&gt;&lt;/span&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n                \x3c!-- no post --\x3e\n\n                \x3c!-- profile locked --\x3e\n                &lt;div class="locked_posts" ng-if="!model.can_edit &amp;&amp; !model.is_gift &amp;&amp; !model.is_subscribed &amp;&amp; !model.is_trial &amp;&amp; model.post_count.post &gt; 0"&gt;\n\n                    \x3c!-- STREAMING LIVE --\x3e\n                    &lt;post-live\n                        ng-if="!pendingVerification &amp;&amp; model.chat.status === \'online_fans\'"\n                        model="model"\n                         &gt;\n                    &lt;/post-live&gt;\n\n                    &lt;div ng-if="promote &amp;&amp; user_current &amp;&amp; promote.other.id == user_current.id" class="profile_tabs_content profile_tabs_content_post"&gt;\n                        &lt;post-promote promote="promote" timeouts="timeouts"&gt;&lt;/post-promote&gt;\n                    &lt;/div&gt;\n\n                    &lt;div ng-if="winbackPosts.length" class="profile_tabs_content profile_tabs_content_post"&gt;\n                        &lt;div class="csf_profile__content_main_post profile_post_list_user"&gt;\n                            &lt;post model="model" ng-repeat="item in winbackPosts" post="item" timeouts="timeouts"&gt;&lt;/post&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n\n                    &lt;div ng-if="model.post_count.post &gt;= 20" class="row mx-0 mx-sm-2" infinite-scroll="postPaginator.nextPage(postPaginator.loadIndex)" infinite-scroll-disabled="postPaginator.isLoading || postPaginator.isEnd" infinite-scroll-distance="1"&gt;\n                        &lt;div class="col-12 col-md-6 col-lg-4 mb-3 px-0 px-sm-2" ng-repeat="item in postPaginator.items" ng-click="[\'free\', \'paid_and_free\'].includes(item.post.access) ? openFollowFree() : openSubscribeBenefits()"&gt;\n                            &lt;post-lock hide-offers="true" model="model" post="item.post" open-subscribe-benefits="openSubscribeBenefitsLock" open-follow-free="openFollowFree" open-purchase-post="openPurchasePost" amount-usd="item.post.amount_usd" is-free="[\'free\', \'paid_and_free\'].includes(item.post.access)" is-locked-payment="item.is_locked_payment"&gt;&lt;/post-lock&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n\n                    &lt;div ng-if="model.post_count.post &lt; 20" ng-click="[\'free\', \'paid_and_free\'].includes(item.post.access) ? openFollowFree() : openSubscribeBenefits()"&gt;\n                        &lt;post-lock hide-offers="true" model="model" post="item.post" open-subscribe-benefits="openSubscribeBenefitsLock" open-follow-free="openFollowFree" open-purchase-post="openPurchasePost" amount-usd="item.post.amount_usd" is-free="[\'free\', \'paid_and_free\'].includes(item.post.access)" is-locked-payment="item.is_locked_payment"&gt;&lt;/post-lock&gt;\n                    &lt;/div&gt;\n\n                    \x3c!-- mobile button --\x3e\n                    &lt;div class="csf_profile-mobile_btn bg-white border-top start-0 end-0 p-2 position-fixed text-center" profile-mobile-button ng-if="!user_current &amp;&amp; !model.can_edit"&gt;\n                        &lt;a ng-if="tabs.selector !== \'free\'" class="btn btn-dark extra-font w-100" ng-click="openSubscribeBenefits()"&gt;\n                            &lt;span ng-if="model.can_trial &amp;&amp; !model.setting.trial_price"&gt;Subscribe for FREE&lt;/span&gt;\n                            &lt;span ng-if="model.can_trial &amp;&amp; model.setting.trial_price &gt; 0"&gt;\n                                Subscribe for {{ model.setting.trial_price | currency }}/{{ model.setting.trial_duration_in_day }}d\n                            &lt;/span&gt;\n                            &lt;span ng-if="!model.can_trial &amp;&amp; !model.setting.subscription_price"&gt;Subscribe for FREE&lt;/span&gt;\n                            &lt;span ng-if="!model.can_trial &amp;&amp; model.setting.subscription_price &amp;&amp; model.can_winback"&gt;Subscribe for {{ model.setting.winback_price | currency }}&lt;small&gt;/mo&lt;/small&gt;&lt;/span&gt;\n                            &lt;span ng-if="!model.can_trial &amp;&amp; model.setting.subscription_price &amp;&amp; !model.can_winback"&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;small&gt;/mo&lt;/small&gt;&lt;/span&gt;\n                        &lt;/a&gt;\n                        &lt;a ng-if="tabs.selector === \'free\'" class="btn btn-dark extra-font w-100" ng-click="openFollowFree()"&gt;\n                            Follow for FREE\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                \x3c!-- loading  --\x3e\n                &lt;div class="loader text-center" ng-if="postPaginator.isLoading"&gt;\n                    &lt;svg-loading&gt;&lt;/svg-loading&gt;\n                &lt;/div&gt;\n                \x3c!-- profile locked --\x3e\n            &lt;/div&gt;\n\n            \x3c!-- TAB"HOME" --\x3e\n            &lt;div class="profile_tabs_content mx45 fs-0900" ng-if="model.can_edit &amp;&amp; tabs.selector === \'customize\'"&gt;\n\n                &lt;ul class="nav nav-tabs profile-subtabs mb-2 mt-3"&gt;\n                    &lt;li class="nav-item"&gt;\n                        &lt;a ng-click="tabs.subSelect(\'subscriptions\')" ng-class="{ active: tabs.subSelector === \'subscriptions\'}" class="nav-link"&gt;\n                            Subscriptions\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                    &lt;li class="nav-item"&gt;\n                        &lt;a ng-click="tabs.subSelect(\'about\')" ng-class="{ active: tabs.subSelector === \'about\'}" class="nav-link"&gt;\n                            About You\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                    &lt;li class="nav-item"&gt;\n                        &lt;a ng-click="tabs.subSelect(\'settings\')" ng-class="{ active: tabs.subSelector === \'settings\'}" class="nav-link"&gt;\n                            Settings\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                &lt;/ul&gt;\n\n                &lt;div class="csf_profile_editable_content m-2 my-4 pb-2" ng-if="tabs.subSelector === \'subscriptions\'"&gt;\n                    &lt;div class="m-md-3 m-1"&gt;\n                        &lt;h3 class="fs-6"&gt;Subscriptions&lt;/h3&gt;\n\n                        &lt;div class="border rounded px-md-3 p-2 mb-2"\n                             ng-class="{\'bg-light2 cursor-p\': !editingSubscriptionPrice}"\n                             ng-click="editSubscriptionPrice()"\n                            &gt;\n                            &lt;div class="w-100"&gt;\n                                &lt;div class="text-muted"&gt;Subscription&lt;/div&gt;\n                                &lt;div ng-if="!editingSubscriptionPrice"&gt;\n                                   &lt;span class="text-muted" ng-if="!model.setting.subscription_price"&gt;&lt;b class="text-danger"&gt;FREE&lt;/b&gt; &lt;i&gt;- click to edit&lt;/i&gt;&lt;/span&gt;\n                                   &lt;b ng-if="model.setting.subscription_price"&gt;{{ model.setting.subscription_price | currency }}/mo&lt;/b&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="editingSubscriptionPrice" class="d-flex flex-column"&gt;\n                                &lt;div class="fs-0900 fw-bold text-muted input-group mt-1 mb-2 mx15 pe-2"&gt;\n                                    &lt;div class="input-group-prepend"&gt;\n                                        &lt;span class="input-group-text bg-white pe-1"&gt;$&lt;/span&gt;\n                                    &lt;/div&gt;\n                                    &lt;select ng-if="subscriptionData.prices" class="form-select border-start-0" name="subscription_price" ng-model="subscriptionData.subscription_price" ng-options="o as o for o in subscriptionData.prices" required="required"&gt;&lt;/select&gt;\n                                    &lt;input ng-if="!subscriptionData.prices" placeholder="Enter price i.e. 5.00" currency-mask type="number" class="form-control text-muted border-start-0" ng-model="subscriptionData.subscription_price" required="required" inputmode="decimal" autofocus step=".01" /&gt;\n                                    &lt;span class="input-group-text"&gt;&lt;small&gt;/mo&lt;/small&gt;&lt;/span&gt;\n                                &lt;/div&gt;\n                                &lt;div&gt;\n                                    &lt;button class="btn btn-sm btn-outline-primary fw-bold me-1" ng-click="saveSubscriptionPrice(model)"&gt;Save&lt;/button&gt;\n                                    &lt;button class="btn btn-sm btn-cancel" ng-click="cancelEditingSubscriptionPrice();$event.stopPropagation();"&gt;Cancel&lt;/button&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;div ng-if="model.setting.subscription_price &gt; 0" class="border rounded px-md-3 p-2 mb-2"\n                             ng-class="{\'bg-light2 cursor-p\': !editingSubscriptionPackage6}"\n                             ng-click="editSubscriptionPackage(6)"&gt;\n                            &lt;div&gt;\n                                &lt;div class="text-muted"&gt;6 Months Subscription Package&lt;/div&gt;\n                                &lt;span ng-if="!editingSubscriptionPackage6"  class="cursor-p"&gt;\n                                    &lt;span ng-if="model.setting.subscription_discount[\'6mo\']" class="fw-bold"&gt;\n                                        {{ model.setting.subscription_discount[\'6mo\'].price | currency }} for 6 months\n                                        &lt;span class="badge pill align-text-bottom bg-secondary"&gt;{{ model.setting.subscription_discount[\'6mo\'].percent }}% off&lt;/span&gt;\n                                    &lt;/span&gt;\n                                    &lt;i class="text-muted" ng-if="!model.setting.subscription_discount[\'6mo\']"&gt;\n                                        No 6 months subscription package\n                                    &lt;/i&gt;\n                                &lt;/span&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="editingSubscriptionPackage6" class="d-flex flex-column"&gt;\n                                &lt;div class="fw-bold input-group mt-1 mb-2 mx15 pe-2 d-flex align-items-center"&gt;\n                                    &lt;div class="input-group mx15 text-muted fs-0900"&gt;\n                                        &lt;select class="form-select" name="subscription_discount_6mo"\n                                            ng-model="discounts.subscription_discount_6mo" ng-options="o.value as o.key for o in percentages" required="required"&gt;\n                                        &lt;/select&gt;\n                                        &lt;span ng-if="discounts.subscription_discount_6mo !== \'off\'" class="input-group-text"&gt;off&lt;/span&gt;\n                                    &lt;/div&gt;\n                                    &lt;div ng-if="discounts.subscription_discount_6mo !== \'off\'" class="ms-2"&gt;\n                                        ${{ { price: subscription_price * 6, percent: discounts.subscription_discount_6mo } | subscriptionPackagePrice }}/6mo\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                                &lt;div&gt;\n                                    &lt;button class="btn btn-sm btn-outline-primary fw-bold me-1" ng-click="saveSubscriptionPackage(model)"&gt;Save&lt;/button&gt;\n                                    &lt;button class="btn btn-sm btn-cancel" ng-click="cancelEditSubscriptionPackage(6);$event.stopPropagation();"&gt;Cancel&lt;/button&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;div ng-if="model.setting.subscription_price &gt; 0"\n                            class="border rounded px-md-3 p-2 d-flex mb-2"\n                            ng-class="{\'justify-content-between align-items-end bg-light2 cursor-p\': !editingSubscriptionPackage12, \'flex-column\': editingSubscriptionPackage12}"\n                            ng-click="editSubscriptionPackage(12)"&gt;\n                            &lt;div&gt;\n                                &lt;div class="text-muted"&gt;12 Months Subscription Package&lt;/div&gt;\n                                &lt;span ng-if="!editingSubscriptionPackage12" class="cursor-p"&gt;\n                                    &lt;span ng-if="model.setting.subscription_discount[\'12mo\']" class="fw-bold"&gt;\n                                        {{ model.setting.subscription_discount[\'12mo\'].price | currency }} for 12 months\n                                        &lt;span class="badge pill align-text-bottom bg-secondary"&gt;{{ model.setting.subscription_discount[\'12mo\'].percent }}% off&lt;/span&gt;\n                                    &lt;/span&gt;\n                                    &lt;i class="text-muted" ng-if="!model.setting.subscription_discount[\'12mo\']"&gt;\n                                        No 12 months subscription package\n                                    &lt;/i&gt;\n                                &lt;/span&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="editingSubscriptionPackage12" class="d-flex flex-column"&gt;\n                                &lt;div class="fw-bold input-group mt-1 mb-2 mx15 pe-2 d-flex align-items-center"&gt;\n                                    &lt;div class="input-group mx15 text-muted fs-0900"&gt;\n                                        &lt;select class="form-select" name="subscription_discount_12mo"\n                                            ng-model="discounts.subscription_discount_12mo" ng-options="o.value as o.key for o in percentages" required="required"&gt;\n                                        &lt;/select&gt;\n                                        &lt;span ng-if="discounts.subscription_discount_12mo !== \'off\'" class="input-group-text"&gt;off&lt;/span&gt;\n                                    &lt;/div&gt;\n                                    &lt;div ng-if="discounts.subscription_discount_12mo !== \'off\'" class="ms-2"&gt;\n                                        ${{ { price: subscription_price * 12, percent: discounts.subscription_discount_12mo } | subscriptionPackagePrice }}/12mo\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                                &lt;div&gt;\n                                    &lt;button class="btn btn-sm btn-outline-primary fw-bold me-1" ng-click="saveSubscriptionPackage(model)"&gt;Save&lt;/button&gt;\n                                    &lt;button class="btn btn-sm btn-cancel" ng-click="cancelEditSubscriptionPackage(12);$event.stopPropagation()"&gt;Cancel&lt;/button&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;div class="border rounded px-md-3 p-2  mb-2 mt-4"\n                            ng-class="{\'cursor-p bg-light2\': !editingSellSnapchat}" ng-click="editSellSnapchat()"&gt;\n                            &lt;div&gt;\n                                &lt;div class="text-muted"&gt;Sell Snapchat&lt;/div&gt;\n                                &lt;span ng-if="!editingSellSnapchat" class="cursor-p"&gt;\n                                    &lt;span class="fw-bold" ng-if="model.setting.sell_snapchat.on_sale"&gt;\n                                        {{ model.setting.sell_snapchat.price | currency }}/mo\n                                    &lt;/span&gt;\n                                    &lt;i class="text-muted" ng-if="!model.setting.sell_snapchat.on_sale"&gt;No Sell SnapChat&lt;/i&gt;\n                                &lt;/span&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="editingSellSnapchat"&gt;\n                                &lt;div class="mt-1 mb-2 fs-0900"&gt;\n                                    &lt;label class="d-flex align-items-center"&gt;\n                                        &lt;input id="on_sale" type="checkbox" class="toggle sm" ng-click="$event.preventDefault(); toggleEnableSnapchat();" ng-model="snapchatData.on_sale" &gt;\n                                        &lt;span class="fw-bold ms-2"&gt;Enable Snapchat Sale&lt;/span&gt;\n                                    &lt;/label&gt;\n                                    &lt;div class="form-group mt-3 mx15" ng-if="snapchatData.on_sale"&gt;\n                                        &lt;label class="fw-bold"&gt;Snapchat Username&lt;/label&gt;\n                                        &lt;input class="form-control mx15" name="snapchat_username" ng-model="snapchatData.snapchat_username" required="required" type="text" /&gt;\n                                        &lt;form-error form="profileForm" name="snapchat_username"&gt;&lt;/form-error&gt;\n                                    &lt;/div&gt;\n                                    &lt;div class="fw-bold text-muted input-group mx15" ng-if="snapchatData.on_sale"&gt;\n                                        &lt;div class="input-group-prepend"&gt;\n                                            &lt;span class="input-group-text bg-white pe-1"&gt;$&lt;/span&gt;\n                                        &lt;/div&gt;\n                                        &lt;select ng-if="snapchatData.prices" class="form-select border-start-0" name="price" ng-model="snapchatData.subscription_price" ng-options="o as o for o in snapchatData.prices" required="required"&gt;&lt;/select&gt;\n                                        &lt;input ng-if="!snapchatData.prices" placeholder="Enter price i.e. 5.00" currency-mask type="number" class="form-control text-muted border-start-0" ng-model="snapchatData.subscription_price" required="required" inputmode="decimal" autofocus step=".01" /&gt;\n                                        &lt;span class="input-group-text"&gt;&lt;small&gt;/mo&lt;/small&gt;&lt;/span&gt;\n                                    &lt;/div&gt;\n                                    &lt;div class="mt-3"&gt;\n                                        &lt;button class="btn btn-sm btn-outline-primary fw-bold me-1" ng-click="saveSellSnapchat(model)"&gt;Save&lt;/button&gt;\n                                        &lt;button class="btn btn-sm btn-cancel" ng-click="cancelSellSnapchat();$event.stopPropagation();"&gt;Cancel&lt;/button&gt;\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n\n                    &lt;div class="m-md-3 m-1" ng-if="model.setting.subscription_price &gt; 0"&gt;\n                        &lt;h3 class="fs-6 pt-3 mb-1"&gt;Special Offers&lt;/h3&gt;\n                        &lt;div class="mb-2 text-muted lh-12"&gt;Get more subscribers by creating trial and winback offers!&lt;/div&gt;\n                        &lt;div ng-click="editTrialDuration(model)" class="border rounded px-md-3 p-2 mb-2 bg-light2 cursor-p"&gt;\n                            &lt;div&gt;\n                                &lt;div class="text-muted"&gt;New Member Trial Offer&lt;/div&gt;\n                                &lt;i ng-if="!model.setting.trial_active" class="text-muted"&gt;No Trial Offer&lt;/i&gt;\n                                &lt;div ng-if="model.setting.trial_active" class="mt-2 fs-0900"&gt;\n                                    &lt;span ng-if="!model.setting.trial_offer_ends_at"&gt;\n                                        Your current &lt;b&gt;Trial Offer&lt;/b&gt; has &lt;b class="text-danger"&gt;no expiration date&lt;/b&gt;\n                                    &lt;/span&gt;\n                                    &lt;span ng-if="model.setting.trial_offer_ends_at"&gt;\n                                        Your current &lt;b&gt;Trial Offer&lt;/b&gt; expires &lt;b class="text-danger"&gt;{{ model.setting.trial_offer_ends_at | timestampToDiffInTextual }}&lt;/b&gt;\n                                    &lt;/span&gt;\n                                    &lt;div&gt;\n                                        &lt;span ng-if="!model.setting.trial_price"&gt;FREE&lt;/span&gt;\n                                        &lt;span ng-if="model.setting.trial_price"&gt;&lt;b&gt;{{ model.setting.trial_price | currency }} during {{ model.setting.trial_duration_in_day }} {{ model.setting.trial_duration_in_day === 1 ? \'day\' : \'days\' }}&lt;/b&gt;&lt;/span&gt;\n                                        &lt;span ng-if="model.setting.trial_discount" class="badge pill align-text-bottom bg-secondary"&gt;\n                                            &lt;b&gt;{{ model.setting.trial_discount }}% off&lt;/b&gt;&lt;/span&gt;\n                                    &lt;/div&gt;\n                                    &lt;div ng-if="model.setting.trial_convert"&gt;\n                                        Converts to &lt;b&gt;{{ model.setting.subscription_price | currency }}/mo&lt;/b&gt; after trial period ends.\n                                    &lt;/div&gt;\n                                    &lt;div ng-if="model.setting.trial_subscription_limit"&gt;\n                                        &lt;b&gt;{{model.setting.trial_subscription_limit}}&lt;/b&gt; subscription{{model.setting.trial_subscription_limit != 1 ? \'s\' : \'\'}} remaining.\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;div ng-click="editWinback(model)" class="border rounded px-md-3 p-2 mb-2 bg-light2 cursor-p" ng-if="model.setting.subscription_price &gt; 0"&gt;\n                            &lt;div&gt;\n                                &lt;div class="text-muted"&gt;Expired Member Winback Offer&lt;/div&gt;\n                                &lt;i ng-if="!model.setting.winback_active" class="text-muted"&gt;No Winback Offer&lt;/i&gt;\n                                &lt;div class="mt-2 fs-0900" ng-if="model.setting.winback_active"&gt;\n                                    &lt;span ng-if="!model.setting.winback_offer_ends_at"&gt;\n                                        Your current &lt;b&gt;Winback Offer&lt;/b&gt; has &lt;b class="text-danger"&gt;no expiration date&lt;/b&gt;\n                                    &lt;/span&gt;\n                                    &lt;span ng-if="model.setting.winback_offer_ends_at"&gt;\n                                        Your current &lt;b&gt;Winback Offer&lt;/b&gt; expires &lt;b class="text-danger"&gt;{{ model.setting.winback_offer_ends_at | timestampToDiffInTextual }}&lt;/b&gt;\n                                    &lt;/span&gt;\n                                    &lt;div&gt;\n                                        &lt;b&gt;{{ model.setting.subscription_price * (1 - (model.setting.winback_discount / 100)) | currency }}/mo&lt;/b&gt;\n                                        &lt;b class="badge pill align-text-bottom bg-secondary"&gt;{{ model.setting.winback_discount }}% off&lt;/b&gt;\n                                    &lt;/div&gt;\n                                    &lt;div ng-if="model.setting.winback_subscription_limit"&gt;\n                                        &lt;b&gt;{{model.setting.winback_subscription_limit}}&lt;/b&gt; subscription{{model.setting.winback_subscription_limit != 1 ? \'s\' : \'\'}} remaining.\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;div class="csf_profile_editable_content m-2 my-4 pb-2" ng-if="tabs.subSelector === \'about\'"&gt;\n                    &lt;div class="m-md-3 m-1"&gt;\n                        &lt;h3 class="fs-6"&gt;Your Bio&lt;/h3&gt;\n                        &lt;div class="border rounded px-md-3 p-2 d-flex mb-2 align-content-center justify-content-center bg-light2"&gt;\n                            &lt;a class="fw-bold" href="#" ng-if="(!model.content.fans_bio || model.content.fans_bio===\'\') &amp;&amp; !editingBio" ng-click="editBio()"&gt;\n                                &lt;span class="icon-fan_plus icon-md"&gt;&lt;/span&gt;\n                                &lt;span&gt;Add Bio&lt;/span&gt;\n                            &lt;/a&gt;\n                            &lt;p ng-click="editBio()"\n                                class="text-break whitespace-preline m-2 text-center cursor-p"\n                                ng-if="!editingBio &amp;&amp; model.content.fans_bio"\n                                ng-bind-html="model.content.fans_bio | processLinks | processTags:model.content.fans_bio_mentions"&gt;&lt;/p&gt;\n                            &lt;div ng-if="editingBio" class="w-100"&gt;\n                                &lt;div class="border mb-2"&gt;\n                                    &lt;mention-input\n                                        class="form-control p-2 border-0"\n                                        placeholder=""\n                                        tag-container-id="post_tag_list"\n                                        textarea-id="editBio"\n                                        value-model="model.content.fans_bio"\n                                    &gt;&lt;/mention-input&gt;\n                                &lt;/div&gt;\n                                &lt;button class="btn btn-sm fw-bold btn-outline-primary" ng-click="saveBioTxt(model)"&gt;Save&lt;/button&gt;\n                                &lt;button class="btn btn-sm btn-cancel" ng-click="cancelEditingBio()"&gt;Cancel&lt;/button&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;h3 class="fs-6 pt-3" ng-click="editSocials()"&gt;Your social networks&lt;/h3&gt;\n                        &lt;div class="border rounded px-md-3 p-2 mb-2" ng-class="{\'bg-light2\': !editingSocials}"&gt;\n                            &lt;div class="d-flex align-items-center mb-2"&gt;\n                                &lt;img ng-src="{{ icon_tiktok | webp }}" width="30" height="30" class="me-2 my-1" ng-class="{\'img-muted\': !model.setting.tiktok_username}" /&gt;\n                                &lt;span ng-if="!editingSocials &amp;&amp; model.setting.tiktok_username" ng-click="editSocials()"&gt;{{ model.setting.tiktok_username }}&lt;/span&gt;\n                                &lt;i ng-if="!editingSocials &amp;&amp; !model.setting.tiktok_username" class="text-muted cursor-p fs-0900" ng-click="editSocials()"&gt;Add a Tiktok account&lt;/i&gt;\n                                &lt;a ng-if="!editingSocials &amp;&amp; model.setting.tiktok_username" class="ms-2" ng-href="//tiktok.com/@{{model.setting.tiktok_username}}" rel="nofollow noopener" target="_blank"&gt;\n                                    &lt;i class="icon-fan_external-link"&gt;&lt;/i&gt;\n                                &lt;/a&gt;\n                                &lt;input ng-if="editingSocials" class="form-control form-control-sm me-2 mx15"\n                                    name="tiktok_username"\n                                    ng-model="model.setting.tiktok_username"\n                                    type="text"\n                                    placeholder="Tiktok Username" /&gt;\n                            &lt;/div&gt;\n\n                            &lt;div class="d-flex align-items-center mb-2"&gt;\n                                &lt;img ng-src="{{ icon_snapchat | webp }}" width="30" height="30" class="me-2 my-1" ng-class="{\'img-muted\': !model.setting.snapchat_username}" /&gt;\n                                &lt;span ng-if="!editingSocials &amp;&amp; model.setting.snapchat_username" ng-click="editSocials()"&gt;{{ model.setting.snapchat_username }}&lt;/span&gt;\n                                &lt;i ng-if="!editingSocials &amp;&amp; !model.setting.snapchat_username" class="text-muted cursor-p fs-0900" ng-click="editSocials()"&gt;Add a SnapChat account&lt;/i&gt;\n                                &lt;popup-info class="ms-2" ng-if="!editingSocials" msg="Enter your FREE Snapchat username here - see Sell Snapchat on \'SUBSCRIPTIONS\' Tab for PAID Snapchat Account" title="FREE Snapchat Username"&gt;\n                                    &lt;b class="icon-fan_help"&gt;&lt;/b&gt;\n                                &lt;/popup-info&gt;\n                                &lt;a ng-if="!editingSocials &amp;&amp; model.setting.snapchat_username" class="ms-2" ng-href="//snapchat.com/{{model.setting.snapchat_username}}" rel="nofollow noopener" target="_blank"&gt;\n                                    &lt;i class="icon-fan_external-link"&gt;&lt;/i&gt;\n                                &lt;/a&gt;\n                                &lt;input ng-if="editingSocials" class="form-control form-control-sm me-2 mx15"\n                                    name="snapchat_username"\n                                    ng-model="model.setting.snapchat_username"\n                                    type="text"\n                                    placeholder="Snapchat Username" /&gt;\n                            &lt;/div&gt;\n\n                            &lt;div class="d-flex align-items-center mb-2"&gt;\n                                &lt;img ng-src="{{ icon_instagram | webp }}" width="30" height="30" class="me-2 my-1" ng-class="{\'img-muted\': !model.setting.instagram_username}" /&gt;\n                                &lt;span ng-if="!editingSocials &amp;&amp; model.setting.instagram_username" ng-click="editSocials()"&gt;{{ model.setting.instagram_username }}&lt;/span&gt;\n                                &lt;i ng-if="!editingSocials &amp;&amp; !model.setting.instagram_username" class="text-muted cursor-p fs-0900" ng-click="editSocials()"&gt;Add a instagram account&lt;/i&gt;\n                                &lt;a ng-if="!editingSocials &amp;&amp; model.setting.instagram_username" class="ms-2" ng-href="//instagram.com/{{model.setting.instagram_username}}" rel="nofollow noopener" target="_blank"&gt;\n                                    &lt;i class="icon-fan_external-link"&gt;&lt;/i&gt;\n                                &lt;/a&gt;\n                                &lt;input ng-if="editingSocials" class="form-control form-control-sm me-2 mx15"\n                                    name="instagram_username"\n                                    ng-model="model.setting.instagram_username"\n                                    type="text"\n                                    placeholder="instagram Username" /&gt;\n                            &lt;/div&gt;\n\n                            &lt;div class="d-flex align-items-center"&gt;\n                                &lt;img ng-src="{{ icon_twitter | webp }}" width="30" height="30" class="me-2 my-1" ng-class="{\'img-muted\': !model.setting.twitter_username}" /&gt;\n                                &lt;span ng-if="!editingSocials &amp;&amp; model.setting.twitter_username" ng-click="editSocials()"&gt;{{ model.setting.twitter_username }}&lt;/span&gt;\n                                &lt;i ng-if="!editingSocials &amp;&amp; !model.setting.twitter_username" class="text-muted cursor-p fs-0900" ng-click="editSocials()"&gt;Add a twitter account&lt;/i&gt;\n                                &lt;a ng-if="!editingSocials &amp;&amp; model.setting.twitter_username" class="ms-2" ng-href="//twitter.com/{{model.setting.twitter_username}}" rel="nofollow noopener" target="_blank"&gt;\n                                    &lt;i class="icon-fan_external-link"&gt;&lt;/i&gt;\n                                &lt;/a&gt;\n                                &lt;input ng-if="editingSocials" class="form-control form-control-sm me-2 mx15"\n                                    name="twitter_username"\n                                    ng-model="model.setting.twitter_username"\n                                    type="text"\n                                    placeholder="twitter Username" /&gt;\n                            &lt;/div&gt;\n\n                            &lt;div class="pt-2" ng-if="editingSocials"&gt;\n                                &lt;button class="btn btn-sm btn-outline-primary" ng-click="saveSocials(model)"&gt;Save&lt;/button&gt;\n                                &lt;button class="btn btn-sm fw-bold btn-cancel" ng-click="cancelEditingSocials()"&gt;Cancel&lt;/button&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n                     &lt;/div&gt;\n\n                &lt;/div&gt;\n\n                &lt;div class="csf_profile_editable_content m-2 my-4 pb-2" ng-if="tabs.subSelector === \'settings\'"&gt;\n                    &lt;div class="m-md-3 m-1"&gt;\n                        &lt;h3 class="fs-6" ng-click="editTipMenu(model)"&gt; Your Tip Menu&lt;/h3&gt;\n                        &lt;div class="border rounded px-md-3 p-2 mb-2 bg-light2 cursor-p" ng-click="editTipMenu(model)"&gt;\n                            &lt;div ng-if="!model.setting.tip_menu_disabled"&gt;\n                                &lt;div class="text-muted"&gt;Your Tip Menu contains&lt;/div&gt;\n                                &lt;div&gt;&lt;b&gt;{{tip_menu.length}}&lt;/b&gt; items&lt;/div&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="model.setting.tip_menu_disabled"&gt;\n                                &lt;div class="text-muted"&gt;Your Tip Menu is &lt;b class="text-danger"&gt;disabled&lt;/b&gt;&lt;/div&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;h3 class="fs-6 pt-3 mb-1"&gt;Your Free Profile&lt;/h3&gt;\n                        &lt;div class="mb-2"&gt;A free profile requires users to verify their credit card to view your free posts.&lt;br&gt;You can remove your free profile at any time.&lt;/div&gt;\n                        &lt;div class="border rounded px-md-3 p-2 mb-2 bg-light2"&gt;\n                            &lt;div ng-if="model.post_count.free &lt;= 0" class="text-muted text-center"&gt;\n                                You haven\'t added any free posts to your profile.\n                            &lt;/div&gt;\n                            &lt;div ng-if="model.post_count.free &gt; 0" class="d-flex align-items-center" &gt;\n                                &lt;div class="flex-grow-1 me-3"&gt;\n                                    &lt;div class="input-group input-group-sm"&gt;\n                                        &lt;button type="button" class="btn btn-outline-primary" data-clipboard-text="{{ profileFreeUrlFull }}" ngclipboard ngclipboard-error="clipboard_error(e)" ngclipboard-success="clipboard_success(e)"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;\n                                        &lt;input type="text" readonly="readonly" class="form-control" value="{{ profileFreeUrlFull }}" onclick="this.setSelectionRange(0, this.value.length)"&gt;\n                                    &lt;/div&gt;\n                                &lt;/div&gt;\n                                &lt;a class="btn btn-sm btn-outline-primary ms-2" ng-href="{{ profileFreeUrl }}"&gt;View&lt;/a&gt;\n                                &lt;button class="btn btn-sm btn-outline-danger ms-2" ng-click="freeProfileRemove()"&gt;&lt;i class="icon-fan_trash"&gt;&lt;/i&gt;&lt;/button&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;h3 class="fs-6 pt-4 mb-1"&gt;Comments&lt;/h3&gt;\n                        &lt;div class="border rounded px-md-3 p-3 d-flex mb-2 align-content-center bg-light2 align-items-center"&gt;\n                            &lt;label class="d-flex align-items-center cursor-p"&gt;\n                                &lt;input id="post_comments_disabled"\n                                        type="checkbox" class="toggle sm" ng-model="commentsEnabled"\n                                        ng-change="updateComments(model)"&gt;\n                                &lt;span class="ms-2 fs-0900"&gt;Allow Comments on your Posts&lt;/span&gt;\n                            &lt;/label&gt;\n                        &lt;/div&gt;\n\n                        &lt;h3 class="fs-6 pt-3 mb-1"&gt;Custom Domain Name&lt;/h3&gt;\n                        &lt;div class="mb-2"&gt;A custom domain name gives your fans direct access to your profile.&lt;/div&gt;\n                        &lt;div ng-if="model.wl_domain &amp;&amp; model.wl_domain.custom_domain" class="border rounded px-md-3 p-3 d-flex flex-column align-items-start mb-2 bg-light2 fs-0900" &gt;\n                            &lt;div class="text-muted"&gt;Your Custom Domain Status&lt;/div&gt;\n                            &lt;div&gt;\n                                {{ model.wl_domain.custom_domain }}:\n                                &lt;b class="text-success"&gt;\n                                    {{ model.wl_domain.custom_domain_status === \'online\' ? \'Online\' : \'\' }}\n                                    {{ model.wl_domain.custom_domain_status === \'approved\' ? \'Approved\' : \'\' }}\n                                &lt;/b&gt;\n                                &lt;b class="text-warning"&gt;\n                                    {{ model.wl_domain.custom_domain_status === \'pending\' ? \'Pending Review\' : \'\' }}\n                                &lt;/b&gt;\n                                &lt;b class="text-danger"&gt;\n                                    {{ model.wl_domain.custom_domain_status === \'not_approved\' ? \'Not Approved\' : \'\' }}\n                                &lt;/b&gt;\n                            &lt;/div&gt;\n                            &lt;a class="btn btn-sm btn-outline-primary lh-1" ng-href="/account/customize/domain_tab"&gt;Review&lt;/a&gt;\n                        &lt;/div&gt;\n\n                        &lt;div class="border rounded px-md-3 p-3 d mb-2 bg-light2 fs-0900" ng-if="!model.wl_domain || !model.wl_domain.custom_domain"&gt;\n                            &lt;a href="/account/customize/domain_tab" class="btn btn-sm btn-outline-primary fw-bold"&gt;Get your Custom Domain&lt;/a&gt;\n                        &lt;/div&gt;\n\n                        &lt;h3 class="fs-6 mb-1 pt-4"&gt;Your Profile&lt;/h3&gt;\n                        &lt;div class="border rounded px-md-3 p-3 d mb-2 bg-light2 fs-0900"&gt;\n                            &lt;a href="/account/customize" class="btn btn-sm btn-outline-primary lh-1 fw-bold"&gt;\n                                &lt;i class="icon-fan_palette icon-md"&gt;&lt;/i&gt; Customize your profile\n                            &lt;/a&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TAB"HOME" --\x3e\n\n            \x3c!-- TAB"POSTS" --\x3e\n            &lt;div ng-if="(tabs.hasAccess &amp;&amp; tabs.selector === \'posts\') || (!tabs.hasAccess &amp;&amp; tabs.hasAccessFree &amp;&amp; tabs.selector === \'posts\') || ((tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.selector === \'free\')"&gt;\n\n                \x3c!-- TIP MENU (USER) --\x3e\n                &lt;div class="csf_profile_tip_menu border bg-light2 rounded p-3 mx-auto my-4" ng-if="!model.can_edit &amp;&amp; !model.setting.tip_menu_disabled &amp;&amp; tip_menu.length &gt; 0"&gt;\n                    &lt;h3 class="fs-6 text-muted"&gt;My TIP MENU&lt;/h3&gt;\n                    &lt;div class="csf_profile_tip_items_holder d-flex flex-column"&gt;\n                        &lt;div class="csf_profile_tip_item w-100 fs-0900 cursor-p" ng-click="tipMenuTip(item)" ng-repeat="item in tip_menu"&gt;\n                            &lt;div class="border rounded p-2 my-1 bg-white d-flex align-items-center justify-content-between overflow-auto fw-bold" ng-if="!isTipMenuProcessing(item)"&gt;\n                                {{item.description}}\n                                &lt;b class="text-muted fs-0875 lh-1 ms-3"&gt;${{item.price}}&lt;/b&gt;\n                            &lt;/div&gt;\n                            &lt;div ng-if="isTipMenuProcessing(item)" class="loader text-center"&gt;\n                                &lt;svg-loading&gt;&lt;/svg-loading&gt;\n                            &lt;/div&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                \x3c!-- BIO + SOCIALS (USER) --\x3e\n                &lt;div class="csf_profile__bio rounded border p-3 mx-auto bg-light2 alert"\n                     ng-class="{\'mt-3\': !model.can_edit &amp;&amp; (model.setting.tip_menu_disabled || (tip_menu &amp;&amp; tip_menu.length === 0))}"\n                     ng-if="!model.can_edit &amp;&amp; (model.content.fans_bio || model.setting.instagram_username || model.setting.snapchat_username || model.setting.twitter_username)"&gt;\n                    &lt;p ng-if="model.content.fans_bio" id="csf_profile__bio_content" class="csf_profile__bio_content whitespace-preline text-break text-center mb-2 fs-0900" ng-class="{\'csf_profile__bio_content_clamp\': !isShowFullBio, \'csf_profile__bio_content_clickable\': !isShowFullBio &amp;&amp; isBioOverflow }" ng-click="showFullBio()" ng-bind-html="model.content.fans_bio | processLinks | processTags:model.content.fans_bio_mentions"&gt;&lt;/p&gt;\n                    &lt;div class="csf_profile__socials mt-0 d-flex justify-content-center"&gt;\n                        &lt;a class="mx-2" ng-if="model.setting.instagram_username" ng-href="//instagram.com/{{ model.setting.instagram_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_instagram | webp }}" width="35" height="35"/&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2" ng-if="model.setting.snapchat_username" ng-href="//snapchat.com/add/{{ model.setting.snapchat_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_snapchat | webp }}" width="35" height="35"/&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2" ng-if="model.setting.twitter_username" ng-href="//twitter.com/{{ model.setting.twitter_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_twitter | webp }}" width="35" height="35"/&gt;\n                        &lt;/a&gt;\n                        &lt;a class="mx-2" ng-if="model.setting.tiktok_username" ng-href="//tiktok.com/@{{ model.setting.tiktok_username }}" rel="nofollow noopener" target="_blank"&gt;\n                            &lt;img ng-src="{{ icon_tiktok | webp }}" width="35" height="35"/&gt;\n                        &lt;/a&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;div class="csf_profile__content_button text-center my-3" ng-if="tabs.selector !== \'free\' &amp;&amp; hasPost &amp;&amp; !model.can_edit &amp;&amp; (!canSubscribe || model.is_trial) &amp;&amp; canSubscribeSnapchat"&gt;\n                    &lt;a class="btn btn-snapchat csf_profile__content_button_item" ng-click="subscribeSnapchat(model.user.username)"&gt;\n                        &lt;i class="icon-fan_snapchat-plain"&gt;&lt;/i&gt;  access {{ model.setting.sell_snapchat.price | currency }}&lt;small&gt;/mo&lt;/small&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n\n                \x3c!-- STREAMING LIVE --\x3e\n                &lt;post-live\n                    ng-if="!pendingVerification &amp;&amp; model.chat.status === \'online_fans\'"\n                    model="model"\n                     &gt;\n                &lt;/post-live&gt;\n\n                &lt;div class="locked_posts" ng-if="!tabs.hasAccess &amp;&amp; tabs.hasAccessFree &amp;&amp; !model.is_gift &amp;&amp; !model.is_subscribed &amp;&amp; !model.is_trial &amp;&amp; !model.can_edit &amp;&amp; winbackPosts.length"&gt;\n                    &lt;div class="profile_tabs_content profile_tabs_content_post"&gt;\n                        &lt;div class="csf_profile__content_main_post profile_post_list_user"&gt;\n                            &lt;post model="model" ng-repeat="item in winbackPosts" post="item"   timeouts="timeouts"&gt;&lt;/post&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n\n                &lt;div class="profile_tabs_content profile_tabs_content_post"&gt;\n\n                    \x3c!-- mobile button --\x3e\n                    &lt;div  profile-mobile-button ng-if="!user_current &amp;&amp; !model.can_edit &amp;&amp; (canSubscribeSnapchat || showTipButton)" class="csf_profile-mobile_btn bg-white border-top start-0 end-0 p-2 position-fixed text-center"&gt;\n                        &lt;div ng-if="canSubscribeSnapchat"&gt;\n                            &lt;a class="btn btn-snapchat" ng-click="subscribeSnapchat(model.user.username)"&gt;\n                                &lt;i class="icon-fan_snapchat-plain"&gt;&lt;/i&gt; access {{ model.setting.sell_snapchat.price | currency }}&lt;small&gt;/mo&lt;/small&gt;\n                            &lt;/a&gt;\n                            &lt;div class="or-inline"&gt;&lt;span&gt;or&lt;/span&gt;&lt;/div&gt;\n                            &lt;a ng-click="tip(model.user.username)" class="loader btn btn-sm btn-secondary"&gt;\n                                &lt;span ng-if="!tipProcessing"&gt;Tip Me&lt;/span&gt;\n                                &lt;svg-loading ng-if="tipProcessing"&gt;&lt;/svg-loading&gt;\n                            &lt;/a&gt;\n                        &lt;/div&gt;\n                        &lt;div ng-if="!canSubscribeSnapchat"&gt;\n                            &lt;a class="loader btn btn-sm btn-secondary" ng-click="tip(model.user.username)"&gt;\n                                &lt;span ng-if="!tipProcessing"&gt;Tip Me&lt;/span&gt;\n                                &lt;svg-loading ng-if="tipProcessing"&gt;&lt;/svg-loading&gt;\n                            &lt;/a&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n\n                    \x3c!-- editor --\x3e\n                    &lt;div id="create_post"&gt;\n                        &lt;editor ng-if="model.can_edit" post="newPost" free="tabs.selector === \'free\'"&gt;&lt;/editor&gt;\n                    &lt;/div&gt;\n\n                    \x3c!-- NO POST  --\x3e\n                    &lt;div class="alert alert-info profile-alert text-center" ng-if="!model.can_edit &amp;&amp; !model.isLoading &amp;&amp; model.post_count.post === 0"&gt;\n                        &lt;div class="text-center mt-4 mb-4"&gt;\n                            &lt;p&gt;&lt;strong&gt;Hey, thanks for coming to my page!&lt;/strong&gt;&lt;/p&gt;\n                            &lt;p ng-if="(!canSubscribe || model.is_trial) &amp;&amp; canSubscribeSnapchat"&gt;\n                                For instant access to my private snaps click below or drop me a tip.\n                            &lt;/p&gt;\n                            &lt;a ng-if="(!canSubscribe || model.is_trial) &amp;&amp; canSubscribeSnapchat" class="btn btn-snapchat" ng-click="subscribeSnapchat(model.user.username)"&gt;\n                                &lt;i class="icon-fan_snapchat-plain"&gt;&lt;/i&gt; Access {{ model.setting.sell_snapchat.price | currency }}&lt;small&gt;/mo&lt;/small&gt;\n                            &lt;/a&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n\n                    \x3c!-- post list --\x3e\n                    &lt;div ng-class="{\'profile_post_list_user\' : !model.can_edit}" ng-if="model.can_edit || model.is_gift || model.is_subscribed || model.is_subscribed_free || model.is_trial" class="csf_profile__content_main_post" infinite-scroll="postPaginator.nextPage(postPaginator.loadIndex)" infinite-scroll-disabled="postPaginator.isLoading || postPaginator.isEnd" infinite-scroll-distance="1"&gt;\n\n                        &lt;div class="csf_post text-center" ng-if="showLoadMore"&gt;\n                            &lt;button class="btn btn-primary btn-sm mt-2 mb-2" ng-if="!postPaginator.isLoading" ng-click="reloadPosts()"&gt;Show more&lt;/button&gt;\n                            &lt;div class="loader text-center" ng-if="postPaginator.isLoading"&gt;&lt;svg-loading &gt;&lt;/svg-loading&gt;&lt;/div&gt;\n                        &lt;/div&gt;\n\n                        &lt;post-promote ng-if="promote" promote="promote" timeouts="timeouts"&gt;&lt;/post-promote&gt;\n\n                        &lt;post model="model" ng-repeat="item in scheduledPosts" post="item" is-scheduled="true" timeouts="timeouts"&gt;&lt;/post&gt;\n\n                        &lt;div ng-repeat="item in pinnedPosts"&gt;\n                            &lt;post-lock hide-offers="true" ng-if="!item.is_subscribed &amp;&amp; (item.post.access === \'paid\' || item.is_locked_payment) &amp;&amp; !model.can_edit" model="model" to-subscribe="true" post="item.post" open-subscribe-benefits="openSubscribeBenefitsLock" open-follow-free="openFollowFree" open-purchase-post="openPurchasePost" is-free="[\'free\', \'paid_and_free\'].includes(item.post.access)"&gt;&lt;/post-lock&gt;\n                            &lt;post ng-if="item.is_subscribed || (item.post.access !== \'paid\' &amp;&amp; !item.is_locked_payment) || model.can_edit" model="model" post="item"   is-pinned="true" timeouts="timeouts"&gt;&lt;/post&gt;\n                        &lt;/div&gt;\n\n                        &lt;div ng-repeat="item in postPaginator.items" ng-if="!pinnedPostsIds.includes(item.post.id)"&gt;\n                            &lt;post-lock hide-offers="true" ng-if="!item.is_subscribed &amp;&amp; (item.post.access === \'paid\' || item.is_locked_payment) &amp;&amp; !model.can_edit" model="model" to-subscribe="true" post="item.post" open-subscribe-benefits="openSubscribeBenefitsLock" open-follow-free="openFollowFree" open-purchase-post="openPurchasePost" is-free="[\'free\', \'paid_and_free\'].includes(item.post.access)"&gt;&lt;/post-lock&gt;\n                            &lt;post ng-if="item.is_subscribed || (item.post.access !== \'paid\' &amp;&amp; !item.is_locked_payment) || model.can_edit" model="model" post="item"   timeouts="timeouts"&gt;&lt;/post&gt;\n                        &lt;/div&gt;\n\n                        \x3c!-- loading  --\x3e\n                        &lt;div class="loader text-center" ng-if="postPaginator.isLoading"&gt;\n                            &lt;svg-loading&gt;&lt;/svg-loading&gt;\n                        &lt;/div&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TAB"POSTS"--\x3e\n\n            \x3c!-- TAB"PHOTOS"--\x3e\n            &lt;div class="profile_tabs_content mt-3" ng-if="tabs.hasAccess &amp;&amp; tabs.selector === \'photos\'"&gt;\n                &lt;p class="fs-0875 fw-bold mb-1 text-muted d-md-none ms-2"&gt;{{ tabs.count.photo.feed }} Photos&lt;/p&gt;\n                &lt;div class="subtab-content"&gt;\n                &lt;div class="profile_subtabs_content"&gt;\n                    &lt;gallery\n                        active-gallery-type="\'photos\'"\n                        adapter="\'profile\'"\n                        base-params="{ sub_type: \'feed\' }"\n                        container="\'profile\'"\n                        group-by="true"\n                        model="model"\n                        on-count-updated="photoCountUpdated"\n                        show-counter="false"\n                        type="\'picture\'"\n                    &gt;&lt;/gallery&gt;\n                &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TAB"PHOTOS"--\x3e\n\n            \x3c!-- TAB"VIDEOS"--\x3e\n            &lt;div class="profile_tabs_content mt-3" ng-if="tabs.hasAccess &amp;&amp; tabs.selector === \'videos\'"&gt;\n                &lt;p class="fs-0875 fw-bold mb-1 text-muted d-md-none ms-2"&gt;{{ tabs.count.video.feed }} Videos&lt;/p&gt;\n                &lt;div class="subtab-content"&gt;\n                    &lt;div class="profile_subtabs_content"&gt;\n                        &lt;gallery\n                            active-gallery-type="\'videos\'"\n                            adapter="\'profile\'"\n                            base-params="{ sub_type: \'feed\' }"\n                            container="\'profile\'"\n                            group-by="true"\n                            model="model"\n                            on-count-updated="videoCountUpdated"\n                            show-counter="false"\n                            type="\'video\'"\n                        &gt;&lt;/gallery&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TAB"VIDEOS"--\x3e\n\n            \x3c!-- TAB"AUDIOS"--\x3e\n            &lt;div class="profile_tabs_content mt-3" ng-if="tabs.hasAccess &amp;&amp; tabs.selector === \'audios\'"&gt;\n                &lt;p class="fs-0875 fw-bold mb-1 text-muted d-md-none ms-2"&gt;{{ tabs.count.audio.feed }} Audio&lt;/p&gt;\n                &lt;div class="subtab-content"&gt;\n                    &lt;div class="profile_subtabs_content"&gt;\n                        &lt;gallery\n                            active-gallery-type="\'audios\'"\n                            adapter="\'profile\'"\n                            base-params="{ sub_type: \'feed\' }"\n                            container="\'profile\'"\n                            group-by="true"\n                            model="model"\n                            on-count-updated="audioCountUpdated"\n                            show-counter="false"\n                            type="\'audio\'"\n                        &gt;&lt;/gallery&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TAB"AUDIOS"--\x3e\n\n            \x3c!-- TAB"PREMIUM"--\x3e\n            &lt;div class="profile_tabs_content mt-3" ng-if="(tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.selector === \'premium\'"&gt;\n                &lt;div ng-if="model.can_edit" class="m-2 d-flex justify-content-end"&gt;\n                    &lt;a class="btn btn-outline-primary btn-with-icon me-1 flex-nowrap" href="/account/direct-message/profile"&gt;\n                        &lt;i class="icon icon-fan_plus icon-md me-md-1"&gt;&lt;/i&gt;\n                        &lt;span class="fw-bold d-none d-sm-block"&gt;Add new media&lt;/span&gt;\n                    &lt;/a&gt;\n                    &lt;a class="btn btn-outline-primary btn-with-icon ms-1" href="/account/direct-message/stats"&gt;\n                        &lt;i class="icon-fan_stats fs-5"&gt;&lt;/i&gt;\n                    &lt;/a&gt;\n                &lt;/div&gt;\n                &lt;ul ng-if="tabs.count.audio.dm &gt; 0 || tabs.count.photo.dm &gt; 0 || tabs.count.video.dm &gt; 0"\n                    class="nav nav-tabs profile-subtabs mb-2"\n                    ng-class="{\'mt-3\': model.can_edit}"\n                    &gt;\n                    &lt;li class="nav-item" ng-if="tabs.count.video.dm &gt; 0"&gt;\n                        &lt;a\n                            ng-click="tabs.subSelect(\'video_dm\')"\n                            ng-class="{ active: tabs.subSelector === \'video_dm\' }"\n                            class="nav-link"\n                            &gt;\n                            {{ tabs.count.video.dm }} Videos\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                    &lt;li class="nav-item" ng-if="tabs.count.photo.dm &gt; 0"&gt;\n                        &lt;a\n                            ng-click="tabs.subSelect(\'photo_dm\')"\n                            ng-class="{ active: tabs.subSelector === \'photo_dm\' }"\n                            class="nav-link"\n                            &gt;\n                            {{ tabs.count.photo.dm }} Photos\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                    &lt;li class="nav-item" ng-if="tabs.count.audio.dm &gt; 0"&gt;\n                        &lt;a\n                            ng-click="tabs.subSelect(\'audio_dm\')"\n                            ng-class="{ active: tabs.subSelector === \'audio_dm\' }"\n                            class="nav-link"\n                            &gt;\n                            {{ tabs.count.audio.dm }} Audios\n                        &lt;/a&gt;\n                    &lt;/li&gt;\n                &lt;/ul&gt;\n\n                &lt;div class="subtab-content"&gt;\n                    &lt;div class="profile_subtabs_content" ng-if="(tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.subSelector === \'video_dm\'"&gt;\n                        &lt;gallery\n                            active-gallery-type="\'videos\'"\n                            adapter="\'profile\'"\n                            base-params="{ sub_type: \'dm_profile_gallery\' }"\n                            container="\'profile\'"\n                            group-by="true"\n                            model="model"\n                            on-count-updated="videoCountUpdated"\n                            show-counter="false"\n                            show-prices="model.can_edit"\n                            type="\'video\'"\n                        &gt;&lt;/gallery&gt;\n                    &lt;/div&gt;\n                    &lt;div class="profile_subtabs_content" ng-if="(tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.subSelector === \'photo_dm\'"&gt;\n                        &lt;gallery\n                            active-gallery-type="\'photos\'"\n                            adapter="\'profile\'"\n                            base-params="{ sub_type: \'dm_profile_gallery\' }"\n                            container="\'profile\'"\n                            group-by="true"\n                            model="model"\n                            on-count-updated="photoCountUpdated"\n                            show-counter="false"\n                            show-prices="model.can_edit"\n                            type="\'picture\'"\n                        &gt;&lt;/gallery&gt;\n                    &lt;/div&gt;\n                    &lt;div class="profile_subtabs_content" ng-if="(tabs.hasAccess || tabs.hasAccessFree) &amp;&amp; tabs.subSelector === \'audio_dm\'"&gt;\n                        &lt;gallery\n                            active-gallery-type="\'audios\'"\n                            adapter="\'profile\'"\n                            base-params="{ sub_type: \'dm_profile_gallery\' }"\n                            container="\'profile\'"\n                            group-by="true"\n                            model="model"\n                            on-count-updated="audioCountUpdated"\n                            show-counter="false"\n                            show-prices="model.can_edit"\n                            type="\'audio\'"\n                        &gt;&lt;/gallery&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n            \x3c!-- /TABS CONTENT --\x3e\n\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}).directive("profileMobileButton",["$window",function(e){return{link:function(t,n){var o=r.a.element(e),i=function(e){(document.body.scrollTop||document.documentElement.scrollTop)&gt;=550&amp;&amp;window.innerHeight+window.pageYOffset&lt;document.body.scrollHeight?document.body.classList.add("body--profile-scrolled"):document.body.classList.remove("body--profile-scrolled")};o.bind("scroll",i),t.$on("$destroy",(function(){document.body.classList.remove("body--profile-scrolled"),o.off("scroll",i)})),i()},replace:!1,restrict:"A"}}]);r.a.module("state_stream_routes",[]).config(["$routeProvider","WebpackResolverProvider","securityAuthorizationProvider",function(e,t,n){e.when("/stream/view/:username",{controller:"StateStreamViewController",resolve:{currentUser:n.requireUser,loadController:t.stream_view},template:I.a}),e.when("/stream/view/c2c/:username",{controller:"StateStreamViewC2cController",resolve:{currentUser:n.requireUser,loadController:t.stream_view_c2c},template:I.a}),e.when("/stream/create",{controller:"StateStreamCreateController",resolve:{currentUser:n.requireModelUser,loadController:t.stream_create},template:I.a}),e.when("/stream/create/c2c",{controller:"StateStreamCreateC2cController",resolve:{currentUser:n.requireModelUser,loadController:t.stream_create_c2c},template:I.a})}]);r.a.module("state_support_routes",[]).config(["$routeProvider","WebpackResolverProvider",function(e,t){e.when("/support/acceptable-use-policy",{controller:"SupportAcceptableCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/compliance",{controller:"SupportComplianceCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/erotic-acceptable-use-policy",{controller:"SupportEroticAcceptableCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/faq",{controller:"SupportFaqCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/how-to-make-money",{controller:"SupportHowToCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/index",{controller:"SupportIndexCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/privacy",{controller:"SupportPrivacyCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/report",{controller:"SupportReportCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/terms",{controller:"SupportTermsCtrl",resolve:{loadController:t.support},template:I.a}).when("/support/terms_site",{controller:"SupportTermsSiteCtrl",resolve:{loadController:t.support},template:I.a})}]);angular.module("ui-bootstrap.multimap",[]).factory("$$multiMap",(function(){return{createNew:function(){var e={};return{entries:function(){return Object.keys(e).map((function(t){return{key:t,value:e[t]}}))},get:function(t){return e[t]},hasKey:function(t){return!!e[t]},keys:function(){return Object.keys(e)},put:function(t,n){e[t]||(e[t]=[]),e[t].push(n)},remove:function(t,n){var o=e[t];if(o){var i=o.indexOf(n);-1!==i&amp;&amp;o.splice(i,1),o.length||delete e[t]}}}}}}));var B=o("Ik5z");angular.module("ui-bootstrap.dropdown",["ui-bootstrap.multimap",B.a]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope","$$multiMap",function(e,t,n){var o=null,i=n.createNew();this.isOnlyOpen=function(e,t){var n=i.get(t);if(n&amp;&amp;n.reduce((function(t,n){return n.scope===e?n:t}),{}))return 1===n.length;return!1},this.open=function(t,n,a){if(o||e.on("click",r),o&amp;&amp;o!==t&amp;&amp;(o.isOpen=!1),o=t,a){var s=i.get(a);if(s)-1===s.map((function(e){return e.scope})).indexOf(t)&amp;&amp;i.put(a,{scope:t});else i.put(a,{scope:t})}},this.close=function(t,n,a){if(o===t&amp;&amp;(e.off("click",r),e.off("keydown",this.keybindFilter),o=null),a){var s=i.get(a);if(s){var c=s.reduce((function(e,n){return n.scope===t?n:e}),{});c&amp;&amp;i.remove(a,c)}}};var r=function(e){if(o&amp;&amp;o.isOpen&amp;&amp;!(e&amp;&amp;"disabled"===o.getAutoClose()||e&amp;&amp;3===e.which)){var n=o.getToggleElement();if(!(e&amp;&amp;n&amp;&amp;n[0].contains(e.target))){var i=o.getDropdownElement();e&amp;&amp;"outsideClick"===o.getAutoClose()&amp;&amp;i&amp;&amp;i[0].contains(e.target)||(o.focusToggleElement(),o.isOpen=!1,t.$$phase||o.$apply())}}};this.keybindFilter=function(e){if(o){var t=o.getDropdownElement(),n=o.getToggleElement(),i=t&amp;&amp;t[0].contains(e.target),a=n&amp;&amp;n[0].contains(e.target);27===e.which?(e.stopPropagation(),o.focusToggleElement(),r()):o.isKeynavEnabled()&amp;&amp;-1!==[38,40].indexOf(e.which)&amp;&amp;o.isOpen&amp;&amp;(i||a)&amp;&amp;(e.preventDefault(),e.stopPropagation(),o.focusDropdownEntry(e.which))}}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,o,i,r,a,s,c,l,u){var d,p,f=this,m=e.$new(),g=i.appendToOpenClass,h=i.openClass,v=angular.noop,b=n.onToggle?o(n.onToggle):angular.noop,_=!1,y=c.find("body");function $(){t.append(f.dropdownMenu)}t.addClass("dropdown"),this.init=function(){n.isOpen&amp;&amp;(p=o(n.isOpen),v=p.assign,e.$watch(p,(function(e){m.isOpen=!!e}))),_=angular.isDefined(n.keyboardNav)},this.toggle=function(e){return m.isOpen=arguments.length?!!e:!m.isOpen,angular.isFunction(v)&amp;&amp;v(m,m.isOpen),m.isOpen},this.isOpen=function(){return m.isOpen},m.getToggleElement=function(){return f.toggleElement},m.getAutoClose=function(){return n.autoClose||"always"},m.getElement=function(){return t},m.isKeynavEnabled=function(){return _},m.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption].focus()},m.getDropdownElement=function(){return f.dropdownMenu},m.focusToggleElement=function(){f.toggleElement&amp;&amp;f.toggleElement[0].focus()},m.$watch("isOpen",(function(i,p){var _=null,w=!1;if(angular.isDefined(n.dropdownAppendTo)){var S=o(n.dropdownAppendTo)(m);S&amp;&amp;(_=angular.element(S))}angular.isDefined(n.dropdownAppendToBody)&amp;&amp;(!1!==o(n.dropdownAppendToBody)(m)&amp;&amp;(w=!0));if(w&amp;&amp;!_&amp;&amp;(_=y),_&amp;&amp;f.dropdownMenu&amp;&amp;(i?(_.append(f.dropdownMenu),t.on("$destroy",$)):(t.off("$destroy",$),$())),_&amp;&amp;f.dropdownMenu){var k,x,C,A=s.positionElements(t,f.dropdownMenu,"bottom-left",!0),T=0;if(k={top:A.top+"px",display:i?"block":"none"},(x=f.dropdownMenu.hasClass("dropdown-menu-right"))?(k.left="auto",(C=s.scrollbarPadding(_)).heightOverflow&amp;&amp;C.scrollbarWidth&amp;&amp;(T=C.scrollbarWidth),k.right=window.innerWidth-T-(A.left+t.prop("offsetWidth"))+"px"):(k.left=A.left+"px",k.right="auto"),!w){var E=s.offset(_);k.top=A.top-E.top+"px",x?k.right=window.innerWidth-(A.left-E.left+t.prop("offsetWidth"))+"px":k.left=A.left-E.left+"px"}f.dropdownMenu.css(k)}var P=_||t,O=_?g:h,M=P.hasClass(O),D=r.isOnlyOpen(e,_);M===!i&amp;&amp;a[_?D?"removeClass":"addClass":i?"addClass":"removeClass"](P,O).then((function(){angular.isDefined(i)&amp;&amp;i!==p&amp;&amp;b(e,{open:!!i})}));if(i)f.dropdownMenuTemplateUrl?u(f.dropdownMenuTemplateUrl).then((function(e){d=m.$new(),l(e.trim())(d,(function(e){var t=e;f.dropdownMenu.replaceWith(t),f.dropdownMenu=t,c.on("keydown",r.keybindFilter)}))})):c.on("keydown",r.keybindFilter),m.focusToggleElement(),r.open(m,t,_);else{if(r.close(m,t,_),f.dropdownMenuTemplateUrl){d&amp;&amp;d.$destroy();var I=angular.element('&lt;ul class="dropdown-menu"&gt;&lt;/ul&gt;');f.dropdownMenu.replaceWith(I),f.dropdownMenu=I}f.selectedOption=null}angular.isFunction(v)&amp;&amp;v(e,i)}))}]).directive("uibDropdown",(function(){return{controller:"UibDropdownController",link:function(e,t,n,o){o.init()}}})).directive("uibDropdownMenu",(function(){return{restrict:"A",require:"?^uibDropdown",link:function(e,t,n,o){if(o&amp;&amp;!angular.isDefined(n.dropdownNested)){t.addClass("dropdown-menu");var i=n.templateUrl;i&amp;&amp;(o.dropdownMenuTemplateUrl=i),o.dropdownMenu||(o.dropdownMenu=t)}}}})).directive("uibDropdownToggle",(function(){return{require:"?^uibDropdown",link:function(e,t,n,o){if(o){t.addClass("dropdown-toggle"),o.toggleElement=t;var i=function(i){i.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply((function(){o.toggle()}))};t.on("click",i),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(o.isOpen,(function(e){t.attr("aria-expanded",!!e)})),e.$on("$destroy",(function(){t.off("click",i)}))}}}}));r.a.module("fans_service_user_tracking",[]).service("userTracking",["$window",function(e){this.getUserTrackingDataAll=function(){try{var t=JSON.parse(e.localStorage.getItem("user_tracking_data"))||{};return t&amp;&amp;t.created_at&amp;&amp;t.created_at&lt;Date.now()-36e5&amp;&amp;(this.clearUserTrackingData(),t={}),t}catch(e){return{}}},this.getUserTrackingDataKey=function(e){var t=this.getUserTrackingDataAll();return t&amp;&amp;t[e]?t[e]:""},this.rememberUserTrackingData=function(){var t=this.getUserTrackingDataAll(),n=this.getCurrentRequestAdvertData(),o={};if(!Object.keys(t).length){var i=this.checkTrackingPromo(n);i&amp;&amp;(this.setCurrentRequestPromoApplied(i),o.advert_id=i)}var r=Object.assign({},{advert_id:"noadvert",tour:"1"},t,n,o);Object.keys(n).length&amp;&amp;(r.landing_page=window.location.href,r.referrer=document.referrer),r.created_at=Date.now();try{e.localStorage.setItem("user_tracking_data",JSON.stringify(r))}catch(e){}},this.checkTrackingPromo=function(e){},this.clearUserTrackingData=function(){try{e.localStorage.removeItem("user_tracking_data")}catch(e){}};var t=null;this.setCurrentRequestPromoApplied=function(e){t=e},this.getCurrentRequestPromoApplied=function(){return t};var n=null;this.getCurrentRequestAdvertData=function(){if(null!==n)return Object.assign({},n);var e=null;try{e=new URL(window.location.href)}catch(e){return{}}return n={},["advert_id","id","wid","aclid","gclid","vclid","ad_id","cmp","custom_thumb","custom_tour","model","t","type","u1","u2","u3","u4"].forEach((function(t){var o=e.searchParams.get(t);o&amp;&amp;("id"===t&amp;&amp;o&amp;&amp;e.searchParams.get("prg")&amp;&amp;1&lt;parseInt(e.searchParams.get("prg"))&amp;&amp;(o=e.searchParams.get("prg")+"_"+o),-1!==["id","wid"].indexOf(t)?t="advert_id":"t"===t&amp;&amp;(t="tour"),n[t]=o)})),Object.assign({},n)},this.getTrackingPixelUrl=function(){var e=this.getCurrentRequestAdvertData(),t=this.getCurrentRequestPromoApplied();try{var n={a:"advert_id",s:"sitecode",t:"tour",r:"referrer",cmp:"cmp",ad:"ad_id",custom_tour:"custom_tour",custom_aclid:"aclid",custom_gclid:"gclid",custom_vclid:"vclid",u1:"u1",u2:"u2",u3:"u3",u4:"u4"},o=new URLSearchParams;return Object.keys(n).forEach((function(i){var r=e[n[i]];"a"===i?r=t||e.advert_id||"noadvert":"t"===i?r="1":"r"===i&amp;&amp;(r=document.referrer),o.append(i,r||"")})),o.append("p","main"),e.type&amp;&amp;o.append("prg",e.type),""}catch(e){return console.error(e),""}}}]);r.a.module("fans_webpack-module-resolver",[]).provider("WebpackResolver",{account_billing_info:["WebpackResolver",function(e){return e.account_billing_info()}],account_calendar:["WebpackResolver",function(e){return e.account_calendar()}],account_cop:["WebpackResolver",function(e){return e.account_cop()}],account_cross_promotion:["WebpackResolver",function(e){return e.account_cross_promotion()}],account_custom_purchases:["WebpackResolver",function(e){return e.account_custom_purchases()}],account_customize:["WebpackResolver",function(e){return e.account_customize()}],account_dashboard:["WebpackResolver",function(e){return e.account_dashboard()}],account_direct_message:["WebpackResolver",function(e){return e.account_direct_message()}],account_earnings:["WebpackResolver",function(e){return e.account_earnings()}],account_email_and_pwd:["WebpackResolver",function(e){return e.account_email_and_pwd()}],account_favorites:["WebpackResolver",function(e){return e.account_favorites()}],account_follower:["WebpackResolver",function(e){return e.account_follower()}],account_following:["WebpackResolver",function(e){return e.account_following()}],account_gift:["WebpackResolver",function(e){return e.account_gift()}],account_purchases:["WebpackResolver",function(e){return e.account_purchases()}],account_referrals:["WebpackResolver",function(e){return e.account_referrals()}],account_setting:["WebpackResolver",function(e){return e.account_setting()}],account_snapchat:["WebpackResolver",function(e){return e.account_snapchat()}],account_stats:["WebpackResolver",function(e){return e.account_stats()}],account_stream_stats:["WebpackResolver",function(e){return e.account_stream_stats()}],account_subscriber:["WebpackResolver",function(e){return e.account_subscriber()}],account_top_spenders:["WebpackResolver",function(e){return e.account_top_spenders()}],account_vault:["WebpackResolver",function(e){return e.account_vault()}],creator_application:["WebpackResolver",function(e){return e.creator_application()}],creator_refer:["WebpackResolver",function(e){return e.creator_refer()}],creator_signup:["WebpackResolver",function(e){return e.creator_signup()}],creator_signup_agreement:["WebpackResolver",function(e){return e.creator_signup_agreement()}],index_feed:["WebpackResolver",function(e){return e.index_feed()}],index_model:["WebpackResolver",function(e){return e.index_model()}],index_popular:["WebpackResolver",function(e){return e.index_popular()}],index_rank:["WebpackResolver",function(e){return e.index_rank()}],post_create:["WebpackResolver",function(e){return e.post_create()}],profile_model:["WebpackResolver",function(e){return e.profile_model()}],profile_user:["WebpackResolver",function(e){return e.profile_user()}],stream_create:["WebpackResolver",function(e){return e.stream_create()}],stream_create_c2c:["WebpackResolver",function(e){return e.stream_create_c2c()}],stream_view:["WebpackResolver",function(e){return e.stream_view()}],stream_view_c2c:["WebpackResolver",function(e){return e.stream_view_c2c()}],support:["WebpackResolver",function(e){return e.support()}],$get:["$ocLazyLoad",function(e){return{account_billing_info:function(){return o.e(10).then(o.bind(null,"QwB/")).then((function(t){return e.load({name:t.default})}))},account_calendar:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(11)]).then(o.bind(null,"HoyL")).then((function(t){return e.load({name:t.default})}))},account_cop:function(){return Promise.all([o.e(50),o.e(12)]).then(o.bind(null,"Vsi9")).then((function(t){return e.load({name:t.default})}))},account_cross_promotion:function(){return o.e(13).then(o.bind(null,"kSpa")).then((function(t){return e.load({name:t.default})}))},account_custom_purchases:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(14)]).then(o.bind(null,"hVNl")).then((function(t){return e.load({name:t.default})}))},account_customize:function(){return Promise.all([o.e(0),o.e(51),o.e(2),o.e(15)]).then(o.bind(null,"Wh+N")).then((function(t){return e.load({name:t.default})}))},account_dashboard:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(16)]).then(o.bind(null,"Rcml")).then((function(t){return e.load({name:t.default})}))},account_direct_message:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(17)]).then(o.bind(null,"1vfp")).then((function(t){return e.load({name:t.default})}))},account_earnings:function(){return Promise.all([o.e(5),o.e(18)]).then(o.bind(null,"8sg0")).then((function(t){return e.load({name:t.default})}))},account_email_and_pwd:function(){return o.e(19).then(o.bind(null,"KBaQ")).then((function(t){return e.load({name:t.default})}))},account_favorites:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(20)]).then(o.bind(null,"GriB")).then((function(t){return e.load({name:t.default})}))},account_follower:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(21)]).then(o.bind(null,"PAcS")).then((function(t){return e.load({name:t.default})}))},account_following:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(22)]).then(o.bind(null,"ge7J")).then((function(t){return e.load({name:t.default})}))},account_gift:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(23)]).then(o.bind(null,"Lt7q")).then((function(t){return e.load({name:t.default})}))},account_purchases:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(24)]).then(o.bind(null,"1HLs")).then((function(t){return e.load({name:t.default})}))},account_referrals:function(){return Promise.all([o.e(7),o.e(25)]).then(o.bind(null,"cr2U")).then((function(t){return e.load({name:t.default})}))},account_setting:function(){return Promise.all([o.e(3),o.e(26)]).then(o.bind(null,"WDz1")).then((function(t){return e.load({name:t.default})}))},account_snapchat:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(27)]).then(o.bind(null,"+BNk")).then((function(t){return e.load({name:t.default})}))},account_stats:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(28)]).then(o.bind(null,"RCAl")).then((function(t){return e.load({name:t.default})}))},account_stream_stats:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(28)]).then(o.bind(null,"1N9v")).then((function(t){return e.load({name:t.default})}))},account_subscriber:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(29)]).then(o.bind(null,"LSYo")).then((function(t){return e.load({name:t.default})}))},account_top_spenders:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(30)]).then(o.bind(null,"5+LK")).then((function(t){return e.load({name:t.default})}))},account_vault:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(31)]).then(o.bind(null,"96Vl")).then((function(t){return e.load({name:t.default})}))},creator_application:function(){return Promise.all([o.e(5),o.e(34)]).then(o.bind(null,"gbA8")).then((function(t){return e.load({name:t.default})}))},creator_refer:function(){return o.e(33).then(o.bind(null,"nbFR")).then((function(t){return e.load({name:t.default})}))},creator_signup:function(){return Promise.all([o.e(5),o.e(34)]).then(o.bind(null,"kxMV")).then((function(t){return e.load({name:t.default})}))},creator_signup_agreement:function(){return o.e(35).then(o.bind(null,"SzOL")).then((function(t){return e.load({name:t.default})}))},index_feed:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(38)]).then(o.bind(null,"fPBR")).then((function(t){return e.load({name:t.default})}))},index_model:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(39)]).then(o.bind(null,"aIMM")).then((function(t){return e.load({name:t.default})}))},index_popular:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(40)]).then(o.bind(null,"wGgo")).then((function(t){return e.load({name:t.default})}))},index_rank:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(41)]).then(o.bind(null,"qXU7")).then((function(t){return e.load({name:t.default})}))},post_create:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(42)]).then(o.bind(null,"46Kw")).then((function(t){return e.load({name:t.default})}))},profile_model:function(){return Promise.all([o.e(0),o.e(1),o.e(7),o.e(2),o.e(43)]).then(o.bind(null,"Imy/")).then((function(t){return e.load({name:t.default})}))},profile_user:function(){return Promise.all([o.e(0),o.e(1),o.e(2),o.e(3),o.e(44)]).then(o.bind(null,"/QUM")).then((function(t){return e.load({name:t.default})}))},stream_create:function(){return Promise.all([o.e(0),o.e(1),o.e(4),o.e(52),o.e(45)]).then(o.bind(null,"qD3W")).then((function(t){return e.load({name:t.default})}))},stream_create_c2c:function(){return Promise.all([o.e(0),o.e(1),o.e(4),o.e(8),o.e(46)]).then(o.bind(null,"aT7L")).then((function(t){return e.load({name:t.default})}))},stream_view:function(){return Promise.all([o.e(4),o.e(9),o.e(6),o.e(47)]).then(o.bind(null,"oyYq")).then((function(t){return e.load({name:t.default})}))},stream_view_c2c:function(){return Promise.all([o.e(4),o.e(9),o.e(8),o.e(6),o.e(48)]).then(o.bind(null,"Bf5M")).then((function(t){return e.load({name:t.default})}))},support:function(){return o.e(49).then(o.bind(null,"O3hV")).then((function(t){return e.load({name:t.default})}))}}}]});r.a.module("fans",["fans_service_user_tracking",S.a?"angularFileUpload":"",s.a,l.a,"utils.autostop","services.browser","camsoda.config","services.date-utils","fans_avatar","fans_custom_attributes","fans_date_time_picker","fans_direct_message_common","fans_dropdown","fans_error","fans_footer","fans_form_error","fans_header","fans_header_dropdown_menu","fans_service_model_manager","fans_onesignal","fans_pending_bar","fans_period_picker",_.a,"fans_service_google_analytics",y.a,"fans_service_seo","fans_service_whitelabel","fans_svg",$.a,"fans_utils_currency_mask","common_utils_filters","fans_elem_ready",x.a,C.a,T.a,P.a,M.a,"recaptcha",p.a,"ui-bootstrap.dropdown","fans_webpack-module-resolver","state_account_billing_info_routes","state_account_calendar_routes","state_account_cop_routes","state_account_cross_promotion_routes","state_account_custom_purchases_routes","state_account_customize_routes","state_account_dashboard_routes","state_account_direct_message_routes","state_account_earnings_routes","state_account_email_and_pwd_routes","state_account_favorites_routes","state_account_follower_routes","state_account_following_routes","state_account_gift_routes","state_account_purchases_routes","state_account_referrals_routes","state_account_setting_routes","state_account_snapchat_routes","state_account_stats_routes","state_account_stream_stats_routes","state_account_subscriber_routes","state_account_top_spenders_routes","state_account_vault_routes","state_creator","state_creator_signup_routes","state_stream_routes","state_index","state_post_create_routes","state_profile","state_support_routes"]).config(["$httpProvider","$locationProvider","$ocLazyLoadProvider","$provide","$routeProvider","localStorageServiceProvider","ngDialogProvider",function(e,t,n,o,i,a,s){var c=document.head.querySelector("[name~=_token][content]");e.defaults.headers.common["X-CSRF-Token"]=c?c.content:null,t.html5Mode(!0),n.config({debug:!!DEBUG_ENABLED,events:!!DEBUG_ENABLED}),i.otherwise({template:'&lt;error msg="Page not found."&gt;&lt;/error&gt;'}),a.setPrefix("csf").setStorageType("localStorage").setStorageCookie(0,"/").setNotify(!0,!0),s.setDefaults({className:"",closeByDocument:!0,closeByEscape:!0,plain:!0,showClose:!1}),o.decorator("FileUploader",["$delegate",function(e){function t(e){var n=document.head.querySelector("[name~=_token][content]");r.a.extend(e,{headers:{"X-CSRF-TOKEN":n?n.content:null}}),t.super_.apply(this,arguments)}return t.prototype=e.prototype,t.super_=e,t.noCSRFFileUploader=e,t}])}]).run(["$location","$rootScope","$timeout","$window","$route","accountService","ModelService","browser","lobbySocket","security","seo","toaster","userTracking","utils","whitelabel","privateService",function(e,t,n,o,i,r,a,s,c,l,u,d,p,f,m,g){s.hasWebpSupport&amp;&amp;document.body.classList.add("has-webp-support"),l.setCurrentUser(CURRENT_USER),p.rememberUserTrackingData(),"undefined"!=typeof MODEL_REF&amp;&amp;MODEL_REF.length&amp;&amp;o.localStorage.setItem("model_ref",MODEL_REF),"undefined"!=typeof GOOGLE?!0===GOOGLE.error?n((function(){d.pop("error","Error","An error occurred while connecting with Google. Try again and accept the permission.")}),1e3):!0===GOOGLE.error_invalid?n((function(){d.pop("error","Error","These credentials do not match our records.")}),1e3):GOOGLE.is_existing_user?l.openCompleteSocialSignupForExistingUser({email:GOOGLE.email,is_model:GOOGLE.is_model,model_ref:GOOGLE.model_ref,studio:GOOGLE.studio}):l.openCompleteSocialSignup({email:GOOGLE.email,is_model:GOOGLE.is_model,model_ref:GOOGLE.model_ref,studio:GOOGLE.studio}):"undefined"!=typeof TWITTER&amp;&amp;(!0===TWITTER.error?n((function(){d.pop("error","Error","An error occurred while connecting with Twitter. Try again and accept the permission.")}),1e3):!0===TWITTER.error_invalid?n((function(){d.pop("error","Error","These credentials do not match our records.")}),1e3):TWITTER.is_existing_user?l.openCompleteSocialSignupForExistingUser({email:TWITTER.email,is_model:TWITTER.is_model,model_ref:TWITTER.model_ref,studio:TWITTER.studio,username:TWITTER.username}):l.openCompleteSocialSignup({email:TWITTER.email,is_model:TWITTER.is_model,model_ref:TWITTER.model_ref,studio:TWITTER.studio,username:TWITTER.username})),t.$on("$routeChangeSuccess",(function(t,i,r){u.setTitle(SITE.display_name),u.setMetaDescription(SITE.custom.meta_description),u.setOgImage(SITE.custom.og_image);var a=e.path().toLowerCase();(!SITE.root_user||SITE.root_user&amp;&amp;!SITE.root_user.custom_domain_only)&amp;&amp;SITE.root_user&amp;&amp;-1!==["","/"].indexOf(a)&amp;&amp;(a="/"+SITE.root_user.username),n((function(){r&amp;&amp;o.scrollTo(0,0)}),0),i.$$route&amp;&amp;i.$$route.page_css_class?document.getElementsByClassName("csf_page")[0].className="csf_page csf_page--"+i.$$route.page_css_class:document.getElementsByClassName("csf_page")[0].className="csf_page"})),c.on("connect",(function(){var e=l.getCurrent();c.getRawSocket().connected&amp;&amp;null!==e.user&amp;&amp;c.send("v3.authorize",{token:e.user.node_token,version:o.protoVersion})})),c.on("fans.logo.update",(function(e){t.$broadcast("logo.update",e)})),c.on("fans.payment",(function(e){t.$broadcast("payment",e)})),c.on("fans.post.thumb",(function(e){t.$broadcast("post.thumb",e)})),c.on("fans.post.update",(function(e){t.$broadcast("post.update",e)})),c.on("fans.stream_private.update",(function(e){"invite"!==e.status?t.$broadcast("stream_private.update",e):g.acceptInvite(e.id,e.username)})),c.on("fans.user.update",(function(e){var t=l.getCurrent();t&amp;&amp;t.user.username===e.user.username&amp;&amp;l.setCurrentUser(e.user)})),c.on("v3.fans.direct_message.auto_reload",(function(e){t.$broadcast("direct_message.auto_reload",e)})),c.on("v3.fans.direct_message.new_message",(function(e){t.$broadcast("direct_message.new_message",e)})),c.on("v3.fans.direct_message.new_notification",(function(e){t.$broadcast("direct_message.new_notification",e)})),c.on("v3.model_verification_update",(function(e){t.$broadcast("model_verification_update",e)})),c.on("v3.tip.received",(function(e){t.$broadcast("tip.received",e)})),c.on("v3.logout",(function(e){f.storage.get("no_logout")||l.logout()})),e.originalPath=e.path,e.path=function(n,o){if(void 0===n)return e.originalPath();if(n!==e.originalPath()){if(n+"/"===e.originalPath()||n===e.originalPath()+"/")return e.originalPath(n);if(!1===o)var r=i.current,a=t.$on("$locationChangeSuccess",(function(){r&amp;&amp;(i.current=r,r=null),a(),a=null}));return e.originalPath(n)}};var h=t.$on("$viewContentLoaded",(function(){h(),"undefined"!=typeof PRIVATE_INVITE?g.acceptInvite(PRIVATE_INVITE.id,PRIVATE_INVITE.username):"undefined"!=typeof PRIVATE_SENT&amp;&amp;("c2c"===PRIVATE_SENT?-1===e.path().indexOf("/stream/create/c2c")&amp;&amp;e.path("/stream/create/c2c"):-1===e.path().indexOf("/stream/create")&amp;&amp;e.path("/stream/create"))}));t.$on("$viewContentLoaded",(function(){"undefined"!=typeof OPEN_SNAPCHAT&amp;&amp;OPEN_SNAPCHAT&amp;&amp;(a.showSnapchatComplete(OPEN_SNAPCHAT),OPEN_SNAPCHAT=null)}));var v=function(){document.documentElement.style.setProperty("--app-height",window.innerHeight+"px")};window.addEventListener("resize",v),v(),r.verifyPayoutStatus()}]);n.default="fans"},Ik5z:function(e,t,n){"use strict";angular.module("ui-bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(e,t){var n,o,i={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},r={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/},a=/(HTML|BODY)/;return{getRawNode:function(e){return e.nodeName?e:e[0]||e},parseStyle:function(e){return e=parseFloat(e),isFinite(e)?e:0},offsetParent:function(n){var o,i=(n=this.getRawNode(n)).offsetParent||e[0].documentElement;for(;i&amp;&amp;i!==e[0].documentElement&amp;&amp;(o=i,"static"===(t.getComputedStyle(o).position||"static"));)i=i.offsetParent;return i||e[0].documentElement},scrollbarWidth:function(i){if(i){if(angular.isUndefined(o)){var r=e.find("body");r.addClass("uib-position-body-scrollbar-measure"),o=t.innerWidth-r[0].clientWidth,o=isFinite(o)?o:0,r.removeClass("uib-position-body-scrollbar-measure")}return o}if(angular.isUndefined(n)){var a=angular.element('&lt;div class="uib-position-scrollbar-measure"&gt;&lt;/div&gt;');e.find("body").append(a),n=a[0].offsetWidth-a[0].clientWidth,n=isFinite(n)?n:0,a.remove()}return n},scrollbarPadding:function(e){e=this.getRawNode(e);var n=t.getComputedStyle(e),o=this.parseStyle(n.paddingRight),i=this.parseStyle(n.paddingBottom),r=this.scrollParent(e,!1,!0),s=this.scrollbarWidth(a.test(r.tagName));return{scrollbarWidth:s,widthOverflow:r.scrollWidth&gt;r.clientWidth,right:o+s,originalRight:o,heightOverflow:r.scrollHeight&gt;r.clientHeight,bottom:i+s,originalBottom:i}},isScrollable:function(e,n){e=this.getRawNode(e);var o=n?i.hidden:i.normal,r=t.getComputedStyle(e);return o.test(r.overflow+r.overflowY+r.overflowX)},scrollParent:function(n,o,r){n=this.getRawNode(n);var a=o?i.hidden:i.normal,s=e[0].documentElement,c=t.getComputedStyle(n);if(r&amp;&amp;a.test(c.overflow+c.overflowY+c.overflowX))return n;var l="absolute"===c.position,u=n.parentElement||s;if(u===s||"fixed"===c.position)return s;for(;u.parentElement&amp;&amp;u!==s;){var d=t.getComputedStyle(u);if(l&amp;&amp;"static"!==d.position&amp;&amp;(l=!1),!l&amp;&amp;a.test(d.overflow+d.overflowY+d.overflowX))break;u=u.parentElement}return u},position:function(n,o){n=this.getRawNode(n);var i=this.offset(n);if(o){var r=t.getComputedStyle(n);i.top-=this.parseStyle(r.marginTop),i.left-=this.parseStyle(r.marginLeft)}var a=this.offsetParent(n),s={top:0,left:0};return a!==e[0].documentElement&amp;&amp;((s=this.offset(a)).top+=a.clientTop-a.scrollTop,s.left+=a.clientLeft-a.scrollLeft),{width:Math.round(angular.isNumber(i.width)?i.width:n.offsetWidth),height:Math.round(angular.isNumber(i.height)?i.height:n.offsetHeight),top:Math.round(i.top-s.top),left:Math.round(i.left-s.left)}},offset:function(n){var o=(n=this.getRawNode(n)).getBoundingClientRect();return{width:Math.round(angular.isNumber(o.width)?o.width:n.offsetWidth),height:Math.round(angular.isNumber(o.height)?o.height:n.offsetHeight),top:Math.round(o.top+(t.pageYOffset||e[0].documentElement.scrollTop)),left:Math.round(o.left+(t.pageXOffset||e[0].documentElement.scrollLeft))}},viewportOffset:function(n,o,i){i=!1!==i;var r=(n=this.getRawNode(n)).getBoundingClientRect(),a={top:0,left:0,bottom:0,right:0},s=o?e[0].documentElement:this.scrollParent(n),c=s.getBoundingClientRect();if(a.top=c.top+s.clientTop,a.left=c.left+s.clientLeft,s===e[0].documentElement&amp;&amp;(a.top+=t.pageYOffset,a.left+=t.pageXOffset),a.bottom=a.top+s.clientHeight,a.right=a.left+s.clientWidth,i){var l=t.getComputedStyle(s);a.top+=this.parseStyle(l.paddingTop),a.bottom-=this.parseStyle(l.paddingBottom),a.left+=this.parseStyle(l.paddingLeft),a.right-=this.parseStyle(l.paddingRight)}return{top:Math.round(r.top-a.top),bottom:Math.round(a.bottom-r.bottom),left:Math.round(r.left-a.left),right:Math.round(a.right-r.right)}},parsePlacement:function(e){var t=r.auto.test(e);return t&amp;&amp;(e=e.replace(r.auto,"")),(e=e.split("-"))[0]=e[0]||"top",r.primary.test(e[0])||(e[0]="top"),e[1]=e[1]||"center",r.secondary.test(e[1])||(e[1]="center"),e[2]=!!t,e},positionElements:function(e,n,o,i){e=this.getRawNode(e),n=this.getRawNode(n);var a=angular.isDefined(n.offsetWidth)?n.offsetWidth:n.prop("offsetWidth"),s=angular.isDefined(n.offsetHeight)?n.offsetHeight:n.prop("offsetHeight");o=this.parsePlacement(o);var c=i?this.offset(e):this.position(e),l={top:0,left:0,placement:""};if(o[2]){var u=this.viewportOffset(e,i),d=t.getComputedStyle(n),p={width:a+Math.round(Math.abs(this.parseStyle(d.marginLeft)+this.parseStyle(d.marginRight))),height:s+Math.round(Math.abs(this.parseStyle(d.marginTop)+this.parseStyle(d.marginBottom)))};if(o[0]="top"===o[0]&amp;&amp;p.height&gt;u.top&amp;&amp;p.height&lt;=u.bottom?"bottom":"bottom"===o[0]&amp;&amp;p.height&gt;u.bottom&amp;&amp;p.height&lt;=u.top?"top":"left"===o[0]&amp;&amp;p.width&gt;u.left&amp;&amp;p.width&lt;=u.right?"right":"right"===o[0]&amp;&amp;p.width&gt;u.right&amp;&amp;p.width&lt;=u.left?"left":o[0],o[1]="top"===o[1]&amp;&amp;p.height-c.height&gt;u.bottom&amp;&amp;p.height-c.height&lt;=u.top?"bottom":"bottom"===o[1]&amp;&amp;p.height-c.height&gt;u.top&amp;&amp;p.height-c.height&lt;=u.bottom?"top":"left"===o[1]&amp;&amp;p.width-c.width&gt;u.right&amp;&amp;p.width-c.width&lt;=u.left?"right":"right"===o[1]&amp;&amp;p.width-c.width&gt;u.left&amp;&amp;p.width-c.width&lt;=u.right?"left":o[1],"center"===o[1])if(r.vertical.test(o[0])){var f=c.width/2-a/2;u.left+f&lt;0&amp;&amp;p.width-c.width&lt;=u.right?o[1]="left":u.right+f&lt;0&amp;&amp;p.width-c.width&lt;=u.left&amp;&amp;(o[1]="right")}else{var m=c.height/2-p.height/2;u.top+m&lt;0&amp;&amp;p.height-c.height&lt;=u.bottom?o[1]="top":u.bottom+m&lt;0&amp;&amp;p.height-c.height&lt;=u.top&amp;&amp;(o[1]="bottom")}}switch(o[0]){case"top":l.top=c.top-s;break;case"bottom":l.top=c.top+c.height;break;case"left":l.left=c.left-a;break;case"right":l.left=c.left+c.width}switch(o[1]){case"top":l.top=c.top;break;case"bottom":l.top=c.top+c.height-s;break;case"left":l.left=c.left;break;case"right":l.left=c.left+c.width-a;break;case"center":r.vertical.test(o[0])?l.left=c.left+c.width/2-a/2:l.top=c.top+c.height/2-s/2}return l.top=Math.round(l.top),l.left=Math.round(l.left),l.placement="center"===o[1]?o[0]:o[0]+"-"+o[1],l},adjustTop:function(e,t,n,o){if(-1!==e.indexOf("top")&amp;&amp;n!==o)return{top:t.top-o+"px"}},positionArrow:function(e,n){var o=(e=this.getRawNode(e)).querySelector(".tooltip-inner, .popover-inner");if(o){var i=angular.element(o).hasClass("tooltip-inner"),a=i?e.querySelector(".tooltip-arrow"):e.querySelector(".arrow");if(a){var s={top:"",bottom:"",left:"",right:""};if("center"!==(n=this.parsePlacement(n))[1]){var c="border-"+n[0]+"-width",l=t.getComputedStyle(a)[c],u="border-";r.vertical.test(n[0])?u+=n[0]+"-"+n[1]:u+=n[1]+"-"+n[0],u+="-radius";var d=t.getComputedStyle(i?o:e)[u];switch(n[0]){case"top":s.bottom=i?"0":"-"+l;break;case"bottom":s.top=i?"0":"-"+l;break;case"left":s.right=i?"0":"-"+l;break;case"right":s.left=i?"0":"-"+l}s[n[1]]=d,angular.element(a).css(s)}else angular.element(a).css(s)}}}}}]),t.a="ui-bootstrap.position"},KCCg:function(e,t){var n,o,i=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===r||!n)&amp;&amp;setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(e){n=r}try{o="function"==typeof clearTimeout?clearTimeout:a}catch(e){o=a}}();var c,l=[],u=!1,d=-1;function p(){u&amp;&amp;c&amp;&amp;(u=!1,c.length?l=c.concat(l):d=-1,l.length&amp;&amp;f())}function f(){if(!u){var e=s(p);u=!0;for(var t=l.length;t;){for(c=l,l=[];++d&lt;t;)c&amp;&amp;c[d].run();d=-1,t=l.length}c=null,u=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===a||!o)&amp;&amp;clearTimeout)return o=clearTimeout,clearTimeout(e);try{o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length&gt;1)for(var n=1;n&lt;arguments.length;n++)t[n-1]=arguments[n];l.push(new m(e,t)),1!==l.length||u||s(f)},m.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},LtqK:function(e,t,n){"use strict";(function(n,o){var i;!function(){var r,a="Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45";if(S="object"==typeof n&amp;&amp;"object"==typeof n.versions&amp;&amp;n.versions.node&amp;&amp;!n.browser){var s=n.versions.node.toString().replace("v","");a="Nodejs/"+s+" (NodeOS) AppleWebKit/"+s+" (KHTML, like Gecko) Nodejs/"+s+" Nodejs/"+s}r=void 0!==o?o:window,"undefined"==typeof window&amp;&amp;("undefined"==typeof window&amp;&amp;void 0!==o&amp;&amp;(o.navigator={userAgent:a,getUserMedia:function(){}},r.window=o),"undefined"==typeof location&amp;&amp;(r.location={protocol:"file:",href:"",hash:""}),"undefined"==typeof screen&amp;&amp;(r.screen={width:0,height:0}));var c=window.navigator;void 0!==c?(void 0!==c.webkitGetUserMedia&amp;&amp;(c.getUserMedia=c.webkitGetUserMedia),void 0!==c.mozGetUserMedia&amp;&amp;(c.getUserMedia=c.mozGetUserMedia)):c={getUserMedia:function(){},userAgent:a};var l=!!/Android|webOS|iPhone|iPad|iPod|BB10|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(c.userAgent||""),u=!(-1===c.userAgent.indexOf("Edge")||!c.msSaveOrOpenBlob&amp;&amp;!c.msSaveBlob),d=!!window.opera||c.userAgent.indexOf(" OPR/")&gt;=0,p=void 0!==window.InstallTrigger,f=/^((?!chrome|android).)*safari/i.test(c.userAgent),m=!!window.chrome&amp;&amp;!d,g="undefined"!=typeof document&amp;&amp;!!document.documentMode&amp;&amp;!u;function h(e,t){var n=0,o=!1,i=window.setInterval((function(){e()&amp;&amp;(window.clearInterval(i),t(o)),n++&gt;50&amp;&amp;(window.clearInterval(i),t(o=!0))}),10)}var v={Android:function(){return c.userAgent.match(/Android/i)},BlackBerry:function(){return c.userAgent.match(/BlackBerry|BB10/i)},iOS:function(){return c.userAgent.match(/iPhone|iPad|iPod/i)},Opera:function(){return c.userAgent.match(/Opera Mini/i)},Windows:function(){return c.userAgent.match(/IEMobile/i)},any:function(){return v.Android()||v.BlackBerry()||v.iOS()||v.Opera()||v.Windows()},getOsName:function(){var e="Unknown OS";return v.Android()&amp;&amp;(e="Android"),v.BlackBerry()&amp;&amp;(e="BlackBerry"),v.iOS()&amp;&amp;(e="iOS"),v.Opera()&amp;&amp;(e="Opera Mini"),v.Windows()&amp;&amp;(e="Windows"),e}};var b="Unknown OS",_="Unknown OS Version";var y,$,w=function(){for(var e,t=c.appVersion,n=c.userAgent,o="-",i=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}],r=0;e=i[r];r++)if(e.r.test(n)){o=e.s;break}var a="-";switch(/Windows/.test(o)&amp;&amp;(/Windows (.*)/.test(o)&amp;&amp;(a=/Windows (.*)/.exec(o)[1]),o="Windows"),o){case"Mac OS X":/Mac OS X (10[\.\_\d]+)/.test(n)&amp;&amp;(a=/Mac OS X (10[\.\_\d]+)/.exec(n)[1]);break;case"Android":/Android ([\.\_\d]+)/.test(n)&amp;&amp;(a=/Android ([\.\_\d]+)/.exec(n)[1]);break;case"iOS":/OS (\d+)_(\d+)_?(\d+)?/.test(n)&amp;&amp;(a=(a=/OS (\d+)_(\d+)_?(\d+)?/.exec(t))[1]+"."+a[2]+"."+(0|a[3]))}return{osName:o,osVersion:a}}();w&amp;&amp;w.osName&amp;&amp;"-"!=w.osName?(b=w.osName,_=w.osVersion):v.any()&amp;&amp;"Android"==(b=v.getOsName())&amp;&amp;(_=!!($=(y=(y||c.userAgent).toLowerCase()).match(/android\s([0-9\.]*)/))&amp;&amp;$[1]);var S="object"==typeof n&amp;&amp;"object"==typeof n.versions&amp;&amp;n.versions.node;"Unknown OS"===b&amp;&amp;S&amp;&amp;(b="Nodejs",_=n.versions.node.toString().replace("v",""));var k=!1,x=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach((function(e){"undefined"!=typeof document&amp;&amp;"function"==typeof document.createElement&amp;&amp;(!k&amp;&amp;e in document.createElement("canvas")&amp;&amp;(k=!0),!x&amp;&amp;e in document.createElement("video")&amp;&amp;(x=!0))}));var C=/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/,A=/([0-9]{1,3}(\.[0-9]{1,3}){3})/,T=/[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}/;var E=[],P=[],O=[],M=[];c.mediaDevices&amp;&amp;c.mediaDevices.enumerateDevices&amp;&amp;(c.enumerateDevices=function(e){var t=c.mediaDevices.enumerateDevices();t&amp;&amp;t.then?c.mediaDevices.enumerateDevices().then(e).catch((function(){e([])})):e([])});var D=!1;"undefined"!=typeof MediaStreamTrack&amp;&amp;"getSources"in MediaStreamTrack?D=!0:c.mediaDevices&amp;&amp;c.mediaDevices.enumerateDevices&amp;&amp;(D=!0);var I=!1,U=!1,L=!1,R=!1,F=!1;function N(e){if(D)if(!c.enumerateDevices&amp;&amp;window.MediaStreamTrack&amp;&amp;window.MediaStreamTrack.getSources&amp;&amp;(c.enumerateDevices=window.MediaStreamTrack.getSources.bind(window.MediaStreamTrack)),!c.enumerateDevices&amp;&amp;c.enumerateDevices&amp;&amp;(c.enumerateDevices=c.enumerateDevices.bind(c)),c.enumerateDevices){E=[],P=[],O=[],M=[],I=!1,U=!1,L=!1,R=!1,F=!1;var t={};c.enumerateDevices((function(n){n.forEach((function(e){var n={};for(var o in e)try{"function"!=typeof e[o]&amp;&amp;(n[o]=e[o])}catch(e){}t[n.deviceId+n.label+n.kind]||("audio"===n.kind&amp;&amp;(n.kind="audioinput"),"video"===n.kind&amp;&amp;(n.kind="videoinput"),n.deviceId||(n.deviceId=n.id),n.id||(n.id=n.deviceId),n.label?("videoinput"!==n.kind||F||(F=!0),"audioinput"!==n.kind||R||(R=!0)):(n.isCustomLabel=!0,"videoinput"===n.kind?n.label="Camera "+(M.length+1):"audioinput"===n.kind?n.label="Microphone "+(P.length+1):"audiooutput"===n.kind?n.label="Speaker "+(O.length+1):n.label="Please invoke getUserMedia once.",void 0!==j&amp;&amp;j.browser.isChrome&amp;&amp;j.browser.version&gt;=46&amp;&amp;!/^(https:|chrome-extension:)$/g.test(location.protocol||"")&amp;&amp;"undefined"!=typeof document&amp;&amp;"string"==typeof document.domain&amp;&amp;document.domain.search&amp;&amp;-1===document.domain.search(/localhost|127.0./g)&amp;&amp;(n.label="HTTPs is required to get label of this "+n.kind+" device.")),"audioinput"===n.kind&amp;&amp;(I=!0,-1===P.indexOf(n)&amp;&amp;P.push(n)),"audiooutput"===n.kind&amp;&amp;(U=!0,-1===O.indexOf(n)&amp;&amp;O.push(n)),"videoinput"===n.kind&amp;&amp;(L=!0,-1===M.indexOf(n)&amp;&amp;M.push(n)),E.push(n),t[n.deviceId+n.label+n.kind]=n)})),void 0!==j&amp;&amp;(j.MediaDevices=E,j.hasMicrophone=I,j.hasSpeakers=U,j.hasWebcam=L,j.isWebsiteHasWebcamPermissions=F,j.isWebsiteHasMicrophonePermissions=R,j.audioInputDevices=P,j.audioOutputDevices=O,j.videoInputDevices=M),e&amp;&amp;e()}))}else e&amp;&amp;e();else e&amp;&amp;e()}var j=window.DetectRTC||{};j.browser=function(){c.appVersion;var e,t,n,o=c.userAgent,i=c.appName,r=""+parseFloat(c.appVersion),a=parseInt(c.appVersion,10);if(f&amp;&amp;!m&amp;&amp;-1!==o.indexOf("CriOS")&amp;&amp;(f=!1,m=!0),d){i="Opera";try{a=(r=c.userAgent.split("OPR/")[1].split(" ")[0]).split(".")[0]}catch(e){r="0.0.0.0",a=0}}else g?((t=o.indexOf("rv:"))&gt;0?r=o.substring(t+3):(t=o.indexOf("MSIE"),r=o.substring(t+5)),i="IE"):m?(t=o.indexOf("Chrome"),i="Chrome",r=o.substring(t+7)):f?(t=o.indexOf("Safari"),i="Safari",r=o.substring(t+7),-1!==(t=o.indexOf("Version"))&amp;&amp;(r=o.substring(t+8)),-1!==c.userAgent.indexOf("Version/")&amp;&amp;(r=c.userAgent.split("Version/")[1].split(" ")[0])):p?(t=o.indexOf("Firefox"),i="Firefox",r=o.substring(t+8)):(e=o.lastIndexOf(" ")+1)&lt;(t=o.lastIndexOf("/"))&amp;&amp;(i=o.substring(e,t),r=o.substring(t+1),i.toLowerCase()===i.toUpperCase()&amp;&amp;(i=c.appName));return u&amp;&amp;(i="Edge",r=c.userAgent.split("Edge/")[1]),-1!==(n=r.search(/[; \)]/))&amp;&amp;(r=r.substring(0,n)),a=parseInt(""+r,10),isNaN(a)&amp;&amp;(r=""+parseFloat(c.appVersion),a=parseInt(c.appVersion,10)),{fullVersion:r,version:a,name:i,isPrivateBrowsing:!1}}(),function(e){var t;try{if(window.webkitRequestFileSystem)window.webkitRequestFileSystem(window.TEMPORARY,1,(function(){t=!1}),(function(e){t=!0}));else if(window.indexedDB&amp;&amp;/Firefox/.test(window.navigator.userAgent)){var n;try{(n=window.indexedDB.open("test")).onerror=function(){return!0}}catch(e){t=!0}void 0===t&amp;&amp;h((function(){return"done"===n.readyState}),(function(e){e||(t=!n.result)}))}else if(function(e){var t=e.toLowerCase();if(0===t.indexOf("msie")&amp;&amp;0===t.indexOf("trident"))return!1;var n=/(?:msie|rv:)\s?([\d\.]+)/.exec(t);return!!(n&amp;&amp;parseInt(n[1],10)&gt;=10)}(window.navigator.userAgent)){t=!1;try{window.indexedDB||(t=!0)}catch(e){t=!0}}else if(window.localStorage&amp;&amp;/Safari/.test(window.navigator.userAgent)){try{window.localStorage.setItem("test",1)}catch(e){t=!0}void 0===t&amp;&amp;(t=!1,window.localStorage.removeItem("test"))}}catch(e){t=!1}h((function(){return void 0!==t}),(function(n){e(t)}))}((function(e){j.browser.isPrivateBrowsing=!!e})),j.browser["is"+j.browser.name]=!0,j.osName=b,j.osVersion=_;"object"==typeof n&amp;&amp;"object"==typeof n.versions&amp;&amp;n.versions["node-webkit"];var B=!1;["RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","RTCIceGatherer"].forEach((function(e){B||e in window&amp;&amp;(B=!0)})),j.isWebRTCSupported=B,j.isORTCSupported="undefined"!=typeof RTCIceGatherer;var V=!1;(j.browser.isChrome&amp;&amp;j.browser.version&gt;=35?V=!0:j.browser.isFirefox&amp;&amp;j.browser.version&gt;=34?V=!0:j.browser.isEdge&amp;&amp;j.browser.version&gt;=17?V=!0:"Android"===j.osName&amp;&amp;j.browser.isChrome&amp;&amp;(V=!0),/^(https:|chrome-extension:)$/g.test(location.protocol||""))||("undefined"!=typeof document&amp;&amp;"string"==typeof document.domain&amp;&amp;document.domain.search&amp;&amp;-1===document.domain.search(/localhost|127.0./g)&amp;&amp;(j.browser.isChrome||j.browser.isEdge||j.browser.isOpera)?V=!1:j.browser.isFirefox&amp;&amp;(V=!1));j.isScreenCapturingSupported=V;var z={isSupported:!1,isCreateMediaStreamSourceSupported:!1};["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"].forEach((function(e){z.isSupported||e in window&amp;&amp;(z.isSupported=!0,window[e]&amp;&amp;"createMediaStreamSource"in window[e].prototype&amp;&amp;(z.isCreateMediaStreamSourceSupported=!0))})),j.isAudioContextSupported=z.isSupported,j.isCreateMediaStreamSourceSupported=z.isCreateMediaStreamSourceSupported;var q=!1;j.browser.isChrome&amp;&amp;j.browser.version&gt;31&amp;&amp;(q=!0),j.isRtpDataChannelsSupported=q;var H=!1;j.browser.isFirefox&amp;&amp;j.browser.version&gt;28?H=!0:j.browser.isChrome&amp;&amp;j.browser.version&gt;25?H=!0:j.browser.isOpera&amp;&amp;j.browser.version&gt;=11&amp;&amp;(H=!0),j.isSctpDataChannelsSupported=H,j.isMobileDevice=l;var W=!1;c.getUserMedia?W=!0:c.mediaDevices&amp;&amp;c.mediaDevices.getUserMedia&amp;&amp;(W=!0),j.browser.isChrome&amp;&amp;j.browser.version&gt;=46&amp;&amp;!/^(https:|chrome-extension:)$/g.test(location.protocol||"")&amp;&amp;"undefined"!=typeof document&amp;&amp;"string"==typeof document.domain&amp;&amp;document.domain.search&amp;&amp;-1===document.domain.search(/localhost|127.0./g)&amp;&amp;(W="Requires HTTPs"),"Nodejs"===j.osName&amp;&amp;(W=!1),j.isGetUserMediaSupported=W;var G,Y,K,J="";screen.width&amp;&amp;(J+=(screen.width?screen.width:"")+" x "+(screen.height?screen.height:""));j.displayResolution=J,j.displayAspectRatio=(G=screen.width,Y=screen.height,K=function e(t,n){return 0==n?t:e(n,t%n)}(G,Y),G/K/(Y/K)).toFixed(2),j.isCanvasSupportsStreamCapturing=k,j.isVideoSupportsStreamCapturing=x,"Chrome"==j.browser.name&amp;&amp;j.browser.version&gt;=53&amp;&amp;(j.isCanvasSupportsStreamCapturing||(j.isCanvasSupportsStreamCapturing="Requires chrome flag: enable-experimental-web-platform-features"),j.isVideoSupportsStreamCapturing||(j.isVideoSupportsStreamCapturing="Requires chrome flag: enable-experimental-web-platform-features")),j.DetectLocalIPAddress=function(e,t){if(j.isWebRTCSupported){var n=!0,o=!0;!function(e,t){if("undefined"==typeof document||"function"!=typeof document.getElementById)return;var n={},o=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;if(!o){var i=document.getElementById("iframe");if(!i)return;var r=i.contentWindow;o=r.RTCPeerConnection||r.mozRTCPeerConnection||r.webkitRTCPeerConnection}if(!o)return;var a=null;"Chrome"===j.browser&amp;&amp;j.browser.version&lt;58&amp;&amp;(a={optional:[{RtpDataChannels:!0}]});var s=new o({iceServers:[{urls:"stun:stun.l.google.com:19302"}]},a);t&amp;&amp;(s.addStream?s.addStream(t):s.addTrack&amp;&amp;t.getTracks()[0]&amp;&amp;s.addTrack(t.getTracks()[0],t));function c(t){if(t){var o=A.exec(t);if(o){var i=o[1],r=t.match(C);void 0===n[i]&amp;&amp;e(i,r,!0),n[i]=!0}}else e()}if(s.onicecandidate=function(e){e.candidate&amp;&amp;e.candidate.candidate?c(e.candidate.candidate):c()},!t)try{s.createDataChannel("sctp",{})}catch(e){}j.isPromisesSupported?s.createOffer().then((function(e){s.setLocalDescription(e).then(l)})):s.createOffer((function(e){s.setLocalDescription(e,l,(function(){}))}),(function(){}));function l(){s.localDescription.sdp.split("\n").forEach((function(e){e&amp;&amp;0===e.indexOf("a=candidate:")&amp;&amp;c(e)}))}}((function(t){t?t.match(C)?e("Local: "+t,n=!1,o):t.match(T)?e("Public: "+t,n,o=!1):e("Public: "+t,n,o):e()}),t)}},j.isWebSocketsSupported="WebSocket"in window&amp;&amp;2===window.WebSocket.CLOSING,j.isWebSocketsBlocked=!j.isWebSocketsSupported,"Nodejs"===j.osName&amp;&amp;(j.isWebSocketsSupported=!0,j.isWebSocketsBlocked=!1),j.checkWebSocketsSupport=function(e){e=e||function(){};try{var t,n=new WebSocket("wss://echo.websocket.org:443/");n.onopen=function(){j.isWebSocketsBlocked=!1,t=(new Date).getTime(),n.send("ping")},n.onmessage=function(){j.WebsocketLatency=(new Date).getTime()-t+"ms",e(),n.close(),n=null},n.onerror=function(){j.isWebSocketsBlocked=!0,e()}}catch(t){j.isWebSocketsBlocked=!0,e()}},j.load=function(e){N(e=e||function(){})},j.MediaDevices=void 0!==E?E:[],j.hasMicrophone=I,j.hasSpeakers=U,j.hasWebcam=L,j.isWebsiteHasWebcamPermissions=F,j.isWebsiteHasMicrophonePermissions=R,j.audioInputDevices=P,j.audioOutputDevices=O,j.videoInputDevices=M;var X=!1;"undefined"!=typeof document&amp;&amp;"function"==typeof document.createElement&amp;&amp;"setSinkId"in document.createElement("video")&amp;&amp;(X=!0),j.isSetSinkIdSupported=X;var Z=!1;j.browser.isFirefox&amp;&amp;"undefined"!=typeof mozRTCPeerConnection?"getSenders"in mozRTCPeerConnection.prototype&amp;&amp;(Z=!0):j.browser.isChrome&amp;&amp;"undefined"!=typeof webkitRTCPeerConnection&amp;&amp;"getSenders"in webkitRTCPeerConnection.prototype&amp;&amp;(Z=!0),j.isRTPSenderReplaceTracksSupported=Z;var Q=!1;j.browser.isFirefox&amp;&amp;j.browser.version&gt;38&amp;&amp;(Q=!0),j.isRemoteStreamProcessingSupported=Q;var ee=!1;"undefined"!=typeof MediaStreamTrack&amp;&amp;"applyConstraints"in MediaStreamTrack.prototype&amp;&amp;(ee=!0),j.isApplyConstraintsSupported=ee;var te=!1;j.browser.isFirefox&amp;&amp;j.browser.version&gt;=43&amp;&amp;(te=!0),j.isMultiMonitorScreenCapturingSupported=te,j.isPromisesSupported=!!("Promise"in window),j.version="1.3.9",void 0===j&amp;&amp;(window.DetectRTC={});var ne=window.MediaStream;void 0===ne&amp;&amp;"undefined"!=typeof webkitMediaStream&amp;&amp;(ne=webkitMediaStream),j.MediaStream=void 0!==ne&amp;&amp;"function"==typeof ne&amp;&amp;Object.keys(ne.prototype),"undefined"!=typeof MediaStreamTrack?j.MediaStreamTrack=Object.keys(MediaStreamTrack.prototype):j.MediaStreamTrack=!1;var oe=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;j.RTCPeerConnection=void 0!==oe&amp;&amp;Object.keys(oe.prototype),window.DetectRTC=j,e.exports=j,void 0===(i=function(){return j}.apply(t,[]))||(e.exports=i)}()}).call(this,n("KCCg"),n("yLpj"))},Lv82:function(e,t){
/**
 * @license AngularJS v1.8.2
 * (c) 2010-2020 Google LLC. http://angularjs.org
 * License: MIT
 */
!function(e){"use strict";var t={objectMaxDepth:5,urlErrorParamsEnabled:!0};function n(e){if(!j(e))return t;N(e.objectMaxDepth)&amp;&amp;(t.objectMaxDepth=o(e.objectMaxDepth)?e.objectMaxDepth:NaN),N(e.urlErrorParamsEnabled)&amp;&amp;X(e.urlErrorParamsEnabled)&amp;&amp;(t.urlErrorParamsEnabled=e.urlErrorParamsEnabled)}function o(e){return z(e)&amp;&amp;e&gt;0}function i(e,n){n=n||Error;var o="https://errors.angularjs.org/1.8.2/",i=o.replace(".","\\.")+"[\\s\\S]*",r=new RegExp(i,"g");return function(){var i,a,s=arguments[0],c=arguments[1],l="["+(e?e+":":"")+s+"] ",u=pe(arguments,2).map((function(e){return Ye(e,t.objectMaxDepth)}));if(l+=c.replace(/\{\d+\}/g,(function(e){var t=+e.slice(1,-1);return t&lt;u.length?u[t].replace(r,""):e})),l+="\n"+o+(e?e+"/":"")+s,t.urlErrorParamsEnabled)for(a=0,i="?";a&lt;u.length;a++,i="&amp;")l+=i+"p"+a+"="+encodeURIComponent(u[a]);return new n(l)}}var r,a,s,c,l=/^\/(.+)\/([a-z]*)$/,u="validity",d=Object.prototype.hasOwnProperty,p=function(e){return V(e)?e.toLowerCase():e},f=function(e){return V(e)?e.toUpperCase():e},m=[].slice,g=[].splice,h=[].push,v=Object.prototype.toString,b=Object.getPrototypeOf,_=i("ng"),y=e.angular||(e.angular={}),$=0;function w(e){if(null==e||K(e))return!1;if(H(e)||V(e)||a&amp;&amp;e instanceof a)return!0;var t="length"in Object(e)&amp;&amp;e.length;return z(t)&amp;&amp;(t&gt;=0&amp;&amp;t-1 in e||"function"==typeof e.item)}function S(e,t,n){var o,i;if(e)if(G(e))for(o in e)"prototype"!==o&amp;&amp;"length"!==o&amp;&amp;"name"!==o&amp;&amp;e.hasOwnProperty(o)&amp;&amp;t.call(n,e[o],o,e);else if(H(e)||w(e)){var r="object"!=typeof e;for(o=0,i=e.length;o&lt;i;o++)(r||o in e)&amp;&amp;t.call(n,e[o],o,e)}else if(e.forEach&amp;&amp;e.forEach!==S)e.forEach(t,n,e);else if(B(e))for(o in e)t.call(n,e[o],o,e);else if("function"==typeof e.hasOwnProperty)for(o in e)e.hasOwnProperty(o)&amp;&amp;t.call(n,e[o],o,e);else for(o in e)d.call(e,o)&amp;&amp;t.call(n,e[o],o,e);return e}function k(e,t,n){for(var o=Object.keys(e).sort(),i=0;i&lt;o.length;i++)t.call(n,e[o[i]],o[i]);return o}function x(e){return function(t,n){e(n,t)}}function C(){return++$}function A(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function T(e,t,n){for(var o=e.$$hashKey,i=0,r=t.length;i&lt;r;++i){var a=t[i];if(j(a)||G(a))for(var s=Object.keys(a),c=0,l=s.length;c&lt;l;c++){var u=s[c],d=a[u];n&amp;&amp;j(d)?q(d)?e[u]=new Date(d.valueOf()):Y(d)?e[u]=new RegExp(d):d.nodeName?e[u]=d.cloneNode(!0):ne(d)?e[u]=d.clone():"__proto__"!==u&amp;&amp;(j(e[u])||(e[u]=H(d)?[]:{}),T(e[u],[d],!0)):e[u]=d}}return A(e,o),e}function E(e){return T(e,m.call(arguments,1),!1)}function P(e){return T(e,m.call(arguments,1),!0)}function O(e){return parseInt(e,10)}r=e.document.documentMode;var M=Number.isNaN||function(e){return e!=e};function D(e,t){return E(Object.create(e),t)}function I(){}function U(e){return e}function L(e){return function(){return e}}function R(e){return G(e.toString)&amp;&amp;e.toString!==v}function F(e){return void 0===e}function N(e){return void 0!==e}function j(e){return null!==e&amp;&amp;"object"==typeof e}function B(e){return null!==e&amp;&amp;"object"==typeof e&amp;&amp;!b(e)}function V(e){return"string"==typeof e}function z(e){return"number"==typeof e}function q(e){return"[object Date]"===v.call(e)}function H(e){return Array.isArray(e)||e instanceof Array}function W(e){switch(v.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e instanceof Error}}function G(e){return"function"==typeof e}function Y(e){return"[object RegExp]"===v.call(e)}function K(e){return e&amp;&amp;e.window===e}function J(e){return e&amp;&amp;e.$evalAsync&amp;&amp;e.$watch}function X(e){return"boolean"==typeof e}function Z(e){return e&amp;&amp;G(e.then)}I.$inject=[],U.$inject=[];var Q=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;var ee=function(e){return V(e)?e.trim():e},te=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#&lt;!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function ne(e){return!(!e||!(e.nodeName||e.prop&amp;&amp;e.attr&amp;&amp;e.find))}function oe(e){return p(e.nodeName||e[0]&amp;&amp;e[0].nodeName)}function ie(e,t){return-1!==Array.prototype.indexOf.call(e,t)}function re(e,t){var n=e.indexOf(t);return n&gt;=0&amp;&amp;e.splice(n,1),n}function ae(e,t,n){var i,r,a=[],s=[];if(n=o(n)?n:NaN,t){if((r=t)&amp;&amp;z(r.length)&amp;&amp;Q.test(v.call(r))||(i=t,"[object ArrayBuffer]"===v.call(i)))throw _("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw _("cpi","Can't copy! Source and destination are identical.");return H(t)?t.length=0:S(t,(function(e,n){"$$hashKey"!==n&amp;&amp;delete t[n]})),a.push(e),s.push(t),c(e,t,n)}return l(e,n);function c(e,t,n){if(--n&lt;0)return"...";var o,i=t.$$hashKey;if(H(e))for(var r=0,a=e.length;r&lt;a;r++)t.push(l(e[r],n));else if(B(e))for(o in e)t[o]=l(e[o],n);else if(e&amp;&amp;"function"==typeof e.hasOwnProperty)for(o in e)e.hasOwnProperty(o)&amp;&amp;(t[o]=l(e[o],n));else for(o in e)d.call(e,o)&amp;&amp;(t[o]=l(e[o],n));return A(t,i),t}function l(e,t){if(!j(e))return e;var n=a.indexOf(e);if(-1!==n)return s[n];if(K(e)||J(e))throw _("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var o=!1,i=function(e){switch(v.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(l(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(G(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===i&amp;&amp;(i=H(e)?[]:Object.create(b(e)),o=!0),a.push(e),s.push(i),o?c(e,i,t):i}}function se(e,t){return e===t||e!=e&amp;&amp;t!=t}function ce(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&amp;&amp;t!=t)return!0;var n,o,i,r=typeof e;if(r===typeof t&amp;&amp;"object"===r){if(!H(e)){if(q(e))return!!q(t)&amp;&amp;se(e.getTime(),t.getTime());if(Y(e))return!!Y(t)&amp;&amp;e.toString()===t.toString();if(J(e)||J(t)||K(e)||K(t)||H(t)||q(t)||Y(t))return!1;for(o in i=je(),e)if("$"!==o.charAt(0)&amp;&amp;!G(e[o])){if(!ce(e[o],t[o]))return!1;i[o]=!0}for(o in t)if(!(o in i)&amp;&amp;"$"!==o.charAt(0)&amp;&amp;N(t[o])&amp;&amp;!G(t[o]))return!1;return!0}if(!H(t))return!1;if((n=e.length)===t.length){for(o=0;o&lt;n;o++)if(!ce(e[o],t[o]))return!1;return!0}}return!1}var le=function(){if(!N(le.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");le.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else le.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return le.rules},ue=function(){if(N(ue.name_))return ue.name_;var t,n,o,i,r=Ce.length;for(n=0;n&lt;r;++n)if(o=Ce[n],t=e.document.querySelector("["+o.replace(":","\\:")+"jq]")){i=t.getAttribute(o+"jq");break}return ue.name_=i};function de(e,t,n){return e.concat(m.call(t,n))}function pe(e,t){return m.call(e,t||0)}function fe(e,t){var n=arguments.length&gt;2?pe(arguments,2):[];return!G(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,de(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function me(t,n){var o=n;return"string"==typeof t&amp;&amp;"$"===t.charAt(0)&amp;&amp;"$"===t.charAt(1)?o=void 0:K(n)?o="$WINDOW":n&amp;&amp;e.document===n?o="$DOCUMENT":J(n)&amp;&amp;(o="$SCOPE"),o}function ge(e,t){if(!F(e))return z(t)||(t=t?2:null),JSON.stringify(e,me,t)}function he(e){return V(e)?JSON.parse(e):e}var ve=/:/g;function be(e,t){e=e.replace(ve,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return M(n)?t:n}function _e(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function ye(e,t,n){n=n?-1:1;var o=e.getTimezoneOffset();return _e(e,n*(be(t,o)-o))}function $e(e){e=a(e).clone().empty();var t=a("&lt;div&gt;&lt;/div&gt;").append(e).html();try{return e[0].nodeType===ze?p(t):t.match(/^(&lt;[^&gt;]+&gt;)/)[1].replace(/^&lt;([\w-]+)/,(function(e,t){return"&lt;"+p(t)}))}catch(e){return p(t)}}function we(e){try{return decodeURIComponent(e)}catch(e){}}function Se(e){var t={};return S((e||"").split("&amp;"),(function(e){var n,o,i;e&amp;&amp;(o=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&amp;&amp;(o=e.substring(0,n),i=e.substring(n+1)),N(o=we(o))&amp;&amp;(i=!N(i)||we(i),d.call(t,o)?H(t[o])?t[o].push(i):t[o]=[t[o],i]:t[o]=i))})),t}function ke(e){return xe(e,!0).replace(/%26/gi,"&amp;").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function xe(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var Ce=["ng-","data-ng-","ng:","x-ng-"];var Ae=function(t){var n=t.currentScript;if(!n)return!0;if(!(n instanceof e.HTMLScriptElement||n instanceof e.SVGScriptElement))return!1;var o=n.attributes;return[o.getNamedItem("src"),o.getNamedItem("href"),o.getNamedItem("xlink:href")].every((function(e){if(!e)return!0;if(!e.value)return!1;var n=t.createElement("a");if(n.href=e.value,t.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}))}(e.document);function Te(t,n){var o,i,r={};if(S(Ce,(function(e){var n=e+"app";!o&amp;&amp;t.hasAttribute&amp;&amp;t.hasAttribute(n)&amp;&amp;(o=t,i=t.getAttribute(n))})),S(Ce,(function(e){var n,r=e+"app";!o&amp;&amp;(n=t.querySelector("["+r.replace(":","\\:")+"]"))&amp;&amp;(o=n,i=n.getAttribute(r))})),o){if(!Ae)return void e.console.error("AngularJS: disabling automatic bootstrap. &lt;script&gt; protocol indicates an extension, document.location.href does not match.");r.strictDi=null!==function(e,t){var n,o,i=Ce.length;for(o=0;o&lt;i;++o)if(n=Ce[o]+t,V(n=e.getAttribute(n)))return n;return null}(o,"strict-di"),n(o,i?[i]:[],r)}}function Ee(t,n,o){j(o)||(o={});o=E({strictDi:!1},o);var i=function(){if((t=a(t)).injector()){var i=t[0]===e.document?"document":$e(t);throw _("btstrpd","App already bootstrapped with this element '{0}'",i.replace(/&lt;/,"&amp;lt;").replace(/&gt;/,"&amp;gt;"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),o.debugInfoEnabled&amp;&amp;n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var r=nn(n,o.strictDi);return r.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,o){e.$apply((function(){t.data("$injector",o),n(t)(e)}))}]),r},r=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&amp;&amp;r.test(e.name)&amp;&amp;(o.debugInfoEnabled=!0,e.name=e.name.replace(r,"")),e&amp;&amp;!s.test(e.name))return i();e.name=e.name.replace(s,""),y.resumeBootstrap=function(e){return S(e,(function(e){n.push(e)})),i()},G(y.resumeDeferredBootstrap)&amp;&amp;y.resumeDeferredBootstrap()}function Pe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function Oe(e){var t=y.element(e).injector();if(!t)throw _("test","no injector found for element argument to getTestability");return t.get("$$testability")}var Me=/[A-Z]/g;function De(e,t){return t=t||"_",e.replace(Me,(function(e,n){return(n?t:"")+e.toLowerCase()}))}var Ie=!1;function Ue(){vt.legacyXHTMLReplacement=!0}function Le(e,t,n){if(!e)throw _("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function Re(e,t,n){return n&amp;&amp;H(e)&amp;&amp;(e=e[e.length-1]),Le(G(e),t,"not a function, got "+(e&amp;&amp;"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Fe(e,t){if("hasOwnProperty"===e)throw _("badname","hasOwnProperty is not a valid {0} name",t)}function Ne(e){for(var t,n=e[0],o=e[e.length-1],i=1;n!==o&amp;&amp;(n=n.nextSibling);i++)(t||e[i]!==n)&amp;&amp;(t||(t=a(m.call(e,0,i))),t.push(n));return t||e}function je(){return Object.create(null)}function Be(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=!R(e)||H(e)||q(e)?ge(e):e.toString()}return e}var Ve=1,ze=3,qe=8,He=9,We=11;function Ge(e,t){if(H(e)){t=t||[];for(var n=0,o=e.length;n&lt;o;n++)t[n]=e[n]}else if(j(e))for(var i in t=t||{},e)"$"===i.charAt(0)&amp;&amp;"$"===i.charAt(1)||(t[i]=e[i]);return t||e}function Ye(e,t){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):F(e)?"undefined":"string"!=typeof e?function(e,t){var n=[];return o(t)&amp;&amp;(e=y.copy(e,null,t)),JSON.stringify(e,(function(e,t){if(j(t=me(e,t))){if(n.indexOf(t)&gt;=0)return"...";n.push(t)}return t}))}(e,t):e}var Ke={full:"1.8.2",major:1,minor:8,dot:2,codeName:"meteoric-mining"};vt.expando="ng339";var Je=vt.cache={},Xe=1;vt._data=function(e){return this.cache[e[this.expando]]||{}};var Ze=/-([a-z])/g,Qe=/^-ms-/,et={mouseleave:"mouseout",mouseenter:"mouseover"},tt=i("jqLite");function nt(e,t){return t.toUpperCase()}function ot(e){return e.replace(Ze,nt)}var it=/^&lt;([\w-]+)\s*\/?&gt;(?:&lt;\/\1&gt;|)$/,rt=/&lt;|&amp;#?\w+;/,at=/&lt;([\w:-]+)/,st=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^&gt;]*)\/&gt;/gi,ct={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr","tbody","table"]};ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td;var lt={option:[1,'&lt;select multiple="multiple"&gt;',"&lt;/select&gt;"],_default:[0,"",""]};for(var ut in ct){var dt=ct[ut],pt=dt.slice().reverse();lt[ut]=[pt.length,"&lt;"+pt.join("&gt;&lt;")+"&gt;","&lt;/"+dt.join("&gt;&lt;/")+"&gt;"]}function ft(e){return!rt.test(e)}function mt(e){var t=e.nodeType;return t===Ve||!t||t===He}function gt(t,n){var o,i,a,s,c,l=n.createDocumentFragment(),u=[];if(ft(t))u.push(n.createTextNode(t));else{if(o=l.appendChild(n.createElement("div")),i=(at.exec(t)||["",""])[1].toLowerCase(),s=vt.legacyXHTMLReplacement?t.replace(st,"&lt;$1&gt;&lt;/$2&gt;"):t,r&lt;10)for(a=lt[i]||lt._default,o.innerHTML=a[1]+s+a[2],c=a[0];c--;)o=o.firstChild;else{for(c=(a=ct[i]||[]).length;--c&gt;-1;)o.appendChild(e.document.createElement(a[c])),o=o.firstChild;o.innerHTML=s}u=de(u,o.childNodes),(o=l.firstChild).textContent=""}return l.textContent="",l.innerHTML="",S(u,(function(e){l.appendChild(e)})),l}lt.optgroup=lt.option;var ht=e.Node.prototype.contains||function(e){return!!(16&amp;this.compareDocumentPosition(e))};function vt(t){if(t instanceof vt)return t;var n,o,i,r;if(V(t)&amp;&amp;(t=ee(t),n=!0),!(this instanceof vt)){if(n&amp;&amp;"&lt;"!==t.charAt(0))throw tt("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new vt(t)}n?Et(this,(o=t,i=i||e.document,(r=it.exec(o))?[i.createElement(r[1])]:(r=gt(o,i))?r.childNodes:[])):G(t)?It(t):Et(this,t)}function bt(e){return e.cloneNode(!0)}function _t(e,t){!t&amp;&amp;mt(e)&amp;&amp;a.cleanData([e]),e.querySelectorAll&amp;&amp;a.cleanData(e.querySelectorAll("*"))}function yt(e){var t;for(t in e)return!1;return!0}function $t(e){var t=e.ng339,n=t&amp;&amp;Je[t],o=n&amp;&amp;n.events,i=n&amp;&amp;n.data;i&amp;&amp;!yt(i)||o&amp;&amp;!yt(o)||(delete Je[t],e.ng339=void 0)}function wt(e,t,n,o){if(N(o))throw tt("offargs","jqLite#off() does not support the `selector` argument");var i=kt(e),r=i&amp;&amp;i.events,a=i&amp;&amp;i.handle;if(a){if(t){var s=function(t){var o=r[t];N(n)&amp;&amp;re(o||[],n),N(n)&amp;&amp;o&amp;&amp;o.length&gt;0||(e.removeEventListener(t,a),delete r[t])};S(t.split(" "),(function(e){s(e),et[e]&amp;&amp;s(et[e])}))}else for(t in r)"$destroy"!==t&amp;&amp;e.removeEventListener(t,a),delete r[t];$t(e)}}function St(e,t){var n=e.ng339,o=n&amp;&amp;Je[n];o&amp;&amp;(t?delete o.data[t]:o.data={},$t(e))}function kt(e,t){var n=e.ng339,o=n&amp;&amp;Je[n];return t&amp;&amp;!o&amp;&amp;(e.ng339=n=++Xe,o=Je[n]={events:{},data:{},handle:void 0}),o}function xt(e,t,n){if(mt(e)){var o,i=N(n),r=!i&amp;&amp;t&amp;&amp;!j(t),a=!t,s=kt(e,!r),c=s&amp;&amp;s.data;if(i)c[ot(t)]=n;else{if(a)return c;if(r)return c&amp;&amp;c[ot(t)];for(o in t)c[ot(o)]=t[o]}}}function Ct(e,t){return!!e.getAttribute&amp;&amp;(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")&gt;-1}function At(e,t){if(t&amp;&amp;e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=n;S(t.split(" "),(function(e){e=ee(e),o=o.replace(" "+e+" "," ")})),o!==n&amp;&amp;e.setAttribute("class",ee(o))}}function Tt(e,t){if(t&amp;&amp;e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=n;S(t.split(" "),(function(e){e=ee(e),-1===o.indexOf(" "+e+" ")&amp;&amp;(o+=e+" ")})),o!==n&amp;&amp;e.setAttribute("class",ee(o))}}function Et(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&amp;&amp;t.window!==t){if(n)for(var o=0;o&lt;n;o++)e[e.length++]=t[o]}else e[e.length++]=t}}function Pt(e,t){return Ot(e,"$"+(t||"ngController")+"Controller")}function Ot(e,t,n){e.nodeType===He&amp;&amp;(e=e.documentElement);for(var o=H(t)?t:[t];e;){for(var i=0,r=o.length;i&lt;r;i++)if(N(n=a.data(e,o[i])))return n;e=e.parentNode||e.nodeType===We&amp;&amp;e.host}}function Mt(e){for(_t(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function Dt(e,t){t||_t(e);var n=e.parentNode;n&amp;&amp;n.removeChild(e)}function It(t){function n(){e.document.removeEventListener("DOMContentLoaded",n),e.removeEventListener("load",n),t()}"complete"===e.document.readyState?e.setTimeout(t):(e.document.addEventListener("DOMContentLoaded",n),e.addEventListener("load",n))}var Ut=vt.prototype={ready:It,toString:function(){var e=[];return S(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return a(e&gt;=0?this[e]:this[this.length+e])},length:0,push:h,sort:[].sort,splice:[].splice},Lt={};S("multiple,selected,checked,disabled,readOnly,required,open".split(","),(function(e){Lt[p(e)]=e}));var Rt={};S("input,select,option,textarea,button,form,details".split(","),(function(e){Rt[e]=!0}));var Ft={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};function Nt(e,t){var n=Lt[t.toLowerCase()];return n&amp;&amp;Rt[oe(e)]&amp;&amp;n}function jt(e,t,n){n.call(e,t)}function Bt(e,t,n){var o=t.relatedTarget;o&amp;&amp;(o===e||ht.call(e,o))||n.call(e,t)}function Vt(){this.$get=function(){return E(vt,{hasClass:function(e,t){return e.attr&amp;&amp;(e=e[0]),Ct(e,t)},addClass:function(e,t){return e.attr&amp;&amp;(e=e[0]),Tt(e,t)},removeClass:function(e,t){return e.attr&amp;&amp;(e=e[0]),At(e,t)}})}}function zt(e,t){var n=e&amp;&amp;e.$$hashKey;if(n)return"function"==typeof n&amp;&amp;(n=e.$$hashKey()),n;var o=typeof e;return n="function"===o||"object"===o&amp;&amp;null!==e?e.$$hashKey=o+":"+(t||C)():o+":"+e}S({data:xt,removeData:St,hasData:function(e){for(var t in Je[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t&lt;n;t++)St(e[t]),wt(e[t])}},(function(e,t){vt[t]=e})),S({data:xt,inheritedData:Ot,scope:function(e){return a.data(e,"$scope")||Ot(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return a.data(e,"$isolateScope")||a.data(e,"$isolateScopeNoTemplate")},controller:Pt,injector:function(e){return Ot(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Ct,css:function(e,t,n){if(t=function(e){return ot(e.replace(Qe,"ms-"))}(t),!N(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var o,i=e.nodeType;if(i!==ze&amp;&amp;2!==i&amp;&amp;i!==qe&amp;&amp;e.getAttribute){var r=p(t),a=Lt[r];if(!N(n))return o=e.getAttribute(t),a&amp;&amp;null!==o&amp;&amp;(o=r),null===o?void 0:o;null===n||!1===n&amp;&amp;a?e.removeAttribute(t):e.setAttribute(t,a?r:n)}},prop:function(e,t,n){if(!N(n))return e[t];e[t]=n},text:function(){return e.$dv="",e;function e(e,t){if(F(t)){var n=e.nodeType;return n===Ve||n===ze?e.textContent:""}e.textContent=t}}(),val:function(e,t){if(F(t)){if(e.multiple&amp;&amp;"select"===oe(e)){var n=[];return S(e.options,(function(e){e.selected&amp;&amp;n.push(e.value||e.text)})),n}return e.value}e.value=t},html:function(e,t){if(F(t))return e.innerHTML;_t(e,!0),e.innerHTML=t},empty:Mt},(function(e,t){vt.prototype[t]=function(t,n){var o,i,r=this.length;if(e!==Mt&amp;&amp;F(2===e.length&amp;&amp;e!==Ct&amp;&amp;e!==Pt?t:n)){if(j(t)){for(o=0;o&lt;r;o++)if(e===xt)e(this[o],t);else for(i in t)e(this[o],i,t[i]);return this}for(var a=e.$dv,s=F(a)?Math.min(r,1):r,c=0;c&lt;s;c++){var l=e(this[c],t,n);a=a?a+l:l}return a}for(o=0;o&lt;r;o++)e(this[o],t,n);return this}})),S({removeData:St,on:function(e,t,n,o){if(N(o))throw tt("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(mt(e)){var i=kt(e,!0),r=i.events,a=i.handle;a||(a=i.handle=function(e,t){var n=function(n,o){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[o||n.type],r=i?i.length:0;if(r){if(F(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&amp;&amp;n.stopPropagation(),a&amp;&amp;a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=i.specialHandlerWrapper||jt;r&gt;1&amp;&amp;(i=Ge(i));for(var c=0;c&lt;r;c++)n.isImmediatePropagationStopped()||s(e,n,i[c])}};return n.elem=e,n}(e,r));for(var s=t.indexOf(" ")&gt;=0?t.split(" "):[t],c=s.length,l=function(t,o,i){var s=r[t];s||((s=r[t]=[]).specialHandlerWrapper=o,"$destroy"===t||i||e.addEventListener(t,a)),s.push(n)};c--;)t=s[c],et[t]?(l(et[t],Bt),l(t,void 0,!0)):l(t)}},off:wt,one:function(e,t,n){(e=a(e)).on(t,(function o(){e.off(t,n),e.off(t,o)})),e.on(t,n)},replaceWith:function(e,t){var n,o=e.parentNode;_t(e),S(new vt(t),(function(t){n?o.insertBefore(t,n.nextSibling):o.replaceChild(t,e),n=t}))},children:function(e){var t=[];return S(e.childNodes,(function(e){e.nodeType===Ve&amp;&amp;t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Ve||n===We)for(var o=0,i=(t=new vt(t)).length;o&lt;i;o++){var r=t[o];e.appendChild(r)}},prepend:function(e,t){if(e.nodeType===Ve){var n=e.firstChild;S(new vt(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){var n,o,i;n=e,o=a(t).eq(0).clone()[0],(i=n.parentNode)&amp;&amp;i.replaceChild(o,n),o.appendChild(n)},remove:Dt,detach:function(e){Dt(e,!0)},after:function(e,t){var n=e,o=e.parentNode;if(o)for(var i=0,r=(t=new vt(t)).length;i&lt;r;i++){var a=t[i];o.insertBefore(a,n.nextSibling),n=a}},addClass:Tt,removeClass:At,toggleClass:function(e,t,n){t&amp;&amp;S(t.split(" "),(function(t){var o=n;F(o)&amp;&amp;(o=!Ct(e,t)),(o?Tt:At)(e,t)}))},parent:function(e){var t=e.parentNode;return t&amp;&amp;t.nodeType!==We?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:bt,triggerHandler:function(e,t,n){var o,i,r,a=t.type||t,s=kt(e),c=s&amp;&amp;s.events,l=c&amp;&amp;c[a];l&amp;&amp;(o={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:I,type:a,target:e},t.type&amp;&amp;(o=E(o,t)),i=Ge(l),r=n?[o].concat(n):[o],S(i,(function(t){o.isImmediatePropagationStopped()||t.apply(e,r)})))}},(function(e,t){vt.prototype[t]=function(t,n,o){for(var i,r=0,s=this.length;r&lt;s;r++)F(i)?N(i=e(this[r],t,n,o))&amp;&amp;(i=a(i)):Et(i,e(this[r],t,n,o));return N(i)?i:this}})),vt.prototype.bind=vt.prototype.on,vt.prototype.unbind=vt.prototype.off;var qt=Object.create(null);function Ht(){this._keys=[],this._values=[],this._lastKey=NaN,this._lastIndex=-1}Ht.prototype={_idx:function(e){return e!==this._lastKey&amp;&amp;(this._lastKey=e,this._lastIndex=this._keys.indexOf(e)),this._lastIndex},_transformKey:function(e){return M(e)?qt:e},get:function(e){e=this._transformKey(e);var t=this._idx(e);if(-1!==t)return this._values[t]},has:function(e){return e=this._transformKey(e),-1!==this._idx(e)},set:function(e,t){e=this._transformKey(e);var n=this._idx(e);-1===n&amp;&amp;(n=this._lastIndex=this._keys.length),this._keys[n]=e,this._values[n]=t},delete:function(e){e=this._transformKey(e);var t=this._idx(e);return-1!==t&amp;&amp;(this._keys.splice(t,1),this._values.splice(t,1),this._lastKey=NaN,this._lastIndex=-1,!0)}};var Wt=Ht,Gt=[function(){this.$get=[function(){return Wt}]}],Yt=/^([^(]+?)=&gt;/,Kt=/^[^(]*\(\s*([^)]*)\)/m,Jt=/,/,Xt=/^\s*(_?)(\S+?)\1\s*$/,Zt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Qt=i("$injector");function en(e){return Function.prototype.toString.call(e)}function tn(e){var t=en(e).replace(Zt,"");return t.match(Yt)||t.match(Kt)}function nn(e,t){t=!0===t;var n={},o="Provider",i=[],a=new Wt,s={$provide:{provider:m(g),factory:m(v),service:m((function(e,t){return v(e,["$injector",function(e){return e.instantiate(t)}])})),value:m((function(e,t){return v(e,L(t),!1)})),constant:m((function(e,t){Fe(e,"constant"),s[e]=t,u[e]=t})),decorator:function(e,t){var n=l.get(e+o),i=n.$get;n.$get=function(){var e=p.invoke(i,n);return p.invoke(t,null,{$delegate:e})}}}},l=s.$injector=_(s,(function(e,t){throw y.isString(t)&amp;&amp;i.push(t),Qt("unpr","Unknown provider: {0}",i.join(" &lt;- "))})),u={},d=_(u,(function(e,t){var n=l.get(e+o,t);return p.invoke(n.$get,n,void 0,e)})),p=d;s["$injector"+o]={$get:L(d)},p.modules=l.modules=je();var f=b(e);return(p=d.get("$injector")).strictDi=t,S(f,(function(e){e&amp;&amp;p.invoke(e)})),p.loadNewModules=function(e){S(b(e),(function(e){e&amp;&amp;p.invoke(e)}))},p;function m(e){return function(t,n){if(!j(t))return e(t,n);S(t,x(e))}}function g(e,t){if(Fe(e,"service"),(G(t)||H(t))&amp;&amp;(t=l.instantiate(t)),!t.$get)throw Qt("pget","Provider '{0}' must define $get factory method.",e);return s[e+o]=t}function h(e,t){return function(){var n=p.invoke(t,this);if(F(n))throw Qt("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function v(e,t,n){return g(e,{$get:!1!==n?h(e,t):t})}function b(e){Le(F(e)||H(e),"modulesToLoad","not an array");var t,n=[];return S(e,(function(e){if(!a.get(e)){a.set(e,!0);try{V(e)?(t=c(e),p.modules[e]=t,n=n.concat(b(t.requires)).concat(t._runBlocks),o(t._invokeQueue),o(t._configBlocks)):G(e)?n.push(l.invoke(e)):H(e)?n.push(l.invoke(e)):Re(e,"module")}catch(t){throw H(e)&amp;&amp;(e=e[e.length-1]),t.message&amp;&amp;t.stack&amp;&amp;-1===t.stack.indexOf(t.message)&amp;&amp;(t=t.message+"\n"+t.stack),Qt("modulerr","Failed to instantiate module {0} due to:\n{1}",e,t.stack||t.message||t)}}function o(e){var t,n;for(t=0,n=e.length;t&lt;n;t++){var o=e[t],i=l.get(o[0]);i[o[1]].apply(i,o[2])}}})),n}function _(e,a){function c(t,o){if(e.hasOwnProperty(t)){if(e[t]===n)throw Qt("cdep","Circular dependency found: {0}",t+" &lt;- "+i.join(" &lt;- "));return e[t]}try{return i.unshift(t),e[t]=n,e[t]=a(t,o),e[t]}catch(o){throw e[t]===n&amp;&amp;delete e[t],o}finally{i.shift()}}function l(e,n,o){for(var i=[],r=nn.$$annotate(e,t,o),a=0,s=r.length;a&lt;s;a++){var l=r[a];if("string"!=typeof l)throw Qt("itkn","Incorrect injection token! Expected service name as string, got {0}",l);i.push(n&amp;&amp;n.hasOwnProperty(l)?n[l]:c(l,o))}return i}return{invoke:function(e,t,n,o){"string"==typeof n&amp;&amp;(o=n,n=null);var i=l(e,n,o);return H(e)&amp;&amp;(e=e[e.length-1]),function(e){if(r||"function"!=typeof e)return!1;var t=e.$$ngIsClass;return X(t)||(t=e.$$ngIsClass=/^class\b/.test(en(e))),t}(e)?(i.unshift(null),new(Function.prototype.bind.apply(e,i))):e.apply(t,i)},instantiate:function(e,t,n){var o=H(e)?e[e.length-1]:e,i=l(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(o,i))},get:c,annotate:nn.$$annotate,has:function(t){return s.hasOwnProperty(t+o)||e.hasOwnProperty(t)}}}}function on(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,o,i){var r=n.document;function s(e){if(e){e.scrollIntoView();var t=function(){var e=c.yOffset;if(G(e))e=e();else if(ne(e)){var t=e[0];e="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else z(e)||(e=0);return e}();if(t){var o=e.getBoundingClientRect().top;n.scrollBy(0,o-t)}}else n.scrollTo(0,0)}function c(e){var t,n,i;(e=V(e)?e:z(e)?e.toString():o.hash())?(t=r.getElementById(e))?s(t):(n=r.getElementsByName(e),i=null,Array.prototype.some.call(n,(function(e){if("a"===oe(e))return i=e,!0})),(t=i)?s(t):"top"===e&amp;&amp;s(null)):s(null)}return t&amp;&amp;i.$watch((function(){return o.hash()}),(function(t,n){var o,r;t===n&amp;&amp;""===t||(o=function(){i.$evalAsync(c)},"complete"===(r=r||e).document.readyState?r.setTimeout(o):a(r).on("load",o))})),c}]}nn.$$annotate=function(e,t,n){var o,i;if("function"==typeof e){if(!(o=e.$inject)){if(o=[],e.length){if(t)throw V(n)&amp;&amp;n||(n=e.name||function(e){var t=tn(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Qt("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);S(tn(e)[1].split(Jt),(function(e){e.replace(Xt,(function(e,t,n){o.push(n)}))}))}e.$inject=o}}else H(e)?(Re(e[i=e.length-1],"fn"),o=e.slice(0,i)):Re(e,"fn",!0);return o};var rn=i("$animate"),an=1;function sn(e,t){return e||t?e?t?(H(e)&amp;&amp;(e=e.join(" ")),H(t)&amp;&amp;(t=t.join(" ")),e+" "+t):e:t:""}function cn(e){return j(e)?e:{}}var ln=function(){this.$get=I},un=function(){var e=new Wt,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,o){return{enabled:I,on:I,off:I,pin:I,push:function(a,s,c,l){l&amp;&amp;l(),(c=c||{}).from&amp;&amp;a.css(c.from),c.to&amp;&amp;a.css(c.to),(c.addClass||c.removeClass)&amp;&amp;function(n,a,s){var c=e.get(n)||{},l=i(c,a,!0),u=i(c,s,!1);(l||u)&amp;&amp;(e.set(n,c),t.push(n),1===t.length&amp;&amp;o.$$postDigest(r))}(a,c.addClass,c.removeClass);var u=new n;return u.complete(),u}};function i(e,t,n){var o=!1;return t&amp;&amp;S(t=V(t)?t.split(" "):H(t)?t:[],(function(t){t&amp;&amp;(o=!0,e[t]=n)})),o}function r(){S(t,(function(t){var n=e.get(t);if(n){var o=function(e){V(e)&amp;&amp;(e=e.split(" "));var t=je();return S(e,(function(e){e.length&amp;&amp;(t[e]=!0)})),t}(t.attr("class")),i="",r="";S(n,(function(e,t){e!==!!o[t]&amp;&amp;(e?i+=(i.length?" ":"")+t:r+=(r.length?" ":"")+t)})),S(t,(function(e){i&amp;&amp;Tt(e,i),r&amp;&amp;At(e,r)})),e.delete(t)}})),t.length=0}}]},dn=["$provide",function(e){var t=this,n=null,o=null;this.$$registeredAnimations=Object.create(null),this.register=function(n,o){if(n&amp;&amp;"."!==n.charAt(0))throw rn("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,o)},this.customFilter=function(e){return 1===arguments.length&amp;&amp;(o=G(e)?e:null),o},this.classNameFilter=function(e){if(1===arguments.length&amp;&amp;(n=e instanceof RegExp?e:null)){var t=new RegExp("[(\\s|\\/)]ng-animate[(\\s|\\/)]");if(t.test(n.toString()))throw n=null,rn("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return n},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var o=function(e){for(var t=0;t&lt;e.length;t++){var n=e[t];if(n.nodeType===an)return n}}(n);!o||o.parentNode||o.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.cancel&amp;&amp;e.cancel()},enter:function(n,o,i,r){return o=o&amp;&amp;a(o),i=i&amp;&amp;a(i),t(n,o=o||i.parent(),i),e.push(n,"enter",cn(r))},move:function(n,o,i,r){return o=o&amp;&amp;a(o),i=i&amp;&amp;a(i),t(n,o=o||i.parent(),i),e.push(n,"move",cn(r))},leave:function(t,n){return e.push(t,"leave",cn(n),(function(){t.remove()}))},addClass:function(t,n,o){return(o=cn(o)).addClass=sn(o.addclass,n),e.push(t,"addClass",o)},removeClass:function(t,n,o){return(o=cn(o)).removeClass=sn(o.removeClass,n),e.push(t,"removeClass",o)},setClass:function(t,n,o,i){return(i=cn(i)).addClass=sn(i.addClass,n),i.removeClass=sn(i.removeClass,o),e.push(t,"setClass",i)},animate:function(t,n,o,i,r){return(r=cn(r)).from=r.from?E(r.from,n):n,r.to=r.to?E(r.to,o):o,i=i||"ng-inline-animate",r.tempClasses=sn(r.tempClasses,i),e.push(t,"animate",r)}}}]}],pn=function(){this.$get=["$$rAF",function(e){var t=[];function n(n){t.push(n),t.length&gt;1||e((function(){for(var e=0;e&lt;t.length;e++)t[e]();t=[]}))}return function(){var e=!1;return n((function(){e=!0})),function(t){e?t():n(t)}}}]},fn=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(e,t,n,o,i){function r(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){o()?function(e){i(e,0,!1)}(e):t(e)},this._state=0}return r.chain=function(e,t){var n=0;!function o(){if(n===e.length)return void t(!0);e[n]((function(e){!1!==e?(n++,o()):t(!1)}))}()},r.all=function(e,t){var n=0,o=!0;function i(i){o=o&amp;&amp;i,++n===e.length&amp;&amp;t(o)}S(e,(function(e){e.done(i)}))},r.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:I,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&amp;&amp;this.host.pause()},resume:function(){this.host.resume&amp;&amp;this.host.resume()},end:function(){this.host.end&amp;&amp;this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&amp;&amp;this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&amp;&amp;(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&amp;&amp;(S(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},r}]},mn=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,o){var i=o||{};i.$$prepared||(i=ae(i)),i.cleanupStyles&amp;&amp;(i.from=i.to=null),i.from&amp;&amp;(t.css(i.from),i.from=null);var r,a=new n;return{start:s,end:s};function s(){return e((function(){!function(){i.addClass&amp;&amp;(t.addClass(i.addClass),i.addClass=null);i.removeClass&amp;&amp;(t.removeClass(i.removeClass),i.removeClass=null);i.to&amp;&amp;(t.css(i.to),i.to=null)}(),r||a.complete(),r=!0})),a}}}]};function gn(e,t,n,o,i){var r=this,s=e.location,c=e.history,l=e.setTimeout,u=e.clearTimeout,d={},p=i(n);r.isMock=!1,r.$$completeOutstandingRequest=p.completeTask,r.$$incOutstandingRequestCount=p.incTaskCount,r.notifyWhenNoOutstandingRequests=p.notifyWhenNoPendingTasks;var f,m,g=s.href,h=t.find("base"),v=null,b=o.history?function(){try{return c.state}catch(e){}}:I;k(),r.url=function(t,n,i){if(F(i)&amp;&amp;(i=null),s!==e.location&amp;&amp;(s=e.location),c!==e.history&amp;&amp;(c=e.history),t){var a=m===i;if(t=bi(t).href,g===t&amp;&amp;(!o.history||a))return r;var l=g&amp;&amp;go(g)===go(t);return g=t,m=i,!o.history||l&amp;&amp;a?(l||(v=t),n?s.replace(t):l?s.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(t):s.href=t,s.href!==t&amp;&amp;(v=t)):(c[n?"replaceState":"pushState"](i,"",t),k()),v&amp;&amp;(v=t),r}return function(e){return e.replace(/#$/,"")}(v||s.href)},r.state=function(){return f};var _=[],y=!1;function $(){v=null,x()}var w=null;function k(){ce(f=F(f=b())?null:f,w)&amp;&amp;(f=w),w=f,m=f}function x(){var e=m;k(),g===r.url()&amp;&amp;e===f||(g=r.url(),m=f,S(_,(function(e){e(r.url(),f)})))}r.onUrlChange=function(t){return y||(o.history&amp;&amp;a(e).on("popstate",$),a(e).on("hashchange",$),y=!0),_.push(t),t},r.$$applicationDestroyed=function(){a(e).off("hashchange popstate",$)},r.$$checkUrlChange=x,r.baseHref=function(){var e=h.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},r.defer=function(e,t,n){var o;return t=t||0,n=n||p.DEFAULT_TASK_TYPE,p.incTaskCount(n),o=l((function(){delete d[o],p.completeTask(e,n)}),t),d[o]=n,o},r.defer.cancel=function(e){if(d.hasOwnProperty(e)){var t=d[e];return delete d[e],u(e),p.completeTask(I,t),!0}return!1}}function hn(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(e,t,n,o,i){return new gn(e,o,t,n,i)}]}function vn(){this.$get=function(){var e={};function t(t,n){if(t in e)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var o=0,r=E({},n,{id:t}),a=je(),s=n&amp;&amp;n.capacity||Number.MAX_VALUE,c=je(),l=null,u=null;return e[t]={put:function(e,t){if(!F(t)){if(s&lt;Number.MAX_VALUE)d(c[e]||(c[e]={key:e}));return e in a||o++,a[e]=t,o&gt;s&amp;&amp;this.remove(u.key),t}},get:function(e){if(s&lt;Number.MAX_VALUE){var t=c[e];if(!t)return;d(t)}return a[e]},remove:function(e){if(s&lt;Number.MAX_VALUE){var t=c[e];if(!t)return;t===l&amp;&amp;(l=t.p),t===u&amp;&amp;(u=t.n),p(t.n,t.p),delete c[e]}e in a&amp;&amp;(delete a[e],o--)},removeAll:function(){a=je(),o=0,c=je(),l=u=null},destroy:function(){a=null,r=null,c=null,delete e[t]},info:function(){return E({},r,{size:o})}};function d(e){e!==l&amp;&amp;(u?u===e&amp;&amp;(u=e.n):u=e,p(e.n,e.p),p(e,l),(l=e).n=null)}function p(e,t){e!==t&amp;&amp;(e&amp;&amp;(e.p=t),t&amp;&amp;(t.n=e))}}return t.info=function(){var t={};return S(e,(function(e,n){t[n]=e.info()})),t},t.get=function(t){return e[t]},t}}function bn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var _n=i("$compile");var yn=new function(){};function $n(t,n){var o={},i="Directive",s=/^\s*directive:\s*([\w-]+)\s+(.*)$/,c=/(([\w-]+)(?::([^;]+))?;?)/,l=function(e){var t,n={},o=e.split(",");for(t=0;t&lt;o.length;t++)n[o[t]]=!0;return n}("ngSrc,ngSrcset,src,srcset"),u=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,f=/^(on[a-z]+|formaction)$/,m=je();function g(e,t,n){var o=/^([@&amp;]|[=&lt;](\*?))(\??)\s*([\w$]*)$/,i=je();return S(e,(function(e,r){if((e=e.trim())in m)i[r]=m[e];else{var a=e.match(o);if(!a)throw _n("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,r,e,n?"controller bindings definition":"isolate scope definition");i[r]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||r},a[4]&amp;&amp;(m[e]=i[r])}})),i}function h(e,t){var n={isolateScope:null,bindToController:null};if(j(e.scope)&amp;&amp;(!0===e.bindToController?(n.bindToController=g(e.scope,t,!0),n.isolateScope={}):n.isolateScope=g(e.scope,t,!1)),j(e.bindToController)&amp;&amp;(n.bindToController=g(e.bindToController,t,!0)),n.bindToController&amp;&amp;!e.controller)throw _n("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(n,r){return Le(n,"name"),Fe(n,"directive"),V(n)?(!function(e){var t=e.charAt(0);if(!t||t!==p(t))throw _n("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw _n("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(n),Le(r,"directiveFactory"),o.hasOwnProperty(n)||(o[n]=[],t.factory(n+i,["$injector","$exceptionHandler",function(e,t){var i=[];return S(o[n],(function(o,r){try{var a=e.invoke(o);G(a)?a={compile:L(a)}:!a.compile&amp;&amp;a.link&amp;&amp;(a.compile=L(a.link)),a.priority=a.priority||0,a.index=r,a.name=a.name||n,a.require=function(e){var t=e.require||e.controller&amp;&amp;e.name;return!H(t)&amp;&amp;j(t)&amp;&amp;S(t,(function(e,n){var o=e.match(u);e.substring(o[0].length)||(t[n]=o[0]+n)})),t}(a),a.restrict=function(e,t){if(e&amp;&amp;(!V(e)||!/[EACM]/.test(e)))throw _n("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(a.restrict,n),a.$$moduleName=o.$$moduleName,i.push(a)}catch(e){t(e)}})),i}])),o[n].push(r)):S(n,x(e)),this},this.component=function e(t,n){if(!V(t))return S(t,x(fe(this,e))),this;var o=n.controller||function(){};function i(e){function t(t){return G(t)||H(t)?function(n,o){return e.invoke(t,this,{$element:n,$attrs:o})}:t}var i=n.template||n.templateUrl?n.template:"",r={controller:o,controllerAs:Pn(n.controller)||n.controllerAs||"$ctrl",template:t(i),templateUrl:t(n.templateUrl),transclude:n.transclude,scope:{},bindToController:n.bindings||{},restrict:"E",require:n.require};return S(n,(function(e,t){"$"===t.charAt(0)&amp;&amp;(r[t]=e)})),r}return S(n,(function(e,t){"$"===t.charAt(0)&amp;&amp;(i[t]=e,G(o)&amp;&amp;(o[t]=e))})),i.$inject=["$injector"],this.directive(t,i)},this.aHrefSanitizationTrustedUrlList=function(e){return N(e)?(n.aHrefSanitizationTrustedUrlList(e),this):n.aHrefSanitizationTrustedUrlList()},Object.defineProperty(this,"aHrefSanitizationWhitelist",{get:function(){return this.aHrefSanitizationTrustedUrlList},set:function(e){this.aHrefSanitizationTrustedUrlList=e}}),this.imgSrcSanitizationTrustedUrlList=function(e){return N(e)?(n.imgSrcSanitizationTrustedUrlList(e),this):n.imgSrcSanitizationTrustedUrlList()},Object.defineProperty(this,"imgSrcSanitizationWhitelist",{get:function(){return this.imgSrcSanitizationTrustedUrlList},set:function(e){this.imgSrcSanitizationTrustedUrlList=e}});var b=!0;this.debugInfoEnabled=function(e){return N(e)?(b=e,this):b};var _=!1;this.strictComponentBindingsEnabled=function(e){return N(e)?(_=e,this):_};var y=10;this.onChangesTtl=function(e){return arguments.length?(y=e,this):y};var $=!0;this.commentDirectivesEnabled=function(e){return arguments.length?($=e,this):$};var w=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(w=e,this):w};var k=je();this.addPropertySecurityContext=function(e,t,n){var o=e.toLowerCase()+"|"+t.toLowerCase();if(o in k&amp;&amp;k[o]!==n)throw _n("ctxoverride","Property context '{0}.{1}' already set to '{2}', cannot override to '{3}'.",e,t,k[o],n);return k[o]=n,this},function(){function e(e,t){S(t,(function(t){k[t.toLowerCase()]=e}))}e(ei.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),e(ei.CSS,["*|style"]),e(ei.URL,["area|href","area|ping","a|href","a|ping","blockquote|cite","body|background","del|cite","input|src","ins|cite","q|cite"]),e(ei.MEDIA_URL,["audio|src","img|src","img|srcset","source|src","source|srcset","track|src","video|src","video|poster"]),e(ei.RESOURCE_URL,["*|formAction","applet|code","applet|codebase","base|href","embed|src","frame|src","form|action","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])}(),this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(t,n,m,g,x,C,A,T,P){var O,M=/^\w/,L=e.document.createElement("div"),R=$,N=w,B=y;function z(){try{if(!--B)throw O=void 0,_n("infchng","{0} $onChanges() iterations reached. Aborting!\n",y);A.$apply((function(){for(var e=0,t=O.length;e&lt;t;++e)try{O[e]()}catch(e){m(e)}O=void 0}))}finally{B++}}function q(e,t){if(!e)return e;if(!V(e))throw _n("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',t,e.toString());for(var n="",o=ee(e),i=/\s/.test(o)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,r=o.split(i),a=Math.floor(r.length/2),s=0;s&lt;a;s++){var c=2*s;n+=T.getTrustedMediaUrl(ee(r[c])),n+=" "+ee(r[c+1])}var l=ee(r[2*s]).split(/\s/);return n+=T.getTrustedMediaUrl(ee(l[0])),2===l.length&amp;&amp;(n+=" "+ee(l[1])),n}function Y(e,t){if(t){var n,o,i,r=Object.keys(t);for(n=0,o=r.length;n&lt;o;n++)this[i=r[n]]=t[i]}else this.$attr={};this.$$element=e}function K(e,t){try{e.addClass(t)}catch(e){}}Y.prototype={$normalize:xn,$addClass:function(e){e&amp;&amp;e.length&gt;0&amp;&amp;P.addClass(this.$$element,e)},$removeClass:function(e){e&amp;&amp;e.length&gt;0&amp;&amp;P.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=Cn(e,t);n&amp;&amp;n.length&amp;&amp;P.addClass(this.$$element,n);var o=Cn(t,e);o&amp;&amp;o.length&amp;&amp;P.removeClass(this.$$element,o)},$set:function(e,t,n,o){var i=Nt(this.$$element[0],e),r=Ft[e],a=e;i?(this.$$element.prop(e,t),o=i):r&amp;&amp;(this[r]=t,a=r),this[e]=t,o?this.$attr[e]=o:(o=this.$attr[e])||(this.$attr[e]=o=De(e,"-")),"img"===oe(this.$$element)&amp;&amp;"srcset"===e&amp;&amp;(this[e]=t=q(t,"$set('srcset', value)")),!1!==n&amp;&amp;(null===t||F(t)?this.$$element.removeAttr(o):M.test(o)?i&amp;&amp;!1===t?this.$$element.removeAttr(o):this.$$element.attr(o,t):function(e,t,n){L.innerHTML="&lt;span "+t+"&gt;";var o=L.firstChild.attributes,i=o[0];o.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}(this.$$element[0],o,t));var s=this.$$observers;s&amp;&amp;S(s[a],(function(e){try{e(t)}catch(e){m(e)}}))},$observe:function(e,t){var n=this,o=n.$$observers||(n.$$observers=je()),i=o[e]||(o[e]=[]);return i.push(t),A.$evalAsync((function(){i.$$inter||!n.hasOwnProperty(e)||F(n[e])||t(n[e])})),function(){re(i,t)}}};var Z=n.startSymbol(),Q=n.endSymbol(),te="{{"===Z&amp;&amp;"}}"===Q?U:function(e){return e.replace(/\{\{/g,Z).replace(/}}/g,Q)},ne=/^ng(Attr|Prop|On)([A-Z].*)$/,ie=/^(.+)Start$/;return ae.$$addBindingInfo=b?function(e,t){var n=e.data("$binding")||[];H(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:I,ae.$$addBindingClass=b?function(e){K(e,"ng-binding")}:I,ae.$$addScopeInfo=b?function(e,t,n,o){var i=n?o?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:I,ae.$$addScopeClass=b?function(e,t){K(e,t?"ng-isolate-scope":"ng-scope")}:I,ae.$$createComment=function(t,n){var o="";return b&amp;&amp;(o=" "+(t||"")+": ",n&amp;&amp;(o+=n+" ")),e.document.createComment(o)},ae;function ae(e,t,n,o,i){e instanceof a||(e=a(e));var r=le(e,t,e,n,o,i);ae.$$addScopeClass(e);var s=null;return function(t,n,o){if(!e)throw _n("multilink","This element has already been linked.");Le(t,"scope"),i&amp;&amp;i.needsNewScope&amp;&amp;(t=t.$parent.$new());var c,l,u,d=(o=o||{}).parentBoundTranscludeFn,p=o.transcludeControllers,f=o.futureParentElement;if(d&amp;&amp;d.$$boundTransclude&amp;&amp;(d=d.$$boundTransclude),s||(l=(c=f)&amp;&amp;c[0],s=l&amp;&amp;"foreignobject"!==oe(l)&amp;&amp;v.call(l).match(/SVG/)?"svg":"html"),u="html"!==s?a(Te(s,a("&lt;div&gt;&lt;/div&gt;").append(e).html())):n?Ut.clone.call(e):e,p)for(var m in p)u.data("$"+m+"Controller",p[m].instance);return ae.$$addScopeInfo(u,t),n&amp;&amp;n(u,t),r&amp;&amp;r(t,u,u,d),n||(e=r=null),u}}function le(e,t,n,o,i,s){for(var c,l,u,d,p,f,m,g=[],h=H(e)||e instanceof a,v=0;v&lt;e.length;v++)c=new Y,11===r&amp;&amp;ue(e,v,h),(u=(l=me(e[v],[],c,0===v?o:void 0,i)).length?be(l,e[v],c,t,n,null,[],[],s):null)&amp;&amp;u.scope&amp;&amp;ae.$$addScopeClass(c.$$element),p=u&amp;&amp;u.terminal||!(d=e[v].childNodes)||!d.length?null:le(d,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&amp;&amp;u.transclude:t),(u||p)&amp;&amp;(g.push(v,u,p),f=!0,m=m||u),s=null;return f?function(e,n,o,i){var r,s,c,l,u,d,p,f,h;if(m){var v=n.length;for(h=new Array(v),u=0;u&lt;g.length;u+=3)p=g[u],h[p]=n[p]}else h=n;for(u=0,d=g.length;u&lt;d;)c=h[g[u++]],r=g[u++],s=g[u++],r?(r.scope?(l=e.$new(),ae.$$addScopeInfo(a(c),l)):l=e,f=r.transcludeOnThisElement?de(e,r.transclude,i):!r.templateOnThisElement&amp;&amp;i?i:!i&amp;&amp;t?de(e,t):null,r(s,l,c,o,f)):s&amp;&amp;s(e,c.childNodes,void 0,i)}:null}function ue(e,t,n){var o,i=e[t],r=i.parentNode;if(i.nodeType===ze)for(;(o=r?i.nextSibling:e[t+1])&amp;&amp;o.nodeType===ze;)i.nodeValue=i.nodeValue+o.nodeValue,o.parentNode&amp;&amp;o.parentNode.removeChild(o),n&amp;&amp;o===e[t+1]&amp;&amp;e.splice(t+1,1)}function de(e,t,n){function o(o,i,r,a,s){return o||((o=e.$new(!1,s)).$$transcluded=!0),t(o,i,{parentBoundTranscludeFn:n,transcludeControllers:r,futureParentElement:a})}var i=o.$$slots=je();for(var r in t.$$slots)t.$$slots[r]?i[r]=de(e,t.$$slots[r],n):i[r]=null;return o}function me(e,t,o,i,r){var a,l,u,d=e.nodeType,p=o.$attr;switch(d){case Ve:we(t,xn(l=oe(e)),"E",i,r);for(var f,m,g,h,v,b=e.attributes,_=0,y=b&amp;&amp;b.length;_&lt;y;_++){var $,w=!1,S=!1,k=!1,x=!1,C=!1;m=(f=b[_]).name,h=f.value,(v=(g=xn(m.toLowerCase())).match(ne))?(k="Attr"===v[1],x="Prop"===v[1],C="On"===v[1],m=m.replace(Sn,"").toLowerCase().substr(4+v[1].length).replace(/_(.)/g,(function(e,t){return t.toUpperCase()}))):($=g.match(ie))&amp;&amp;Se($[1])&amp;&amp;(w=m,S=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6)),x||C?(o[g]=h,p[g]=f.name,x?Pe(e,t,g,m):Oe(t,g,m)):(p[g=xn(m.toLowerCase())]=m,!k&amp;&amp;o.hasOwnProperty(g)||(o[g]=h,Nt(e,g)&amp;&amp;(o[g]=!0)),Me(e,t,h,g,k),we(t,g,"A",i,r,w,S))}if("input"===l&amp;&amp;"hidden"===e.getAttribute("type")&amp;&amp;e.setAttribute("autocomplete","off"),!N)break;if(j(u=e.className)&amp;&amp;(u=u.animVal),V(u)&amp;&amp;""!==u)for(;a=c.exec(u);)we(t,g=xn(a[2]),"C",i,r)&amp;&amp;(o[g]=ee(a[3])),u=u.substr(a.index+a[0].length);break;case ze:!function(e,t){var o=n(t,!0);o&amp;&amp;e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&amp;&amp;ae.$$addBindingClass(t),function(e,t){var i=t.parent();n||ae.$$addBindingClass(i),ae.$$addBindingInfo(i,o.expressions),e.$watch(o,(function(e){t[0].nodeValue=e}))}}})}(t,e.nodeValue);break;case qe:if(!R)break;!function(e,t,n,o,i){try{var r=s.exec(e.nodeValue);if(r){var a=xn(r[1]);we(t,a,"M",o,i)&amp;&amp;(n[a]=ee(r[2]))}}catch(e){}}(e,t,o,i,r)}return t.sort(Ce),t}function ge(e,t,n){var o=[],i=0;if(t&amp;&amp;e.hasAttribute&amp;&amp;e.hasAttribute(t))do{if(!e)throw _n("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===Ve&amp;&amp;(e.hasAttribute(t)&amp;&amp;i++,e.hasAttribute(n)&amp;&amp;i--),o.push(e),e=e.nextSibling}while(i&gt;0);else o.push(e);return a(o)}function he(e,t,n){return function(o,i,r,a,s){return i=ge(i[0],t,n),e(o,i,r,a,s)}}function ve(e,t,n,o,i,r){var a;return e?ae(t,n,o,i,r):function(){return a||(a=ae(t,n,o,i,r),t=n=r=null),a.apply(this,arguments)}}function be(t,n,o,i,r,s,c,l,u){u=u||{};for(var d,p,f,g,h,v=-Number.MAX_VALUE,b=u.newScopeDirective,_=u.controllerDirectives,y=u.newIsolateScopeDirective,$=u.templateDirective,w=u.nonTlbTranscludeDirective,k=!1,x=!1,A=u.hasElementTranscludeDirective,T=o.$$element=a(n),P=s,O=i,M=!1,D=!1,I=0,U=t.length;I&lt;U;I++){var L=(d=t[I]).$$start,R=d.$$end;if(L&amp;&amp;(T=ge(n,L,R)),f=void 0,v&gt;d.priority)break;if((h=d.scope)&amp;&amp;(d.templateUrl||(j(h)?(Ae("new/isolated scope",y||b,d,T),y=d):Ae("new/isolated scope",y,d,T)),b=b||d),p=d.name,!M&amp;&amp;(d.replace&amp;&amp;(d.templateUrl||d.template)||d.transclude&amp;&amp;!d.$$tlb)){for(var N,B=I+1;N=t[B++];)if(N.transclude&amp;&amp;!N.$$tlb||N.replace&amp;&amp;(N.templateUrl||N.template)){D=!0;break}M=!0}if(!d.templateUrl&amp;&amp;d.controller&amp;&amp;(_=_||je(),Ae("'"+p+"' controller",_[p],d,T),_[p]=d),h=d.transclude)if(k=!0,d.$$tlb||(Ae("transclusion",w,d,T),w=d),"element"===h)A=!0,v=d.priority,f=T,T=o.$$element=a(ae.$$createComment(p,o[p])),n=T[0],Ie(r,pe(f),n),O=ve(D,f,i,v,P&amp;&amp;P.name,{nonTlbTranscludeDirective:w});else{var V=je();if(j(h)){f=e.document.createDocumentFragment();var z=je(),q=je();for(var W in S(h,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,z[e]=t,V[t]=null,q[t]=n})),S(T.contents(),(function(t){var n=z[xn(oe(t))];n?(q[n]=!0,V[n]=V[n]||e.document.createDocumentFragment(),V[n].appendChild(t)):f.appendChild(t)})),S(q,(function(e,t){if(!e)throw _n("reqslot","Required transclusion slot `{0}` was not filled.",t)})),V)if(V[W]){var K=a(V[W].childNodes);V[W]=ve(D,K,i)}f=a(f.childNodes)}else f=a(bt(n)).contents();T.empty(),(O=ve(D,f,i,void 0,void 0,{needsNewScope:d.$$isolateScope||d.$$newScope})).$$slots=V}if(d.template)if(x=!0,Ae("template",$,d,T),$=d,h=G(d.template)?d.template(T,o):d.template,h=te(h),d.replace){if(P=d,f=ft(h)?[]:An(Te(d.templateNamespace,ee(h))),n=f[0],1!==f.length||n.nodeType!==Ve)throw _n("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p,"");Ie(r,T,n);var X={$attr:{}},Z=me(n,[],X),Q=t.splice(I+1,t.length-(I+1));(y||b)&amp;&amp;ye(Z,y,b),t=t.concat(Z).concat(Q),ke(o,X),U=t.length}else T.html(h);if(d.templateUrl)x=!0,Ae("template",$,d,T),$=d,d.replace&amp;&amp;(P=d),re=xe(t.splice(I,t.length-I),T,o,r,k&amp;&amp;O,c,l,{controllerDirectives:_,newScopeDirective:b!==d&amp;&amp;b,newIsolateScopeDirective:y,templateDirective:$,nonTlbTranscludeDirective:w}),U=t.length;else if(d.compile)try{g=d.compile(T,o,O);var ne=d.$$originalDirective||d;G(g)?ie(null,fe(ne,g),L,R):g&amp;&amp;ie(fe(ne,g.pre),fe(ne,g.post),L,R)}catch(e){m(e,$e(T))}d.terminal&amp;&amp;(re.terminal=!0,v=Math.max(v,d.priority))}return re.scope=b&amp;&amp;!0===b.scope,re.transcludeOnThisElement=k,re.templateOnThisElement=x,re.transclude=O,u.hasElementTranscludeDirective=A,re;function ie(e,t,n,o){e&amp;&amp;(n&amp;&amp;(e=he(e,n,o)),e.require=d.require,e.directiveName=p,(y===d||d.$$isolateScope)&amp;&amp;(e=Ue(e,{isolateScope:!0})),c.push(e)),t&amp;&amp;(n&amp;&amp;(t=he(t,n,o)),t.require=d.require,t.directiveName=p,(y===d||d.$$isolateScope)&amp;&amp;(t=Ue(t,{isolateScope:!0})),l.push(t))}function re(e,t,i,r,s){var u,d,p,f,g,h,v,w,k,x;for(var T in n===i?(k=o,w=o.$$element):k=new Y(w=a(i),o),g=t,y?f=t.$new(!0):b&amp;&amp;(g=t.$parent),s&amp;&amp;((v=function(e,t,n,o){var i;J(e)||(o=n,n=t,t=e,e=void 0);A&amp;&amp;(i=h);n||(n=A?w.parent():w);if(!o)return s(e,t,i,n,D);var r=s.$$slots[o];if(r)return r(e,t,i,n,D);if(F(r))throw _n("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',o,$e(w))}).$$boundTransclude=s,v.isSlotFilled=function(e){return!!s.$$slots[e]}),_&amp;&amp;(h=function(e,t,n,o,i,r,a){var s=je();for(var c in o){var l=o[c],u={$scope:l===a||l.$$isolateScope?i:r,$element:e,$attrs:t,$transclude:n},d=l.controller;"@"===d&amp;&amp;(d=t[l.name]);var p=C(d,u,!0,l.controllerAs);s[l.name]=p,e.data("$"+l.name+"Controller",p.instance)}return s}(w,k,v,_,f,t,y)),y&amp;&amp;(ae.$$addScopeInfo(w,f,!0,!($&amp;&amp;($===y||$===y.$$originalDirective))),ae.$$addScopeClass(w,!0),f.$$isolateBindings=y.$$isolateBindings,(x=Ne(t,k,f,f.$$isolateBindings,y)).removeWatches&amp;&amp;f.$on("$destroy",x.removeWatches)),h){var P=_[T],O=h[T],M=P.$$bindings.bindToController;O.instance=O(),w.data("$"+P.name+"Controller",O.instance),O.bindingInfo=Ne(g,k,O.instance,M,P)}for(S(_,(function(e,t){var n=e.require;e.bindToController&amp;&amp;!H(n)&amp;&amp;j(n)&amp;&amp;E(h[t].instance,_e(t,n,w,h))})),S(h,(function(e){var t=e.instance;if(G(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){m(e)}if(G(t.$onInit))try{t.$onInit()}catch(e){m(e)}G(t.$doCheck)&amp;&amp;(g.$watch((function(){t.$doCheck()})),t.$doCheck()),G(t.$onDestroy)&amp;&amp;g.$on("$destroy",(function(){t.$onDestroy()}))})),u=0,d=c.length;u&lt;d;u++)Re(p=c[u],p.isolateScope?f:t,w,k,p.require&amp;&amp;_e(p.directiveName,p.require,w,h),v);var D=t;for(y&amp;&amp;(y.template||null===y.templateUrl)&amp;&amp;(D=f),e&amp;&amp;e(D,i.childNodes,void 0,s),u=l.length-1;u&gt;=0;u--)Re(p=l[u],p.isolateScope?f:t,w,k,p.require&amp;&amp;_e(p.directiveName,p.require,w,h),v);S(h,(function(e){var t=e.instance;G(t.$postLink)&amp;&amp;t.$postLink()}))}}function _e(e,t,n,o){var i;if(V(t)){var r=t.match(u),a=t.substring(r[0].length),s=r[1]||r[3],c="?"===r[2];if("^^"===s?n=n.parent():i=(i=o&amp;&amp;o[a])&amp;&amp;i.instance,!i){var l="$"+a+"Controller";i="^^"===s&amp;&amp;n[0]&amp;&amp;n[0].nodeType===He?null:s?n.inheritedData(l):n.data(l)}if(!i&amp;&amp;!c)throw _n("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(H(t)){i=[];for(var d=0,p=t.length;d&lt;p;d++)i[d]=_e(e,t[d],n,o)}else j(t)&amp;&amp;(i={},S(t,(function(t,r){i[r]=_e(e,t,n,o)})));return i||null}function ye(e,t,n){for(var o=0,i=e.length;o&lt;i;o++)e[o]=D(e[o],{$$isolateScope:t,$$newScope:n})}function we(e,n,r,a,s,c,l){if(n===s)return null;var u=null;if(o.hasOwnProperty(n))for(var d,p=t.get(n+i),f=0,m=p.length;f&lt;m;f++)if(d=p[f],(F(a)||a&gt;d.priority)&amp;&amp;-1!==d.restrict.indexOf(r)){if(c&amp;&amp;(d=D(d,{$$start:c,$$end:l})),!d.$$bindings){var g=d.$$bindings=h(d,d.name);j(g.isolateScope)&amp;&amp;(d.$$isolateBindings=g.isolateScope)}e.push(d),u=d}return u}function Se(e){if(o.hasOwnProperty(e))for(var n=t.get(e+i),r=0,a=n.length;r&lt;a;r++)if(n[r].multiElement)return!0;return!1}function ke(e,t){var n=t.$attr,o=e.$attr;S(e,(function(o,i){"$"!==i.charAt(0)&amp;&amp;(t[i]&amp;&amp;t[i]!==o&amp;&amp;(o.length?o+=("style"===i?";":" ")+t[i]:o=t[i]),e.$set(i,o,!0,n[i]))})),S(t,(function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&amp;&amp;"style"!==i&amp;&amp;(o[i]=n[i]))}))}function xe(e,t,n,o,i,r,s,c){var l,u,d=[],p=t[0],f=e.shift(),h=D(f,{templateUrl:null,transclude:null,replace:null,$$originalDirective:f}),v=G(f.templateUrl)?f.templateUrl(t,n):f.templateUrl,b=f.templateNamespace;return t.empty(),g(v).then((function(m){var g,_,y,$;if(m=te(m),f.replace){if(y=ft(m)?[]:An(Te(b,ee(m))),g=y[0],1!==y.length||g.nodeType!==Ve)throw _n("tplrt","Template for directive '{0}' must have exactly one root element. {1}",f.name,v);_={$attr:{}},Ie(o,t,g);var w=me(g,[],_);j(f.scope)&amp;&amp;ye(w,!0),e=w.concat(e),ke(n,_)}else g=p,t.html(m);for(e.unshift(h),l=be(e,g,n,i,t,f,r,s,c),S(o,(function(e,n){e===g&amp;&amp;(o[n]=t[0])})),u=le(t[0].childNodes,i);d.length;){var k=d.shift(),x=d.shift(),C=d.shift(),A=d.shift(),T=t[0];if(!k.$$destroyed){if(x!==p){var E=x.className;c.hasElementTranscludeDirective&amp;&amp;f.replace||(T=bt(g)),Ie(C,a(x),T),K(a(T),E)}$=l.transcludeOnThisElement?de(k,l.transclude,A):A,l(u,k,T,o,$)}}d=null})).catch((function(e){W(e)&amp;&amp;m(e)})),function(e,t,n,o,i){var r=i;t.$$destroyed||(d?d.push(t,n,o,r):(l.transcludeOnThisElement&amp;&amp;(r=de(t,l.transclude,i)),l(u,t,n,o,r)))}}function Ce(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name&lt;t.name?-1:1:e.index-t.index}function Ae(e,t,n,o){function i(e){return e?" (module: "+e+")":""}if(t)throw _n("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,$e(o))}function Te(t,n){switch(t=p(t||"html")){case"svg":case"math":var o=e.document.createElement("div");return o.innerHTML="&lt;"+t+"&gt;"+n+"&lt;/"+t+"&gt;",o.childNodes[0].childNodes;default:return n}}function Ee(e){return q(T.valueOf(e),"ng-prop-srcset")}function Pe(e,t,n,o){if(f.test(o))throw _n("nodomevents","Property bindings for HTML DOM event properties are disallowed");var i=oe(e),r=function(e,t){var n=t.toLowerCase();return k[e+"|"+n]||k["*|"+n]}(i,o),a=U;"srcset"!==o||"img"!==i&amp;&amp;"source"!==i?r&amp;&amp;(a=T.getTrusted.bind(T,r)):a=Ee,t.push({priority:100,compile:function(e,t){var i=x(t[n]),r=x(t[n],(function(e){return T.valueOf(e)}));return{pre:function(e,t){function n(){var n=i(e);t[0][o]=a(n)}n(),e.$watch(r,n)}}}})}function Oe(e,t,n){e.push(Wr(x,A,m,t,n,!1))}function Me(e,t,o,i,r){var a=oe(e),s=function(e,t){return"srcdoc"===t?T.HTML:"src"===t||"ngSrc"===t?-1===["img","video","audio","source","track"].indexOf(e)?T.RESOURCE_URL:T.MEDIA_URL:"xlinkHref"===t?"image"===e?T.MEDIA_URL:"a"===e?T.URL:T.RESOURCE_URL:"form"===e&amp;&amp;"action"===t||"base"===e&amp;&amp;"href"===t||"link"===e&amp;&amp;"href"===t?T.RESOURCE_URL:"a"!==e||"href"!==t&amp;&amp;"ngHref"!==t?void 0:T.URL}(a,i),c=!r,u=l[i]||r,d=n(o,c,s,u);if(d){if("multiple"===i&amp;&amp;"select"===a)throw _n("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",$e(e));if(f.test(i))throw _n("nodomevents","Interpolations for HTML DOM event attributes are disallowed");t.push({priority:100,compile:function(){return{pre:function(e,t,r){var a=r.$$observers||(r.$$observers=je()),c=r[i];c!==o&amp;&amp;(d=c&amp;&amp;n(c,!0,s,u),o=c),d&amp;&amp;(r[i]=d(e),(a[i]||(a[i]=[])).$$inter=!0,(r.$$observers&amp;&amp;r.$$observers[i].$$scope||e).$watch(d,(function(e,t){"class"===i&amp;&amp;e!==t?r.$updateClass(e,t):r.$set(i,e)})))}}}})}}function Ie(t,n,o){var i,r,s=n[0],c=n.length,l=s.parentNode;if(t)for(i=0,r=t.length;i&lt;r;i++)if(t[i]===s){t[i++]=o;for(var u=i,d=u+c-1,p=t.length;u&lt;p;u++,d++)d&lt;p?t[u]=t[d]:delete t[u];t.length-=c-1,t.context===s&amp;&amp;(t.context=o);break}l&amp;&amp;l.replaceChild(o,s);var f=e.document.createDocumentFragment();for(i=0;i&lt;c;i++)f.appendChild(n[i]);for(a.hasData(s)&amp;&amp;(a.data(o,a.data(s)),a(s).off("$destroy")),a.cleanData(f.querySelectorAll("*")),i=1;i&lt;c;i++)delete n[i];n[0]=o,n.length=1}function Ue(e,t){return E((function(){return e.apply(null,arguments)}),e,t)}function Re(e,t,n,o,i,r){try{e(t,n,o,i,r)}catch(e){m(e,$e(n))}}function Fe(e,t){if(_)throw _n("missingattr","Attribute '{0}' of '{1}' is non-optional and must be set!",e,t)}function Ne(e,t,o,i,r){var a,s=[],c={};function l(t,n,i){G(o.$onChanges)&amp;&amp;!se(n,i)&amp;&amp;(O||(e.$$postDigest(z),O=[]),a||(a={},O.push(u)),a[t]&amp;&amp;(i=a[t].previousValue),a[t]=new wn(i,n))}function u(){o.$onChanges(a),a=void 0}return S(i,(function(i,a){var u,p,f,m,g,h=i.attrName,v=i.optional;switch(i.mode){case"@":v||d.call(t,h)||(Fe(h,r.name),o[a]=t[h]=void 0),g=t.$observe(h,(function(e){if(V(e)||X(e)){var t=o[a];l(a,e,t),o[a]=e}})),t.$$observers[h].$$scope=e,V(u=t[h])?o[a]=n(u)(e):X(u)&amp;&amp;(o[a]=u),c[a]=new wn(yn,o[a]),s.push(g);break;case"=":if(!d.call(t,h)){if(v)break;Fe(h,r.name),t[h]=void 0}if(v&amp;&amp;!t[h])break;p=x(t[h]),m=p.literal?ce:se,f=p.assign||function(){throw u=o[a]=p(e),_n("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[h],h,r.name)},u=o[a]=p(e);var b=function(t){return m(t,o[a])||(m(t,u)?f(e,t=o[a]):o[a]=t),u=t};b.$stateful=!0,g=i.collection?e.$watchCollection(t[h],b):e.$watch(x(t[h],b),null,p.literal),s.push(g);break;case"&lt;":if(!d.call(t,h)){if(v)break;Fe(h,r.name),t[h]=void 0}if(v&amp;&amp;!t[h])break;var _=(p=x(t[h])).literal,y=o[a]=p(e);c[a]=new wn(yn,o[a]),g=e[i.collection?"$watchCollection":"$watch"](p,(function(e,t){if(t===e){if(t===y||_&amp;&amp;ce(t,y))return;t=y}l(a,e,t),o[a]=e})),s.push(g);break;case"&amp;":if(v||d.call(t,h)||Fe(h,r.name),(p=t.hasOwnProperty(h)?x(t[h]):I)===I&amp;&amp;v)break;o[a]=function(t){return p(e,t)}}})),{initialChanges:c,removeWatches:s.length&amp;&amp;function(){for(var e=0,t=s.length;e&lt;t;++e)s[e]()}}}}]}function wn(e,t){this.previousValue=e,this.currentValue=t}$n.$inject=["$provide","$$sanitizeUriProvider"],wn.prototype.isFirstChange=function(){return this.previousValue===yn};var Sn=/^((?:x|data)[:\-_])/i,kn=/[:\-_]+(.)/g;function xn(e){return e.replace(Sn,"").replace(kn,(function(e,t,n){return n?t.toUpperCase():t}))}function Cn(e,t){var n="",o=e.split(/\s+/),i=t.split(/\s+/);e:for(var r=0;r&lt;o.length;r++){for(var a=o[r],s=0;s&lt;i.length;s++)if(a===i[s])continue e;n+=(n.length&gt;0?" ":"")+a}return n}function An(e){var t=(e=a(e)).length;if(t&lt;=1)return e;for(;t--;){var n=e[t];(n.nodeType===qe||n.nodeType===ze&amp;&amp;""===n.nodeValue.trim())&amp;&amp;g.call(e,t,1)}return e}var Tn=i("$controller"),En=/^(\S+)(\s+as\s+([\w$]+))?$/;function Pn(e,t){if(t&amp;&amp;V(t))return t;if(V(e)){var n=En.exec(e);if(n)return n[3]}}function On(){var e={};this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Fe(t,"controller"),j(t)?E(e,t):e[t]=n},this.$get=["$injector",function(t){return function(o,i,r,a){var s,c,l,u;if(r=!0===r,a&amp;&amp;V(a)&amp;&amp;(u=a),V(o)){if(!(c=o.match(En)))throw Tn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",o);if(l=c[1],u=u||c[3],!(o=e.hasOwnProperty(l)?e[l]:function(e,t,n){if(!t)return e;for(var o,i=t.split("."),r=e,a=i.length,s=0;s&lt;a;s++)o=i[s],e&amp;&amp;(e=(r=e)[o]);return!n&amp;&amp;G(e)?fe(r,e):e}(i.$scope,l,!0)))throw Tn("ctrlreg","The controller with the name '{0}' is not registered.",l);Re(o,l,!0)}if(r){var d=(H(o)?o[o.length-1]:o).prototype;return s=Object.create(d||null),u&amp;&amp;n(i,u,s,l||o.name),E((function(){var e=t.invoke(o,s,i,l);return e!==s&amp;&amp;(j(e)||G(e))&amp;&amp;(s=e,u&amp;&amp;n(i,u,s,l||o.name)),s}),{instance:s,identifier:u})}return s=t.instantiate(o,i,l),u&amp;&amp;n(i,u,s,l||o.name),s};function n(e,t,n,o){if(!e||!j(e.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",o,t);e.$scope[t]=n}}]}function Mn(){this.$get=["$window",function(e){return a(e.document)}]}function Dn(){this.$get=["$document","$rootScope",function(e,t){var n=e[0],o=n&amp;&amp;n.hidden;function i(){o=n.hidden}return e.on("visibilitychange",i),t.$on("$destroy",(function(){e.off("visibilitychange",i)})),function(){return o}}]}function In(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}var Un=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&amp;&amp;t instanceof a&amp;&amp;(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Ln="application/json",Rn={"Content-Type":Ln+";charset=utf-8"},Fn=/^\[|^\{(?!\{)/,Nn={"[":/]$/,"{":/}$/},jn=/^\)]\}',?\n/,Bn=i("$http");function Vn(e){return j(e)?q(e)?e.toISOString():ge(e):e}function zn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return k(e,(function(e,n){null===e||F(e)||G(e)||(H(e)?S(e,(function(e){t.push(xe(n)+"="+xe(Vn(e)))})):t.push(xe(n)+"="+xe(Vn(e))))})),t.join("&amp;")}}}function qn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,o,i){H(n)?S(n,(function(t,n){e(t,o+"["+(j(t)?n:"")+"]")})):j(n)&amp;&amp;!q(n)?k(n,(function(t,n){e(t,o+(i?"":"[")+n+(i?"":"]"))})):(G(n)&amp;&amp;(n=n()),t.push(xe(o)+"="+(null==n?"":xe(Vn(n)))))}(e,"",!0),t.join("&amp;")}}}function Hn(e,t){if(V(e)){var n=e.replace(jn,"").trim();if(n){var o=t("Content-Type"),i=o&amp;&amp;0===o.indexOf(Ln);if(i||(a=(r=n).match(Fn))&amp;&amp;Nn[a[0]].test(r))try{e=he(n)}catch(t){if(!i)return e;throw Bn("baddata",'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"',e,t)}}}var r,a;return e}function Wn(e){var t,n=je();function o(e,t){e&amp;&amp;(n[e]=n[e]?n[e]+", "+t:t)}return V(e)?S(e.split("\n"),(function(e){t=e.indexOf(":"),o(p(ee(e.substr(0,t))),ee(e.substr(t+1)))})):j(e)&amp;&amp;S(e,(function(e,t){o(p(t),ee(e))})),n}function Gn(e){var t;return function(n){if(t||(t=Wn(e)),n){var o=t[p(n)];return void 0===o&amp;&amp;(o=null),o}return t}}function Yn(e,t,n,o){return G(o)?o(e,t,n):(S(o,(function(o){e=o(e,t,n)})),e)}function Kn(e){return 200&lt;=e&amp;&amp;e&lt;300}function Jn(){var e=this.defaults={transformResponse:[Hn],transformRequest:[function(e){return!j(e)||(t=e,"[object File]"===v.call(t))||function(e){return"[object Blob]"===v.call(e)}(e)||function(e){return"[object FormData]"===v.call(e)}(e)?e:ge(e);var t}],headers:{common:{Accept:"application/json, text/plain, */*"},post:Ge(Rn),put:Ge(Rn),patch:Ge(Rn)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},t=!1;this.useApplyAsync=function(e){return N(e)?(t=!!e,this):t};var n=this.interceptors=[],o=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins},set:function(e){this.xsrfTrustedOrigins=e}}),this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(r,a,s,c,l,u,d,m){var g=c("$http");e.paramSerializer=V(e.paramSerializer)?d.get(e.paramSerializer):e.paramSerializer;var h=[];S(n,(function(e){h.unshift(V(e)?d.get(e):d.invoke(e))}));var v,b=(v=[hi].concat(o.map(bi)),function(e){var t=bi(e);return v.some(_i.bind(null,t))});function _(n){if(!j(n))throw i("$http")("badreq","Http request configuration must be an object.  Received: {0}",n);if(!V(m.valueOf(n.url)))throw i("$http")("badreq","Http request configuration url must be a string or a $sce trusted object.  Received: {0}",n.url);var o=E({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer,jsonpCallbackParam:e.jsonpCallbackParam},n);o.headers=function(t){var n,o,i,r=e.headers,a=E({},t.headers);r=E({},r.common,r[p(t.method)]);e:for(n in r){for(i in o=p(n),a)if(p(i)===o)continue e;a[n]=r[n]}return function(e,t){var n,o={};return S(e,(function(e,i){G(e)?null!=(n=e(t))&amp;&amp;(o[i]=n):o[i]=e})),o}(a,Ge(t))}(n),o.method=f(o.method),o.paramSerializer=V(o.paramSerializer)?d.get(o.paramSerializer):o.paramSerializer,r.$$incOutstandingRequestCount("$http");var c=[],v=[],y=u.resolve(o);return S(h,(function(e){(e.request||e.requestError)&amp;&amp;c.unshift(e.request,e.requestError),(e.response||e.responseError)&amp;&amp;v.push(e.response,e.responseError)})),y=$(y,c),y=(y=$(y=y.then((function(n){var o=n.headers,i=Yn(n.data,Gn(o),void 0,n.transformRequest);F(i)&amp;&amp;S(o,(function(e,t){"content-type"===p(t)&amp;&amp;delete o[t]}));F(n.withCredentials)&amp;&amp;!F(e.withCredentials)&amp;&amp;(n.withCredentials=e.withCredentials);return function(n,o){var i,r,c=u.defer(),d=c.promise,f=n.headers,h="jsonp"===p(n.method),v=n.url;h?v=m.getTrustedResourceUrl(v):V(v)||(v=m.valueOf(v));v=function(e,t){t.length&gt;0&amp;&amp;(e+=(-1===e.indexOf("?")?"?":"&amp;")+t);return e}(v,n.paramSerializer(n.params)),h&amp;&amp;(v=function(e,t){var n=e.split("?");if(n.length&gt;2)throw Bn("badjsonp",'Illegal use more than one "?", in url, "{1}"',e);return S(Se(n[1]),(function(n,o){if("JSON_CALLBACK"===n)throw Bn("badjsonp",'Illegal use of JSON_CALLBACK in url, "{0}"',e);if(o===t)throw Bn("badjsonp",'Illegal use of callback param, "{0}", in url, "{1}"',t,e)})),e+=(-1===e.indexOf("?")?"?":"&amp;")+t+"=JSON_CALLBACK"}(v,n.jsonpCallbackParam));_.pendingRequests.push(n),d.then(x,x),!n.cache&amp;&amp;!e.cache||!1===n.cache||"GET"!==n.method&amp;&amp;"JSONP"!==n.method||(i=j(n.cache)?n.cache:j(e.cache)?e.cache:g);i&amp;&amp;(N(r=i.get(v))?Z(r)?r.then(k,k):H(r)?w(r[1],r[0],Ge(r[2]),r[3],r[4]):w(r,200,{},"OK","complete"):i.put(v,d));if(F(r)){var y=b(n.url)?s()[n.xsrfCookieName||e.xsrfCookieName]:void 0;y&amp;&amp;(f[n.xsrfHeaderName||e.xsrfHeaderName]=y),a(n.method,v,o,(function(e,n,o,r,a){i&amp;&amp;(Kn(e)?i.put(v,[e,n,Wn(o),r,a]):i.remove(v));function s(){w(n,e,o,r,a)}t?l.$applyAsync(s):(s(),l.$$phase||l.$apply())}),f,n.timeout,n.withCredentials,n.responseType,$(n.eventHandlers),$(n.uploadEventHandlers))}return d;function $(e){if(e){var n={};return S(e,(function(e,o){n[o]=function(n){function o(){e(n)}t?l.$applyAsync(o):l.$$phase?o():l.$apply(o)}})),n}}function w(e,t,o,i,r){(Kn(t=t&gt;=-1?t:0)?c.resolve:c.reject)({data:e,status:t,headers:Gn(o),config:n,statusText:i,xhrStatus:r})}function k(e){w(e.data,e.status,Ge(e.headers()),e.statusText,e.xhrStatus)}function x(){var e=_.pendingRequests.indexOf(n);-1!==e&amp;&amp;_.pendingRequests.splice(e,1)}}(n,i).then(w,w)})),v)).finally((function(){r.$$completeOutstandingRequest(I,"$http")}));function $(e,t){for(var n=0,o=t.length;n&lt;o;){var i=t[n++],r=t[n++];e=e.then(i,r)}return t.length=0,e}function w(e){var t=E({},e);return t.data=Yn(e.data,e.headers,e.status,o.transformResponse),Kn(e.status)?t:u.reject(t)}}return _.pendingRequests=[],function(e){S(arguments,(function(e){_[e]=function(t,n){return _(E({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){S(arguments,(function(e){_[e]=function(t,n,o){return _(E({},o||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),_.defaults=e,_}]}function Xn(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Zn(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,o){return function(e,t,n,o,i){return function(r,a,s,c,l,u,d,f,m,g){if(a=a||e.url(),"jsonp"===p(r))var h=o.createCallback(a),v=function(e,t,n){e=e.replace("JSON_CALLBACK",t);var r=i.createElement("script"),a=null;return r.type="text/javascript",r.src=e,r.async=!0,a=function(e){r.removeEventListener("load",a),r.removeEventListener("error",a),i.body.removeChild(r),r=null;var s=-1,c="unknown";e&amp;&amp;("load"!==e.type||o.wasCalled(t)||(e={type:"error"}),c=e.type,s="error"===e.type?404:200),n&amp;&amp;n(s,c)},r.addEventListener("load",a),r.addEventListener("error",a),i.body.appendChild(r),a}(a,h,(function(e,t){var n=200===e&amp;&amp;o.getResponse(h);w(c,e,n,"",t,"complete"),o.removeCallback(h)}));else{var b=t(r,a),_=!1;b.open(r,a,!0),S(l,(function(e,t){N(e)&amp;&amp;b.setRequestHeader(t,e)})),b.onload=function(){var e=b.statusText||"",t="response"in b?b.response:b.responseText,n=1223===b.status?204:b.status;0===n&amp;&amp;(n=t?200:"file"===bi(a).protocol?404:0),w(c,n,t,b.getAllResponseHeaders(),e,"complete")};if(b.onerror=function(){w(c,-1,null,null,"","error")},b.ontimeout=function(){w(c,-1,null,null,"","timeout")},b.onabort=function(){w(c,-1,null,null,"",_?"timeout":"abort")},S(m,(function(e,t){b.addEventListener(t,e)})),S(g,(function(e,t){b.upload.addEventListener(t,e)})),d&amp;&amp;(b.withCredentials=!0),f)try{b.responseType=f}catch(e){if("json"!==f)throw e}b.send(F(s)?null:s)}if(u&gt;0)var y=n((function(){$("timeout")}),u);else Z(u)&amp;&amp;u.then((function(){$(N(u.$$timeoutId)?"timeout":"abort")}));function $(e){_="timeout"===e,v&amp;&amp;v(),b&amp;&amp;b.abort()}function w(e,t,o,i,r,a){N(y)&amp;&amp;n.cancel(y),v=b=null,e(t,o,i,r,a)}}}(e,o,e.defer,t,n[0])}]}var Qn=y.$interpolateMinErr=i("$interpolate");function eo(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,o,i){var r=e.length,a=t.length,s=new RegExp(e.replace(/./g,l),"g"),c=new RegExp(t.replace(/./g,l),"g");function l(e){return"\\\\\\"+e}function u(n){return n.replace(s,e).replace(c,t)}function d(e,t,n,o){var i=e.$watch((function(e){return i(),o(e)}),t,n);return i}function p(s,c,l,p){var f=l===i.URL||l===i.MEDIA_URL;if(!s.length||-1===s.indexOf(e)){if(c)return;var m=u(s);f&amp;&amp;(m=i.getTrusted(l,m));var g=L(m);return g.exp=s,g.expressions=[],g.$$watchDelegate=d,g}p=!!p;for(var h,v,b,_,y,$=0,w=[],S=s.length,k=[],x=[];$&lt;S;){if(-1===(h=s.indexOf(e,$))||-1===(v=s.indexOf(t,h+r))){$!==S&amp;&amp;k.push(u(s.substring($)));break}$!==h&amp;&amp;k.push(u(s.substring($,h))),_=s.substring(h+r,v),w.push(_),$=v+a,x.push(k.length),k.push("")}y=1===k.length&amp;&amp;1===x.length;var C=f&amp;&amp;y?void 0:function(e){try{return e=l&amp;&amp;!f?i.getTrusted(l,e):i.valueOf(e),p&amp;&amp;!N(e)?e:Be(e)}catch(e){o(Qn.interr(s,e))}};if(b=w.map((function(e){return n(e,C)})),!c||w.length){var A=function(e){for(var t=0,n=w.length;t&lt;n;t++){if(p&amp;&amp;F(e[t]))return;k[x[t]]=e[t]}return f?i.getTrusted(l,y?k[0]:k.join("")):(l&amp;&amp;k.length&gt;1&amp;&amp;Qn.throwNoconcat(s),k.join(""))};return E((function(e){var t=0,n=w.length,i=new Array(n);try{for(;t&lt;n;t++)i[t]=b[t](e);return A(i)}catch(e){o(Qn.interr(s,e))}}),{exp:s,expressions:w,$$watchDelegate:function(e,t){var n;return e.$watchGroup(b,(function(o,i){var r=A(o);t.call(this,r,o!==i?n:r,e),n=r}))}})}}return p.startSymbol=function(){return e},p.endSymbol=function(){return t},p}]}Qn.throwNoconcat=function(e){throw Qn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",e)},Qn.interr=function(e,t){return Qn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var to=i("$interval");function no(){this.$get=["$$intervalFactory","$window",function(e,t){var n={},o=function(e){t.clearInterval(e),delete n[e]},i=e((function(e,o,i){var r=t.setInterval(e,o);return n[r]=i,r}),o);return i.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$intervalId"))throw to("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!n.hasOwnProperty(e.$$intervalId))return!1;var t=e.$$intervalId,i=n[t];return Ko(i.promise),i.reject("canceled"),o(t),!0},i}]}function oo(){this.$get=["$browser","$q","$$q","$rootScope",function(e,t,n,o){return function(i,r){return function(a,s,c,l){var u=arguments.length&gt;4,d=u?pe(arguments,4):[],p=0,f=N(l)&amp;&amp;!l,m=(f?n:t).defer(),g=m.promise;function h(){u?a.apply(null,d):a(p)}function v(){f?e.defer(h):o.$evalAsync(h),m.notify(p++),c&gt;0&amp;&amp;p&gt;=c&amp;&amp;(m.resolve(p),r(g.$$intervalId)),f||o.$apply()}return c=N(c)?c:0,g.$$intervalId=i(v,s,m,f),g}}}]}var io=function(){this.$get=function(){var e=y.callbacks,t={};return{createCallback:function(n){var o="_"+(e.$$counter++).toString(36),i="angular.callbacks."+o,r=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(o);return t[i]=e[o]=r,i},wasCalled:function(e){return t[e].called},getResponse:function(e){return t[e].data},removeCallback:function(n){var o=t[n];delete e[o.id],delete t[n]}}}},ro=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,ao={http:80,https:443,ftp:21},so=i("$location");function co(e,t,n){var o,i=(o=[],S(t,(function(e,t){H(e)?S(e,(function(e){o.push(xe(t,!0)+(!0===e?"":"="+xe(e,!0)))})):o.push(xe(t,!0)+(!0===e?"":"="+xe(e,!0)))})),o.length?o.join("&amp;"):""),r=n?"#"+ke(n):"";return function(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ke(t[n].replace(/%2F/g,"/"));return t.join("/")}(e)+(i?"?"+i:"")+r}function lo(e,t){var n=bi(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=O(n.port)||ao[n.protocol]||null}var uo=/^\s*[\\/]{2,}/;function po(e,t,n){if(uo.test(e))throw so("badpath",'Invalid url "{0}".',e);var o="/"!==e.charAt(0);o&amp;&amp;(e="/"+e);var i=bi(e),r=o&amp;&amp;"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname;t.$$path=function(e,t){for(var n=e.split("/"),o=n.length;o--;)n[o]=decodeURIComponent(n[o]),t&amp;&amp;(n[o]=n[o].replace(/\//g,"%2F"));return n.join("/")}(r,n),t.$$search=Se(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&amp;&amp;"/"!==t.$$path.charAt(0)&amp;&amp;(t.$$path="/"+t.$$path)}function fo(e,t){return e.slice(0,t.length)===t}function mo(e,t){if(fo(t,e))return t.substr(e.length)}function go(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function ho(e,t,n){this.$$html5=!0,n=n||"",lo(e,this),this.$$parse=function(e){var n=mo(t,e);if(!V(n))throw so("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);po(n,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(e){return t+e.substr(1)},this.$$parseLinkUrl=function(o,i){return i&amp;&amp;"#"===i[0]?(this.hash(i.slice(1)),!0):(N(r=mo(e,o))?(a=r,s=n&amp;&amp;N(r=mo(n,r))?t+(mo("/",r)||r):e+a):N(r=mo(t,o))?s=t+r:t===o+"/"&amp;&amp;(s=t),s&amp;&amp;this.$$parse(s),!!s);var r,a,s}}function vo(e,t,n){lo(e,this),this.$$parse=function(o){var i,r=mo(e,o)||mo(t,o);F(r)||"#"!==r.charAt(0)?this.$$html5?i=r:(i="",F(r)&amp;&amp;(e=o,this.replace())):F(i=mo(n,r))&amp;&amp;(i=r),po(i,this,!1),this.$$path=function(e,t,n){var o,i=/^\/[A-Z]:(\/.*)/;fo(t,n)&amp;&amp;(t=t.replace(n,""));if(i.exec(t))return e;return(o=i.exec(e))?o[1]:e}(this.$$path,i,e),this.$$compose()},this.$$normalizeUrl=function(t){return e+(t?n+t:"")},this.$$parseLinkUrl=function(t,n){return go(e)===go(t)&amp;&amp;(this.$$parse(t),!0)}}function bo(e,t,n){this.$$html5=!0,vo.apply(this,arguments),this.$$parseLinkUrl=function(o,i){return i&amp;&amp;"#"===i[0]?(this.hash(i.slice(1)),!0):(e===go(o)?r=o:(a=mo(t,o))?r=e+n+a:t===o+"/"&amp;&amp;(r=t),r&amp;&amp;this.$$parse(r),!!r);var r,a},this.$$normalizeUrl=function(t){return e+n+t}}var _o={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){this.$$url=co(this.$$path,this.$$search,this.$$hash),this.$$absUrl=this.$$normalizeUrl(this.$$url),this.$$urlUpdatedByLocation=!0},absUrl:yo("$$absUrl"),url:function(e){if(F(e))return this.$$url;var t=ro.exec(e);return(t[1]||""===e)&amp;&amp;this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&amp;&amp;this.search(t[3]||""),this.hash(t[5]||""),this},protocol:yo("$$protocol"),host:yo("$$host"),port:yo("$$port"),path:$o("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(V(e)||z(e))e=e.toString(),this.$$search=Se(e);else{if(!j(e))throw so("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");S(e=ae(e,{}),(function(t,n){null==t&amp;&amp;delete e[n]})),this.$$search=e}break;default:F(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:$o("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};function yo(e){return function(){return this[e]}}function $o(e,t){return function(n){return F(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function wo(){var e="!",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return N(t)?(e=t,this):e},this.html5Mode=function(e){return X(e)?(t.enabled=e,this):j(e)?(X(e.enabled)&amp;&amp;(t.enabled=e.enabled),X(e.requireBase)&amp;&amp;(t.requireBase=e.requireBase),(X(e.rewriteLinks)||V(e.rewriteLinks))&amp;&amp;(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,o,i,r,s){var c,l,u,d,p=o.baseHref(),f=o.url();if(t.enabled){if(!p&amp;&amp;t.requireBase)throw so("nobase","$location in HTML5 mode requires a &lt;base&gt; tag to be present!");u=(d=f).substring(0,d.indexOf("/",d.indexOf("//")+2))+(p||"/"),l=i.history?ho:bo}else u=go(f),l=vo;var m=function(e){return e.substr(0,go(e).lastIndexOf("/")+1)}(u);(c=new l(u,m,"#"+e)).$$parseLinkUrl(f,f),c.$$state=o.state();var g=/^\s*(javascript|mailto):/i;function h(e,t,n){var i=c.url(),r=c.$$state;try{o.url(e,t,n),c.$$state=o.state()}catch(e){throw c.url(i),c.$$state=r,e}}r.on("click",(function(e){var i=t.rewriteLinks;if(i&amp;&amp;!e.ctrlKey&amp;&amp;!e.metaKey&amp;&amp;!e.shiftKey&amp;&amp;2!==e.which&amp;&amp;2!==e.button){for(var s=a(e.target);"a"!==oe(s[0]);)if(s[0]===r[0]||!(s=s.parent())[0])return;if(!V(i)||!F(s.attr(i))){var l=s.prop("href"),u=s.attr("href")||s.attr("xlink:href");j(l)&amp;&amp;"[object SVGAnimatedString]"===l.toString()&amp;&amp;(l=bi(l.animVal).href),g.test(l)||!l||s.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(l,u)&amp;&amp;(e.preventDefault(),c.absUrl()!==o.url()&amp;&amp;n.$apply())}}})),c.absUrl()!==f&amp;&amp;o.url(c.absUrl(),!0);var v=!0;return o.onUrlChange((function(e,t){fo(e,m)?(n.$evalAsync((function(){var o,i=c.absUrl(),r=c.$$state;c.$$parse(e),c.$$state=t,o=n.$broadcast("$locationChangeStart",e,i,t,r).defaultPrevented,c.absUrl()===e&amp;&amp;(o?(c.$$parse(i),c.$$state=r,h(i,!1,r)):(v=!1,b(i,r)))})),n.$$phase||n.$digest()):s.location.href=e})),n.$watch((function(){if(v||c.$$urlUpdatedByLocation){c.$$urlUpdatedByLocation=!1;var e=o.url(),t=c.absUrl(),r=o.state(),a=c.$$replace,s=!((l=e)===(u=t)||bi(l).href===bi(u).href)||c.$$html5&amp;&amp;i.history&amp;&amp;r!==c.$$state;(v||s)&amp;&amp;(v=!1,n.$evalAsync((function(){var t=c.absUrl(),o=n.$broadcast("$locationChangeStart",t,e,c.$$state,r).defaultPrevented;c.absUrl()===t&amp;&amp;(o?(c.$$parse(e),c.$$state=r):(s&amp;&amp;h(t,a,r===c.$$state?null:c.$$state),b(e,r)))})))}var l,u;c.$$replace=!1})),c;function b(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}}]}function So(){var e=!0,t=this;this.debugEnabled=function(t){return N(t)?(e=t,this):e},this.$get=["$window",function(n){var o,i=r||/\bEdge\//.test(n.navigator&amp;&amp;n.navigator.userAgent);return{log:s("log"),info:s("info"),warn:s("warn"),error:s("error"),debug:(o=s("debug"),function(){e&amp;&amp;o.apply(t,arguments)})};function a(e){return W(e)&amp;&amp;(e.stack&amp;&amp;i?e=e.message&amp;&amp;-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&amp;&amp;(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function s(e){var t=n.console||{},o=t[e]||t.log||I;return function(){var e=[];return S(arguments,(function(t){e.push(a(t))})),Function.prototype.apply.call(o,t,e)}}}]}S([bo,vo,ho],(function(e){e.prototype=Object.create(_o),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==ho||!this.$$html5)throw so("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=F(t)?null:t,this.$$urlUpdatedByLocation=!0,this}}));var ko=i("$parse"),xo={}.constructor.prototype.valueOf;function Co(e){return e+""}var Ao=je();S("+ - * / % === !== == != &lt; &gt; &lt;= &gt;= &amp;&amp; || ! = |".split(" "),(function(e){Ao[e]=!0}));var To={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Eo=function(e){this.options=e};Eo.prototype={constructor:Eo,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index&lt;this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&amp;&amp;this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),o=n+this.peek(2),i=Ao[t],r=Ao[n],a=Ao[o];if(i||r||a){var s=a?o:r?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t&lt;this.text.length&amp;&amp;this.text.charAt(this.index+t)},isNumber:function(e){return"0"&lt;=e&amp;&amp;e&lt;="9"&amp;&amp;"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||"Â&nbsp;"===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"&lt;=e&amp;&amp;e&lt;="z"||"A"&lt;=e&amp;&amp;e&lt;="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)&lt;&lt;10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),o=t.charCodeAt(0);return n&gt;=55296&amp;&amp;n&lt;=56319&amp;&amp;o&gt;=56320&amp;&amp;o&lt;=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var o=N(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw ko("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,o,this.text)},readNumber:function(){for(var e="",t=this.index;this.index&lt;this.text.length;){var n=p(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var o=this.peek();if("e"===n&amp;&amp;this.isExpOperator(o))e+=n;else if(this.isExpOperator(n)&amp;&amp;o&amp;&amp;this.isNumber(o)&amp;&amp;"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||o&amp;&amp;this.isNumber(o)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index&lt;this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",o=e,i=!1;this.index&lt;this.text.length;){var r=this.text.charAt(this.index);if(o+=r,i){if("u"===r){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{n+=To[r]||r}i=!1}else if("\\"===r)i=!0;else{if(r===e)return this.index++,void this.tokens.push({index:t,text:o,constant:!0,value:n});n+=r}this.index++}this.throwError("Unterminated quote",t)}};var Po=function(e,t){this.lexer=e,this.options=t};function Oo(e,t){return void 0!==e?e:t}function Mo(e,t){return void 0===e?t:void 0===t?e:e+t}Po.Program="Program",Po.ExpressionStatement="ExpressionStatement",Po.AssignmentExpression="AssignmentExpression",Po.ConditionalExpression="ConditionalExpression",Po.LogicalExpression="LogicalExpression",Po.BinaryExpression="BinaryExpression",Po.UnaryExpression="UnaryExpression",Po.CallExpression="CallExpression",Po.MemberExpression="MemberExpression",Po.Identifier="Identifier",Po.Literal="Literal",Po.ArrayExpression="ArrayExpression",Po.Property="Property",Po.ObjectExpression="ObjectExpression",Po.ThisExpression="ThisExpression",Po.LocalsExpression="LocalsExpression",Po.NGValueParameter="NGValueParameter",Po.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&amp;&amp;this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length&gt;0&amp;&amp;!this.peek("}",")",";","]")&amp;&amp;e.push(this.expressionStatement()),!this.expect(";"))return{type:Po.Program,body:e}},expressionStatement:function(){return{type:Po.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Ro(e))throw ko("lval","Trying to assign a value to a non l-value");e={type:Po.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&amp;&amp;(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Po.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Po.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&amp;&amp;");)e={type:Po.LogicalExpression,operator:"&amp;&amp;",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Po.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("&lt;","&gt;","&lt;=","&gt;=");)t={type:Po.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Po.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Po.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Po.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=ae(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Po.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:Po.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Po.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Po.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Po.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Po.Identifier,name:e.text}},constant:function(){return{type:Po.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Po.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Po.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Po.ObjectExpression,properties:t}},throwError:function(e,t){throw ko("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw ko("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw ko("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,o){return this.peekAhead(0,e,t,n,o)},peekAhead:function(e,t,n,o,i){if(this.tokens.length&gt;e){var r=this.tokens[e],a=r.text;if(a===t||a===n||a===o||a===i||!t&amp;&amp;!n&amp;&amp;!o&amp;&amp;!i)return r}return!1},expect:function(e,t,n,o){var i=this.peek(e,t,n,o);return!!i&amp;&amp;(this.tokens.shift(),i)},selfReferential:{this:{type:Po.ThisExpression},$locals:{type:Po.LocalsExpression}}};var Do=1,Io=2;function Uo(e,t,n){var o,i,r,a=e.isPure=function(e,t){switch(e.type){case Po.MemberExpression:if(e.computed)return!1;break;case Po.UnaryExpression:return Do;case Po.BinaryExpression:return"+"!==e.operator&amp;&amp;Do;case Po.CallExpression:return!1}return void 0===t?Io:t}(e,n);switch(e.type){case Po.Program:o=!0,S(e.body,(function(e){Uo(e.expression,t,a),o=o&amp;&amp;e.expression.constant})),e.constant=o;break;case Po.Literal:e.constant=!0,e.toWatch=[];break;case Po.UnaryExpression:Uo(e.argument,t,a),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Po.BinaryExpression:Uo(e.left,t,a),Uo(e.right,t,a),e.constant=e.left.constant&amp;&amp;e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Po.LogicalExpression:Uo(e.left,t,a),Uo(e.right,t,a),e.constant=e.left.constant&amp;&amp;e.right.constant,e.toWatch=e.constant?[]:[e];break;case Po.ConditionalExpression:Uo(e.test,t,a),Uo(e.alternate,t,a),Uo(e.consequent,t,a),e.constant=e.test.constant&amp;&amp;e.alternate.constant&amp;&amp;e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Po.Identifier:e.constant=!1,e.toWatch=[e];break;case Po.MemberExpression:Uo(e.object,t,a),e.computed&amp;&amp;Uo(e.property,t,a),e.constant=e.object.constant&amp;&amp;(!e.computed||e.property.constant),e.toWatch=e.constant?[]:[e];break;case Po.CallExpression:r=!!e.filter&amp;&amp;function(e,t){return!e(t).$stateful}(t,e.callee.name),o=r,i=[],S(e.arguments,(function(e){Uo(e,t,a),o=o&amp;&amp;e.constant,i.push.apply(i,e.toWatch)})),e.constant=o,e.toWatch=r?i:[e];break;case Po.AssignmentExpression:Uo(e.left,t,a),Uo(e.right,t,a),e.constant=e.left.constant&amp;&amp;e.right.constant,e.toWatch=[e];break;case Po.ArrayExpression:o=!0,i=[],S(e.elements,(function(e){Uo(e,t,a),o=o&amp;&amp;e.constant,i.push.apply(i,e.toWatch)})),e.constant=o,e.toWatch=i;break;case Po.ObjectExpression:o=!0,i=[],S(e.properties,(function(e){Uo(e.value,t,a),o=o&amp;&amp;e.value.constant,i.push.apply(i,e.value.toWatch),e.computed&amp;&amp;(Uo(e.key,t,!1),o=o&amp;&amp;e.key.constant,i.push.apply(i,e.key.toWatch))})),e.constant=o,e.toWatch=i;break;case Po.ThisExpression:case Po.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Lo(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function Ro(e){return e.type===Po.Identifier||e.type===Po.MemberExpression}function Fo(e){if(1===e.body.length&amp;&amp;Ro(e.body[0].expression))return{type:Po.AssignmentExpression,left:e.body[0].expression,right:{type:Po.NGValueParameter},operator:"="}}function No(e){this.$filter=e}function jo(e){this.$filter=e}function Bo(e,t,n){this.ast=new Po(e,n),this.astCompiler=n.csp?new jo(t):new No(t)}function Vo(e){return G(e.valueOf)?e.valueOf():xo.call(e)}function zo(){var e,t,n=je(),o={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){o[e]=t},this.setIdentifierFns=function(n,o){return e=n,t=o,this},this.$get=["$filter",function(i){var r={csp:le().noUnsafeEval,literals:ae(o),isIdentifierStart:G(e)&amp;&amp;e,isIdentifierContinue:G(t)&amp;&amp;t};return a.$$getAst=function(e){return new Bo(new Eo(r),i,r).getAst(e).ast},a;function a(e,t){var o,a;switch(typeof e){case"string":if(e=e.trim(),!(o=n[a=e]))o=new Bo(new Eo(r),i,r).parse(e),n[a]=p(o);return f(o,t);case"function":return f(e,t);default:return f(I,t)}}function s(e,t,n){return null==e||null==t?e===t:!("object"==typeof e&amp;&amp;"object"==typeof(e=Vo(e))&amp;&amp;!n)&amp;&amp;(e===t||e!=e&amp;&amp;t!=t)}function c(e,t,n,o,i){var r,a=o.inputs;if(1===a.length){var c=s;return a=a[0],e.$watch((function(e){var t=a(e);return s(t,c,a.isPure)||(r=o(e,void 0,void 0,[t]),c=t&amp;&amp;Vo(t)),r}),t,n,i)}for(var l=[],u=[],d=0,p=a.length;d&lt;p;d++)l[d]=s,u[d]=null;return e.$watch((function(e){for(var t=!1,n=0,i=a.length;n&lt;i;n++){var c=a[n](e);(t||(t=!s(c,l[n],a[n].isPure)))&amp;&amp;(u[n]=c,l[n]=c&amp;&amp;Vo(c))}return t&amp;&amp;(r=o(e,void 0,void 0,u)),r}),t,n,i)}function l(e,t,n,o,i){var r,a,s=o.literal?u:N,c=o.$$intercepted||o,l=o.$$interceptor||U,d=o.inputs&amp;&amp;!c.inputs;return m.literal=o.literal,m.constant=o.constant,m.inputs=o.inputs,p(m),r=e.$watch(m,t,n,i);function f(){s(a)&amp;&amp;r()}function m(e,t,n,o){return a=d&amp;&amp;o?o[0]:c(e,t,n,o),s(a)&amp;&amp;e.$$postDigest(f),l(a)}}function u(e){var t=!0;return S(e,(function(e){N(e)||(t=!1)})),t}function d(e,t,n,o){var i=e.$watch((function(e){return i(),o(e)}),t,n);return i}function p(e){return e.constant?e.$$watchDelegate=d:e.oneTime?e.$$watchDelegate=l:e.inputs&amp;&amp;(e.$$watchDelegate=c),e}function f(e,t){if(!t)return e;e.$$interceptor&amp;&amp;(t=function(e,t){function n(n){return t(e(n))}return n.$stateful=e.$stateful||t.$stateful,n.$$pure=e.$$pure&amp;&amp;t.$$pure,n}(e.$$interceptor,t),e=e.$$intercepted);var n=!1,o=function(o,i,r,a){var s=n&amp;&amp;a?a[0]:e(o,i,r,a);return t(s)};return o.$$intercepted=e,o.$$interceptor=t,o.literal=e.literal,o.oneTime=e.oneTime,o.constant=e.constant,t.$stateful||(n=!e.inputs,o.inputs=e.inputs?e.inputs:[e],t.$$pure||(o.inputs=o.inputs.map((function(e){return e.isPure===Io?function(t){return e(t)}:e})))),p(o)}}]}function qo(){var e=!0;this.$get=["$rootScope","$exceptionHandler",function(t,n){return Wo((function(e){t.$evalAsync(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return N(t)?(e=t,this):e}}function Ho(){var e=!0;this.$get=["$browser","$exceptionHandler",function(t,n){return Wo((function(e){t.defer(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return N(t)?(e=t,this):e}}function Wo(e,t,n){var o=i("$q",TypeError),r=0,a=[];function s(){return new c}function c(){var e=this.promise=new l;this.resolve=function(t){p(e,t)},this.reject=function(t){f(e,t)},this.notify=function(t){g(e,t)}}function l(){this.$$state={status:0}}function u(){for(;!r&amp;&amp;a.length;){var e=a.shift();if(!Go(e)){Yo(e);var n="Possibly unhandled rejection: "+Ye(e.value);W(e.value)?t(e.value,n):t(n)}}}function d(o){!n||o.pending||2!==o.status||Go(o)||(0===r&amp;&amp;0===a.length&amp;&amp;e(u),a.push(o)),!o.processScheduled&amp;&amp;o.pending&amp;&amp;(o.processScheduled=!0,++r,e((function(){!function(o){var i,a,s;s=o.pending,o.processScheduled=!1,o.pending=void 0;try{for(var c=0,l=s.length;c&lt;l;++c){Yo(o),a=s[c][0],i=s[c][o.status];try{G(i)?p(a,i(o.value)):1===o.status?p(a,o.value):f(a,o.value)}catch(e){f(a,e),e&amp;&amp;!0===e.$$passToExceptionHandler&amp;&amp;t(e)}}}finally{--r,n&amp;&amp;0===r&amp;&amp;e(u)}}(o)})))}function p(e,t){e.$$state.status||(t===e?m(e,o("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):function e(t,n){var o,i=!1;try{(j(n)||G(n))&amp;&amp;(o=n.then),G(o)?(t.$$state.status=-1,o.call(n,(function(n){if(i)return;i=!0,e(t,n)}),r,(function(e){g(t,e)}))):(t.$$state.value=n,t.$$state.status=1,d(t.$$state))}catch(e){r(e)}function r(e){i||(i=!0,m(t,e))}}(e,t))}function f(e,t){e.$$state.status||m(e,t)}function m(e,t){e.$$state.value=t,e.$$state.status=2,d(e.$$state)}function g(n,o){var i=n.$$state.pending;n.$$state.status&lt;=0&amp;&amp;i&amp;&amp;i.length&amp;&amp;e((function(){for(var e,n,r=0,a=i.length;r&lt;a;r++){n=i[r][0],e=i[r][3];try{g(n,G(e)?e(o):o)}catch(e){t(e)}}}))}function h(e){var t=new l;return f(t,e),t}function v(e,t,n){var o=null;try{G(n)&amp;&amp;(o=n())}catch(e){return h(e)}return Z(o)?o.then((function(){return t(e)}),h):t(e)}function b(e,t,n,o){var i=new l;return p(i,e),i.then(t,n,o)}E(l.prototype,{then:function(e,t,n){if(F(e)&amp;&amp;F(t)&amp;&amp;F(n))return this;var o=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([o,e,t,n]),this.$$state.status&gt;0&amp;&amp;d(this.$$state),o},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return v(t,_,e)}),(function(t){return v(t,h,e)}),t)}});var _=b;function y(e){if(!G(e))throw o("norslvr","Expected resolverFn, got '{0}'",e);var t=new l;return e((function(e){p(t,e)}),(function(e){f(t,e)})),t}return y.prototype=l.prototype,y.defer=s,y.reject=h,y.when=b,y.resolve=_,y.all=function(e){var t=new l,n=0,o=H(e)?[]:{};return S(e,(function(e,i){n++,b(e).then((function(e){o[i]=e,--n||p(t,o)}),(function(e){f(t,e)}))})),0===n&amp;&amp;p(t,o),t},y.race=function(e){var t=s();return S(e,(function(e){b(e).then(t.resolve,t.reject)})),t.promise},y}function Go(e){return!!e.pur}function Yo(e){e.pur=!0}function Ko(e){e.$$state&amp;&amp;Yo(e.$$state)}function Jo(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,o=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,r=i?function(e){var t=n(e);return function(){o(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return r.supported=i,r}]}function Xo(){var e=10,t=i("$rootScope"),n=null,o=null;this.digestTtl=function(t){return arguments.length&amp;&amp;(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(i,a,s){function c(e){e.currentScope.$$destroyed=!0}function l(){this.$id=C(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$suspended=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}l.prototype={constructor:l,$new:function(e,t){var n;return t=t||this,e?(n=new l).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=C(),this.$$ChildScope=null,this.$$suspended=!1}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&amp;&amp;n.$on("$destroy",c),n},$watch:function(e,t,o,i){var r=a(e),s=G(t)?t:I;if(r.$$watchDelegate)return r.$$watchDelegate(this,s,o,r,e);var c=this,l=c.$$watchers,u={fn:s,last:y,get:r,exp:i||e,eq:!!o};return n=null,l||((l=c.$$watchers=[]).$$digestWatchIndex=-1),l.unshift(u),l.$$digestWatchIndex++,b(this,1),function(){var e=re(l,u);e&gt;=0&amp;&amp;(b(c,-1),e&lt;l.$$digestWatchIndex&amp;&amp;l.$$digestWatchIndex--),n=null}},$watchGroup:function(e,t){var n=new Array(e.length),o=new Array(e.length),i=[],r=this,a=!1,s=!0;if(!e.length){var c=!0;return r.$evalAsync((function(){c&amp;&amp;t(o,o,r)})),function(){c=!1}}if(1===e.length)return this.$watch(e[0],(function(e,i,r){o[0]=e,n[0]=i,t(o,e===i?o:n,r)}));function l(){a=!1;try{s?(s=!1,t(o,o,r)):t(o,n,r)}finally{for(var i=0;i&lt;e.length;i++)n[i]=o[i]}}return S(e,(function(e,t){var n=r.$watch(e,(function(e){o[t]=e,a||(a=!0,r.$evalAsync(l))}));i.push(n)})),function(){for(;i.length;)i.shift()()}},$watchCollection:function(e,t){g.$$pure=a(e).literal,g.$stateful=!g.$$pure;var n,o,i,r=this,s=t.length&gt;1,c=0,l=a(e,g),u=[],p={},f=!0,m=0;function g(e){var t,i,r,a;if(!F(n=e)){if(j(n))if(w(n)){o!==u&amp;&amp;(m=(o=u).length=0,c++),t=n.length,m!==t&amp;&amp;(c++,o.length=m=t);for(var s=0;s&lt;t;s++)a=o[s],r=n[s],a!=a&amp;&amp;r!=r||a===r||(c++,o[s]=r)}else{for(i in o!==p&amp;&amp;(o=p={},m=0,c++),t=0,n)d.call(n,i)&amp;&amp;(t++,r=n[i],a=o[i],i in o?a!=a&amp;&amp;r!=r||a===r||(c++,o[i]=r):(m++,o[i]=r,c++));if(m&gt;t)for(i in c++,o)d.call(n,i)||(m--,delete o[i])}else o!==n&amp;&amp;(o=n,c++);return c}}return this.$watch(l,(function(){if(f?(f=!1,t(n,n,r)):t(n,i,r),s)if(j(n))if(w(n)){i=new Array(n.length);for(var e=0;e&lt;n.length;e++)i[e]=n[e]}else for(var o in i={},n)d.call(n,o)&amp;&amp;(i[o]=n[o]);else i=n}))},$digest:function(){var r,a,c,l,d,m,b,_,w,S=e,k=p.length?u:this,x=[];h("$digest"),s.$$checkUrlChange(),this===u&amp;&amp;null!==o&amp;&amp;(s.defer.cancel(o),$()),n=null;do{d=!1,b=k;for(var C=0;C&lt;p.length;C++){try{(0,(w=p[C]).fn)(w.scope,w.locals)}catch(e){i(e)}n=null}p.length=0;e:do{if(l=!b.$$suspended&amp;&amp;b.$$watchers)for(l.$$digestWatchIndex=l.length;l.$$digestWatchIndex--;)try{if(r=l[l.$$digestWatchIndex])if((a=(0,r.get)(b))===(c=r.last)||(r.eq?ce(a,c):M(a)&amp;&amp;M(c))){if(r===n){d=!1;break e}}else d=!0,n=r,r.last=r.eq?ae(a,null):a,(0,r.fn)(a,c===y?a:c,b),S&lt;5&amp;&amp;(x[_=4-S]||(x[_]=[]),x[_].push({msg:G(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,newVal:a,oldVal:c}))}catch(e){i(e)}if(!(m=!b.$$suspended&amp;&amp;b.$$watchersCount&amp;&amp;b.$$childHead||b!==k&amp;&amp;b.$$nextSibling))for(;b!==k&amp;&amp;!(m=b.$$nextSibling);)b=b.$parent}while(b=m);if((d||p.length)&amp;&amp;!S--)throw v(),t("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,x)}while(d||p.length);for(v();g&lt;f.length;)try{f[g++]()}catch(e){i(e)}f.length=g=0,s.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===u&amp;&amp;s.$$applicationDestroyed(),b(this,-this.$$watchersCount),this.$$listenerCount)_(this,this.$$listenerCount[t],t);e&amp;&amp;e.$$childHead===this&amp;&amp;(e.$$childHead=this.$$nextSibling),e&amp;&amp;e.$$childTail===this&amp;&amp;(e.$$childTail=this.$$prevSibling),this.$$prevSibling&amp;&amp;(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&amp;&amp;(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=I,this.$on=this.$watch=this.$watchGroup=function(){return I},this.$$listeners={},this.$$nextSibling=null,function e(t){9===r&amp;&amp;(t.$$childHead&amp;&amp;e(t.$$childHead),t.$$nextSibling&amp;&amp;e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return a(e)(this,t)},$evalAsync:function(e,t){u.$$phase||p.length||s.defer((function(){p.length&amp;&amp;u.$digest()}),null,"$evalAsync"),p.push({scope:this,fn:a(e),locals:t})},$$postDigest:function(e){f.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{v()}}catch(e){i(e)}finally{try{u.$digest()}catch(e){throw i(e),e}}},$applyAsync:function(e){var t=this;e&amp;&amp;m.push((function(){t.$eval(e)})),e=a(e),null===o&amp;&amp;(o=s.defer((function(){u.$apply($)}),null,"$applyAsync"))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var o=this;do{o.$$listenerCount[e]||(o.$$listenerCount[e]=0),o.$$listenerCount[e]++}while(o=o.$parent);var i=this;return function(){var o=n.indexOf(t);-1!==o&amp;&amp;(delete n[o],_(i,1,e))}},$emit:function(e,t){var n,o,r,a=[],s=this,c=!1,l={name:e,targetScope:s,stopPropagation:function(){c=!0},preventDefault:function(){l.defaultPrevented=!0},defaultPrevented:!1},u=de([l],arguments,1);do{for(n=s.$$listeners[e]||a,l.currentScope=s,o=0,r=n.length;o&lt;r;o++)if(n[o])try{n[o].apply(null,u)}catch(e){i(e)}else n.splice(o,1),o--,r--;if(c)break;s=s.$parent}while(s);return l.currentScope=null,l},$broadcast:function(e,t){var n=this,o=n,r=n,a={name:e,targetScope:n,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[e])return a;for(var s,c,l,u=de([a],arguments,1);o=r;){for(a.currentScope=o,c=0,l=(s=o.$$listeners[e]||[]).length;c&lt;l;c++)if(s[c])try{s[c].apply(null,u)}catch(e){i(e)}else s.splice(c,1),c--,l--;if(!(r=o.$$listenerCount[e]&amp;&amp;o.$$childHead||o!==n&amp;&amp;o.$$nextSibling))for(;o!==n&amp;&amp;!(r=o.$$nextSibling);)o=o.$parent}return a.currentScope=null,a}};var u=new l,p=u.$$asyncQueue=[],f=u.$$postDigestQueue=[],m=u.$$applyAsyncQueue=[],g=0;return u;function h(e){if(u.$$phase)throw t("inprog","{0} already in progress",u.$$phase);u.$$phase=e}function v(){u.$$phase=null}function b(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function _(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&amp;&amp;delete e.$$listenerCount[n]}while(e=e.$parent)}function y(){}function $(){for(;m.length;)try{m.shift()()}catch(e){i(e)}o=null}}]}function Zo(){var e=/^\s*(https?|s?ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(t){return N(t)?(e=t,this):e},this.imgSrcSanitizationTrustedUrlList=function(e){return N(e)?(t=e,this):t},this.$get=function(){return function(n,o){var i=o?t:e,r=bi(n&amp;&amp;n.trim()).href;return""===r||r.match(i)?n:"unsafe:"+r}}}No.prototype={compile:function(e){var t=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Uo(e,t.$filter);var n,o="";if(this.stage="assign",n=Fo(e)){this.state.computing="assign";var i=this.nextId();this.recurse(n,i),this.return_(i),o="fn.assign="+this.generateFunction("assign","s,v,l")}var r=Lo(e.body);t.stage="inputs",S(r,(function(e,n){var o="fn"+n;t.state[o]={vars:[],body:[],own:{}},t.state.computing=o;var i=t.nextId();t.recurse(e,i),t.return_(i),t.state.inputs.push({name:o,isPure:e.isPure}),e.watchId=n})),this.state.computing="fn",this.stage="main",this.recurse(e);var a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+o+this.watchFns()+"return fn;",s=new Function("$filter","getStringValue","ifDefined","plus",a)(this.$filter,Co,Oo,Mo);return this.state=this.stage=void 0,s},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return S(t,(function(t){e.push("var "+t.name+"="+n.generateFunction(t.name,"s")),t.isPure&amp;&amp;e.push(t.name,".isPure="+JSON.stringify(t.isPure)+";")})),t.length&amp;&amp;e.push("fn.inputs=["+t.map((function(e){return e.name})).join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return S(this.state.filters,(function(n,o){e.push(n+"=$filter("+t.escape(o)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,o,i,r){var a,s,c,l,u,d=this;if(o=o||I,!r&amp;&amp;N(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,o,i,!0));switch(e.type){case Po.Program:S(e.body,(function(t,n){d.recurse(t.expression,void 0,void 0,(function(e){s=e})),n!==e.body.length-1?d.current().body.push(s,";"):d.return_(s)}));break;case Po.Literal:l=this.escape(e.value),this.assign(t,l),o(t||l);break;case Po.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){s=e})),l=e.operator+"("+this.ifDefined(s,0)+")",this.assign(t,l),o(l);break;case Po.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){a=e})),this.recurse(e.right,void 0,void 0,(function(e){s=e})),l="+"===e.operator?this.plus(a,s):"-"===e.operator?this.ifDefined(a,0)+e.operator+this.ifDefined(s,0):"("+a+")"+e.operator+"("+s+")",this.assign(t,l),o(l);break;case Po.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&amp;&amp;"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),o(t);break;case Po.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),o(t);break;case Po.Identifier:t=t||this.nextId(),n&amp;&amp;(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),(function(){d.if_("inputs"===d.stage||"s",(function(){i&amp;&amp;1!==i&amp;&amp;d.if_(d.isNull(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))}))}),t&amp;&amp;d.lazyAssign(t,d.nonComputedMember("l",e.name))),o(t);break;case Po.MemberExpression:a=n&amp;&amp;(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,a,void 0,(function(){d.if_(d.notNull(a),(function(){e.computed?(s=d.nextId(),d.recurse(e.property,s),d.getStringValue(s),i&amp;&amp;1!==i&amp;&amp;d.if_(d.not(d.computedMember(a,s)),d.lazyAssign(d.computedMember(a,s),"{}")),l=d.computedMember(a,s),d.assign(t,l),n&amp;&amp;(n.computed=!0,n.name=s)):(i&amp;&amp;1!==i&amp;&amp;d.if_(d.isNull(d.nonComputedMember(a,e.property.name)),d.lazyAssign(d.nonComputedMember(a,e.property.name),"{}")),l=d.nonComputedMember(a,e.property.name),d.assign(t,l),n&amp;&amp;(n.computed=!1,n.name=e.property.name))}),(function(){d.assign(t,"undefined")})),o(t)}),!!i);break;case Po.CallExpression:t=t||this.nextId(),e.filter?(s=d.filter(e.callee.name),c=[],S(e.arguments,(function(e){var t=d.nextId();d.recurse(e,t),c.push(t)})),l=s+"("+c.join(",")+")",d.assign(t,l),o(t)):(s=d.nextId(),a={},c=[],d.recurse(e.callee,s,a,(function(){d.if_(d.notNull(s),(function(){S(e.arguments,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){c.push(e)}))})),l=a.name?d.member(a.context,a.name,a.computed)+"("+c.join(",")+")":s+"("+c.join(",")+")",d.assign(t,l)}),(function(){d.assign(t,"undefined")})),o(t)})));break;case Po.AssignmentExpression:s=this.nextId(),a={},this.recurse(e.left,void 0,a,(function(){d.if_(d.notNull(a.context),(function(){d.recurse(e.right,s),l=d.member(a.context,a.name,a.computed)+e.operator+s,d.assign(t,l),o(t||l)}))}),1);break;case Po.ArrayExpression:c=[],S(e.elements,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){c.push(e)}))})),l="["+c.join(",")+"]",this.assign(t,l),o(t||l);break;case Po.ObjectExpression:c=[],u=!1,S(e.properties,(function(e){e.computed&amp;&amp;(u=!0)})),u?(t=t||this.nextId(),this.assign(t,"{}"),S(e.properties,(function(e){e.computed?(a=d.nextId(),d.recurse(e.key,a)):a=e.key.type===Po.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,a,e.computed),s)}))):(S(e.properties,(function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,(function(e){c.push(d.escape(t.key.type===Po.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),l="{"+c.join(",")+"}",this.assign(t,l)),o(t||l);break;case Po.ThisExpression:this.assign(t,"s"),o(t||"s");break;case Po.LocalsExpression:this.assign(t,"l"),o(t||"l");break;case Po.NGValueParameter:this.assign(t,"v"),o(t||"v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,o=this.current().own;return o.hasOwnProperty(n)||(o[n]=this.nextId(!1,e+"&amp;&amp;("+this.escape(t)+" in "+e+")")),o[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var o=this.current().body;o.push("if(",e,"){"),t(),o.push("}"),n&amp;&amp;(o.push("else{"),n(),o.push("}"))}},not:function(e){return"!("+e+")"},isNull:function(e){return e+"==null"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},lazyRecurse:function(e,t,n,o,i,r){var a=this;return function(){a.recurse(e,t,n,o,i,r)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(V(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(z(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw ko("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},jo.prototype={compile:function(e){var t,n,o=this;Uo(e,o.$filter),(t=Fo(e))&amp;&amp;(n=this.recurse(t));var i,r=Lo(e.body);r&amp;&amp;(i=[],S(r,(function(e,t){var n=o.recurse(e);n.isPure=e.isPure,e.input=n,i.push(n),e.watchId=t})));var a=[];S(e.body,(function(e){a.push(o.recurse(e.expression))}));var s=0===e.body.length?I:1===e.body.length?a[0]:function(e,t){var n;return S(a,(function(o){n=o(e,t)})),n};return n&amp;&amp;(s.assign=function(e,t,o){return n(e,o,t)}),i&amp;&amp;(s.inputs=i),s},recurse:function(e,t,n){var o,i,r,a=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Po.Literal:return this.value(e.value,t);case Po.UnaryExpression:return i=this.recurse(e.argument),this["unary"+e.operator](i,t);case Po.BinaryExpression:case Po.LogicalExpression:return o=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](o,i,t);case Po.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case Po.Identifier:return a.identifier(e.name,t,n);case Po.MemberExpression:return o=this.recurse(e.object,!1,!!n),e.computed||(i=e.property.name),e.computed&amp;&amp;(i=this.recurse(e.property)),e.computed?this.computedMember(o,i,t,n):this.nonComputedMember(o,i,t,n);case Po.CallExpression:return r=[],S(e.arguments,(function(e){r.push(a.recurse(e))})),e.filter&amp;&amp;(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,o,a){for(var s=[],c=0;c&lt;r.length;++c)s.push(r[c](e,n,o,a));var l=i.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:l}:l}:function(e,n,o,a){var s,c=i(e,n,o,a);if(null!=c.value){for(var l=[],u=0;u&lt;r.length;++u)l.push(r[u](e,n,o,a));s=c.value.apply(c.context,l)}return t?{value:s}:s};case Po.AssignmentExpression:return o=this.recurse(e.left,!0,1),i=this.recurse(e.right),function(e,n,r,a){var s=o(e,n,r,a),c=i(e,n,r,a);return s.context[s.name]=c,t?{value:c}:c};case Po.ArrayExpression:return r=[],S(e.elements,(function(e){r.push(a.recurse(e))})),function(e,n,o,i){for(var a=[],s=0;s&lt;r.length;++s)a.push(r[s](e,n,o,i));return t?{value:a}:a};case Po.ObjectExpression:return r=[],S(e.properties,(function(e){e.computed?r.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):r.push({key:e.key.type===Po.Identifier?e.key.name:""+e.key.value,computed:!1,value:a.recurse(e.value)})})),function(e,n,o,i){for(var a={},s=0;s&lt;r.length;++s)r[s].computed?a[r[s].key(e,n,o,i)]=r[s].value(e,n,o,i):a[r[s].key]=r[s].value(e,n,o,i);return t?{value:a}:a};case Po.ThisExpression:return function(e){return t?{value:e}:e};case Po.LocalsExpression:return function(e,n){return t?{value:n}:n};case Po.NGValueParameter:return function(e,n,o){return t?{value:o}:o}}},"unary+":function(e,t){return function(n,o,i,r){var a=e(n,o,i,r);return a=N(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,o,i,r){var a=e(n,o,i,r);return a=N(a)?-a:-0,t?{value:a}:a}},"unary!":function(e,t){return function(n,o,i,r){var a=!e(n,o,i,r);return t?{value:a}:a}},"binary+":function(e,t,n){return function(o,i,r,a){var s=Mo(e(o,i,r,a),t(o,i,r,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a),c=t(o,i,r,a),l=(N(s)?s:0)-(N(c)?c:0);return n?{value:l}:l}},"binary*":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)*t(o,i,r,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)/t(o,i,r,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)%t(o,i,r,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)===t(o,i,r,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)!==t(o,i,r,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)==t(o,i,r,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)!=t(o,i,r,a);return n?{value:s}:s}},"binary&lt;":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)&lt;t(o,i,r,a);return n?{value:s}:s}},"binary&gt;":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)&gt;t(o,i,r,a);return n?{value:s}:s}},"binary&lt;=":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)&lt;=t(o,i,r,a);return n?{value:s}:s}},"binary&gt;=":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)&gt;=t(o,i,r,a);return n?{value:s}:s}},"binary&amp;&amp;":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)&amp;&amp;t(o,i,r,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(o,i,r,a){var s=e(o,i,r,a)||t(o,i,r,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,o){return function(i,r,a,s){var c=e(i,r,a,s)?t(i,r,a,s):n(i,r,a,s);return o?{value:c}:c}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n){return function(o,i,r,a){var s=i&amp;&amp;e in i?i:o;n&amp;&amp;1!==n&amp;&amp;s&amp;&amp;null==s[e]&amp;&amp;(s[e]={});var c=s?s[e]:void 0;return t?{context:s,name:e,value:c}:c}},computedMember:function(e,t,n,o){return function(i,r,a,s){var c,l,u=e(i,r,a,s);return null!=u&amp;&amp;(c=Co(c=t(i,r,a,s)),o&amp;&amp;1!==o&amp;&amp;u&amp;&amp;!u[c]&amp;&amp;(u[c]={}),l=u[c]),n?{context:u,name:c,value:l}:l}},nonComputedMember:function(e,t,n,o){return function(i,r,a,s){var c=e(i,r,a,s);o&amp;&amp;1!==o&amp;&amp;c&amp;&amp;null==c[t]&amp;&amp;(c[t]={});var l=null!=c?c[t]:void 0;return n?{context:c,name:t,value:l}:l}},inputs:function(e,t){return function(n,o,i,r){return r?r[t]:e(n,o,i)}}},Bo.prototype={constructor:Bo,parse:function(e){var t=this.getAst(e),n=this.astCompiler.compile(t.ast);return n.literal=function(e){return 0===e.body.length||1===e.body.length&amp;&amp;(e.body[0].expression.type===Po.Literal||e.body[0].expression.type===Po.ArrayExpression||e.body[0].expression.type===Po.ObjectExpression)}(t.ast),n.constant=function(e){return e.constant}(t.ast),n.oneTime=t.oneTime,n},getAst:function(e){var t=!1;return":"===(e=e.trim()).charAt(0)&amp;&amp;":"===e.charAt(1)&amp;&amp;(t=!0,e=e.substring(2)),{ast:this.ast.ast(e),oneTime:t}}};var Qo=i("$sce"),ei={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ti=/_([a-z])/g;function ni(e){return e.replace(ti,nt)}function oi(e){var t=[];return N(e)&amp;&amp;S(e,(function(e){t.push(function(e){if("self"===e)return e;if(V(e)){if(e.indexOf("***")&gt;-1)throw Qo("iwcard","Illegal sequence *** in string matcher.  String: {0}",e);return e=te(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&amp;;]*"),new RegExp("^"+e+"$")}if(Y(e))return new RegExp("^"+e.source+"$");throw Qo("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))})),t}function ii(){this.SCE_CONTEXTS=ei;var t=["self"],n=[];this.trustedResourceUrlList=function(e){return arguments.length&amp;&amp;(t=oi(e)),t},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(e){this.trustedResourceUrlList=e}}),this.bannedResourceUrlList=function(e){return arguments.length&amp;&amp;(n=oi(e)),n},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(e){this.bannedResourceUrlList=e}}),this.$get=["$injector","$$sanitizeUri",function(o,i){var r=function(e){throw Qo("unsafe","Attempting to use an unsafe value in a safe context.")};function a(t,n){return"self"===t?_i(n,hi)||function(t){return _i(t,function(){if(e.document.baseURI)return e.document.baseURI;mi||((mi=e.document.createElement("a")).href=".",mi=mi.cloneNode(!1));return mi.href}())}(n):!!t.exec(n.href)}function s(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&amp;&amp;(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}o.has("$sanitize")&amp;&amp;(r=o.get("$sanitize"));var c=s(),l={};return l[ei.HTML]=s(c),l[ei.CSS]=s(c),l[ei.MEDIA_URL]=s(c),l[ei.URL]=s(l[ei.MEDIA_URL]),l[ei.JS]=s(c),l[ei.RESOURCE_URL]=s(l[ei.URL]),{trustAs:function(e,t){var n=l.hasOwnProperty(e)?l[e]:null;if(!n)throw Qo("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||F(t)||""===t)return t;if("string"!=typeof t)throw Qo("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(e,o){if(null===o||F(o)||""===o)return o;var s=l.hasOwnProperty(e)?l[e]:null;if(s&amp;&amp;o instanceof s)return o.$$unwrapTrustedValue();if(G(o.$$unwrapTrustedValue)&amp;&amp;(o=o.$$unwrapTrustedValue()),e===ei.MEDIA_URL||e===ei.URL)return i(o.toString(),e===ei.MEDIA_URL);if(e===ei.RESOURCE_URL){if(function(e){var o,i,r=bi(e.toString()),s=!1;for(o=0,i=t.length;o&lt;i;o++)if(a(t[o],r)){s=!0;break}if(s)for(o=0,i=n.length;o&lt;i;o++)if(a(n[o],r)){s=!1;break}return s}(o))return o;throw Qo("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",o.toString())}if(e===ei.HTML)return r(o);throw Qo("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof c?e.$$unwrapTrustedValue():e}}}]}function ri(){var e=!0;this.enabled=function(t){return arguments.length&amp;&amp;(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&amp;&amp;r&lt;8)throw Qo("iequirks","Strict Contextual Escaping does not support Internet Explorer version &lt; 11 in quirks mode.  You can fix this by adding the text &lt;!doctype html&gt; to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var o=Ge(ei);o.isEnabled=function(){return e},o.trustAs=n.trustAs,o.getTrusted=n.getTrusted,o.valueOf=n.valueOf,e||(o.trustAs=o.getTrusted=function(e,t){return t},o.valueOf=U),o.parseAs=function(e,n){var i=t(n);return i.literal&amp;&amp;i.constant?i:t(n,(function(t){return o.getTrusted(e,t)}))};var i=o.parseAs,a=o.getTrusted,s=o.trustAs;return S(ei,(function(e,t){var n=p(t);o[ni("parse_as_"+n)]=function(t){return i(e,t)},o[ni("get_trusted_"+n)]=function(t){return a(e,t)},o[ni("trust_as_"+n)]=function(t){return s(e,t)}})),o}]}function ai(){this.$get=["$window","$document",function(e,t){var n={},o=!(!(e.nw&amp;&amp;e.nw.process)&amp;&amp;e.chrome&amp;&amp;(e.chrome.app&amp;&amp;e.chrome.app.runtime||!e.chrome.app&amp;&amp;e.chrome.runtime&amp;&amp;e.chrome.runtime.id))&amp;&amp;e.history&amp;&amp;e.history.pushState,i=O((/android (\d+)/.exec(p((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},c=s.body&amp;&amp;s.body.style,l=!1,u=!1;return c&amp;&amp;(l=!!("transition"in c||"webkitTransition"in c),u=!!("animation"in c||"webkitAnimation"in c)),{history:!(!o||i&lt;4||a),hasEvent:function(e){if("input"===e&amp;&amp;r)return!1;if(F(n[e])){var t=s.createElement("div");n[e]="on"+e in t}return n[e]},csp:le(),transitions:l,animations:u,android:i}}]}function si(){this.$get=L((function(e){return new ci(e)}))}function ci(e){var t={},n=[],o=this.ALL_TASKS_TYPE="$$all$$",i=this.DEFAULT_TASK_TYPE="$$default$$";function r(){var e=n.pop();return e&amp;&amp;e.cb}function a(e){for(var t=n.length-1;t&gt;=0;--t){var o=n[t];if(o.type===e)return n.splice(t,1),o.cb}}this.completeTask=function(n,s){s=s||i;try{n()}finally{!function(e){t[e=e||i]&amp;&amp;(t[e]--,t[o]--)}(s);var c=t[s],l=t[o];if(!l||!c)for(var u,d=l?a:r;u=d(s);)try{u()}catch(t){e.error(t)}}},this.incTaskCount=function(e){t[e=e||i]=(t[e]||0)+1,t[o]=(t[o]||0)+1},this.notifyWhenNoPendingTasks=function(e,i){t[i=i||o]?n.push({type:i,cb:e}):e()}}var li=i("$templateRequest");function ui(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(t,n,o,i,r){function a(s,c){a.totalPendingRequests++,V(s)&amp;&amp;!F(n.get(s))||(s=r.getTrustedResourceUrl(s));var l=o.defaults&amp;&amp;o.defaults.transformResponse;return H(l)?l=l.filter((function(e){return e!==Hn})):l===Hn&amp;&amp;(l=null),o.get(s,E({cache:n,transformResponse:l},e)).finally((function(){a.totalPendingRequests--})).then((function(e){return n.put(s,e.data)}),(function(e){c||(e=li("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText),t(e));return i.reject(e)}))}return a.totalPendingRequests=0,a}]}function di(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var o={findBindings:function(e,t,n){var o=e.getElementsByClassName("ng-binding"),i=[];return S(o,(function(e){var o=y.element(e).data("$binding");o&amp;&amp;S(o,(function(o){n?new RegExp("(^|\\s)"+te(t)+"(\\s|\\||$)").test(o)&amp;&amp;i.push(e):-1!==o.indexOf(t)&amp;&amp;i.push(e)}))})),i},findModels:function(e,t,n){for(var o=["ng-","data-ng-","ng\\:"],i=0;i&lt;o.length;++i){var r="["+o[i]+"model"+(n?"=":"*=")+'"'+t+'"]',a=e.querySelectorAll(r);if(a.length)return a}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&amp;&amp;(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}};return o}]}var pi=i("$timeout");function fi(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,o,i){var r={};function a(a,s,c){G(a)||(c=s,s=a,a=I);var l,u=pe(arguments,3),d=N(c)&amp;&amp;!c,p=(d?o:n).defer(),f=p.promise;return l=t.defer((function(){try{p.resolve(a.apply(null,u))}catch(e){p.reject(e),i(e)}finally{delete r[f.$$timeoutId]}d||e.$apply()}),s,"$timeout"),f.$$timeoutId=l,r[l]=p,f}return a.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$timeoutId"))throw pi("badprom","`$timeout.cancel()` called with a promise that was not generated by `$timeout()`.");if(!r.hasOwnProperty(e.$$timeoutId))return!1;var n=e.$$timeoutId,o=r[n];return Ko(o.promise),o.reject("canceled"),delete r[n],t.defer.cancel(n)},a}]}var mi,gi=e.document.createElement("a"),hi=bi(e.location.href);gi.href="http://[::1]";var vi="[::1]"===gi.hostname;function bi(e){if(!V(e))return e;var t=e;r&amp;&amp;(gi.setAttribute("href",t),t=gi.href),gi.setAttribute("href",t);var n=gi.hostname;return!vi&amp;&amp;n.indexOf(":")&gt;-1&amp;&amp;(n="["+n+"]"),{href:gi.href,protocol:gi.protocol?gi.protocol.replace(/:$/,""):"",host:gi.host,search:gi.search?gi.search.replace(/^\?/,""):"",hash:gi.hash?gi.hash.replace(/^#/,""):"",hostname:n,port:gi.port,pathname:"/"===gi.pathname.charAt(0)?gi.pathname:"/"+gi.pathname}}function _i(e,t){return e=bi(e),t=bi(t),e.protocol===t.protocol&amp;&amp;e.host===t.host}function yi(){this.$get=L(e)}function $i(e){var t=e[0]||{},n={},o="";function i(e){try{return decodeURIComponent(e)}catch(t){return e}}return function(){var e,r,a,s,c,l=function(e){try{return e.cookie||""}catch(e){return""}}(t);if(l!==o)for(e=(o=l).split("; "),n={},a=0;a&lt;e.length;a++)(s=(r=e[a]).indexOf("="))&gt;0&amp;&amp;(c=i(r.substring(0,s)),F(n[c])&amp;&amp;(n[c]=i(r.substring(s+1))));return n}}function wi(){this.$get=$i}function Si(e){var t="Filter";function n(o,i){if(j(o)){var r={};return S(o,(function(e,t){r[t]=n(t,e)})),r}return e.factory(o+t,i)}this.register=n,this.$get=["$injector",function(e){return function(n){return e.get(n+t)}}],n("currency",Pi),n("date",Vi),n("filter",ki),n("json",zi),n("limitTo",Wi),n("lowercase",qi),n("number",Oi),n("orderBy",Yi),n("uppercase",Hi)}function ki(){return function(e,t,n,o){if(!w(e)){if(null==e)return e;throw i("filter")("notarray","Expected array but received: {0}",e)}var r,a;switch(o=o||"$",Ci(t)){case"function":r=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":r=function(e,t,n,o){var i=j(e)&amp;&amp;n in e;!0===t?t=ce:G(t)||(t=function(e,t){return!F(e)&amp;&amp;(null===e||null===t?e===t:!(j(t)||j(e)&amp;&amp;!R(e))&amp;&amp;(e=p(""+e),t=p(""+t),-1!==e.indexOf(t)))});return function(r){return i&amp;&amp;!j(r)?xi(r,e[n],t,n,!1):xi(r,e,t,n,o)}}(t,n,o,a);break;default:return e}return Array.prototype.filter.call(e,r)}}function xi(e,t,n,o,i,r){var a=Ci(e),s=Ci(t);if("string"===s&amp;&amp;"!"===t.charAt(0))return!xi(e,t.substring(1),n,o,i);if(H(e))return e.some((function(e){return xi(e,t,n,o,i)}));switch(a){case"object":var c;if(i){for(c in e)if(c.charAt&amp;&amp;"$"!==c.charAt(0)&amp;&amp;xi(e[c],t,n,o,!0))return!0;return!r&amp;&amp;xi(e,t,n,o,!1)}if("object"===s){for(c in t){var l=t[c];if(!G(l)&amp;&amp;!F(l)){var u=c===o;if(!xi(u?e:e[c],l,n,o,u,u))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Ci(e){return null===e?"null":typeof e}$i.$inject=["$document"],Si.$inject=["$provide"];var Ai=22,Ti=".",Ei="0";function Pi(e){var t=e.NUMBER_FORMATS;return function(e,n,o){F(n)&amp;&amp;(n=t.CURRENCY_SYM),F(o)&amp;&amp;(o=t.PATTERNS[1].maxFrac);var i=n?/\u00A4/g:/\s*\u00A4\s*/g;return null==e?e:Mi(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,o).replace(i,n)}}function Oi(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Mi(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Mi(e,t,n,o,i){if(!V(e)&amp;&amp;!z(e)||isNaN(e))return"";var r,a=!isFinite(e),s=!1,c=Math.abs(e)+"",l="";if(a)l="âˆž";else{(function(e,t,n,o){var i=e.d,r=i.length-e.i,a=(t=F(t)?Math.min(Math.max(n,r),o):+t)+e.i,s=i[a];if(a&gt;0){i.splice(Math.max(e.i,a));for(var c=a;c&lt;i.length;c++)i[c]=0}else{r=Math.max(0,r),e.i=1,i.length=Math.max(1,a=t+1),i[0]=0;for(var l=1;l&lt;a;l++)i[l]=0}if(s&gt;=5)if(a-1&lt;0){for(var u=0;u&gt;a;u--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[a-1]++;for(;r&lt;Math.max(0,t);r++)i.push(0);var d=i.reduceRight((function(e,t,n,o){return t+=e,o[n]=t%10,Math.floor(t/10)}),0);d&amp;&amp;(i.unshift(d),e.i++)})(r=function(e){var t,n,o,i,r,a=0;for((n=e.indexOf(Ti))&gt;-1&amp;&amp;(e=e.replace(Ti,"")),(o=e.search(/e/i))&gt;0?(n&lt;0&amp;&amp;(n=o),n+=+e.slice(o+1),e=e.substring(0,o)):n&lt;0&amp;&amp;(n=e.length),o=0;e.charAt(o)===Ei;o++);if(o===(r=e.length))t=[0],n=1;else{for(r--;e.charAt(r)===Ei;)r--;for(n-=o,t=[],i=0;o&lt;=r;o++,i++)t[i]=+e.charAt(o)}return n&gt;Ai&amp;&amp;(t=t.splice(0,Ai-1),a=n-1,n=1),{d:t,e:a,i:n}}(c),i,t.minFrac,t.maxFrac);var u=r.d,d=r.i,p=r.e,f=[];for(s=u.reduce((function(e,t){return e&amp;&amp;!t}),!0);d&lt;0;)u.unshift(0),d++;d&gt;0?f=u.splice(d,u.length):(f=u,u=[0]);var m=[];for(u.length&gt;=t.lgSize&amp;&amp;m.unshift(u.splice(-t.lgSize,u.length).join(""));u.length&gt;t.gSize;)m.unshift(u.splice(-t.gSize,u.length).join(""));u.length&amp;&amp;m.unshift(u.join("")),l=m.join(n),f.length&amp;&amp;(l+=o+f.join("")),p&amp;&amp;(l+="e+"+p)}return e&lt;0&amp;&amp;!s?t.negPre+l+t.negSuf:t.posPre+l+t.posSuf}function Di(e,t,n,o){var i="";for((e&lt;0||o&amp;&amp;e&lt;=0)&amp;&amp;(o?e=1-e:(e=-e,i="-")),e=""+e;e.length&lt;t;)e=Ei+e;return n&amp;&amp;(e=e.substr(e.length-t)),i+e}function Ii(e,t,n,o,i){return n=n||0,function(r){var a=r["get"+e]();return(n&gt;0||a&gt;-n)&amp;&amp;(a+=n),0===a&amp;&amp;-12===n&amp;&amp;(a=12),Di(a,t,o,i)}}function Ui(e,t,n){return function(o,i){var r=o["get"+e]();return i[f((n?"STANDALONE":"")+(t?"SHORT":"")+e)][r]}}function Li(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t&lt;=4?5:12)-t)}function Ri(e){return function(t){var n,o=Li(t.getFullYear()),i=+(n=t,new Date(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay())))-+o;return Di(1+Math.round(i/6048e5),e)}}function Fi(e,t){return e.getFullYear()&lt;=0?t.ERAS[0]:t.ERAS[1]}Pi.$inject=["$locale"],Oi.$inject=["$locale"];var Ni={yyyy:Ii("FullYear",4,0,!1,!0),yy:Ii("FullYear",2,0,!0,!0),y:Ii("FullYear",1,0,!1,!0),MMMM:Ui("Month"),MMM:Ui("Month",!0),MM:Ii("Month",2,1),M:Ii("Month",1,1),LLLL:Ui("Month",!1,!0),dd:Ii("Date",2),d:Ii("Date",1),HH:Ii("Hours",2),H:Ii("Hours",1),hh:Ii("Hours",2,-12),h:Ii("Hours",1,-12),mm:Ii("Minutes",2),m:Ii("Minutes",1),ss:Ii("Seconds",2),s:Ii("Seconds",1),sss:Ii("Milliseconds",3),EEEE:Ui("Day"),EEE:Ui("Day",!0),a:function(e,t){return e.getHours()&lt;12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var o=-1*n,i=o&gt;=0?"+":"";return i+=Di(Math[o&gt;0?"floor":"ceil"](o/60),2)+Di(Math.abs(o%60),2)},ww:Ri(2),w:Ri(1),G:Fi,GG:Fi,GGG:Fi,GGGG:function(e,t){return e.getFullYear()&lt;=0?t.ERANAMES[0]:t.ERANAMES[1]}},ji=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,Bi=/^-?\d+$/;function Vi(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,o,i){var r,a,s="",c=[];if(o=o||"mediumDate",o=e.DATETIME_FORMATS[o]||o,V(n)&amp;&amp;(n=Bi.test(n)?O(n):function(e){var n;if(n=e.match(t)){var o=new Date(0),i=0,r=0,a=n[8]?o.setUTCFullYear:o.setFullYear,s=n[8]?o.setUTCHours:o.setHours;n[9]&amp;&amp;(i=O(n[9]+n[10]),r=O(n[9]+n[11])),a.call(o,O(n[1]),O(n[2])-1,O(n[3]));var c=O(n[4]||0)-i,l=O(n[5]||0)-r,u=O(n[6]||0),d=Math.round(1e3*parseFloat("0."+(n[7]||0)));return s.call(o,c,l,u,d),o}return e}(n)),z(n)&amp;&amp;(n=new Date(n)),!q(n)||!isFinite(n.getTime()))return n;for(;o;)(a=ji.exec(o))?o=(c=de(c,a,1)).pop():(c.push(o),o=null);var l=n.getTimezoneOffset();return i&amp;&amp;(l=be(i,l),n=ye(n,i,!0)),S(c,(function(t){r=Ni[t],s+=r?r(n,e.DATETIME_FORMATS,l):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),s}}function zi(){return function(e,t){return F(t)&amp;&amp;(t=2),ge(e,t)}}Vi.$inject=["$locale"];var qi=L(p),Hi=L(f);function Wi(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):O(t),M(t)?e:(z(e)&amp;&amp;(e=e.toString()),w(e)?(n=(n=!n||isNaN(n)?0:O(n))&lt;0?Math.max(0,e.length+n):n,t&gt;=0?Gi(e,n,n+t):0===n?Gi(e,t,e.length):Gi(e,Math.max(0,n+t),n)):e)}}function Gi(e,t,n){return V(e)?e.slice(t,n):m.call(e,t,n)}function Yi(e){return function(o,r,a,s){if(null==o)return o;if(!w(o))throw i("orderBy")("notarray","Expected array but received: {0}",o);H(r)||(r=[r]),0===r.length&amp;&amp;(r=["+"]);var c=r.map((function(t){var n=1,o=U;if(G(t))o=t;else if(V(t)&amp;&amp;("+"!==t.charAt(0)&amp;&amp;"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&amp;&amp;(o=e(t)).constant)){var i=o();o=function(e){return e[i]}}return{get:o,descending:n}})),l=a?-1:1,u=G(s)?s:n,d=Array.prototype.map.call(o,(function(e,n){return{value:e,tieBreaker:{value:n,type:"number",index:n},predicateValues:c.map((function(o){return function(e,n){var o=typeof e;null===e?o="null":"object"===o&amp;&amp;(e=function(e){if(G(e.valueOf)&amp;&amp;t(e=e.valueOf()))return e;if(R(e)&amp;&amp;t(e=e.toString()))return e;return e}(e));return{value:e,type:o,index:n}}(o.get(e),n)}))}}));return d.sort((function(e,t){for(var o=0,i=c.length;o&lt;i;o++){var r=u(e.predicateValues[o],t.predicateValues[o]);if(r)return r*c[o].descending*l}return(u(e.tieBreaker,t.tieBreaker)||n(e.tieBreaker,t.tieBreaker))*l})),o=d.map((function(e){return e.value}))};function t(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function n(e,t){var n=0,o=e.type,i=t.type;if(o===i){var r=e.value,a=t.value;"string"===o?(r=r.toLowerCase(),a=a.toLowerCase()):"object"===o&amp;&amp;(j(r)&amp;&amp;(r=e.index),j(a)&amp;&amp;(a=t.index)),r!==a&amp;&amp;(n=r&lt;a?-1:1)}else n="undefined"===o?1:"undefined"===i?-1:"null"===o?1:"null"===i?-1:o&lt;i?-1:1;return n}}function Ki(e){return G(e)&amp;&amp;(e={link:e}),e.restrict=e.restrict||"AC",L(e)}Yi.$inject=["$parse"];var Ji=L({restrict:"E",compile:function(e,t){if(!t.href&amp;&amp;!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===v.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),Xi={};S(Lt,(function(e,t){if("multiple"!==e){var n=xn("ng-"+t),o=i;"checked"===e&amp;&amp;(o=function(e,t,o){o.ngModel!==o[n]&amp;&amp;i(e,0,o)}),Xi[n]=function(){return{restrict:"A",priority:100,link:o}}}function i(e,o,i){e.$watch(i[n],(function(e){i.$set(t,!!e)}))}})),S(Ft,(function(e,t){Xi[t]=function(){return{priority:100,link:function(e,n,o){if("ngPattern"===t&amp;&amp;"/"===o.ngPattern.charAt(0)){var i=o.ngPattern.match(l);if(i)return void o.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(o[t],(function(e){o.$set(t,e)}))}}}})),S(["src","srcset","href"],(function(e){var t=xn("ng-"+e);Xi[t]=["$sce",function(n){return{priority:99,link:function(o,i,a){var s=e,c=e;"href"===e&amp;&amp;"[object SVGAnimatedString]"===v.call(i.prop("href"))&amp;&amp;(c="xlinkHref",a.$attr[c]="xlink:href",s=null),a.$set(t,n.getTrustedMediaUrl(a[t])),a.$observe(t,(function(t){t?(a.$set(c,t),r&amp;&amp;s&amp;&amp;i.prop(s,a[c])):"href"===e&amp;&amp;a.$set(c,null)}))}}}]}));var Zi={$addControl:I,$getControls:L([]),$$renameControl:function(e,t){e.$name=t},$removeControl:I,$setValidity:I,$setDirty:I,$setPristine:I,$setSubmitted:I,$$setSubmitted:I},Qi="ng-pending";function er(e,t,n,o,i){this.$$controls=[],this.$error={},this.$$success={},this.$pending=void 0,this.$name=i(t.name||t.ngForm||"")(n),this.$dirty=!1,this.$pristine=!0,this.$valid=!0,this.$invalid=!1,this.$submitted=!1,this.$$parentForm=Zi,this.$$element=e,this.$$animate=o,ir(this)}er.$inject=["$element","$attrs","$scope","$animate","$interpolate"],er.prototype={$rollbackViewValue:function(){S(this.$$controls,(function(e){e.$rollbackViewValue()}))},$commitViewValue:function(){S(this.$$controls,(function(e){e.$commitViewValue()}))},$addControl:function(e){Fe(e.$name,"input"),this.$$controls.push(e),e.$name&amp;&amp;(this[e.$name]=e),e.$$parentForm=this},$getControls:function(){return Ge(this.$$controls)},$$renameControl:function(e,t){var n=e.$name;this[n]===e&amp;&amp;delete this[n],this[t]=e,e.$name=t},$removeControl:function(e){e.$name&amp;&amp;this[e.$name]===e&amp;&amp;delete this[e.$name],S(this.$pending,(function(t,n){this.$setValidity(n,null,e)}),this),S(this.$error,(function(t,n){this.$setValidity(n,null,e)}),this),S(this.$$success,(function(t,n){this.$setValidity(n,null,e)}),this),re(this.$$controls,e),e.$$parentForm=Zi},$setDirty:function(){this.$$animate.removeClass(this.$$element,ea),this.$$animate.addClass(this.$$element,ta),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,ea,ta+" ng-submitted"),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,S(this.$$controls,(function(e){e.$setPristine()}))},$setUntouched:function(){S(this.$$controls,(function(e){e.$setUntouched()}))},$setSubmitted:function(){for(var e=this;e.$$parentForm&amp;&amp;e.$$parentForm!==Zi;)e=e.$$parentForm;e.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted"),this.$submitted=!0,S(this.$$controls,(function(e){e.$$setSubmitted&amp;&amp;e.$$setSubmitted()}))}},rr({clazz:er,set:function(e,t,n){var o=e[t];o?-1===o.indexOf(n)&amp;&amp;o.push(n):e[t]=[n]},unset:function(e,t,n){var o=e[t];o&amp;&amp;(re(o,n),0===o.length&amp;&amp;delete e[t])}});var tr=function(e){return["$timeout","$parse",function(t,n){return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:er,compile:function(n,i){n.addClass(ea).addClass(Zr);var r=i.name?"name":!(!e||!i.ngForm)&amp;&amp;"ngForm";return{pre:function(e,n,i,a){var s=a[0];if(!("action"in i)){var c=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};n[0].addEventListener("submit",c),n.on("$destroy",(function(){t((function(){n[0].removeEventListener("submit",c)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var l=r?o(s.$name):I;r&amp;&amp;(l(e,s),i.$observe(r,(function(t){s.$name!==t&amp;&amp;(l(e,void 0),s.$$parentForm.$$renameControl(s,t),(l=o(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),l(e,void 0),E(s,Zi)}))}}}};function o(e){return""===e?n('this[""]').assign:n(e).assign||I}}]},nr=tr(),or=tr(!0);function ir(e){e.$$classCache={},e.$$classCache[Qr]=!(e.$$classCache[Zr]=e.$$element.hasClass(Zr))}function rr(e){var t=e.clazz,n=e.set,o=e.unset;function i(e,t,n){n&amp;&amp;!e.$$classCache[t]?(e.$$animate.addClass(e.$$element,t),e.$$classCache[t]=!0):!n&amp;&amp;e.$$classCache[t]&amp;&amp;(e.$$animate.removeClass(e.$$element,t),e.$$classCache[t]=!1)}function r(e,t,n){t=t?"-"+De(t,"-"):"",i(e,Zr+t,!0===n),i(e,Qr+t,!1===n)}t.prototype.$setValidity=function(e,t,a){var s;F(t)?function(e,t,o,i){e[t]||(e[t]={});n(e[t],o,i)}(this,"$pending",e,a):function(e,t,n,i){e[t]&amp;&amp;o(e[t],n,i);ar(e[t])&amp;&amp;(e[t]=void 0)}(this,"$pending",e,a),X(t)?t?(o(this.$error,e,a),n(this.$$success,e,a)):(n(this.$error,e,a),o(this.$$success,e,a)):(o(this.$error,e,a),o(this.$$success,e,a)),this.$pending?(i(this,Qi,!0),this.$valid=this.$invalid=void 0,r(this,"",null)):(i(this,Qi,!1),this.$valid=ar(this.$error),this.$invalid=!this.$valid,r(this,"",this.$valid)),r(this,e,s=this.$pending&amp;&amp;this.$pending[e]?void 0:!this.$error[e]&amp;&amp;(!!this.$$success[e]||null)),this.$$parentForm.$setValidity(e,s,this)}}function ar(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var sr=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,cr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,lr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&amp;'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&amp;'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,ur=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,dr=/^(\d{4,})-(\d{2})-(\d{2})$/,pr=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,fr=/^(\d{4,})-W(\d\d)$/,mr=/^(\d{4,})-(\d\d)$/,gr=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,hr="keydown wheel mousedown",vr=je();S("date,datetime-local,month,time,week".split(","),(function(e){vr[e]=!0}));var br={text:function(e,t,n,o,i,r){yr(e,t,n,o,i,r),_r(o)},date:wr("date",dr,$r(dr,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":wr("datetimelocal",pr,$r(pr,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:wr("time",gr,$r(gr,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:wr("week",fr,(function(e,t){if(q(e))return e;if(V(e)){fr.lastIndex=0;var n=fr.exec(e);if(n){var o=+n[1],i=+n[2],r=0,a=0,s=0,c=0,l=Li(o),u=7*(i-1);return t&amp;&amp;(r=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),c=t.getMilliseconds()),new Date(o,0,l.getDate()+u,r,a,s,c)}}return NaN}),"yyyy-Www"),month:wr("month",mr,$r(mr,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,o,i,r,a,s){var c;if(Sr(e,t,n,o,"number"),kr(o),yr(e,t,n,o,i,r),N(n.min)||n.ngMin){var l=n.min||s(n.ngMin)(e);c=xr(l),o.$validators.min=function(e,t){return o.$isEmpty(t)||F(c)||t&gt;=c},n.$observe("min",(function(e){e!==l&amp;&amp;(c=xr(e),l=e,o.$validate())}))}if(N(n.max)||n.ngMax){var u=n.max||s(n.ngMax)(e),d=xr(u);o.$validators.max=function(e,t){return o.$isEmpty(t)||F(d)||t&lt;=d},n.$observe("max",(function(e){e!==u&amp;&amp;(d=xr(e),u=e,o.$validate())}))}if(N(n.step)||n.ngStep){var p=n.step||s(n.ngStep)(e),f=xr(p);o.$validators.step=function(e,t){return o.$isEmpty(t)||F(f)||Tr(t,c||0,f)},n.$observe("step",(function(e){e!==p&amp;&amp;(f=xr(e),p=e,o.$validate())}))}},url:function(e,t,n,o,i,r){yr(e,t,n,o,i,r),_r(o),o.$validators.url=function(e,t){var n=e||t;return o.$isEmpty(n)||cr.test(n)}},email:function(e,t,n,o,i,r){yr(e,t,n,o,i,r),_r(o),o.$validators.email=function(e,t){var n=e||t;return o.$isEmpty(n)||lr.test(n)}},radio:function(e,t,n,o){var i=!n.ngTrim||"false"!==ee(n.ngTrim);F(n.name)&amp;&amp;t.attr("name",C());t.on("change",(function(e){var r;t[0].checked&amp;&amp;(r=n.value,i&amp;&amp;(r=ee(r)),o.$setViewValue(r,e&amp;&amp;e.type))})),o.$render=function(){var e=n.value;i&amp;&amp;(e=ee(e)),t[0].checked=e===o.$viewValue},n.$observe("value",o.$render)},range:function(e,t,n,o,i,r){Sr(e,t,n,o,"range"),kr(o),yr(e,t,n,o,i,r);var a=o.$$hasNativeValidators&amp;&amp;"range"===t[0].type,s=a?0:void 0,c=a?100:void 0,l=a?1:void 0,u=t[0].validity,d=N(n.min),p=N(n.max),f=N(n.step),m=o.$render;o.$render=a&amp;&amp;N(u.rangeUnderflow)&amp;&amp;N(u.rangeOverflow)?function(){m(),o.$setViewValue(t.val())}:m,d&amp;&amp;(s=xr(n.min),o.$validators.min=a?function(){return!0}:function(e,t){return o.$isEmpty(t)||F(s)||t&gt;=s},g("min",(function(e){if(s=xr(e),M(o.$modelValue))return;if(a){var n=t.val();s&gt;n&amp;&amp;(n=s,t.val(n)),o.$setViewValue(n)}else o.$validate()})));p&amp;&amp;(c=xr(n.max),o.$validators.max=a?function(){return!0}:function(e,t){return o.$isEmpty(t)||F(c)||t&lt;=c},g("max",(function(e){if(c=xr(e),M(o.$modelValue))return;if(a){var n=t.val();c&lt;n&amp;&amp;(t.val(c),n=c&lt;s?s:c),o.$setViewValue(n)}else o.$validate()})));f&amp;&amp;(l=xr(n.step),o.$validators.step=a?function(){return!u.stepMismatch}:function(e,t){return o.$isEmpty(t)||F(l)||Tr(t,s||0,l)},g("step",(function(e){if(l=xr(e),M(o.$modelValue))return;a?o.$viewValue!==t.val()&amp;&amp;o.$setViewValue(t.val()):o.$validate()})));function g(e,o){t.attr(e,n[e]);var i=n[e];n.$observe(e,(function(e){e!==i&amp;&amp;(i=e,o(e))}))}},checkbox:function(e,t,n,o,i,r,a,s){var c=Er(s,e,"ngTrueValue",n.ngTrueValue,!0),l=Er(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("change",(function(e){o.$setViewValue(t[0].checked,e&amp;&amp;e.type)})),o.$render=function(){t[0].checked=o.$viewValue},o.$isEmpty=function(e){return!1===e},o.$formatters.push((function(e){return ce(e,c)})),o.$parsers.push((function(e){return e?c:l}))},hidden:I,button:I,submit:I,reset:I,file:I};function _r(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function yr(e,t,n,o,i,r){var a,s=p(t[0].type);if(!i.android){var c=!1;t.on("compositionstart",(function(){c=!0})),t.on("compositionupdate",(function(e){(F(e.data)||""===e.data)&amp;&amp;(c=!1)})),t.on("compositionend",(function(){c=!1,l()}))}var l=function(e){if(a&amp;&amp;(r.defer.cancel(a),a=null),!c){var i=t.val(),l=e&amp;&amp;e.type;"password"===s||n.ngTrim&amp;&amp;"false"===n.ngTrim||(i=ee(i)),(o.$viewValue!==i||""===i&amp;&amp;o.$$hasNativeValidators)&amp;&amp;o.$setViewValue(i,l)}};if(i.hasEvent("input"))t.on("input",l);else{var d=function(e,t,n){a||(a=r.defer((function(){a=null,t&amp;&amp;t.value===n||l(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15&lt;t&amp;&amp;t&lt;19||37&lt;=t&amp;&amp;t&lt;=40||d(e,this,this.value)})),i.hasEvent("paste")&amp;&amp;t.on("paste cut drop",d)}t.on("change",l),vr[s]&amp;&amp;o.$$hasNativeValidators&amp;&amp;s===n.type&amp;&amp;t.on(hr,(function(e){if(!a){var t=this[u],n=t.badInput,o=t.typeMismatch;a=r.defer((function(){a=null,t.badInput===n&amp;&amp;t.typeMismatch===o||l(e)}))}})),o.$render=function(){var e=o.$isEmpty(o.$viewValue)?"":o.$viewValue;t.val()!==e&amp;&amp;t.val(e)}}function $r(e,t){return function(n,o){var i,r;if(q(n))return n;if(V(n)){if('"'===n.charAt(0)&amp;&amp;'"'===n.charAt(n.length-1)&amp;&amp;(n=n.substring(1,n.length-1)),sr.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n)){i.shift(),r=o?{yyyy:o.getFullYear(),MM:o.getMonth()+1,dd:o.getDate(),HH:o.getHours(),mm:o.getMinutes(),ss:o.getSeconds(),sss:o.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},S(i,(function(e,n){n&lt;t.length&amp;&amp;(r[t[n]]=+e)}));var a=new Date(r.yyyy,r.MM-1,r.dd,r.HH,r.mm,r.ss||0,1e3*r.sss||0);return r.yyyy&lt;100&amp;&amp;a.setFullYear(r.yyyy),a}}return NaN}}function wr(e,t,n,o){return function(i,r,a,s,c,l,u,d){Sr(i,r,a,s,e),yr(0,r,a,s,c,l);var p,f,m="time"===e||"datetimelocal"===e;if(s.$parsers.push((function(n){return s.$isEmpty(n)?null:t.test(n)?$(n,p):void(s.$$parserName=e)})),s.$formatters.push((function(e){if(e&amp;&amp;!q(e))throw na("datefmt","Expected `{0}` to be a date",e);if(_(e)){p=e;var t=s.$options.getOption("timezone");return t&amp;&amp;(f=t,p=ye(p,t,!0)),function(e,t){var n=o;m&amp;&amp;V(s.$options.getOption("timeSecondsFormat"))&amp;&amp;(n=o.replace("ss.sss",s.$options.getOption("timeSecondsFormat")).replace(/:$/,""));var i=u("date")(e,n,t);m&amp;&amp;s.$options.getOption("timeStripZeroSeconds")&amp;&amp;(i=i.replace(/(?::00)?(?:\.000)?$/,""));return i}(e,t)}return p=null,f=null,""})),N(a.min)||a.ngMin){var g=a.min||d(a.ngMin)(i),h=y(g);s.$validators.min=function(e){return!_(e)||F(h)||n(e)&gt;=h},a.$observe("min",(function(e){e!==g&amp;&amp;(h=y(e),g=e,s.$validate())}))}if(N(a.max)||a.ngMax){var v=a.max||d(a.ngMax)(i),b=y(v);s.$validators.max=function(e){return!_(e)||F(b)||n(e)&lt;=b},a.$observe("max",(function(e){e!==v&amp;&amp;(b=y(e),v=e,s.$validate())}))}function _(e){return e&amp;&amp;!(e.getTime&amp;&amp;e.getTime()!=e.getTime())}function y(e){return N(e)&amp;&amp;!q(e)?$(e)||void 0:e}function $(e,t){var o=s.$options.getOption("timezone");f&amp;&amp;f!==o&amp;&amp;(t=_e(t,be(f)));var i=n(e,t);return!isNaN(i)&amp;&amp;o&amp;&amp;(i=ye(i,o)),i}}}function Sr(e,t,n,o,i){var r=t[0];(o.$$hasNativeValidators=j(r.validity))&amp;&amp;o.$parsers.push((function(e){var n=t.prop(u)||{};if(!n.badInput&amp;&amp;!n.typeMismatch)return e;o.$$parserName=i}))}function kr(e){e.$parsers.push((function(t){return e.$isEmpty(t)?null:ur.test(t)?parseFloat(t):void(e.$$parserName="number")})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!z(t))throw na("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}))}function xr(e){return N(e)&amp;&amp;!z(e)&amp;&amp;(e=parseFloat(e)),M(e)?void 0:e}function Cr(e){return(0|e)===e}function Ar(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1&lt;e&amp;&amp;e&lt;1){var o=/e-(\d+)$/.exec(t);if(o)return Number(o[1])}return 0}return t.length-n-1}function Tr(e,t,n){var o=Number(e),i=!Cr(o),r=!Cr(t),a=!Cr(n);if(i||r||a){var s=i?Ar(o):0,c=r?Ar(t):0,l=a?Ar(n):0,u=Math.max(s,c,l),d=Math.pow(10,u);o*=d,t*=d,n*=d,i&amp;&amp;(o=Math.round(o)),r&amp;&amp;(t=Math.round(t)),a&amp;&amp;(n=Math.round(n))}return(o-t)%n==0}function Er(e,t,n,o,i){var r;if(N(o)){if(!(r=e(o)).constant)throw na("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,o);return r(t)}return i}var Pr=["$browser","$sniffer","$filter","$parse",function(e,t,n,o){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,r,a,s){s[0]&amp;&amp;(br[p(a.type)]||br.text)(i,r,a,s[0],t,e,n,o)}}}}],Or=function(){var e={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(e){this.setAttribute("value",e)}};return{restrict:"E",priority:200,compile:function(t,n){if("hidden"===p(n.type))return{pre:function(t,n,o,i){var r=n[0];r.parentNode&amp;&amp;r.parentNode.insertBefore(r,r.nextSibling),Object.defineProperty&amp;&amp;Object.defineProperty(r,"value",e)}}}}},Mr=/^(true|false|\d+)$/,Dr=function(){function e(e,t,n){var o=N(n)?n:9===r?"":null;e.prop("value",o),t.$set("value",n)}return{restrict:"A",priority:100,compile:function(t,n){return Mr.test(n.ngValue)?function(t,n,o){e(n,o,t.$eval(o.ngValue))}:function(t,n,o){t.$watch(o.ngValue,(function(t){e(n,o,t)}))}}}},Ir=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,o){e.$$addBindingInfo(n,o.ngBind),n=n[0],t.$watch(o.ngBind,(function(e){n.textContent=Be(e)}))}}}}],Ur=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,o,i){var r=e(o.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(o,r.expressions),o=o[0],i.$observe("ngBindTemplate",(function(e){o.textContent=F(e)?"":e}))}}}}],Lr=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(o,i){var r=t(i.ngBindHtml),a=t(i.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(o),function(t,o,i){n.$$addBindingInfo(o,i.ngBindHtml),t.$watch(a,(function(){var n=r(t);o.html(e.getTrustedHtml(n)||"")}))}}}}],Rr=L({restrict:"A",require:"ngModel",link:function(e,t,n,o){o.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}});function Fr(e,t){var n;return e="ngClass"+e,["$parse",function(a){return{restrict:"AC",link:function(s,c,l){var u,d=c.data("$classCounts"),p=!0;function f(e,t){var n=[];return S(e,(function(e){(t&gt;0||d[e])&amp;&amp;(d[e]=(d[e]||0)+t,d[e]===+(t&gt;0)&amp;&amp;n.push(e))})),n.join(" ")}d||(d=je(),c.data("$classCounts",d)),"ngClass"!==e&amp;&amp;(n||(n=a("$index",(function(e){return 1&amp;e}))),s.$watch(n,(function(e){e===t?(n=f(i(n=u),1),l.$addClass(n)):function(e){e=f(i(e),-1),l.$removeClass(e)}(u);var n;p=e}))),s.$watch(a(l[e],r),(function(e){p===t&amp;&amp;function(e,t){var n=i(e),r=i(t),a=o(n,r),s=o(r,n),c=f(a,-1),u=f(s,1);l.$addClass(u),l.$removeClass(c)}(u,e);u=e}))}}}];function o(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];e:for(var o=0;o&lt;e.length;o++){for(var i=e[o],r=0;r&lt;t.length;r++)if(i===t[r])continue e;n.push(i)}return n}function i(e){return e&amp;&amp;e.split(" ")}function r(e){if(!e)return e;var t=e;return H(e)?t=e.map(r).join(" "):j(e)?t=Object.keys(e).filter((function(t){return e[t]})).join(" "):V(e)||(t=e+""),t}}var Nr=Fr("",!0),jr=Fr("Odd",0),Br=Fr("Even",1),Vr=Ki({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),zr=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],qr={},Hr={blur:!0,focus:!0};function Wr(e,t,n,o,i,r){return{restrict:"A",compile:function(a,s){var c=e(s[o]);return function(e,o){o.on(i,(function(o){var i=function(){c(e,{$event:o})};if(t.$$phase)if(r)e.$evalAsync(i);else try{i()}catch(e){n(e)}else e.$apply(i)}))}}}}S("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=xn("ng-"+e);qr[t]=["$parse","$rootScope","$exceptionHandler",function(n,o,i){return Wr(n,o,i,t,e,Hr[e])}]}));var Gr=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,o,i,r,a){var s,c,l;n.$watch(i.ngIf,(function(n){n?c||a((function(n,r){c=r,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),s={clone:n},e.enter(n,o.parent(),o)})):(l&amp;&amp;(l.remove(),l=null),c&amp;&amp;(c.$destroy(),c=null),s&amp;&amp;(l=Ne(s.clone),e.leave(l).done((function(e){!1!==e&amp;&amp;(l=null)})),s=null))}))}}}],Yr=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:y.noop,compile:function(o,i){var r=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(o,i,c,l,u){var d,p,f,m=0,g=function(){p&amp;&amp;(p.remove(),p=null),d&amp;&amp;(d.$destroy(),d=null),f&amp;&amp;(n.leave(f).done((function(e){!1!==e&amp;&amp;(p=null)})),p=f,f=null)};o.$watch(r,(function(r){var c=function(e){!1===e||!N(s)||s&amp;&amp;!o.$eval(s)||t()},p=++m;r?(e(r,!0).then((function(e){if(!o.$$destroyed&amp;&amp;p===m){var t=o.$new();l.template=e;var s=u(t,(function(e){g(),n.enter(e,null,i).done(c)}));f=s,(d=t).$emit("$includeContentLoaded",r),o.$eval(a)}}),(function(){o.$$destroyed||p===m&amp;&amp;(g(),o.$emit("$includeContentError",r))})),o.$emit("$includeContentRequested",r)):(g(),l.template=null)}))}}}}],Kr=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,o,i,r){if(v.call(o[0]).match(/SVG/))return o.empty(),void t(gt(r.template,e.document).childNodes)(n,(function(e){o.append(e)}),{futureParentElement:o});o.html(r.template),t(o.contents())(n)}}}],Jr=Ki({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Xr=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,o){var i=n.ngList||", ",r="false"!==n.ngTrim,a=r?ee(i):i;o.$parsers.push((function(e){if(!F(e)){var t=[];return e&amp;&amp;S(e.split(a),(function(e){e&amp;&amp;t.push(r?ee(e):e)})),t}})),o.$formatters.push((function(e){if(H(e))return e.join(i)})),o.$isEmpty=function(e){return!e||!e.length}}}},Zr="ng-valid",Qr="ng-invalid",ea="ng-pristine",ta="ng-dirty",na=i("ngModel");function oa(e,t,n,o,i,r,a,s,c){var l;this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||"",!1)(e),this.$$parentForm=Zi,this.$options=ia,this.$$updateEvents="",this.$$updateEventHandler=this.$$updateEventHandler.bind(this),this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$parserName="parse",this.$$currentValidationRunId=0,this.$$scope=e,this.$$rootScope=e.$root,this.$$attr=n,this.$$element=o,this.$$animate=r,this.$$timeout=a,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,ir(this),(l=this).$$scope.$watch((function(e){var t=l.$$ngModelGet(e);return t===l.$modelValue||l.$modelValue!=l.$modelValue&amp;&amp;t!=t||l.$$setModelValue(t),t}))}oa.$inject=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$q","$interpolate"],oa.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var e=this.$$parse(this.$$attr.ngModel+"()"),t=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(t){var n=this.$$parsedNgModel(t);return G(n)&amp;&amp;(n=e(t)),n},this.$$ngModelSet=function(e,n){G(this.$$parsedNgModel(e))?t(e,{$$$p:n}):this.$$parsedNgModelAssign(e,n)}}else if(!this.$$parsedNgModel.assign)throw na("nonassign","Expression '{0}' is non-assignable. Element: {1}",this.$$attr.ngModel,$e(this.$$element))},$render:I,$isEmpty:function(e){return F(e)||""===e||null===e||e!=e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,ta),this.$$animate.addClass(this.$$element,ea)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,ea),this.$$animate.addClass(this.$$element,ta),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!M(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,o=this.$modelValue,i=this.$options.getOption("allowInvalid"),r=this;this.$$runValidators(t,e,(function(e){i||n===e||(r.$modelValue=e?t:void 0,r.$modelValue!==o&amp;&amp;r.$$writeModelToScope())}))}},$$runValidators:function(e,t,n){this.$$currentValidationRunId++;var o,i,r=this.$$currentValidationRunId,a=this;(function(){var e=a.$$parserName;if(!F(a.$$parserValid))return a.$$parserValid||(S(a.$validators,(function(e,t){s(t,null)})),S(a.$asyncValidators,(function(e,t){s(t,null)}))),s(e,a.$$parserValid),a.$$parserValid;s(e,null);return!0})()?!function(){var n=!0;if(S(a.$validators,(function(o,i){var r=Boolean(o(e,t));n=n&amp;&amp;r,s(i,r)})),!n)return S(a.$asyncValidators,(function(e,t){s(t,null)})),!1;return!0}()?c(!1):(o=[],i=!0,S(a.$asyncValidators,(function(n,r){var a=n(e,t);if(!Z(a))throw na("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",a);s(r,void 0),o.push(a.then((function(){s(r,!0)}),(function(){i=!1,s(r,!1)})))})),o.length?a.$$q.all(o).then((function(){c(i)}),I):c(!0)):c(!1);function s(e,t){r===a.$$currentValidationRunId&amp;&amp;a.$setValidity(e,t)}function c(e){r===a.$$currentValidationRunId&amp;&amp;n(e)}},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||""===e&amp;&amp;this.$$hasNativeValidators)&amp;&amp;(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&amp;&amp;this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){var e=this.$$lastCommittedViewValue,t=this;if(this.$$parserValid=!F(e)||void 0,this.$setValidity(this.$$parserName,null),this.$$parserName="parse",this.$$parserValid)for(var n=0;n&lt;this.$parsers.length;n++)if(F(e=this.$parsers[n](e))){this.$$parserValid=!1;break}M(this.$modelValue)&amp;&amp;(this.$modelValue=this.$$ngModelGet(this.$$scope));var o=this.$modelValue,i=this.$options.getOption("allowInvalid");function r(){t.$modelValue!==o&amp;&amp;t.$$writeModelToScope()}this.$$rawModelValue=e,i&amp;&amp;(this.$modelValue=e,r()),this.$$runValidators(e,this.$$lastCommittedViewValue,(function(n){i||(t.$modelValue=n?e:void 0,r())}))},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue),S(this.$viewChangeListeners,(function(e){try{e()}catch(e){this.$$exceptionHandler(e)}}),this)},$setViewValue:function(e,t){this.$viewValue=e,this.$options.getOption("updateOnDefault")&amp;&amp;this.$$debounceViewValueCommit(t)},$$debounceViewValueCommit:function(e){var t=this.$options.getOption("debounce");z(t[e])?t=t[e]:z(t.default)&amp;&amp;-1===this.$options.getOption("updateOn").indexOf(e)?t=t.default:z(t["*"])&amp;&amp;(t=t["*"]),this.$$timeout.cancel(this.$$pendingDebounce);var n=this;t&gt;0?this.$$pendingDebounce=this.$$timeout((function(){n.$commitViewValue()}),t):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply((function(){n.$commitViewValue()}))},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e),this.$$setUpdateOnEvents()},$processModelValue:function(){var e=this.$$format();this.$viewValue!==e&amp;&amp;(this.$$updateEmptyClasses(e),this.$viewValue=this.$$lastCommittedViewValue=e,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,I))},$$format:function(){for(var e=this.$formatters,t=e.length,n=this.$modelValue;t--;)n=e[t](n);return n},$$setModelValue:function(e){this.$modelValue=this.$$rawModelValue=e,this.$$parserValid=void 0,this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&amp;&amp;this.$$element.off(this.$$updateEvents,this.$$updateEventHandler),this.$$updateEvents=this.$options.getOption("updateOn"),this.$$updateEvents&amp;&amp;this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(e){this.$$debounceViewValueCommit(e&amp;&amp;e.type)}},rr({clazz:oa,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var ia,ra=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:oa,priority:1,compile:function(t){return t.addClass(ea).addClass("ng-untouched").addClass(Zr),{pre:function(e,t,n,o){var i=o[0],r=o[1]||i.$$parentForm,a=o[2];a&amp;&amp;(i.$options=a.$options),i.$$initGetterSetters(),r.$addControl(i),n.$observe("name",(function(e){i.$name!==e&amp;&amp;i.$$parentForm.$$renameControl(i,e)})),e.$on("$destroy",(function(){i.$$parentForm.$removeControl(i)}))},post:function(t,n,o,i){var r=i[0];function a(){r.$setTouched()}r.$$setUpdateOnEvents(),n.on("blur",(function(){r.$touched||(e.$$phase?t.$evalAsync(a):t.$apply(a))}))}}}}}],aa=/(\s+|^)default(\s+|$)/;function sa(e){this.$$options=e}sa.prototype={getOption:function(e){return this.$$options[e]},createChild:function(e){var t=!1;return S(e=E({},e),(function(n,o){"$inherit"===n?"*"===o?t=!0:(e[o]=this.$$options[o],"updateOn"===o&amp;&amp;(e.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===o&amp;&amp;(e.updateOnDefault=!1,e[o]=ee(n.replace(aa,(function(){return e.updateOnDefault=!0," "}))))}),this),t&amp;&amp;(delete e["*"],la(e,this.$$options)),la(e,ia.$$options),new sa(e)}},ia=new sa({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var ca=function(){function e(e,t){this.$$attrs=e,this.$$scope=t}return e.$inject=["$attrs","$scope"],e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:ia,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:e}};function la(e,t){S(t,(function(t,n){N(e[n])||(e[n]=t)}))}var ua=Ki({terminal:!0,priority:1e3}),da=i("ngOptions"),pa=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,fa=["$compile","$document","$parse",function(t,n,o){var i=e.document.createElement("option"),r=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,o){o[0].registerOption=I},post:function(e,s,c,l){for(var u=l[0],d=l[1],p=c.multiple,f=0,m=s.children(),g=m.length;f&lt;g;f++)if(""===m[f].value){u.hasEmptyOption=!0,u.emptyOption=m.eq(f);break}s.empty();var h,v=!!u.emptyOption;a(i.cloneNode(!1)).val("?");var b=function(e,t,n){var i=e.match(pa);if(!i)throw da("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,$e(t));var r=i[5]||i[7],a=i[6],s=/ as /.test(i[0])&amp;&amp;i[1],c=i[9],l=o(i[2]?i[1]:r),u=s&amp;&amp;o(s)||l,d=c&amp;&amp;o(c),p=c?function(e,t){return d(n,t)}:function(e){return zt(e)},f=function(e,t){return p(e,_(e,t))},m=o(i[2]||i[1]),g=o(i[3]||""),h=o(i[4]||""),v=o(i[8]),b={},_=a?function(e,t){return b[a]=t,b[r]=e,b}:function(e){return b[r]=e,b};function y(e,t,n,o,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=o,this.disabled=i}function $(e){var t;if(!a&amp;&amp;w(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&amp;&amp;"$"!==n.charAt(0)&amp;&amp;t.push(n);return t}return{trackBy:c,getTrackByValue:f,getWatchables:o(v,(function(e){for(var t=[],o=$(e=e||[]),r=o.length,a=0;a&lt;r;a++){var s=e===o?a:o[a],c=e[s],l=_(c,s),u=p(c,l);if(t.push(u),i[2]||i[1]){var d=m(n,l);t.push(d)}if(i[4]){var f=h(n,l);t.push(f)}}return t})),getOptions:function(){for(var e=[],t={},o=v(n)||[],i=$(o),r=i.length,a=0;a&lt;r;a++){var s=o===i?a:i[a],l=o[s],d=_(l,s),b=u(n,d),w=p(b,d),S=new y(w,b,m(n,d),g(n,d),h(n,d));e.push(S),t[w]=S}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[f(e)]},getViewValueFromOption:function(e){return c?ae(e.viewValue):e.viewValue}}}}}(c.ngOptions,s,e),_=n[0].createDocumentFragment();function y(e,t){var n=i.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&amp;&amp;(t.label=e.label,t.textContent=e.label);t.value=e.selectValue}(e,n)}function $(e){var t=h.getOptionFromViewValue(e),n=t&amp;&amp;t.element;return n&amp;&amp;!n.selected&amp;&amp;(n.selected=!0),t}u.generateUnknownOptionValue=function(e){return"?"},p?(u.writeValue=function(e){if(h){var t=e&amp;&amp;e.map($)||[];h.items.forEach((function(e){e.element.selected&amp;&amp;!ie(t,e)&amp;&amp;(e.element.selected=!1)}))}},u.readValue=function(){var e=s.val()||[],t=[];return S(e,(function(e){var n=h.selectValueMap[e];n&amp;&amp;!n.disabled&amp;&amp;t.push(h.getViewValueFromOption(n))})),t},b.trackBy&amp;&amp;e.$watchCollection((function(){if(H(d.$viewValue))return d.$viewValue.map((function(e){return b.getTrackByValue(e)}))}),(function(){d.$render()}))):(u.writeValue=function(e){if(h){var t=s[0].options[s[0].selectedIndex],n=h.getOptionFromViewValue(e);t&amp;&amp;t.removeAttribute("selected"),n?(s[0].value!==n.selectValue&amp;&amp;(u.removeUnknownOption(),s[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):u.selectUnknownOrEmptyOption(e)}},u.readValue=function(){var e=h.selectValueMap[s.val()];return e&amp;&amp;!e.disabled?(u.unselectEmptyOption(),u.removeUnknownOption(),h.getViewValueFromOption(e)):null},b.trackBy&amp;&amp;e.$watch((function(){return b.getTrackByValue(d.$viewValue)}),(function(){d.$render()}))),v&amp;&amp;(t(u.emptyOption)(e),s.prepend(u.emptyOption),u.emptyOption[0].nodeType===qe?(u.hasEmptyOption=!1,u.registerOption=function(e,t){""===t.val()&amp;&amp;(u.hasEmptyOption=!0,u.emptyOption=t,u.emptyOption.removeClass("ng-scope"),d.$render(),t.on("$destroy",(function(){var e=u.$isEmptyOptionSelected();u.hasEmptyOption=!1,u.emptyOption=void 0,e&amp;&amp;d.$render()})))}):u.emptyOption.removeClass("ng-scope")),e.$watchCollection(b.getWatchables,(function(){var e=h&amp;&amp;u.readValue();if(h)for(var t=h.items.length-1;t&gt;=0;t--){var n=h.items[t];N(n.group)?Dt(n.element.parentNode):Dt(n.element)}h=b.getOptions();var o={};if(h.items.forEach((function(e){var t;N(e.group)?((t=o[e.group])||(t=r.cloneNode(!1),_.appendChild(t),t.label=null===e.group?"null":e.group,o[e.group]=t),y(e,t)):y(e,_)})),s[0].appendChild(_),d.$render(),!d.$isEmpty(e)){var i=u.readValue();(b.trackBy||p?ce(e,i):e===i)||(d.$setViewValue(i),d.$render())}}))}}}}],ma=["$locale","$interpolate","$log",function(e,t,n){var o=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(r,a,s){var c,l=s.count,u=s.$attr.when&amp;&amp;a.attr(s.$attr.when),d=s.offset||0,f=r.$eval(u)||{},m={},g=t.startSymbol(),h=t.endSymbol(),v=g+l+"-"+d+h,b=y.noop;function _(e){a.text(e||"")}S(s,(function(e,t){var n=i.exec(t);if(n){var o=(n[1]?"-":"")+p(n[2]);f[o]=a.attr(s.$attr[t])}})),S(f,(function(e,n){m[n]=t(e.replace(o,v))})),r.$watch(l,(function(t){var o=parseFloat(t),i=M(o);if(i||o in f||(o=e.pluralCat(o-d)),!(o===c||i&amp;&amp;M(c))){b();var a=m[o];F(a)?(null!=t&amp;&amp;n.debug("ngPluralize: no rule defined for '"+o+"' in "+u),b=I,_()):b=r.$watch(a,_),c=o}}))}}}],ga=i("ngRef"),ha=["$parse",function(e){return{priority:-1,restrict:"A",compile:function(t,n){var o=xn(oe(t)),i=e(n.ngRef),r=i.assign||function(){throw ga("nonassign",'Expression in ngRef="{0}" is non-assignable!',n.ngRef)};return function(e,t,a){var s;if(a.hasOwnProperty("ngRefRead")){if("$element"===a.ngRefRead)s=t;else if(!(s=t.data("$"+a.ngRefRead+"Controller")))throw ga("noctrl",'The controller for ngRefRead="{0}" could not be found on ngRef="{1}"',a.ngRefRead,n.ngRef)}else s=t.data("$"+o+"Controller");r(e,s=s||t),t.on("$destroy",(function(){i(e)===s&amp;&amp;r(e,null)}))}}}}],va=["$parse","$animate","$compile",function(e,t,n){var o=i("ngRepeat"),r=function(e,t,n,o,i,r,a){e[n]=o,i&amp;&amp;(e[i]=r),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&amp;t))},a=function(e){return e.clone[0]},s=function(e){return e.clone[e.clone.length-1]},c=function(e,t,n){return zt(n)},l=function(e,t){return t};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,u){var p=u.ngRepeat,f=n.$$createComment("end ngRepeat",p),m=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw o("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var g=m[1],h=m[2],v=m[3],b=m[4];if(!(m=g.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw o("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",g);var _,y=m[3]||m[1],$=m[2];if(v&amp;&amp;(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw o("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);if(b){var k={$id:zt},x=e(b);_=function(e,t,n,o){return $&amp;&amp;(k[$]=t),k[y]=n,k.$index=o,x(e,k)}}return function(e,n,i,u,m){var g=je();e.$watchCollection(h,(function(i){var u,h,b,x,C,A,T,E,P,O,M,D,I=n[0],U=je();if(v&amp;&amp;(e[v]=i),w(i))P=i,E=_||c;else for(var L in E=_||l,P=[],i)d.call(i,L)&amp;&amp;"$"!==L.charAt(0)&amp;&amp;P.push(L);for(x=P.length,M=new Array(x),u=0;u&lt;x;u++)if(C=i===P?u:P[u],A=i[C],T=E(e,C,A,u),g[T])O=g[T],delete g[T],U[T]=O,M[u]=O;else{if(U[T])throw S(M,(function(e){e&amp;&amp;e.scope&amp;&amp;(g[e.id]=e)})),o("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,T,A);M[u]={id:T,scope:void 0,clone:void 0},U[T]=!0}for(var R in k&amp;&amp;(k[y]=void 0),g){if(D=Ne((O=g[R]).clone),t.leave(D),D[0].parentNode)for(u=0,h=D.length;u&lt;h;u++)D[u].$$NG_REMOVED=!0;O.scope.$destroy()}for(u=0;u&lt;x;u++)if(C=i===P?u:P[u],A=i[C],(O=M[u]).scope){b=I;do{b=b.nextSibling}while(b&amp;&amp;b.$$NG_REMOVED);a(O)!==b&amp;&amp;t.move(Ne(O.clone),null,I),I=s(O),r(O.scope,u,y,A,$,C,x)}else m((function(e,n){O.scope=n;var o=f.cloneNode(!1);e[e.length++]=o,t.enter(e,null,I),I=o,O.clone=e,U[O.id]=O,r(O.scope,u,y,A,$,C,x)}));g=U}))}}}}],ba=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,o){t.$watch(o.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],_a=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,o){t.$watch(o.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],ya=Ki((function(e,t,n){e.$watchCollection(n.ngStyle,(function(e,n){n&amp;&amp;e!==n&amp;&amp;S(n,(function(e,n){t.css(n,"")})),e&amp;&amp;t.css(e)}))})),$a=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,o,i,r){var a=i.ngSwitch||i.on,s=[],c=[],l=[],u=[],d=function(e,t){return function(n){!1!==n&amp;&amp;e.splice(t,1)}};n.$watch(a,(function(n){for(var o,i;l.length;)e.cancel(l.pop());for(o=0,i=u.length;o&lt;i;++o){var a=Ne(c[o].clone);u[o].$destroy(),(l[o]=e.leave(a)).done(d(l,o))}c.length=0,u.length=0,(s=r.cases["!"+n]||r.cases["?"])&amp;&amp;S(s,(function(n){n.transclude((function(o,i){u.push(i);var r=n.element;o[o.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:o};c.push(a),e.enter(o,r.parent(),r)}))}))}))}}}],wa=Ki({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,o,i){S(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){o.cases["!"+e]=o.cases["!"+e]||[],o.cases["!"+e].push({transclude:i,element:t})}))}}),Sa=Ki({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,o,i){o.cases["?"]=o.cases["?"]||[],o.cases["?"].push({transclude:i,element:t})}}),ka=i("ngTransclude"),xa=["$compile",function(e){return{restrict:"EAC",compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,o,i,r){if(!r)throw ka("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",$e(t));o.ngTransclude===o.$attr.ngTransclude&amp;&amp;(o.ngTransclude="");var a=o.ngTransclude||o.ngTranscludeSlot;function s(){n(e,(function(e){t.append(e)}))}r((function(e,n){e.length&amp;&amp;function(e){for(var t=0,n=e.length;t&lt;n;t++){var o=e[t];if(o.nodeType!==ze||o.nodeValue.trim())return!0}}(e)?t.append(e):(s(),n.$destroy())}),null,a),a&amp;&amp;!r.isSlotFilled(a)&amp;&amp;s()}}}}],Ca=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var o=n.id,i=t[0].text;e.put(o,i)}}}}],Aa={$setViewValue:I,$render:I};function Ta(e,t){e.prop("selected",t),e.attr("selected",t)}var Ea=["$element","$scope",function(t,n){var o=this,i=new Wt;o.selectValueMap={},o.ngModelCtrl=Aa,o.multiple=!1,o.unknownOption=a(e.document.createElement("option")),o.hasEmptyOption=!1,o.emptyOption=void 0,o.renderUnknownOption=function(e){var n=o.generateUnknownOptionValue(e);o.unknownOption.val(n),t.prepend(o.unknownOption),Ta(o.unknownOption,!0),t.val(n)},o.updateUnknownOption=function(e){var n=o.generateUnknownOptionValue(e);o.unknownOption.val(n),Ta(o.unknownOption,!0),t.val(n)},o.generateUnknownOptionValue=function(e){return"? "+zt(e)+" ?"},o.removeUnknownOption=function(){o.unknownOption.parent()&amp;&amp;o.unknownOption.remove()},o.selectEmptyOption=function(){o.emptyOption&amp;&amp;(t.val(""),Ta(o.emptyOption,!0))},o.unselectEmptyOption=function(){o.hasEmptyOption&amp;&amp;Ta(o.emptyOption,!1)},n.$on("$destroy",(function(){o.renderUnknownOption=I})),o.readValue=function(){var e=t.val(),n=e in o.selectValueMap?o.selectValueMap[e]:e;return o.hasOption(n)?n:null},o.writeValue=function(e){var n=t[0].options[t[0].selectedIndex];if(n&amp;&amp;Ta(a(n),!1),o.hasOption(e)){o.removeUnknownOption();var i=zt(e);t.val(i in o.selectValueMap?i:e);var r=t[0].options[t[0].selectedIndex];Ta(a(r),!0)}else o.selectUnknownOrEmptyOption(e)},o.addOption=function(e,t){if(t[0].nodeType!==qe){Fe(e,'"option value"'),""===e&amp;&amp;(o.hasEmptyOption=!0,o.emptyOption=t);var n=i.get(e)||0;i.set(e,n+1),s()}},o.removeOption=function(e){var t=i.get(e);t&amp;&amp;(1===t?(i.delete(e),""===e&amp;&amp;(o.hasEmptyOption=!1,o.emptyOption=void 0)):i.set(e,t-1))},o.hasOption=function(e){return!!i.get(e)},o.$hasEmptyOption=function(){return o.hasEmptyOption},o.$isUnknownOptionSelected=function(){return t[0].options[0]===o.unknownOption[0]},o.$isEmptyOptionSelected=function(){return o.hasEmptyOption&amp;&amp;t[0].options[t[0].selectedIndex]===o.emptyOption[0]},o.selectUnknownOrEmptyOption=function(e){null==e&amp;&amp;o.emptyOption?(o.removeUnknownOption(),o.selectEmptyOption()):o.unknownOption.parent().length?o.updateUnknownOption(e):o.renderUnknownOption(e)};var r=!1;function s(){r||(r=!0,n.$$postDigest((function(){r=!1,o.ngModelCtrl.$render()})))}var c=!1;function l(e){c||(c=!0,n.$$postDigest((function(){n.$$destroyed||(c=!1,o.ngModelCtrl.$setViewValue(o.readValue()),e&amp;&amp;o.ngModelCtrl.$render())})))}o.registerOption=function(e,t,n,i,r){var a,c;n.$attr.ngValue?n.$observe("value",(function(e){var n,i=t.prop("selected");N(c)&amp;&amp;(o.removeOption(a),delete o.selectValueMap[c],n=!0),c=zt(e),a=e,o.selectValueMap[c]=e,o.addOption(e,t),t.attr("value",c),n&amp;&amp;i&amp;&amp;l()})):i?n.$observe("value",(function(e){var n;o.readValue();var i=t.prop("selected");N(a)&amp;&amp;(o.removeOption(a),n=!0),a=e,o.addOption(e,t),n&amp;&amp;i&amp;&amp;l()})):r?e.$watch(r,(function(e,i){n.$set("value",e);var r=t.prop("selected");i!==e&amp;&amp;o.removeOption(i),o.addOption(e,t),i&amp;&amp;r&amp;&amp;l()})):o.addOption(n.value,t);n.$observe("disabled",(function(e){("true"===e||e&amp;&amp;t.prop("selected"))&amp;&amp;(o.multiple?l(!0):(o.ngModelCtrl.$setViewValue(null),o.ngModelCtrl.$render()))})),t.on("$destroy",(function(){var e=o.readValue(),t=n.value;o.removeOption(t),s(),(o.multiple&amp;&amp;e&amp;&amp;-1!==e.indexOf(t)||e===t)&amp;&amp;l(!0)}))}}],Pa=function(){return{restrict:"E",require:["select","?ngModel"],controller:Ea,priority:1,link:{pre:function(e,t,n,o){var i=o[0],r=o[1];if(!r)return void(i.registerOption=I);if(i.ngModelCtrl=r,t.on("change",(function(){i.removeUnknownOption(),e.$apply((function(){r.$setViewValue(i.readValue())}))})),n.multiple){i.multiple=!0,i.readValue=function(){var e=[];return S(t.find("option"),(function(t){if(t.selected&amp;&amp;!t.disabled){var n=t.value;e.push(n in i.selectValueMap?i.selectValueMap[n]:n)}})),e},i.writeValue=function(e){S(t.find("option"),(function(t){var n=!!e&amp;&amp;(ie(e,t.value)||ie(e,i.selectValueMap[t.value]));n!==t.selected&amp;&amp;Ta(a(t),n)}))};var s,c=NaN;e.$watch((function(){c!==r.$viewValue||ce(s,r.$viewValue)||(s=Ge(r.$viewValue),r.$render()),c=r.$viewValue})),r.$isEmpty=function(e){return!e||0===e.length}}},post:function(e,t,n,o){var i=o[1];if(!i)return;var r=o[0];i.$render=function(){r.writeValue(i.$viewValue)}}}}},Oa=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var o,i;return N(n.ngValue)||(N(n.value)?o=e(n.value,!0):(i=e(t.text(),!0))||n.$set("value",t.text())),function(e,t,n){var r=t.parent(),a=r.data("$selectController")||r.parent().data("$selectController");a&amp;&amp;a.registerOption(e,t,n,o,i)}}}}],Ma=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,o,i){if(i){var r=o.hasOwnProperty("required")||e(o.ngRequired)(t);o.ngRequired||(o.required=!0),i.$validators.required=function(e,t){return!r||!i.$isEmpty(t)},o.$observe("required",(function(e){r!==e&amp;&amp;(r=e,i.$validate())}))}}}}],Da=["$parse",function(e){return{restrict:"A",require:"?ngModel",compile:function(t,n){var o,i;return n.ngPattern&amp;&amp;(o=n.ngPattern,i="/"===n.ngPattern.charAt(0)&amp;&amp;l.test(n.ngPattern)?function(){return n.ngPattern}:e(n.ngPattern)),function(e,t,n,r){if(r){var a=n.pattern;n.ngPattern?a=i(e):o=n.pattern;var s=La(a,o,t);n.$observe("pattern",(function(e){var n=s;s=La(e,o,t),(n&amp;&amp;n.toString())!==(s&amp;&amp;s.toString())&amp;&amp;r.$validate()})),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||F(s)||s.test(t)}}}}}}],Ia=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,o,i){if(i){var r=o.maxlength||e(o.ngMaxlength)(t),a=Ra(r);o.$observe("maxlength",(function(e){r!==e&amp;&amp;(a=Ra(e),r=e,i.$validate())})),i.$validators.maxlength=function(e,t){return a&lt;0||i.$isEmpty(t)||t.length&lt;=a}}}}}],Ua=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,o,i){if(i){var r=o.minlength||e(o.ngMinlength)(t),a=Ra(r)||-1;o.$observe("minlength",(function(e){r!==e&amp;&amp;(a=Ra(e)||-1,r=e,i.$validate())})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length&gt;=a}}}}}];function La(e,t,n){if(e){if(V(e)&amp;&amp;(e=new RegExp("^"+e+"$")),!e.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",t,e,$e(n));return e}}function Ra(e){var t=O(e);return M(t)?-1:t}e.angular.bootstrap?e.console&amp;&amp;console.log("WARNING: Tried to load AngularJS more than once."):(!function(){var t;if(!Ie){var n=ue();(s=F(n)?e.jQuery:n?e[n]:void 0)&amp;&amp;s.fn.on?(a=s,E(s.fn,{scope:Ut.scope,isolateScope:Ut.isolateScope,controller:Ut.controller,injector:Ut.injector,inheritedData:Ut.inheritedData})):a=vt,t=a.cleanData,a.cleanData=function(e){for(var n,o,i=0;null!=(o=e[i]);i++)(n=(a._data(o)||{}).events)&amp;&amp;n.$destroy&amp;&amp;a(o).triggerHandler("$destroy");t(e)},y.element=a,Ie=!0}}(),function(t){E(t,{errorHandlingConfig:n,bootstrap:Ee,copy:ae,extend:E,merge:P,equals:ce,element:a,forEach:S,injector:nn,noop:I,bind:fe,toJson:ge,fromJson:he,identity:U,isUndefined:F,isDefined:N,isString:V,isFunction:G,isObject:j,isNumber:z,isElement:ne,isArray:H,version:Ke,isDate:q,callbacks:{$$counter:0},getTestability:Oe,reloadWithDebugInfo:Pe,UNSAFE_restoreLegacyJqLiteXHTMLReplacement:Ue,$$minErr:i,$$csp:le,$$encodeUriSegment:ke,$$encodeUriQuery:xe,$$lowercase:p,$$stringify:Be,$$uppercase:f}),(c=function(e){var t=i("$injector"),n=i("ng");function o(e,t,n){return e[t]||(e[t]=n())}var r=o(e,"angular",Object);return r.$$minErr=r.$$minErr||i,o(r,"module",(function(){var e={};return function(i,r,a){var s={};return function(e,t){if("hasOwnProperty"===e)throw n("badname","hasOwnProperty is not a valid {0} name",t)}(i,"module"),r&amp;&amp;e.hasOwnProperty(i)&amp;&amp;(e[i]=null),o(e,i,(function(){if(!r)throw t("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var e=[],o=[],c=[],l=d("$injector","invoke","push",o),u={_invokeQueue:e,_configBlocks:o,_runBlocks:c,info:function(e){if(N(e)){if(!j(e))throw n("aobj","Argument '{0}' must be an object","value");return s=e,this}return s},requires:r,name:i,provider:p("$provide","provider"),factory:p("$provide","factory"),service:p("$provide","service"),value:d("$provide","value"),constant:d("$provide","constant","unshift"),decorator:p("$provide","decorator",o),animation:p("$animateProvider","register"),filter:p("$filterProvider","register"),controller:p("$controllerProvider","register"),directive:p("$compileProvider","directive"),component:p("$compileProvider","component"),config:l,run:function(e){return c.push(e),this}};return a&amp;&amp;l(a),u;function d(t,n,o,i){return i||(i=e),function(){return i[o||"push"]([t,n,arguments]),u}}function p(t,n,o){return o||(o=e),function(e,r){return r&amp;&amp;G(r)&amp;&amp;(r.$$moduleName=i),o.push([t,n,arguments]),u}}}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Zo}),e.provider("$compile",$n).directive({a:Ji,input:Pr,textarea:Pr,form:nr,script:Ca,select:Pa,option:Oa,ngBind:Ir,ngBindHtml:Lr,ngBindTemplate:Ur,ngClass:Nr,ngClassEven:Br,ngClassOdd:jr,ngCloak:Vr,ngController:zr,ngForm:or,ngHide:_a,ngIf:Gr,ngInclude:Yr,ngInit:Jr,ngNonBindable:ua,ngPluralize:ma,ngRef:ha,ngRepeat:va,ngShow:ba,ngStyle:ya,ngSwitch:$a,ngSwitchWhen:wa,ngSwitchDefault:Sa,ngOptions:fa,ngTransclude:xa,ngModel:ra,ngList:Xr,ngChange:Rr,pattern:Da,ngPattern:Da,required:Ma,ngRequired:Ma,minlength:Ua,ngMinlength:Ua,maxlength:Ia,ngMaxlength:Ia,ngValue:Dr,ngModelOptions:ca}).directive({ngInclude:Kr,input:Or}).directive(Xi).directive(qr),e.provider({$anchorScroll:on,$animate:dn,$animateCss:mn,$$animateJs:ln,$$animateQueue:un,$$AnimateRunner:fn,$$animateAsyncRun:pn,$browser:hn,$cacheFactory:vn,$controller:On,$document:Mn,$$isDocumentHidden:Dn,$exceptionHandler:In,$filter:Si,$$forceReflow:Un,$interpolate:eo,$interval:no,$$intervalFactory:oo,$http:Jn,$httpParamSerializer:zn,$httpParamSerializerJQLike:qn,$httpBackend:Zn,$xhrFactory:Xn,$jsonpCallbacks:io,$location:wo,$log:So,$parse:zo,$rootScope:Xo,$q:qo,$$q:Ho,$sce:ri,$sceDelegate:ii,$sniffer:ai,$$taskTrackerFactory:si,$templateCache:bn,$templateRequest:ui,$$testability:di,$timeout:fi,$window:yi,$$rAF:Jo,$$jqLite:Vt,$$Map:Gt,$$cookieReader:wi})}]).info({angularVersion:"1.8.2"})}(y),y.module("ngLocale",[],["$provide",function(e){var t="one",n="other";e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-Â¤",negSuf:"",posPre:"Â¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,o){var i=0|e,r=function(e,t){var n=t;void 0===n&amp;&amp;(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var o=Math.pow(10,n);return{v:n,f:(e*o|0)%o}}(e,o);return 1==i&amp;&amp;0==r.v?t:n}})}]),a((function(){Te(e.document,Ee)})))}(window),!window.angular.$$csp().noInlineStyle&amp;&amp;window.angular.element(document.head).prepend(window.angular.element("&lt;style&gt;").text('@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}'))},M7oJ:function(e,t,n){"use strict";t.a='&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;{{ ngDialogData.title }}&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body" ng-if="ngDialogData.text" ng-bind-html="ngDialogData.text|html"&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-footer"&gt;\n            &lt;a class="btn btn-outline-primary" ng-click="confirm()"&gt;{{ ngDialogData.btn_confirm }}&lt;/a&gt;\n            &lt;a class="btn btn-cancel"  ng-if="ngDialogData.btn_cancel" ng-click="closeThisDialog()"&gt;{{ ngDialogData.btn_cancel }}&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'},OPHa:function(e,t,n){n("QlQg"),e.exports="ngFileUpload"},Ox9E:function(e,t){
/*
    * @license
    * AngularJS Toaster
    * Version: 3.0.0
    *
    * Copyright 2013-2019 Jiri Kavulak, Stabzs.
    * All Rights Reserved.
    * Use, reproduction, distribution, and modification of this code is subject to the terms and
    * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
    *
    * Authors: Jiri Kavulak, Stabzs
    * Related to project of John Papa, Hans FjÃ¤llemark and Nguyá»…n Thiá»‡n HÃ¹ng (thienhung1989)
*/
!function(e,t){"use strict";angular.module("toaster",[]).constant("toasterConfig",{limit:0,"tap-to-dismiss":!0,"close-button":!1,"close-html":'&lt;button class="toast-close-button" type="button"&gt;&amp;times;&lt;/button&gt;',"newest-on-top":!0,"time-out":5e3,"icon-classes":{error:"toast-error",info:"toast-info",wait:"toast-wait",success:"toast-success",warning:"toast-warning"},"body-output-type":"","body-template":"toasterBodyTmpl.html","icon-class":"toast-info","position-class":"toast-top-right","title-class":"toast-title","message-class":"toast-message","prevent-duplicates":!1,"mouseover-timer-stop":!0}).run(["$templateCache",function(e){e.put("angularjs-toaster/toast.html",'&lt;div id="toast-container" ng-class="[config.position, config.animation]"&gt;&lt;div ng-repeat="toaster in toasters" class="toast" ng-class="toaster.type" ng-click="click($event, toaster)" ng-mouseover="stopTimer(toaster)" ng-mouseout="restartTimer(toaster)"&gt;&lt;div ng-if="toaster.showCloseButton" ng-click="click($event, toaster, true)" ng-bind-html="toaster.closeHtml"&gt;&lt;/div&gt;&lt;div ng-class="config.title"&gt;{{toaster.title}}&lt;/div&gt;&lt;div ng-class="config.message" ng-switch on="toaster.bodyOutputType"&gt;&lt;div ng-switch-when="html" ng-bind-html="toaster.body"&gt;&lt;/div&gt;&lt;div ng-switch-when="trustedHtml" ng-bind-html="toaster.html"&gt;&lt;/div&gt;&lt;div ng-switch-when="template"&gt;&lt;div ng-include="toaster.bodyTemplate"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div ng-switch-when="templateWithData"&gt;&lt;div ng-include="toaster.bodyTemplate"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div ng-switch-when="directive"&gt;&lt;div directive-template directive-name="{{toaster.html}}" directive-data="toaster.directiveData"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div ng-switch-default &gt;{{toaster.body}}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;')}]).service("toaster",["$rootScope","toasterConfig",function(e,t){var n=function(){var e={newGuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&amp;t|8).toString(16)}))}};return e}();for(var o in this.pop=function(t,o,i,r,a,s,c,l,u,d){if(angular.isObject(t)){var p=t;this.toast={type:p.type,title:p.title,body:p.body,timeout:p.timeout,bodyOutputType:p.bodyOutputType,clickHandler:p.clickHandler,showCloseButton:p.showCloseButton,closeHtml:p.closeHtml,toastId:p.toastId,onShowCallback:p.onShowCallback,onHideCallback:p.onHideCallback,directiveData:p.directiveData,tapToDismiss:p.tapToDismiss},c=p.toasterId}else this.toast={type:t,title:o,body:i,timeout:r,bodyOutputType:a,clickHandler:s,showCloseButton:l,toastId:u,onHideCallback:d};return this.toast.toastId&amp;&amp;this.toast.toastId.length||(this.toast.toastId=n.newGuid()),e.$emit("toaster-newToast",c,this.toast.toastId),{toasterId:c,toastId:this.toast.toastId}},this.clear=function(t,n){angular.isObject(t)?e.$emit("toaster-clearToasts",t.toasterId,t.toastId):e.$emit("toaster-clearToasts",t,n)},t["icon-classes"])this[o]=i(o);function i(e){return function(t,n,o,i,r,a,s,c,l){return angular.isString(t)?this.pop(e,t,n,o,i,r,a,s,c,l):this.pop(angular.extend(t,{type:e}))}}}]).factory("toasterEventRegistry",["$rootScope",function(e){var t,n=null,o=null,i=[],r=[];return{setup:(t={setup:function(){n||(n=e.$on("toaster-newToast",(function(e,t,n){for(var o=0,r=i.length;o&lt;r;o++)i[o](e,t,n)}))),o||(o=e.$on("toaster-clearToasts",(function(e,t,n){for(var o=0,i=r.length;o&lt;i;o++)r[o](e,t,n)})))},subscribeToNewToastEvent:function(e){i.push(e)},subscribeToClearToastsEvent:function(e){r.push(e)},unsubscribeToNewToastEvent:function(e){var t=i.indexOf(e);t&gt;=0&amp;&amp;i.splice(t,1),0===i.length&amp;&amp;(n(),n=null)},unsubscribeToClearToastsEvent:function(e){var t=r.indexOf(e);t&gt;=0&amp;&amp;r.splice(t,1),0===r.length&amp;&amp;(o(),o=null)}}).setup,subscribeToNewToastEvent:t.subscribeToNewToastEvent,subscribeToClearToastsEvent:t.subscribeToClearToastsEvent,unsubscribeToNewToastEvent:t.unsubscribeToNewToastEvent,unsubscribeToClearToastsEvent:t.unsubscribeToClearToastsEvent}}]).directive("directiveTemplate",["$compile","$injector",function(e,t){return{restrict:"A",scope:{directiveName:"@directiveName",directiveData:"=directiveData"},replace:!0,link:function(n,o,i){n.$watch("directiveName",(function(r){if(angular.isUndefined(r)||r.length&lt;=0)throw new Error("A valid directive name must be provided via the toast body argument when using bodyOutputType: directive");var a;try{a=t.get(i.$normalize(r)+"Directive")}catch(e){throw new Error(r+" could not be found. The name should appear as it exists in the markup, not camelCased as it would appear in the directive declaration, e.g. directive-name not directiveName.")}var s=a[0];if(!0!==s.scope&amp;&amp;s.scope)throw new Error("Cannot use a directive with an isolated scope. The scope must be either true or falsy (e.g. false/null/undefined). Occurred for directive "+r+".");if(s.restrict.indexOf("A")&lt;0)throw new Error('Directives must be usable as attributes. Add "A" to the restrict option (or remove the option entirely). Occurred for directive '+r+".");n.directiveData&amp;&amp;(n.directiveData=angular.fromJson(n.directiveData));var c=e("&lt;div "+r+"&gt;&lt;/div&gt;")(n);o.append(c)}))}}}]).directive("toasterContainer",["$parse","$rootScope","$interval","$sce","toasterConfig","toaster","toasterEventRegistry",function(e,t,n,o,i,r,a){return{replace:!0,restrict:"EA",scope:!0,link:function(t,s,c){var l;function u(e){var o=t.toasters[e];o.timeoutPromise&amp;&amp;n.cancel(o.timeoutPromise),t.toasters.splice(e,1),angular.isFunction(o.onHideCallback)&amp;&amp;o.onHideCallback(o)}function d(e){return angular.isUndefined(e)||null===e}l=angular.extend({},i,t.$eval(c.toasterOptions)),t.config={toasterId:l["toaster-id"],position:l["position-class"],title:l["title-class"],message:l["message-class"],tap:l["tap-to-dismiss"],closeButton:l["close-button"],closeHtml:l["close-html"],animation:l["animation-class"],mouseoverTimer:l["mouseover-timer-stop"]},t.$on("$destroy",(function(){a.unsubscribeToNewToastEvent(t._onNewToast),a.unsubscribeToClearToastsEvent(t._onClearToasts)})),t.configureTimer=function(e){var o=angular.isNumber(e.timeout)?e.timeout:l["time-out"];"object"==typeof o&amp;&amp;(o=o[e.type]),o&gt;0&amp;&amp;function(e,o){e.timeoutPromise=n((function(){t.removeToast(e.toastId)}),o,1)}(e,o)},t.removeToast=function(e){var n,o;for(n=0,o=t.toasters.length;n&lt;o;n++)if(t.toasters[n].toastId===e){u(n);break}},t.toasters=[],t._onNewToast=function(n,i,a){(d(t.config.toasterId)&amp;&amp;d(i)||!d(t.config.toasterId)&amp;&amp;!d(i)&amp;&amp;t.config.toasterId==i)&amp;&amp;function(n,i){if(n.type=l["icon-classes"][n.type],n.type||(n.type=l["icon-class"]),!0===l["prevent-duplicates"]&amp;&amp;t.toasters.length){if(t.toasters[t.toasters.length-1].body===n.body)return;var r,a,s=!1;for(r=0,a=t.toasters.length;r&lt;a;r++)if(t.toasters[r].toastId===i){s=!0;break}if(s)return}var c=l["close-button"];if("boolean"==typeof n.showCloseButton);else if("boolean"==typeof c)n.showCloseButton=c;else if("object"==typeof c){var d=c[n.type];null!=d&amp;&amp;(n.showCloseButton=d)}else n.showCloseButton=!1;switch(n.showCloseButton&amp;&amp;(n.closeHtml=o.trustAsHtml(n.closeHtml||t.config.closeHtml)),n.bodyOutputType=n.bodyOutputType||l["body-output-type"],n.bodyOutputType){case"trustedHtml":n.html=o.trustAsHtml(n.body);break;case"template":n.bodyTemplate=n.body||l["body-template"];break;case"templateWithData":var p=e(n.body||l["body-template"])(t);n.bodyTemplate=p.template,n.data=p.data;break;case"directive":n.html=n.body}t.configureTimer(n),!0===l["newest-on-top"]?(t.toasters.unshift(n),l.limit&gt;0&amp;&amp;t.toasters.length&gt;l.limit&amp;&amp;u(t.toasters.length-1)):(t.toasters.push(n),l.limit&gt;0&amp;&amp;t.toasters.length&gt;l.limit&amp;&amp;u(0)),angular.isFunction(n.onShowCallback)&amp;&amp;n.onShowCallback(n)}(r.toast,a)},t._onClearToasts=function(e,n,o){("*"==n||d(t.config.toasterId)&amp;&amp;d(n)||!d(t.config.toasterId)&amp;&amp;!d(n)&amp;&amp;t.config.toasterId==n)&amp;&amp;function(e){for(var n=t.toasters.length-1;n&gt;=0;n--)d(e)?u(n):t.toasters[n].toastId==e&amp;&amp;u(n)}(o)},a.setup(),a.subscribeToNewToastEvent(t._onNewToast),a.subscribeToClearToastsEvent(t._onClearToasts)},controller:["$scope","$element","$attrs",function(e,t,o){e.stopTimer=function(t){!0===e.config.mouseoverTimer&amp;&amp;t.timeoutPromise&amp;&amp;(n.cancel(t.timeoutPromise),t.timeoutPromise=null)},e.restartTimer=function(t){!0===e.config.mouseoverTimer?t.timeoutPromise||e.configureTimer(t):null===t.timeoutPromise&amp;&amp;e.removeToast(t.toastId)},e.click=function(t,n,o){if(t.stopPropagation(),!0===("boolean"==typeof n.tapToDismiss?n.tapToDismiss:e.config.tap)||!0===n.showCloseButton&amp;&amp;!0===o){var i=!0;n.clickHandler&amp;&amp;(angular.isFunction(n.clickHandler)?i=n.clickHandler(n,o):angular.isFunction(e.$parent.$eval(n.clickHandler))?i=e.$parent.$eval(n.clickHandler)(n,o):console.log("TOAST-NOTE: Your click handler is not inside a parent scope of toaster-container.")),i&amp;&amp;e.removeToast(n.toastId)}}}],templateUrl:"angularjs-toaster/toast.html"}}])}(window,document)},POGS:function(e,t,n){var o,i,r,a;a=function(e){"use strict";var t=e.module("ngDialog",[]),n=e.element,o=e.isDefined,i=(document.body||document.documentElement).style,r=o(i.animation)||o(i.WebkitAnimation)||o(i.MozAnimation)||o(i.MsAnimation)||o(i.OAnimation),a="animationend webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend",s={html:!1,body:!1},c={},l=[],u=[],d=!1,p=!1,f=[];return t.provider("ngDialog",(function(){var t=this.defaults={className:"ngdialog-theme-default",appendClassName:"",disableAnimation:!1,plain:!1,showClose:!0,closeByDocument:!0,closeByEscape:!0,closeByNavigation:!1,appendTo:!1,preCloseCallback:!1,onOpenCallback:!1,overlay:!0,cache:!0,trapFocus:!0,preserveFocus:!0,ariaAuto:!0,ariaRole:null,ariaLabelledById:null,ariaLabelledBySelector:null,ariaDescribedById:null,ariaDescribedBySelector:null,bodyClassName:"ngdialog-open",width:null,height:null};this.setForceHtmlReload=function(e){s.html=e||!1},this.setForceBodyReload=function(e){s.body=e||!1},this.setDefaults=function(n){e.extend(t,n)},this.setOpenOnePerName=function(e){p=e||!1};var o,i=0,m=0,g={};this.$get=["$document","$templateCache","$compile","$q","$http","$rootScope","$timeout","$window","$controller","$injector",function(h,v,b,_,y,$,w,S,k,x){var C=[],A={onDocumentKeydown:function(e){27===e.keyCode&amp;&amp;T.close("$escape")},activate:function(e){e.data("$ngDialogOptions").trapFocus&amp;&amp;(e.on("keydown",A.onTrapFocusKeydown),C.body.on("keydown",A.onTrapFocusKeydown))},deactivate:function(e){e.off("keydown",A.onTrapFocusKeydown),C.body.off("keydown",A.onTrapFocusKeydown)},deactivateAll:function(t){e.forEach(t,(function(t){var n=e.element(t);A.deactivate(n)}))},setBodyPadding:function(e){var t=parseInt(C.body.css("padding-right")||0,10);C.body.css("padding-right",t+e+"px"),C.body.data("ng-dialog-original-padding",t),$.$broadcast("ngDialog.setPadding",e)},resetBodyPadding:function(){var e=C.body.data("ng-dialog-original-padding");e?C.body.css("padding-right",e+"px"):C.body.css("padding-right",""),$.$broadcast("ngDialog.setPadding",0)},performCloseDialog:function(e,t){var n=e.data("$ngDialogOptions"),i=e.attr("id"),s=c[i];if(A.deactivate(e),s){if(void 0!==S.Hammer&amp;&amp;s.hammerTime){var u=s.hammerTime;u.off("tap",o),u.destroy&amp;&amp;u.destroy(),delete s.hammerTime}else e.unbind("click");1===m&amp;&amp;C.body.unbind("keydown",A.onDocumentKeydown),e.hasClass("ngdialog-closing")||(m-=1);var p=e.data("$ngDialogPreviousFocus");p&amp;&amp;p.focus&amp;&amp;p.focus(),$.$broadcast("ngDialog.closing",e,t),m=m&lt;0?0:m,r&amp;&amp;!n.disableAnimation?(s.$destroy(),e.unbind(a).bind(a,(function(){A.closeDialogElement(e,t)})).addClass("ngdialog-closing")):(s.$destroy(),A.closeDialogElement(e,t)),g[i]&amp;&amp;(g[i].resolve({id:i,value:t,$dialog:e,remainingDialogs:m}),delete g[i]),c[i]&amp;&amp;delete c[i],l.splice(l.indexOf(i),1),l.length||(C.body.unbind("keydown",A.onDocumentKeydown),d=!1),0==m&amp;&amp;(o=void 0)}},closeDialogElement:function(e,t){var n=e.data("$ngDialogOptions");e.remove(),u.splice(u.indexOf(n.bodyClassName),1),-1===u.indexOf(n.bodyClassName)&amp;&amp;(C.html.removeClass(n.bodyClassName),C.body.removeClass(n.bodyClassName)),0===m&amp;&amp;A.resetBodyPadding(),$.$broadcast("ngDialog.closed",e,t)},closeDialog:function(t,n){var o=t.data("$ngDialogPreCloseCallback");if(o&amp;&amp;e.isFunction(o)){var i=o.call(t,n);if(e.isObject(i))i.closePromise?i.closePromise.then((function(){A.performCloseDialog(t,n)}),(function(){return!1})):i.then((function(){A.performCloseDialog(t,n)}),(function(){return!1}));else{if(!1===i)return!1;A.performCloseDialog(t,n)}}else A.performCloseDialog(t,n)},onTrapFocusKeydown:function(t){var n,o=e.element(t.currentTarget);if(o.hasClass("ngdialog"))n=o;else if(null===(n=A.getActiveDialog()))return;var i=9===t.keyCode,r=!0===t.shiftKey;i&amp;&amp;A.handleTab(n,t,r)},handleTab:function(e,t,n){var o=A.getFocusableElements(e);if(0!==o.length){var i=document.activeElement,r=Array.prototype.indexOf.call(o,i),a=-1===r,s=0===r,c=r===o.length-1,l=!1;n?(a||s)&amp;&amp;(o[o.length-1].focus(),l=!0):(a||c)&amp;&amp;(o[0].focus(),l=!0),l&amp;&amp;(t.preventDefault(),t.stopPropagation())}else document.activeElement&amp;&amp;document.activeElement.blur&amp;&amp;document.activeElement.blur()},autoFocus:function(e){var t=e[0],o=t.querySelector("*[autofocus]");if(null===o||(o.focus(),document.activeElement!==o)){var i=A.getFocusableElements(e);if(i.length&gt;0)i[0].focus();else{var r=A.filterVisibleElements(t.querySelectorAll("h1,h2,h3,h4,h5,h6,p,span"));if(r.length&gt;0){var a=r[0];n(a).attr("tabindex","-1").css("outline","0"),a.focus()}}}},getFocusableElements:function(e){var t=e[0].querySelectorAll("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"),n=A.filterTabbableElements(t);return A.filterVisibleElements(n)},filterTabbableElements:function(e){for(var t=[],o=0;o&lt;e.length;o++){var i=e[o];"-1"!==n(i).attr("tabindex")&amp;&amp;t.push(i)}return t},filterVisibleElements:function(e){for(var t=[],n=0;n&lt;e.length;n++){var o=e[n];(o.offsetWidth&gt;0||o.offsetHeight&gt;0)&amp;&amp;t.push(o)}return t},getActiveDialog:function(){var e=document.querySelectorAll(".ngdialog");return 0===e.length?null:n(e[e.length-1])},applyAriaAttributes:function(e,t){if(t.ariaAuto){if(!t.ariaRole){var n=A.getFocusableElements(e).length&gt;0?"dialog":"alertdialog";t.ariaRole=n}t.ariaLabelledBySelector||(t.ariaLabelledBySelector="h1,h2,h3,h4,h5,h6"),t.ariaDescribedBySelector||(t.ariaDescribedBySelector="article,section,p")}t.ariaRole&amp;&amp;e.attr("role",t.ariaRole),A.applyAriaAttribute(e,"aria-labelledby",t.ariaLabelledById,t.ariaLabelledBySelector),A.applyAriaAttribute(e,"aria-describedby",t.ariaDescribedById,t.ariaDescribedBySelector)},applyAriaAttribute:function(e,t,o,i){if(o)e.attr(t,o);else if(i){var r=e.attr("id"),a=e[0].querySelector(i);if(!a)return;var s=r+"-"+t;return n(a).attr("id",s),e.attr(t,s),s}},detectUIRouter:function(){return x.has("$transitions")?"1.0.0+":!!x.has("$state")&amp;&amp;"legacy"},getRouterLocationEventName:function(){return A.detectUIRouter()?"$stateChangeStart":"$locationChangeStart"}},T={__PRIVATE__:A,open:function(r){var a,s=null;if(r=r||{},!(p&amp;&amp;r.name&amp;&amp;(s=r.name.toLowerCase().replace(/\s/g,"-")+"-dialog",this.isOpen(s)))){var h,E,P,O,M,D=e.copy(t),I=++i;s=s||"ngdialog"+I,l.push(s),void 0!==D.data&amp;&amp;(void 0===r.data&amp;&amp;(r.data={}),r.data=e.merge(e.copy(D.data),r.data)),e.extend(D,r),g[s]=h=_.defer(),c[s]=E=e.isObject(D.scope)?D.scope.$new():$.$new();var U=e.extend({},D.resolve);return e.forEach(U,(function(t,n){U[n]=e.isString(t)?x.get(t):x.invoke(t,null,null,n)})),_.all({template:(a=D.template||D.templateUrl,a?e.isString(a)&amp;&amp;D.plain?a:"boolean"!=typeof D.cache||D.cache?L(a,{cache:v}):L(a,{cache:!1}):"Empty template"),locals:_.all(U)}).then((function(t){var i=t.template,r=t.locals;D.showClose&amp;&amp;(i+='&lt;button aria-label="Dismiss" class="ngdialog-close"&gt;&lt;/button&gt;');var a=D.overlay?"":" ngdialog-no-overlay";if((P=n('&lt;div id="'+s+'" class="ngdialog'+a+'"&gt;&lt;/div&gt;')).html(D.overlay?'&lt;div class="ngdialog-overlay"&gt;&lt;/div&gt;&lt;div class="ngdialog-content" role="document"&gt;'+i+"&lt;/div&gt;":'&lt;div class="ngdialog-content" role="document"&gt;'+i+"&lt;/div&gt;"),P.data("$ngDialogOptions",D),E.ngDialogId=s,D.data&amp;&amp;e.isString(D.data)){var c=D.data.replace(/^\s*/,"")[0];E.ngDialogData="{"===c||"["===c?e.fromJson(D.data):new String(D.data),E.ngDialogData.ngDialogId=s}else D.data&amp;&amp;e.isObject(D.data)&amp;&amp;(E.ngDialogData=D.data,E.ngDialogData.ngDialogId=s);if(D.className&amp;&amp;P.addClass(D.className),D.appendClassName&amp;&amp;P.addClass(D.appendClassName),D.width&amp;&amp;(M=P[0].querySelector(".ngdialog-content"),e.isString(D.width)?M.style.width=D.width:M.style.width=D.width+"px"),D.height&amp;&amp;(M=P[0].querySelector(".ngdialog-content"),e.isString(D.height)?M.style.height=D.height:M.style.height=D.height+"px"),D.disableAnimation&amp;&amp;P.addClass("ngdialog-disabled-animation"),O=D.appendTo&amp;&amp;e.isString(D.appendTo)?e.element(document.querySelector(D.appendTo)):C.body,A.applyAriaAttributes(P,D),[{name:"$ngDialogPreCloseCallback",value:D.preCloseCallback},{name:"$ngDialogOnOpenCallback",value:D.onOpenCallback}].forEach((function(t){var n;t.value&amp;&amp;(e.isFunction(t.value)?n=t.value:e.isString(t.value)&amp;&amp;E&amp;&amp;(e.isFunction(E[t.value])?n=E[t.value]:E.$parent&amp;&amp;e.isFunction(E.$parent[t.value])?n=E.$parent[t.value]:$&amp;&amp;e.isFunction($[t.value])&amp;&amp;(n=$[t.value])),n&amp;&amp;P.data(t.name,n))})),E.closeThisDialog=function(e){A.closeDialog(P,e)},D.controller&amp;&amp;(e.isString(D.controller)||e.isArray(D.controller)||e.isFunction(D.controller))){var l;D.controllerAs&amp;&amp;e.isString(D.controllerAs)&amp;&amp;(l=D.controllerAs);var p=k(D.controller,e.extend(r,{$scope:E,$element:P}),!0,l);D.bindToController&amp;&amp;e.extend(p.instance,{ngDialogId:E.ngDialogId,ngDialogData:E.ngDialogData,closeThisDialog:E.closeThisDialog,confirm:E.confirm}),"function"==typeof p?P.data("$ngDialogControllerController",p()):P.data("$ngDialogControllerController",p)}return w((function(){var t=document.querySelectorAll(".ngdialog");A.deactivateAll(t),b(P)(E);var n=S.innerWidth-C.body.prop("clientWidth");C.html.addClass(D.bodyClassName),C.body.addClass(D.bodyClassName),u.push(D.bodyClassName);var o=n-(S.innerWidth-C.body.prop("clientWidth"));o&gt;0&amp;&amp;A.setBodyPadding(o),O.append(P),A.activate(P),D.trapFocus&amp;&amp;A.autoFocus(P),D.name?$.$broadcast("ngDialog.opened",{dialog:P,name:D.name}):$.$broadcast("ngDialog.opened",P);var i=P.data("$ngDialogOnOpenCallback");i&amp;&amp;e.isFunction(i)&amp;&amp;i.call(P)})),d||(C.body.bind("keydown",A.onDocumentKeydown),d=!0),D.closeByNavigation&amp;&amp;f.push(P),D.preserveFocus&amp;&amp;P.data("$ngDialogPreviousFocus",document.activeElement),o=function(e){var t=!!D.closeByDocument&amp;&amp;n(e.target).hasClass("ngdialog-overlay"),o=n(e.target).hasClass("ngdialog-close");(t||o)&amp;&amp;T.close(P.attr("id"),o?"$closeButton":"$document")},void 0!==S.Hammer?(E.hammerTime=S.Hammer(P[0])).on("tap",o):P.bind("click",o),m+=1,T})),{id:s,closePromise:h.promise,close:function(e){A.closeDialog(P,e)}}}function L(t,n){return(n=n||{}).headers=n.headers||{},e.extend(n.headers,{Accept:"text/html"}),$.$broadcast("ngDialog.templateLoading",t),y.get(t,n).then((function(e){return $.$broadcast("ngDialog.templateLoaded",t),e.data||""}))}},openConfirm:function(o){var i=_.defer(),r=e.copy(t);o=o||{},void 0!==r.data&amp;&amp;(void 0===o.data&amp;&amp;(o.data={}),o.data=e.merge(e.copy(r.data),o.data)),e.extend(r,o),r.scope=e.isObject(r.scope)?r.scope.$new():$.$new(),r.scope.confirm=function(e){i.resolve(e);var t=n(document.getElementById(a.id));A.performCloseDialog(t,e)};var a=T.open(r);if(a)return a.closePromise.then((function(e){return e?i.reject(e.value):i.reject()})),i.promise},isOpen:function(e){return n(document.getElementById(e)).length&gt;0},close:function(e,t){var o=n(document.getElementById(e));if(o.length)A.closeDialog(o,t);else if("$escape"===e){var i=l[l.length-1];(o=n(document.getElementById(i))).data("$ngDialogOptions").closeByEscape&amp;&amp;A.closeDialog(o,"$escape")}else T.closeAll(t);return T},closeAll:function(e){for(var t=document.querySelectorAll(".ngdialog"),o=t.length-1;o&gt;=0;o--){var i=t[o];A.closeDialog(n(i),e)}},getOpenDialogs:function(){return l},getDefaults:function(){return t}};e.forEach(["html","body"],(function(e){if(C[e]=h.find(e),s[e]){var t=A.getRouterLocationEventName();$.$on(t,(function(){C[e]=h.find(e)}))}}));var E=A.detectUIRouter();if("1.0.0+"===E)x.get("$transitions").onStart({},(function(e){for(;f.length&gt;0;){var t=f.pop();if(!1===A.closeDialog(t))return!1}}));else{var P="legacy"===E?"$stateChangeStart":"$locationChangeStart";$.$on(P,(function(e){for(;f.length&gt;0;){var t=f.pop();!1===A.closeDialog(t)&amp;&amp;e.preventDefault()}}))}return T}]})),t.directive("ngDialog",["ngDialog",function(t){return{restrict:"A",scope:{ngDialogScope:"="},link:function(n,o,i){o.on("click",(function(o){o.preventDefault();var r=e.isDefined(n.ngDialogScope)?n.ngDialogScope:"noScope";e.isDefined(i.ngDialogClosePrevious)&amp;&amp;t.close(i.ngDialogClosePrevious);var a=t.getDefaults();t.open({template:i.ngDialog,className:i.ngDialogClass||a.className,appendClassName:i.ngDialogAppendClass,controller:i.ngDialogController,controllerAs:i.ngDialogControllerAs,bindToController:i.ngDialogBindToController,disableAnimation:i.ngDialogDisableAnimation,scope:r,data:i.ngDialogData,showClose:"false"!==i.ngDialogShowClose&amp;&amp;("true"===i.ngDialogShowClose||a.showClose),closeByDocument:"false"!==i.ngDialogCloseByDocument&amp;&amp;("true"===i.ngDialogCloseByDocument||a.closeByDocument),closeByEscape:"false"!==i.ngDialogCloseByEscape&amp;&amp;("true"===i.ngDialogCloseByEscape||a.closeByEscape),overlay:"false"!==i.ngDialogOverlay&amp;&amp;("true"===i.ngDialogOverlay||a.overlay),preCloseCallback:i.ngDialogPreCloseCallback||a.preCloseCallback,onOpenCallback:i.ngDialogOnOpenCallback||a.onOpenCallback,bodyClassName:i.ngDialogBodyClass||a.bodyClassName})}))}}}]),t},e.exports?("undefined"==typeof angular?a(n("4m0D")):a(angular),e.exports="ngDialog"):(i=[n("4m0D")],void 0===(r="function"==typeof(o=a)?o.apply(t,i):o)||(e.exports=r))},QlQg:function(e,t){var n;
/**!
 * AngularJS file upload directives and services. Supports: file upload/drop/paste, resume, cancel/abort,
 * progress, resize, thumbnail, preview, validation and CORS
 * FileAPI Flash shim for old browsers not supporting FormData
 * @author  Danial  &lt;danial.farid@gmail.com&gt;
 * @version 12.2.13
 */
!function(){function e(e,t){window.XMLHttpRequest.prototype[e]=t(window.XMLHttpRequest.prototype[e])}function t(e,t,n){try{Object.defineProperty(e,t,{get:n})}catch(e){}}if(window.FileAPI||(window.FileAPI={}),!window.XMLHttpRequest)throw"AJAX is not supported. XMLHttpRequest is not defined.";if(FileAPI.shouldLoad=!window.FormData||FileAPI.forceLoad,FileAPI.shouldLoad){var n=function(e){if(!e.__listeners){e.upload||(e.upload={}),e.__listeners=[];var t=e.upload.addEventListener;e.upload.addEventListener=function(n,o){e.__listeners[n]=o,t&amp;&amp;t.apply(this,arguments)}}};e("open",(function(e){return function(t,o,i){n(this),this.__url=o;try{e.apply(this,[t,o,i])}catch(n){n.message.indexOf("Access is denied")&gt;-1&amp;&amp;(this.__origError=n,e.apply(this,[t,"_fix_for_ie_crossdomain__",i]))}}})),e("getResponseHeader",(function(e){return function(t){return this.__fileApiXHR&amp;&amp;this.__fileApiXHR.getResponseHeader?this.__fileApiXHR.getResponseHeader(t):null==e?null:e.apply(this,[t])}})),e("getAllResponseHeaders",(function(e){return function(){return this.__fileApiXHR&amp;&amp;this.__fileApiXHR.getAllResponseHeaders?this.__fileApiXHR.getAllResponseHeaders():null==e?null:e.apply(this)}})),e("abort",(function(e){return function(){return this.__fileApiXHR&amp;&amp;this.__fileApiXHR.abort?this.__fileApiXHR.abort():null==e?null:e.apply(this)}})),e("setRequestHeader",(function(e){return function(t,o){if("__setXHR_"===t){n(this);var i=o(this);i instanceof Function&amp;&amp;i(this)}else this.__requestHeaders=this.__requestHeaders||{},this.__requestHeaders[t]=o,e.apply(this,arguments)}})),e("send",(function(e){return function(){var n=this;if(arguments[0]&amp;&amp;arguments[0].__isFileAPIShim){for(var o=arguments[0],i={url:n.__url,jsonp:!1,cache:!0,complete:function(e,o){e&amp;&amp;angular.isString(e)&amp;&amp;-1!==e.indexOf("#2174")&amp;&amp;(e=null),n.__completed=!0,!e&amp;&amp;n.__listeners.load&amp;&amp;n.__listeners.load({type:"load",loaded:n.__loaded,total:n.__total,target:n,lengthComputable:!0}),!e&amp;&amp;n.__listeners.loadend&amp;&amp;n.__listeners.loadend({type:"loadend",loaded:n.__loaded,total:n.__total,target:n,lengthComputable:!0}),"abort"===e&amp;&amp;n.__listeners.abort&amp;&amp;n.__listeners.abort({type:"abort",loaded:n.__loaded,total:n.__total,target:n,lengthComputable:!0}),void 0!==o.status&amp;&amp;t(n,"status",(function(){return 0===o.status&amp;&amp;e&amp;&amp;"abort"!==e?500:o.status})),void 0!==o.statusText&amp;&amp;t(n,"statusText",(function(){return o.statusText})),t(n,"readyState",(function(){return 4})),void 0!==o.response&amp;&amp;t(n,"response",(function(){return o.response}));var i=o.responseText||(e&amp;&amp;0===o.status&amp;&amp;"abort"!==e?e:void 0);t(n,"responseText",(function(){return i})),t(n,"response",(function(){return i})),e&amp;&amp;t(n,"err",(function(){return e})),n.__fileApiXHR=o,n.onreadystatechange&amp;&amp;n.onreadystatechange(),n.onload&amp;&amp;n.onload()},progress:function(e){if(e.target=n,n.__listeners.progress&amp;&amp;n.__listeners.progress(e),n.__total=e.total,n.__loaded=e.loaded,e.total===e.loaded){var t=this;setTimeout((function(){n.__completed||(n.getAllResponseHeaders=function(){},t.complete(null,{status:204,statusText:"No Content"}))}),FileAPI.noContentTimeout||1e4)}},headers:n.__requestHeaders,data:{},files:{}},r=0;r&lt;o.data.length;r++){var a=o.data[r];null!=a.val&amp;&amp;null!=a.val.name&amp;&amp;null!=a.val.size&amp;&amp;null!=a.val.type?i.files[a.key]=a.val:i.data[a.key]=a.val}setTimeout((function(){if(!FileAPI.hasFlash)throw'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';n.__fileApiXHR=FileAPI.upload(i)}),1)}else{if(this.__origError)throw this.__origError;e.apply(n,arguments)}}})),window.XMLHttpRequest.__isFileAPIShim=!0,window.FormData=FormData=function(){return{append:function(e,t,n){t.__isFileAPIBlobShim&amp;&amp;(t=t.data[0]),this.data.push({key:e,val:t,name:n})},data:[],__isFileAPIShim:!0}},window.Blob=Blob=function(e){return{data:e,__isFileAPIBlobShim:!0}}}}(),function(){function e(){try{if(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return!0}catch(e){if(void 0!==navigator.mimeTypes["application/x-shockwave-flash"])return!0}return!1}function t(e){var t=0,n=0;if(window.jQuery)return jQuery(e).offset();if(e.offsetParent)do{t+=e.offsetLeft-e.scrollLeft,n+=e.offsetTop-e.scrollTop,e=e.offsetParent}while(e);return{left:t,top:n}}if(FileAPI.shouldLoad){if(FileAPI.hasFlash=e(),FileAPI.forceLoad&amp;&amp;(FileAPI.html5=!1),!FileAPI.upload){var n,o,i,r,a,s=document.createElement("script"),c=document.getElementsByTagName("script");if(window.FileAPI.jsUrl)n=window.FileAPI.jsUrl;else if(window.FileAPI.jsPath)o=window.FileAPI.jsPath;else for(i=0;i&lt;c.length;i++)if((r=(a=c[i].src).search(/\/ng\-file\-upload[\-a-zA-z0-9\.]*\.js/))&gt;-1){o=a.substring(0,r+1);break}null==FileAPI.staticPath&amp;&amp;(FileAPI.staticPath=o),s.setAttribute("src",n||o+"FileAPI.min.js"),document.getElementsByTagName("head")[0].appendChild(s)}FileAPI.ngfFixIE=function(n,o,i){if(!e())throw'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';n.bind("mouseenter",(function(){var e=o.parent();n.attr("disabled")?e&amp;&amp;e.removeClass("js-fileapi-wrapper"):(o.attr("__ngf_flash_")||(o.unbind("change"),o.unbind("click"),o.bind("change",(function(e){r.apply(this,[e]),i.apply(this,[e])})),o.attr("__ngf_flash_","true")),e.addClass("js-fileapi-wrapper"),function(e){return"input"===e[0].tagName.toLowerCase()&amp;&amp;e.attr("type")&amp;&amp;"file"===e.attr("type").toLowerCase()}(n)||(e.css("position","absolute").css("top",t(n[0]).top+"px").css("left",t(n[0]).left+"px").css("width",n[0].offsetWidth+"px").css("height",n[0].offsetHeight+"px").css("filter","alpha(opacity=0)").css("display",n.css("display")).css("overflow","hidden").css("z-index","900000").css("visibility","visible"),o.css("width",n[0].offsetWidth+"px").css("height",n[0].offsetHeight+"px").css("position","absolute").css("top","0px").css("left","0px")))}));var r=function(e){for(var t=FileAPI.getFiles(e),n=0;n&lt;t.length;n++)void 0===t[n].size&amp;&amp;(t[n].size=0),void 0===t[n].name&amp;&amp;(t[n].name="file"),void 0===t[n].type&amp;&amp;(t[n].type="undefined");e.target||(e.target={}),e.target.files=t,e.target.files!==t&amp;&amp;(e.__files_=t),(e.__files_||e.target.files).item=function(t){return(e.__files_||e.target.files)[t]||null}}},FileAPI.disableFileInput=function(e,t){t?e.removeClass("js-fileapi-wrapper"):e.addClass("js-fileapi-wrapper")}}}(),window.FileReader||(window.FileReader=function(){var e=this,t=!1;this.listeners={},this.addEventListener=function(t,n){e.listeners[t]=e.listeners[t]||[],e.listeners[t].push(n)},this.removeEventListener=function(t,n){e.listeners[t]&amp;&amp;e.listeners[t].splice(e.listeners[t].indexOf(n),1)},this.dispatchEvent=function(t){var n=e.listeners[t.type];if(n)for(var o=0;o&lt;n.length;o++)n[o].call(e,t)},this.onabort=this.onerror=this.onload=this.onloadstart=this.onloadend=this.onprogress=null;var n=function(t,n){var o={type:t,target:e,loaded:n.loaded,total:n.total,error:n.error};return null!=n.result&amp;&amp;(o.target.result=n.result),o},o=function(o){var i;t||(t=!0,e.onloadstart&amp;&amp;e.onloadstart(n("loadstart",o))),"load"===o.type?(e.onloadend&amp;&amp;e.onloadend(n("loadend",o)),i=n("load",o),e.onload&amp;&amp;e.onload(i),e.dispatchEvent(i)):"progress"===o.type?(i=n("progress",o),e.onprogress&amp;&amp;e.onprogress(i),e.dispatchEvent(i)):(i=n("error",o),e.onerror&amp;&amp;e.onerror(i),e.dispatchEvent(i))};this.readAsDataURL=function(e){FileAPI.readAsDataURL(e,o)},this.readAsText=function(e){FileAPI.readAsText(e,o)}})
/**!
 * AngularJS file upload directives and services. Supoorts: file upload/drop/paste, resume, cancel/abort,
 * progress, resize, thumbnail, preview, validation and CORS
 * @author  Danial  &lt;danial.farid@gmail.com&gt;
 * @version 12.2.13
 */,!window.XMLHttpRequest||window.FileAPI&amp;&amp;FileAPI.shouldLoad||(window.XMLHttpRequest.prototype.setRequestHeader=(n=window.XMLHttpRequest.prototype.setRequestHeader,function(e,t){if("__setXHR_"===e){var o=t(this);o instanceof Function&amp;&amp;o(this)}else n.apply(this,arguments)}));var o=angular.module("ngFileUpload",[]);o.version="12.2.13",o.service("UploadBase",["$http","$q","$timeout",function(e,t,n){var i=this;i.promisesCount=0,this.isResumeSupported=function(){return window.Blob&amp;&amp;window.Blob.prototype.slice};var r=this.isResumeSupported();function a(o){o.method=o.method||"POST",o.headers=o.headers||{};var a=o._deferred=o._deferred||t.defer(),s=a.promise;function c(e){a.notify&amp;&amp;a.notify(e),s.progressFunc&amp;&amp;n((function(){s.progressFunc(e)}))}function l(e){return null!=o._start&amp;&amp;r?{loaded:e.loaded+o._start,total:o._file&amp;&amp;o._file.size||e.total,type:e.type,config:o,lengthComputable:!0,target:e.target}:e}function u(){e(o).then((function(e){if(r&amp;&amp;o._chunkSize&amp;&amp;!o._finished&amp;&amp;o._file){var t=o._file&amp;&amp;o._file.size||0;c({loaded:Math.min(o._end,t),total:t,config:o,type:"progress"}),i.upload(o,!0)}else o._finished&amp;&amp;delete o._finished,a.resolve(e)}),(function(e){a.reject(e)}),(function(e){a.notify(e)}))}return o.disableProgress||(o.headers.__setXHR_=function(){return function(e){e&amp;&amp;e.upload&amp;&amp;e.upload.addEventListener&amp;&amp;(o.__XHR=e,o.xhrFn&amp;&amp;o.xhrFn(e),e.upload.addEventListener("progress",(function(e){e.config=o,c(l(e))}),!1),e.upload.addEventListener("load",(function(e){e.lengthComputable&amp;&amp;(e.config=o,c(l(e)))}),!1))}}),r?o._chunkSize&amp;&amp;o._end&amp;&amp;!o._finished?(o._start=o._end,o._end+=o._chunkSize,u()):o.resumeSizeUrl?e.get(o.resumeSizeUrl).then((function(e){o.resumeSizeResponseReader?o._start=o.resumeSizeResponseReader(e.data):o._start=parseInt((null==e.data.size?e.data:e.data.size).toString()),o._chunkSize&amp;&amp;(o._end=o._start+o._chunkSize),u()}),(function(e){throw e})):o.resumeSize?o.resumeSize().then((function(e){o._start=e,o._chunkSize&amp;&amp;(o._end=o._start+o._chunkSize),u()}),(function(e){throw e})):(o._chunkSize&amp;&amp;(o._start=0,o._end=o._start+o._chunkSize),u()):u(),s.success=function(e){return s.then((function(t){e(t.data,t.status,t.headers,o)})),s},s.error=function(e){return s.then(null,(function(t){e(t.data,t.status,t.headers,o)})),s},s.progress=function(e){return s.progressFunc=e,s.then(null,null,(function(t){e(t)})),s},s.abort=s.pause=function(){return o.__XHR&amp;&amp;n((function(){o.__XHR.abort()})),s},s.xhr=function(e){var t;return o.xhrFn=(t=o.xhrFn,function(){t&amp;&amp;t.apply(s,arguments),e.apply(s,arguments)}),s},i.promisesCount++,s.finally&amp;&amp;s.finally instanceof Function&amp;&amp;s.finally((function(){i.promisesCount--})),s}function s(e){var t={};for(var n in e)e.hasOwnProperty(n)&amp;&amp;(t[n]=e[n]);return t}this.isUploadInProgress=function(){return i.promisesCount&gt;0},this.rename=function(e,t){return e.ngfName=t,e},this.jsonBlob=function(e){null==e||angular.isString(e)||(e=JSON.stringify(e));var t=new window.Blob([e],{type:"application/json"});return t._ngfBlob=!0,t},this.json=function(e){return angular.toJson(e)},this.isFile=function(e){return null!=e&amp;&amp;(e instanceof window.Blob||e.flashId&amp;&amp;e.name&amp;&amp;e.size)},this.upload=function(e,t){function n(t,o,a){if(void 0!==o)if(angular.isDate(o)&amp;&amp;(o=o.toISOString()),angular.isString(o))t.append(a,o);else if(i.isFile(o)){var s=function(t,n){if(t._ngfBlob)return t;if(e._file=e._file||t,null!=e._start&amp;&amp;r){e._end&amp;&amp;e._end&gt;=t.size&amp;&amp;(e._finished=!0,e._end=t.size);var o=t.slice(e._start,e._end||t.size);return o.name=t.name,o.ngfName=t.ngfName,e._chunkSize&amp;&amp;(n.append("_chunkSize",e._chunkSize),n.append("_currentChunkSize",e._end-e._start),n.append("_chunkNumber",Math.floor(e._start/e._chunkSize)),n.append("_totalSize",e._file.size)),o}return t}(o,t),c=a.split(",");c[1]&amp;&amp;(s.ngfName=c[1].replace(/^\s+|\s+$/g,""),a=c[0]),e._fileKey=e._fileKey||a,t.append(a,s,s.ngfName||s.name)}else if(angular.isObject(o)){if(o.$$ngfCircularDetection)throw"ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: "+a;o.$$ngfCircularDetection=!0;try{for(var l in o)if(o.hasOwnProperty(l)&amp;&amp;"$$ngfCircularDetection"!==l){var u=null==e.objectKey?"[i]":e.objectKey;o.length&amp;&amp;parseInt(l)&gt;-1&amp;&amp;(u=null==e.arrayKey?u:e.arrayKey),n(t,o[l],a+u.replace(/[ik]/g,l))}}finally{delete o.$$ngfCircularDetection}}else t.append(a,o)}return t||(e=s(e)),e._isDigested||(e._isDigested=!0,e._chunkSize=i.translateScalars(e.resumeChunkSize),e._chunkSize=e._chunkSize?parseInt(e._chunkSize.toString()):null,e.headers=e.headers||{},e.headers["Content-Type"]=void 0,e.transformRequest=e.transformRequest?angular.isArray(e.transformRequest)?e.transformRequest:[e.transformRequest]:[],e.transformRequest.push((function(t){var o,i=new window.FormData;for(o in t=t||e.fields||{},e.file&amp;&amp;(t.file=e.file),t)if(t.hasOwnProperty(o)){var r=t[o];e.formDataAppender?e.formDataAppender(i,o,r):n(i,r,o)}return i}))),a(e)},this.http=function(t){return(t=s(t)).transformRequest=t.transformRequest||function(t){return window.ArrayBuffer&amp;&amp;t instanceof window.ArrayBuffer||t instanceof window.Blob?t:e.defaults.transformRequest[0].apply(this,arguments)},t._chunkSize=i.translateScalars(t.resumeChunkSize),t._chunkSize=t._chunkSize?parseInt(t._chunkSize.toString()):null,a(t)},this.translateScalars=function(e){if(angular.isString(e)){if(e.search(/kb/i)===e.length-2)return parseFloat(1024*e.substring(0,e.length-2));if(e.search(/mb/i)===e.length-2)return parseFloat(1048576*e.substring(0,e.length-2));if(e.search(/gb/i)===e.length-2)return parseFloat(1073741824*e.substring(0,e.length-2));if(e.search(/b/i)===e.length-1)return parseFloat(e.substring(0,e.length-1));if(e.search(/s/i)===e.length-1)return parseFloat(e.substring(0,e.length-1));if(e.search(/m/i)===e.length-1)return parseFloat(60*e.substring(0,e.length-1));if(e.search(/h/i)===e.length-1)return parseFloat(3600*e.substring(0,e.length-1))}return e},this.urlToBlob=function(n){var o=t.defer();return e({url:n,method:"get",responseType:"arraybuffer"}).then((function(e){var t=new Uint8Array(e.data),i=e.headers("content-type")||"image/WebP",r=new window.Blob([t],{type:i}),a=n.match(/.*\/(.+?)(\?.*)?$/);a.length&gt;1&amp;&amp;(r.name=a[1]),o.resolve(r)}),(function(e){o.reject(e)})),o.promise},this.setDefaults=function(e){this.defaults=e||{}},this.defaults={},this.version=o.version}]),o.service("Upload",["$parse","$timeout","$compile","$q","UploadExif",function(e,t,n,o,i){var r=i;function a(e,t,n,i,a){var s=[r.emptyPromise()];function c(o,c){if(0===o.type.indexOf("image")){if(e.pattern&amp;&amp;!r.validatePattern(o,e.pattern))return;e.resizeIf=function(e,t){return r.attrGetter("ngfResizeIf",n,i,{$width:e,$height:t,$file:o})};var l=r.resize(o,e);s.push(l),l.then((function(e){t.splice(c,1,e)}),(function(e){o.$error="resize",(o.$errorMessages=o.$errorMessages||{}).resize=!0,o.$errorParam=(e?(e.message?e.message:e)+": ":"")+(o&amp;&amp;o.name),a.$ngfValidations.push({name:"resize",valid:!1}),r.applyModelValidation(a,t)}))}}for(var l=0;l&lt;t.length;l++)c(t[l],l);return o.all(s)}return r.getAttrWithDefaults=function(e,t){if(null!=e[t])return e[t];var n=r.defaults[t];return null==n?n:angular.isString(n)?n:JSON.stringify(n)},r.attrGetter=function(t,n,o,i){var r=this.getAttrWithDefaults(n,t);if(!o)return r;try{return i?e(r)(o,i):e(r)(o)}catch(e){if(t.search(/min|max|pattern/i))return r;throw e}},r.shouldUpdateOn=function(e,t,n){var o=r.attrGetter("ngfModelOptions",t,n);return!o||!o.updateOn||o.updateOn.split(" ").indexOf(e)&gt;-1},r.emptyPromise=function(){var e=o.defer(),n=arguments;return t((function(){e.resolve.apply(e,n)})),e.promise},r.rejectPromise=function(){var e=o.defer(),n=arguments;return t((function(){e.reject.apply(e,n)})),e.promise},r.happyPromise=function(e,n){var i=o.defer();return e.then((function(e){i.resolve(e)}),(function(e){t((function(){throw e})),i.resolve(n)})),i.promise},r.updateModel=function(n,i,s,c,l,u,d){function p(o,a,l,d,p){i.$$ngfPrevValidFiles=o,i.$$ngfPrevInvalidFiles=a;var f=o&amp;&amp;o.length?o[0]:null,m=a&amp;&amp;a.length?a[0]:null;n&amp;&amp;(r.applyModelValidation(n,o),n.$setViewValue(p?f:o)),c&amp;&amp;e(c)(s,{$files:o,$file:f,$newFiles:l,$duplicateFiles:d,$invalidFiles:a,$invalidFile:m,$event:u});var g=r.attrGetter("ngfModelInvalid",i);g&amp;&amp;t((function(){e(g).assign(s,p?m:a)})),t((function(){}))}var f,m,g,h,v=[],b=[],_=[];function y(){function e(){t((function(){p($?m.concat(_):_,$?g.concat(b):b,l,v,w)}),k&amp;&amp;k.debounce?k.debounce.change||k.debounce:0)}var c=S?f:_;(function(e,t,n,i){var s=r.attrGetter("ngfResize",t,n);if(!s||!r.isResizeSupported()||!e.length)return r.emptyPromise();if(s instanceof Function){var c=o.defer();return s(e).then((function(o){a(o,e,t,n,i).then((function(e){c.resolve(e)}),(function(e){c.reject(e)}))}),(function(e){c.reject(e)}))}return a(s,e,t,n,i)})(c,i,s,n).then((function(){S?r.validate(f,$?m.length:0,n,i,s).then((function(t){_=t.validsFiles,b=t.invalidsFiles,e()})):e()}),(function(){for(var t=0;t&lt;c.length;t++){var n=c[t];if("resize"===n.$error){var o=_.indexOf(n);o&gt;-1&amp;&amp;(_.splice(o,1),b.push(n)),e()}}}))}m=i.$$ngfPrevValidFiles||[],g=i.$$ngfPrevInvalidFiles||[],n&amp;&amp;n.$modelValue&amp;&amp;(h=n.$modelValue,m=angular.isArray(h)?h:[h]);var $=r.attrGetter("ngfKeep",i,s);f=(l||[]).slice(0),"distinct"!==$&amp;&amp;!0!==r.attrGetter("ngfKeepDistinct",i,s)||function(){function e(e,t){return e.name===t.name&amp;&amp;(e.$ngfOrigSize||e.size)===(t.$ngfOrigSize||t.size)&amp;&amp;e.type===t.type}function t(t){var n;for(n=0;n&lt;m.length;n++)if(e(t,m[n]))return!0;for(n=0;n&lt;g.length;n++)if(e(t,g[n]))return!0;return!1}if(l){f=[],v=[];for(var n=0;n&lt;l.length;n++)t(l[n])?v.push(l[n]):f.push(l[n])}}();var w=!$&amp;&amp;!r.attrGetter("ngfMultiple",i,s)&amp;&amp;!r.attrGetter("multiple",i);if(!$||f.length){r.attrGetter("ngfBeforeModelChange",i,s,{$files:l,$file:l&amp;&amp;l.length?l[0]:null,$newFiles:f,$duplicateFiles:v,$event:u});var S=r.attrGetter("ngfValidateAfterResize",i,s),k=r.attrGetter("ngfModelOptions",i,s);r.validate(f,$?m.length:0,n,i,s).then((function(e){d?p(f,[],l,v,w):(k&amp;&amp;k.allowInvalid||S?_=f:(_=e.validFiles,b=e.invalidFiles),r.attrGetter("ngfFixOrientation",i,s)&amp;&amp;r.isExifSupported()?function(e,t,n){var i=[r.emptyPromise()];return angular.forEach(e,(function(o,a){0===o.type.indexOf("image/jpeg")&amp;&amp;r.attrGetter("ngfFixOrientation",t,n,{$file:o})&amp;&amp;i.push(r.happyPromise(r.applyExifRotation(o),o).then((function(t){e.splice(a,1,t)})))})),o.all(i)}(_,i,s).then((function(){y()})):y())}))}},r}]),o.directive("ngfSelect",["$parse","$timeout","$compile","Upload",function(e,t,n,o){var i=[];function r(e,t,n,r,a,s,c,l){var u=function(e,t){return l.attrGetter(e,n,t)};function d(){return"input"===t[0].tagName.toLowerCase()&amp;&amp;n.type&amp;&amp;"file"===n.type.toLowerCase()}function p(){return u("ngfChange")||u("ngfSelect")}function f(t){if(l.shouldUpdateOn("change",n,e)){var o=t.__files_||t.target&amp;&amp;t.target.files,i=[];if(!o)return;for(var a=0;a&lt;o.length;a++)i.push(o[a]);l.updateModel(r,n,e,p(),i.length?i:null,t)}}l.registerModelChangeValidator(r,n,e);var m=[];u("ngfMultiple")&amp;&amp;m.push(e.$watch(u("ngfMultiple"),(function(){v.attr("multiple",u("ngfMultiple",e))}))),u("ngfCapture")&amp;&amp;m.push(e.$watch(u("ngfCapture"),(function(){v.attr("capture",u("ngfCapture",e))}))),u("ngfAccept")&amp;&amp;m.push(e.$watch(u("ngfAccept"),(function(){v.attr("accept",u("ngfAccept",e))}))),m.push(n.$observe("accept",(function(){v.attr("accept",u("accept"))})));var g=0,h=0;var v=t;function b(t){l.shouldUpdateOn("click",n,e)&amp;&amp;v.val()&amp;&amp;(v.val(null),l.updateModel(r,n,e,p(),null,t,!0))}d()||(v=function(){if(d())return t;var e=angular.element('&lt;input type="file"&gt;'),o=angular.element("&lt;label&gt;upload&lt;/label&gt;");return o.css("visibility","hidden").css("position","absolute").css("overflow","hidden").css("width","0px").css("height","0px").css("border","none").css("margin","0px").css("padding","0px").attr("tabindex","-1"),function(e,o){function i(t){e.attr("id","ngf-"+t),o.attr("id","ngf-label-"+t)}for(var r=0;r&lt;t[0].attributes.length;r++){var a=t[0].attributes[r];"type"!==a.name&amp;&amp;"class"!==a.name&amp;&amp;"style"!==a.name&amp;&amp;("id"===a.name?(i(a.value),m.push(n.$observe("id",i))):e.attr(a.name,a.value||"required"!==a.name&amp;&amp;"multiple"!==a.name?a.value:a.name))}}(e,o),i.push({el:t,ref:o}),document.body.appendChild(o.append(e)[0]),e}()),v.bind("change",f),d()?t.bind("click",b):t.bind("click touchstart touchend",(function(n){if(t.attr("disabled"))return!1;if(!u("ngfSelectDisabled",e)){var r=function(e){var t=e.changedTouches||e.originalEvent&amp;&amp;e.originalEvent.changedTouches;if(t){if("touchstart"===e.type)return h=t[0].clientX,g=t[0].clientY,!0;if("touchend"===e.type){var n=t[0].clientX,o=t[0].clientY;if(Math.abs(n-h)&gt;20||Math.abs(o-g)&gt;20)return e.stopPropagation(),e.preventDefault(),!1}return!0}}(n);if(null!=r)return r;b(n);try{d()||document.body.contains(v[0])||(i.push({el:t,ref:v.parent()}),document.body.appendChild(v.parent()[0]),v.bind("change",f))}catch(e){}return!function(e){var t=e.match(/Android[^\d]*(\d+)\.(\d+)/);if(t&amp;&amp;t.length&gt;2){var n=o.defaults.androidFixMinorVersion||4;return parseInt(t[1])&lt;4||parseInt(t[1])===n&amp;&amp;parseInt(t[2])&lt;n}return-1===e.indexOf("Chrome")&amp;&amp;/.*Windows.*Safari.*/.test(e)}(navigator.userAgent)?v[0].click():setTimeout((function(){v[0].click()}),0),!1}})),-1!==navigator.appVersion.indexOf("MSIE 10")&amp;&amp;v.bind("click",(function e(t){if(v&amp;&amp;!v.attr("__ngf_ie10_Fix_")){if(!v[0].parentNode)return void(v=null);t.preventDefault(),t.stopPropagation(),v.unbind("click");var n=v.clone();return v.replaceWith(n),(v=n).attr("__ngf_ie10_Fix_","true"),v.bind("change",f),v.bind("click",e),v[0].click(),!1}v.removeAttr("__ngf_ie10_Fix_")})),r&amp;&amp;r.$formatters.push((function(e){return null!=e&amp;&amp;0!==e.length||v.val()&amp;&amp;v.val(null),e})),e.$on("$destroy",(function(){d()||v.parent().remove(),angular.forEach(m,(function(e){e()}))})),s((function(){for(var e=0;e&lt;i.length;e++){var t=i[e];document.body.contains(t.el[0])||(i.splice(e,1),t.ref.remove())}})),window.FileAPI&amp;&amp;window.FileAPI.ngfFixIE&amp;&amp;window.FileAPI.ngfFixIE(t,v,f)}return{restrict:"AEC",require:"?ngModel",link:function(e,n,i,a){r(e,n,i,a,0,t,0,o)}}}]),function(){function e(e,t,n,o,i,r,a,s){function c(r){var a=e.attrGetter("ngfNoObjectUrl",i,n);e.dataUrl(r,a).finally((function(){t((function(){var e=(a?r.$ngfDataUrl:r.$ngfBlobUrl)||r.$ngfDataUrl;s?o.css("background-image","url('"+(e||"")+"')"):o.attr("src",e),e?o.removeClass("ng-hide"):o.addClass("ng-hide")}))}))}t((function(){var t=n.$watch(i[r],(function(t){var l,u=a;if("ngfThumbnail"===r&amp;&amp;(u||(u={width:o[0].naturalWidth||o[0].clientWidth,height:o[0].naturalHeight||o[0].clientHeight}),0===u.width&amp;&amp;window.getComputedStyle)){var d=getComputedStyle(o[0]);d.width&amp;&amp;d.width.indexOf("px")&gt;-1&amp;&amp;d.height&amp;&amp;d.height.indexOf("px")&gt;-1&amp;&amp;(u={width:parseInt(d.width.slice(0,-2)),height:parseInt(d.height.slice(0,-2))})}if(angular.isString(t))return o.removeClass("ng-hide"),s?o.css("background-image","url('"+t+"')"):o.attr("src",t);!t||!t.type||0!==t.type.search("img"===(l=o[0]).tagName.toLowerCase()?"image":"audio"===l.tagName.toLowerCase()?"audio":"video"===l.tagName.toLowerCase()?"video":/./)||s&amp;&amp;0!==t.type.indexOf("image")?o.addClass("ng-hide"):u&amp;&amp;e.isResizeSupported()?(u.resizeIf=function(o,r){return e.attrGetter("ngfResizeIf",i,n,{$width:o,$height:r,$file:t})},e.resize(t,u).then((function(e){c(e)}),(function(e){throw e}))):c(t)}));n.$on("$destroy",(function(){t()}))}))}o.service("UploadDataUrl",["UploadBase","$timeout","$q",function(e,t,n){var o=e;return o.base64DataUrl=function(e){if(angular.isArray(e)){var t=n.defer(),i=0;return angular.forEach(e,(function(n){o.dataUrl(n,!0).finally((function(){if(++i===e.length){var n=[];angular.forEach(e,(function(e){n.push(e.$ngfDataUrl)})),t.resolve(n,e)}}))})),t.promise}return o.dataUrl(e,!0)},o.dataUrl=function(e,i){if(!e)return o.emptyPromise(e,e);if(i&amp;&amp;null!=e.$ngfDataUrl||!i&amp;&amp;null!=e.$ngfBlobUrl)return o.emptyPromise(i?e.$ngfDataUrl:e.$ngfBlobUrl,e);var r=i?e.$$ngfDataUrlPromise:e.$$ngfBlobUrlPromise;if(r)return r;var a=n.defer();return t((function(){if(window.FileReader&amp;&amp;e&amp;&amp;(!window.FileAPI||-1===navigator.userAgent.indexOf("MSIE 8")||e.size&lt;2e4)&amp;&amp;(!window.FileAPI||-1===navigator.userAgent.indexOf("MSIE 9")||e.size&lt;4e6)){var n=window.URL||window.webkitURL;if(n&amp;&amp;n.createObjectURL&amp;&amp;!i){var r;try{r=n.createObjectURL(e)}catch(n){return void t((function(){e.$ngfBlobUrl="",a.reject()}))}t((function(){if(e.$ngfBlobUrl=r,r){a.resolve(r,e),o.blobUrls=o.blobUrls||[],o.blobUrlsTotalSize=o.blobUrlsTotalSize||0,o.blobUrls.push({url:r,size:e.size}),o.blobUrlsTotalSize+=e.size||0;for(var t=o.defaults.blobUrlsMaxMemory||268435456,i=o.defaults.blobUrlsMaxQueueSize||200;(o.blobUrlsTotalSize&gt;t||o.blobUrls.length&gt;i)&amp;&amp;o.blobUrls.length&gt;1;){var s=o.blobUrls.splice(0,1)[0];n.revokeObjectURL(s.url),o.blobUrlsTotalSize-=s.size}}}))}else{var s=new FileReader;s.onload=function(n){t((function(){e.$ngfDataUrl=n.target.result,a.resolve(n.target.result,e),t((function(){delete e.$ngfDataUrl}),1e3)}))},s.onerror=function(){t((function(){e.$ngfDataUrl="",a.reject()}))},s.readAsDataURL(e)}}else t((function(){e[i?"$ngfDataUrl":"$ngfBlobUrl"]="",a.reject()}))})),(r=i?e.$$ngfDataUrlPromise=a.promise:e.$$ngfBlobUrlPromise=a.promise).finally((function(){delete e[i?"$$ngfDataUrlPromise":"$$ngfBlobUrlPromise"]})),r},o}]),o.directive("ngfSrc",["Upload","$timeout",function(t,n){return{restrict:"AE",link:function(o,i,r){e(t,n,o,i,r,"ngfSrc",t.attrGetter("ngfResize",r,o),!1)}}}]),o.directive("ngfBackground",["Upload","$timeout",function(t,n){return{restrict:"AE",link:function(o,i,r){e(t,n,o,i,r,"ngfBackground",t.attrGetter("ngfResize",r,o),!0)}}}]),o.directive("ngfThumbnail",["Upload","$timeout",function(t,n){return{restrict:"AE",link:function(o,i,r){var a=t.attrGetter("ngfSize",r,o);e(t,n,o,i,r,"ngfThumbnail",a,t.attrGetter("ngfAsBackground",r,o))}}}]),o.config(["$compileProvider",function(e){e.imgSrcSanitizationWhitelist&amp;&amp;e.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/),e.aHrefSanitizationWhitelist&amp;&amp;e.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/)}]),o.filter("ngfDataUrl",["UploadDataUrl","$sce",function(e,t){return function(n,o,i){if(angular.isString(n))return t.trustAsResourceUrl(n);var r=n&amp;&amp;((o?n.$ngfDataUrl:n.$ngfBlobUrl)||n.$ngfDataUrl);return n&amp;&amp;!r?(!n.$ngfDataUrlFilterInProgress&amp;&amp;angular.isObject(n)&amp;&amp;(n.$ngfDataUrlFilterInProgress=!0,e.dataUrl(n,o)),""):(n&amp;&amp;delete n.$ngfDataUrlFilterInProgress,(n&amp;&amp;r?i?t.trustAsResourceUrl(r):r:n)||"")}}])}(),o.service("UploadValidate",["UploadDataUrl","$q","$timeout",function(e,t,n){var o=e;return o.validatePattern=function(e,t){if(!t)return!0;var n=function e(t){var n="",o=[];if(t.length&gt;2&amp;&amp;"/"===t[0]&amp;&amp;"/"===t[t.length-1])n=t.substring(1,t.length-1);else{var i=t.split(",");if(i.length&gt;1)for(var r=0;r&lt;i.length;r++){var a=e(i[r]);a.regexp?(n+="("+a.regexp+")",r&lt;i.length-1&amp;&amp;(n+="|")):o=o.concat(a.excludes)}else 0===t.indexOf("!")?o.push("^((?!"+e(t.substring(1)).regexp+").)*$"):(0===t.indexOf(".")&amp;&amp;(t="*"+t),n=(n="^"+t.replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!&lt;&gt;|:\\-]","g"),"\\$&amp;")+"$").replace(/\\\*/g,".*").replace(/\\\?/g,"."))}return{regexp:n,excludes:o}}(t),o=!0;if(n.regexp&amp;&amp;n.regexp.length){var i=new RegExp(n.regexp,"i");o=null!=e.type&amp;&amp;i.test(e.type)||null!=e.name&amp;&amp;i.test(e.name)}for(var r=n.excludes.length;r--;){var a=new RegExp(n.excludes[r],"i");o=o&amp;&amp;(null==e.type||a.test(e.type))&amp;&amp;(null==e.name||a.test(e.name))}return o},o.ratioToFloat=function(e){var t=e.toString(),n=t.search(/[x:]/i);return t=n&gt;-1?parseFloat(t.substring(0,n))/parseFloat(t.substring(n+1)):parseFloat(t)},o.registerModelChangeValidator=function(e,t,n){e&amp;&amp;e.$formatters.push((function(i){if(e.$dirty){var r=i;i&amp;&amp;!angular.isArray(i)&amp;&amp;(r=[i]),o.validate(r,0,e,t,n).then((function(){o.applyModelValidation(e,r)}))}return i}))},o.applyModelValidation=function(e,t){!function(e,t){null==t||e.$dirty||(e.$setDirty?e.$setDirty():e.$dirty=!0)}(e,t),angular.forEach(e.$ngfValidations,(function(t){e.$setValidity(t.name,t.valid)}))},o.getValidationAttr=function(e,t,n,i,r){var a="ngf"+n[0].toUpperCase()+n.substr(1),s=o.attrGetter(a,e,t,{$file:r});if(null==s&amp;&amp;(s=o.attrGetter("ngfValidate",e,t,{$file:r}))){var c=(i||n).split(".");s=s[c[0]],c.length&gt;1&amp;&amp;(s=s&amp;&amp;s[c[1]])}return s},o.validate=function(e,n,i,r,a){(i=i||{}).$ngfValidations=i.$ngfValidations||[],angular.forEach(i.$ngfValidations,(function(e){e.valid=!0}));var s=function(e,t){return o.attrGetter(e,r,a,t)},c=(o.attrGetter("ngfIgnoreInvalid",r,a)||"").split(" "),l=o.attrGetter("ngfRunAllValidations",r,a);if(null==e||0===e.length)return o.emptyPromise({validFiles:e,invalidFiles:[]});e=void 0===e.length?[e]:e.slice(0);var u=[];function d(t,n,s){if(e){for(var d=e.length,p=null;d--;){var f=e[d];if(f){var m=o.getValidationAttr(r,a,t,n,f);null!=m&amp;&amp;(s(f,m,d)||(-1===c.indexOf(t)?(f.$error=t,(f.$errorMessages=f.$errorMessages||{})[t]=!0,f.$errorParam=m,-1===u.indexOf(f)&amp;&amp;u.push(f),l||e.splice(d,1),p=!1):e.splice(d,1)))}}null!==p&amp;&amp;i.$ngfValidations.push({name:t,valid:p})}}d("pattern",null,o.validatePattern),d("minSize","size.min",(function(e,t){return e.size+.1&gt;=o.translateScalars(t)})),d("maxSize","size.max",(function(e,t){return e.size-.1&lt;=o.translateScalars(t)}));var p=0;if(d("maxTotalSize",null,(function(t,n){return!((p+=t.size)&gt;o.translateScalars(n))||(e.splice(0,e.length),!1)})),d("validateFn",null,(function(e,t){return!0===t||null===t||""===t})),!e.length)return o.emptyPromise({validFiles:[],invalidFiles:u});function f(n,d,p,f,m){function g(t,o,i){function r(r){if(r())if(-1===c.indexOf(n)){if(o.$error=n,(o.$errorMessages=o.$errorMessages||{})[n]=!0,o.$errorParam=i,-1===u.indexOf(o)&amp;&amp;u.push(o),!l){var a=e.indexOf(o);a&gt;-1&amp;&amp;e.splice(a,1)}t.resolve(!1)}else{var s=e.indexOf(o);s&gt;-1&amp;&amp;e.splice(s,1),t.resolve(!0)}else t.resolve(!0)}null!=i?f(o,i).then((function(e){r((function(){return!m(e,i)}))}),(function(){r((function(){return s("ngfValidateForce",{$file:o})}))})):t.resolve(!0)}var h=[o.emptyPromise(!0)];e&amp;&amp;(e=void 0===e.length?[e]:e,angular.forEach(e,(function(e){var i=t.defer();h.push(i.promise),!p||null!=e.type&amp;&amp;0===e.type.search(p)?"dimensions"===n&amp;&amp;null!=o.attrGetter("ngfDimensions",r)?o.imageDimensions(e).then((function(t){g(i,e,s("ngfDimensions",{$file:e,$width:t.width,$height:t.height}))}),(function(){i.resolve(!1)})):"duration"===n&amp;&amp;null!=o.attrGetter("ngfDuration",r)?o.mediaDuration(e).then((function(t){g(i,e,s("ngfDuration",{$file:e,$duration:t}))}),(function(){i.resolve(!1)})):g(i,e,o.getValidationAttr(r,a,n,d,e)):i.resolve(!0)})));var v=t.defer();return t.all(h).then((function(e){for(var t=!0,o=0;o&lt;e.length;o++)if(!e[o]){t=!1;break}i.$ngfValidations.push({name:n,valid:t}),v.resolve(t)})),v.promise}var m=t.defer(),g=[];return g.push(f("maxHeight","height.max",/image/,this.imageDimensions,(function(e,t){return e.height&lt;=t}))),g.push(f("minHeight","height.min",/image/,this.imageDimensions,(function(e,t){return e.height&gt;=t}))),g.push(f("maxWidth","width.max",/image/,this.imageDimensions,(function(e,t){return e.width&lt;=t}))),g.push(f("minWidth","width.min",/image/,this.imageDimensions,(function(e,t){return e.width&gt;=t}))),g.push(f("dimensions",null,/image/,(function(e,t){return o.emptyPromise(t)}),(function(e){return e}))),g.push(f("ratio",null,/image/,this.imageDimensions,(function(e,t){for(var n=t.toString().split(","),i=!1,r=0;r&lt;n.length;r++)Math.abs(e.width/e.height-o.ratioToFloat(n[r]))&lt;.01&amp;&amp;(i=!0);return i}))),g.push(f("maxRatio","ratio.max",/image/,this.imageDimensions,(function(e,t){return e.width/e.height-o.ratioToFloat(t)&lt;1e-4}))),g.push(f("minRatio","ratio.min",/image/,this.imageDimensions,(function(e,t){return e.width/e.height-o.ratioToFloat(t)&gt;-1e-4}))),g.push(f("maxDuration","duration.max",/audio|video/,this.mediaDuration,(function(e,t){return e&lt;=o.translateScalars(t)}))),g.push(f("minDuration","duration.min",/audio|video/,this.mediaDuration,(function(e,t){return e&gt;=o.translateScalars(t)}))),g.push(f("duration",null,/audio|video/,(function(e,t){return o.emptyPromise(t)}),(function(e){return e}))),g.push(f("validateAsyncFn",null,null,(function(e,t){return t}),(function(e){return!0===e||null===e||""===e}))),t.all(g).then((function(){if(l)for(var t=0;t&lt;e.length;t++){e[t].$error&amp;&amp;e.splice(t--,1)}l=!1,d("maxFiles",null,(function(e,t,o){return n+o&lt;t})),m.resolve({validFiles:e,invalidFiles:u})})),m.promise},o.imageDimensions=function(e){if(e.$ngfWidth&amp;&amp;e.$ngfHeight){var i=t.defer();return n((function(){i.resolve({width:e.$ngfWidth,height:e.$ngfHeight})})),i.promise}if(e.$ngfDimensionPromise)return e.$ngfDimensionPromise;var r=t.defer();return n((function(){0===e.type.indexOf("image")?o.dataUrl(e).then((function(t){var o=angular.element("&lt;img&gt;").attr("src",t).css("visibility","hidden").css("position","fixed").css("max-width","none !important").css("max-height","none !important");function i(){var t=o[0].naturalWidth||o[0].clientWidth,n=o[0].naturalHeight||o[0].clientHeight;o.remove(),e.$ngfWidth=t,e.$ngfHeight=n,r.resolve({width:t,height:n})}function a(){o.remove(),r.reject("load error")}o.on("load",i),o.on("error",a);var s=0;!function e(){n((function(){o[0].parentNode&amp;&amp;(o[0].clientWidth?i():s++&gt;10?a():e())}),1e3)}(),angular.element(document.getElementsByTagName("body")[0]).append(o)}),(function(){r.reject("load error")})):r.reject("not image")})),e.$ngfDimensionPromise=r.promise,e.$ngfDimensionPromise.finally((function(){delete e.$ngfDimensionPromise})),e.$ngfDimensionPromise},o.mediaDuration=function(e){if(e.$ngfDuration){var i=t.defer();return n((function(){i.resolve(e.$ngfDuration)})),i.promise}if(e.$ngfDurationPromise)return e.$ngfDurationPromise;var r=t.defer();return n((function(){0===e.type.indexOf("audio")||0===e.type.indexOf("video")?o.dataUrl(e).then((function(t){var o=angular.element(0===e.type.indexOf("audio")?"&lt;audio&gt;":"&lt;video&gt;").attr("src",t).css("visibility","none").css("position","fixed");function i(){var t=o[0].duration;e.$ngfDuration=t,o.remove(),r.resolve(t)}function a(){o.remove(),r.reject("load error")}o.on("loadedmetadata",i),o.on("error",a);var s=0;!function e(){n((function(){o[0].parentNode&amp;&amp;(o[0].duration?i():s&gt;10?a():e())}),1e3)}(),angular.element(document.body).append(o)}),(function(){r.reject("load error")})):r.reject("not media")})),e.$ngfDurationPromise=r.promise,e.$ngfDurationPromise.finally((function(){delete e.$ngfDurationPromise})),e.$ngfDurationPromise},o}]),o.service("UploadResize",["UploadValidate","$q",function(e,t){var n=e,o=function(e,o,i,r,a,s,c,l){var u=t.defer(),d=document.createElement("canvas"),p=document.createElement("img");return p.setAttribute("style","visibility:hidden;position:fixed;z-index:-100000"),document.body.appendChild(p),p.onload=function(){var e=p.width,t=p.height;if(p.parentNode.removeChild(p),null==l||!1!==l(e,t))try{if(s){var f=n.ratioToFloat(s);e/t&lt;f?i=(o=e)/f:o=(i=t)*f}o||(o=e),i||(i=t);var m=function(e,t,n,o,i){var r=i?Math.max(n/e,o/t):Math.min(n/e,o/t);return{width:e*r,height:t*r,marginX:e*r-n,marginY:t*r-o}}(e,t,o,i,c);d.width=Math.min(m.width,o),d.height=Math.min(m.height,i),d.getContext("2d").drawImage(p,Math.min(0,-m.marginX/2),Math.min(0,-m.marginY/2),m.width,m.height),u.resolve(d.toDataURL(a||"image/WebP",r||.934))}catch(e){u.reject(e)}else u.reject("resizeIf")},p.onerror=function(){p.parentNode.removeChild(p),u.reject()},p.src=e,u.promise};return n.dataUrltoBlob=function(e,t,n){for(var o=e.split(","),i=o[0].match(/:(.*?);/)[1],r=atob(o[1]),a=r.length,s=new Uint8Array(a);a--;)s[a]=r.charCodeAt(a);var c=new window.Blob([s],{type:i});return c.name=t,c.$ngfOrigSize=n,c},n.isResizeSupported=function(){var e=document.createElement("canvas");return window.atob&amp;&amp;e.getContext&amp;&amp;e.getContext("2d")&amp;&amp;window.Blob},n.isResizeSupported()&amp;&amp;Object.defineProperty(window.Blob.prototype,"name",{get:function(){return this.$ngfName},set:function(e){this.$ngfName=e},configurable:!0}),n.resize=function(e,i){if(0!==e.type.indexOf("image"))return n.emptyPromise(e);var r=t.defer();return n.dataUrl(e,!0).then((function(t){o(t,i.width,i.height,i.quality,i.type||e.type,i.ratio,i.centerCrop,i.resizeIf).then((function(o){if("image/jpeg"===e.type&amp;&amp;!1!==i.restoreExif)try{o=n.restoreExif(t,o)}catch(e){setTimeout((function(){throw e}),1)}try{var a=n.dataUrltoBlob(o,e.name,e.size);r.resolve(a)}catch(e){r.reject(e)}}),(function(t){"resizeIf"===t&amp;&amp;r.resolve(e),r.reject(t)}))}),(function(e){r.reject(e)})),r.promise},n}]),function(){function e(){var e=document.createElement("div");return"draggable"in e&amp;&amp;"ondrop"in e&amp;&amp;!/Edge\/12./i.test(navigator.userAgent)}o.directive("ngfDrop",["$parse","$timeout","$window","Upload","$http","$q",function(t,n,o,i,r,a){return{restrict:"AEC",require:"?ngModel",link:function(r,s,c,l){!function(t,n,o,i,r,a,s,c,l,u){var d=e(),p=function(e,t,n){return c.attrGetter(e,o,t,n)};p("dropAvailable")&amp;&amp;a((function(){t[p("dropAvailable")]?t[p("dropAvailable")].value=d:t[p("dropAvailable")]=d}));if(!d)return void(!0===p("ngfHideOnDropNotAvailable",t)&amp;&amp;n.css("display","none"));function f(){return n.attr("disabled")||p("ngfDropDisabled",t)}null==p("ngfSelect")&amp;&amp;c.registerModelChangeValidator(i,o,t);var m,g=null,h=r(p("ngfStopPropagation")),v=1;n[0].addEventListener("dragover",(function(e){if(!f()&amp;&amp;c.shouldUpdateOn("drop",o,t)){if(e.preventDefault(),h(t)&amp;&amp;e.stopPropagation(),navigator.userAgent.indexOf("Chrome")&gt;-1){var i=e.dataTransfer.effectAllowed;e.dataTransfer.dropEffect="move"===i||"linkMove"===i?"move":"copy"}a.cancel(g),m||(m="C",function(e,t,n,o){var i=p("ngfDragOverClass",e,{$event:n}),r="dragover";if(angular.isString(i))r=i;else if(i&amp;&amp;(i.delay&amp;&amp;(v=i.delay),i.accept||i.reject)){var a=n.dataTransfer.items;if(null!=a&amp;&amp;a.length)for(var s=i.pattern||p("ngfPattern",e,{$event:n}),l=a.length;l--;){if(!c.validatePattern(a[l],s)){r=i.reject;break}r=i.accept}else r=i.accept}o(r)}(t,0,e,(function(o){m=o,n.addClass(m),p("ngfDrag",t,{$isDragging:!0,$class:m,$event:e})})))}}),!1),n[0].addEventListener("dragenter",(function(e){!f()&amp;&amp;c.shouldUpdateOn("drop",o,t)&amp;&amp;(e.preventDefault(),h(t)&amp;&amp;e.stopPropagation())}),!1),n[0].addEventListener("dragleave",(function(e){!f()&amp;&amp;c.shouldUpdateOn("drop",o,t)&amp;&amp;(e.preventDefault(),h(t)&amp;&amp;e.stopPropagation(),g=a((function(){m&amp;&amp;n.removeClass(m),m=null,p("ngfDrag",t,{$isDragging:!1,$event:e})}),v||100))}),!1),n[0].addEventListener("drop",(function(e){!f()&amp;&amp;c.shouldUpdateOn("drop",o,t)&amp;&amp;(e.preventDefault(),h(t)&amp;&amp;e.stopPropagation(),m&amp;&amp;n.removeClass(m),m=null,b(e.dataTransfer,e,"dropUrl"))}),!1),n[0].addEventListener("paste",(function(e){navigator.userAgent.toLowerCase().indexOf("firefox")&gt;-1&amp;&amp;p("ngfEnableFirefoxPaste",t)&amp;&amp;e.preventDefault(),!f()&amp;&amp;c.shouldUpdateOn("paste",o,t)&amp;&amp;b(e.clipboardData||e.originalEvent.clipboardData,e,"pasteUrl")}),!1),navigator.userAgent.toLowerCase().indexOf("firefox")&gt;-1&amp;&amp;p("ngfEnableFirefoxPaste",t)&amp;&amp;(n.attr("contenteditable",!0),n.on("keypress",(function(e){e.metaKey||e.ctrlKey||e.preventDefault()})));function b(e,n,i){if(e){var r;try{r=e&amp;&amp;e.getData&amp;&amp;e.getData("text/html")}catch(e){}(function(e,n,i,r){var a=c.getValidationAttr(o,t,"maxFiles");null==a&amp;&amp;(a=Number.MAX_VALUE);var l=c.getValidationAttr(o,t,"maxTotalSize");null==l&amp;&amp;(l=Number.MAX_VALUE);var d=p("ngfIncludeDir",t),f=[],m=0;function g(e,t){var n=u.defer();if(null!=e)if(e.isDirectory){var o=[c.emptyPromise()];if(d){var i={type:"directory"};i.name=i.path=(t||"")+e.name,f.push(i)}var r=e.createReader(),s=[],p=function(){r.readEntries((function(i){try{i.length?(s=s.concat(Array.prototype.slice.call(i||[],0)),p()):(angular.forEach(s.slice(0),(function(n){f.length&lt;=a&amp;&amp;m&lt;=l&amp;&amp;o.push(g(n,(t||"")+e.name+"/"))})),u.all(o).then((function(){n.resolve()}),(function(e){n.reject(e)})))}catch(e){n.reject(e)}}),(function(e){n.reject(e)}))};p()}else e.file((function(e){try{e.path=(t||"")+e.name,d&amp;&amp;(e=c.rename(e,e.path)),f.push(e),m+=e.size,n.resolve()}catch(e){n.reject(e)}}),(function(e){n.reject(e)}));return n.promise}var h=[c.emptyPromise()];if(e&amp;&amp;e.length&gt;0&amp;&amp;"file:"!==s.location.protocol)for(var v=0;v&lt;e.length;v++){if(e[v].webkitGetAsEntry&amp;&amp;e[v].webkitGetAsEntry()&amp;&amp;e[v].webkitGetAsEntry().isDirectory){var b=e[v].webkitGetAsEntry();if(b.isDirectory&amp;&amp;!i)continue;null!=b&amp;&amp;h.push(g(b))}else{var _=e[v].getAsFile();null!=_&amp;&amp;(f.push(_),m+=_.size)}if(f.length&gt;a||m&gt;l||!r&amp;&amp;f.length&gt;0)break}else if(null!=n)for(var y=0;y&lt;n.length;y++){var $=n.item(y);if(($.type||$.size&gt;0)&amp;&amp;(f.push($),m+=$.size),f.length&gt;a||m&gt;l||!r&amp;&amp;f.length&gt;0)break}var w=u.defer();return u.all(h).then((function(){if(r||d||!f.length)w.resolve(f);else{for(var e=0;f[e]&amp;&amp;"directory"===f[e].type;)e++;w.resolve([f[e]])}}),(function(e){w.reject(e)})),w.promise})(e.items,e.files,!1!==p("ngfAllowDir",t),p("multiple")||p("ngfMultiple",t)).then((function(e){e.length?_(e,n):function(e,n){if(!c.shouldUpdateOn(e,o,t)||"string"!=typeof n)return c.rejectPromise([]);var i=[];n.replace(/&lt;(img src|img [^&gt;]* src) *=\"([^\"]*)\"/gi,(function(e,t,n){i.push(n)}));var r=[],a=[];if(i.length){angular.forEach(i,(function(e){r.push(c.urlToBlob(e).then((function(e){a.push(e)})))}));var s=u.defer();return u.all(r).then((function(){s.resolve(a)}),(function(e){s.reject(e)})),s.promise}return c.emptyPromise()}(i,r).then((function(e){_(e,n)}))}))}}function _(e,n){c.updateModel(i,o,t,p("ngfChange")||p("ngfDrop"),e,n)}}(r,s,c,l,t,n,o,i,0,a)}}}]),o.directive("ngfNoFileDrop",(function(){return function(t,n){e()&amp;&amp;n.css("display","none")}})),o.directive("ngfDropAvailable",["$parse","$timeout","Upload",function(t,n,o){return function(i,r,a){if(e()){var s=t(o.attrGetter("ngfDropAvailable",a));n((function(){s(i),s.assign&amp;&amp;s.assign(i,!0)}))}}}])}(),o.service("UploadExif",["UploadResize","$q",function(e,t){var n=e;return n.isExifSupported=function(){return window.FileReader&amp;&amp;(new FileReader).readAsArrayBuffer&amp;&amp;n.isResizeSupported()},n.readOrientation=function(e){var n=t.defer(),o=new FileReader,i=e.slice?e.slice(0,65536):e;return o.readAsArrayBuffer(i),o.onerror=function(e){return n.reject(e)},o.onload=function(e){var t={orientation:1},o=new DataView(this.result);if(65496!==o.getUint16(0,!1))return n.resolve(t);for(var i=o.byteLength,r=2;r&lt;i;){var a=o.getUint16(r,!1);if(r+=2,65505===a){if(1165519206!==o.getUint32(r+=2,!1))return n.resolve(t);var s=18761===o.getUint16(r+=6,!1);r+=o.getUint32(r+4,s);var c=o.getUint16(r,s);r+=2;for(var l=0;l&lt;c;l++)if(274===o.getUint16(r+12*l,s)){var u=o.getUint16(r+12*l+8,s);return u&gt;=2&amp;&amp;u&lt;=8&amp;&amp;(o.setUint16(r+12*l+8,1,s),t.fixedArrayBuffer=e.target.result),t.orientation=u,n.resolve(t)}}else{if(65280!=(65280&amp;a))break;r+=o.getUint16(r,!1)}}return n.resolve(t)},n.promise},n.applyExifRotation=function(e){if(0!==e.type.indexOf("image/jpeg"))return n.emptyPromise(e);var o=t.defer();return n.readOrientation(e).then((function(t){if(t.orientation&lt;2||t.orientation&gt;8)return o.resolve(e);n.dataUrl(e,!0).then((function(i){var r=document.createElement("canvas"),a=document.createElement("img");a.onload=function(){try{r.width=t.orientation&gt;4?a.height:a.width,r.height=t.orientation&gt;4?a.width:a.height;var i=r.getContext("2d");!function(e,t,n,o){switch(t){case 2:return e.transform(-1,0,0,1,n,0);case 3:return e.transform(-1,0,0,-1,n,o);case 4:return e.transform(1,0,0,-1,0,o);case 5:return e.transform(0,1,1,0,0,0);case 6:return e.transform(0,1,-1,0,o,0);case 7:return e.transform(0,-1,-1,0,o,n);case 8:e.transform(0,-1,1,0,0,n)}}(i,t.orientation,a.width,a.height),i.drawImage(a,0,0);var s=r.toDataURL(e.type||"image/WebP",.934);s=n.restoreExif(function(e){for(var t="",n=new Uint8Array(e),o=n.byteLength,i=0;i&lt;o;i++)t+=String.fromCharCode(n[i]);return window.btoa(t)}(t.fixedArrayBuffer),s);var c=n.dataUrltoBlob(s,e.name);o.resolve(c)}catch(e){return o.reject(e)}},a.onerror=function(){o.reject()},a.src=i}),(function(e){o.reject(e)}))}),(function(e){o.reject(e)})),o.promise},n.restoreExif=function(e,t){var n={KEY_STR:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode64:function(e){var t,n,o,i,r,a="",s="",c="",l=0;do{o=(t=e[l++])&gt;&gt;2,i=(3&amp;t)&lt;&lt;4|(n=e[l++])&gt;&gt;4,r=(15&amp;n)&lt;&lt;2|(s=e[l++])&gt;&gt;6,c=63&amp;s,isNaN(n)?r=c=64:isNaN(s)&amp;&amp;(c=64),a=a+this.KEY_STR.charAt(o)+this.KEY_STR.charAt(i)+this.KEY_STR.charAt(r)+this.KEY_STR.charAt(c),t=n=s="",o=i=r=c=""}while(l&lt;e.length);return a},restore:function(e,t){e.match("data:image/jpeg;base64,")&amp;&amp;(e=e.replace("data:image/jpeg;base64,",""));var n=this.decode64(e),o=this.slice2Segments(n),i=this.exifManipulation(t,o);return"data:image/jpeg;base64,"+this.encode64(i)},exifManipulation:function(e,t){var n=this.getExifArray(t),o=this.insertExif(e,n);return new Uint8Array(o)},getExifArray:function(e){for(var t,n=0;n&lt;e.length;n++)if(255===(t=e[n])[0]&amp;225===t[1])return t;return[]},insertExif:function(e,t){var n=e.replace("data:image/jpeg;base64,",""),o=this.decode64(n),i=o.indexOf(255,3),r=o.slice(0,i),a=o.slice(i),s=r;return s=(s=s.concat(t)).concat(a)},slice2Segments:function(e){for(var t=0,n=[];!(255===e[t]&amp;218===e[t+1]);){if(255===e[t]&amp;216===e[t+1])t+=2;else{var o=t+(256*e[t+2]+e[t+3])+2,i=e.slice(t,o);n.push(i),t=o}if(t&gt;e.length)break}return n},decode64:function(e){var t,n,o,i,r="",a="",s=0,c=[];/[^A-Za-z0-9\+\/\=]/g.exec(e)&amp;&amp;console.log("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, NaNExpect errors in decoding."),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=this.KEY_STR.indexOf(e.charAt(s++))&lt;&lt;2|(o=this.KEY_STR.indexOf(e.charAt(s++)))&gt;&gt;4,n=(15&amp;o)&lt;&lt;4|(i=this.KEY_STR.indexOf(e.charAt(s++)))&gt;&gt;2,r=(3&amp;i)&lt;&lt;6|(a=this.KEY_STR.indexOf(e.charAt(s++))),c.push(t),64!==i&amp;&amp;c.push(n),64!==a&amp;&amp;c.push(r),t=n=r="",o=i=a=""}while(s&lt;e.length);return c}};return n.restore(e,t)},n}])},RtXU:function(e,t,n){"use strict";t.a='&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Edit Avatar&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n\n        &lt;div class="modal-body"&gt;\n\n            &lt;p&gt;No nudity or lingerie for these preview images.&lt;/p&gt;\n\n            &lt;div class="csf_uploader" nv-file-drop nv-file-over over-class="csf_uploader--hover" uploader="fileUploader"&gt;\n                &lt;input nv-file-select type="file" uploader="fileUploader" /&gt;\n                &lt;div class="csf_uploader__inner" ng-click="fileClick()"&gt;\n                    &lt;strong class="csf_uploader__description" ng-hide="fileLoadingPercent"&gt;\n                        &lt;span&gt;Upload a pic&lt;/span&gt;\n                        Click to select a file&lt;br /&gt;\n                        or drag a file here\n                    &lt;/strong&gt;\n                    &lt;div class="progress" ng-show="fileLoadingPercent"&gt;\n                        &lt;div class="progress-bar progress-bar-striped" ng-style="{ width: fileLoadingPercent + \'%\' }" role="progressbar" aria-valuenow="{{ fileLoadingPercent }}" aria-valuemin="0" aria-valuemax="100"&gt;&lt;/div&gt;\n                    &lt;/div&gt; \n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n\n        &lt;div ng-if="!fileLoadingPercent" class="modal-footer"&gt;\n            &lt;button ng-if="hasAvatar" class="btn btn-danger d-inline-flex align-items-center" ng-click="deleteAvatar()"&gt;\n                Delete \n                &lt;div class="csf_avatar ms-2 inBtn"&gt; \n                    &lt;span class="csf_avatar__img" back-img="{{ user.fans_avatar_url | webp }}"&gt;&lt;/span&gt;\n                &lt;/div&gt;\n            &lt;/button&gt;\n            &lt;button class="btn btn-secondary" ng-click="closeThisDialog()"&gt;Close&lt;/button&gt;\n        &lt;/div&gt;\n\n    &lt;/div&gt;\n&lt;/div&gt;\n'},S8U6:function(e,t){for(var n=!0,o=["","v3.client.version","v3.authorize.success","v3.authorize.failed","v3.user.settings","v3.lobby.discover","v3.lobby.discovered","v3.lobby.status_update.start","v3.lobby.status_update.stop","v3.lobby.status_update.to_user","v3.lobby.restarting","v3.pm.message","v3.pm.new","v3.pm.delete","v3.pm.close","v3.pm.read","v3.pm.list","v3.token.update","v3.tip.received","v3.reUp.update","v3.private.request","v3.private.started","v3.private.ping","v3.private.end","v3.private.declined","v3.spy.end","v3.limited.end","v3.chat.message","v3.chat.update","v3.chat.user_list","v3.chat.userlist.start","v3.chat.userlist.stop","v3.chat.subject","v3.chat.history","v3.chat.app_panels","v3.chat.moderate","v3.chat.banned","v3.chat.user_joined","v3.chat.user_left","v3.chat.user_count","v3.chat.app_changed_relayed","v3.app.koth","v3.app.golden_ticket","v3.app.outcome","v3.lovense.heartbeat","v3.lovense.vibrate","v3.lovense.control_delay","v3.lovense.control_start","v3.lovense.control_stop","v3.chat.model_settings","v3.preloader.start","v3.private.discount","v3.app.scratchoff.info","v3.app.scratchoff.win","v3.app.scratchoff.update","v3.cam2cam.start","v3.cam2cam.end","v3.notification.count","fans.post.update","fans.post.thumb","v3.user_friend.request","v3.user_friend.accepted","v3.user_friend.deleted","v3.user_friend.status_update","v3.stream.ingest_info","v3.stream.ingest_info.studio_models","v3.fans.direct_message.new_notification","v3.fans.direct_message.new_message","v3.pagevisibility.change","v3.user.pagevisibility.change","v3.new_follower","v3.rocketman.update","v3.rocketman.check_letter","v3.voyeurcam.time_left","v3.voyeurcam.control_start","tikichat.stop","tikichat.next-request","tikichat.next-accepted","v3.app.controlapp.controls","v3.app.controlapp.event","v3.epoch_oneclick_error","fans.logo.update","fans.stream_private.update","v3.xfollow.direct_message.new_notification","fans.error","v3.chat.history-clear-username","v3.versus.ended","v3.versus.invite-accepted","v3.versus.invite-received","v3.versus.invite-rejected","v3.versus.moderate","v3.versus.started","v3.versus.update","v3.lovense.control_queue_size","v3.lovense.control_queue_place","v3.lovense.cruise_control_time_left","v3.cam2cam.ready","v3.user.invisible-mode","v3.user.fans_subscriber.update","v3.lovense.status_change","v3.private.expired","v3.private.tick","v3.ping","v3.pong","v3.private.request_failed","v3.lovense.cruise_control_pattern","v3.refresh"],i={},r=0;r&lt;o.length;r++)i[o[r]]=r;e.exports={getId:function(e){return n&amp;&amp;!i[e]&amp;&amp;"v3.templates"!=e&amp;&amp;"v3.authorize"!=e&amp;&amp;console.log(" *** UNKNOWN EVENT ID: "+e+" ***"),i[e]||e},getName:function(e){return n&amp;&amp;"string"==typeof e&amp;&amp;"v3.templates"!=e&amp;&amp;"v3.authorize"!=e&amp;&amp;console.log(" *** UNKNOWN INCOMING EVENT ID: "+e+" ***"),"number"==typeof e?o[e]:e},getEvents:function(){return o},setEvents:function(e){o=e}}},STM2:function(e,t,n){n("aq+q"),e.exports="ngRoute"},VoZl:function(e,t,n){"use strict";var o=n("Ik5z");angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",(function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n&lt;e.length;n++)if(t===e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n&lt;e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,o=0;o&lt;e.length;o++)if(t===e[o].key){n=o;break}return e.splice(n,1)[0]},removeTop:function(){return e.pop()},length:function(){return e.length}}}}}));angular.module("ui.bootstrap.tooltip",[o.a,"ui.bootstrap.stackedMap"]).run(["$templateCache",function(e){e.put("fans/common/uib/tooltip-popup.html",'&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;\n&lt;div class="tooltip-inner" ng-bind="content"&gt;&lt;/div&gt;\n','&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;\n&lt;div class="tooltip-inner" ng-bind-html="contentExp()"&gt;&lt;/div&gt;\n','&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;\n&lt;div class="tooltip-inner"\n    uib-tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"&gt;&lt;/div&gt;\n')}]).provider("$uibTooltip",(function(){var e={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},t={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},n={};this.options=function(e){angular.extend(n,e)},this.setTriggers=function(e){angular.extend(t,e)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(o,i,r,a,s,c,l,u,d){var p=d.createNew();function f(e){if(27===e.which){var t=p.top();t&amp;&amp;(t.value.close(),t=null)}}return a.on("keyup",f),l.$on("$destroy",(function(){a.off("keyup",f)})),function(o,l,d,f){function m(e){var n=(e||f.trigger||d).split(" "),o=n.map((function(e){return t[e]||e}));return{show:n,hide:o}}f=angular.extend({},e,n,f);var g=o.replace(/[A-Z]/g,(function(e,t){return(t?"-":"")+e.toLowerCase()})),h=c.startSymbol(),v=c.endSymbol(),b="&lt;div "+g+'-popup uib-title="'+h+"title"+v+'" '+(f.useContentExp?'content-exp="contentExp()" ':'content="'+h+"content"+v+'" ')+'origin-scope="origScope" class="uib-position-measure '+l+'" tooltip-animation-class="fade"uib-tooltip-classes ng-class="{ in: isOpen }" &gt;&lt;/div&gt;';return{compile:function(e,t){var n=i(b);return function(e,t,i,c){var d,g,h,v,b,_,y,$,w=!!angular.isDefined(f.appendToBody)&amp;&amp;f.appendToBody,S=m(void 0),k=angular.isDefined(i[l+"Enable"]),x=e.$new(!0),C=!1,A=!!angular.isDefined(i[l+"IsOpen"])&amp;&amp;u(i[l+"IsOpen"]),T=!!f.useContentExp&amp;&amp;u(i[o]),E=[],P=function(){d&amp;&amp;d.html()&amp;&amp;(_||(_=r((function(){var e=s.positionElements(t,d,x.placement,w),n=angular.isDefined(d.offsetHeight)?d.offsetHeight:d.prop("offsetHeight"),o=w?s.offset(t):s.position(t);d.css({top:e.top+"px",left:e.left+"px"});var i=e.placement.split("-");d.hasClass(i[0])||(d.removeClass($.split("-")[0]),d.addClass(i[0])),d.hasClass(f.placementClassPrefix+e.placement)||(d.removeClass(f.placementClassPrefix+$),d.addClass(f.placementClassPrefix+e.placement)),y=r((function(){var e=angular.isDefined(d.offsetHeight)?d.offsetHeight:d.prop("offsetHeight"),t=s.adjustTop(i,o,n,e);t&amp;&amp;d.css(t),y=null}),0,!1),d.hasClass("uib-position-measure")?(s.positionArrow(d,e.placement),d.removeClass("uib-position-measure")):$!==e.placement&amp;&amp;s.positionArrow(d,e.placement),$=e.placement,_=null}),0,!1)))};function O(){x.isOpen?D():M()}function M(){k&amp;&amp;!e.$eval(i[l+"Enable"])||(R(),function(){x.title=i[l+"Title"],x.content=T?T(e):i[o];x.popupClass=i[l+"Class"],x.placement=angular.isDefined(i[l+"Placement"])?i[l+"Placement"]:f.placement;var t=s.parsePlacement(x.placement);$=t[1]?t[0]+"-"+t[1]:t[0];var n=parseInt(i[l+"PopupDelay"],10),r=parseInt(i[l+"PopupCloseDelay"],10);x.popupDelay=isNaN(n)?f.popupDelay:n,x.popupCloseDelay=isNaN(r)?f.popupCloseDelay:r}(),x.popupDelay?v||(v=r(I,x.popupDelay,!1)):I())}function D(){U(),x.popupCloseDelay?b||(b=r(L,x.popupCloseDelay,!1)):L()}function I(){if(U(),R(),!x.content)return angular.noop;!function(){if(d)return;g=x.$new(),d=n(g,(function(e){w?a.find("body").append(e):t.after(e)})),p.add(x,{close:L}),function(){E.length=0,T?(E.push(e.$watch(T,(function(e){x.content=e,!e&amp;&amp;x.isOpen&amp;&amp;L()}))),E.push(g.$watch((function(){C||(C=!0,g.$$postDigest((function(){C=!1,x&amp;&amp;x.isOpen&amp;&amp;P()})))})))):E.push(i.$observe(o,(function(e){x.content=e,!e&amp;&amp;x.isOpen?L():P()})));E.push(i.$observe(l+"Title",(function(e){x.title=e,x.isOpen&amp;&amp;P()}))),E.push(i.$observe(l+"Placement",(function(e){x.placement=e||f.placement,x.isOpen&amp;&amp;P()})))}()}(),x.$evalAsync((function(){x.isOpen=!0,N(!0),P()}))}function U(){v&amp;&amp;(r.cancel(v),v=null),_&amp;&amp;(r.cancel(_),_=null)}function L(){x&amp;&amp;x.$evalAsync((function(){x&amp;&amp;(x.isOpen=!1,N(!1),x.animation?h||(h=r(F,150,!1)):F())}))}function R(){b&amp;&amp;(r.cancel(b),b=null),h&amp;&amp;(r.cancel(h),h=null)}function F(){U(),R(),E.length&amp;&amp;(angular.forEach(E,(function(e){e()})),E.length=0),d&amp;&amp;(d.remove(),d=null,y&amp;&amp;r.cancel(y)),p.remove(x),g&amp;&amp;(g.$destroy(),g=null)}function N(t){A&amp;&amp;angular.isFunction(A.assign)&amp;&amp;A.assign(e,t)}function j(e){x&amp;&amp;x.isOpen&amp;&amp;d&amp;&amp;(t[0].contains(e.target)||d[0].contains(e.target)||D())}function B(e){27===e.which&amp;&amp;D()}x.origScope=e,x.isOpen=!1,x.contentExp=function(){return x.content},i.$observe("disabled",(function(e){e&amp;&amp;U(),e&amp;&amp;x.isOpen&amp;&amp;L()})),A&amp;&amp;e.$watch(A,(function(e){x&amp;&amp;!e===x.isOpen&amp;&amp;O()}));var V,z,q,H=function(){S.show.forEach((function(e){"outsideClick"===e?t.off("click",O):(t.off(e,M),t.off(e,O)),t.off("keypress",B)})),S.hide.forEach((function(e){"outsideClick"===e?a.off("click",j):t.off(e,D)}))};V=[],z=[],q=e.$eval(i[l+"Trigger"]),H(),angular.isObject(q)?(Object.keys(q).forEach((function(e){V.push(e),z.push(q[e])})),S={show:V,hide:z}):S=m(q),"none"!==S.show&amp;&amp;S.show.forEach((function(e,n){"outsideClick"===e?(t.on("click",O),a.on("click",j)):e===S.hide[n]?t.on(e,O):e&amp;&amp;(t.on(e,M),t.on(S.hide[n],D)),t.on("keypress",B)}));var W,G=e.$eval(i[l+"Animation"]);x.animation=angular.isDefined(G)?!!G:f.animation;var Y=l+"AppendToBody";W=Y in i&amp;&amp;void 0===i[Y]||e.$eval(i[Y]),w=angular.isDefined(W)?W:w,e.$on("$destroy",(function(){H(),F(),x=null}))}}}}}]})).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(e,t,n,o){return{link:function(i,r,a){var s,c,l,u=i.$eval(a.tooltipTemplateTranscludeScope),d=0,p=function(){c&amp;&amp;(c.remove(),c=null),s&amp;&amp;(s.$destroy(),s=null),l&amp;&amp;(e.leave(l).then((function(){c=null})),c=l,l=null)};i.$watch(t.parseAsResourceUrl(a.uibTooltipTemplateTransclude),(function(t){var a=++d;t?(o(t,!0).then((function(o){if(a===d){var i=u.$new(),c=n(o)(i,(function(t){p(),e.enter(t,r)}));l=c,(s=i).$emit("$includeContentLoaded",t)}}),(function(){a===d&amp;&amp;(p(),i.$emit("$includeContentError",t))})),i.$emit("$includeContentRequested",t)):p()})),i.$on("$destroy",p)}}}]).directive("uibTooltipClasses",["$uibPosition",function(e){return{restrict:"A",link:function(t,n,o){if(t.placement){var i=e.parsePlacement(t.placement);n.addClass(i[0])}t.popupClass&amp;&amp;n.addClass(t.popupClass),t.animation&amp;&amp;n.addClass(o.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",(function(){return{restrict:"A",scope:{content:"@"},templateUrl:"fans/common/uib/tooltip-popup.html"}})).directive("uibTooltip",["$uibTooltip",function(e){return e("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",(function(){return{restrict:"A",scope:{contentExp:"&amp;",originScope:"&amp;"},templateUrl:"fans/common/uib/tooltip-template-popup.html"}})).directive("uibTooltipTemplate",["$uibTooltip",function(e){return e("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",(function(){return{restrict:"A",scope:{contentExp:"&amp;"},templateUrl:"fans/common/uib/tooltip-html-popup.html"}})).directive("uibTooltipHtml",["$uibTooltip",function(e){return e("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]);t.a="ui.bootstrap.tooltip"},Xk3Y:function(e,t,n){"use strict";var o=n("4m0D"),i=n.n(o);n("POGS");i.a.module("security",[]).factory("security",["$http","$q","$rootScope","$timeout","$window","localStorageService","ngDialog","toaster","utils",function(e,t,n,o,i,r,a,s,c){var l={showEmailNag:!1,user:null},u={currentUser:null,getCurrent:function(){return l},setCurrentUser:function(e){l.user=u.currentUser=e,l.showEmailNag=e&amp;&amp;-1===e.email.indexOf("#no-email")&amp;&amp;!e.email_confirmed&amp;&amp;!c.storage.get("hideEmailBar"),n.$broadcast("security.current.update",l)},getSettings:function(e){return{}},sendEmailValidation:function(){return e.get("/api/v1/auth/email/resend").then((function(e){s.pop("success","Check your Email","We re-sent the activation email, please click the activation link"),u.hideEmailNag()})).catch((function(e){s.pop("error","Error",e.data&amp;&amp;e.data.error||"Something went wrong, please contact support")}))},hideEmailNag:function(e){l.showEmailNag=!1,e&amp;&amp;c.storage.set("hideEmailBar",1,259200)},isAuthenticated:function(){return null!==l.user},logout:function(){var t=arguments.length&gt;0&amp;&amp;void 0!==arguments[0]&amp;&amp;arguments[0];e.post("/api/v1/auth/logout").then((function(){t?i.location.reload(!0):i.location.href="/"}))},openSignin:function(e){null===l.user&amp;&amp;(a.closeAll(),a.open({className:"ngdialog--signin",controller:["$scope",function(t){t.forceReload=e}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header nb pb-1"&gt;\n            &lt;h5 class="modal-title"&gt;Log in&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;security-signin-form force-reload="forceReload"&gt;&lt;/security-signin-form&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}))},openAuthForm:function(e){null===l.user&amp;&amp;(a.closeAll(),a.open({className:"ngdialog--auth-form"+(!0===e?" ngdialog--auth-form-banner":""),data:{show_compact:!0===e},template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header nb pb-1"&gt;\n            &lt;h5 class="modal-title"&gt;{{ ::(ngDialogData.show_compact === true ? \'Register to access\' : \'User Sign Up\') }}&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;security-auth-form show-compact="ngDialogData.show_compact"&gt;&lt;/security-auth-form&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}))},openCompleteSocialSignup:function(t){null===l.user&amp;&amp;(a.closeAll(),a.open({className:"ngdialog--complete-signup",controller:["$rootScope","$scope","$window","toaster","userTracking",function(n,o,i,r,a){o.data=t,o.recaptchaValid=!1,o.requireCaptcha=!1,o.isLoading=!1,o.submit=function(){if(!o.isLoading){o.isLoading=!0;var t=Object.assign({},o.data,{user_tracking_data:a.getUserTrackingDataAll()},{social_signup:!0});e.post("/api/v1/auth/signup",t).then((function(e){i.location.reload()})).catch((function(e){n.$broadcast("recaptcha.refresh"),o.requireCaptcha=e.data.require_captcha,r.pop("error","Error",e.data.error),o.isLoading=!1}))}}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Your account is almost ready&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;form name="completeSignupForm" ng-submit="completeSignupForm.$valid &amp;&amp; submit()" novalidate="novalidate" class="csf_security csf_security--social-form"&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Username&lt;/label&gt;\n                    &lt;input\n                        autocapitalize="off"\n                        autocomplete="off"\n                        autocorrect="off"\n                        class="form-control"\n                        name="username"\n                        ng-model="data.username"\n                        placeholder="Username"\n                        required="required"\n                        spellcheck="false"\n                        type="text"\n                        /&gt;\n                    &lt;form-error form="completeSignupForm" name="username"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;E-mail&lt;/label&gt;\n                    &lt;input class="form-control" name="email" ng-model="data.email" placeholder="E-mail" required="required" type="email" /&gt;\n                    &lt;form-error form="completeSignupForm" name="email"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group" ng-if="requireCaptcha"&gt;\n                    &lt;recaptcha ng-model="data.recaptcha" is-valid="recaptchaValid"&gt;&lt;/recaptcha&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n                        &lt;span ng-if="!isLoading"&gt;\n                            Complete Sign up\n                        &lt;/span&gt;\n                        &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n                    &lt;/button&gt;\n                &lt;/div&gt;\n            &lt;/form&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}))},openCompleteSocialSignupForExistingUser:function(t){null===l.user&amp;&amp;(a.closeAll(),a.open({className:"ngdialog--complete-signup",controller:["$rootScope","$scope","security","$window","toaster",function(n,o,i,r,a){o.data=t,o.openPasswordRecover=i.openPasswordRecover,o.isLoading=!1,o.submit=function(){o.isLoading||(o.isLoading=!0,e.post("/api/v1/auth/signin",o.data).then((function(e){r.location.reload()})).catch((function(e){n.$broadcast("recaptcha.refresh"),o.requireCaptcha=e.data.require_captcha,a.pop("error","Error",e.data.error),o.isLoading=!1})))}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Please Log In to Continue&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;form name="completeSignupForm" ng-submit="completeSignupForm.$valid &amp;&amp; submit()" novalidate="novalidate" class="csf_security csf_security--social-existing-form"&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;E-mail&lt;/label&gt;\n                    &lt;input class="form-control" name="email" ng-model="data.email" placeholder="E-mail" required="required" type="email" readonly /&gt;\n                    &lt;form-error form="completeSignupForm" name="email"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Password&lt;/label&gt;\n                    &lt;input class="form-control" name="password" ng-model="data.password" placeholder="Password" required="required" type="password" /&gt;\n                    &lt;form-error form="completeSignupForm" name="password"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group" ng-if="requireCaptcha"&gt;\n                    &lt;recaptcha ng-model="data.recaptcha" is-valid="recaptchaValid"&gt;&lt;/recaptcha&gt;\n                &lt;/div&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n                        &lt;span ng-if="!isLoading"&gt;\n                            Complete Sign In\n                        &lt;/span&gt;\n                        &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n                    &lt;/button&gt;\n                &lt;/div&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;a class="csf_security__btn_password btn btn-link btn-full-w" ng-click="openPasswordRecover(data.email)"&gt;\n                        Forgot Password?\n                    &lt;/a&gt;\n                &lt;/div&gt;\n            &lt;/form&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}))},openPasswordRecover:function(t){a.closeAll(),a.open({className:"ngdialog--security-password-recover",controller:["$rootScope","$scope","toaster",function(n,o,i){o.data={},t&amp;&amp;(o.data.email=t),o.isLoading=!1,o.submit=function(){o.isLoading||(o.isLoading=!0,e.post("/api/v1/auth/password/recover",o.data).then((function(e){i.pop("success","Success","We just sent you an email with instructions on how to reset your password."),o.closeThisDialog()})).catch((function(e){i.pop("error","Error",e.data.error),n.$broadcast("recaptcha.refresh"),o.isLoading=!1})))}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Reset Password&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;form name="passwordRecoverForm" ng-submit="passwordRecoverForm.$valid &amp;&amp; submit()" novalidate="novalidate" class="csf_security csf_security--recover-form"&gt;\n            &lt;div class="modal-body"&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;input class="form-control" name="email" ng-model="data.email" placeholder="E-mail" required="required" type="email" /&gt;\n                    &lt;form-error form="passwordRecoverForm" name="email"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;recaptcha ng-model="data.recaptcha"&gt;&lt;/recaptcha&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n                        &lt;span ng-if="!isLoading"&gt;\n                            Send Password Reset\n                        &lt;/span&gt;\n                        &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n                    &lt;/button&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/form&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})},openPasswordReset:function(t){return a.closeAll(),a.open({className:"ngdialog--security-password-reset",controller:["$scope","$window","toaster",function(n,o,i){n.data={token:t},n.isLoading=!1,n.submit=function(){n.isLoading||(n.isLoading=!0,e.post("/api/v1/auth/password/reset",n.data).then((function(e){i.pop("success","Success","Your password has been successfully updated."),n.closeThisDialog(),o.location.href="/"})).catch((function(e){i.pop("error","Error",e.data.error),n.isLoading=!1})))}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Set your new Password&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;form name="passwordResetForm" ng-submit="passwordResetForm.$valid &amp;&amp; submit()" novalidate="novalidate" class="csf_security csf_security--reset-form"&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;input class="form-control" name="password" ng-model="data.password" placeholder="Your new Password" required="required" type="password" /&gt;\n                    &lt;form-error form="passwordResetForm" name="password"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n                        &lt;span ng-if="!isLoading"&gt;\n                            Update Password\n                        &lt;/span&gt;\n                        &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n                    &lt;/button&gt;\n                &lt;/div&gt;\n            &lt;/form&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})},sendEmailConfirm:function(t){e.get("/api/v1/auth/email/confirm/"+t).then((function(e){s.pop("success","Thank you!","Your email has been confirmed."),i.location.href="/",o((function(){i.location.reload()}),1e3)})).catch((function(e){s.pop("error","Error",e.data.error)}))},getSignInOauthQuery:function(e){var t={model_ref:i.localStorage.getItem("model_ref"),return_uri:i.location.pathname};return e&amp;&amp;(t=Object.assign({},t,e)),Object.keys(t).filter((function(e){return!!t[e]})).map((function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])})).join("&amp;")},signInGoogle:function(e){i.location.href="/oauth/google/start?"+u.getSignInOauthQuery(e)},signInTwitter:function(e){i.location.href="/oauth/twitter/start?"+u.getSignInOauthQuery(e)},cookie:function(e,t){if(void 0===t)return r.get(e);r.set(e,t)},getCaptchaRequiredOnInit:function(){try{return WHITELIST_COUNTRY_ISO_CODE_LIST.indexOf(CURRENT_GEO.iso_code)&lt;0}catch(e){}return!1}};return u}]).component("securitySigninForm",{bindings:{forceReload:"&lt;",noFooter:"&lt;"},controller:["$http","$rootScope","$scope","$window","security","toaster","whitelabel",function(e,t,n,o,i,r,a){n.google=function(){i.signInGoogle()},n.twitter=function(){i.signInTwitter()},n.data={},n.isLoading=!1,n.openPasswordRecover=i.openPasswordRecover,n.recaptchaValid=!1,n.requireCaptcha=i.getCaptchaRequiredOnInit(),n.showTwitter="fantime"===SITE.signup_source;var s=this;n.signin=function(){n.isLoading||(n.isLoading=!0,e.post("/api/v1/auth/signin",n.data).then((function(e){"model"===e.data.type&amp;&amp;!0!==s.forceReload?SITE.root_user?o.location.href="/account/dashboard":o.location.href="/":o.location.reload()})).catch((function(e){t.$broadcast("recaptcha.refresh"),n.requireCaptcha=e.data.require_captcha,r.pop("error","Error",e.data.error),n.isLoading=!1})))},n.showPassword=function(e,t){var n=e.currentTarget;n&amp;&amp;(n=n.closest(".input-group"))&amp;&amp;(n=n.querySelector(".form-control"))&amp;&amp;null!=n.value&amp;&amp;("password"===n.type?(n.type="text",e.target.classList.add("icon-fan_eye"),e.target.classList.remove("icon-fan_eye-closed")):(n.type="password",e.target.classList.add("icon-fan_eye-closed"),e.target.classList.remove("icon-fan_eye")))}}],template:'&lt;form class="csf_security csf_security--signin-form" name="signinForm" ng-submit="signinForm.$valid &amp;&amp; signin()" novalidate="novalidate"&gt;\n    &lt;a class="csf_btn_social csf_btn_twitter btn btn-full-w mb-2" ng-click="twitter()" ng-show="showTwitter"&gt;\n        &lt;span class="icon icon-fan_twitter-plain"&gt;&lt;/span&gt;\n        &lt;span&gt;Sign in with &lt;b&gt;Twitter&lt;/b&gt;&lt;/span&gt;\n    &lt;/a&gt;\n    &lt;a class="csf_btn_social csf_btn_google btn btn-full-w" ng-click="google()"&gt;\n        &lt;span class="icon"&gt;\n            &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48"&gt;&lt;defs&gt;&lt;clipPath id="a" transform="translate(-326.5 -486)"&gt;&lt;path d="M371,506H350.5v8.5h11.8c-1.1,5.4-5.7,8.5-11.8,8.5a13,13,0,0,1,0-26,12.72,12.72,0,0,1,8.1,2.9l6.4-6.4A22,22,0,1,0,350.5,532c11,0,21-8,21-22A18.25,18.25,0,0,0,371,506Z" style="fill:none"/&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;title&gt;g-65&lt;/title&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,523V497l17,13Z" transform="translate(-326.5 -486)" style="fill:#fbbc05"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,497l17,13,7-6.1,24-3.9V486h-48v11Z" transform="translate(-326.5 -486)" style="fill:#ea4335"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,523l30-23,7.9,1,10.1-15v48h-48V523Z" transform="translate(-326.5 -486)" style="fill:#34a853"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M374.5,534l-31-24-4-3,35-10v37Z" transform="translate(-326.5 -486)" style="fill:#4285f4"/&gt;&lt;/g&gt;&lt;/svg&gt;\n        &lt;/span&gt;\n        &lt;span&gt;Sign in with &lt;b&gt;Google&lt;/b&gt;&lt;/span&gt;\n    &lt;/a&gt;\n    &lt;span class="csf_security__or"&gt;\n        &lt;span&gt;or&lt;/span&gt;\n    &lt;/span&gt;\n    &lt;div class="form-group"&gt;\n        &lt;input\n            autocapitalize="off"\n            autocomplete="off"\n            autocorrect="off"\n            class="form-control"\n            name="email"\n            ng-model="data.email"\n            placeholder="Username or Email"\n            required="required"\n            spellcheck="false"\n            type="text"\n            /&gt;\n        &lt;form-error form="signinForm" name="email"&gt;&lt;/form-error&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group"&gt;\n        &lt;div class="input-group"&gt;\n            &lt;input type="password" name="password" class="form-control" ng-model="data.password" placeholder="Enter Password" required="required"&gt;\n            &lt;span class="icon input-group-text icon-fan_eye-closed" ng-click="showPassword($event, \'password\')" style="cursor:pointer"&gt;&lt;/span&gt;\n        &lt;/div&gt;\n        &lt;form-error form="signinForm" name="password"&gt;&lt;/form-error&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group" ng-if="requireCaptcha"&gt;\n        &lt;recaptcha ng-model="data.recaptcha" is-valid="recaptchaValid"&gt;&lt;/recaptcha&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group"&gt;\n        &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n            &lt;span ng-if="!isLoading"&gt;\n                Log in\n            &lt;/span&gt;\n            &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n        &lt;/button&gt;\n    &lt;/div&gt;\n\n    &lt;div class="form-group"&gt;\n        &lt;a class="csf_security__btn_password btn btn-link btn-full-w" ng-click="openPasswordRecover()"&gt;\n            Forgot Password?\n        &lt;/a&gt;\n    &lt;/div&gt;\n\n&lt;/form&gt;\n'}).component("securityAuthForm",{bindings:{isSubscribe:"&lt;",model:"&lt;",noFooter:"&lt;",showCompact:"&lt;",subscribeData:"&lt;"},controller:["$http","$rootScope","$scope","$window","security","toaster","$route","ngDialog","$location","GoogleAnalyticsService","userTracking","utils",function(e,t,n,o,i,r,a,s,c,l,u,d){this.$onInit=function(){n.is_model=!!this.model,n.is_subscribe=!!this.isSubscribe,n.subscribe_data=this.subscribeData},n.data={},n.isLoading=!1,n.openSignin=i.openSignin,n.recaptchaValid=!1,n.requireCaptcha=i.getCaptchaRequiredOnInit(),n.showTwitter="fantime"===SITE.signup_source;var p=o.localStorage.getItem("model_ref"),f=a.current.params.username;n.google=function(){i.signInGoogle({is_model:n.is_model,studio:f})},n.twitter=function(){i.signInTwitter({is_model:n.is_model,studio:f})},n.setupCreator=function(){s.closeAll(),c.path("/creator")},n.signup=function(){if(!n.isLoading){n.isLoading=!0,n.data.is_model=n.is_model,n.data.model_ref=p,n.data.studio=f,n.is_subscribe&amp;&amp;d.storage.setObject("open_subscribe_benefits",n.subscribe_data,15);var i=Object.assign({},n.data,{user_tracking_data:u.getUserTrackingDataAll()});e.post("/api/v1/auth/signup",i).then((function(e){l.trackRegistration(),setTimeout((function(){e.redirect_url?o.location.href=e.redirect_url:o.location.reload()}),500)})).catch((function(e){t.$broadcast("recaptcha.refresh"),n.isLoading=!1,n.requireCaptcha=e.data.require_captcha,r.pop("error","Error",e.data.error)}))}},n.showPassword=function(e,t){var n=e.currentTarget;n&amp;&amp;(n=n.closest(".input-group"))&amp;&amp;(n=n.querySelector(".form-control"))&amp;&amp;null!=n.value&amp;&amp;("password"===n.type?(n.type="text",e.target.classList.add("icon-fan_eye"),e.target.classList.remove("icon-fan_eye-closed")):(n.type="password",e.target.classList.add("icon-fan_eye-closed"),e.target.classList.remove("icon-fan_eye")))}}],template:'&lt;form class="csf_security csf_security--signup-form" name="signinForm" ng-submit="signinForm.$valid &amp;&amp; signup()" novalidate="novalidate"&gt;\n\n    &lt;a class="csf_btn_social csf_btn_twitter btn btn-full-w mb-2" ng-click="twitter()" ng-if="::($ctrl.showCompact !== true)" ng-show="showTwitter"&gt;\n        &lt;span class="icon icon-fan_twitter-plain"&gt;&lt;/span&gt;\n        &lt;span&gt;Sign in with &lt;b&gt;Twitter&lt;/b&gt;&lt;/span&gt;\n    &lt;/a&gt;\n\n    &lt;a class="csf_btn_social csf_btn_google btn btn-full-w" ng-click="google()" ng-if="::($ctrl.showCompact !== true)"&gt;\n        &lt;span class="icon"&gt;\n            &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48"&gt;&lt;defs&gt;&lt;clipPath id="a" transform="translate(-326.5 -486)"&gt;&lt;path d="M371,506H350.5v8.5h11.8c-1.1,5.4-5.7,8.5-11.8,8.5a13,13,0,0,1,0-26,12.72,12.72,0,0,1,8.1,2.9l6.4-6.4A22,22,0,1,0,350.5,532c11,0,21-8,21-22A18.25,18.25,0,0,0,371,506Z" style="fill:none"/&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;title&gt;g-65&lt;/title&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,523V497l17,13Z" transform="translate(-326.5 -486)" style="fill:#fbbc05"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,497l17,13,7-6.1,24-3.9V486h-48v11Z" transform="translate(-326.5 -486)" style="fill:#ea4335"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M326.5,523l30-23,7.9,1,10.1-15v48h-48V523Z" transform="translate(-326.5 -486)" style="fill:#34a853"/&gt;&lt;/g&gt;&lt;g style="clip-path:url(#a)"&gt;&lt;path d="M374.5,534l-31-24-4-3,35-10v37Z" transform="translate(-326.5 -486)" style="fill:#4285f4"/&gt;&lt;/g&gt;&lt;/svg&gt;\n        &lt;/span&gt;\n        &lt;span&gt;Sign in with &lt;b&gt;Google&lt;/b&gt;&lt;/span&gt;\n    &lt;/a&gt;\n\n    &lt;span class="csf_security__or" ng-if="::($ctrl.showCompact !== true)"&gt;\n        &lt;span&gt;or&lt;/span&gt;\n    &lt;/span&gt;\n    &lt;div class="form-group"&gt;\n        &lt;input\n            autocapitalize="off"\n            autocomplete="off"\n            autocorrect="off"\n            class="form-control"\n            name="username"\n            ng-if="::($ctrl.showCompact !== true)"\n            ng-model="data.username"\n            placeholder="Username"\n            required="required"\n            spellcheck="false"\n            type="text"\n        /&gt;\n        &lt;form-error form="signinForm" name="username"&gt;&lt;/form-error&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group"&gt;\n        &lt;input class="form-control" name="email" ng-model="data.email" placeholder="{{ is_model ? \'Email\' : \'Email (optional)\' }}" type="email" /&gt;\n        &lt;form-error form="signinForm" name="email"&gt;&lt;/form-error&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group"&gt;\n        &lt;div class="input-group"&gt;\n            &lt;input type="password" name="password" class="form-control" ng-model="data.password" placeholder="Enter Password" required="required"&gt;\n            &lt;span class="icon input-group-text icon-fan_eye-closed" ng-click="showPassword($event, \'password\')" style="cursor:pointer"&gt;&lt;/span&gt;\n        &lt;/div&gt;\n        &lt;form-error form="signinForm" name="password"&gt;&lt;/form-error&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group" ng-if="requireCaptcha"&gt;\n        &lt;recaptcha ng-model="data.recaptcha" is-valid="recaptchaValid"&gt;&lt;/recaptcha&gt;\n    &lt;/div&gt;\n    &lt;div class="form-group"&gt;\n        &lt;button class="btn btn-dark btn-full-w loader" type="submit" ng-disabled="isLoading"&gt;\n            &lt;span ng-if="!isLoading"&gt;\n                Sign up\n            &lt;/span&gt;\n            &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n        &lt;/button&gt;\n    &lt;/div&gt;\n\n    &lt;div ng-if="::($ctrl.noFooter !== true)"&gt;\n        &lt;div class="form-group"&gt;\n            &lt;a class="csf_security__btn_login btn btn-link btn-full-w" ng-click="openSignin()"&gt;\n                Already a member? &lt;strong&gt;Log in here&lt;/strong&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n\n        &lt;span class="csf_security__or" ng-if="::($ctrl.showCompact !== true &amp;&amp; $ctrl.model !== true)"&gt;&lt;/span&gt;\n\n        &lt;div class="form-group"&gt;\n            &lt;a class="csf_security__btn_login btn btn-link btn-full-w" ng-click="setupCreator()" ng-if="::($ctrl.showCompact !== true &amp;&amp; $ctrl.model !== true)"&gt;\n                Content creators &lt;strong&gt;sign up here&lt;/strong&gt;\n            &lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n\n&lt;/form&gt;\n'}).provider("securityAuthorization",{requireModelDirectPay:["securityAuthorization",function(e){return e.requireModelDirectPay()}],requireModelUser:["securityAuthorization",function(e){return e.requireModelUser()}],requireUser:["securityAuthorization",function(e){return e.requireUser()}],$get:["$q","$location","security","toaster",function(e,t,n,o){return{requireModelDirectPay:function(){var i=e.defer(),r=n.getCurrent();return n.isAuthenticated()&amp;&amp;"model"===r.user.type&amp;&amp;!0===r.user.is_direct_pay?i.resolve(r):(o.pop("error","Error","Not authorized."),t.path("/")),i.promise},requireModelUser:function(){var i=e.defer(),r=n.getCurrent();return n.isAuthenticated()&amp;&amp;"model"===r.user.type?i.resolve(r):(o.pop("error","Error","Not authorized."),t.path("/")),i.promise},requireUser:function(){var i=e.defer(),r=n.getCurrent();return n.isAuthenticated()?i.resolve(r):(o.pop("error","Error","Not authorized."),t.path("/")),i.promise}}}]});t.a="security"},"aq+q":function(e,t){
/**
 * @license AngularJS v1.7.9
 * (c) 2010-2018 Google, Inc. http://angularjs.org
 * License: MIT
 */
!function(e,t){"use strict";function n(e,t){var n=[],o=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,(function(e,t,o,i){var r="?"===i||"*?"===i,a="*"===i||"*?"===i;return n.push({name:o,optional:r}),t=t||"",(r?"(?:"+t:t+"(?:")+(a?"(.+?)":"([^/]+)")+(r?"?)?":")")})).replace(/([/$*])/g,"\\$1");return t.ignoreTrailingSlashes&amp;&amp;(o=o.replace(/\/+$/,"")+"/*"),{keys:n,regexp:new RegExp("^"+o+"(?:[?#]|$)",t.caseInsensitiveMatch?"i":"")}}var o,i,r,a,s,c=t.module("ngRoute",[]).info({angularVersion:"1.7.9"}).provider("$route",(function(){function e(e,n){return t.extend(Object.create(e),n)}o=t.isArray,i=t.isObject,r=t.isDefined,a=t.noop;var c={};this.when=function(e,r){var a=function(e,t){if(o(e)){t=t||[];for(var n=0,r=e.length;n&lt;r;n++)t[n]=e[n]}else if(i(e))for(var a in t=t||{},e)"$"===a.charAt(0)&amp;&amp;"$"===a.charAt(1)||(t[a]=e[a]);return t||e}(r);if(t.isUndefined(a.reloadOnUrl)&amp;&amp;(a.reloadOnUrl=!0),t.isUndefined(a.reloadOnSearch)&amp;&amp;(a.reloadOnSearch=!0),t.isUndefined(a.caseInsensitiveMatch)&amp;&amp;(a.caseInsensitiveMatch=this.caseInsensitiveMatch),c[e]=t.extend(a,{originalPath:e},e&amp;&amp;n(e,a)),e){var s="/"===e[e.length-1]?e.substr(0,e.length-1):e+"/";c[s]=t.extend({originalPath:e,redirectTo:e},n(s,a))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(e){return"string"==typeof e&amp;&amp;(e={redirectTo:e}),this.when(null,e),this},s=!0,this.eagerInstantiationEnabled=function(e){return r(e)?(s=e,this):s},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser",function(n,o,i,r,s,u,d,p){var f,m,g=!1,h={routes:c,reload:function(){g=!0;var e={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0,g=!1}};n.$evalAsync((function(){v(e),e.defaultPrevented||b()}))},updateParams:function(e){if(!this.current||!this.current.$$route)throw l("norout","Tried updating route with no current route");e=t.extend({},this.current.params,e),o.path(w(this.current.$$route.originalPath,e)),o.search(e)}};return n.$on("$locationChangeStart",v),n.$on("$locationChangeSuccess",b),h;function v(i){var r,a,s,l,u=h.current;t.forEach(c,(function(n,i){!a&amp;&amp;(r=function(e,t){var n=t.keys,o={};if(!t.regexp)return null;var i=t.regexp.exec(e);if(!i)return null;for(var r=1,a=i.length;r&lt;a;++r){var s=n[r-1],c=i[r];s&amp;&amp;c&amp;&amp;(o[s.name]=c)}return o}(o.path(),n))&amp;&amp;((a=e(n,{params:t.extend({},o.search(),r),pathParams:r})).$$route=n)})),f=a||c.null&amp;&amp;e(c.null,{params:{},pathParams:{}}),s=f,l=u,(m=!g&amp;&amp;s&amp;&amp;l&amp;&amp;s.$$route===l.$$route&amp;&amp;(!s.reloadOnUrl||!s.reloadOnSearch&amp;&amp;t.equals(s.pathParams,l.pathParams)))||!u&amp;&amp;!f||n.$broadcast("$routeChangeStart",f,u).defaultPrevented&amp;&amp;i&amp;&amp;i.preventDefault()}function b(){var e=h.current,o=f;if(m)e.params=o.params,t.copy(e.params,i),n.$broadcast("$routeUpdate",e);else if(o||e){g=!1,h.current=o;var s=r.resolve(o);p.$$incOutstandingRequestCount("$route"),s.then(_).then(y).then((function(r){return r&amp;&amp;s.then($).then((function(r){o===h.current&amp;&amp;(o&amp;&amp;(o.locals=r,t.copy(o.params,i)),n.$broadcast("$routeChangeSuccess",o,e))}))})).catch((function(t){o===h.current&amp;&amp;n.$broadcast("$routeChangeError",o,e,t)})).finally((function(){p.$$completeOutstandingRequest(a,"$route")}))}}function _(e){var n={route:e,hasRedirection:!1};if(e)if(e.redirectTo)if(t.isString(e.redirectTo))n.path=w(e.redirectTo,e.params),n.search=e.params,n.hasRedirection=!0;else{var i=o.path(),a=o.search(),c=e.redirectTo(e.pathParams,i,a);t.isDefined(c)&amp;&amp;(n.url=c,n.hasRedirection=!0)}else if(e.resolveRedirectTo)return r.resolve(s.invoke(e.resolveRedirectTo)).then((function(e){return t.isDefined(e)&amp;&amp;(n.url=e,n.hasRedirection=!0),n}));return n}function y(e){var t=!0;if(e.route!==h.current)t=!1;else if(e.hasRedirection){var n=o.url(),i=e.url;i?o.url(i).replace():i=o.path(e.path).search(e.search).replace().url(),i!==n&amp;&amp;(t=!1)}return t}function $(e){if(e){var n=t.extend({},e.resolve);t.forEach(n,(function(e,o){n[o]=t.isString(e)?s.get(e):s.invoke(e,null,null,o)}));var o=function(e){var n,o;t.isDefined(n=e.template)?t.isFunction(n)&amp;&amp;(n=n(e.params)):t.isDefined(o=e.templateUrl)&amp;&amp;(t.isFunction(o)&amp;&amp;(o=o(e.params)),t.isDefined(o)&amp;&amp;(e.loadedTemplateUrl=d.valueOf(o),n=u(o)));return n}(e);return t.isDefined(o)&amp;&amp;(n.$template=o),r.all(n)}}function w(e,n){var o=[];return t.forEach((e||"").split(":"),(function(e,t){if(0===t)o.push(e);else{var i=e.match(/(\w+)(?:[?*])?(.*)/),r=i[1];o.push(n[r]),o.push(i[2]||""),delete n[r]}})),o.join("")}}]})).run(u),l=t.$$minErr("ngRoute");function u(e){s&amp;&amp;e.get("$route")}function d(e,n,o){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(i,r,a,s,c){var l,u,d,p=a.autoscroll,f=a.onload||"";function m(){d&amp;&amp;(o.cancel(d),d=null),l&amp;&amp;(l.$destroy(),l=null),u&amp;&amp;((d=o.leave(u)).done((function(e){!1!==e&amp;&amp;(d=null)})),u=null)}function g(){var a=e.current&amp;&amp;e.current.locals,s=a&amp;&amp;a.$template;if(t.isDefined(s)){var d=i.$new(),g=e.current,h=c(d,(function(e){o.enter(e,null,u||r).done((function(e){!1===e||!t.isDefined(p)||p&amp;&amp;!i.$eval(p)||n()})),m()}));u=h,(l=g.scope=d).$emit("$viewContentLoaded"),l.$eval(f)}else m()}i.$on("$routeChangeSuccess",g),g()}}}function p(e,t,n){return{restrict:"ECA",priority:-400,link:function(o,i){var r=n.current,a=r.locals;i.html(a.$template);var s=e(i.contents());if(r.controller){a.$scope=o;var c=t(r.controller,a);r.controllerAs&amp;&amp;(o[r.controllerAs]=c),i.data("$ngControllerController",c),i.children().data("$ngControllerController",c)}o[r.resolveAs||"$resolve"]=a,s(o)}}}u.$inject=["$injector"],c.provider("$routeParams",(function(){this.$get=function(){return{}}})),c.directive("ngView",d),c.directive("ngView",p),d.$inject=["$route","$anchorScroll","$animate"],p.$inject=["$compile","$controller","$route"]}(window,window.angular)},fWgf:function(e,t,n){function o(e){return(o="function"==typeof Symbol&amp;&amp;"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&amp;&amp;"function"==typeof Symbol&amp;&amp;e.constructor===Symbol&amp;&amp;e!==Symbol.prototype?"symbol":typeof e})(e)}var i=n("8N48"),r=n("S8U6");function a(e){this.cb=e}function s(e,t){if(e&amp;&amp;t){if("object"==e.type)return c(e.fields,t);if("array"==e.type){for(var n=[],o=t.length,i=0;i&lt;o;i++)n.push(c(e.fields,t[i]));return n}}}function c(e,t){for(var n=t[0],o=t[1],i=t.length&gt;2?t[2]:{},r=e.length,a=0;a&lt;r;a++){if(n&amp;1&lt;&lt;a)i[e[a]]=o.shift()}return i}function l(e,t){if("object"==e.type&amp;&amp;t.constructor==Object)return u(e.fields,t);if("array"==e.type&amp;&amp;t.constructor==Array){for(var n=[],o=t.length,i=0;i&lt;o;i++)n.push(u(e.fields,t[i]));return n}}function u(e,t){if("object"!=o(t))return t;for(var n=0,i={},r=[],a={},s=!1,c=e.length,l=0;l&lt;c;l++){var u=e[l];void 0!==t[u]&amp;&amp;(n|=1&lt;&lt;l,r.push(t[u]),a[u]=1)}if(n&gt;0)for(var d=Object.keys(t),p=0;p&lt;d.length;p++){var f=d[p];a[f]||(i[f]=t[f],s=!0)}else i=t,s=!0;return s?[n,r,i]:[n,r]}e.exports.encode=function(e,t){var n=function(e,t){if(!i[e]||"object"!=o(t))return!1;for(var n=0,r=[],a={},s={},c=i[e],u=c.length,d=0;d&lt;u;d++){var p=c[d];"string"==typeof p&amp;&amp;null!=t[p]?(n|=1&lt;&lt;d,r.push(t[p]),s[p]=1):"string"!=typeof p&amp;&amp;null!=t[p.key]&amp;&amp;(n|=1&lt;&lt;d,r.push(l(p,t[p.key])),s[p.key]=1)}if(n&gt;0)for(var f=Object.keys(t),m=0;m&lt;f.length;m++){var g=f[m];s[g]||(a[g]=t[g])}else a=t;return[n,r,a]}(e,t);if(n){var a=n[0],s=n[1];t=n[2]}var c=[r.getId(e),t];return a&gt;0&amp;&amp;(c.push(a),c.push(s)),JSON.stringify(c)},a.prototype.onMessage=function(e){try{var t=JSON.parse(e),n=r.getName(t[0]),o=t[1];if(t.length&gt;2)o=function(e,t,n,o){var r=i[e];if(r)for(var a=r.length,c=0;c&lt;a;c++)if(n&amp;1&lt;&lt;c){var l=r[c];"string"==typeof l?t[l]=o.shift():t[l.key]=s(l,o.shift())}return t}(n,o,t[2],t[3]);this.cb(n,o)}catch(t){console.log(t),console.dir(t),console.dir(e)}},a.prototype.updateTemplates=function(e){i=e.templates,r.setEvents(e.events)},e.exports.Decoder=a},fbB5:function(e,t,n){"use strict";var o=n("4m0D"),i=n.n(o),r=n("HCI0");i.a.module("fans_countdown_offer",[r.a]).component("countdownOffer",{bindings:{offer:"@?",endsAt:"&lt;",twoLines:"&lt;?"},controller:["$scope","utils","$timeout",function(e,t,n){this.$onInit=function(){e.offer=this.offer||"Special offer ends",e.twoLines=this.twoLines,e.showCounter=!0;var o=this.endsAt;e.onTimeout=function(){var i=o-Date.now()/1e3-1,r=t.date.getCountDownFromSeconds(i);i&gt;0?r.d&gt;0?e.counter=t.date.getDiffInTextual(new Date,new Date(1e3*o)).replace("in ",""):(e.counter=t.number.pad(r.h)+":"+t.number.pad(r.m)+":"+t.number.pad(r.s),n(e.onTimeout,1e3)):e.showCounter=!1},n(e.onTimeout,1)}}],template:'&lt;span ng-if="showCounter"&gt;{{offer}}&lt;br ng-if="twoLines"&gt; in {{counter}}!&lt;/span&gt;\n'});t.a="fans_countdown_offer"},h7dw:function(e,t,n){"use strict";var o=n("roCF"),i=n("4m0D");n.n(i).a.module("services.socket.lobby",[o.a]).factory("lobbySocket",["$rootScope","socketFactory",function(e,t){var n="undefined"!=typeof ANGULAR_SOCKET_SERVER?ANGULAR_SOCKET_SERVER:"wss://node2-ord.livemediahost.com:3000/",o=t.get(n),i=Math.floor(250*Math.random()+50);return o.on("connect",(function(){i=Math.floor(250*Math.random()+50)})),o.on("_disconnect",(function(){i=Math.min(6e4,2*i),setTimeout((function(){o.socket=o.makeWebSocket()}),i)})),o.forward("lobby:",["v3.authorize.success","v3.client.version","v3.token.update","v3.tip.received","v3.private.end","v3.spy.end","v3.cam2cam.start","v3.cam2cam.end","v3.lovense.heartbeat","v3.pm.list","v3.pm.new","v3.pm.close","v3.autosilenced","v3.media.encoded","v3.fans.direct_message.chat_reload","v3.fans.direct_message.new_message","v3.lobby.discover","v3.lobby.discovered","v3.sharecam.request","v3.sharecam.accepted","v3.sharecam.declined","v3.user_friend.request","v3.user_friend.accepted","v3.user_friend.deleted","v3.lobby.status_update.to_user","v3.stream.ingest_info","v3.stream.ingest_info.studio_models","disconnect"],e),o}]),t.a="services.socket.lobby"},hdXK:function(e,t,n){"use strict";var o=n("4m0D"),i='&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title" ng-if="![\'menu\', \'post_media\'].includes(tipType)"&gt;Send Tip to {{ model.user.display_name }}&lt;/h5&gt;\n            &lt;h5 class="modal-title" ng-if="tipType === \'menu\'"&gt;Tip Menu Purchase for {{ model.user.display_name }}&lt;/h5&gt;\n            &lt;h5 class="modal-title" ng-if="tipType === \'post_media\'"&gt;Uncensor picture for {{ model.user.display_name }}&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n\n        &lt;form name="tipForm" ng-submit="tipForm.$valid &amp;&amp; submit()" novalidate="novalidate"&gt;\n            &lt;div class="modal-body"&gt;\n                &lt;div class="form-group" ng-if="custom &amp;&amp; custom.description"&gt;\n                    &lt;label class="csf__label"&gt;Description&lt;/label&gt;\n                    {{ custom.description }}\n                &lt;/div&gt;\n                &lt;div class="form-group"&gt;\n                    &lt;label class="csf__label"&gt;Amount&lt;/label&gt;\n                    &lt;div class="input-group"&gt;\n                        &lt;span class="input-group-text"&gt;$&lt;/span&gt;\n                        &lt;select ng-if="data.amount_list" class="form-control" name="amount" ng-model="data.amount" ng-options="o as o for o in data.amount_list" required="required" ng-disabled="custom &amp;&amp; custom.amount"&gt;&lt;/select&gt;\n                        &lt;input ng-if="!data.amount_list" id="modelTipFormCustomAmount" placeholder="Enter tip amount i.e. 5.00" currency-mask type="number" class="form-control" name="amount" ng-model="data.amount" required="required" inputmode="decimal" autofocus ng-disabled="custom &amp;&amp; custom.amount &amp;&amp; !custom.is_min_amount" step=".01" min="{{ minAmount }}" /&gt;\n                    &lt;/div&gt;\n                    &lt;form-error form="tipForm" name="amount"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group" ng-if="tipType !== \'menu\'"&gt;\n                    &lt;input type="text" placeholder="Message (optional)" class="form-control" name="message" ng-model="data.message"/&gt;\n                &lt;/div&gt;\n                &lt;div class="form-group" ng-if="tipType === \'menu\'"&gt;\n                    &lt;label class="csf__label"&gt;Special Requests&lt;/label&gt;\n                    &lt;textarea placeholder="Enter special requests (optional)" class="form-control" name="special_requests" ng-model="data.special_requests"&gt;&lt;/textarea&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;div class="modal-footer"&gt;\n                &lt;button\n                    class="btn btn-outline-primary fw-bold loader"\n                    type="submit"\n                    ng-disabled="isLoading"&gt;\n                        &lt;span ng-if="!isLoading"&gt;{{ tipType === \'post_media\' ? \'Uncensor\' : \'Send Tip\' }}&lt;/span&gt;\n                        &lt;svg-loading ng-if="isLoading"&gt;&lt;/svg-loading&gt;\n                &lt;/button&gt;\n            &lt;/div&gt;\n\n        &lt;/form&gt;\n\n    &lt;/div&gt;\n&lt;/div&gt;\n';n.n(o).a.module("fans_service_model",[]).service("ModelService",["$document","$http","$httpParamSerializer","$q","$window","autoTimeout","browser","ngDialog","security","toaster","CurrencyMaskUtils","GoogleAnalyticsService",function(e,t,n,o,r,a,s,c,l,u,d,p){var f=this;f.getByUsername=function(e,n){var i=o.defer();return n=n||{},t.get("/api/v1/user/"+e,{params:n}).then((function(e){i.resolve(e.data)})).catch((function(e){i.reject(e.data)})),i.promise},f.getTopList=function(e,n){var i=o.defer();return t.get("/api/v1/user/top?p="+e+"&amp;s="+n).then((function(e){i.resolve(e.data)})).catch((function(e){i.reject({error:e.data.error})})),i.promise},f.getRankList=function(e,n){var i=o.defer();return t.get("/api/v1/user/rank",{params:{p:e,l:n}}).then((function(e){i.resolve(e.data)})).catch((function(e){i.reject({error:e.data.error})})),i.promise},f.search=function(e){var n=o.defer();return t.get("/api/v1/user/search?query="+e).then((function(e){n.resolve(e.data)})).catch((function(e){n.reject({error:e.data.error})})),n.promise},f.subscribe=function(e,t,n){if(l.isAuthenticated()){var o={duration:t,return_uri:window.location.pathname};n&amp;&amp;(o.price=n),h(e,"subscribe",o)}else l.openAuthForm()},f.openSubscribeBenefits=function(e,t,n){var o="ngdialog ngdialog--subscribe-benefits ngdialog--subscribe-benefits-register";n&amp;&amp;(o+=" ngdialog--subscribe-benefits-register-free");var i='&lt;div class="modal-dialog  modal-fullscreen-md-down registered"&gt;\n    &lt;div class="modal-content"&gt;\n\n        &lt;div class="csf_benef__cover_content" back-img="{{ cover | webp }}"&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n            &lt;h2&gt;{{name}}&lt;/h2&gt;\n        &lt;/div&gt;\n\n        &lt;div class="csf_benef__content"&gt;\n\n            &lt;div class="csf_benef__content_col col1"&gt;\n                &lt;div class="csf_benef__benefits"&gt;\n                    &lt;h3&gt;GET ALL OF THIS...&lt;/h3&gt;\n                    &lt;ul class="max"&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Access Exclusive Content In Feed&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Direct Messaging&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Live Streams&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Cancel Anytime!&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Support Your Favorite Creator&lt;/li&gt;\n                    &lt;/ul&gt;\n                &lt;/div&gt;\n                &lt;div class="csf_benef__powered_by"&gt;\n                    &lt;span&gt;Powered by&lt;/span&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;div class="csf_benef__content_col col2"&gt;\n                &lt;div class="csf_benef__action max"&gt;\n                    &lt;div class="csf_avatar_holder d-flex mb-2"&gt;\n                        &lt;avatar user="model.user" class="me-2"&gt;&lt;/avatar&gt;\n                        &lt;h2&gt;{{name}}&lt;/h2&gt;\n                    &lt;/div&gt;\n\n                    &lt;div class="csf_benef__content_main_button_holder csf-packages d-flex align-items-center justify-content-center mx-auto mt-md-1 mt-4"&gt;\n                        &lt;countdown-offer\n                            ng-if="!duration &amp;&amp; !model.can_trial &amp;&amp; model.can_winback &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.winback_offer_ends_at"\n                            class="csf_model_banner_winback_time_remain fs-0750 fw-bold w-100 fst-italic"\n                            two-lines="false"\n                            ends-at="model.setting.winback_offer_ends_at"&gt;\n                        &lt;/countdown-offer&gt;\n                        &lt;countdown-offer\n                            ng-if="!duration &amp;&amp; model.can_trial &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.trial_offer_ends_at"\n                            class="csf_model_banner_winback_time_remain fs-0750 fw-bold w-100 fst-italic"\n                            two-lines="false"\n                            ends-at="model.setting.trial_offer_ends_at"\n                            offer="New Member Trial offer ends"&gt;\n                        &lt;/countdown-offer&gt;\n                        &lt;button class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount"\n                                ng-click="closeThisDialog();subscribe(model.user.username, duration)"&gt;\n\n                            &lt;section ng-if="!model.setting.subscription_price"&gt;\n                                &lt;span&gt;Subscribe for FREE&lt;/span&gt;\n                            &lt;/section&gt;\n\n                            &lt;section ng-if="duration &amp;&amp; duration !== \'1mo\' &amp;&amp; model.setting.subscription_price"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_discount[duration].price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for {{ duration | subscriptionMonths }}\n                                &lt;b ng-if="model.setting.subscription_discount[duration] &amp;&amp; model.setting.subscription_discount[duration].percent&gt;0"&gt;{{ model.setting.subscription_discount[duration].percent }}%&lt;br&gt;off&lt;/b&gt;\n                            &lt;/section&gt;\n\n                            &lt;section ng-if="duration &amp;&amp; duration === \'1mo\' &amp;&amp; model.setting.subscription_price"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/section&gt;\n\n                            &lt;section ng-if="!duration &amp;&amp; model.can_trial &amp;&amp; model.setting.subscription_price"&gt;\n                                &lt;b ng-if="model.setting.trial_discount &amp;&amp; model.setting.trial_price &amp;&amp; model.setting.trial_discount &gt; 0"&gt;{{ model.setting.trial_discount }}%&lt;br&gt;off&lt;/b&gt;\n                                &lt;b ng-if="!model.setting.trial_price"&gt;100%&lt;br&gt;off&lt;/b&gt;\n                                &lt;span ng-if="!model.setting.trial_price"&gt;\n                                    Subscribe for FREE\n                                &lt;/span&gt;\n                                &lt;span ng-if="model.setting.trial_price &gt; 0"&gt;\n                                    Subscribe for {{ model.setting.trial_price | currency }}\n                                &lt;/span&gt;\n                                &lt;br&gt;for {{ model.setting.trial_duration_in_day }} day{{ model.setting.trial_duration_in_day !== 1 ? \'s\' : \'\' }}\n                                &lt;u ng-if="model.can_trial &amp;&amp; model.setting.trial_convert"&gt;&lt;br&gt;{{ model.setting.subscription_price | currency }}/mo after trial period&lt;/u&gt;\n                            &lt;/section&gt;\n\n                            &lt;section ng-if="!duration &amp;&amp; !model.can_trial &amp;&amp; model.can_winback &amp;&amp; model.setting.subscription_price"&gt;\n                                &lt;b ng-if="model.setting.winback_discount &gt; 0"&gt;{{ model.setting.winback_discount }}%&lt;br&gt;off&lt;/b&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.winback_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/section&gt;\n\n                            &lt;section ng-if="!duration &amp;&amp; !model.can_trial &amp;&amp; !model.can_winback &amp;&amp; model.setting.subscription_price"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/section&gt;\n                        &lt;/button&gt;\n                        &lt;div ng-if="!duration &amp;&amp; !model.can_trial &amp;&amp; model.can_winback &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.winback_offer_ends_at &amp;&amp; model.setting.winback_subscription_limit &amp;&amp; model.setting.winback_subscription_limit &lt;= 50" class="text-danger fw-bold fs-0875 w-100"&gt;Only {{model.setting.winback_subscription_limit}} remaining!&lt;/div&gt;\n                        &lt;div ng-if="!duration &amp;&amp; model.can_trial &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.trial_offer_ends_at &amp;&amp; model.setting.trial_subscription_limit &amp;&amp; model.setting.trial_subscription_limit &lt;= 50" class="text-danger fw-bold fs-0875 w-100"&gt;Only {{model.setting.trial_subscription_limit}} remaining!&lt;/div&gt;\n\n                        &lt;a ng-click="toggleOtherOffers()" class="mt-2 fs-6 d-block text-center"\n                           ng-if="!showOtherOffers &amp;&amp; model.setting.subscription_price &amp;&amp; productCnt &gt; 1"&gt;\n                            &lt;small&gt;Other offers&lt;/small&gt;\n                        &lt;/a&gt;\n\n                        &lt;div ng-if="showOtherOffers" class="w-100"&gt;\n\n                            \x3c!-- DISCOUNTS --\x3e\n                            &lt;button ng-repeat="(key, value) in model.setting.subscription_discount"\n                                    ng-if="(duration &amp;&amp; key !== duration) || !duration"\n                                    class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount mt-2"\n                                    ng-click="closeThisDialog();subscribe(model.user.username, key)"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_discount[key].price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for {{ key | subscriptionMonths }}\n                                &lt;b ng-if="model.setting.subscription_discount[key].percent &gt; 0"&gt;{{ model.setting.subscription_discount[key].percent }}%&lt;br&gt;off&lt;/b&gt;\n                            &lt;/button&gt;\n\n                            \x3c!-- ONE MONTH DEFAULT --\x3e\n                            &lt;button ng-if="!duration &amp;&amp; model.setting.subscription_price &amp;&amp; (model.can_trial || model.can_winback)"\n                                    class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount mt-2"\n                                    ng-click="closeThisDialog();subscribe(model.user.username, \'1mo\')"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/button&gt;\n\n                            \x3c!-- ONE MONTH DEFAULT --\x3e\n                            &lt;button ng-if="duration &amp;&amp; duration !== \'1mo\' &amp;&amp; model.setting.subscription_price"\n                                    class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount mt-2"\n                                    ng-click="closeThisDialog();subscribe(model.user.username, \'1mo\')"&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.subscription_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/button&gt;\n\n                            \x3c!-- WINBACK --\x3e\n                            &lt;countdown-offer ng-if="duration &amp;&amp; !model.can_trial &amp;&amp; model.can_winback &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.winback_offer_ends_at"\n                            class="csf_model_banner_winback_time_remain fs-0750 fw-bold w-100 mt-2 d-block" two-lines="false" ends-at="model.setting.winback_offer_ends_at"&gt;&lt;/countdown-offer&gt;\n                            &lt;button ng-if="duration &amp;&amp; !model.can_trial &amp;&amp; model.can_winback &amp;&amp; model.setting.subscription_price"\n                                    ng-class="{\'mt-2\': !model.setting.winback_offer_ends_at}"\n                                    class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount"\n                                    ng-click="closeThisDialog();subscribe(model.user.username, null)"&gt;\n                                &lt;b ng-if="model.setting.winback_discount &gt; 0"&gt;{{ model.setting.winback_discount }}%&lt;br&gt;off&lt;/b&gt;\n                                &lt;span&gt;Subscribe for {{ model.setting.winback_price | currency }}&lt;/span&gt;\n                                &lt;br&gt;for one month\n                            &lt;/button&gt;\n\n                            \x3c!-- TRIAL --\x3e\n                            &lt;countdown-offer\n                                ng-if="duration &amp;&amp; model.can_trial &amp;&amp; model.setting.subscription_price &amp;&amp; model.setting.winback_offer_ends_at"\n                                class="csf_model_banner_winback_time_remain fs-0750 fw-bold w-100 mt-2 d-block"\n                                two-lines="false"\n                                ends-at="model.setting.winback_offer_ends_at"\n                                offer="New Member Trial offer ends"\n                            &gt;&lt;/countdown-offer&gt;\n                            &lt;button ng-if="duration &amp;&amp; model.can_trial &amp;&amp; model.setting.subscription_price"\n                                    ng-class="{\'mt-2\': !model.setting.winback_offer_ends_at}"\n                                    class="btn btn-full-w csf_profile__content_package csf-package-single csf-package-discount"\n                                    ng-click="closeThisDialog();subscribe(model.user.username, null)"&gt;\n                                &lt;b ng-if="model.setting.trial_discount &amp;&amp; model.setting.trial_price &amp;&amp; model.setting.trial_discount &gt; 0"&gt;{{ model.setting.trial_discount }}%&lt;br&gt;off&lt;/b&gt;\n                                &lt;b ng-if="model.setting.trial_discount &amp;&amp; !model.setting.trial_price"&gt;100%&lt;br&gt;off&lt;/b&gt;\n                                &lt;span ng-if="model.setting.trial_price &gt; 0"&gt;\n                                    Subscribe for {{ model.setting.trial_price | currency }}\n                                &lt;/span&gt;\n                                &lt;span ng-if="model.setting.trial_price === 0"&gt;\n                                    Subscribe for Free\n                                &lt;/span&gt;\n                                &lt;br&gt;for {{ model.setting.trial_duration_in_day }} day{{ model.setting.trial_duration_in_day !== 1 ? \'s\' : \'\' }}\n                                &lt;u ng-if="model.setting.trial_convert"&gt;- {{ model.setting.subscription_price | currency }}/mo after trial period&lt;/u&gt;\n                            &lt;/button&gt;\n                        &lt;/div&gt;\n\n                    &lt;/div&gt;\n                    &lt;div class="csf_benef__powered_by"&gt;\n                        &lt;span&gt;Powered by&lt;/span&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n        &lt;/div&gt;\n\n    &lt;/div&gt;\n&lt;/div&gt;\n';l.isAuthenticated()||(i='&lt;div class="modal-dialog modal-fullscreen-md-down "&gt;\n    &lt;div class="modal-content"&gt;\n\n        &lt;div class="csf_benef__cover_content" back-img="{{ cover | webp }}"&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n            &lt;h2&gt;{{name}}&lt;/h2&gt;\n        &lt;/div&gt;\n\n        &lt;div class="csf_benef__content"&gt;\n            &lt;div class="csf_benef__content_col col1"&gt;\n                &lt;div class="csf_benef__benefits" ng-if="!isFree"&gt;\n                    &lt;h3&gt;SUBSCRIBE NOW AND GET...&lt;/h3&gt;\n                    &lt;ul&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Exclusive Content&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Direct Messaging&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Live Streams&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Cancel Anytime!&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Support Your Favorite Creator&lt;/li&gt;\n                    &lt;/ul&gt;\n                &lt;/div&gt;\n                &lt;div class="csf_benef__benefits" ng-if="isFree"&gt;\n                    &lt;h3&gt;FOLLOW FOR FREE AND GET...&lt;/h3&gt;\n                    &lt;ul&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Exclusive Content&lt;/li&gt;\n                        &lt;li&gt;&lt;i class="icon-fan_fav-plain"&gt;&lt;/i&gt; Support Your Favorite Creator&lt;/li&gt;\n                    &lt;/ul&gt;\n                &lt;/div&gt;\n                &lt;div class="csf_benef__powered_by"&gt;\n                    &lt;span&gt;Powered by&lt;/span&gt;\n                &lt;/div&gt;\n                &lt;div class="csf_benef__alt"&gt;\n                    &lt;span class="csf_benef__alt_login"&gt;\n                        Already a member? &lt;a ng-click="openSignin()"&gt;Sign in&lt;/a&gt;.\n                    &lt;/span&gt;\n                    Content Creator &lt;a ng-click="setupCreator()"&gt;Sign up&lt;/a&gt;&lt;br&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n\n            &lt;div class="csf_benef__content_col col2"&gt;\n                &lt;div class="csf_benef__action"&gt;\n                    &lt;security-auth-form no-footer="true" is-subscribe="true" subscribe-data="subscribeData"&gt;&lt;/security-auth-form&gt;\n\n                    &lt;div class="csf_benef__alt"&gt;\n                        &lt;span class="csf_benef__alt_login"&gt;Already a member? &lt;a ng-click="openSignin()"&gt;Sign in&lt;/a&gt;.&lt;/span&gt;\n                        Content Creator &lt;a ng-click="setupCreator()"&gt;Sign up&lt;/a&gt;&lt;br&gt;\n                    &lt;/div&gt;\n\n                    &lt;div class="csf_benef__powered_by"&gt;\n                        &lt;span&gt;Powered by&lt;/span&gt;\n                    &lt;/div&gt;\n                &lt;/div&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'),c.open({className:o,controller:["$location","$scope",function(o,i){i.cover=e.user.fans_cover_picture_url,!i.cover&amp;&amp;e.user.fans_cover_video_url&amp;&amp;(i.cover=e.user.fans_cover_video_url.replace(/\.(.{3})$/g,".jpg")),i.name=e.user.display_name,i.model=e,i.duration=t||null,i.subscribe=f.subscribe,i.isFree=n,i.subscribeData={duration:t,isFree:n,model:e},i.setupCreator=function(){c.closeAll(),o.url("/creator")},i.showOtherOffers=!1,i.toggleOtherOffers=function(){i.showOtherOffers=!i.showOtherOffers},i.openSignin=l.openSignin;var r=1;i.model.setting.subscription_price&amp;&amp;((i.model.can_trial||i.model.can_winback)&amp;&amp;(r+=1),i.model.setting.subscription_discount&amp;&amp;(r+=Object.keys(i.model.setting.subscription_discount).length)),i.productCnt=r}],template:i})},f.subscribeSnapchat=function(e){f.getByUsername(e).then((function(t){t.is_subscribed_snapchat?u.pop("success","Success","You're already subscribed to this model snapchat."):c.open({className:"ngdialog--subscribe-snapchat",controller:["$scope",function(n){n.isAuthenticated=l.isAuthenticated(),n.data={},n.model=t,n.submit=function(){h(e,"snapchat",n.data),n.closeThisDialog(),l.isAuthenticated()||a((function(){r.location.reload()}),1e4,n)}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title d-flex align-items-center"&gt;Get access to {{ model.user.username }}\'s &lt;i class="icon-fan_snapchat ms-2"&gt;&lt;/i&gt;&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;form name="subscribeSnapchatForm" ng-submit="subscribeSnapchatForm.$valid &amp;&amp; submit()" novalidate="novalidate"&gt;\n\n        &lt;div class="modal-body"&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;input class="form-control" name="snapchat_username" ng-model="data.snapchat_username" placeholder="Enter your Snapchat Username" required="required" pattern="[a-zA-Z][a-zA-Z0-9\\-_\\.]{1,13}[a-zA-Z0-9]" type="text" /&gt;\n                    &lt;form-error form="subscribeSnapchatForm" name="snapchat_username"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n\n                &lt;div class="form-group" ng-if=" ! isAuthenticated"&gt;\n                    &lt;input class="form-control" name="email" ng-model="data.user_email" placeholder="Enter a valid email address" required="required" type="email" /&gt;\n                    &lt;form-error form="subscribeSnapchatForm" name="email"&gt;&lt;/form-error&gt;\n                &lt;/div&gt;\n\n                &lt;p class="ngdialog__info"&gt;\n                    By submitting I agree to the &lt;a href="/support/terms" target="_blank"&gt;term and conditions&lt;/a&gt;.\n                &lt;/p&gt;\n\n                &lt;div class="form-group"&gt;\n                    &lt;button class="btn btn-primary btn-full-w" type="submit"&gt;\n                        Subscribe to Snapchat\n                    &lt;/button&gt;\n                &lt;/div&gt;\n\n        &lt;/div&gt;\n        \n    &lt;/div&gt;\n&lt;/div&gt; '})})).catch((function(e){u.pop("error","Error",e.error)}))},f.showSnapchatComplete=function(e){c.open({className:"ngdialog--snapchat-complete",data:e,template:'&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Thank you!&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n\n            &lt;p&gt;This is the snapchat username of &lt;b&gt;{{ ngDialogData.model_username }}&lt;/b&gt;&lt;/p&gt;\n\n            &lt;div class="form-group"&gt;\n                &lt;input class="form-control" disabled="disabled" ng-model="ngDialogData.model_snapchat_username" type="text" /&gt;\n            &lt;/div&gt;\n\n            &lt;p class="fs-0900"&gt;\n                Model has been notified and should add you shortly!&lt;br /&gt;\n                Please allow up to 24 hours for model to process.\n            &lt;/p&gt;\n\n        &lt;/div&gt;\n        &lt;div class="modal-footer"&gt;\n            &lt;button class="btn btn-cancel" ng-click="closeThisDialog()"&gt;\n                Close\n            &lt;/button&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})},f.cancelSubscription=function(e,n,i){if(!l.isAuthenticated())return l.openAuthForm(),o.when();var r=o.defer();return c.open({className:"ngdialog--cancel-subscription",controller:["$scope",function(o){o.displayName=i,o.username=e,o.type=n,o.cancel=function(){o.isProcessing=!0,t.delete("/api/v1/user/"+e+"/subscription/"+n).then((function(e){["free","gift"].includes(n)?u.pop("success","Success"):u.pop("success","Success","Your membership to this model has been scheduled to be canceled, will stay active until period end."),o.closeThisDialog(),r.resolve(e.data)})).catch((function(e){u.pop("error","Error",e.data.error),r.reject()})).finally((function(){o.isProcessing=!1}))}}],template:'&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content" ng-class="{\'form-block\':isProcessing}"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;\n                {{ type === \'free\' ? \'Unfollow\' : \'Unsubscribe from\'}}\n                {{ displayName || username }}\n                {{ type === \'snapchat\' ? \'Snapchat\' : \'\'}}\n            &lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body text-muted"&gt;\n            &lt;p class="fw-bold" ng-if="type === \'gift\'"&gt;You are about to cancel your gifted subscription to &lt;span class="whitespace-nowrap"&gt;{{ displayName || username }}&lt;/span&gt;.&lt;/p&gt;\n            &lt;p class="fw-bold" ng-if="type === \'free\'"&gt;You are about to stop following &lt;span class="whitespace-nowrap"&gt;{{ displayName || username }} for free&lt;/span&gt;.&lt;/p&gt;\n            &lt;p class="fw-bold" ng-if="type !== \'free\' &amp;&amp; type !== \'gift\'"&gt;\n                You are about to cancel your {{ type === \'snapchat\' ? \'Snapchat\' : \'\' }} subscription to &lt;span class="whitespace-nowrap"&gt;{{ displayName || username }}.&lt;/span&gt;\n            &lt;/p&gt;\n            Please confirm.\n        &lt;/div&gt;\n        &lt;div class="modal-footer"&gt;\n            &lt;a class="btn btn-outline-primary loader" ng-click="cancel()"&gt;\n                &lt;span ng-if="!isProcessing"&gt;{{ type === \'free\' ? \'Unfollow\' : \'Unsubscribe\'}}&lt;/span&gt;\n                &lt;svg-loading ng-if="isProcessing"&gt;&lt;/svg-loading&gt;\n            &lt;/a&gt;\n            &lt;a class="btn btn-cancel border" ng-click="closeThisDialog()"&gt;Cancel&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'}),r.promise},f.reactivateSubscription=function(e,n,i){if(!l.isAuthenticated())return l.openAuthForm(),o.when();var r=o.defer();return f.getByUsername(e,{wl_config:1}).then((function(o){["gift","trial"].includes(n)||"expiring"!==i?"snapchat"===n?f.subscribeSnapchat(e):f.openSubscribeBenefits(o):c.open({className:"ngdialog--reactivate-subscription",controller:["$scope",function(e){e.model=o,e.reactivate=function(){e.isProcessing=!0,t.post("/api/v1/user/"+o.user.username+"/subscription/"+n).then((function(t){u.pop("success","Success","Your membership to this model has been reactivated."),e.closeThisDialog(),r.resolve(t.data)})).catch((function(e){u.pop("error","Error",e.data.error),r.reject()})).finally((function(){e.isProcessing=!1}))}}],template:'&lt;div class="modal-dialog modal-custom"&gt;\n    &lt;div class="modal-content" ng-class="{\'form-block\':isProcessing}"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;Reactivate {{ model.user.display_name }} membership&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body text-muted"&gt;\n            &lt;p&gt;You are about to reactivate your subscription to {{ model.user.display_name }}.&lt;/p&gt;\n            Please confirm.\n        &lt;/div&gt;\n        &lt;div class="modal-footer"&gt;\n            &lt;a class="btn btn-primary loader" ng-click="reactivate()"&gt;\n                &lt;span ng-if="!isProcessing"&gt;Reactivate&lt;/span&gt;\n                &lt;svg-loading ng-if="isProcessing"&gt;&lt;/svg-loading&gt;\n            &lt;/a&gt;\n            &lt;a class="btn btn-light" ng-click="closeThisDialog()"&gt;Cancel&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt;\n'})})).catch((function(e){u.pop("error","Error",e.error)})),r.promise},f.tip=function(e,t,n){var r=arguments.length&gt;3&amp;&amp;void 0!==arguments[3]?arguments[3]:void 0,a=o.defer();return l.isAuthenticated()?(f.getByUsername(e).then((function(e){e.user.username!==l.getCurrent().user.username?c.open({className:"ngdialog",controller:["$scope",function(o){o.data={amount:r&amp;&amp;r.amount?r.amount:null,amount_list:null,dm_id:r&amp;&amp;r.dm_id?r.dm_id:null,special_requests:""},o.custom=r,o.minAmount=0,r&amp;&amp;r.is_min_amount&amp;&amp;(o.minAmount=d.toFloatString(r.amount)),o.model=e,o.tipType=t,o.isLoading=!1,o.submit=function(){if(!o.isLoading)if(o.custom&amp;&amp;o.data.special_requests&amp;&amp;o.data.special_requests.length&gt;70)u.pop("error","Error","Special requests must be 70 characters or less");else if(!o.custom&amp;&amp;o.data.message&amp;&amp;o.data.message.length&gt;70)u.pop("error","Error","Tip messages must be 70 characters or less");else{o.isLoading=!0;var i=d.toFloatString(o.data.amount);h(e.user.username,"tip",{direct_message_id:o.data.dm_id,return_uri:window.location.pathname,tip_amount:i,tip_message:o.data.message,tip_id:n,tip_special_requests:o.custom&amp;&amp;o.data.special_requests,tip_type:t},"stream"===t,e.user.display_name).then((function(e){o.closeThisDialog()}))}}}],template:i}):u.pop("error","Error","You cannot tip yourself.")})).catch((function(e){u.pop("error","Error",e.error)})).finally((function(){a.resolve()})),a.promise):(l.openAuthForm(),a.resolve(),a.promise)},f.openDirectMessagePayment=function(e,t){h(e,"direct_message",t)},f.openLiveStreamPayment=function(e){h(e,"tip",{tip_type:"stream_private"},!1,null,!0)},f.openPayPerDirectMessagePayment=function(e,t){h(e,"pay_per_direct_message",t)},f.openPostPayment=function(e,t){h(e,"post",t)},f.followFreePayment=function(e){h(e,"tip",{return_uri:window.location.pathname+"?follow_free=1",tip_amount:0,tip_type:"follow_free"})},f.tryOneclickPayment=function(e,n,i){i.model_username=e,i.payment_intent=n;var r=o.defer();return t.post("/oauth/payment/start/api",i).then((function(e){r.resolve(e.data)})).catch((function(e){r.reject({error:e.data.error})})),r.promise},f.openPaymentIframe=function(e,t,n,o){c.open({className:"ngdialog",controller:["$scope","GoogleAnalyticsService",function(i,a){i.title=e,i.paymentIframeUrl=g(t,n,o);var s=function(e){e.data.type&amp;&amp;("iframe_payment_analytics"===e.data.type&amp;&amp;e.data.analytics_data&amp;&amp;a.trackPurchase(e.data.analytics_data),"iframe_payment_status"===e.data.type&amp;&amp;e.data.success&amp;&amp;i.closeThisDialog())};r.addEventListener("message",s),i.$on("$destroy",(function(){r.removeEventListener("message",s)}))}],template:'&lt;div class="modal-dialog modal-custom modal-lg modal-dialog-scrollable modal-fullscreen-md-down"&gt;\n    &lt;div class="modal-content h-100"&gt;\n\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;{{ title }}&lt;/h5&gt;\n            &lt;button class="btn-close btn-close-white" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n\n        &lt;div class="modal-body p-0 overflow-hidden"&gt;\n            &lt;iframe ng-src="{{ paymentIframeUrl }}" class="h-100 w-100" ng-style="{ width: 790, height: 830 }" frameborder="0"&gt;&lt;/iframe&gt;\n        &lt;/div&gt;\n\n    &lt;/div&gt;\n&lt;/div&gt;\n'})};var m=!1;function g(e,t,o){return o||(o={}),o.model_username=e,o.payment_intent=t,"/oauth/payment/start?"+n(o)}function h(t,n,i){var a=arguments.length&gt;3&amp;&amp;void 0!==arguments[3]&amp;&amp;arguments[3],c=arguments.length&gt;4&amp;&amp;void 0!==arguments[4]?arguments[4]:null,l=arguments.length&gt;5&amp;&amp;void 0!==arguments[5]&amp;&amp;arguments[5];if(m)return o.resolve();if(a){var d=o.defer();return f.tryOneclickPayment(t,"tip",i).then((function(e){u.pop("success","Success","Payment successful"),e.analytics_data&amp;&amp;p.trackPurchase(e.analytics_data)})).catch((function(e){i.is_iframe=!0,f.openPaymentIframe("Send tip to "+c,t,"tip",i)})).finally((function(){d.resolve()})),d.promise}var h=g(t,n,i);if(s.isMobile||l)e.find("body")[0].classList.add("redirecting"),m=!0,window.location.href=h;else var v=r.open(h,"","top="+(r.innerHeight-830)/2+",left="+((r.innerWidth-790)/2+r.screenX)+",width=790,height=830"),b=setInterval((function(){v.closed&amp;&amp;(clearInterval(b),window.PAYMENT_IS_RELOADING||r.location.reload(!0))}),1e3);return o.resolve()}}]);t.a="fans_service_model"},hfTl:function(e,t,n){"use strict";var o=n("4m0D"),i=n.n(o),r=n("hdXK");i.a.module("fans_service_private",[r.a]).service("privateService",["ngDialog",function(e){return{acceptInvite:function(t,n){e.open({className:"ngdialog--confirm",controller:["$http","$scope","$location","$timeout","ModelService","toaster",function(e,t,o,i,r,a){t.data={expireAt:0,expireRemain:0,isProcessing:!0,isValid:!1,timeout:null},t.isActive=function(){return t.data.expireRemain&gt;0},t.isFirefox=navigator.userAgent.toLowerCase().indexOf("firefox")&gt;-1,t.timeoutStart=function(){var e=t.data.expireAt-Date.now()/1e3;t.data.expireRemain=e,t.data.timeout=i((function(){t.timeoutStart()}),1e3),e&lt;=0&amp;&amp;(i.cancel(t.data.timeout),t.data.expireRemain=0,t.closeThisDialog())},t.$on("$destroy",(function(){i.cancel(t.data.timeout)})),t.username=n,e.get("/api/v1/user/"+n+"/private").then((function(e){if(!e.data||!e.data.private)return t.data.isValid=!1,void(t.data.isProcessing=!1);if(e.data.private.payment_id){var i="/stream/view/"+n;return e.data.private.access_token&amp;&amp;(i="/stream/view/c2c/"+n),o.path()!==i&amp;&amp;(a.pop("success","Success","Invitation has been accepted."),o.path(i)),void t.closeThisDialog()}t.data.amount_usd=e.data.private.amount_usd,t.data.duration=e.data.private.duration,t.data.expireAt=e.data.private.expire_time,t.data.isValid=!0,t.data.isProcessing=!1,t.timeoutStart()})),t.confirm=function(){t.data.isProcessing=!0,e.post("/api/v1/user/"+n+"/private").then((function(e){e.data&amp;&amp;e.data.private&amp;&amp;e.data.private.id?(t.closeThisDialog(),e.data.private.payment_id?o.path("/stream/view/"+n):r.openLiveStreamPayment(n)):a.pop("error","Error","An error occurred")}))}}],template:'&lt;div class="modal-dialog"&gt;\n    &lt;div class="modal-content"&gt;\n        &lt;div class="modal-header"&gt;\n            &lt;h5 class="modal-title"&gt;1:1 Video Chat Invitation from {{ username }}&lt;/h5&gt;\n            &lt;button class="btn-close" ng-click="closeThisDialog()"&gt;&lt;/button&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-body"&gt;\n            &lt;div class="loader" ng-if="data.isProcessing"&gt;\n                &lt;svg-loading&gt;&lt;/svg-loading&gt;\n            &lt;/div&gt;\n            &lt;div ng-if="!data.isProcessing &amp;&amp; data.isValid"&gt;\n                Do you accept this invitation of a 1:1 live video chat of {{ data.duration }} minutes for {{ data.amount_usd | currency }}?\n                &lt;div class="mt-2" ng-if="data.expireRemain"&gt;\n                    Invitation will expire in {{data.expireRemain | secondsToMinSec}}\n                    &lt;div class="mt-2 text-danger" ng-if="isFirefox"&gt;\n                        You may have issues with 1:1 video chat and firefox browser. Please use chrome or safari.\n                    &lt;/div&gt;\n                &lt;/div&gt;\n                &lt;div class="mt-2 text-danger" ng-if="!data.expireRemain"&gt;\n                    Invitation has expired\n                &lt;/div&gt;\n            &lt;/div&gt;\n            &lt;div ng-if="!data.isProcessing &amp;&amp; !data.isValid"&gt;\n                Invitation has expired or is not valid.\n            &lt;/div&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-footer" ng-if="!data.isProcessing &amp;&amp; data.isValid"&gt;\n            &lt;a class="btn btn-primary" ng-click="confirm()"&gt;\n                &lt;span ng-if="data.amount_usd &gt; 0"&gt;Confirm Purchase of {{ data.amount_usd | currency }}&lt;/span&gt;\n                &lt;span ng-if="data.amount_usd &lt;= 0"&gt;Accept&lt;/span&gt;\n            &lt;/a&gt;\n            &lt;a class="btn btn-cancel" ng-click="closeThisDialog()"&gt;Cancel&lt;/a&gt;\n        &lt;/div&gt;\n        &lt;div class="modal-footer" ng-if="!data.isProcessing &amp;&amp; !data.isValid"&gt;\n            &lt;a class="btn btn-primary" ng-click="closeThisDialog()"&gt;Ok&lt;/a&gt;\n        &lt;/div&gt;\n    &lt;/div&gt;\n&lt;/div&gt; \n'})}}}]);t.a="fans_service_private"},kvyo:function(e,t){
/**
 * An Angular module that gives you access to the browsers local storage
 * @version v0.7.1 - 2017-06-21
 * @link https://github.com/grevory/angular-local-storage
 * @author grevory &lt;greg@gregpike.ca&gt;
 * @license MIT License, http://www.opensource.org/licenses/MIT
 */
!function(e,t){var n=t.isDefined,o=t.isUndefined,i=t.isNumber,r=t.isObject,a=t.isArray,s=t.isString,c=t.extend,l=t.toJson;t.module("LocalStorageModule",[]).provider("localStorageService",(function(){this.prefix="ls",this.storageType="localStorage",this.cookie={expiry:30,path:"/",secure:!1},this.defaultToCookie=!0,this.notify={setItem:!0,removeItem:!1},this.setPrefix=function(e){return this.prefix=e,this},this.setStorageType=function(e){return this.storageType=e,this},this.setDefaultToCookie=function(e){return this.defaultToCookie=!!e,this},this.setStorageCookie=function(e,t,n){return this.cookie.expiry=e,this.cookie.path=t,this.cookie.secure=n,this},this.setStorageCookieDomain=function(e){return this.cookie.domain=e,this},this.setNotify=function(e,t){return this.notify={setItem:e,removeItem:t},this},this.$get=["$rootScope","$window","$document","$parse","$timeout",function(e,t,u,d,p){var f,m=this,g=m.prefix,h=m.cookie,v=m.notify,b=m.storageType;u?u[0]&amp;&amp;(u=u[0]):u=document,"."!==g.substr(-1)&amp;&amp;(g=g?g+".":"");var _=function(e){return g+e},y=function(e){return e.replace(new RegExp("^"+g,"g"),"")},$=function(e){return 0===e.indexOf(g)},w=function(){try{var n=b in t&amp;&amp;null!==t[b],o=_("__"+Math.round(1e7*Math.random()));return n&amp;&amp;((f=t[b]).setItem(o,""),f.removeItem(o)),n}catch(t){return m.defaultToCookie&amp;&amp;(b="cookie"),e.$broadcast("LocalStorageModule.notification.error",t.message),!1}},S=w(),k=function(t,n,i){var r=M();try{if(D(i),n=o(n)?null:l(n),!S&amp;&amp;m.defaultToCookie||"cookie"===m.storageType)return S||e.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),v.setItem&amp;&amp;e.$broadcast("LocalStorageModule.notification.setitem",{key:t,newvalue:n,storageType:"cookie"}),T(t,n);try{f&amp;&amp;f.setItem(_(t),n),v.setItem&amp;&amp;e.$broadcast("LocalStorageModule.notification.setitem",{key:t,newvalue:n,storageType:m.storageType})}catch(o){return e.$broadcast("LocalStorageModule.notification.error",o.message),T(t,n)}return!0}finally{D(r)}},x=function(t,n){var o=M();try{if(D(n),!S&amp;&amp;m.defaultToCookie||"cookie"===m.storageType)return S||e.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),E(t);var i=f?f.getItem(_(t)):null;if(!i||"null"===i)return null;try{return JSON.parse(i)}catch(e){return i}}finally{D(o)}},C=function(){var t=M();try{var n,o,i=0;for(arguments.length&gt;=1&amp;&amp;("localStorage"===arguments[arguments.length-1]||"sessionStorage"===arguments[arguments.length-1])&amp;&amp;(i=1,D(arguments[arguments.length-1])),n=0;n&lt;arguments.length-i;n++)if(o=arguments[n],!S&amp;&amp;m.defaultToCookie||"cookie"===m.storageType)S||e.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),v.removeItem&amp;&amp;e.$broadcast("LocalStorageModule.notification.removeitem",{key:o,storageType:"cookie"}),P(o);else try{f.removeItem(_(o)),v.removeItem&amp;&amp;e.$broadcast("LocalStorageModule.notification.removeitem",{key:o,storageType:m.storageType})}catch(t){e.$broadcast("LocalStorageModule.notification.error",t.message),P(o)}}finally{D(t)}},A=function(){try{return t.navigator.cookieEnabled||"cookie"in u&amp;&amp;(u.cookie.length&gt;0||(u.cookie="test").indexOf.call(u.cookie,"test")&gt;-1)}catch(t){return e.$broadcast("LocalStorageModule.notification.error",t.message),!1}}(),T=function(t,n,s,c){if(o(n))return!1;if((a(n)||r(n))&amp;&amp;(n=l(n)),!A)return e.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var d="",p=new Date,f="";if(null===n?(p.setTime(p.getTime()+-864e5),d="; expires="+p.toGMTString(),n=""):i(s)&amp;&amp;0!==s?(p.setTime(p.getTime()+24*s*60*60*1e3),d="; expires="+p.toGMTString()):0!==h.expiry&amp;&amp;(p.setTime(p.getTime()+24*h.expiry*60*60*1e3),d="; expires="+p.toGMTString()),t){var m="; path="+h.path;h.domain&amp;&amp;(f="; domain="+h.domain),"boolean"==typeof c?!0===c&amp;&amp;(f+="; secure"):!0===h.secure&amp;&amp;(f+="; secure"),u.cookie=_(t)+"="+encodeURIComponent(n)+d+m+f}}catch(t){return e.$broadcast("LocalStorageModule.notification.error",t.message),!1}return!0},E=function(t){if(!A)return e.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(var n=u.cookie&amp;&amp;u.cookie.split(";")||[],o=0;o&lt;n.length;o++){for(var i=n[o];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(_(t)+"=")){var r=decodeURIComponent(i.substring(g.length+t.length+1,i.length));try{var a=JSON.parse(r);return"number"==typeof a?r:a}catch(e){return r}}}return null},P=function(e){T(e,null)},O=function(){for(var e=null,t=g.length,n=u.cookie.split(";"),o=0;o&lt;n.length;o++){for(e=n[o];" "===e.charAt(0);)e=e.substring(1,e.length);var i=e.substring(t,e.indexOf("="));P(i)}},M=function(){return b},D=function(e){return e&amp;&amp;b!==e&amp;&amp;(b=e,S=w()),S};function I(n){if(n||(n=t.event),v.setItem&amp;&amp;s(n.key)&amp;&amp;$(n.key)){var o=y(n.key);p((function(){e.$broadcast("LocalStorageModule.notification.changed",{key:o,newvalue:n.newValue,storageType:m.storageType})}))}}S&amp;&amp;(t.addEventListener?(t.addEventListener("storage",I,!1),e.$on("$destroy",(function(){t.removeEventListener("storage",I)}))):t.attachEvent&amp;&amp;(t.attachEvent("onstorage",I),e.$on("$destroy",(function(){t.detachEvent("onstorage",I)}))));return{isSupported:S,getStorageType:M,setStorageType:D,setPrefix:function(e){g=e},set:k,add:k,get:x,keys:function(t){var n=M();try{if(D(t),!S)return e.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),[];var o=g.length,i=[];for(var r in f)if(r.substr(0,o)===g)try{i.push(r.substr(o))}catch(t){return e.$broadcast("LocalStorageModule.notification.error",t.Description),[]}return i}finally{D(n)}},remove:C,clearAll:function(t,n){var o=M();try{D(n);var i=g?new RegExp("^"+g):new RegExp,r=t?new RegExp(t):new RegExp;if(!S&amp;&amp;m.defaultToCookie||"cookie"===m.storageType)return S||e.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),O();if(!S&amp;&amp;!m.defaultToCookie)return!1;var a=g.length;for(var s in f)if(i.test(s)&amp;&amp;r.test(s.substr(a)))try{C(s.substr(a))}catch(t){return e.$broadcast("LocalStorageModule.notification.error",t.message),O()}return!0}finally{D(o)}},bind:function(e,t,o,i,a){var s=x(i=i||t,a);return null===s&amp;&amp;n(o)?s=o:r(s)&amp;&amp;r(o)&amp;&amp;(s=c(s,o)),d(t).assign(e,s),e.$watch(t,(function(e){k(i,e,a)}),r(e[t]))},deriveKey:_,underiveKey:y,length:function(e){var n=M();try{D(e);for(var o=0,i=t[b],r=0;r&lt;i.length;r++)0===i.key(r).indexOf(g)&amp;&amp;o++;return o}finally{D(n)}},defaultToCookie:this.defaultToCookie,cookie:{isSupported:A,set:T,add:T,get:E,remove:P,clearAll:O}}}]}))}(window,window.angular)},"l+tU":function(e,t,n){var o;o=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";var o=h(n(1)),i=h(n(2)),r=h(n(3)),a=h(n(4)),s=h(n(5)),c=h(n(6)),l=h(n(7)),u=h(n(8)),d=h(n(9)),p=h(n(10)),f=h(n(11)),m=h(n(12)),g=h(n(13));function h(e){return e&amp;&amp;e.__esModule?e:{default:e}}angular.module(o.default.name,[]).value("fileUploaderOptions",i.default).factory("FileUploader",r.default).factory("FileLikeObject",a.default).factory("FileItem",s.default).factory("FileDirective",c.default).factory("FileSelect",l.default).factory("FileDrop",d.default).factory("FileOver",p.default).factory("Pipeline",u.default).directive("nvFileSelect",f.default).directive("nvFileDrop",m.default).directive("nvFileOver",g.default).run(["FileUploader","FileLikeObject","FileItem","FileDirective","FileSelect","FileDrop","FileOver","Pipeline",function(e,t,n,o,i,r,a,s){e.FileLikeObject=t,e.FileItem=n,e.FileDirective=o,e.FileSelect=i,e.FileDrop=r,e.FileOver=a,e.Pipeline=s}])},function(e,t){e.exports={name:"angularFileUpload"}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={url:"/",alias:"file",headers:{},queue:[],progress:0,autoUpload:!1,removeAfterUpload:!1,method:"POST",filters:[],formData:[],queueLimit:Number.MAX_VALUE,withCredentials:!1,disableMultipart:!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],o=!0,i=!1,r=void 0;try{for(var a,s=e[Symbol.iterator]();!(o=(a=s.next()).done)&amp;&amp;(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{!o&amp;&amp;s.return&amp;&amp;s.return()}finally{if(i)throw r}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};t.default=v;var i,r=n(1);(i=r)&amp;&amp;i.__esModule;var a=angular,s=a.bind,c=a.copy,l=a.extend,u=a.forEach,d=a.isObject,p=a.isNumber,f=a.isDefined,m=a.isArray,g=a.isUndefined,h=a.element;function v(e,t,n,i,r,a,v,b){var _=i.File,y=i.FormData,$=function(){function i(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var n=c(e);l(this,n,t,{isUploading:!1,_nextIndex:0,_directives:{select:[],drop:[],over:[]}}),this.filters.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.filters.unshift({name:"folder",fn:this._folderFilter})}return i.prototype.addToQueue=function(e,t,n){var i=this,r=this.isArrayLikeObject(e)?Array.prototype.slice.call(e):[e],s=this._getFilters(n),c=this.queue.length,l=[],u=function(){i.queue.length!==c&amp;&amp;(i._onAfterAddingAll(l),i.progress=i._getTotalProgress()),i._render(),i.autoUpload&amp;&amp;i.uploadAll()};!function e(){var n=r.shift();if(g(n))return u();var c=i.isFile(n)?n:new a(n),d=i._convertFiltersToPipes(s),p=new b(d);p.onThrown=function(t){var n=t.pipe.originalFilter,r=o(t.args,2),a=r[0],s=r[1];i._onWhenAddingFileFailed(a,n,s),e()},p.onSuccessful=function(t,n){var o=new v(i,t,n);l.push(o),i.queue.push(o),i._onAfterAddingFile(o),e()},p.exec(c,t)}()},i.prototype.removeFromQueue=function(e){var t=this.getIndexOfItem(e),n=this.queue[t];n.isUploading&amp;&amp;n.cancel(),this.queue.splice(t,1),n._destroy(),this.progress=this._getTotalProgress()},i.prototype.clearQueue=function(){for(;this.queue.length;)this.queue[0].remove();this.progress=0},i.prototype.uploadItem=function(e){var t=this.getIndexOfItem(e),n=this.queue[t],o=this.isHTML5?"_xhrTransport":"_iframeTransport";n._prepareToUploading(),this.isUploading||(this._onBeforeUploadItem(n),n.isCancel||(n.isUploading=!0,this.isUploading=!0,this[o](n),this._render()))},i.prototype.cancelItem=function(e){var t,n=this,o=this.getIndexOfItem(e),i=this.queue[o],a=this.isHTML5?"_xhr":"_form";i&amp;&amp;(i.isCancel=!0,i.isUploading?i[a].abort():(t=[void 0,0,{}],r((function(){n._onCancelItem.apply(n,[i].concat(t)),n._onCompleteItem.apply(n,[i].concat(t))}))))},i.prototype.uploadAll=function(){var e=this.getNotUploadedItems().filter((function(e){return!e.isUploading}));e.length&amp;&amp;(u(e,(function(e){return e._prepareToUploading()})),e[0].upload())},i.prototype.cancelAll=function(){var e=this.getNotUploadedItems();u(e,(function(e){return e.cancel()}))},i.prototype.isFile=function(e){return this.constructor.isFile(e)},i.prototype.isFileLikeObject=function(e){return this.constructor.isFileLikeObject(e)},i.prototype.isArrayLikeObject=function(e){return this.constructor.isArrayLikeObject(e)},i.prototype.getIndexOfItem=function(e){return p(e)?e:this.queue.indexOf(e)},i.prototype.getNotUploadedItems=function(){return this.queue.filter((function(e){return!e.isUploaded}))},i.prototype.getReadyItems=function(){return this.queue.filter((function(e){return e.isReady&amp;&amp;!e.isUploading})).sort((function(e,t){return e.index-t.index}))},i.prototype.destroy=function(){var e=this;u(this._directives,(function(t){u(e._directives[t],(function(e){e.destroy()}))}))},i.prototype.onAfterAddingAll=function(e){},i.prototype.onAfterAddingFile=function(e){},i.prototype.onWhenAddingFileFailed=function(e,t,n){},i.prototype.onBeforeUploadItem=function(e){},i.prototype.onProgressItem=function(e,t){},i.prototype.onProgressAll=function(e){},i.prototype.onSuccessItem=function(e,t,n,o){},i.prototype.onErrorItem=function(e,t,n,o){},i.prototype.onCancelItem=function(e,t,n,o){},i.prototype.onCompleteItem=function(e,t,n,o){},i.prototype.onCompleteAll=function(){},i.prototype._getTotalProgress=function(e){if(this.removeAfterUpload)return e||0;var t=this.getNotUploadedItems().length,n=t?this.queue.length-t:this.queue.length,o=100/this.queue.length,i=(e||0)*o/100;return Math.round(n*o+i)},i.prototype._getFilters=function(e){if(!e)return this.filters;if(m(e))return e;var t=e.match(/[^\s,]+/g);return this.filters.filter((function(e){return-1!==t.indexOf(e.name)}))},i.prototype._convertFiltersToPipes=function(e){var t=this;return e.map((function(e){var n=s(t,e.fn);return n.isAsync=3===e.fn.length,n.originalFilter=e,n}))},i.prototype._render=function(){t.$$phase||t.$apply()},i.prototype._folderFilter=function(e){return!(!e.size&amp;&amp;!e.type)},i.prototype._queueLimitFilter=function(){return this.queue.length&lt;this.queueLimit},i.prototype._isSuccessCode=function(e){return e&gt;=200&amp;&amp;e&lt;300||304===e},i.prototype._transformResponse=function(e,t){var o=this._headersGetter(t);return u(n.defaults.transformResponse,(function(t){e=t(e,o)})),e},i.prototype._parseHeaders=function(e){var t,n,o,i={};return e?(u(e.split("\n"),(function(e){o=e.indexOf(":"),t=e.slice(0,o).trim().toLowerCase(),n=e.slice(o+1).trim(),t&amp;&amp;(i[t]=i[t]?i[t]+", "+n:n)})),i):i},i.prototype._headersGetter=function(e){return function(t){return t?e[t.toLowerCase()]||null:e}},i.prototype._xhrTransport=function(e){var t,n=this,o=e._xhr=new XMLHttpRequest;if(e.disableMultipart?t=e._file:(t=new y,u(e.formData,(function(e){u(e,(function(e,n){t.append(n,e)}))})),t.append(e.alias,e._file,e.file.name)),"number"!=typeof e._file.size)throw new TypeError("The file specified is no longer valid");o.upload.onprogress=function(t){var o=Math.round(t.lengthComputable?100*t.loaded/t.total:0);n._onProgressItem(e,o)},o.onload=function(){var t=n._parseHeaders(o.getAllResponseHeaders()),i=n._transformResponse(o.response,t),r=n._isSuccessCode(o.status)?"Success":"Error";n["_on"+r+"Item"](e,i,o.status,t),n._onCompleteItem(e,i,o.status,t)},o.onerror=function(){var t=n._parseHeaders(o.getAllResponseHeaders()),i=n._transformResponse(o.response,t);n._onErrorItem(e,i,o.status,t),n._onCompleteItem(e,i,o.status,t)},o.onabort=function(){var t=n._parseHeaders(o.getAllResponseHeaders()),i=n._transformResponse(o.response,t);n._onCancelItem(e,i,o.status,t),n._onCompleteItem(e,i,o.status,t)},o.open(e.method,e.url,!0),o.withCredentials=e.withCredentials,u(e.headers,(function(e,t){o.setRequestHeader(t,e)})),o.send(t)},i.prototype._iframeTransport=function(e){var t=this,n=h('&lt;form style="display: none;" /&gt;'),o=h('&lt;iframe name="iframeTransport'+Date.now()+'"&gt;'),i=e._input;e._form&amp;&amp;e._form.replaceWith(i),e._form=n,i.prop("name",e.alias),u(e.formData,(function(e){u(e,(function(e,t){var o=h('&lt;input type="hidden" name="'+t+'" /&gt;');o.val(e),n.append(o)}))})),n.prop({action:e.url,method:"POST",target:o.prop("name"),enctype:"multipart/form-data",encoding:"multipart/form-data"}),o.bind("load",(function(){var n="",i=200;try{n=o[0].contentDocument.body.innerHTML}catch(e){i=500}var r={response:n,status:i,dummy:!0},a={},s=t._transformResponse(r.response,a);t._onSuccessItem(e,s,r.status,a),t._onCompleteItem(e,s,r.status,a)})),n.abort=function(){var r=0,a={};o.unbind("load").prop("src","javascript:false;"),n.replaceWith(i),t._onCancelItem(e,void 0,r,a),t._onCompleteItem(e,void 0,r,a)},i.after(n),n.append(i).append(o),n[0].submit()},i.prototype._onWhenAddingFileFailed=function(e,t,n){this.onWhenAddingFileFailed(e,t,n)},i.prototype._onAfterAddingFile=function(e){this.onAfterAddingFile(e)},i.prototype._onAfterAddingAll=function(e){this.onAfterAddingAll(e)},i.prototype._onBeforeUploadItem=function(e){e._onBeforeUpload(),this.onBeforeUploadItem(e)},i.prototype._onProgressItem=function(e,t){var n=this._getTotalProgress(t);this.progress=n,e._onProgress(t),this.onProgressItem(e,t),this.onProgressAll(n),this._render()},i.prototype._onSuccessItem=function(e,t,n,o){e._onSuccess(t,n,o),this.onSuccessItem(e,t,n,o)},i.prototype._onErrorItem=function(e,t,n,o){e._onError(t,n,o),this.onErrorItem(e,t,n,o)},i.prototype._onCancelItem=function(e,t,n,o){e._onCancel(t,n,o),this.onCancelItem(e,t,n,o)},i.prototype._onCompleteItem=function(e,t,n,o){e._onComplete(t,n,o),this.onCompleteItem(e,t,n,o);var i=this.getReadyItems()[0];this.isUploading=!1,f(i)?i.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),this._render())},i.isFile=function(e){return _&amp;&amp;e instanceof _},i.isFileLikeObject=function(e){return e instanceof a},i.isArrayLikeObject=function(e){return d(e)&amp;&amp;"length"in e},i.inherit=function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.super_=t},i}();return $.prototype.isHTML5=!(!_||!y),$.isHTML5=$.prototype.isHTML5,$}v.$inject=["fileUploaderOptions","$rootScope","$http","$window","$timeout","FileLikeObject","FileItem","Pipeline"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var n=s(t)?t.value:t;this["_createFrom"+(c(n)?"FakePath":"Object")](n)}return e.prototype._createFromFakePath=function(e){this.lastModifiedDate=null,this.size=null,this.type="like/"+e.slice(e.lastIndexOf(".")+1).toLowerCase(),this.name=e.slice(e.lastIndexOf("/")+e.lastIndexOf("\\")+2)},e.prototype._createFromObject=function(e){this.lastModifiedDate=a(e.lastModifiedDate),this.size=e.size,this.type=e.type,this.name=e.name},e}()};var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular,a=r.copy,s=r.isElement,c=r.isString},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular,a=r.copy,s=r.extend,c=r.element,l=r.isElement;function u(e,t){return function(){function n(e,o,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var r=l(o),u=r?c(o):null,d=r?null:o;s(this,{url:e.url,alias:e.alias,headers:a(e.headers),formData:a(e.formData),removeAfterUpload:e.removeAfterUpload,withCredentials:e.withCredentials,disableMultipart:e.disableMultipart,method:e.method},i,{uploader:e,file:new t(o),isReady:!1,isUploading:!1,isUploaded:!1,isSuccess:!1,isCancel:!1,isError:!1,progress:0,index:null,_file:d,_input:u}),u&amp;&amp;this._replaceNode(u)}return n.prototype.upload=function(){try{this.uploader.uploadItem(this)}catch(t){var e=t.name+":"+t.message;this.uploader._onCompleteItem(this,e,t.code,[]),this.uploader._onErrorItem(this,e,t.code,[])}},n.prototype.cancel=function(){this.uploader.cancelItem(this)},n.prototype.remove=function(){this.uploader.removeFromQueue(this)},n.prototype.onBeforeUpload=function(){},n.prototype.onProgress=function(e){},n.prototype.onSuccess=function(e,t,n){},n.prototype.onError=function(e,t,n){},n.prototype.onCancel=function(e,t,n){},n.prototype.onComplete=function(e,t,n){},n.prototype._onBeforeUpload=function(){this.isReady=!0,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()},n.prototype._onProgress=function(e){this.progress=e,this.onProgress(e)},n.prototype._onSuccess=function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=null,this.onSuccess(e,t,n)},n.prototype._onError=function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=null,this.onError(e,t,n)},n.prototype._onCancel=function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=null,this.onCancel(e,t,n)},n.prototype._onComplete=function(e,t,n){this.onComplete(e,t,n),this.removeAfterUpload&amp;&amp;this.remove()},n.prototype._destroy=function(){this._input&amp;&amp;this._input.remove(),this._form&amp;&amp;this._form.remove(),delete this._form,delete this._input},n.prototype._prepareToUploading=function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0},n.prototype._replaceNode=function(t){var n=e(t.clone())(t.scope());n.prop("value",null),t.css("display","none"),t.after(n)},n}()}u.$inject=["$compile","FileLikeObject"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,t),this.uploader._directives[this.prop].push(this),this._saveLinks(),this.bind()}return e.prototype.bind=function(){for(var e in this.events){var t=this.events[e];this.element.bind(e,this[t])}},e.prototype.unbind=function(){for(var e in this.events)this.element.unbind(e,this.events[e])},e.prototype.destroy=function(){var e=this.uploader._directives[this.prop].indexOf(this);this.uploader._directives[this.prop].splice(e,1),this.unbind()},e.prototype._saveLinks=function(){for(var e in this.events){var t=this.events[e];this[t]=this[t].bind(this)}},e}();return e.prototype.events={},e};var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular.extend},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=a;var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular.extend;function a(e,t){return function(t){function n(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var o=r(e,{events:{$destroy:"destroy",change:"onChange"},prop:"select"}),i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&amp;&amp;"function"!=typeof t?e:t}(this,t.call(this,o));return i.uploader.isHTML5||i.element.removeAttr("multiple"),i.element.prop("value",null),i}return function(e,t){if("function"!=typeof t&amp;&amp;null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&amp;&amp;t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&amp;&amp;(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),n.prototype.getOptions=function(){},n.prototype.getFilters=function(){},n.prototype.isEmptyAfterSelection=function(){return!!this.element.attr("multiple")},n.prototype.onChange=function(){var t=this.uploader.isHTML5?this.element[0].files:this.element[0],n=this.getOptions(),o=this.getFilters();this.uploader.isHTML5||this.destroy(),this.uploader.addToQueue(t,n,o),this.isEmptyAfterSelection()&amp;&amp;(this.element.prop("value",null),this.element.replaceWith(e(this.element.clone())(this.scope)))},n}(t)}a.$inject=["$compile","FileDirective"]},function(e,t){"use strict";function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t&lt;e.length;t++)n[t]=e[t];return n}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=a;var o=angular,i=o.bind,r=o.isUndefined;function a(e){return function(){function t(){var e=arguments.length&lt;=0||void 0===arguments[0]?[]:arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.pipes=e}return t.prototype.next=function(t){var o=this.pipes.shift();if(r(o))this.onSuccessful.apply(this,n(t));else{var a=new Error("The filter has not passed");if(a.pipe=o,a.args=t,o.isAsync){var s=e.defer(),c=i(this,this.next,t),l=i(this,this.onThrown,a);s.promise.then(c,l),o.apply(void 0,n(t).concat([s]))}else Boolean(o.apply(void 0,n(t)))?this.next(t):this.onThrown(a)}},t.prototype.exec=function(){for(var e=arguments.length,t=Array(e),n=0;n&lt;e;n++)t[n]=arguments[n];this.next(t)},t.prototype.onThrown=function(e){},t.prototype.onSuccessful=function(){},t}()}a.$inject=["$q"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular,a=r.extend,s=r.forEach;function c(e){return function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=a(n,{events:{$destroy:"destroy",drop:"onDrop",dragover:"onDragOver",dragleave:"onDragLeave"},prop:"drop"});return function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&amp;&amp;"function"!=typeof t?e:t}(this,e.call(this,o))}return function(e,t){if("function"!=typeof t&amp;&amp;null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&amp;&amp;t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&amp;&amp;(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getOptions=function(){},t.prototype.getFilters=function(){},t.prototype.onDrop=function(e){var t=this._getTransfer(e);if(t){var n=this.getOptions(),o=this.getFilters();this._preventAndStop(e),s(this.uploader._directives.over,this._removeOverClass,this),this.uploader.addToQueue(t.files,n,o)}},t.prototype.onDragOver=function(e){var t=this._getTransfer(e);this._haveFiles(t.types)&amp;&amp;(t.dropEffect="copy",this._preventAndStop(e),s(this.uploader._directives.over,this._addOverClass,this))},t.prototype.onDragLeave=function(e){e.currentTarget!==this.element[0]&amp;&amp;(this._preventAndStop(e),s(this.uploader._directives.over,this._removeOverClass,this))},t.prototype._getTransfer=function(e){return e.dataTransfer?e.dataTransfer:e.originalEvent.dataTransfer},t.prototype._preventAndStop=function(e){e.preventDefault(),e.stopPropagation()},t.prototype._haveFiles=function(e){return!!e&amp;&amp;(e.indexOf?-1!==e.indexOf("Files"):!!e.contains&amp;&amp;e.contains("Files"))},t.prototype._addOverClass=function(e){e.addOverClass()},t.prototype._removeOverClass=function(e){e.removeOverClass()},t}(e)}c.$inject=["FileDirective"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=a;var o,i=n(1);(o=i)&amp;&amp;o.__esModule;var r=angular.extend;function a(e){return function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=r(n,{events:{$destroy:"destroy"},prop:"over",overClass:"nv-file-over"});return function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&amp;&amp;"function"!=typeof t?e:t}(this,e.call(this,o))}return function(e,t){if("function"!=typeof t&amp;&amp;null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&amp;&amp;t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&amp;&amp;(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.addOverClass=function(){this.element.addClass(this.getOverClass())},t.prototype.removeOverClass=function(){this.element.removeClass(this.getOverClass())},t.prototype.getOverClass=function(){return this.overClass},t}(e)}a.$inject=["FileDirective"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o,i=n(1);function r(e,t,n){return{link:function(o,i,r){var a=o.$eval(r.uploader);if(!(a instanceof t))throw new TypeError('"Uploader" must be an instance of FileUploader');var s=new n({uploader:a,element:i,scope:o});s.getOptions=e(r.options).bind(s,o),s.getFilters=function(){return r.filters}}}}(o=i)&amp;&amp;o.__esModule,r.$inject=["$parse","FileUploader","FileSelect"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o,i=n(1);function r(e,t,n){return{link:function(o,i,r){var a=o.$eval(r.uploader);if(!(a instanceof t))throw new TypeError('"Uploader" must be an instance of FileUploader');if(a.isHTML5){var s=new n({uploader:a,element:i});s.getOptions=e(r.options).bind(s,o),s.getFilters=function(){return r.filters}}}}}(o=i)&amp;&amp;o.__esModule,r.$inject=["$parse","FileUploader","FileDrop"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o,i=n(1);function r(e,t){return{link:function(n,o,i){var r=n.$eval(i.uploader);if(!(r instanceof e))throw new TypeError('"Uploader" must be an instance of FileUploader');var a=new t({uploader:r,element:o});a.getOverClass=function(){return i.overClass||a.overClass}}}}(o=i)&amp;&amp;o.__esModule,r.$inject=["FileUploader","FileOver"]}])},e.exports=o()},lTFK:function(e,t,n){n("Ox9E"),e.exports="toaster"},roCF:function(e,t,n){"use strict";var o=n("4m0D"),i=n.n(o),r=n("fWgf"),a=n.n(r),s=n("36aU"),c=n.n(s);i.a.module("services.socket.factory",[c.a?"rt.eventemitter":""]).factory("socketFactory",["eventEmitter","$location","$rootScope",function(e,t,n){var o={},r={};return r.get=function(t){if(!o[t]){var r=function(){console.log("makeWebSocket: "+t);var e=new WebSocket(t);e.binaryType="arraybuffer",console.log("connecting!"),s.connecting=!0,e.onopen=function(){console.log("WEBSOCKET.onopen "+t),s.connected=!0,s.connecting=!1,s.emit("connect")};var n=new a.a.Decoder((function(e,t){"v3.templates"===e?n.updateTemplates(t):s.emit(e,t)}));return e.onmessage=function(e){n.onMessage(e.data)},e.onerror=function(e){console.log("WEBSOCKET.onerror "+t)},e.onclose=function(e){console.log("WEBSOCKET.onclose "+t+": "+e.reason),s.connecting=!1,s.emit("_disconnect"),s.connected&amp;&amp;(s.connected=!1,o[t]=null,s.emit("disconnect"))},s.send=function(e,t){if(s.connected){var n=a.a.encode(e,t);s.socket.send(n)}},e},s={socket:null,connected:!1,connecting:!1,getRawSocket:function(){return s},isConnected:function(){return s.connected},close:function(){return s.socket.close()},forward:function(e,t,n){t instanceof Array==!1&amp;&amp;(t=[t]),t.forEach((function(t){var o=e+t,i=s.on(t,(function(){Array.prototype.unshift.call(arguments,o),n.$broadcast.apply(n,arguments)}));n.$on("$destroy",(function(){s.off(t,i)}))}))}};e.inject(s);var c=s.on.bind(s);s.on=function(e,t){var o=function(e,t){return t?function(){var o=arguments,i=n.$$phase;"$apply"==i||"$digest"==i?t.apply(e,o):n.$apply((function(){t.apply(e,o)}))}:i.a.noop}(s.socket,t);return c(e,o),o},s.on("error",(function(e){console.log("Socket error: "+e)})),s.makeWebSocket=r,s.socket=r(),s.release=function(){s.close(),o[t]=null},s.on("v3.ping",(function(e){s.send("v3.pong")})),o[t]=s}return o[t]},r}]),t.a="services.socket.factory"},wy2R:function(e,t){if("undefined"==typeof moment){var n=new Error("Cannot find module 'moment'");throw n.code="MODULE_NOT_FOUND",n}e.exports=moment},yLpj:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&amp;&amp;(n=window)}e.exports=n}});</pre></body></html>