YUI.add("flickr-people-getPhotos-fetcher",function(e,o){"use strict";e.namespace("ListFetchers")["flickr-people-getPhotos"]={run:function(t,s){var r=this,p=[s.callAPI("flickr.people.getPhotos",this._processParams(t),!0),s.getModelRegistry("photo-models"),s.getModelRegistry("person-models"),s.getModelRegistry("photostream-models"),s.getModelRegistry("photo-engagement-models"),s.getModelRegistry("photo-stats-models"),s.getModelRegistry("photo-privacy-models")];return t.createCompoundID&&s.getViewer().signedIn&&s.getViewer().nsid&&p.push(s.getModel("person-preferences-models",s.getViewer().nsid)),e.Promise.all(p).then(function(e){return r._processResponse(e,t)},e.FetcherErrorLogger(o))},_processParams:function(o){var t={per_page:o.perPage||20,page:o.page||1,extras:e.APIHelper.request.getRebootPhotoExtras(),get_user_info:1,jump_to:o.withPhotoId||""};return o.id||o.userId?t.user_id=(o.id||o.userId).split("-")[0]:o.pathAlias&&(t.path_alias=o.pathAlias),o.privacyFilter&&(t.privacy_filter=o.privacyFilter),o.viewAs&&(t.view_as=o.viewAs),o.orderBy&&("datetaken"===o.orderBy?t.sort="date-taken-desc":t.sort=o.orderBy),o.safeSearch&&(t.safe_search=o.safeSearch),o.media&&(t.media=o.media),o.withPhotoId&&(t.jump_to=o.withPhotoId),o.contentType&&(t.content_type=o.contentType),t},_processResponse:function(o,t){var s,r,p=o[0],a=o[1],i=o[2],d=o[3],n=o[4],l=o[5],h=o[6],g=p&&p.user?p.user.nsid:null,c=t.id||t.userId;if(!g)throw new Error("API was missing valid nsid");return r={id:g,pathAlias:p.user.pathAlias,owner:e.APIHelper.response.parsePerson(p.user),totalItems:p.photos.total},c&&c!==g&&(r.id=c),o[7]&&(r.id=g+"-"+e.Models["person-preferences-models"].buildContextSuffix(o[7],g)),r.owner=i.addOrUpdate(r.owner),s=e.APIHelper.response.parsePhotos({photos:p.photos.photo,ownerID:p.photos.owner,personModelRegistry:i,photoModelRegistry:a,photoEngagementModelRegistry:n,photoStatsModelRegistry:l,photoPrivacyModelRegistry:h}),r.photoPageList={perPage:p.photos.perpage,page:p.photos.page,pageContent:s,totalItems:parseInt(p.photos.total,10)||0},d.addOrUpdate(r),s}}},"@VERSION@",{requires:["flickr-promise","api-helper","person-preferences-models"],optional:["photo-models","person-models","photostream-models","photo-engagement-models","photo-stats-models","photo-privacy-models"]});YUI.add("photostream-models",function(e,t){function r(e){r.superclass.constructor.call(this,e)}e.Models[this.name]=r,e.extend(r,e.FlickrModelRegistry,{langBundles:this.details.langBundles,name:this.name,remote:{read:function(t){return e.ListFetchers["flickr-people-getPhotos"].run(t,this.appContext)}},attributes:{normalizedId:{readOnly:!0,defaultFn:function(e){return e.split("-")[0]}},displayType:{readOnly:!0,defaultFn:function(){return"photostream"}},title:{readOnly:!0,derivedBy:["owner","normalizedId"],defaultFn:function(e){var t,r=this.appContext.getViewer(),n=this.getValue(e,"normalizedId");return r&&r.nsid===n?this.intlMessage({intlName:"models.YOUR_PHOTOSTREAM"}):(t=this.getValue(e,"owner"))?this.intlMessage({intlName:"models.USER_PHOTOSTREAM",name:t.getValue("displayname")}):this.intlMessage({intlName:"models.PHOTOSTREAM"})}},pathAlias:{validator:function(t,r){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)||void 0},defaultFn:function(e){return this.getValue(e,"normalizedId")}},owner:{isModel:!0},isOwner:e.PhotoModelHelper.attributes.isOwner,photoPageList:{isCollection:!0,pageFetch:{listFetcher:e.ListFetchers["flickr-people-getPhotos"]}},photoContextList:{isListProxy:!0,contextFetch:{listFetcher:e.ListFetchers["flickr-photos-getContext"],listItemIdField:"photoId"}},url:{readOnly:!0,derivedBy:["owner","normalizedId"],defaultFn:function(e){var t=this.getValue(e,"owner"),r=this.getValue(e,"normalizedId");return"/photos/"+(t?t.getValue("pathAlias"):r)+"/"}},totalItems:{defaultFn:function(){return null}},urlSuffix:{readOnly:!0,defaultFn:function(e){var t,n=r.splitCompoundId(e);return n.orderBy?(t=n.orderBy,n.viewAs?t+="-"+n.viewAs:"dateposted"===n.orderBy&&(t="photostream")):t="photostream",t}}}},{buildCompoundId:function(e,t,r){var n=e;return t&&(n+="-"+t),r&&(t||(n+="-dateposted"),n+="-"+r),n},splitCompoundId:function(e){var t=e.split("-");return{nsid:t[0],orderBy:t[1],viewAs:t[2]}}})},"@VERSION@",{requires:["flickr-model-registry","flickr-promise","flickr-photos-getContext-fetcher","flickr-people-getPhotos-fetcher","photo-model-helper"],langBundles:["models"]});YUI.add("person-model-helper",function(e){e.PersonModelHelper={attributes:{pathAlias:{validator:function(t,r){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)||void 0},defaultFn:function(e){return e}},username:{validator:function(t,r){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)}},realname:{validator:function(t,r){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)}},displayname:{readOnly:!0,derivedBy:["username","realname"],getter:function(e,t){return this.getValue(t,"realname")||this.getValue(t,"username")}},nsid:{readOnly:!0,defaultFn:function(e){return e}},url:{readOnly:!0,derivedBy:["pathAlias"],defaultFn:function(e){return"/photos/"+this.getValue(e,"pathAlias")+"/"}},isMe:{readOnly:!0,defaultFn:function(e){var t=this.appContext.getViewer();return t.signedIn&&t.nsid===e}}}}},"@VERSION@",{requires:[]});YUI.add("person-models",function(e){function t(e){t.superclass.constructor.call(this,e)}e.Models[this.name]=t,e.extend(t,e.FlickrModelRegistry,{name:this.name,remote:{read:function(t){return e.ModelFetchers["flickr-people-getInfo"].run(t,this.appContext)}},attributes:{pathAlias:e.PersonModelHelper.attributes.pathAlias,username:e.PersonModelHelper.attributes.username,realname:e.PersonModelHelper.attributes.realname,displayname:e.PersonModelHelper.attributes.displayname,nsid:e.PersonModelHelper.attributes.nsid,url:e.PersonModelHelper.attributes.url,isMe:e.PersonModelHelper.attributes.isMe,buddyicon:{},isPro:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},proBadge:{validator:function(t){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)}},isMinor:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},proExpireDate:{validator:function(t){return e.AttributeHelpers.validateDate(t)},setter:function(t){return e.AttributeHelpers.coerceDate(t)},serialize:function(e){return e.format("X")},deserialize:function(t){return e.moment(t,"X")}},canBuyPro:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultFn:function(){return!1}},isDeleted:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},isAdFree:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},isNoAds:{derivedBy:["isPro","isAdFree"],readOnly:!0,getter:function(e,t){var r=this.getValue(t,"isPro"),n=this.getValue(t,"isAdFree");return r||n}},hasStats:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},hasAdfree:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},has1TB:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},has2TB:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},hasUnlimitedStorage:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},hasFreeStandardShipping:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},hasFreeEducationalResources:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)}},dateCreated:{validator:function(t){return e.AttributeHelpers.validateDate(t)},setter:function(t){return e.AttributeHelpers.coerceDate(t)},serialize:function(e){return e.format("X")},deserialize:function(t){return e.moment(t,"X")}},location:{defaultFn:function(){return""}},expiringPartner:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultFn:function(){return!1}},uploadCount:{defaultValue:null},uploadLimit:{defaultValue:null},uploadLimitStatus:{defaultValue:null},isCognitoUser:{defaultValue:null},hasAuthorizedMobile:{defaultValue:null},hasInvalidEmail:{defaultValue:!1},subscription:{defaultValue:{isPastDue:!1,isPro:!1,isClosed:!1}}}})},"@VERSION@",{requires:["flickr-model-registry","flickr-people-getInfo-fetcher","attribute-helpers","person-model-helper"]});YUI.add("flickr-people-getInfo-fetcher",function(e,r){"use strict";var s=new e.SubscriptionsHelper;e.namespace("ModelFetchers")["flickr-people-getInfo"]={run:function(s,o){var t=this,i=o.getViewer();return i&&i.signedIn&&(s.id===i.nsid||s.nsid===i.nsid)&&(s.storage=1),new e.FlickrPromise({apiResponse:o.callAPI("flickr.people.getInfo",this._processParams(s,o),!0),personModelRegistry:o.getModelRegistry("person-models"),personRelationshipModelRegistry:o.getModelRegistry("person-relationship-models"),personProfileModelRegistry:o.getModelRegistry("person-profile-models"),personPreferencesModelRegistry:o.getModelRegistry("person-preferences-models"),personGroupsModelRegistry:o.getModelRegistry("person-groups-models"),personNotificationsModelRegistry:o.getModelRegistry("person-notifications-models"),photostreamModelRegistry:o.getModelRegistry("photostream-models")}).then(function(e){return t._processResponse(e,s,o)},e.FetcherErrorLogger(r))},_processParams:function(r,s){var o={datecreate:1};if(o.extras=e.APIHelper.request.getRebootPeopleExtras(),YUI.Env.isServer&&r.id===s.request.probableUser?(o.storage=1,o.extras+=", classic_user_id, timezone_dst, unified_search_view_pref, photostream_view_order_pref, photostream_view_as_pref, album_view_layout, download_pref, products_features, subscriptions",o.extras+=", is_minor"):s.getViewer().signedIn&&r.id===s.getViewer().nsid&&(o.extras+=", products_features, subscriptions"),r.extras&&"string"==typeof r.extras&&r.extras.length>0&&(o.extras=o.extras+","+r.extras),r.id)o.user_id=r.id;else{if(!r.pathAlias)throw new Error("`fetch` is missing required params.");o.path_alias=r.pathAlias}return r.storage&&(o.storage=r.storage),o.extras||(o.extras=""),o.extras+=", has_stats",o},_processResponse:function(r,o,t){var i,a,n,p=r.apiResponse,d=r.personModelRegistry,l=r.personRelationshipModelRegistry,u=r.personProfileModelRegistry,c=r.personPreferencesModelRegistry,g=r.personGroupsModelRegistry,m=r.personNotificationsModelRegistry,h=r.photostreamModelRegistry,f=p.person,y=t.getViewer(),M=f.id,_=y&&y.signedIn&&M===y.nsid;return n={id:M,pathAlias:f.pathAlias,username:f.username&&f.username._content,realname:f.realname&&f.realname._content,buddyicon:e.APIHelper.response.removeProtocolFromURL(f.iconurls),isAdFree:f.isAdFree,isPro:f.ispro,proBadge:f.proBadge,isMinor:f.isMinor,canBuyPro:f.canBuyPro,hasStats:f.hasStats,location:f.location&&f.location._content,hasAdfree:f.hasAdfree,has1TB:f.has1TB,has2TB:f.has2TB,hasUnlimitedStorage:f.hasUnlimitedStorage,hasFreeStandardShipping:f.hasFreeStandardShipping,hasFreeEducationalResources:f.hasFreeEducationalResources,dateCreated:f.datecreate._content,expiringPartner:f.expiringPartner},f.ispro&&(n.proExpireDate=f.expire),_&&(n.uploadLimit=f.uploadLimit,n.uploadCount=f.uploadCount,n.uploadLimitStatus=f.uploadLimitStatus,n.isCognitoUser=f.isCognitoUser,n.hasInvalidEmail=!1,f.email&&(!f.email||f.email._content&&""!==f.email._content)?f.email._content&&-1===f.email._content.indexOf("@")?n.hasInvalidEmail=!0:n.hasInvalidEmail=!1:n.hasInvalidEmail=!0,n.isPro&&(n.subscription=s.parseEffectiveSubscriptionData(!0,p.effectiveSubscriptions))),d.addOrUpdate(n),m.addOrUpdate({id:M,unreadFlickrMailCount:f.unreadMessages?f.unreadMessages.content:0}),l.addOrUpdate({id:M,pathAlias:f.pathAlias,isContact:f.contact,isFriend:f.friend,isFamily:f.family,isIgnored:f.ignored,isIgnoredBy:f.ignoredby,isRevContact:f.revcontact,isRevFriend:f.revfriend,isRevFamily:f.revfamily}),_&&(a={id:M},f.safeSearch&&(a.safeSearch=(f.safeSearch||1)-1),f.viewPrefs&&(a.unifiedSearchViewPref=f.viewPrefs.unifiedSearchViewPref,a.photostreamViewOrderPref=f.viewPrefs.photostreamViewOrderPref,a.photostreamViewAsPref=f.viewPrefs.photostreamViewAsPref,a.albumViewLayoutPref=f.viewPrefs.albumViewLayout,a.galleryViewLayoutPref=f.viewPrefs.galleriesViewLayoutPref),c.exists(M)?c.setValues(M,a):c.add(a)),i={id:M,coverPhotoUrls:e.APIHelper.response.removeProtocolFromURL(f.coverphoto_url),photoCount:f.photos.count.content,location:f.location?f.location.content:null,arrPhotoCount:f.all_rights_reserved_photos_count},f.storage&&(i.storageUsed=f.storage.used.content,i.storageTotal=f.storage.total.content),f.unreadMessages&&(i.unreadMessages=f.unreadMessages.content),u.addOrUpdate(i),g.addOrUpdate({id:M,memberCount:f.groupMemberships?f.groupMemberships.member:null,moderatorCount:f.groupMemberships?f.groupMemberships.moderator:null,adminCount:f.groupMemberships?f.groupMemberships.admin:null,invitedCount:f.groupMemberships?f.groupMemberships.invited:null}),h.addOrUpdate({id:M,pathAlias:f.pathAlias,owner:d.proxy(M),totalItems:f.photos.count&&f.photos.count.content}),f}}},"@VERSION@",{requires:["flickr-promise","subscriptions-helper"],optional:["person-models","person-relationship-models","person-preferences-models","person-profile-models","person-groups-models","photostream-models","api-helper"]});YUI.add("person-relationship-models",function(e){function t(e){t.superclass.constructor.call(this,e)}e.Models[this.name]=t,e.extend(t,e.FlickrModelRegistry,{name:this.name,remote:{read:function(t){return e.ModelFetchers["flickr-people-getInfo"].run(t,this.appContext)},update:function(t,i){var r=[],n={};return e.Lang.isObject(i,!0)&&(n.user_id=t,n.friend=this.getValue(t,"isFriend"),n.family=this.getValue(t,"isFamily"),"isContact"in i&&(i.isContact.newVal?r.push(e.ModelUpdaters["flickr-contacts-add"].run(n,this.appContext)):r.push(e.ModelUpdaters["flickr-contacts-remove"].run(n,this.appContext))),("isFriend"in i||"isFamily"in i)&&("isFriend"in i&&(n.friend=i.isFriend.newVal),"isFamily"in i&&(n.family=i.isFamily.newVal),r.push(e.ModelUpdaters["flickr-contacts-edit"].run(n,this.appContext))),"isIgnored"in i&&(!0===i.isIgnored.newVal?r.push(e.ModelUpdaters["flickr-contacts-block"].run(n,this.appContext)):r.push(e.ModelUpdaters["flickr-contacts-unblock"].run(n,this.appContext)))),e.Promise.all(r)}},toggleFollowing:function(e){this.getValue(e,"isContact")?this.setValue(e,"isContact",!1):this.setValue(e,"isContact",!0)},toggleFriend:function(e){this.getValue(e,"isFriend")?this.setValue(e,"isFriend",!1):this.setValue(e,"isFriend",!0)},toggleFamily:function(e){this.getValue(e,"isFamily")?this.setValue(e,"isFamily",!1):this.setValue(e,"isFamily",!0)},toggleIgnore:function(e){this.getValue(e,"isIgnored")?this.setValue(e,"isIgnored",!1):this.setValue(e,"isIgnored",!0)},attributes:{pathAlias:{validator:function(t){return e.AttributeHelpers.validateString(t)},setter:function(t){return e.AttributeHelpers.coerceString(t)}},isContact:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isFriend:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isFamily:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isRevContact:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isRevFriend:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isRevFamily:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isIgnoredBy:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isIgnored:{validator:function(t){return e.AttributeHelpers.validateBoolean(t)},setter:function(t){return e.AttributeHelpers.coerceBoolean(t)},defaultValue:!1},isMe:{readOnly:!0,getter:function(e,t){var i=this.appContext.getViewer();return!!i&&this.getValue(t,"nsid")===i.nsid}},nsid:{readOnly:!0,defaultFn:function(e){return e}}}})},"@VERSION@",{requires:["flickr-model-registry","flickr-people-getInfo-fetcher","flickr-contacts-add-updater","flickr-contacts-remove-updater","flickr-contacts-edit-updater","flickr-contacts-block-updater","flickr-contacts-unblock-updater","attribute-helpers"]});YUI.add("banner-helper",function(e,n){var i=require("hermes-core/flog")(n),r=(e.mix({langBundles:["featured-banner"]},e.Localizable),new e.SubscriptionsHelper);e.BannerHelper=function(n){function t(){s=a.sort(function(e,n){return e.priority-n.priority})}var o=this,a=[],s=[],u="products-pro-view",c="pro-checkout-view",l={loginMigration:function(i){return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"header",load:function(){return e.Promise.resolve()},canShowBanner:function(){var e=!1,i=n.getViewer().isCognitoUser;return!n.getViewer().signedIn||i||(function(){var e=[u],i=n.flapp.get("activeView").name;return!!(i&&e.indexOf(i)>-1)})()||(e=!0),e},viewName:"login-migration-banner-view",viewConfig:{}}},pastDue:function(i){var r;return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"header",load:function(){var i=n.getViewer();return i.signedIn&&i.isPro?n.getModel("person-models",i.nsid).then(function(e){var n=e.getValue("subscription");r=n.isPastDue}):(r=!1,e.Promise.resolve())},canShowBanner:function(){var e=!1;return n.getViewer().signedIn&&n.getViewer().isPro&&!(function(){var e=[u,c],i=n.flapp.get("activeView").name;return i&&e.indexOf(i)>-1})()&&r&&(e=!0),e},viewName:"past-due-banner-view",viewConfig:{}}},braintreeMigrate:function(i){var t=!1,o=!0;return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"header",load:function(){var i=n.getViewer();return i.signedIn&&i.isPro?n.getModel("subscription-history-list-models",i.nsid).then(function(n){var i=r.isUserCurrentlyOnABraintreeSub(n);t=i.isUserCurrentlyOnABraintreeSub&&i.renewalDate&&i.renewalDate.isBefore(e.moment().add(60,"days")),o=i.renewalDate&&i.renewalDate.isBefore(e.moment().add(15,"days"))}.bind(this)):(t=!1,e.Promise.resolve())},canShowBanner:function(){var i=!1;return n.getViewer().signedIn&&n.getViewer().isPro&&t&&!(function(){var e=[u,c],i=n.flapp.get("activeView").name;return i&&e.indexOf(i)>-1})()&&(!n.getCookie(e.config.flickr.banners.dismiss_braintree_migration_banner_name)||n.getCookie(e.config.flickr.banners.dismiss_braintree_migration_banner_name)&&o)&&(i=!0),i},viewName:"braintree-migrate-banner-view",viewConfig:{}}},cookie:function(i){return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"header",load:function(){return e.Promise.resolve()},canShowBanner:function(){return!n.getCookie(e.config.flickr.banners.dismiss_cookie_banner_name)&&(e.config.flickr.geo.eu||"US"===e.config.flickr.geo.countryCode)&&!n.flipper.isFlipped("enable-cookie-consent-execution-hermes")},viewName:"cookie-banner-view",viewConfig:{}}},cookieConsent:function(i){return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"footer",load:function(){return e.Promise.resolve()},canShowBanner:function(){return n.flipper.isFlipped("enable-cookie-consent-execution-hermes")},viewName:"trustarc-consent-manager-view",viewConfig:{}}},uploadLimit:function(i){var r;return{priority:"priority"in i?i.priority:Number.MAX_VALUE,placement:"placement"in i?i.placement:"header",load:function(){return n.getViewer().signedIn?n.getModel("person-profile-models",n.getViewer().nsid).then(function(e){r=e}):e.Promise.resolve()},canShowBanner:function(){var i=!n.getCookie(e.config.flickr.upload_blocking.dismiss_over_upload_limit_message_cookie_name)&&e.UserLimitsHelper.isOverARRLimit(r,n)&&"products-flickrpro-route"!==n.routeConfig.module,t=!n.getCookie(e.config.flickr.upload_blocking.dismiss_at_upload_limit_message_cookie_name)&&e.UserLimitsHelper.isAtUploadLimit(r,n),o=!n.getCookie(e.config.flickr.upload_blocking.dismiss_near_upload_limit_message_cookie_name)&&e.UserLimitsHelper.isNearUploadLimit(r,n);return n.flipper.isFlipped("enable-upload-limit-messages")&&n.getViewer().signedIn&&"pro-checkout-route"!==n.routeConfig.module&&(i||t||o)},viewName:"upload-limit-banner-view",viewConfig:{}}}};return this.loadBanners=function(n){var r=n.map(function(n){return(function(n){var r=new l[n.type]({priority:n.priority,placement:n.placement});return r?r.load().then(function(){!(function(e){a.push(e),t()})(r)}).catch(function(e){i.error("Failed to load and register banner.",{err:e})}):e.Promise.resolve()})(n)});return e.Promise.all(r)},this.getBanners=function(e){var n=[];return e.forEach(function(e){var i=(function(e){var i,r=s.find(function(n,r){if((void 0===e||n.placement===e)&&n.canShowBanner())return i=r,!0});if(r)return(function(e){n.splice(e,1),t()})(i),r})(e);i&&n.push(i)}),n},this.getQueue=function(){return s},this.typeObjects=l,this.renderBannerView=function(e){return(function(e){return n.getView(e.viewName,e.viewConfig).then(function(e){var i;return n.getView("banner-view",{subview:e}).then(function(e){return(i=e).initialize()}).then(function(){return i})})})(e).then(function(n){o.fire("renderBanner",{placement:e.placement,bannerView:n})})},this},e.augment(e.BannerHelper,e.EventTarget)},"@VERSION@",{requires:["banner-view","event-custom","subscription-history-list-models","person-models"]});YUI.add("storage-helper",function(e){e.StorageHelper={setItem:function(t,i,n){var o=n?"sessionStorage":"localStorage";if(e.config.win)try{e.config.win[o][t]=i}catch(e){}},getItem:function(t,i){var n,o=i?"sessionStorage":"localStorage";if(e.config.win)try{n=e.config.win[o][t]}catch(e){}return n},remove:function(t,i){var n=i?"sessionStorage":"localStorage";if(e.config.win)try{e.config.win[n].removeItem(t)}catch(e){}},hasEntries:function(t,i){var n=i?"sessionStorage":"localStorage",o=!1;if(e.config.win)try{o=void 0!==e.config.win[n][t]}catch(e){}return o},isLocalStorageAvailable:function(){var t="checkLSCompat",i=!1;try{e.config.win.localStorage[t]="checkLSCompatValue",e.config.win.localStorage.removeItem(t),i=!0}catch(e){i=!1}return i}},e.Storage={Instance:{_cache:{},_hasSessionStorage:!0,_clientIdKey:"",getClientIdKey:function(){return this._clientIdKey||(this._clientIdKey=e.config.win.appContext.clientId+"_"),this._clientIdKey},get:function(t){var i,n;try{t=t||"",i=this.getClientIdKey()+t,n=this._hasSessionStorage?e.config.win.sessionStorage.getItem(i):this._cache[i]}catch(e){this._hasSessionStorage=!1}return n},set:function(t,i){var n;try{t&&(n=this.getClientIdKey()+t,this._hasSessionStorage?e.config.win.sessionStorage.setItem(n,i):this._cache[n]=i)}catch(e){this._cache[n]=i,this._hasSessionStorage=!1}},has:function(t){var i,n=!1;try{i=this.getClientIdKey()+t,n=this._hasSessionStorage?!!e.config.win.sessionStorage.getItem(i):!!this._cache[i]}catch(e){this._hasSessionStorage=!1}return n},remove:function(t){var i;try{t=t||"",i=this.getClientIdKey()+t,this._hasSessionStorage?e.config.win.sessionStorage.removeItem(i):this._cache[i]=void 0}catch(e){this._hasSessionStorage=!1}},clear:function(){this.clearByKey(this.getClientIdKey())},clearByKey:function(t){var i,n,o,s=[];try{if(t)if(this._hasSessionStorage){for(i=0,o=e.config.win.sessionStorage.length;i<o;i++)(n=e.config.win.sessionStorage.key(i))&&0===n.indexOf(t)&&s.push(n);for(i=0,o=s.length;i<o;i++)e.config.win.sessionStorage.removeItem(s[i])}else for(e.Object.each(this._cache,function(e,i){0===i.indexOf(t)&&s.push(i)}),i=0,o=s.length;i<o;i++)this._cache[s[i]]=void 0}catch(e){this._hasSessionStorage=!1}}}}},"@VERSION@",{requires:[]});YUI.add("cookie-catcher",function(e,o){"use strict";function i(o,i){this.cookieLevelBuckets=i,this.appContext=o,this.expireTime=new Date((new Date).getTime()+864e5*e.config.flickr.cookie_consent.consent_context_expiration_days),this.cookieConsentEnabled=this.appContext.flipper.isFlipped("enable-cookie-consent-execution-hermes")}require("hermes-core/flog")(o);i.prototype.getCookieLevel=function(e){return-1!==this.cookieLevelBuckets.required.indexOf(e)?0:-1!==this.cookieLevelBuckets.functional.indexOf(e)?1:-1!==this.cookieLevelBuckets.advertising.indexOf(e)?2:null},i.prototype.setCookieIfAllowed=function(o,i,t){if(this.cookieConsentEnabled){var n=this.getCookieLevel(o),c=this.appContext.cookieConsentContext?this.appContext.cookieConsentContext.info.cookieBlock.level:0;(null===n||n<=c&&!YUI.Env.isServer)&&e.Cookie.set(o,i,t)}else e.Cookie.set(o,i,t)},i.prototype.getCookieConsentContext=function(){var o=this.appContext.getCookie(e.config.flickr.cookie_consent.consent_context_name),i={managed:0,changed:0,info:{cookieBlock:{level:0,blockRan:0}}};if(o)try{i=JSON.parse(o)}catch(o){this.setCookieIfAllowed(e.config.flickr.cookie_consent.consent_context_name,JSON.stringify(i),{path:"/",domain:e.config.flickr.cookies.domain,expires:this.expireTime})}else this.setCookieIfAllowed(e.config.flickr.cookie_consent.consent_context_name,JSON.stringify(i),{path:"/",domain:e.config.flickr.cookies.domain,expires:this.expireTime});return i},i.prototype.updateConsentContext=function(o){var i=this.appContext.cookieConsentContext;i.info.cookieBlock.level!==o&&(i.changed=1,i.info.cookieBlock.level=o,this.setCookieIfAllowed(e.config.flickr.cookie_consent.consent_context_name,JSON.stringify(i),{path:"/",domain:e.config.flickr.cookies.domain,expires:this.expireTime}),e.config.win.location.reload())},i.prototype.handleConsentManagerChoice=function(){var e;try{e=window.truste.cma.callApi("getConsentDecision","flickr.com"),this.updateConsentContext(e.consentDecision-1)}catch(e){}},e.namespace("CookieCatcher"),e.CookieCatcher=i},"@VERSION@",{requires:["cookie","io-base","json-parse","storage-helper","murmurhash","url"]});