made with requirebin
Last active
May 11, 2017 21:01
-
-
Save johnmichel/074f7449f7da3cc85ff1b71d3f9de7aa to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const R = require('ramda'); | |
const S = require('sanctuary'); | |
const getNavigationProp = function getNavigationProp(prop, key, value, flatNav) { | |
console.log('prop is', prop) // displayName | |
console.log('key is', key) // slug | |
console.log('value is', value) // pet-products | |
/* | |
return R.compose( | |
// S.fromMaybe(''), | |
R.prop(prop) | |
, | |
//S.find(R.prop(value)) // slug, VAL | |
// S.gets(R.propEq(key, value)) | |
R.prop(value)//, | |
// S.pluck(Object, value) | |
)(flatNav); | |
*/ | |
return R.compose( | |
S.fromMaybe(''), | |
R.map(R.prop(prop)) | |
, | |
// S.find(R.propEq(value, prop)) // slug, VAL | |
// S.gets(R.propEq(key, value)) | |
S.get(Object, value)//, | |
// S.pluck(Object, value) | |
)(flatNav); | |
}; | |
//S.gets | |
const devdata={ | |
"pet-products": { | |
"itemId": "FP_14400017", | |
"category": { | |
"allowPermanentMarkdownTiles": !1, | |
"allowTemporaryMarkdownTiles": !1, | |
"displayName": "FP Home > FP Pet Project > Shop All", | |
"id": "FP_CAT1810088", | |
"categoryClass": "" | |
}, | |
"displayName": "FP Pet Project", | |
"links": [ | |
[Object], | |
[Object] | |
], | |
"targetUrlTarget": "_self", | |
"typeCode": "DEFAULT", | |
"browseDisplayPreferences": { | |
"tileTemplate": "REGULAR" | |
}, | |
"type": "Navigation Item Browse Content", | |
"childSlugs": ["pet-collars", "pet-leashes", "pet-toys", "pet-coats", "pet-accessories", "pet-beds"], | |
"categoryId": "FP_CAT1810088", | |
"nestLevel": 3, | |
"parentItemId": "FP_4600050", | |
"parentSlug": "home-decor", | |
"active": !0, | |
"navigationDisplayPreferences": { | |
"displayAsSale": !1, | |
"tertiaryDisplay": 0 | |
}, | |
"seo": { | |
"noIndex": !1, | |
"includeInSitemap": !0, | |
"noFollow": !1 | |
}, | |
"containerInfo": [], | |
"slug": "pet-products" | |
},"trapeze-slips":{"itemId":"FP_4600087","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Intimates > Slips > Trapeze Slips","id":"FP_CAT360016","categoryClass":""},"displayName":"Trapeze Slips","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT360016","nestLevel":3,"parentItemId":"FP_4600060","parentSlug":"slips","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"trapeze-slips"},"bodycon-dresses":{"itemId":"FP_6100076","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Clothes > Dresses > Bodycon","id":"FP_CAT1410005","categoryClass":""},"displayName":"Bodycon Dresses","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1410005","nestLevel":2,"parentItemId":"FP_10900006","parentSlug":"uk-dresses","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"bodycon-dresses"},"hats":{"itemId":"FP_4600013","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Accessories > Hats","id":"FP_CAT270069","categoryClass":""},"displayName":"Hats","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":["hats-trending-now","straw-hats","felt-hats","novelty-hats","baseball-caps","beanies","berets"],"categoryId":"FP_CAT270069","nestLevel":2,"parentItemId":"FP_6100011","parentSlug":"accessories","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"hats"},"connect-footer":{"itemId":"6f9f60e0-df08-412b-ea0a-c43ac4512ed1","category":{"displayName":"","id":"","categoryClass":""},"displayName":"Connect","links":[[Object],[Object],[Object]],"targetUrlTarget":"_self","typeCode":"HEADING","browseDisplayPreferences":{},"type":"Heading","childSlugs":[],"categoryId":"","nestLevel":1,"parentSlug":"footer-root","active":!0,"navigationDisplayPreferences":{"displayAsSale":!0,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"connect-footer"},"true-colors-lookbook-landing-page":{"itemId":"FP_21400011","category":{"displayName":"","id":"","categoryClass":""},"displayName":"True Colors","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"GATEWAY","browseDisplayPreferences":{},"type":"Gateway","childSlugs":["true-colors-lookbook"],"categoryId":"","nestLevel":3,"parentItemId":"FP_8800008","parentSlug":"trends","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!1,"noFollow":!1},"containerInfo":[],"slug":"true-colors-lookbook-landing-page"},"fp-exclusives-shoes":{"itemId":"FP_8800130","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Trends > Features > FP Exclusives > Shoes","id":"FP_CAT1040024","categoryClass":""},"displayName":"FP Exclusives","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1040024","nestLevel":2,"parentItemId":"FP_6400009","parentSlug":"shoes","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"fp-exclusives-shoes"},"bikini-panties":{"itemId":"FP_15500087","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Intimates >> Undies >> Bikini","id":"FP_CAT1940109","categoryClass":""},"displayName":"Bikini","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1940109","nestLevel":3,"parentItemId":"FP_4600058","parentSlug":"undies","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"bikini-panties"},"gloss-moderne":{"itemId":"FP_22400010","category":{"allowPermanentMarkdownTiles":!0,"allowTemporaryMarkdownTiles":!0,"displayName":"beauty & wellness>featured brands>Gloss Moderne","id":"FP_CAT2800137","categoryClass":""},"displayName":"Gloss Moderne","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT2800137","nestLevel":3,"parentItemId":"FP_15700128","parentSlug":"featured-brands","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"gloss-moderne"},"strappy-bras":{"itemId":"FP_13500024","category":{"allowPermanentMarkdownTiles":!0,"allowTemporaryMarkdownTiles":!0,"displayName":"Intimates>Bras>Strappy","id":"FP_CAT1710172","categoryClass":""},"displayName":"Strappy","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1710172","nestLevel":3,"parentItemId":"FP_4600056","parentSlug":"bras","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"strappy-bras"},"pet-collars":{"itemId":"FP_9100019","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"FP Home> FP Pet Project > Pet Collars","id":"FP_CAT1080007","categoryClass":""},"displayName":"Pet Collars","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1080007","nestLevel":4,"parentItemId":"FP_14400017","parentSlug":"pet-products","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"pet-collars"},"store-footer":{"itemId":"d3c7df17-f915-d737-7ba8-c84f0677d11d","childSlugs":[],"displayName":"Find Your Store","links":[[Object],[Object],[Object]],"targetUrlTarget":"_self","typeCode":"EXTERNAL","browseDisplayPreferences":{},"type":"External Navigation Item","categoryId":"","nestLevel":1,"relativeFlag":!0,"parentSlug":"footer-root","targetUrl":"/stores/","active":!0,"navigationDisplayPreferences":{"displayAsSale":!0,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"category":{"displayName":"","id":"","categoryClass":""},"containerInfo":[],"slug":"store-footer"},"featured-brands-swimwear":{"itemId":"FP_22300006","category":{"displayName":"","id":"","categoryClass":""},"displayName":"Featured Brands","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"GATEWAY","browseDisplayPreferences":{},"type":"Gateway","childSlugs":["acacia","amuse","beach-riot","fella","mikoh","minimale-animale","solid-and-striped","tavik","mara-hoffman","she-made-me","gnash"],"categoryId":"","nestLevel":2,"parentItemId":"FP_6400061","parentSlug":"swimwear","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"featured-brands-swimwear"},"lip-balms-treatments":{"itemId":"FP_15700046","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Beauty>>Cosmetics>>Lips>>Lip Balm + Treatment","id":"FP_CAT1960217","categoryClass":""},"displayName":"Lip Balm + Treatment","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1960217","nestLevel":4,"parentItemId":"FP_15700042","parentSlug":"lip-makeup","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"lip-balms-treatments"},"backstage-pass-trend":{"itemId":"FP_12600006","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Backstage Pass","id":"FP_CAT1570007","categoryClass":""},"displayName":"Backstage Pass","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1570007","nestLevel":4,"parentItemId":"FP_12800006","parentSlug":"events","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"backstage-pass-trend"},"additional-inseams":{"itemId":"FP_6100132","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Clothes > Denim > Additional Inseams","id":"FP_CAT830034","categoryClass":""},"displayName":"Additional Inseams","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT830034","nestLevel":3,"parentItemId":"FP_6100052","parentSlug":"jeans","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"additional-inseams"},"ordering-payment":{"itemId":"FP_8800030","category":{"displayName":"","id":"","categoryClass":""},"displayName":"Ordering and Payment","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"NONPRODUCT","browseDisplayPreferences":{},"type":"Non-Product Page","childSlugs":[],"categoryId":"","nestLevel":2,"parentItemId":"682976c2-9b7b-b022-0202-d3d6bf287619","parentSlug":"help-root-help","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"ordering-payment"},"surf-school-trend":{"itemId":"FP_17400014","category":{"allowPermanentMarkdownTiles":!0,"allowTemporaryMarkdownTiles":!0,"displayName":"trends>surf school","id":"FP_CAT2150649","categoryClass":""},"displayName":"Surf School","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT2150649","nestLevel":4,"parentItemId":"FP_12800006","parentSlug":"events","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"surf-school-trend"},"true-colors-look-9":{"itemId":"FP_21200024","category":{"allowPermanentMarkdownTiles":!0,"allowTemporaryMarkdownTiles":!0,"displayName":"true colors look 9","id":"FP_CAT2650061","categoryClass":""},"displayName":"true colors look 9","links":[],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT2650061","nestLevel":1,"parentSlug":"marketing-root","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"true-colors-look-9"},"free-people-collection":{"itemId":"FP_9500148","category":{"allowPermanentMarkdownTiles":!1,"allowTemporaryMarkdownTiles":!1,"displayName":"Shoes > Shops & Trends > Free People Collection","id":"FP_CAT1120061","categoryClass":""},"displayName":"Free People Collection","links":[[Object],[Object]],"targetUrlTarget":"_self","typeCode":"DEFAULT","browseDisplayPreferences":{"tileTemplate":"REGULAR"},"type":"Navigation Item Browse Content","childSlugs":[],"categoryId":"FP_CAT1120061","nestLevel":3,"parentItemId":"FP_9500142","parentSlug":"shops-trends","active":!0,"navigationDisplayPreferences":{"displayAsSale":!1,"tertiaryDisplay":0},"seo":{"noIndex":!1,"includeInSitemap":!0,"noFollow":!1},"containerInfo":[],"slug":"free-people-collection"}}; | |
const stagingdata=[{"itemId":"6100017","displayName":"New","links":[[Object],[Object],[Object]],"parentItemId":"6000010","categoryId":"cat242840","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"New Arrivals: Women's Clothing","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our new women's clothing plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"whats-new"},{"itemId":"16700008","displayName":"New Fall Now","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat2060058","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Fall 2016 Boots, Sweaters, Jackets & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Fall 2016 clothes for women, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-fall-now"},{"itemId":"6100019","displayName":"Clothes","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242842","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Arrivals: Clothes","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our new women's clothes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-clothes"},{"itemId":"6100021","displayName":"Shoes","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242846","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Arrivals: Shoes","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest collection of shoes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-shoes"},{"itemId":"6100023","displayName":"Accessories","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242845","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Arrivals: Accessories","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest collection of accessories plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-accessories"},{"itemId":"6100025","displayName":"Intimates","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242844","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Arrivals: Intimates","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest collection of intimates plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-intimates"},{"itemId":"6100027","displayName":"Swim","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242847","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Swim","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest swimwear collection plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-swim"},{"itemId":"16300006","displayName":"Beauty","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat2020104","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Beauty Products","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of our newest beauty products, plus get fashion tips from FP Me stylists! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-beauty"},{"itemId":"9000015","displayName":"Movement","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat1070008","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New FP Movement Clothing","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest FP movement collection plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-movement"},{"itemId":"14400015","displayName":"Vintage Loves","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat360177","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Vintage Loves | New Vintage Clothes Arrivals","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of new vintage clothes arrivals plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-vintage-loves"},{"itemId":"6100030","displayName":"Back in Stock","links":[[Object],[Object],[Object]],"parentItemId":"6100017","categoryId":"cat242851","navigationItems":[[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"All Back in Stock Items","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop all back in stock items plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock"},{"itemId":"9000024","displayName":"Clothes","links":[[Object],[Object],[Object]],"parentItemId":"6100030","categoryId":"cat242852","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock Clothes","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop back in stock apparel plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-clothes"},{"itemId":"9100017","displayName":"Shoes","links":[[Object],[Object],[Object]],"parentItemId":"6100030","categoryId":"cat242854","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock Shoes","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop back in stock shoes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-shoes"},{"itemId":"9000029","displayName":"Accessories","links":[[Object],[Object],[Object]],"parentItemId":"6100030","categoryId":"cat242853","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock Accessories","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop back in stock accessories plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-accessories"},{"itemId":"9100015","displayName":"Intimates","links":[[Object],[Object],[Object]],"parentItemId":"6100030","categoryId":"cat242855","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock Intimates","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop back in stock intimates plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-intimates"},{"itemId":"13400008","displayName":"FP Movement","links":[[Object],[Object],[Object]],"parentItemId":"6100030","categoryId":"cat1700093","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock FP Movement Workout Clothes","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop back in stock FP Movement clothes and more, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-fp-movement"},{"itemId":"6100035","displayName":"Clothes","links":[[Object],[Object],[Object]],"parentItemId":"6000010","categoryId":"cat1630392","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Clothes for Women | Bohemian Clothing & Apparel ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Free People's wide selection of apparel for women is always on point and in-style to keep you looking fabulous. Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Gateway","slug":"clothes"},{"itemId":"6100039","displayName":"Dresses test","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat242858","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Boho Dresses, Cute & Casual Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Free People’s cute dresses fit every occasion! Shop online for summer dresses, sundresses, casual dresses, white boho maxi dresses & more.","h1TagOverride":"Dresses"},"type":"Navigation Item Browse Content","slug":"dresses"},{"itemId":"13500016","displayName":"New Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1710007","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"New Dresses | Maxi, Bodycon, Midi & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop our latest selection of new dresses, from minis to maxis, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"new-dresses"},{"itemId":"13500018","displayName":"Back in Stock Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1710008","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Back in Stock Dresses for Women ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of back in stock dresses, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"back-in-stock-dresses"},{"itemId":"6100078","displayName":"Day Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat830012","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Crochet Dresses, Sundresses & Day Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Dress up your day with these beautiful day dresses & sundresses from Free People. Pick a crochet dress, or sun dress for your Sunday brunch this weekend.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"day-dresses"},{"itemId":"6100082","displayName":"Party Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1410009","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Party Dresses, Lace Dresses & Sequin Dresses ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Step into the limelight with a stunning party dresses from Free People. Shop our large collection which includes sequin dresses, lace dresses and so much more.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"party-dresses"},{"itemId":"6100080","displayName":"Night Out Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat830013","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Night Dresses - Date and Night Out Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop Free People's selection of night dresses. Whether you're going on a date or a girls night out, our beautiful dresses will make you stand out at night!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"night-out-dresses"},{"itemId":"6100076","displayName":"Bodycon Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1410005","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Bodycon Dresses- Lace, Long Sleeve & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Our stunning selection of bodycon dresses include lace, long sleeve and various prints in styles from mini to long. Find the perfect bodycon dress at Free People.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"bodycon-dresses"},{"itemId":"6100074","displayName":"Maxi Dresses ","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat830010","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Maxi Dresses: White, Black, Lace & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Women's maxi dresses for any occasion. Shop Free People’s selection of black & white maxi dresses, one-shoulder maxi dresses & lace maxi dresses.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"maxi-dresses"},{"itemId":"6100072","displayName":"Mini Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1410008","navigationItems":[[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Mini Dresses: Shift Dresses & Little Black Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop Free People’s selection of mini dresses, little black dresses & shift dresses to wear on a date or style for a fun night out. Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"mini-dresses"},{"itemId":"9500064","displayName":"Fit & Flare Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100072","categoryId":"cat1120026","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Fit & Flare Dresses for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Fit & Flare Dresses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"fit-and-flare-dresses"},{"itemId":"6100084","displayName":"Printed Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1410010","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Shop Floral Dresses & Printed Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Celebrate spring with Free People's printed dresses! Choose a floral print dress for a relaxed, chic look, or a statement print dress for an edgy style.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"printed-dresses"},{"itemId":"9500066","displayName":"White Dresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1120027","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"White Dresses & Little White Dresses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of White Dresses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"white-dresses"},{"itemId":"10200012","displayName":"Trend: Shirtdresses","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1240194","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Shirt Dresses | Long & Short for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop cute shirt dresses, from long and short cuts to button down styles, plus get tips from FP Me stylists! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"shirtdresses"},{"itemId":"15700188","displayName":"Trend: Sweater Dresses ","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1960498","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Sweater Dresses & Knit Dresses for Women ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of cute sweaters dresses, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"sweater-dresses-trend"},{"itemId":"14600013","displayName":"Dresses Under $100","links":[[Object],[Object],[Object]],"parentItemId":"6100039","categoryId":"cat1340014","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Dresses Under 100 for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of dresses under $100, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":"Dresses Under $100"},"type":"Navigation Item Browse Content","slug":"dresses-under-100"},{"itemId":"6100041","displayName":"Tops & Tees","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250001","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Lace Tops, Off the Shoulder Tops & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Browse Free People's wide selection of tops for women. Choose from these stylish and comfortable white lace tops, off the shoulder tops, and more!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"tops"},{"itemId":"6100086","displayName":"Tees","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830017","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Women's Tees - Oversized T Shirts & Baseball Tees","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Pick your favorite everyday tee at Free People! Whether it's an oversized t-shirt, baseball tee, or a v-neck, our t-shirts will keep you comfy yet stylish.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"tees"},{"itemId":"10200014","displayName":"Graphic Tees","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat1240195","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Graphic Tees - Graphic T Shirts for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Graphic Tees plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"graphic-tees"},{"itemId":"6100090","displayName":"Tunics","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830019","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Modern Women's Tunics And Long Tunic Tops","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop for women's long tunic tops online at FreePeople.com. Try all the styles and share pics of your favorite tunic tops with your friends via FP Me.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"tunics"},{"itemId":"6100094","displayName":"Camis & Tanks","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830021","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Camis, Tank Tops & Tube Tops","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop camis, tank tops, and tube tops from Free People. Dress up with a backless top for a summer date or choose a black or white cami for a chic everyday look.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"camis-tanks"},{"itemId":"6100092","displayName":"Blouses","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830020","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Blouses - Peasant Blouses & Sheer Silk Blouses","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of blouses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"blouses"},{"itemId":"6100102","displayName":"Crop Tops","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat250017","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Crop Tops: White, Black, Lace & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"It's not officially summer until you add cropped tops to your wardrobe! Find your perfect crop top from our collection of white, black, and lace crop tops.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"crop-tops"},{"itemId":"6100100","displayName":"Going Out Tops","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat250018","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Going Out Tops | Sequin Tops & Dressy Shirts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Going Out Tops plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"going-out-tops"},{"itemId":"9500072","displayName":"Layering Tops","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat250025","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Layering Tees, Shirts & Tops for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of layering tops plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"layering-tops"},{"itemId":"6100096","displayName":"Thermals & Henleys","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830022","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Women's Henley Shirts & Thermal Tops for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop Free People's wide selection of long sleeve thermal and henley shirts. These light-weight fabrics will keep you warm, comfortable, and stylish all winter.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"thermals-henleys"},{"itemId":"6100088","displayName":"Shirts","links":[[Object],[Object],[Object]],"parentItemId":"6100041","categoryId":"cat830018","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Plaid Shirts, Denim Shirts & Button Down Shirts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of shirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"shirts"},{"itemId":"6100098","displayName":"Sweatshirts","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250016","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cool Sweatshirts & Hooded Sweatshirts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Sweatshirts & Pullovers plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"sweatshirts-pullovers"},{"itemId":"11500014","displayName":"Bodysuits","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat1510040","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Bodysuits & Bodysuit Tops | Long Sleeve & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of sexy bodysuit tops, including long sleeve, v-neck, and sleeveless styles, plus more. Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"bodysuits"},{"itemId":"4600020","displayName":"Kimonos & Ponchos","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat270072","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Kimonos & Ponchos","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop Free People's wide selection of beautiful kimonos, ponchos, and scarves. These comfortable and high quality fabrics will keep you warm this fall and winter.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"kimonos-ponchos"},{"itemId":"6100043","displayName":"Sweaters","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250019","navigationItems":[[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Oversized Sweaters, Turtleneck Sweaters & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Are you ready for fall and winter? Find your new favorite oversized sweater. Shop our selection cashmere sweaters, wool sweaters plus other unique sweaters.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"sweaters"},{"itemId":"12300027","displayName":"Sleeveless Sweaters","links":[[Object],[Object],[Object]],"parentItemId":"6100043","categoryId":"cat1570021","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Sleeveless Sweaters & Sweater Tanks for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of cute sleeveless sweaters plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"sleeveless-sweaters"},{"itemId":"6100104","displayName":"Pullovers","links":[[Object],[Object],[Object]],"parentItemId":"6100043","categoryId":"cat250021","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Pullovers & Pullover Sweaters for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Pullovers plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"pullovers"},{"itemId":"6100106","displayName":"Cardigans","links":[[Object],[Object],[Object]],"parentItemId":"6100043","categoryId":"cat250022","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Women's Cardigan Sweaters | Long & Short","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Cardigans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"cardigans"},{"itemId":"12300029","displayName":"Tunics","links":[[Object],[Object],[Object]],"parentItemId":"6100043","categoryId":"cat1570022","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Tunic Sweaters | Long Sweaters for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of long tunic sweaters plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"tunic-sweaters"},{"itemId":"12800081","displayName":"Unspun","links":[[Object],[Object],[Object]],"parentItemId":"6100043","categoryId":"cat1120029","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Unspun: Hand Knit Sweaters for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":null,"h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"unspun-hand-knit-sweaters"},{"itemId":"9700008","displayName":"Jackets","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250028","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Winter & Fall Jackets for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Look no further. Browse our wide selection of outerwear for women to find the perfect jacket for any outfit. Find your perfect jacket at Free People.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"jackets"},{"itemId":"17000006","displayName":"Vegan Leather & Faux Fur","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat2100002","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Faux Fur Coats & Vegan Leather Jackets","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a variety of vegan coats, from moto jackets to faux fur styles, plus get fashion tips from FP Me! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"vegan-jackets"},{"itemId":"9500092","displayName":"Military Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120039","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Parkas, Utility & Anorak Jackets for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of denim jackets and parkas plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"utility-jackets"},{"itemId":"9500078","displayName":"Statement Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120032","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Statement Jackets: Quilted, Embellished & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop cute statement jackets, from embellished to quilted styles, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"statement-jackets"},{"itemId":"9500097","displayName":"Vests","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120041","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Vests for Women | Fur, Leather, Fringe & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Vests plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"vests"},{"itemId":"9500082","displayName":"Coats","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120034","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Women's Coats | Peacoats, Parkas & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":null,"h1TagOverride":null},"type":"Navigation Item Browse Content", | |
"slug":"coats"},{"itemId":"12300031","displayName":"Lightweight Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1570023","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Light Jackets & Lightweight Coats for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of spring-ready light jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"lightweight-jackets"},{"itemId":"9500086","displayName":"Moto Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120036","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Moto Jackets - Motorcycle Jackets for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Moto Jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"motorcycle-jackets"},{"itemId":"9500080","displayName":"Leather & Suede Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120033","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Leather Jackets & Suede Jackets","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop women's leather jackets, vegan leather jackets & suede jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"leather-jackets"},{"itemId":"9500090","displayName":"Denim Jackets","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120038","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Denim Jackets & Jean Jackets for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Denim Jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"denim-jackets"},{"itemId":"15800039","displayName":"Bombers","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1970637","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Bomber Jackets for Women ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a selection of bomber jackets in range of hues, from black to green, then share your style with FP Me! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"bomber-jackets"},{"itemId":"9500094","displayName":"Shearling","links":[[Object],[Object],[Object]],"parentItemId":"9700008","categoryId":"cat1120040","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Faux Fur & Shearling Jackets for Women at Free People","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Faux Fur & Shearling plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"faux-fur-and-shearling-jackets"},{"itemId":"6100052","displayName":"Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat620001","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Women's Jeans, Denim & One Teaspoon Jeans","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Find your perfect jeans from Free People. Fulfill your denim needs with a pair of cropped jeans, vintage flare jeans, or stylish skinny jeans.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"jeans"},{"itemId":"6200006","displayName":"High Rise Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830029","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"High Waisted Jeans - High Rise Jeans for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of high-rise jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"high-rise-jeans"},{"itemId":"9500105","displayName":"Mid Rise Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1240198","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Mid Rise Jeans | Skinny, Flare & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Mid Rise Jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"mid-rise-jeans"},{"itemId":"9500103","displayName":"Low Rise Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1120043","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Low Rise Jeans | Skinny, Flare & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Low Rise Jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"low-rise-jeans"},{"itemId":"6100118","displayName":"Wideleg & Flare","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830026","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Flare Jeans, Bell Bottom & Wide Leg Jeans for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop Free People's modern bell bottoms & wide leg jeans now. From vintage-style bell bottoms to cropped wide legs, we've got the flare jeans you crave.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"flare-jeans"},{"itemId":"6100116","displayName":"Skinny Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830025","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Skinny Jeans: High Rise, Slim Fit & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop your personal denim style with Free People's stylish straight leg jeans and skinny jeans. Our jeans are stylish, comfortable, and super versatile.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"skinny-jeans"},{"itemId":"6100120","displayName":"Boyfriend Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830027","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Destroyed & Distressed Boyfriend Jeans","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Rock a pair of boyfriend jeans for your next laidback outfit. Pick from one of the boyfriend jeans styles - high rise, low rise, distressed, or painted!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"boyfriend-jeans"},{"itemId":"15500095","displayName":"Straight Leg Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1940152","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Women’s Straight Leg Jeans ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of straight leg jeans for women, from high-waisted to mid-rise cuts! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"straight-leg-jeans"},{"itemId":"6100126","displayName":"Overalls","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830031","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Denim Overalls for Women | Long & Short","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":'"Shop Free People\'s denim overalls and one piece jeans. They are super chic, stylish, and fashionable but still remain their tomboyish and comfortable roots."',"h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"overalls"},{"itemId":"6100114","displayName":"Cropped Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830024","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cropped Jeans | Skinny, Boyfriend & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of cropped jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"cropped-jeans"},{"itemId":"15500097","displayName":"Distressed Jeans","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1940153","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Ripped & Distressed Jeans for Women ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of ripped jeans for women, from delicately distressed to dramatically destroyed. Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"ripped-jeans"},{"itemId":"6100124","displayName":"Cutoffs","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830030","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Jean Shorts & Denim Cut Off Shorts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Perfect your summer by shopping from our selection of cut off shorts including distressed shorts, high-waisted jean shorts, and your classic blue jean shorts!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"denim-shorts"},{"itemId":"6100132","displayName":"Additional Inseams","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat830034","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Additional Inseams - Denim for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of jeans with additional inseams plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"additional-inseams"},{"itemId":"15500091","displayName":"Trend: Patched & Embroidered","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1940146","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Patched & Embroidered Jeans for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of patched and embroidered jeans, plus get fashion tips from FP Me stylists worldwide! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"patched-embroidered-jeans-trend"},{"itemId":"16800010","displayName":"Brand Spotlight: McGuire","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat2080009","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"McGuire Denim | Flare, Skinny & Boyfriend Jeans","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of McGuire denim, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"mcguire-denim"},{"itemId":"15700016","displayName":"Vintage Styles","links":[[Object],[Object],[Object]],"parentItemId":"6100052","categoryId":"cat1960401","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Vintage Jeans | Boyfriend, Skinny, Flare & More ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of vintage jeans for women, from high-waisted styles to skinnies and boyfriend fits! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"vintage-loves-jeans"},{"itemId":"6100054","displayName":"Pants","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250059","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Women's Pants | Leather Pants, Joggers & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"pants"},{"itemId":"6200016","displayName":"Wideleg & Flare","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat250062","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Wide Leg Pants, Flare Pants & High Waisted Pants","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of wide leg pants & flare pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"wide-leg-pants"},{"itemId":"6200008","displayName":"Skinny Pants","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat250063","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Skinny Pants | Slim & Cigarette Pants","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of skinny pants, from cigarette to slim cuts, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"skinny-pants"},{"itemId":"9500107","displayName":"Structured Pants","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat1120045","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Trousers & Tailored Pants for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Structured Pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"structured-pants"},{"itemId":"9500109","displayName":"High Waisted Pants","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat1120046","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"High Waisted Pants & Trousers for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of High Waisted Pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"high-waisted-pants"},{"itemId":"6200012","displayName":"Harem Pants & Joggers","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat250060","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Shop Harem Pants & Joggers for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Throw on a pair of harem pants or joggers for a laid back yet stylish look. These comfortable pants are great for a tropical getaway or for layering on a summer night out.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"harem-pants"},{"itemId":"6200018","displayName":"Leggings","links":[[Object],[Object],[Object]],"parentItemId":"6100054","categoryId":"cat250064","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Leggings | Sweater, Sheer, Knit & More ","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Leggings plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"leggings"},{"itemId":"6100056","displayName":"Shorts","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250065","navigationItems":[[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Shop Lace Shorts & High Waisted Shorts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Rock a pair of lace shorts, high waisted shorts, or denim cutoffs and go wild and free this summer! Our shorts are super flattering, comfortable and ever chic.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"shorts"},{"itemId":"6100124","displayName":"Cutoffs","links":[[Object],[Object],[Object]],"parentItemId":"6100056","categoryId":"cat830030","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Jean Shorts & Denim Cut Off Shorts","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Perfect your summer by shopping from our selection of cut off shorts including distressed shorts, high-waisted jean shorts, and your classic blue jean shorts!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"denim-shorts"},{"itemId":"9500112","displayName":"Structured Shorts","links":[[Object],[Object],[Object]],"parentItemId":"6100056","categoryId":"cat1120047","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Structured Dress Shorts for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Structured Shorts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"structured-shorts"},{"itemId":"9500114","displayName":"Soft Shorts","links":[[Object],[Object],[Object]],"parentItemId":"6100056","categoryId":"cat1120048","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Soft Shorts for Women | Printed & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Soft Shorts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"soft-shorts"},{"itemId":"6100058","displayName":"Skirts","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250066","navigationItems":[[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Bohemian Women's Skirts | Fitted & Flowy","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of skirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"skirts"},{"itemId":"6200022","displayName":"Mini Skirts","links":[[Object],[Object],[Object]],"parentItemId":"6100058","categoryId":"cat250069","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Short Mini Skirts for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of Mini Skirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"mini-skirts"},{"itemId":"6200020","displayName":"Midi & Maxi Skirts","links":[[Object],[Object],[Object]],"parentItemId":"6100058","categoryId":"cat250067","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Maxi Skirts: White, Black, Floral & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Dress yourself up or down in maxi skirts designed to impress. Shop online for stunning long maxi skirts & short maxi skirts in a variety of styles & prints.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"maxi-skirts"},{"itemId":"9800006","displayName":"Jumpsuits & Rompers","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250050","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute Jumpsuits & Rompers for Women","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Bored of your everyday wardrobe? Shop Free People's full selection of comfortable jumpsuits, rompers, and playsuits for a cute and stylish look!","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"jumpsuits-rompers"},{"itemId":"6100047","displayName":"Sets","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat250071","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Crop Top and Skirt Sets & More","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop crop top and skirt sets & crop top and short sets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"sets"},{"itemId":"6400061","displayName":"Swim","links":[[Object],[Object],[Object]],"parentItemId":"6100035","categoryId":"cat1660002","navigationItems":[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],"seo":{"noIndex":!1,"ogImage":null,"title":"Swimsuits, Swimwear & Bathing Suits","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Wear swimsuits from Free People, Acacia or Mara Hoffman next time you're at the beach! You'll have fun mix and matching bikini tops and bottoms.","h1TagOverride":null},"type":"Gateway","slug":"swimwear"},{"itemId":"6400066","displayName":"All Swimwear","links":[[Object],[Object],[Object]],"parentItemId":"6400061","categoryId":"cat360046","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"All Swimwear","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Shop a full selection of All Swimwear plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"all-swimwear"},{"itemId":"4600110","displayName":"Bikini Tops","links":[[Object],[Object],[Object]],"parentItemId":"6400061","categoryId":"cat250073","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"Cute and Sexy Bikinis & Bikini Tops","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Summer is not complete without some cute and sexy bikinis! Pick a colorful neoprene bikini, a sexy triangle top, or a vintage high neck bikini top for your next vacation.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"bikini-tops"},{"itemId":"4600112","displayName":"Bikini Bottoms","links":[[Object],[Object],[Object]],"parentItemId":"6400061","categoryId":"cat250074","navigationItems":[],"seo":{"noIndex":!1,"ogImage":null,"title":"High Waisted Bikini & Bikini Bottoms","noFollow":!1,"seoCopy":null,"includeInSitemap":!0,"metaDescription":"Mix and match your bikinis with Free People's beautiful bikini bottoms for different looks! Pair your swimsuit with a cheeky, printed, or high waisted bikini bottom.","h1TagOverride":null},"type":"Navigation Item Browse Content","slug":"bikini-bottoms"}]; | |
const navName = getNavigationProp( | |
'displayName', | |
'slug', | |
'pet-products', | |
devdata | |
) | |
/* | |
const s2navName = getNavigationProp( | |
'displayName', | |
'slug', | |
'coats', | |
stagingdata | |
);*/ | |
console.log(navName); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({ramda:[function(require,module,exports){(function(){"use strict";var __={"@@functional/placeholder":true};var _arity=function _arity(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};var _arrayFromIterator=function _arrayFromIterator(iter){var list=[];var next;while(!(next=iter.next()).done){list.push(next.value)}return list};var _arrayOf=function _arrayOf(){return Array.prototype.slice.call(arguments)};var _cloneRegExp=function _cloneRegExp(pattern){return new RegExp(pattern.source,(pattern.global?"g":"")+(pattern.ignoreCase?"i":"")+(pattern.multiline?"m":"")+(pattern.sticky?"y":"")+(pattern.unicode?"u":""))};var _complement=function _complement(f){return function(){return!f.apply(this,arguments)}};var _concat=function _concat(set1,set2){set1=set1||[];set2=set2||[];var idx;var len1=set1.length;var len2=set2.length;var result=[];idx=0;while(idx<len1){result[result.length]=set1[idx];idx+=1}idx=0;while(idx<len2){result[result.length]=set2[idx];idx+=1}return result};var _containsWith=function _containsWith(pred,x,list){var idx=0;var len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false};var _filter=function _filter(fn,list){var idx=0;var len=list.length;var result=[];while(idx<len){if(fn(list[idx])){result[result.length]=list[idx]}idx+=1}return result};var _forceReduced=function _forceReduced(x){return{"@@transducer/value":x,"@@transducer/reduced":true}};var _functionName=function _functionName(f){var match=String(f).match(/^function (\w*)/);return match==null?"":match[1]};var _has=function _has(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)};var _identity=function _identity(x){return x};var _isArguments=function(){var toString=Object.prototype.toString;return toString.call(arguments)==="[object Arguments]"?function _isArguments(x){return toString.call(x)==="[object Arguments]"}:function _isArguments(x){return _has("callee",x)}}();var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==="[object Array]"};var _isFunction=function _isFunction(x){return Object.prototype.toString.call(x)==="[object Function]"};var _isInteger=Number.isInteger||function _isInteger(n){return n<<0===n};var _isNumber=function _isNumber(x){return Object.prototype.toString.call(x)==="[object Number]"};var _isObject=function _isObject(x){return Object.prototype.toString.call(x)==="[object Object]"};var _isPlaceholder=function _isPlaceholder(a){return a!=null&&typeof a==="object"&&a["@@functional/placeholder"]===true};var _isRegExp=function _isRegExp(x){return Object.prototype.toString.call(x)==="[object RegExp]"};var _isString=function _isString(x){return Object.prototype.toString.call(x)==="[object String]"};var _isTransformer=function _isTransformer(obj){return typeof obj["@@transducer/step"]==="function"};var _map=function _map(fn,functor){var idx=0;var len=functor.length;var result=Array(len);while(idx<len){result[idx]=fn(functor[idx]);idx+=1}return result};var _objectAssign=function _objectAssign(target){if(target==null){throw new TypeError("Cannot convert undefined or null to object")}var output=Object(target);var idx=1;var length=arguments.length;while(idx<length){var source=arguments[idx];if(source!=null){for(var nextKey in source){if(_has(nextKey,source)){output[nextKey]=source[nextKey]}}}idx+=1}return output};var _of=function _of(x){return[x]};var _pipe=function _pipe(f,g){return function(){return g.call(this,f.apply(this,arguments))}};var _pipeP=function _pipeP(f,g){return function(){var ctx=this;return f.apply(ctx,arguments).then(function(x){return g.call(ctx,x)})}};var _quote=function _quote(s){var escaped=s.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return'"'+escaped.replace(/"/g,'\\"')+'"'};var _reduced=function _reduced(x){return x&&x["@@transducer/reduced"]?x:{"@@transducer/value":x,"@@transducer/reduced":true}};var _slice=function _slice(args,from,to){switch(arguments.length){case 1:return _slice(args,0,args.length);case 2:return _slice(args,from,args.length);default:var list=[];var idx=0;var len=Math.max(0,Math.min(args.length,to)-from);while(idx<len){list[idx]=args[from+idx];idx+=1}return list}};var _toISOString=function(){var pad=function pad(n){return(n<10?"0":"")+n};return typeof Date.prototype.toISOString==="function"?function _toISOString(d){return d.toISOString()}:function _toISOString(d){return d.getUTCFullYear()+"-"+pad(d.getUTCMonth()+1)+"-"+pad(d.getUTCDate())+"T"+pad(d.getUTCHours())+":"+pad(d.getUTCMinutes())+":"+pad(d.getUTCSeconds())+"."+(d.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}}();var _xfBase={init:function(){return this.xf["@@transducer/init"]()},result:function(result){return this.xf["@@transducer/result"](result)}};var _xwrap=function(){function XWrap(fn){this.f=fn}XWrap.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")};XWrap.prototype["@@transducer/result"]=function(acc){return acc};XWrap.prototype["@@transducer/step"]=function(acc,x){return this.f(acc,x)};return function _xwrap(fn){return new XWrap(fn)}}();var _aperture=function _aperture(n,list){var idx=0;var limit=list.length-(n-1);var acc=new Array(limit>=0?limit:0);while(idx<limit){acc[idx]=_slice(list,idx,idx+n);idx+=1}return acc};var _assign=typeof Object.assign==="function"?Object.assign:_objectAssign;var _checkForMethod=function _checkForMethod(methodname,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];return _isArray(obj)||typeof obj[methodname]!=="function"?fn.apply(this,arguments):obj[methodname].apply(obj,_slice(arguments,0,length-1))}};var _curry1=function _curry1(fn){return function f1(a){if(arguments.length===0||_isPlaceholder(a)){return f1}else{return fn.apply(this,arguments)}}};var _curry2=function _curry2(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(a)?f2:_curry1(function(_b){return fn(a,_b)});default:return _isPlaceholder(a)&&_isPlaceholder(b)?f2:_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b)}):fn(a,b)}}};var _curry3=function _curry3(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(a)?f3:_curry2(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder(a)&&_isPlaceholder(b)?f3:_isPlaceholder(a)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_curry1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder(a)&&_isPlaceholder(b)&&_isPlaceholder(c)?f3:_isPlaceholder(a)&&_isPlaceholder(b)?_curry2(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder(a)&&_isPlaceholder(c)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)&&_isPlaceholder(c)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b,c)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b,c)}):_isPlaceholder(c)?_curry1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}};var _curryN=function _curryN(length,received,fn){return function(){var combined=[];var argsIdx=0;var left=length;var combinedIdx=0;while(combinedIdx<received.length||argsIdx<arguments.length){var result;if(combinedIdx<received.length&&(!_isPlaceholder(received[combinedIdx])||argsIdx>=arguments.length)){result=received[combinedIdx]}else{result=arguments[argsIdx];argsIdx+=1}combined[combinedIdx]=result;if(!_isPlaceholder(result)){left-=1}combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity(left,_curryN(length,combined,fn))}};var _dispatchable=function _dispatchable(methodname,xf,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];if(!_isArray(obj)){var args=_slice(arguments,0,length-1);if(typeof obj[methodname]==="function"){return obj[methodname].apply(obj,args)}if(_isTransformer(obj)){var transducer=xf.apply(null,args);return transducer(obj)}}return fn.apply(this,arguments)}};var _dropLastWhile=function dropLastWhile(pred,list){var idx=list.length-1;while(idx>=0&&pred(list[idx])){idx-=1}return _slice(list,0,idx+1)};var _xall=function(){function XAll(f,xf){this.xf=xf;this.f=f;this.all=true}XAll.prototype["@@transducer/init"]=_xfBase.init;XAll.prototype["@@transducer/result"]=function(result){if(this.all){result=this.xf["@@transducer/step"](result,true)}return this.xf["@@transducer/result"](result)};XAll.prototype["@@transducer/step"]=function(result,input){if(!this.f(input)){this.all=false;result=_reduced(this.xf["@@transducer/step"](result,false))}return result};return _curry2(function _xall(f,xf){return new XAll(f,xf)})}();var _xany=function(){function XAny(f,xf){this.xf=xf;this.f=f;this.any=false}XAny.prototype["@@transducer/init"]=_xfBase.init;XAny.prototype["@@transducer/result"]=function(result){if(!this.any){result=this.xf["@@transducer/step"](result,false)}return this.xf["@@transducer/result"](result)};XAny.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.any=true;result=_reduced(this.xf["@@transducer/step"](result,true))}return result};return _curry2(function _xany(f,xf){return new XAny(f,xf)})}();var _xaperture=function(){function XAperture(n,xf){this.xf=xf;this.pos=0;this.full=false;this.acc=new Array(n)}XAperture.prototype["@@transducer/init"]=_xfBase.init;XAperture.prototype["@@transducer/result"]=function(result){this.acc=null;return this.xf["@@transducer/result"](result)};XAperture.prototype["@@transducer/step"]=function(result,input){this.store(input);return this.full?this.xf["@@transducer/step"](result,this.getCopy()):result};XAperture.prototype.store=function(input){this.acc[this.pos]=input;this.pos+=1;if(this.pos===this.acc.length){this.pos=0;this.full=true}};XAperture.prototype.getCopy=function(){return _concat(_slice(this.acc,this.pos),_slice(this.acc,0,this.pos))};return _curry2(function _xaperture(n,xf){return new XAperture(n,xf)})}();var _xdrop=function(){function XDrop(n,xf){this.xf=xf;this.n=n}XDrop.prototype["@@transducer/init"]=_xfBase.init;XDrop.prototype["@@transducer/result"]=_xfBase.result;XDrop.prototype["@@transducer/step"]=function(result,input){if(this.n>0){this.n-=1;return result}return this.xf["@@transducer/step"](result,input)};return _curry2(function _xdrop(n,xf){return new XDrop(n,xf)})}();var _xdropLast=function(){function XDropLast(n,xf){this.xf=xf;this.pos=0;this.full=false;this.acc=new Array(n)}XDropLast.prototype["@@transducer/init"]=_xfBase.init;XDropLast.prototype["@@transducer/result"]=function(result){this.acc=null;return this.xf["@@transducer/result"](result)};XDropLast.prototype["@@transducer/step"]=function(result,input){if(this.full){result=this.xf["@@transducer/step"](result,this.acc[this.pos])}this.store(input);return result};XDropLast.prototype.store=function(input){this.acc[this.pos]=input;this.pos+=1;if(this.pos===this.acc.length){this.pos=0;this.full=true}};return _curry2(function _xdropLast(n,xf){return new XDropLast(n,xf)})}();var _xdropRepeatsWith=function(){function XDropRepeatsWith(pred,xf){this.xf=xf;this.pred=pred;this.lastValue=undefined;this.seenFirstValue=false}XDropRepeatsWith.prototype["@@transducer/init"]=function(){return this.xf["@@transducer/init"]()};XDropRepeatsWith.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](result)};XDropRepeatsWith.prototype["@@transducer/step"]=function(result,input){var sameAsLast=false;if(!this.seenFirstValue){this.seenFirstValue=true}else if(this.pred(this.lastValue,input)){sameAsLast=true}this.lastValue=input;return sameAsLast?result:this.xf["@@transducer/step"](result,input)};return _curry2(function _xdropRepeatsWith(pred,xf){return new XDropRepeatsWith(pred,xf)})}();var _xdropWhile=function(){function XDropWhile(f,xf){this.xf=xf;this.f=f}XDropWhile.prototype["@@transducer/init"]=_xfBase.init;XDropWhile.prototype["@@transducer/result"]=_xfBase.result;XDropWhile.prototype["@@transducer/step"]=function(result,input){if(this.f){if(this.f(input)){return result}this.f=null}return this.xf["@@transducer/step"](result,input)};return _curry2(function _xdropWhile(f,xf){return new XDropWhile(f,xf)})}();var _xfilter=function(){function XFilter(f,xf){this.xf=xf;this.f=f}XFilter.prototype["@@transducer/init"]=_xfBase.init;XFilter.prototype["@@transducer/result"]=_xfBase.result;XFilter.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):result};return _curry2(function _xfilter(f,xf){return new XFilter(f,xf)})}();var _xfind=function(){function XFind(f,xf){this.xf=xf;this.f=f;this.found=false}XFind.prototype["@@transducer/init"]=_xfBase.init;XFind.prototype["@@transducer/result"]=function(result){if(!this.found){result=this.xf["@@transducer/step"](result,void 0)}return this.xf["@@transducer/result"](result)};XFind.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.found=true;result=_reduced(this.xf["@@transducer/step"](result,input))}return result};return _curry2(function _xfind(f,xf){return new XFind(f,xf)})}();var _xfindIndex=function(){function XFindIndex(f,xf){this.xf=xf;this.f=f;this.idx=-1;this.found=false}XFindIndex.prototype["@@transducer/init"]=_xfBase.init;XFindIndex.prototype["@@transducer/result"]=function(result){if(!this.found){result=this.xf["@@transducer/step"](result,-1)}return this.xf["@@transducer/result"](result)};XFindIndex.prototype["@@transducer/step"]=function(result,input){this.idx+=1;if(this.f(input)){this.found=true;result=_reduced(this.xf["@@transducer/step"](result,this.idx))}return result};return _curry2(function _xfindIndex(f,xf){return new XFindIndex(f,xf)})}();var _xfindLast=function(){function XFindLast(f,xf){this.xf=xf;this.f=f}XFindLast.prototype["@@transducer/init"]=_xfBase.init;XFindLast.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result,this.last))};XFindLast.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.last=input}return result};return _curry2(function _xfindLast(f,xf){return new XFindLast(f,xf)})}();var _xfindLastIndex=function(){function XFindLastIndex(f,xf){this.xf=xf;this.f=f;this.idx=-1;this.lastIdx=-1}XFindLastIndex.prototype["@@transducer/init"]=_xfBase.init;XFindLastIndex.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result,this.lastIdx))};XFindLastIndex.prototype["@@transducer/step"]=function(result,input){this.idx+=1;if(this.f(input)){this.lastIdx=this.idx}return result};return _curry2(function _xfindLastIndex(f,xf){return new XFindLastIndex(f,xf)})}();var _xmap=function(){function XMap(f,xf){this.xf=xf;this.f=f}XMap.prototype["@@transducer/init"]=_xfBase.init;XMap.prototype["@@transducer/result"]=_xfBase.result;XMap.prototype["@@transducer/step"]=function(result,input){return this.xf["@@transducer/step"](result,this.f(input))};return _curry2(function _xmap(f,xf){return new XMap(f,xf)})}();var _xreduceBy=function(){function XReduceBy(valueFn,valueAcc,keyFn,xf){this.valueFn=valueFn;this.valueAcc=valueAcc;this.keyFn=keyFn;this.xf=xf;this.inputs={}}XReduceBy.prototype["@@transducer/init"]=_xfBase.init;XReduceBy.prototype["@@transducer/result"]=function(result){var key;for(key in this.inputs){if(_has(key,this.inputs)){result=this.xf["@@transducer/step"](result,this.inputs[key]);if(result["@@transducer/reduced"]){result=result["@@transducer/value"];break}}}this.inputs=null;return this.xf["@@transducer/result"](result)};XReduceBy.prototype["@@transducer/step"]=function(result,input){var key=this.keyFn(input);this.inputs[key]=this.inputs[key]||[key,this.valueAcc];this.inputs[key][1]=this.valueFn(this.inputs[key][1],input);return result};return _curryN(4,[],function _xreduceBy(valueFn,valueAcc,keyFn,xf){return new XReduceBy(valueFn,valueAcc,keyFn,xf)})}();var _xtake=function(){function XTake(n,xf){this.xf=xf;this.n=n;this.i=0}XTake.prototype["@@transducer/init"]=_xfBase.init;XTake.prototype["@@transducer/result"]=_xfBase.result;XTake.prototype["@@transducer/step"]=function(result,input){this.i+=1;var ret=this.n===0?result:this.xf["@@transducer/step"](result,input);return this.i>=this.n?_reduced(ret):ret};return _curry2(function _xtake(n,xf){return new XTake(n,xf)})}();var _xtakeWhile=function(){function XTakeWhile(f,xf){this.xf=xf;this.f=f}XTakeWhile.prototype["@@transducer/init"]=_xfBase.init;XTakeWhile.prototype["@@transducer/result"]=_xfBase.result;XTakeWhile.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):_reduced(result)};return _curry2(function _xtakeWhile(f,xf){return new XTakeWhile(f,xf)})}();var add=_curry2(function add(a,b){return Number(a)+Number(b)});var adjust=_curry3(function adjust(fn,idx,list){if(idx>=list.length||idx<-list.length){return list}var start=idx<0?list.length:0;var _idx=start+idx;var _list=_concat(list);_list[_idx]=fn(list[_idx]);return _list});var all=_curry2(_dispatchable("all",_xall,function all(fn,list){var idx=0;while(idx<list.length){if(!fn(list[idx])){return false}idx+=1}return true}));var always=_curry1(function always(val){return function(){return val}});var and=_curry2(function and(a,b){return a&&b});var any=_curry2(_dispatchable("any",_xany,function any(fn,list){var idx=0;while(idx<list.length){if(fn(list[idx])){return true}idx+=1}return false}));var aperture=_curry2(_dispatchable("aperture",_xaperture,_aperture));var append=_curry2(function append(el,list){return _concat(list,[el])});var apply=_curry2(function apply(fn,args){return fn.apply(this,args)});var assoc=_curry3(function assoc(prop,val,obj){var result={};for(var p in obj){result[p]=obj[p]}result[prop]=val;return result});var assocPath=_curry3(function assocPath(path,val,obj){switch(path.length){case 0:return val;case 1:return assoc(path[0],val,obj);default:return assoc(path[0],assocPath(_slice(path,1),val,Object(obj[path[0]])),obj)}});var bind=_curry2(function bind(fn,thisObj){return _arity(fn.length,function(){return fn.apply(thisObj,arguments)})});var clamp=_curry3(function clamp(min,max,value){if(min>max){throw new Error("min must not be greater than max in clamp(min, max, value)")}return value<min?min:value>max?max:value});var comparator=_curry1(function comparator(pred){return function(a,b){return pred(a,b)?-1:pred(b,a)?1:0}});var curryN=_curry2(function curryN(length,fn){if(length===1){return _curry1(fn)}return _arity(length,_curryN(length,[],fn))});var dec=add(-1);var defaultTo=_curry2(function defaultTo(d,v){return v==null||v!==v?d:v});var differenceWith=_curry3(function differenceWith(pred,first,second){var out=[];var idx=0;var firstLen=first.length;while(idx<firstLen){if(!_containsWith(pred,first[idx],second)&&!_containsWith(pred,first[idx],out)){out.push(first[idx])}idx+=1}return out});var dissoc=_curry2(function dissoc(prop,obj){var result={};for(var p in obj){if(p!==prop){result[p]=obj[p]}}return result});var dissocPath=_curry2(function dissocPath(path,obj){switch(path.length){case 0:return obj;case 1:return dissoc(path[0],obj);default:var head=path[0];var tail=_slice(path,1);return obj[head]==null?obj:assoc(head,dissocPath(tail,obj[head]),obj)}});var divide=_curry2(function divide(a,b){return a/b});var dropWhile=_curry2(_dispatchable("dropWhile",_xdropWhile,function dropWhile(pred,list){var idx=0;var len=list.length;while(idx<len&&pred(list[idx])){idx+=1}return _slice(list,idx)}));var empty=_curry1(function empty(x){return x!=null&&typeof x.empty==="function"?x.empty():x!=null&&x.constructor!=null&&typeof x.constructor.empty==="function"?x.constructor.empty():_isArray(x)?[]:_isString(x)?"":_isObject(x)?{}:_isArguments(x)?function(){return arguments}():void 0});var evolve=_curry2(function evolve(transformations,object){var result={};var transformation,key,type;for(key in object){transformation=transformations[key];type=typeof transformation;result[key]=type==="function"?transformation(object[key]):type==="object"?evolve(transformations[key],object[key]):object[key]}return result});var find=_curry2(_dispatchable("find",_xfind,function find(fn,list){var idx=0;var len=list.length;while(idx<len){if(fn(list[idx])){return list[idx]}idx+=1}}));var findIndex=_curry2(_dispatchable("findIndex",_xfindIndex,function findIndex(fn,list){var idx=0;var len=list.length;while(idx<len){if(fn(list[idx])){return idx}idx+=1}return-1}));var findLast=_curry2(_dispatchable("findLast",_xfindLast,function findLast(fn,list){var idx=list.length-1;while(idx>=0){if(fn(list[idx])){return list[idx]}idx-=1}}));var findLastIndex=_curry2(_dispatchable("findLastIndex",_xfindLastIndex,function findLastIndex(fn,list){var idx=list.length-1;while(idx>=0){if(fn(list[idx])){return idx}idx-=1}return-1}));var forEach=_curry2(_checkForMethod("forEach",function forEach(fn,list){var len=list.length;var idx=0;while(idx<len){fn(list[idx]);idx+=1}return list}));var fromPairs=_curry1(function fromPairs(pairs){var result={};var idx=0;while(idx<pairs.length){result[pairs[idx][0]]=pairs[idx][1];idx+=1}return result});var groupWith=_curry2(function(fn,list){var res=[];var idx=0;var len=list.length;while(idx<len){var nextidx=idx+1;while(nextidx<len&&fn(list[idx],list[nextidx])){nextidx+=1}res.push(list.slice(idx,nextidx));idx=nextidx}return res});var gt=_curry2(function gt(a,b){return a>b});var gte=_curry2(function gte(a,b){return a>=b});var has=_curry2(_has);var hasIn=_curry2(function hasIn(prop,obj){return prop in obj});var identical=_curry2(function identical(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}});var identity=_curry1(_identity);var ifElse=_curry3(function ifElse(condition,onTrue,onFalse){return curryN(Math.max(condition.length,onTrue.length,onFalse.length),function _ifElse(){return condition.apply(this,arguments)?onTrue.apply(this,arguments):onFalse.apply(this,arguments)})});var inc=add(1);var insert=_curry3(function insert(idx,elt,list){idx=idx<list.length&&idx>=0?idx:list.length;var result=_slice(list);result.splice(idx,0,elt);return result});var insertAll=_curry3(function insertAll(idx,elts,list){idx=idx<list.length&&idx>=0?idx:list.length;return _concat(_concat(_slice(list,0,idx),elts),_slice(list,idx))});var intersperse=_curry2(_checkForMethod("intersperse",function intersperse(separator,list){var out=[];var idx=0;var length=list.length;while(idx<length){if(idx===length-1){out.push(list[idx])}else{out.push(list[idx],separator)}idx+=1}return out}));var is=_curry2(function is(Ctor,val){return val!=null&&val.constructor===Ctor||val instanceof Ctor});var isArrayLike=_curry1(function isArrayLike(x){if(_isArray(x)){return true}if(!x){return false}if(typeof x!=="object"){return false}if(_isString(x)){return false}if(x.nodeType===1){return!!x.length}if(x.length===0){return true}if(x.length>0){return x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)}return false});var isNil=_curry1(function isNil(x){return x==null});var keys=function(){var hasEnumBug=!{toString:null}.propertyIsEnumerable("toString");var nonEnumerableProps=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];var hasArgsEnumBug=function(){"use strict";return arguments.propertyIsEnumerable("length")}();var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};return typeof Object.keys==="function"&&!hasArgsEnumBug?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop,nIdx;var ks=[];var checkArgsLength=hasArgsEnumBug&&_isArguments(obj);for(prop in obj){if(_has(prop,obj)&&(!checkArgsLength||prop!=="length")){ks[ks.length]=prop}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop=nonEnumerableProps[nIdx];if(_has(prop,obj)&&!contains(ks,prop)){ks[ks.length]=prop}nIdx-=1}}return ks})}();var keysIn=_curry1(function keysIn(obj){var prop;var ks=[];for(prop in obj){ks[ks.length]=prop}return ks});var length=_curry1(function length(list){return list!=null&&_isNumber(list.length)?list.length:NaN});var lt=_curry2(function lt(a,b){return a<b});var lte=_curry2(function lte(a,b){return a<=b});var mapAccum=_curry3(function mapAccum(fn,acc,list){var idx=0;var len=list.length;var result=[];var tuple=[acc];while(idx<len){tuple=fn(tuple[0],list[idx]);result[idx]=tuple[1];idx+=1}return[tuple[0],result]});var mapAccumRight=_curry3(function mapAccumRight(fn,acc,list){var idx=list.length-1;var result=[];var tuple=[acc];while(idx>=0){tuple=fn(tuple[0],list[idx]);result[idx]=tuple[1];idx-=1}return[tuple[0],result]});var match=_curry2(function match(rx,str){return str.match(rx)||[]});var mathMod=_curry2(function mathMod(m,p){if(!_isInteger(m)){return NaN}if(!_isInteger(p)||p<1){return NaN}return(m%p+p)%p});var max=_curry2(function max(a,b){return b>a?b:a});var maxBy=_curry3(function maxBy(f,a,b){return f(b)>f(a)?b:a});var merge=_curry2(function merge(l,r){return _assign({},l,r)});var mergeAll=_curry1(function mergeAll(list){return _assign.apply(null,[{}].concat(list))});var mergeWithKey=_curry3(function mergeWithKey(fn,l,r){var result={};var k;for(k in l){if(_has(k,l)){result[k]=_has(k,r)?fn(k,l[k],r[k]):l[k]}}for(k in r){if(_has(k,r)&&!_has(k,result)){result[k]=r[k]}}return result});var min=_curry2(function min(a,b){return b<a?b:a});var minBy=_curry3(function minBy(f,a,b){return f(b)<f(a)?b:a});var modulo=_curry2(function modulo(a,b){return a%b});var multiply=_curry2(function multiply(a,b){return a*b});var nAry=_curry2(function nAry(n,fn){switch(n){case 0:return function(){return fn.call(this)};case 1:return function(a0){return fn.call(this,a0)};case 2:return function(a0,a1){return fn.call(this,a0,a1)};case 3:return function(a0,a1,a2){return fn.call(this,a0,a1,a2)};case 4:return function(a0,a1,a2,a3){return fn.call(this,a0,a1,a2,a3)};case 5:return function(a0,a1,a2,a3,a4){return fn.call(this,a0,a1,a2,a3,a4)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.call(this,a0,a1,a2,a3,a4,a5)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.call(this,a0,a1,a2,a3,a4,a5,a6)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7,a8)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}});var negate=_curry1(function negate(n){return-n});var none=_curry2(_complement(_dispatchable("any",_xany,any)));var not=_curry1(function not(a){return!a});var nth=_curry2(function nth(offset,list){var idx=offset<0?list.length+offset:offset;return _isString(list)?list.charAt(idx):list[idx]});var nthArg=_curry1(function nthArg(n){var arity=n<0?1:n+1;return curryN(arity,function(){return nth(n,arguments)})});var objOf=_curry2(function objOf(key,val){var obj={};obj[key]=val;return obj});var of=_curry1(_of);var once=_curry1(function once(fn){var called=false;var result;return _arity(fn.length,function(){if(called){return result}called=true;result=fn.apply(this,arguments);return result})});var or=_curry2(function or(a,b){return a||b});var over=function(){var Identity=function(x){return{value:x,map:function(f){return Identity(f(x))}}};return _curry3(function over(lens,f,x){return lens(function(y){return Identity(f(y))})(x).value})}();var pair=_curry2(function pair(fst,snd){return[fst,snd]});var path=_curry2(function path(paths,obj){var val=obj;var idx=0;while(idx<paths.length){if(val==null){return}val=val[paths[idx]];idx+=1}return val});var pathOr=_curry3(function pathOr(d,p,obj){return defaultTo(d,path(p,obj))});var pathSatisfies=_curry3(function pathSatisfies(pred,propPath,obj){return propPath.length>0&&pred(path(propPath,obj))});var pick=_curry2(function pick(names,obj){var result={};var idx=0;while(idx<names.length){if(names[idx]in obj){result[names[idx]]=obj[names[idx]]}idx+=1}return result});var pickAll=_curry2(function pickAll(names,obj){var result={};var idx=0;var len=names.length;while(idx<len){var name=names[idx];result[name]=obj[name];idx+=1}return result});var pickBy=_curry2(function pickBy(test,obj){var result={};for(var prop in obj){if(test(obj[prop],prop,obj)){result[prop]=obj[prop]}}return result});var prepend=_curry2(function prepend(el,list){return _concat([el],list)});var prop=_curry2(function prop(p,obj){return obj[p]});var propIs=_curry3(function propIs(type,name,obj){return is(type,obj[name])});var propOr=_curry3(function propOr(val,p,obj){return obj!=null&&_has(p,obj)?obj[p]:val});var propSatisfies=_curry3(function propSatisfies(pred,name,obj){return pred(obj[name])});var props=_curry2(function props(ps,obj){var len=ps.length;var out=[];var idx=0;while(idx<len){out[idx]=obj[ps[idx]];idx+=1}return out});var range=_curry2(function range(from,to){if(!(_isNumber(from)&&_isNumber(to))){throw new TypeError("Both arguments to range must be numbers")}var result=[];var n=from;while(n<to){result.push(n);n+=1}return result});var reduceRight=_curry3(function reduceRight(fn,acc,list){var idx=list.length-1;while(idx>=0){acc=fn(acc,list[idx]);idx-=1}return acc});var reduced=_curry1(_reduced);var remove=_curry3(function remove(start,count,list){return _concat(_slice(list,0,Math.min(start,list.length)),_slice(list,Math.min(list.length,start+count)))});var replace=_curry3(function replace(regex,replacement,str){return str.replace(regex,replacement)});var reverse=_curry1(function reverse(list){return _isString(list)?list.split("").reverse().join(""):_slice(list).reverse()});var scan=_curry3(function scan(fn,acc,list){var idx=0;var len=list.length;var result=[acc];while(idx<len){acc=fn(acc,list[idx]);result[idx+1]=acc;idx+=1}return result});var set=_curry3(function set(lens,v,x){return over(lens,always(v),x)});var slice=_curry3(_checkForMethod("slice",function slice(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}));var sort=_curry2(function sort(comparator,list){return _slice(list).sort(comparator)});var sortBy=_curry2(function sortBy(fn,list){return _slice(list).sort(function(a,b){var aa=fn(a);var bb=fn(b);return aa<bb?-1:aa>bb?1:0})});var splitAt=_curry2(function splitAt(index,array){return[slice(0,index,array),slice(index,length(array),array)]});var splitEvery=_curry2(function splitEvery(n,list){if(n<=0){throw new Error("First argument to splitEvery must be a positive integer")}var result=[];var idx=0; | |
while(idx<list.length){result.push(slice(idx,idx+=n,list))}return result});var splitWhen=_curry2(function splitWhen(pred,list){var idx=0;var len=list.length;var prefix=[];while(idx<len&&!pred(list[idx])){prefix.push(list[idx]);idx+=1}return[prefix,_slice(list,idx)]});var subtract=_curry2(function subtract(a,b){return Number(a)-Number(b)});var tail=_checkForMethod("tail",slice(1,Infinity));var take=_curry2(_dispatchable("take",_xtake,function take(n,xs){return slice(0,n<0?Infinity:n,xs)}));var takeLastWhile=_curry2(function takeLastWhile(fn,list){var idx=list.length-1;while(idx>=0&&fn(list[idx])){idx-=1}return _slice(list,idx+1,Infinity)});var takeWhile=_curry2(_dispatchable("takeWhile",_xtakeWhile,function takeWhile(fn,list){var idx=0;var len=list.length;while(idx<len&&fn(list[idx])){idx+=1}return _slice(list,0,idx)}));var tap=_curry2(function tap(fn,x){fn(x);return x});var times=_curry2(function times(fn,n){var len=Number(n);var idx=0;var list;if(len<0||isNaN(len)){throw new RangeError("n must be a non-negative number")}list=new Array(len);while(idx<len){list[idx]=fn(idx);idx+=1}return list});var toPairs=_curry1(function toPairs(obj){var pairs=[];for(var prop in obj){if(_has(prop,obj)){pairs[pairs.length]=[prop,obj[prop]]}}return pairs});var toPairsIn=_curry1(function toPairsIn(obj){var pairs=[];for(var prop in obj){pairs[pairs.length]=[prop,obj[prop]]}return pairs});var transpose=_curry1(function transpose(outerlist){var i=0;var result=[];while(i<outerlist.length){var innerlist=outerlist[i];var j=0;while(j<innerlist.length){if(typeof result[j]==="undefined"){result[j]=[]}result[j].push(innerlist[j]);j+=1}i+=1}return result});var trim=function(){var ws=" \n\x0B\f\r "+" \u2028"+"\u2029\ufeff";var zeroWidth="";var hasProtoTrim=typeof String.prototype.trim==="function";if(!hasProtoTrim||(ws.trim()||!zeroWidth.trim())){return _curry1(function trim(str){var beginRx=new RegExp("^["+ws+"]["+ws+"]*");var endRx=new RegExp("["+ws+"]["+ws+"]*$");return str.replace(beginRx,"").replace(endRx,"")})}else{return _curry1(function trim(str){return str.trim()})}}();var tryCatch=_curry2(function _tryCatch(tryer,catcher){return _arity(tryer.length,function(){try{return tryer.apply(this,arguments)}catch(e){return catcher.apply(this,_concat([e],arguments))}})});var type=_curry1(function type(val){return val===null?"Null":val===undefined?"Undefined":Object.prototype.toString.call(val).slice(8,-1)});var unapply=_curry1(function unapply(fn){return function(){return fn(_slice(arguments))}});var unary=_curry1(function unary(fn){return nAry(1,fn)});var uncurryN=_curry2(function uncurryN(depth,fn){return curryN(depth,function(){var currentDepth=1;var value=fn;var idx=0;var endIdx;while(currentDepth<=depth&&typeof value==="function"){endIdx=currentDepth===depth?arguments.length:idx+value.length;value=value.apply(this,_slice(arguments,idx,endIdx));currentDepth+=1;idx=endIdx}return value})});var unfold=_curry2(function unfold(fn,seed){var pair=fn(seed);var result=[];while(pair&&pair.length){result[result.length]=pair[0];pair=fn(pair[1])}return result});var uniqWith=_curry2(function uniqWith(pred,list){var idx=0;var len=list.length;var result=[];var item;while(idx<len){item=list[idx];if(!_containsWith(pred,item,result)){result[result.length]=item}idx+=1}return result});var unless=_curry3(function unless(pred,whenFalseFn,x){return pred(x)?x:whenFalseFn(x)});var until=_curry3(function until(pred,fn,init){var val=init;while(!pred(val)){val=fn(val)}return val});var update=_curry3(function update(idx,x,list){return adjust(always(x),idx,list)});var useWith=_curry2(function useWith(fn,transformers){return curryN(transformers.length,function(){var args=[];var idx=0;while(idx<transformers.length){args.push(transformers[idx].call(this,arguments[idx]));idx+=1}return fn.apply(this,args.concat(_slice(arguments,transformers.length)))})});var values=_curry1(function values(obj){var props=keys(obj);var len=props.length;var vals=[];var idx=0;while(idx<len){vals[idx]=obj[props[idx]];idx+=1}return vals});var valuesIn=_curry1(function valuesIn(obj){var prop;var vs=[];for(prop in obj){vs[vs.length]=obj[prop]}return vs});var view=function(){var Const=function(x){return{value:x,map:function(){return this}}};return _curry2(function view(lens,x){return lens(Const)(x).value})}();var when=_curry3(function when(pred,whenTrueFn,x){return pred(x)?whenTrueFn(x):x});var where=_curry2(function where(spec,testObj){for(var prop in spec){if(_has(prop,spec)&&!spec[prop](testObj[prop])){return false}}return true});var wrap=_curry2(function wrap(fn,wrapper){return curryN(fn.length,function(){return wrapper.apply(this,_concat([fn],arguments))})});var xprod=_curry2(function xprod(a,b){var idx=0;var ilen=a.length;var j;var jlen=b.length;var result=[];while(idx<ilen){j=0;while(j<jlen){result[result.length]=[a[idx],b[j]];j+=1}idx+=1}return result});var zip=_curry2(function zip(a,b){var rv=[];var idx=0;var len=Math.min(a.length,b.length);while(idx<len){rv[idx]=[a[idx],b[idx]];idx+=1}return rv});var zipObj=_curry2(function zipObj(keys,values){var idx=0;var len=Math.min(keys.length,values.length);var out={};while(idx<len){out[keys[idx]]=values[idx];idx+=1}return out});var zipWith=_curry3(function zipWith(fn,a,b){var rv=[];var idx=0;var len=Math.min(a.length,b.length);while(idx<len){rv[idx]=fn(a[idx],b[idx]);idx+=1}return rv});var F=always(false);var T=always(true);var _clone=function _clone(value,refFrom,refTo,deep){var copy=function copy(copiedValue){var len=refFrom.length;var idx=0;while(idx<len){if(value===refFrom[idx]){return refTo[idx]}idx+=1}refFrom[idx+1]=value;refTo[idx+1]=copiedValue;for(var key in value){copiedValue[key]=deep?_clone(value[key],refFrom,refTo,true):value[key]}return copiedValue};switch(type(value)){case"Object":return copy({});case"Array":return copy([]);case"Date":return new Date(value.valueOf());case"RegExp":return _cloneRegExp(value);default:return value}};var _createPartialApplicator=function _createPartialApplicator(concat){return _curry2(function(fn,args){return _arity(Math.max(0,fn.length-args.length),function(){return fn.apply(this,concat(args,arguments))})})};var _dropLast=function dropLast(n,xs){return take(n<xs.length?xs.length-n:0,xs)};var _equals=function _equals(a,b,stackA,stackB){if(identical(a,b)){return true}if(type(a)!==type(b)){return false}if(a==null||b==null){return false}if(typeof a.equals==="function"||typeof b.equals==="function"){return typeof a.equals==="function"&&a.equals(b)&&typeof b.equals==="function"&&b.equals(a)}switch(type(a)){case"Arguments":case"Array":case"Object":if(typeof a.constructor==="function"&&_functionName(a.constructor)==="Promise"){return a===b}break;case"Boolean":case"Number":case"String":if(!(typeof a===typeof b&&identical(a.valueOf(),b.valueOf()))){return false}break;case"Date":if(!identical(a.valueOf(),b.valueOf())){return false}break;case"Error":return a.name===b.name&&a.message===b.message;case"RegExp":if(!(a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode)){return false}break;case"Map":case"Set":if(!_equals(_arrayFromIterator(a.entries()),_arrayFromIterator(b.entries()),stackA,stackB)){return false}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":break;case"ArrayBuffer":break;default:return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}stackA.push(a);stackB.push(b);idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!(_has(key,b)&&_equals(b[key],a[key],stackA,stackB))){return false}idx-=1}stackA.pop();stackB.pop();return true};var _makeFlat=function _makeFlat(recursive){return function flatt(list){var value,jlen,j;var result=[];var idx=0;var ilen=list.length;while(idx<ilen){if(isArrayLike(list[idx])){value=recursive?flatt(list[idx]):list[idx];j=0;jlen=value.length;while(j<jlen){result[result.length]=value[j];j+=1}}else{result[result.length]=list[idx]}idx+=1}return result}};var _reduce=function(){function _arrayReduce(xf,acc,list){var idx=0;var len=list.length;while(idx<len){acc=xf["@@transducer/step"](acc,list[idx]);if(acc&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}idx+=1}return xf["@@transducer/result"](acc)}function _iterableReduce(xf,acc,iter){var step=iter.next();while(!step.done){acc=xf["@@transducer/step"](acc,step.value);if(acc&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}step=iter.next()}return xf["@@transducer/result"](acc)}function _methodReduce(xf,acc,obj){return xf["@@transducer/result"](obj.reduce(bind(xf["@@transducer/step"],xf),acc))}var symIterator=typeof Symbol!=="undefined"?Symbol.iterator:"@@iterator";return function _reduce(fn,acc,list){if(typeof fn==="function"){fn=_xwrap(fn)}if(isArrayLike(list)){return _arrayReduce(fn,acc,list)}if(typeof list.reduce==="function"){return _methodReduce(fn,acc,list)}if(list[symIterator]!=null){return _iterableReduce(fn,acc,list[symIterator]())}if(typeof list.next==="function"){return _iterableReduce(fn,acc,list)}throw new TypeError("reduce: list must be array or iterable")}}();var _stepCat=function(){var _stepCatArray={"@@transducer/init":Array,"@@transducer/step":function(xs,x){xs.push(x);return xs},"@@transducer/result":_identity};var _stepCatString={"@@transducer/init":String,"@@transducer/step":function(a,b){return a+b},"@@transducer/result":_identity};var _stepCatObject={"@@transducer/init":Object,"@@transducer/step":function(result,input){return _assign(result,isArrayLike(input)?objOf(input[0],input[1]):input)},"@@transducer/result":_identity};return function _stepCat(obj){if(_isTransformer(obj)){return obj}if(isArrayLike(obj)){return _stepCatArray}if(typeof obj==="string"){return _stepCatString}if(typeof obj==="object"){return _stepCatObject}throw new Error("Cannot create transformer for "+obj)}}();var _xdropLastWhile=function(){function XDropLastWhile(fn,xf){this.f=fn;this.retained=[];this.xf=xf}XDropLastWhile.prototype["@@transducer/init"]=_xfBase.init;XDropLastWhile.prototype["@@transducer/result"]=function(result){this.retained=null;return this.xf["@@transducer/result"](result)};XDropLastWhile.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.retain(result,input):this.flush(result,input)};XDropLastWhile.prototype.flush=function(result,input){result=_reduce(this.xf["@@transducer/step"],result,this.retained);this.retained=[];return this.xf["@@transducer/step"](result,input)};XDropLastWhile.prototype.retain=function(result,input){this.retained.push(input);return result};return _curry2(function _xdropLastWhile(fn,xf){return new XDropLastWhile(fn,xf)})}();var addIndex=_curry1(function addIndex(fn){return curryN(fn.length,function(){var idx=0;var origFn=arguments[0];var list=arguments[arguments.length-1];var args=_slice(arguments);args[0]=function(){var result=origFn.apply(this,_concat(arguments,[idx,list]));idx+=1;return result};return fn.apply(this,args)})});var binary=_curry1(function binary(fn){return nAry(2,fn)});var clone=_curry1(function clone(value){return value!=null&&typeof value.clone==="function"?value.clone():_clone(value,[],[],true)});var curry=_curry1(function curry(fn){return curryN(fn.length,fn)});var drop=_curry2(_dispatchable("drop",_xdrop,function drop(n,xs){return slice(Math.max(0,n),Infinity,xs)}));var dropLast=_curry2(_dispatchable("dropLast",_xdropLast,_dropLast));var dropLastWhile=_curry2(_dispatchable("dropLastWhile",_xdropLastWhile,_dropLastWhile));var equals=_curry2(function equals(a,b){return _equals(a,b,[],[])});var filter=_curry2(_dispatchable("filter",_xfilter,function(pred,filterable){return _isObject(filterable)?_reduce(function(acc,key){if(pred(filterable[key])){acc[key]=filterable[key]}return acc},{},keys(filterable)):_filter(pred,filterable)}));var flatten=_curry1(_makeFlat(true));var flip=_curry1(function flip(fn){return curry(function(a,b){var args=_slice(arguments);args[0]=b;args[1]=a;return fn.apply(this,args)})});var head=nth(0);var init=slice(0,-1);var intersectionWith=_curry3(function intersectionWith(pred,list1,list2){var lookupList,filteredList;if(list1.length>list2.length){lookupList=list1;filteredList=list2}else{lookupList=list2;filteredList=list1}var results=[];var idx=0;while(idx<filteredList.length){if(_containsWith(pred,filteredList[idx],lookupList)){results[results.length]=filteredList[idx]}idx+=1}return uniqWith(pred,results)});var into=_curry3(function into(acc,xf,list){return _isTransformer(acc)?_reduce(xf(acc),acc["@@transducer/init"](),list):_reduce(xf(_stepCat(acc)),_clone(acc,[],[],false),list)});var invert=_curry1(function invert(obj){var props=keys(obj);var len=props.length;var idx=0;var out={};while(idx<len){var key=props[idx];var val=obj[key];var list=_has(val,out)?out[val]:out[val]=[];list[list.length]=key;idx+=1}return out});var invertObj=_curry1(function invertObj(obj){var props=keys(obj);var len=props.length;var idx=0;var out={};while(idx<len){var key=props[idx];out[obj[key]]=key;idx+=1}return out});var isEmpty=_curry1(function isEmpty(x){return x!=null&&equals(x,empty(x))});var last=nth(-1);var lastIndexOf=_curry2(function lastIndexOf(target,xs){if(typeof xs.lastIndexOf==="function"&&!_isArray(xs)){return xs.lastIndexOf(target)}else{var idx=xs.length-1;while(idx>=0){if(equals(xs[idx],target)){return idx}idx-=1}return-1}});var map=_curry2(_dispatchable("map",_xmap,function map(fn,functor){switch(Object.prototype.toString.call(functor)){case"[object Function]":return curryN(functor.length,function(){return fn.call(this,functor.apply(this,arguments))});case"[object Object]":return _reduce(function(acc,key){acc[key]=fn(functor[key]);return acc},{},keys(functor));default:return _map(fn,functor)}}));var mapObjIndexed=_curry2(function mapObjIndexed(fn,obj){return _reduce(function(acc,key){acc[key]=fn(obj[key],key,obj);return acc},{},keys(obj))});var mergeWith=_curry3(function mergeWith(fn,l,r){return mergeWithKey(function(_,_l,_r){return fn(_l,_r)},l,r)});var partial=_createPartialApplicator(_concat);var partialRight=_createPartialApplicator(flip(_concat));var pathEq=_curry3(function pathEq(_path,val,obj){return equals(path(_path,obj),val)});var pluck=_curry2(function pluck(p,list){return map(prop(p),list)});var project=useWith(_map,[pickAll,identity]);var propEq=_curry3(function propEq(name,val,obj){return equals(val,obj[name])});var reduce=_curry3(_reduce);var reduceBy=_curryN(4,[],_dispatchable("reduceBy",_xreduceBy,function reduceBy(valueFn,valueAcc,keyFn,list){return _reduce(function(acc,elt){var key=keyFn(elt);acc[key]=valueFn(_has(key,acc)?acc[key]:valueAcc,elt);return acc},{},list)}));var reduceWhile=_curryN(4,[],function _reduceWhile(pred,fn,a,list){return _reduce(function(acc,x){return pred(acc,x)?fn(acc,x):_reduced(acc)},a,list)});var reject=_curry2(function reject(pred,filterable){return filter(_complement(pred),filterable)});var repeat=_curry2(function repeat(value,n){return times(always(value),n)});var sum=reduce(add,0);var takeLast=_curry2(function takeLast(n,xs){return drop(n>=0?xs.length-n:0,xs)});var transduce=curryN(4,function transduce(xf,fn,acc,list){return _reduce(xf(typeof fn==="function"?_xwrap(fn):fn),acc,list)});var unionWith=_curry3(function unionWith(pred,list1,list2){return uniqWith(pred,_concat(list1,list2))});var whereEq=_curry2(function whereEq(spec,testObj){return where(map(equals,spec),testObj)});var _flatCat=function(){var preservingReduced=function(xf){return{"@@transducer/init":_xfBase.init,"@@transducer/result":function(result){return xf["@@transducer/result"](result)},"@@transducer/step":function(result,input){var ret=xf["@@transducer/step"](result,input);return ret["@@transducer/reduced"]?_forceReduced(ret):ret}}};return function _xcat(xf){var rxf=preservingReduced(xf);return{"@@transducer/init":_xfBase.init,"@@transducer/result":function(result){return rxf["@@transducer/result"](result)},"@@transducer/step":function(result,input){return!isArrayLike(input)?_reduce(rxf,result,[input]):_reduce(rxf,result,input)}}}}();var _indexOf=function _indexOf(list,a,idx){var inf,item;if(typeof list.indexOf==="function"){switch(typeof a){case"number":if(a===0){inf=1/a;while(idx<list.length){item=list[idx];if(item===0&&1/item===inf){return idx}idx+=1}return-1}else if(a!==a){while(idx<list.length){item=list[idx];if(typeof item==="number"&&item!==item){return idx}idx+=1}return-1}return list.indexOf(a,idx);case"string":case"boolean":case"function":case"undefined":return list.indexOf(a,idx);case"object":if(a===null){return list.indexOf(a,idx)}}}while(idx<list.length){if(equals(list[idx],a)){return idx}idx+=1}return-1};var _xchain=_curry2(function _xchain(f,xf){return map(f,_flatCat(xf))});var allPass=_curry1(function allPass(preds){return curryN(reduce(max,0,pluck("length",preds)),function(){var idx=0;var len=preds.length;while(idx<len){if(!preds[idx].apply(this,arguments)){return false}idx+=1}return true})});var anyPass=_curry1(function anyPass(preds){return curryN(reduce(max,0,pluck("length",preds)),function(){var idx=0;var len=preds.length;while(idx<len){if(preds[idx].apply(this,arguments)){return true}idx+=1}return false})});var ap=_curry2(function ap(applicative,fn){return typeof applicative.ap==="function"?applicative.ap(fn):typeof applicative==="function"?function(x){return applicative(x)(fn(x))}:_reduce(function(acc,f){return _concat(acc,map(f,fn))},[],applicative)});var applySpec=_curry1(function applySpec(spec){spec=map(function(v){return typeof v=="function"?v:applySpec(v)},spec);return curryN(reduce(max,0,pluck("length",values(spec))),function(){var args=arguments;return map(function(f){return apply(f,args)},spec)})});var call=curry(function call(fn){return fn.apply(this,_slice(arguments,1))});var chain=_curry2(_dispatchable("chain",_xchain,function chain(fn,monad){if(typeof monad==="function"){return function(){return monad.call(this,fn.apply(this,arguments)).apply(this,arguments)}}return _makeFlat(false)(map(fn,monad))}));var cond=_curry1(function cond(pairs){var arity=reduce(max,0,map(function(pair){return pair[0].length},pairs));return _arity(arity,function(){var idx=0;while(idx<pairs.length){if(pairs[idx][0].apply(this,arguments)){return pairs[idx][1].apply(this,arguments)}idx+=1}})});var constructN=_curry2(function constructN(n,Fn){if(n>10){throw new Error("Constructor with greater than ten arguments")}if(n===0){return function(){return new Fn}}return curry(nAry(n,function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9){switch(arguments.length){case 1:return new Fn($0);case 2:return new Fn($0,$1);case 3:return new Fn($0,$1,$2);case 4:return new Fn($0,$1,$2,$3);case 5:return new Fn($0,$1,$2,$3,$4);case 6:return new Fn($0,$1,$2,$3,$4,$5);case 7:return new Fn($0,$1,$2,$3,$4,$5,$6);case 8:return new Fn($0,$1,$2,$3,$4,$5,$6,$7);case 9:return new Fn($0,$1,$2,$3,$4,$5,$6,$7,$8);case 10:return new Fn($0,$1,$2,$3,$4,$5,$6,$7,$8,$9)}}))});var converge=_curry2(function converge(after,fns){return curryN(reduce(max,0,pluck("length",fns)),function(){var args=arguments;var context=this;return after.apply(context,_map(function(fn){return fn.apply(context,args)},fns))})});var countBy=reduceBy(function(acc,elem){return acc+1},0);var dropRepeatsWith=_curry2(_dispatchable("dropRepeatsWith",_xdropRepeatsWith,function dropRepeatsWith(pred,list){var result=[];var idx=1;var len=list.length;if(len!==0){result[0]=list[0];while(idx<len){if(!pred(last(result),list[idx])){result[result.length]=list[idx]}idx+=1}}return result}));var eqBy=_curry3(function eqBy(f,x,y){return equals(f(x),f(y))});var eqProps=_curry3(function eqProps(prop,obj1,obj2){return equals(obj1[prop],obj2[prop])});var groupBy=_curry2(_checkForMethod("groupBy",reduceBy(function(acc,item){if(acc==null){acc=[]}acc.push(item);return acc},null)));var indexBy=reduceBy(function(acc,elem){return elem},null);var indexOf=_curry2(function indexOf(target,xs){return typeof xs.indexOf==="function"&&!_isArray(xs)?xs.indexOf(target):_indexOf(xs,target,0)});var juxt=_curry1(function juxt(fns){return converge(_arrayOf,fns)});var lens=_curry2(function lens(getter,setter){return function(toFunctorFn){return function(target){return map(function(focus){return setter(focus,target)},toFunctorFn(getter(target)))}}});var lensIndex=_curry1(function lensIndex(n){return lens(nth(n),update(n))});var lensPath=_curry1(function lensPath(p){return lens(path(p),assocPath(p))});var lensProp=_curry1(function lensProp(k){return lens(prop(k),assoc(k))});var liftN=_curry2(function liftN(arity,fn){var lifted=curryN(arity,fn);return curryN(arity,function(){return _reduce(ap,map(lifted,arguments[0]),_slice(arguments,1))})});var mean=_curry1(function mean(list){return sum(list)/list.length});var median=_curry1(function median(list){var len=list.length;if(len===0){return NaN}var width=2-len%2;var idx=(len-width)/2;return mean(_slice(list).sort(function(a,b){return a<b?-1:a>b?1:0}).slice(idx,idx+width))});var partition=juxt([filter,reject]);var pipe=function pipe(){if(arguments.length===0){throw new Error("pipe requires at least one argument")}return _arity(arguments[0].length,reduce(_pipe,arguments[0],tail(arguments)))};var pipeP=function pipeP(){if(arguments.length===0){throw new Error("pipeP requires at least one argument")}return _arity(arguments[0].length,reduce(_pipeP,arguments[0],tail(arguments)))};var product=reduce(multiply,1);var sequence=_curry2(function sequence(of,traversable){return typeof traversable.sequence==="function"?traversable.sequence(of):reduceRight(function(acc,x){return ap(map(prepend,x),acc)},of([]),traversable)});var traverse=_curry3(function traverse(of,f,traversable){return sequence(of,map(f,traversable))});var unnest=chain(_identity);var _contains=function _contains(a,list){return _indexOf(list,a,0)>=0};var _toString=function _toString(x,seen){var recur=function recur(y){var xs=seen.concat([x]);return _contains(y,xs)?"<Circular>":_toString(y,xs)};var mapPairs=function(obj,keys){return _map(function(k){return _quote(k)+": "+recur(obj[k])},keys.slice().sort())};switch(Object.prototype.toString.call(x)){case"[object Arguments]":return"(function() { return arguments; }("+_map(recur,x).join(", ")+"))";case"[object Array]":return"["+_map(recur,x).concat(mapPairs(x,reject(function(k){return/^\d+$/.test(k)},keys(x)))).join(", ")+"]";case"[object Boolean]":return typeof x==="object"?"new Boolean("+recur(x.valueOf())+")":x.toString();case"[object Date]":return"new Date("+(isNaN(x.valueOf())?recur(NaN):_quote(_toISOString(x)))+")";case"[object Null]":return"null";case"[object Number]":return typeof x==="object"?"new Number("+recur(x.valueOf())+")":1/x===-Infinity?"-0":x.toString(10);case"[object String]":return typeof x==="object"?"new String("+recur(x.valueOf())+")":_quote(x);case"[object Undefined]":return"undefined";default:if(typeof x.toString==="function"){var repr=x.toString();if(repr!=="[object Object]"){return repr}}return"{"+mapPairs(x,keys(x)).join(", ")+"}"}};var compose=function compose(){if(arguments.length===0){throw new Error("compose requires at least one argument")}return pipe.apply(this,reverse(arguments))};var composeK=function composeK(){return compose.apply(this,prepend(identity,map(chain,arguments)))};var composeP=function composeP(){if(arguments.length===0){throw new Error("composeP requires at least one argument")}return pipeP.apply(this,reverse(arguments))};var construct=_curry1(function construct(Fn){return constructN(Fn.length,Fn)});var contains=_curry2(_contains);var difference=_curry2(function difference(first,second){var out=[];var idx=0;var firstLen=first.length;while(idx<firstLen){if(!_contains(first[idx],second)&&!_contains(first[idx],out)){out[out.length]=first[idx]}idx+=1}return out});var dropRepeats=_curry1(_dispatchable("dropRepeats",_xdropRepeatsWith(equals),dropRepeatsWith(equals)));var lift=_curry1(function lift(fn){return liftN(fn.length,fn)});var omit=_curry2(function omit(names,obj){var result={};for(var prop in obj){if(!_contains(prop,names)){result[prop]=obj[prop]}}return result});var pipeK=function pipeK(){return composeK.apply(this,reverse(arguments))};var toString=_curry1(function toString(val){return _toString(val,[])});var without=_curry2(function(xs,list){return reject(flip(_contains)(xs),list)});var _Set=function(){function _Set(){this._nativeSet=typeof Set==="function"?new Set:null;this._items={}}_Set.prototype.add=function(item){return!hasOrAdd(item,true,this)};_Set.prototype.has=function(item){return hasOrAdd(item,false,this)};function hasOrAdd(item,shouldAdd,set){var type=typeof item;var prevSize,newSize;switch(type){case"string":case"number":if(item===0&&1/item===-Infinity){if(set._items["-0"]){return true}else{if(shouldAdd){set._items["-0"]=true}return false}}if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type in set._items)){if(shouldAdd){set._items[type]={};set._items[type][item]=true}return false}else if(item in set._items[type]){return true}else{if(shouldAdd){set._items[type][item]=true}return false}}case"boolean":if(type in set._items){var bIdx=item?1:0;if(set._items[type][bIdx]){return true}else{if(shouldAdd){set._items[type][bIdx]=true}return false}}else{if(shouldAdd){set._items[type]=item?[false,true]:[true,false]}return false}case"function":if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize>prevSize}else{return set._nativeSet.has(item)}}else{if(!(type in set._items)){if(shouldAdd){set._items[type]=[item]}return false}if(!_contains(item,set._items[type])){if(shouldAdd){set._items[type].push(item)}return false}return true}case"undefined":if(set._items[type]){return true}else{if(shouldAdd){set._items[type]=true}return false}case"object":if(item===null){if(!set._items["null"]){if(shouldAdd){set._items["null"]=true}return false}return true}default:type=Object.prototype.toString.call(item);if(!(type in set._items)){if(shouldAdd){set._items[type]=[item]}return false}if(!_contains(item,set._items[type])){if(shouldAdd){set._items[type].push(item)}return false}return true}}return _Set}();var both=_curry2(function both(f,g){return _isFunction(f)?function _both(){return f.apply(this,arguments)&&g.apply(this,arguments)}:lift(and)(f,g)});var complement=lift(not);var concat=_curry2(function concat(a,b){if(a==null||!_isFunction(a.concat)){throw new TypeError(toString(a)+' does not have a method named "concat"')}if(_isArray(a)&&!_isArray(b)){throw new TypeError(toString(b)+" is not an array")}return a.concat(b)});var either=_curry2(function either(f,g){return _isFunction(f)?function _either(){return f.apply(this,arguments)||g.apply(this,arguments)}:lift(or)(f,g)});var invoker=_curry2(function invoker(arity,method){return curryN(arity+1,function(){var target=arguments[arity];if(target!=null&&_isFunction(target[method])){return target[method].apply(target,_slice(arguments,0,arity))}throw new TypeError(toString(target)+' does not have a method named "'+method+'"')})});var join=invoker(1,"join");var memoize=_curry1(function memoize(fn){var cache={};return _arity(fn.length,function(){var key=toString(arguments);if(!_has(key,cache)){cache[key]=fn.apply(this,arguments)}return cache[key]})});var split=invoker(1,"split");var symmetricDifference=_curry2(function symmetricDifference(list1,list2){return concat(difference(list1,list2),difference(list2,list1))});var symmetricDifferenceWith=_curry3(function symmetricDifferenceWith(pred,list1,list2){return concat(differenceWith(pred,list1,list2),differenceWith(pred,list2,list1))});var test=_curry2(function test(pattern,str){if(!_isRegExp(pattern)){throw new TypeError("‘test’ requires a value of type RegExp as its first argument; received "+toString(pattern))}return _cloneRegExp(pattern).test(str)});var toLower=invoker(0,"toLowerCase");var toUpper=invoker(0,"toUpperCase");var uniqBy=_curry2(function uniqBy(fn,list){var set=new _Set;var result=[];var idx=0;var appliedItem,item;while(idx<list.length){item=list[idx];appliedItem=fn(item);if(set.add(appliedItem)){result.push(item)}idx+=1}return result});var uniq=uniqBy(identity);var intersection=_curry2(function intersection(list1,list2){var lookupList,filteredList;if(list1.length>list2.length){lookupList=list1;filteredList=list2}else{lookupList=list2;filteredList=list1}return uniq(_filter(flip(_contains)(lookupList),filteredList))});var union=_curry2(compose(uniq,_concat));var R={F:F,T:T,__:__,add:add,addIndex:addIndex,adjust:adjust,all:all,allPass:allPass,always:always,and:and,any:any,anyPass:anyPass,ap:ap,aperture:aperture,append:append,apply:apply,applySpec:applySpec,assoc:assoc,assocPath:assocPath,binary:binary,bind:bind,both:both,call:call,chain:chain,clamp:clamp,clone:clone,comparator:comparator,complement:complement,compose:compose,composeK:composeK,composeP:composeP,concat:concat,cond:cond,construct:construct,constructN:constructN,contains:contains,converge:converge,countBy:countBy,curry:curry,curryN:curryN,dec:dec,defaultTo:defaultTo,difference:difference,differenceWith:differenceWith,dissoc:dissoc,dissocPath:dissocPath,divide:divide,drop:drop,dropLast:dropLast,dropLastWhile:dropLastWhile,dropRepeats:dropRepeats,dropRepeatsWith:dropRepeatsWith,dropWhile:dropWhile,either:either,empty:empty,eqBy:eqBy,eqProps:eqProps,equals:equals,evolve:evolve,filter:filter,find:find,findIndex:findIndex,findLast:findLast,findLastIndex:findLastIndex,flatten:flatten,flip:flip,forEach:forEach,fromPairs:fromPairs,groupBy:groupBy,groupWith:groupWith,gt:gt,gte:gte,has:has,hasIn:hasIn,head:head,identical:identical,identity:identity,ifElse:ifElse,inc:inc,indexBy:indexBy,indexOf:indexOf,init:init,insert:insert,insertAll:insertAll,intersection:intersection,intersectionWith:intersectionWith,intersperse:intersperse,into:into,invert:invert,invertObj:invertObj,invoker:invoker,is:is,isArrayLike:isArrayLike,isEmpty:isEmpty,isNil:isNil,join:join,juxt:juxt,keys:keys,keysIn:keysIn,last:last,lastIndexOf:lastIndexOf,length:length,lens:lens,lensIndex:lensIndex,lensPath:lensPath,lensProp:lensProp,lift:lift,liftN:liftN,lt:lt,lte:lte,map:map,mapAccum:mapAccum,mapAccumRight:mapAccumRight,mapObjIndexed:mapObjIndexed,match:match,mathMod:mathMod,max:max,maxBy:maxBy,mean:mean,median:median,memoize:memoize,merge:merge,mergeAll:mergeAll,mergeWith:mergeWith,mergeWithKey:mergeWithKey,min:min,minBy:minBy,modulo:modulo,multiply:multiply,nAry:nAry,negate:negate,none:none,not:not,nth:nth,nthArg:nthArg,objOf:objOf,of:of,omit:omit,once:once,or:or,over:over,pair:pair,partial:partial,partialRight:partialRight,partition:partition,path:path,pathEq:pathEq,pathOr:pathOr,pathSatisfies:pathSatisfies,pick:pick,pickAll:pickAll,pickBy:pickBy,pipe:pipe,pipeK:pipeK,pipeP:pipeP,pluck:pluck,prepend:prepend,product:product,project:project,prop:prop,propEq:propEq,propIs:propIs,propOr:propOr,propSatisfies:propSatisfies,props:props,range:range,reduce:reduce,reduceBy:reduceBy,reduceRight:reduceRight,reduceWhile:reduceWhile,reduced:reduced,reject:reject,remove:remove,repeat:repeat,replace:replace,reverse:reverse,scan:scan,sequence:sequence,set:set,slice:slice,sort:sort,sortBy:sortBy,split:split,splitAt:splitAt,splitEvery:splitEvery,splitWhen:splitWhen,subtract:subtract,sum:sum,symmetricDifference:symmetricDifference,symmetricDifferenceWith:symmetricDifferenceWith,tail:tail,take:take,takeLast:takeLast,takeLastWhile:takeLastWhile,takeWhile:takeWhile,tap:tap,test:test,times:times,toLower:toLower,toPairs:toPairs,toPairsIn:toPairsIn,toString:toString,toUpper:toUpper,transduce:transduce,transpose:transpose,traverse:traverse,trim:trim,tryCatch:tryCatch,type:type,unapply:unapply,unary:unary,uncurryN:uncurryN,unfold:unfold,union:union,unionWith:unionWith,uniq:uniq,uniqBy:uniqBy,uniqWith:uniqWith,unless:unless,unnest:unnest,until:until, | |
update:update,useWith:useWith,values:values,valuesIn:valuesIn,view:view,when:when,where:where,whereEq:whereEq,without:without,wrap:wrap,xprod:xprod,zip:zip,zipObj:zipObj,zipWith:zipWith};if(typeof exports==="object"){module.exports=R}else if(typeof define==="function"&&define.amd){define(function(){return R})}else{this.R=R}}).call(this)},{}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){(function(){"use strict";var __={"@@functional/placeholder":true};var _arity=function _arity(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};var _cloneRegExp=function _cloneRegExp(pattern){return new RegExp(pattern.source,(pattern.global?"g":"")+(pattern.ignoreCase?"i":"")+(pattern.multiline?"m":"")+(pattern.sticky?"y":"")+(pattern.unicode?"u":""))};var _complement=function _complement(f){return function(){return!f.apply(this,arguments)}};var _concat=function _concat(set1,set2){set1=set1||[];set2=set2||[];var idx;var len1=set1.length;var len2=set2.length;var result=[];idx=0;while(idx<len1){result[result.length]=set1[idx];idx+=1}idx=0;while(idx<len2){result[result.length]=set2[idx];idx+=1}return result};var _containsWith=function _containsWith(pred,x,list){var idx=0,len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false};var _curry1=function _curry1(fn){return function f1(a){if(arguments.length===0){return f1}else if(a!=null&&a["@@functional/placeholder"]===true){return f1}else{return fn.apply(this,arguments)}}};var _curry2=function _curry2(fn){return function f2(a,b){var n=arguments.length;if(n===0){return f2}else if(n===1&&a!=null&&a["@@functional/placeholder"]===true){return f2}else if(n===1){return _curry1(function(b){return fn(a,b)})}else if(n===2&&a!=null&&a["@@functional/placeholder"]===true&&b!=null&&b["@@functional/placeholder"]===true){return f2}else if(n===2&&a!=null&&a["@@functional/placeholder"]===true){return _curry1(function(a){return fn(a,b)})}else if(n===2&&b!=null&&b["@@functional/placeholder"]===true){return _curry1(function(b){return fn(a,b)})}else{return fn(a,b)}}};var _curry3=function _curry3(fn){return function f3(a,b,c){var n=arguments.length;if(n===0){return f3}else if(n===1&&a!=null&&a["@@functional/placeholder"]===true){return f3}else if(n===1){return _curry2(function(b,c){return fn(a,b,c)})}else if(n===2&&a!=null&&a["@@functional/placeholder"]===true&&b!=null&&b["@@functional/placeholder"]===true){return f3}else if(n===2&&a!=null&&a["@@functional/placeholder"]===true){return _curry2(function(a,c){return fn(a,b,c)})}else if(n===2&&b!=null&&b["@@functional/placeholder"]===true){return _curry2(function(b,c){return fn(a,b,c)})}else if(n===2){return _curry1(function(c){return fn(a,b,c)})}else if(n===3&&a!=null&&a["@@functional/placeholder"]===true&&b!=null&&b["@@functional/placeholder"]===true&&c!=null&&c["@@functional/placeholder"]===true){return f3}else if(n===3&&a!=null&&a["@@functional/placeholder"]===true&&b!=null&&b["@@functional/placeholder"]===true){return _curry2(function(a,b){return fn(a,b,c)})}else if(n===3&&a!=null&&a["@@functional/placeholder"]===true&&c!=null&&c["@@functional/placeholder"]===true){return _curry2(function(a,c){return fn(a,b,c)})}else if(n===3&&b!=null&&b["@@functional/placeholder"]===true&&c!=null&&c["@@functional/placeholder"]===true){return _curry2(function(b,c){return fn(a,b,c)})}else if(n===3&&a!=null&&a["@@functional/placeholder"]===true){return _curry1(function(a){return fn(a,b,c)})}else if(n===3&&b!=null&&b["@@functional/placeholder"]===true){return _curry1(function(b){return fn(a,b,c)})}else if(n===3&&c!=null&&c["@@functional/placeholder"]===true){return _curry1(function(c){return fn(a,b,c)})}else{return fn(a,b,c)}}};var _curryN=function _curryN(length,received,fn){return function(){var combined=[];var argsIdx=0;var left=length;var combinedIdx=0;while(combinedIdx<received.length||argsIdx<arguments.length){var result;if(combinedIdx<received.length&&(received[combinedIdx]==null||received[combinedIdx]["@@functional/placeholder"]!==true||argsIdx>=arguments.length)){result=received[combinedIdx]}else{result=arguments[argsIdx];argsIdx+=1}combined[combinedIdx]=result;if(result==null||result["@@functional/placeholder"]!==true){left-=1}combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity(left,_curryN(length,combined,fn))}};var _filter=function _filter(fn,list){var idx=0,len=list.length,result=[];while(idx<len){if(fn(list[idx])){result[result.length]=list[idx]}idx+=1}return result};var _forceReduced=function _forceReduced(x){return{"@@transducer/value":x,"@@transducer/reduced":true}};var _functionsWith=function _functionsWith(fn){return function(obj){return _filter(function(key){return typeof obj[key]==="function"},fn(obj))}};var _has=function _has(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)};var _identity=function _identity(x){return x};var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==="[object Array]"};var _isInteger=Number.isInteger||function _isInteger(n){return n<<0===n};var _isNumber=function _isNumber(x){return Object.prototype.toString.call(x)==="[object Number]"};var _isString=function _isString(x){return Object.prototype.toString.call(x)==="[object String]"};var _isTransformer=function _isTransformer(obj){return typeof obj["@@transducer/step"]==="function"};var _map=function _map(fn,list){var idx=0,len=list.length,result=Array(len);while(idx<len){result[idx]=fn(list[idx]);idx+=1}return result};var _pipe=function _pipe(f,g){return function(){return g.call(this,f.apply(this,arguments))}};var _pipeP=function _pipeP(f,g){return function(){var ctx=this;return f.apply(ctx,arguments).then(function(x){return g.call(ctx,x)})}};var _quote=function _quote(s){return'"'+s.replace(/"/g,'\\"')+'"'};var _reduced=function _reduced(x){return x&&x["@@transducer/reduced"]?x:{"@@transducer/value":x,"@@transducer/reduced":true}};var _slice=function _slice(args,from,to){switch(arguments.length){case 1:return _slice(args,0,args.length);case 2:return _slice(args,from,args.length);default:var list=[];var idx=0;var len=Math.max(0,Math.min(args.length,to)-from);while(idx<len){list[idx]=args[from+idx];idx+=1}return list}};var _toISOString=function(){var pad=function pad(n){return(n<10?"0":"")+n};return typeof Date.prototype.toISOString==="function"?function _toISOString(d){return d.toISOString()}:function _toISOString(d){return d.getUTCFullYear()+"-"+pad(d.getUTCMonth()+1)+"-"+pad(d.getUTCDate())+"T"+pad(d.getUTCHours())+":"+pad(d.getUTCMinutes())+":"+pad(d.getUTCSeconds())+"."+(d.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}}();var _xdropRepeatsWith=function(){function XDropRepeatsWith(pred,xf){this.xf=xf;this.pred=pred;this.lastValue=undefined;this.seenFirstValue=false}XDropRepeatsWith.prototype["@@transducer/init"]=function(){return this.xf["@@transducer/init"]()};XDropRepeatsWith.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](result)};XDropRepeatsWith.prototype["@@transducer/step"]=function(result,input){var sameAsLast=false;if(!this.seenFirstValue){this.seenFirstValue=true}else if(this.pred(this.lastValue,input)){sameAsLast=true}this.lastValue=input;return sameAsLast?result:this.xf["@@transducer/step"](result,input)};return _curry2(function _xdropRepeatsWith(pred,xf){return new XDropRepeatsWith(pred,xf)})}();var _xfBase={init:function(){return this.xf["@@transducer/init"]()},result:function(result){return this.xf["@@transducer/result"](result)}};var _xfilter=function(){function XFilter(f,xf){this.xf=xf;this.f=f}XFilter.prototype["@@transducer/init"]=_xfBase.init;XFilter.prototype["@@transducer/result"]=_xfBase.result;XFilter.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):result};return _curry2(function _xfilter(f,xf){return new XFilter(f,xf)})}();var _xfind=function(){function XFind(f,xf){this.xf=xf;this.f=f;this.found=false}XFind.prototype["@@transducer/init"]=_xfBase.init;XFind.prototype["@@transducer/result"]=function(result){if(!this.found){result=this.xf["@@transducer/step"](result,void 0)}return this.xf["@@transducer/result"](result)};XFind.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.found=true;result=_reduced(this.xf["@@transducer/step"](result,input))}return result};return _curry2(function _xfind(f,xf){return new XFind(f,xf)})}();var _xfindIndex=function(){function XFindIndex(f,xf){this.xf=xf;this.f=f;this.idx=-1;this.found=false}XFindIndex.prototype["@@transducer/init"]=_xfBase.init;XFindIndex.prototype["@@transducer/result"]=function(result){if(!this.found){result=this.xf["@@transducer/step"](result,-1)}return this.xf["@@transducer/result"](result)};XFindIndex.prototype["@@transducer/step"]=function(result,input){this.idx+=1;if(this.f(input)){this.found=true;result=_reduced(this.xf["@@transducer/step"](result,this.idx))}return result};return _curry2(function _xfindIndex(f,xf){return new XFindIndex(f,xf)})}();var _xfindLast=function(){function XFindLast(f,xf){this.xf=xf;this.f=f}XFindLast.prototype["@@transducer/init"]=_xfBase.init;XFindLast.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result,this.last))};XFindLast.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.last=input}return result};return _curry2(function _xfindLast(f,xf){return new XFindLast(f,xf)})}();var _xfindLastIndex=function(){function XFindLastIndex(f,xf){this.xf=xf;this.f=f;this.idx=-1;this.lastIdx=-1}XFindLastIndex.prototype["@@transducer/init"]=_xfBase.init;XFindLastIndex.prototype["@@transducer/result"]=function(result){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result,this.lastIdx))};XFindLastIndex.prototype["@@transducer/step"]=function(result,input){this.idx+=1;if(this.f(input)){this.lastIdx=this.idx}return result};return _curry2(function _xfindLastIndex(f,xf){return new XFindLastIndex(f,xf)})}();var _xmap=function(){function XMap(f,xf){this.xf=xf;this.f=f}XMap.prototype["@@transducer/init"]=_xfBase.init;XMap.prototype["@@transducer/result"]=_xfBase.result;XMap.prototype["@@transducer/step"]=function(result,input){return this.xf["@@transducer/step"](result,this.f(input))};return _curry2(function _xmap(f,xf){return new XMap(f,xf)})}();var _xtake=function(){function XTake(n,xf){this.xf=xf;this.n=n}XTake.prototype["@@transducer/init"]=_xfBase.init;XTake.prototype["@@transducer/result"]=_xfBase.result;XTake.prototype["@@transducer/step"]=function(result,input){if(this.n===0){return _reduced(result)}else{this.n-=1;return this.xf["@@transducer/step"](result,input)}};return _curry2(function _xtake(n,xf){return new XTake(n,xf)})}();var _xtakeWhile=function(){function XTakeWhile(f,xf){this.xf=xf;this.f=f}XTakeWhile.prototype["@@transducer/init"]=_xfBase.init;XTakeWhile.prototype["@@transducer/result"]=_xfBase.result;XTakeWhile.prototype["@@transducer/step"]=function(result,input){return this.f(input)?this.xf["@@transducer/step"](result,input):_reduced(result)};return _curry2(function _xtakeWhile(f,xf){return new XTakeWhile(f,xf)})}();var _xwrap=function(){function XWrap(fn){this.f=fn}XWrap.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")};XWrap.prototype["@@transducer/result"]=function(acc){return acc};XWrap.prototype["@@transducer/step"]=function(acc,x){return this.f(acc,x)};return function _xwrap(fn){return new XWrap(fn)}}();var add=_curry2(function add(a,b){return a+b});var adjust=_curry3(function adjust(fn,idx,list){if(idx>=list.length||idx<-list.length){return list}var start=idx<0?list.length:0;var _idx=start+idx;var _list=_concat(list);_list[_idx]=fn(list[_idx]);return _list});var always=_curry1(function always(val){return function(){return val}});var aperture=_curry2(function aperture(n,list){var idx=0;var limit=list.length-(n-1);var acc=new Array(limit>=0?limit:0);while(idx<limit){acc[idx]=_slice(list,idx,idx+n);idx+=1}return acc});var append=_curry2(function append(el,list){return _concat(list,[el])});var apply=_curry2(function apply(fn,args){return fn.apply(this,args)});var assoc=_curry3(function assoc(prop,val,obj){var result={};for(var p in obj){result[p]=obj[p]}result[prop]=val;return result});var assocPath=_curry3(function assocPath(path,val,obj){switch(path.length){case 0:return obj;case 1:return assoc(path[0],val,obj);default:return assoc(path[0],assocPath(_slice(path,1),val,Object(obj[path[0]])),obj)}});var bind=_curry2(function bind(fn,thisObj){return _arity(fn.length,function(){return fn.apply(thisObj,arguments)})});var both=_curry2(function both(f,g){return function _both(){return f.apply(this,arguments)&&g.apply(this,arguments)}});var comparator=_curry1(function comparator(pred){return function(a,b){return pred(a,b)?-1:pred(b,a)?1:0}});var complement=_curry1(_complement);var cond=_curry1(function cond(pairs){return function(){var idx=0;while(idx<pairs.length){if(pairs[idx][0].apply(this,arguments)){return pairs[idx][1].apply(this,arguments)}idx+=1}}});var containsWith=_curry3(_containsWith);var countBy=_curry2(function countBy(fn,list){var counts={};var len=list.length;var idx=0;while(idx<len){var key=fn(list[idx]);counts[key]=(_has(key,counts)?counts[key]:0)+1;idx+=1}return counts});var createMapEntry=_curry2(function createMapEntry(key,val){var obj={};obj[key]=val;return obj});var curryN=_curry2(function curryN(length,fn){if(length===1){return _curry1(fn)}return _arity(length,_curryN(length,[],fn))});var dec=add(-1);var defaultTo=_curry2(function defaultTo(d,v){return v==null?d:v});var differenceWith=_curry3(function differenceWith(pred,first,second){var out=[];var idx=0;var firstLen=first.length;var containsPred=containsWith(pred);while(idx<firstLen){if(!containsPred(first[idx],second)&&!containsPred(first[idx],out)){out[out.length]=first[idx]}idx+=1}return out});var dissoc=_curry2(function dissoc(prop,obj){var result={};for(var p in obj){if(p!==prop){result[p]=obj[p]}}return result});var dissocPath=_curry2(function dissocPath(path,obj){switch(path.length){case 0:return obj;case 1:return dissoc(path[0],obj);default:var head=path[0];var tail=_slice(path,1);return obj[head]==null?obj:assoc(head,dissocPath(tail,obj[head]),obj)}});var divide=_curry2(function divide(a,b){return a/b});var dropLastWhile=_curry2(function dropLastWhile(pred,list){var idx=list.length-1;while(idx>=0&&pred(list[idx])){idx-=1}return _slice(list,0,idx+1)});var either=_curry2(function either(f,g){return function _either(){return f.apply(this,arguments)||g.apply(this,arguments)}});var empty=_curry1(function empty(x){if(x!=null&&typeof x.empty==="function"){return x.empty()}else if(x!=null&&typeof x.constructor!=null&&typeof x.constructor.empty==="function"){return x.constructor.empty()}else{switch(Object.prototype.toString.call(x)){case"[object Array]":return[];case"[object Object]":return{};case"[object String]":return""}}});var evolve=_curry2(function evolve(transformations,object){var transformation,key,type,result={};for(key in object){transformation=transformations[key];type=typeof transformation;result[key]=type==="function"?transformation(object[key]):type==="object"?evolve(transformations[key],object[key]):object[key]}return result});var fromPairs=_curry1(function fromPairs(pairs){var idx=0,len=pairs.length,out={};while(idx<len){if(_isArray(pairs[idx])&&pairs[idx].length){out[pairs[idx][0]]=pairs[idx][1]}idx+=1}return out});var gt=_curry2(function gt(a,b){return a>b});var gte=_curry2(function gte(a,b){return a>=b});var has=_curry2(_has);var hasIn=_curry2(function hasIn(prop,obj){return prop in obj});var identical=_curry2(function identical(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}});var identity=_curry1(_identity);var ifElse=_curry3(function ifElse(condition,onTrue,onFalse){return curryN(Math.max(condition.length,onTrue.length,onFalse.length),function _ifElse(){return condition.apply(this,arguments)?onTrue.apply(this,arguments):onFalse.apply(this,arguments)})});var inc=add(1);var insert=_curry3(function insert(idx,elt,list){idx=idx<list.length&&idx>=0?idx:list.length;var result=_slice(list);result.splice(idx,0,elt);return result});var insertAll=_curry3(function insertAll(idx,elts,list){idx=idx<list.length&&idx>=0?idx:list.length;return _concat(_concat(_slice(list,0,idx),elts),_slice(list,idx))});var is=_curry2(function is(Ctor,val){return val!=null&&val.constructor===Ctor||val instanceof Ctor});var isArrayLike=_curry1(function isArrayLike(x){if(_isArray(x)){return true}if(!x){return false}if(typeof x!=="object"){return false}if(x instanceof String){return false}if(x.nodeType===1){return!!x.length}if(x.length===0){return true}if(x.length>0){return x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)}return false});var isEmpty=_curry1(function isEmpty(list){return Object(list).length===0});var isNil=_curry1(function isNil(x){return x==null});var keys=function(){var hasEnumBug=!{toString:null}.propertyIsEnumerable("toString");var nonEnumerableProps=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};return typeof Object.keys==="function"?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop,ks=[],nIdx;for(prop in obj){if(_has(prop,obj)){ks[ks.length]=prop}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop=nonEnumerableProps[nIdx];if(_has(prop,obj)&&!contains(ks,prop)){ks[ks.length]=prop}nIdx-=1}}return ks})}();var keysIn=_curry1(function keysIn(obj){var prop,ks=[];for(prop in obj){ks[ks.length]=prop}return ks});var length=_curry1(function length(list){return list!=null&&is(Number,list.length)?list.length:NaN});var lt=_curry2(function lt(a,b){return a<b});var lte=_curry2(function lte(a,b){return a<=b});var mapAccum=_curry3(function mapAccum(fn,acc,list){var idx=0,len=list.length,result=[],tuple=[acc];while(idx<len){tuple=fn(tuple[0],list[idx]);result[idx]=tuple[1];idx+=1}return[tuple[0],result]});var mapAccumRight=_curry3(function mapAccumRight(fn,acc,list){var idx=list.length-1,result=[],tuple=[acc];while(idx>=0){tuple=fn(tuple[0],list[idx]);result[idx]=tuple[1];idx-=1}return[tuple[0],result]});var match=_curry2(function match(rx,str){return str.match(rx)||[]});var mathMod=_curry2(function mathMod(m,p){if(!_isInteger(m)){return NaN}if(!_isInteger(p)||p<1){return NaN}return(m%p+p)%p});var max=_curry2(function max(a,b){return b>a?b:a});var maxBy=_curry3(function maxBy(f,a,b){return f(b)>f(a)?b:a});var merge=_curry2(function merge(a,b){var result={};var ks=keys(a);var idx=0;while(idx<ks.length){result[ks[idx]]=a[ks[idx]];idx+=1}ks=keys(b);idx=0;while(idx<ks.length){result[ks[idx]]=b[ks[idx]];idx+=1}return result});var min=_curry2(function min(a,b){return b<a?b:a});var minBy=_curry3(function minBy(f,a,b){return f(b)<f(a)?b:a});var modulo=_curry2(function modulo(a,b){return a%b});var multiply=_curry2(function multiply(a,b){return a*b});var nAry=_curry2(function nAry(n,fn){switch(n){case 0:return function(){return fn.call(this)};case 1:return function(a0){return fn.call(this,a0)};case 2:return function(a0,a1){return fn.call(this,a0,a1)};case 3:return function(a0,a1,a2){return fn.call(this,a0,a1,a2)};case 4:return function(a0,a1,a2,a3){return fn.call(this,a0,a1,a2,a3)};case 5:return function(a0,a1,a2,a3,a4){return fn.call(this,a0,a1,a2,a3,a4)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.call(this,a0,a1,a2,a3,a4,a5)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.call(this,a0,a1,a2,a3,a4,a5,a6)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7,a8)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.call(this,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}});var negate=_curry1(function negate(n){return-n});var not=_curry1(function not(a){return!a});var nth=_curry2(function nth(offset,list){var idx=offset<0?list.length+offset:offset;return _isString(list)?list.charAt(idx):list[idx]});var nthArg=_curry1(function nthArg(n){return function(){return nth(n,arguments)}});var nthChar=_curry2(function nthChar(n,str){return str.charAt(n<0?str.length+n:n)});var nthCharCode=_curry2(function nthCharCode(n,str){return str.charCodeAt(n<0?str.length+n:n)});var of=_curry1(function of(x){return[x]});var once=_curry1(function once(fn){var called=false,result;return function(){if(called){return result}called=true;result=fn.apply(this,arguments);return result}});var over=function(){var Identity=function(x){return{value:x,map:function(f){return Identity(f(x))}}};return _curry3(function over(lens,f,x){return lens(function(y){return Identity(f(y))})(x).value})}();var path=_curry2(function path(paths,obj){if(obj==null){return}else{var val=obj;for(var idx=0,len=paths.length;idx<len&&val!=null;idx+=1){val=val[paths[idx]]}return val}});var pick=_curry2(function pick(names,obj){var result={};var idx=0;while(idx<names.length){if(names[idx]in obj){result[names[idx]]=obj[names[idx]]}idx+=1}return result});var pickAll=_curry2(function pickAll(names,obj){var result={};var idx=0;var len=names.length;while(idx<len){var name=names[idx];result[name]=obj[name];idx+=1}return result});var pickBy=_curry2(function pickBy(test,obj){var result={};for(var prop in obj){if(test(obj[prop],prop,obj)){result[prop]=obj[prop]}}return result});var prepend=_curry2(function prepend(el,list){return _concat([el],list)});var prop=_curry2(function prop(p,obj){return obj[p]});var propOr=_curry3(function propOr(val,p,obj){return obj!=null&&_has(p,obj)?obj[p]:val});var propSatisfies=_curry3(function propSatisfies(pred,name,obj){return pred(obj[name])});var props=_curry2(function props(ps,obj){var len=ps.length;var out=[];var idx=0;while(idx<len){out[idx]=obj[ps[idx]];idx+=1}return out});var range=_curry2(function range(from,to){if(!(_isNumber(from)&&_isNumber(to))){throw new TypeError("Both arguments to range must be numbers")}var result=[];var n=from;while(n<to){result.push(n);n+=1}return result});var reduceRight=_curry3(function reduceRight(fn,acc,list){var idx=list.length-1;while(idx>=0){acc=fn(acc,list[idx]);idx-=1}return acc});var reduced=_curry1(_reduced);var remove=_curry3(function remove(start,count,list){return _concat(_slice(list,0,Math.min(start,list.length)),_slice(list,Math.min(list.length,start+count)))});var replace=_curry3(function replace(regex,replacement,str){return str.replace(regex,replacement)});var reverse=_curry1(function reverse(list){return _slice(list).reverse()});var scan=_curry3(function scan(fn,acc,list){var idx=0,len=list.length,result=[acc];while(idx<len){acc=fn(acc,list[idx]);result[idx+1]=acc;idx+=1}return result});var set=_curry3(function set(lens,v,x){return over(lens,always(v),x)});var sort=_curry2(function sort(comparator,list){return _slice(list).sort(comparator)});var sortBy=_curry2(function sortBy(fn,list){return _slice(list).sort(function(a,b){var aa=fn(a);var bb=fn(b);return aa<bb?-1:aa>bb?1:0})});var subtract=_curry2(function subtract(a,b){return a-b});var takeLastWhile=_curry2(function takeLastWhile(fn,list){var idx=list.length-1;while(idx>=0&&fn(list[idx])){idx-=1}return _slice(list,idx+1,Infinity)});var tap=_curry2(function tap(fn,x){fn(x);return x});var test=_curry2(function test(pattern,str){return _cloneRegExp(pattern).test(str)});var times=_curry2(function times(fn,n){var len=Number(n);var list=new Array(len);var idx=0;while(idx<len){list[idx]=fn(idx);idx+=1}return list});var toPairs=_curry1(function toPairs(obj){var pairs=[];for(var prop in obj){if(_has(prop,obj)){pairs[pairs.length]=[prop,obj[prop]]}}return pairs});var toPairsIn=_curry1(function toPairsIn(obj){var pairs=[];for(var prop in obj){pairs[pairs.length]=[prop,obj[prop]]}return pairs});var trim=function(){var ws=" \n\x0B\f\r "+" \u2028"+"\u2029\ufeff";var zeroWidth="";var hasProtoTrim=typeof String.prototype.trim==="function";if(!hasProtoTrim||(ws.trim()||!zeroWidth.trim())){return _curry1(function trim(str){var beginRx=new RegExp("^["+ws+"]["+ws+"]*");var endRx=new RegExp("["+ws+"]["+ws+"]*$");return str.replace(beginRx,"").replace(endRx,"")})}else{return _curry1(function trim(str){return str.trim()})}}();var type=_curry1(function type(val){return val===null?"Null":val===undefined?"Undefined":Object.prototype.toString.call(val).slice(8,-1)});var unapply=_curry1(function unapply(fn){return function(){return fn(_slice(arguments))}});var unary=_curry1(function unary(fn){return nAry(1,fn)});var uncurryN=_curry2(function uncurryN(depth,fn){return curryN(depth,function(){var currentDepth=1;var value=fn;var idx=0;var endIdx;while(currentDepth<=depth&&typeof value==="function"){endIdx=currentDepth===depth?arguments.length:idx+value.length;value=value.apply(this,_slice(arguments,idx,endIdx));currentDepth+=1;idx=endIdx}return value})});var unfold=_curry2(function unfold(fn,seed){var pair=fn(seed);var result=[];while(pair&&pair.length){result[result.length]=pair[0];pair=fn(pair[1])}return result});var uniqWith=_curry2(function uniqWith(pred,list){var idx=0,len=list.length;var result=[],item;while(idx<len){item=list[idx];if(!_containsWith(pred,item,result)){result[result.length]=item}idx+=1}return result});var update=_curry3(function update(idx,x,list){return adjust(always(x),idx,list)});var values=_curry1(function values(obj){var props=keys(obj);var len=props.length;var vals=[];var idx=0;while(idx<len){vals[idx]=obj[props[idx]];idx+=1}return vals});var valuesIn=_curry1(function valuesIn(obj){var prop,vs=[];for(prop in obj){vs[vs.length]=obj[prop]}return vs});var view=function(){var Const=function(x){return{value:x,map:function(){return this}}};return _curry2(function view(lens,x){return lens(Const)(x).value})}();var where=_curry2(function where(spec,testObj){for(var prop in spec){if(_has(prop,spec)&&!spec[prop](testObj[prop])){return false}}return true});var wrap=_curry2(function wrap(fn,wrapper){return curryN(fn.length,function(){return wrapper.apply(this,_concat([fn],arguments))})});var xprod=_curry2(function xprod(a,b){var idx=0;var ilen=a.length;var j;var jlen=b.length;var result=[];while(idx<ilen){j=0;while(j<jlen){result[result.length]=[a[idx],b[j]];j+=1}idx+=1}return result});var zip=_curry2(function zip(a,b){var rv=[];var idx=0;var len=Math.min(a.length,b.length);while(idx<len){rv[idx]=[a[idx],b[idx]];idx+=1}return rv});var zipObj=_curry2(function zipObj(keys,values){var idx=0,len=keys.length,out={};while(idx<len){out[keys[idx]]=values[idx];idx+=1}return out});var zipWith=_curry3(function zipWith(fn,a,b){var rv=[],idx=0,len=Math.min(a.length,b.length);while(idx<len){rv[idx]=fn(a[idx],b[idx]);idx+=1}return rv});var F=always(false);var T=always(true);var _checkForMethod=function _checkForMethod(methodname,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];return _isArray(obj)||typeof obj[methodname]!=="function"?fn.apply(this,arguments):obj[methodname].apply(obj,_slice(arguments,0,length-1))}};var _clone=function _clone(value,refFrom,refTo){var copy=function copy(copiedValue){var len=refFrom.length;var idx=0;while(idx<len){if(value===refFrom[idx]){return refTo[idx]}idx+=1}refFrom[idx+1]=value;refTo[idx+1]=copiedValue;for(var key in value){copiedValue[key]=_clone(value[key],refFrom,refTo)}return copiedValue};switch(type(value)){case"Object":return copy({});case"Array":return copy([]);case"Date":return new Date(value);case"RegExp":return _cloneRegExp(value);default:return value}};var _createPartialApplicator=function _createPartialApplicator(concat){return function(fn){var args=_slice(arguments,1);return _arity(Math.max(0,fn.length-args.length),function(){return fn.apply(this,concat(args,arguments))})}};var _dispatchable=function _dispatchable(methodname,xf,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];if(!_isArray(obj)){var args=_slice(arguments,0,length-1);if(typeof obj[methodname]==="function"){return obj[methodname].apply(obj,args)}if(_isTransformer(obj)){var transducer=xf.apply(null,args);return transducer(obj)}}return fn.apply(this,arguments)}};var _equals=function _equals(a,b,stackA,stackB){var typeA=type(a);if(typeA!==type(b)){return false}if(typeA==="Boolean"||typeA==="Number"||typeA==="String"){return typeof a==="object"?typeof b==="object"&&identical(a.valueOf(),b.valueOf()):identical(a,b)}if(identical(a,b)){return true}if(typeA==="RegExp"){return a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode}if(Object(a)===a){if(typeA==="Date"&&a.getTime()!==b.getTime()){return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}stackA[stackA.length]=a;stackB[stackB.length]=b;idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!_has(key,b)||!_equals(b[key],a[key],stackA,stackB)){return false}idx-=1}stackA.pop();stackB.pop();return true}return false};var _hasMethod=function _hasMethod(methodName,obj){return obj!=null&&!_isArray(obj)&&typeof obj[methodName]==="function"};var _makeFlat=function _makeFlat(recursive){return function flatt(list){var value,result=[],idx=0,j,ilen=list.length,jlen;while(idx<ilen){if(isArrayLike(list[idx])){value=recursive?flatt(list[idx]):list[idx];j=0;jlen=value.length;while(j<jlen){result[result.length]=value[j];j+=1}}else{result[result.length]=list[idx]}idx+=1}return result}};var _reduce=function(){function _arrayReduce(xf,acc,list){var idx=0,len=list.length;while(idx<len){acc=xf["@@transducer/step"](acc,list[idx]);if(acc&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}idx+=1}return xf["@@transducer/result"](acc)}function _iterableReduce(xf,acc,iter){var step=iter.next();while(!step.done){acc=xf["@@transducer/step"](acc,step.value);if(acc&&acc["@@transducer/reduced"]){acc=acc["@@transducer/value"];break}step=iter.next()}return xf["@@transducer/result"](acc)}function _methodReduce(xf,acc,obj){return xf["@@transducer/result"](obj.reduce(bind(xf["@@transducer/step"],xf),acc))}var symIterator=typeof Symbol!=="undefined"?Symbol.iterator:"@@iterator";return function _reduce(fn,acc,list){if(typeof fn==="function"){fn=_xwrap(fn)}if(isArrayLike(list)){return _arrayReduce(fn,acc,list)}if(typeof list.reduce==="function"){ | |
return _methodReduce(fn,acc,list)}if(list[symIterator]!=null){return _iterableReduce(fn,acc,list[symIterator]())}if(typeof list.next==="function"){return _iterableReduce(fn,acc,list)}throw new TypeError("reduce: list must be array or iterable")}}();var _stepCat=function(){var _stepCatArray={"@@transducer/init":Array,"@@transducer/step":function(xs,x){return _concat(xs,[x])},"@@transducer/result":_identity};var _stepCatString={"@@transducer/init":String,"@@transducer/step":function(a,b){return a+b},"@@transducer/result":_identity};var _stepCatObject={"@@transducer/init":Object,"@@transducer/step":function(result,input){return merge(result,isArrayLike(input)?createMapEntry(input[0],input[1]):input)},"@@transducer/result":_identity};return function _stepCat(obj){if(_isTransformer(obj)){return obj}if(isArrayLike(obj)){return _stepCatArray}if(typeof obj==="string"){return _stepCatString}if(typeof obj==="object"){return _stepCatObject}throw new Error("Cannot create transformer for "+obj)}}();var _xall=function(){function XAll(f,xf){this.xf=xf;this.f=f;this.all=true}XAll.prototype["@@transducer/init"]=_xfBase.init;XAll.prototype["@@transducer/result"]=function(result){if(this.all){result=this.xf["@@transducer/step"](result,true)}return this.xf["@@transducer/result"](result)};XAll.prototype["@@transducer/step"]=function(result,input){if(!this.f(input)){this.all=false;result=_reduced(this.xf["@@transducer/step"](result,false))}return result};return _curry2(function _xall(f,xf){return new XAll(f,xf)})}();var _xany=function(){function XAny(f,xf){this.xf=xf;this.f=f;this.any=false}XAny.prototype["@@transducer/init"]=_xfBase.init;XAny.prototype["@@transducer/result"]=function(result){if(!this.any){result=this.xf["@@transducer/step"](result,false)}return this.xf["@@transducer/result"](result)};XAny.prototype["@@transducer/step"]=function(result,input){if(this.f(input)){this.any=true;result=_reduced(this.xf["@@transducer/step"](result,true))}return result};return _curry2(function _xany(f,xf){return new XAny(f,xf)})}();var _xdrop=function(){function XDrop(n,xf){this.xf=xf;this.n=n}XDrop.prototype["@@transducer/init"]=_xfBase.init;XDrop.prototype["@@transducer/result"]=_xfBase.result;XDrop.prototype["@@transducer/step"]=function(result,input){if(this.n>0){this.n-=1;return result}return this.xf["@@transducer/step"](result,input)};return _curry2(function _xdrop(n,xf){return new XDrop(n,xf)})}();var _xdropWhile=function(){function XDropWhile(f,xf){this.xf=xf;this.f=f}XDropWhile.prototype["@@transducer/init"]=_xfBase.init;XDropWhile.prototype["@@transducer/result"]=_xfBase.result;XDropWhile.prototype["@@transducer/step"]=function(result,input){if(this.f){if(this.f(input)){return result}this.f=null}return this.xf["@@transducer/step"](result,input)};return _curry2(function _xdropWhile(f,xf){return new XDropWhile(f,xf)})}();var _xgroupBy=function(){function XGroupBy(f,xf){this.xf=xf;this.f=f;this.inputs={}}XGroupBy.prototype["@@transducer/init"]=_xfBase.init;XGroupBy.prototype["@@transducer/result"]=function(result){var key;for(key in this.inputs){if(_has(key,this.inputs)){result=this.xf["@@transducer/step"](result,this.inputs[key]);if(result["@@transducer/reduced"]){result=result["@@transducer/value"];break}}}return this.xf["@@transducer/result"](result)};XGroupBy.prototype["@@transducer/step"]=function(result,input){var key=this.f(input);this.inputs[key]=this.inputs[key]||[key,[]];this.inputs[key][1]=append(input,this.inputs[key][1]);return result};return _curry2(function _xgroupBy(f,xf){return new XGroupBy(f,xf)})}();var addIndex=_curry1(function addIndex(fn){return curryN(fn.length,function(){var idx=0;var origFn=arguments[0];var list=arguments[arguments.length-1];var args=_slice(arguments);args[0]=function(){var result=origFn.apply(this,_concat(arguments,[idx,list]));idx+=1;return result};return fn.apply(this,args)})});var all=_curry2(_dispatchable("all",_xall,function all(fn,list){var idx=0;while(idx<list.length){if(!fn(list[idx])){return false}idx+=1}return true}));var and=_curry2(function and(a,b){return _hasMethod("and",a)?a.and(b):a&&b});var any=_curry2(_dispatchable("any",_xany,function any(fn,list){var idx=0;while(idx<list.length){if(fn(list[idx])){return true}idx+=1}return false}));var binary=_curry1(function binary(fn){return nAry(2,fn)});var clone=_curry1(function clone(value){return _clone(value,[],[])});var concat=_curry2(function concat(set1,set2){if(_isArray(set2)){return _concat(set1,set2)}else if(_hasMethod("concat",set1)){return set1.concat(set2)}else{throw new TypeError("can't concat "+typeof set1)}});var curry=_curry1(function curry(fn){return curryN(fn.length,fn)});var dropWhile=_curry2(_dispatchable("dropWhile",_xdropWhile,function dropWhile(pred,list){var idx=0,len=list.length;while(idx<len&&pred(list[idx])){idx+=1}return _slice(list,idx)}));var equals=_curry2(function equals(a,b){return _hasMethod("equals",a)?a.equals(b):_hasMethod("equals",b)?b.equals(a):_equals(a,b,[],[])});var filter=_curry2(_dispatchable("filter",_xfilter,_filter));var find=_curry2(_dispatchable("find",_xfind,function find(fn,list){var idx=0;var len=list.length;while(idx<len){if(fn(list[idx])){return list[idx]}idx+=1}}));var findIndex=_curry2(_dispatchable("findIndex",_xfindIndex,function findIndex(fn,list){var idx=0;var len=list.length;while(idx<len){if(fn(list[idx])){return idx}idx+=1}return-1}));var findLast=_curry2(_dispatchable("findLast",_xfindLast,function findLast(fn,list){var idx=list.length-1;while(idx>=0){if(fn(list[idx])){return list[idx]}idx-=1}}));var findLastIndex=_curry2(_dispatchable("findLastIndex",_xfindLastIndex,function findLastIndex(fn,list){var idx=list.length-1;while(idx>=0){if(fn(list[idx])){return idx}idx-=1}return-1}));var flatten=_curry1(_makeFlat(true));var flip=_curry1(function flip(fn){return curry(function(a,b){var args=_slice(arguments);args[0]=b;args[1]=a;return fn.apply(this,args)})});var forEach=_curry2(_checkForMethod("forEach",function forEach(fn,list){var len=list.length;var idx=0;while(idx<len){fn(list[idx]);idx+=1}return list}));var functions=_curry1(_functionsWith(keys));var functionsIn=_curry1(_functionsWith(keysIn));var groupBy=_curry2(_dispatchable("groupBy",_xgroupBy,function groupBy(fn,list){return _reduce(function(acc,elt){var key=fn(elt);acc[key]=append(elt,acc[key]||(acc[key]=[]));return acc},{},list)}));var head=nth(0);var intersectionWith=_curry3(function intersectionWith(pred,list1,list2){var results=[],idx=0;while(idx<list1.length){if(_containsWith(pred,list1[idx],list2)){results[results.length]=list1[idx]}idx+=1}return uniqWith(pred,results)});var intersperse=_curry2(_checkForMethod("intersperse",function intersperse(separator,list){var out=[];var idx=0;var length=list.length;while(idx<length){if(idx===length-1){out.push(list[idx])}else{out.push(list[idx],separator)}idx+=1}return out}));var into=_curry3(function into(acc,xf,list){return _isTransformer(acc)?_reduce(xf(acc),acc["@@transducer/init"](),list):_reduce(xf(_stepCat(acc)),acc,list)});var invert=_curry1(function invert(obj){var props=keys(obj);var len=props.length;var idx=0;var out={};while(idx<len){var key=props[idx];var val=obj[key];var list=_has(val,out)?out[val]:out[val]=[];list[list.length]=key;idx+=1}return out});var invertObj=_curry1(function invertObj(obj){var props=keys(obj);var len=props.length;var idx=0;var out={};while(idx<len){var key=props[idx];out[obj[key]]=key;idx+=1}return out});var last=nth(-1);var lastIndexOf=_curry2(function lastIndexOf(target,xs){if(_hasMethod("lastIndexOf",xs)){return xs.lastIndexOf(target)}else{var idx=xs.length-1;while(idx>=0){if(equals(xs[idx],target)){return idx}idx-=1}return-1}});var map=_curry2(_dispatchable("map",_xmap,_map));var mapObj=_curry2(function mapObj(fn,obj){return _reduce(function(acc,key){acc[key]=fn(obj[key]);return acc},{},keys(obj))});var mapObjIndexed=_curry2(function mapObjIndexed(fn,obj){return _reduce(function(acc,key){acc[key]=fn(obj[key],key,obj);return acc},{},keys(obj))});var none=_curry2(_complement(_dispatchable("any",_xany,any)));var or=_curry2(function or(a,b){return _hasMethod("or",a)?a.or(b):a||b});var partial=curry(_createPartialApplicator(_concat));var partialRight=curry(_createPartialApplicator(flip(_concat)));var partition=_curry2(function partition(pred,list){return _reduce(function(acc,elt){var xs=acc[pred(elt)?0:1];xs[xs.length]=elt;return acc},[[],[]],list)});var pathEq=_curry3(function pathEq(_path,val,obj){return equals(path(_path,obj),val)});var pluck=_curry2(function pluck(p,list){return map(prop(p),list)});var propEq=_curry3(function propEq(name,val,obj){return propSatisfies(equals(val),name,obj)});var propIs=_curry3(function propIs(type,name,obj){return propSatisfies(is(type),name,obj)});var reduce=_curry3(_reduce);var reject=_curry2(function reject(fn,list){return filter(_complement(fn),list)});var repeat=_curry2(function repeat(value,n){return times(always(value),n)});var slice=_curry3(_checkForMethod("slice",function slice(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}));var splitEvery=_curry2(function splitEvery(n,list){if(n<=0){throw new Error("First argument to splitEvery must be a positive integer")}var result=[];var idx=0;while(idx<list.length){result.push(slice(idx,idx+=n,list))}return result});var sum=reduce(add,0);var tail=_checkForMethod("tail",slice(1,Infinity));var take=_curry2(_dispatchable("take",_xtake,function take(n,xs){return slice(0,n<0?Infinity:n,xs)}));var takeWhile=_curry2(_dispatchable("takeWhile",_xtakeWhile,function takeWhile(fn,list){var idx=0,len=list.length;while(idx<len&&fn(list[idx])){idx+=1}return _slice(list,0,idx)}));var transduce=curryN(4,function transduce(xf,fn,acc,list){return _reduce(xf(typeof fn==="function"?_xwrap(fn):fn),acc,list)});var unionWith=_curry3(function unionWith(pred,list1,list2){return uniqWith(pred,_concat(list1,list2))});var uniq=uniqWith(equals);var unnest=_curry1(_makeFlat(false));var useWith=curry(function useWith(fn){var transformers=_slice(arguments,1);var tlen=transformers.length;return curry(_arity(tlen,function(){var args=[],idx=0;while(idx<tlen){args[idx]=transformers[idx](arguments[idx]);idx+=1}return fn.apply(this,args.concat(_slice(arguments,tlen)))}))});var whereEq=_curry2(function whereEq(spec,testObj){return where(mapObj(equals,spec),testObj)});var _flatCat=function(){var preservingReduced=function(xf){return{"@@transducer/init":_xfBase.init,"@@transducer/result":function(result){return xf["@@transducer/result"](result)},"@@transducer/step":function(result,input){var ret=xf["@@transducer/step"](result,input);return ret["@@transducer/reduced"]?_forceReduced(ret):ret}}};return function _xcat(xf){var rxf=preservingReduced(xf);return{"@@transducer/init":_xfBase.init,"@@transducer/result":function(result){return rxf["@@transducer/result"](result)},"@@transducer/step":function(result,input){return!isArrayLike(input)?_reduce(rxf,result,[input]):_reduce(rxf,result,input)}}}}();var _indexOf=function _indexOf(list,item,from){var idx=from;while(idx<list.length){if(equals(list[idx],item)){return idx}idx+=1}return-1};var _predicateWrap=function _predicateWrap(predPicker){return function(preds){var predIterator=function(){var args=arguments;return predPicker(function(predicate){return predicate.apply(null,args)},preds)};return arguments.length>1?predIterator.apply(null,_slice(arguments,1)):_arity(Math.max.apply(Math,pluck("length",preds)),predIterator)}};var _xchain=_curry2(function _xchain(f,xf){return map(f,_flatCat(xf))});var allPass=_curry1(_predicateWrap(all));var anyPass=_curry1(_predicateWrap(any));var ap=_curry2(function ap(fns,vs){return _hasMethod("ap",fns)?fns.ap(vs):_reduce(function(acc,fn){return _concat(acc,map(fn,vs))},[],fns)});var call=curry(function call(fn){return fn.apply(this,_slice(arguments,1))});var chain=_curry2(_dispatchable("chain",_xchain,function chain(fn,list){return unnest(map(fn,list))}));var commuteMap=_curry3(function commuteMap(fn,of,list){function consF(acc,ftor){return ap(map(append,fn(ftor)),acc)}return _reduce(consF,of([]),list)});var constructN=_curry2(function constructN(n,Fn){if(n>10){throw new Error("Constructor with greater than ten arguments")}if(n===0){return function(){return new Fn}}return curry(nAry(n,function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9){switch(arguments.length){case 1:return new Fn($0);case 2:return new Fn($0,$1);case 3:return new Fn($0,$1,$2);case 4:return new Fn($0,$1,$2,$3);case 5:return new Fn($0,$1,$2,$3,$4);case 6:return new Fn($0,$1,$2,$3,$4,$5);case 7:return new Fn($0,$1,$2,$3,$4,$5,$6);case 8:return new Fn($0,$1,$2,$3,$4,$5,$6,$7);case 9:return new Fn($0,$1,$2,$3,$4,$5,$6,$7,$8);case 10:return new Fn($0,$1,$2,$3,$4,$5,$6,$7,$8,$9)}}))});var converge=curryN(3,function converge(after){var fns=_slice(arguments,1);return curryN(Math.max.apply(Math,pluck("length",fns)),function(){var args=arguments;var context=this;return after.apply(context,_map(function(fn){return fn.apply(context,args)},fns))})});var drop=_curry2(_dispatchable("drop",_xdrop,function drop(n,xs){return slice(Math.max(0,n),Infinity,xs)}));var dropLast=_curry2(function dropLast(n,xs){return take(n<xs.length?xs.length-n:0,xs)});var dropRepeatsWith=_curry2(_dispatchable("dropRepeatsWith",_xdropRepeatsWith,function dropRepeatsWith(pred,list){var result=[];var idx=1;var len=list.length;if(len!==0){result[0]=list[0];while(idx<len){if(!pred(last(result),list[idx])){result[result.length]=list[idx]}idx+=1}}return result}));var eqProps=_curry3(function eqProps(prop,obj1,obj2){return equals(obj1[prop],obj2[prop])});var indexOf=_curry2(function indexOf(target,xs){return _hasMethod("indexOf",xs)?xs.indexOf(target):_indexOf(xs,target,0)});var init=slice(0,-1);var isSet=_curry1(function isSet(list){var len=list.length;var idx=0;while(idx<len){if(_indexOf(list,list[idx],idx+1)>=0){return false}idx+=1}return true});var lens=_curry2(function lens(getter,setter){return function(f){return function(s){return map(function(v){return setter(v,s)},f(getter(s)))}}});var lensIndex=_curry1(function lensIndex(n){return lens(nth(n),update(n))});var lensProp=_curry1(function lensProp(k){return lens(prop(k),assoc(k))});var liftN=_curry2(function liftN(arity,fn){var lifted=curryN(arity,fn);return curryN(arity,function(){return _reduce(ap,map(lifted,arguments[0]),_slice(arguments,1))})});var mean=_curry1(function mean(list){return sum(list)/list.length});var median=_curry1(function median(list){var len=list.length;if(len===0){return NaN}var width=2-len%2;var idx=(len-width)/2;return mean(_slice(list).sort(function(a,b){return a<b?-1:a>b?1:0}).slice(idx,idx+width))});var mergeAll=_curry1(function mergeAll(list){return reduce(merge,{},list)});var pipe=function pipe(){if(arguments.length===0){throw new Error("pipe requires at least one argument")}return curryN(arguments[0].length,reduce(_pipe,arguments[0],tail(arguments)))};var pipeP=function pipeP(){if(arguments.length===0){throw new Error("pipeP requires at least one argument")}return curryN(arguments[0].length,reduce(_pipeP,arguments[0],tail(arguments)))};var product=reduce(multiply,1);var project=useWith(_map,pickAll,identity);var takeLast=_curry2(function takeLast(n,xs){return drop(n>=0?xs.length-n:0,xs)});var _contains=function _contains(a,list){return _indexOf(list,a,0)>=0};var _toString=function _toString(x,seen){var recur=function recur(y){var xs=seen.concat([x]);return _contains(y,xs)?"<Circular>":_toString(y,xs)};var mapPairs=function(obj,keys){return _map(function(k){return _quote(k)+": "+recur(obj[k])},keys.slice().sort())};switch(Object.prototype.toString.call(x)){case"[object Arguments]":return"(function() { return arguments; }("+_map(recur,x).join(", ")+"))";case"[object Array]":return"["+_map(recur,x).concat(mapPairs(x,reject(test(/^\d+$/),keys(x)))).join(", ")+"]";case"[object Boolean]":return typeof x==="object"?"new Boolean("+recur(x.valueOf())+")":x.toString();case"[object Date]":return"new Date("+_quote(_toISOString(x))+")";case"[object Null]":return"null";case"[object Number]":return typeof x==="object"?"new Number("+recur(x.valueOf())+")":1/x===-Infinity?"-0":x.toString(10);case"[object String]":return typeof x==="object"?"new String("+recur(x.valueOf())+")":_quote(x);case"[object Undefined]":return"undefined";default:return typeof x.constructor==="function"&&x.constructor.name!=="Object"&&typeof x.toString==="function"&&x.toString()!=="[object Object]"?x.toString():"{"+mapPairs(x,keys(x)).join(", ")+"}"}};var commute=commuteMap(identity);var compose=function compose(){if(arguments.length===0){throw new Error("compose requires at least one argument")}return pipe.apply(this,reverse(arguments))};var composeK=function composeK(){return arguments.length===0?identity:compose.apply(this,map(chain,arguments))};var composeP=function composeP(){if(arguments.length===0){throw new Error("composeP requires at least one argument")}return pipeP.apply(this,reverse(arguments))};var construct=_curry1(function construct(Fn){return constructN(Fn.length,Fn)});var contains=_curry2(_contains);var difference=_curry2(function difference(first,second){var out=[];var idx=0;var firstLen=first.length;while(idx<firstLen){if(!_contains(first[idx],second)&&!_contains(first[idx],out)){out[out.length]=first[idx]}idx+=1}return out});var dropRepeats=_curry1(_dispatchable("dropRepeats",_xdropRepeatsWith(equals),dropRepeatsWith(equals)));var intersection=_curry2(function intersection(list1,list2){return uniq(_filter(flip(_contains)(list1),list2))});var lift=_curry1(function lift(fn){return liftN(fn.length,fn)});var omit=_curry2(function omit(names,obj){var result={};for(var prop in obj){if(!_contains(prop,names)){result[prop]=obj[prop]}}return result});var pipeK=function pipeK(){return composeK.apply(this,reverse(arguments))};var toString=_curry1(function toString(val){return _toString(val,[])});var union=_curry2(compose(uniq,_concat));var uniqBy=_curry2(function uniqBy(fn,list){var idx=0,applied=[],result=[],appliedItem,item;while(idx<list.length){item=list[idx];appliedItem=fn(item);if(!_contains(appliedItem,applied)){result.push(item);applied.push(appliedItem)}idx+=1}return result});var invoker=_curry2(function invoker(arity,method){return curryN(arity+1,function(){var target=arguments[arity];if(target!=null&&is(Function,target[method])){return target[method].apply(target,_slice(arguments,0,arity))}throw new TypeError(toString(target)+' does not have a method named "'+method+'"')})});var join=invoker(1,"join");var memoize=_curry1(function memoize(fn){var cache={};return function(){var key=toString(arguments);if(!_has(key,cache)){cache[key]=fn.apply(this,arguments)}return cache[key]}});var split=invoker(1,"split");var toLower=invoker(0,"toLowerCase");var toUpper=invoker(0,"toUpperCase");var R={F:F,T:T,__:__,add:add,addIndex:addIndex,adjust:adjust,all:all,allPass:allPass,always:always,and:and,any:any,anyPass:anyPass,ap:ap,aperture:aperture,append:append,apply:apply,assoc:assoc,assocPath:assocPath,binary:binary,bind:bind,both:both,call:call,chain:chain,clone:clone,commute:commute,commuteMap:commuteMap,comparator:comparator,complement:complement,compose:compose,composeK:composeK,composeP:composeP,concat:concat,cond:cond,construct:construct,constructN:constructN,contains:contains,containsWith:containsWith,converge:converge,countBy:countBy,createMapEntry:createMapEntry,curry:curry,curryN:curryN,dec:dec,defaultTo:defaultTo,difference:difference,differenceWith:differenceWith,dissoc:dissoc,dissocPath:dissocPath,divide:divide,drop:drop,dropLast:dropLast,dropLastWhile:dropLastWhile,dropRepeats:dropRepeats,dropRepeatsWith:dropRepeatsWith,dropWhile:dropWhile,either:either,empty:empty,eqProps:eqProps,equals:equals,evolve:evolve,filter:filter,find:find,findIndex:findIndex,findLast:findLast,findLastIndex:findLastIndex,flatten:flatten,flip:flip,forEach:forEach,fromPairs:fromPairs,functions:functions,functionsIn:functionsIn,groupBy:groupBy,gt:gt,gte:gte,has:has,hasIn:hasIn,head:head,identical:identical,identity:identity,ifElse:ifElse,inc:inc,indexOf:indexOf,init:init,insert:insert,insertAll:insertAll,intersection:intersection,intersectionWith:intersectionWith,intersperse:intersperse,into:into,invert:invert,invertObj:invertObj,invoker:invoker,is:is,isArrayLike:isArrayLike,isEmpty:isEmpty,isNil:isNil,isSet:isSet,join:join,keys:keys,keysIn:keysIn,last:last,lastIndexOf:lastIndexOf,length:length,lens:lens,lensIndex:lensIndex,lensProp:lensProp,lift:lift,liftN:liftN,lt:lt,lte:lte,map:map,mapAccum:mapAccum,mapAccumRight:mapAccumRight,mapObj:mapObj,mapObjIndexed:mapObjIndexed,match:match,mathMod:mathMod,max:max,maxBy:maxBy,mean:mean,median:median,memoize:memoize,merge:merge,mergeAll:mergeAll,min:min,minBy:minBy,modulo:modulo,multiply:multiply,nAry:nAry,negate:negate,none:none,not:not,nth:nth,nthArg:nthArg,nthChar:nthChar,nthCharCode:nthCharCode,of:of,omit:omit,once:once,or:or,over:over,partial:partial,partialRight:partialRight,partition:partition,path:path,pathEq:pathEq,pick:pick,pickAll:pickAll,pickBy:pickBy,pipe:pipe,pipeK:pipeK,pipeP:pipeP,pluck:pluck,prepend:prepend,product:product,project:project,prop:prop,propEq:propEq,propIs:propIs,propOr:propOr,propSatisfies:propSatisfies,props:props,range:range,reduce:reduce,reduceRight:reduceRight,reduced:reduced,reject:reject,remove:remove,repeat:repeat,replace:replace,reverse:reverse,scan:scan,set:set,slice:slice,sort:sort,sortBy:sortBy,split:split,splitEvery:splitEvery,subtract:subtract,sum:sum,tail:tail,take:take,takeLast:takeLast,takeLastWhile:takeLastWhile,takeWhile:takeWhile,tap:tap,test:test,times:times,toLower:toLower,toPairs:toPairs,toPairsIn:toPairsIn,toString:toString,toUpper:toUpper,transduce:transduce,trim:trim,type:type,unapply:unapply,unary:unary,uncurryN:uncurryN,unfold:unfold,union:union,unionWith:unionWith,uniq:uniq,uniqBy:uniqBy,uniqWith:uniqWith,unnest:unnest,update:update,useWith:useWith,values:values,valuesIn:valuesIn,view:view,where:where,whereEq:whereEq,wrap:wrap,xprod:xprod,zip:zip,zipObj:zipObj,zipWith:zipWith};if(typeof exports==="object"){module.exports=R}else if(typeof define==="function"&&define.amd){define(function(){return R})}else{this.R=R}}).call(this)},{}],sanctuary:[function(require,module,exports){(function(f){"use strict";if(typeof module!=="undefined"){module.exports=f(require("ramda"))}else if(typeof define==="function"&&define.amd!=null){define(["ramda"],f)}else{self.sanctuary=f(self.R)}})(function(R){"use strict";var S={};var MAX_SAFE_INTEGER=Math.pow(2,53)-1;var MIN_SAFE_INTEGER=-MAX_SAFE_INTEGER;var _=R.__;var placeholder=function(x){return x!=null&&x["@@functional/placeholder"]===true};var formatters={"{}":R.identity,"{card}":R.ifElse(R.lte(_,10),R.nth(_,["zero","one","two","three","four","five","six","seven","eight","nine","ten"]),String),"{ord}":R.nth(_,["first","second","third"]),"{quote}":function(s){return"‘"+s+"’"},"{repr}":R.toString,"{type}":R.pipe(String,R.match(/^function (\w*)/),R.nth(1))};var format=R.curry(function(template,values){var idx=-1;return template.replace(/[{].*?[}]/g,function(match){return formatters[match](values[idx+=1])})});var Accessible=function Accessible(){};var Integer=function Integer(){};var List=function List(){};var TypeRep=function TypeRep(){};var a={name:"a"};var b={name:"b"};var c={name:"c"};var _is=function(type,x){if(x==null)return false;switch(type){case Accessible:return true;case Integer:return _is(Number,x)&&Math.floor(x)===Number(x)&&x>=MIN_SAFE_INTEGER&&x<=MAX_SAFE_INTEGER;case List:return!_is(Function,x)&&_is(Number,x.length)&&x.length>=0;case TypeRep:return _is(Function,x);default:return Object(x)instanceof type}};var arity=function(n,f){switch(n){case 0:return function(){return f.apply(this,arguments)};case 1:return function(a){return f.apply(this,arguments)};case 2:return function(a,b){return f.apply(this,arguments)};case 3:return function(a,b,c){return f.apply(this,arguments)}}};var curry=function(name,types,_values,f){return arity(R.filter(placeholder,_values).length,function(){var values=_values;var paramIndexes=[];for(var idx=0;idx<values.length;idx+=1){if(placeholder(values[idx])){paramIndexes.push(idx)}}if(arguments.length>paramIndexes.length){throw new TypeError(format("{quote} requires {card} {}; received {card} arguments",[name,values.length,values.length===1?"argument":"arguments",values.length+arguments.length-paramIndexes.length]))}for(var argIndex=0;argIndex<arguments.length;argIndex+=1){var arg=arguments[argIndex];var paramIndex=paramIndexes[argIndex];var type=types[paramIndex];if(placeholder(arg)){continue}else if(type===a||type===b||type===c){for(idx=0;idx<values.length;idx+=1){var val=values[idx];if(types[idx]===type&&!placeholder(val)&&!(R.type(val)===R.type(arg)&&val.type===arg.type)){throw new TypeError(format("{quote} requires its {ord} and {ord} arguments "+"to be of the same type; {repr} and {repr} are not",paramIndex>idx?[name,idx,paramIndex,val,arg]:[name,paramIndex,idx,arg,val]))}}}else if(type===Accessible){if(arg==null){throw new TypeError(format("The {ord} argument to {quote} cannot be null or undefined",[paramIndex,name]))}}else if(!_is(type,arg)){throw new TypeError(format("{quote} requires a value of type {type} as its {ord} argument; "+"received {repr}",[name,type,paramIndex,arg]))}values=R.update(paramIndex,arg,values)}var args=R.reject(placeholder,values);return args.length===values.length?f.apply(this,args):curry(name,types,values,f)})};var def=function(name,types,f){return curry(name,types,R.map(function(){return _},types),f)};var compose2=function(f,g){return function(x){return f(g(x))}};var extend=function(Child,Parent){function Ctor(){this.constructor=Child}Ctor.prototype=Parent.prototype;Child.prototype=new Ctor;Child.super_=Parent.prototype};var filter=function(pred,m){return m.chain(function(x){return pred(x)?m.of(x):m.empty()})};var assertMethodExists=function(method,x){if(x==null||typeof x[method]!=="function"){throw new TypeError(format("{repr} does not have {} {quote} method",[x,R.test(/^[aeiou]/i,method)?"an":"a",method]))}};var invoke=R.curry(function(method,args,x){assertMethodExists(method,x);return x[method].apply(x,args)});var negativeZero=R.either(R.equals(-0),R.equals(new Number(-0)));var self=function(){return this};var toString=function(name){return def(name+"#toString",[],function(){return name+"("+R.toString(this.value)+")"})};var is=S.is=def("is",[TypeRep,a],_is);var I=S.I=def("I",[a],function(x){return x});var K=S.K=def("K",[a,b],function(x,y){return x});var compose=S.compose=def("compose",[Function,Function,a],function(f,g,x){return f(g(x))});S.pipe=def("pipe",[List,a],function(fs,x){return R.reduceRight(compose2,I,fs)(x)});S.meld=def("meld",[List],function(fs){return R.curryN(1+R.sum(R.map(R.length,fs))-fs.length,function(){var args=Array.prototype.slice.call(arguments);for(var idx=0;idx<fs.length;idx+=1){args.unshift(fs[idx].apply(this,args.splice(0,fs[idx].length)))}return args[0]})});var Maybe=S.Maybe=function Maybe(){throw new Error("Cannot instantiate Maybe")};Maybe.empty=def("Maybe.empty",[],function(){return Nothing()});Maybe.of=def("Maybe.of",[a],function(x){return Just(x)});Maybe.prototype.empty=def("Maybe#empty",[],Maybe.empty);Maybe.prototype.filter=def("Maybe#filter",[Function],function(pred){return filter(pred,this)});Maybe.prototype.of=def("Maybe#of",[a],Maybe.of);Maybe.prototype.type=Maybe;var Nothing=S.Nothing=function Nothing(){if(!(this instanceof Nothing)){return new Nothing}};extend(Nothing,Maybe);Nothing.prototype.ap=def("Nothing#ap",[Maybe],self);Nothing.prototype.chain=def("Nothing#chain",[Function],self);Nothing.prototype.concat=def("Nothing#concat",[Maybe],function(maybe){if(maybe instanceof Just){assertMethodExists("concat",maybe.value)}return maybe});Nothing.prototype.equals=def("Nothing#equals",[a],is(Nothing));Nothing.prototype.extend=def("Nothing#extend",[Function],self);Nothing.prototype.map=def("Nothing#map",[Function],self);Nothing.prototype.reduce=def("Nothing#reduce",[Function,a],function(f,z){return z});Nothing.prototype.toBoolean=def("Nothing#toBoolean",[],R.always(false));Nothing.prototype.toString=def("Nothing#toString",[],R.always("Nothing()"));var Just=S.Just=function Just(value){if(!(this instanceof Just)){return new Just(value)}else{this.value=value}};extend(Just,Maybe);Just.prototype.ap=def("Just#ap",[Maybe],function(maybe){return maybe.map(this.value)});Just.prototype.chain=def("Just#chain",[Function],function(f){return f(this.value)});Just.prototype.concat=def("Just#concat",[Maybe],function(maybe){assertMethodExists("concat",this.value);if(maybe instanceof Just){assertMethodExists("concat",maybe.value);return Just(this.value.concat(maybe.value))}else{return this}});Just.prototype.equals=def("Just#equals",[a],function(x){return x instanceof Just&&R.eqProps("value",x,this)});Just.prototype.extend=def("Just#extend",[Function],function(f){return Just(f(this))});Just.prototype.map=def("Just#map",[Function],function(f){return Just(f(this.value))});Just.prototype.reduce=def("Just#reduce",[Function,a],function(f,z){return f(z,this.value)});Just.prototype.toBoolean=def("Just#toBoolean",[],R.always(true));Just.prototype.toString=toString("Just");var fromMaybe=S.fromMaybe=def("fromMaybe",[a,Maybe],function(x,maybe){return maybe instanceof Just?maybe.value:x});var toMaybe=S.toMaybe=def("toMaybe",[a],R.ifElse(R.isNil,Nothing,Just));var maybe=S.maybe=def("maybe",[a,Function,Maybe],function(x,f,maybe){return fromMaybe(x,maybe.map(f))});var catMaybes=S.catMaybes=def("catMaybes",[List],R.chain(maybe([],R.of)));S.mapMaybe=def("mapMaybe",[Function,List],R.compose(catMaybes,R.map));var encase=S.encase=def("encase",[Function],function(f){return R.curryN(f.length,function(){try{return Just(f.apply(this,arguments))}catch(err){return Nothing()}})});var Either=S.Either=function Either(){throw new Error("Cannot instantiate Either")};Either.of=def("Either.of",[a],function(x){return Right(x)});Either.prototype.of=def("Either#of",[a],Either.of);Either.prototype.type=Either;var Left=S.Left=function Left(value){if(!(this instanceof Left)){return new Left(value)}this.value=value};extend(Left,Either);Left.prototype.ap=def("Left#ap",[Either],self);Left.prototype.chain=def("Left#chain",[Function],self);Left.prototype.concat=def("Left#concat",[Either],function(either){assertMethodExists("concat",this.value);assertMethodExists("concat",either.value);return is(Left,either)?Left(this.value.concat(either.value)):either});Left.prototype.equals=def("Left#equals",[a],function(x){return x instanceof Left&&R.eqProps("value",x,this)});Left.prototype.extend=def("Left#extend",[Function],self);Left.prototype.map=def("Left#map",[Function],self);Left.prototype.toBoolean=def("Left#toBoolean",[],R.always(false));Left.prototype.toString=toString("Left");var Right=S.Right=function Right(value){if(!(this instanceof Right)){return new Right(value)}this.value=value};extend(Right,Either);Right.prototype.ap=def("Right#ap",[Either],function(either){return either.map(this.value)});Right.prototype.chain=def("Right#chain",[Function],function(f){return f(this.value)});Right.prototype.concat=def("Right#concat",[Either],function(either){assertMethodExists("concat",this.value);assertMethodExists("concat",either.value);return is(Right,either)?Right(this.value.concat(either.value)):this});Right.prototype.equals=def("Right#equals",[a],function(x){return x instanceof Right&&R.eqProps("value",x,this)});Right.prototype.extend=def("Right#extend",[Function],function(f){return Right(f(this))});Right.prototype.map=def("Right#map",[Function],function(f){return Right(f(this.value))});Right.prototype.toBoolean=def("Right#toBoolean",[],R.always(true));Right.prototype.toString=toString("Right");S.either=def("either",[Function,Function,Either],function(l,r,either){return either instanceof Left?l(either.value):r(either.value)});S.encaseEither=def("encaseEither",[Function,Function],function(f,g){return R.curryN(g.length,function(){try{return Right(g.apply(this,arguments))}catch(err){return Left(f(err))}})});S.maybeToEither=def("maybeToEither",[a,Maybe],function(x,maybe){ | |
return maybe instanceof Nothing?Left(x):Right(maybe.value)});var toBoolean=R.cond([[is(Array),R.complement(R.isEmpty)],[is(Boolean),I],[R.T,invoke("toBoolean",[])]]);var empty=R.cond([[is(Array),function(){return[]}],[is(Boolean),K(false)],[R.T,invoke("empty",[])]]);S.and=def("and",[a,a],function(x,y){return toBoolean(x)?y:x});var or=S.or=def("or",[a,a],function(x,y){return toBoolean(x)?x:y});S.xor=def("xor",[a,a],function(x,y){var xBool=toBoolean(x);var yBool=toBoolean(y);var xEmpty=empty(x);return xBool!==yBool?or(x,y):xEmpty});var slice=S.slice=def("slice",[Integer,Integer,List],function(start,end,xs){var len=xs.length;var startIdx=negativeZero(start)?len:start<0?start+len:start;var endIdx=negativeZero(end)?len:end<0?end+len:end;return Math.abs(start)<=len&&Math.abs(end)<=len&&startIdx<=endIdx?Just(R.slice(startIdx,endIdx,xs)):Nothing()});var at=S.at=def("at",[Integer,List],function(n,xs){return R.map(R.head,slice(n,n===-1?-0:n+1,xs))});S.head=def("head",[List],at(0));S.last=def("last",[List],at(-1));S.tail=def("tail",[List],slice(1,-0));S.init=def("init",[List],slice(0,-1));S.take=def("take",[Integer,List],function(n,xs){return n<0||negativeZero(n)?Nothing():slice(0,n,xs)});S.takeLast=def("takeLast",[Integer,List],function(n,xs){return n<0||negativeZero(n)?Nothing():slice(-n,-0,xs)});S.drop=def("drop",[Integer,List],function(n,xs){return n<0||negativeZero(n)?Nothing():slice(n,-0,xs)});S.dropLast=def("dropLast",[Integer,List],function(n,xs){return n<0||negativeZero(n)?Nothing():slice(0,-n,xs)});S.find=def("find",[Function,List],function(pred,xs){for(var idx=0,len=xs.length;idx<len;idx+=1){if(pred(xs[idx])){return Just(xs[idx])}}return Nothing()});var sanctifyIndexOf=function(name){return def(name,[a,List],R.pipe(R[name],Just,R.filter(R.gte(_,0))))};S.indexOf=sanctifyIndexOf("indexOf");S.lastIndexOf=sanctifyIndexOf("lastIndexOf");S.pluck=def("pluck",[TypeRep,String,List],function(type,key,xs){return R.map(get(type,key),xs)});var get=S.get=def("get",[TypeRep,String,Accessible],function(type,key,obj){return filter(is(type),Just(obj[key]))});S.gets=def("gets",[TypeRep,List,Accessible],function(type,keys,obj){var f=function(m,k){return R.chain(get(Accessible,k),m)};return filter(is(type),R.reduce(f,Just(obj),keys))});S.parseDate=def("parseDate",[String],function(s){var d=new Date(s);return d.valueOf()===d.valueOf()?Just(d):Nothing()});var requiredNonCapturingGroup=function(xs){return"(?:"+xs.join("|")+")"};var optionalNonCapturingGroup=function(xs){return requiredNonCapturingGroup(xs)+"?"};var validFloatRepr=R.test(new RegExp("^"+"\\s*"+"[+-]?"+requiredNonCapturingGroup(["Infinity","NaN",requiredNonCapturingGroup(["[0-9]+","[0-9]+[.][0-9]+","[0-9]+[.]","[.][0-9]+"])+optionalNonCapturingGroup(["[Ee]"+"[+-]?"+"[0-9]+"])])+"\\s*"+"$"));S.parseFloat=def("parseFloat",[String],R.pipe(Just,R.filter(validFloatRepr),R.map(parseFloat)));S.parseInt=def("parseInt",[Integer,String],function(radix,s){if(radix<2||radix>36){throw new RangeError("Radix not in [2 .. 36]")}var charset=R.take(radix,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");return R.pipe(Just,R.filter(R.pipe(R.replace(/^[+-]/,""),radix===16?R.replace(/^0x/i,""):I,R.split(""),R.all(R.pipe(R.toUpper,R.indexOf(_,charset),R.gte(_,0))))),R.map(R.partialRight(parseInt,radix)),R.filter(is(Integer)))(s)});S.parseJson=def("parseJson",[String],encase(function(s){return JSON.parse(s)}));S.match=def("match",[RegExp,String],function(pattern,s){return R.map(R.map(toMaybe),toMaybe(s.match(pattern)))});S.words=def("words",[String],compose(R.reject(R.isEmpty),R.split(/\s+/)));S.unwords=def("unwords",[List],R.join(" "));S.lines=def("lines",[String],compose(R.match(/^(?=[\s\S]).*/gm),R.replace(/\r\n?/g,"\n")));S.unlines=def("unlines",[List],compose(R.join(""),R.map(R.concat(_,"\n"))));return S})},{ramda:1}]},{},[]);const R=require("ramda");const S=require("sanctuary");const getNavigationProp=function getNavigationProp(prop,key,value,flatNav){console.log("prop is",prop);console.log("key is",key);console.log("value is",value);return R.compose(S.fromMaybe(""),R.map(R.prop(prop)),S.get(Object,value))(flatNav)};const devdata={"pet-products":{itemId:"FP_14400017",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"FP Home > FP Pet Project > Shop All",id:"FP_CAT1810088",categoryClass:""},displayName:"FP Pet Project",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:["pet-collars","pet-leashes","pet-toys","pet-coats","pet-accessories","pet-beds"],categoryId:"FP_CAT1810088",nestLevel:3,parentItemId:"FP_4600050",parentSlug:"home-decor",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"pet-products"},"trapeze-slips":{itemId:"FP_4600087",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Intimates > Slips > Trapeze Slips",id:"FP_CAT360016",categoryClass:""},displayName:"Trapeze Slips",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT360016",nestLevel:3,parentItemId:"FP_4600060",parentSlug:"slips",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"trapeze-slips"},"bodycon-dresses":{itemId:"FP_6100076",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Clothes > Dresses > Bodycon",id:"FP_CAT1410005",categoryClass:""},displayName:"Bodycon Dresses",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1410005",nestLevel:2,parentItemId:"FP_10900006",parentSlug:"uk-dresses",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"bodycon-dresses"},hats:{itemId:"FP_4600013",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Accessories > Hats",id:"FP_CAT270069",categoryClass:""},displayName:"Hats",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:["hats-trending-now","straw-hats","felt-hats","novelty-hats","baseball-caps","beanies","berets"],categoryId:"FP_CAT270069",nestLevel:2,parentItemId:"FP_6100011",parentSlug:"accessories",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"hats"},"connect-footer":{itemId:"6f9f60e0-df08-412b-ea0a-c43ac4512ed1",category:{displayName:"",id:"",categoryClass:""},displayName:"Connect",links:[[Object],[Object],[Object]],targetUrlTarget:"_self",typeCode:"HEADING",browseDisplayPreferences:{},type:"Heading",childSlugs:[],categoryId:"",nestLevel:1,parentSlug:"footer-root",active:!0,navigationDisplayPreferences:{displayAsSale:!0,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"connect-footer"},"true-colors-lookbook-landing-page":{itemId:"FP_21400011",category:{displayName:"",id:"",categoryClass:""},displayName:"True Colors",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"GATEWAY",browseDisplayPreferences:{},type:"Gateway",childSlugs:["true-colors-lookbook"],categoryId:"",nestLevel:3,parentItemId:"FP_8800008",parentSlug:"trends",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!1,noFollow:!1},containerInfo:[],slug:"true-colors-lookbook-landing-page"},"fp-exclusives-shoes":{itemId:"FP_8800130",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Trends > Features > FP Exclusives > Shoes",id:"FP_CAT1040024",categoryClass:""},displayName:"FP Exclusives",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1040024",nestLevel:2,parentItemId:"FP_6400009",parentSlug:"shoes",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"fp-exclusives-shoes"},"bikini-panties":{itemId:"FP_15500087",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Intimates >> Undies >> Bikini",id:"FP_CAT1940109",categoryClass:""},displayName:"Bikini",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1940109",nestLevel:3,parentItemId:"FP_4600058",parentSlug:"undies",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"bikini-panties"},"gloss-moderne":{itemId:"FP_22400010",category:{allowPermanentMarkdownTiles:!0,allowTemporaryMarkdownTiles:!0,displayName:"beauty & wellness>featured brands>Gloss Moderne",id:"FP_CAT2800137",categoryClass:""},displayName:"Gloss Moderne",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT2800137",nestLevel:3,parentItemId:"FP_15700128",parentSlug:"featured-brands",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"gloss-moderne"},"strappy-bras":{itemId:"FP_13500024",category:{allowPermanentMarkdownTiles:!0,allowTemporaryMarkdownTiles:!0,displayName:"Intimates>Bras>Strappy",id:"FP_CAT1710172",categoryClass:""},displayName:"Strappy",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1710172",nestLevel:3,parentItemId:"FP_4600056",parentSlug:"bras",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"strappy-bras"},"pet-collars":{itemId:"FP_9100019",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"FP Home> FP Pet Project > Pet Collars",id:"FP_CAT1080007",categoryClass:""},displayName:"Pet Collars",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1080007",nestLevel:4,parentItemId:"FP_14400017",parentSlug:"pet-products",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"pet-collars"},"store-footer":{itemId:"d3c7df17-f915-d737-7ba8-c84f0677d11d",childSlugs:[],displayName:"Find Your Store",links:[[Object],[Object],[Object]],targetUrlTarget:"_self",typeCode:"EXTERNAL",browseDisplayPreferences:{},type:"External Navigation Item",categoryId:"",nestLevel:1,relativeFlag:!0,parentSlug:"footer-root",targetUrl:"/stores/",active:!0,navigationDisplayPreferences:{displayAsSale:!0,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},category:{displayName:"",id:"",categoryClass:""},containerInfo:[],slug:"store-footer"},"featured-brands-swimwear":{itemId:"FP_22300006",category:{displayName:"",id:"",categoryClass:""},displayName:"Featured Brands",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"GATEWAY",browseDisplayPreferences:{},type:"Gateway",childSlugs:["acacia","amuse","beach-riot","fella","mikoh","minimale-animale","solid-and-striped","tavik","mara-hoffman","she-made-me","gnash"],categoryId:"",nestLevel:2,parentItemId:"FP_6400061",parentSlug:"swimwear",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"featured-brands-swimwear"},"lip-balms-treatments":{itemId:"FP_15700046",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Beauty>>Cosmetics>>Lips>>Lip Balm + Treatment",id:"FP_CAT1960217",categoryClass:""},displayName:"Lip Balm + Treatment",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1960217",nestLevel:4,parentItemId:"FP_15700042",parentSlug:"lip-makeup",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"lip-balms-treatments"},"backstage-pass-trend":{itemId:"FP_12600006",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Backstage Pass",id:"FP_CAT1570007",categoryClass:""},displayName:"Backstage Pass",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1570007",nestLevel:4,parentItemId:"FP_12800006",parentSlug:"events",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"backstage-pass-trend"},"additional-inseams":{itemId:"FP_6100132",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Clothes > Denim > Additional Inseams",id:"FP_CAT830034",categoryClass:""},displayName:"Additional Inseams",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT830034",nestLevel:3,parentItemId:"FP_6100052",parentSlug:"jeans",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"additional-inseams"},"ordering-payment":{itemId:"FP_8800030",category:{displayName:"",id:"",categoryClass:""},displayName:"Ordering and Payment",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"NONPRODUCT",browseDisplayPreferences:{},type:"Non-Product Page",childSlugs:[],categoryId:"",nestLevel:2,parentItemId:"682976c2-9b7b-b022-0202-d3d6bf287619",parentSlug:"help-root-help",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"ordering-payment"},"surf-school-trend":{itemId:"FP_17400014",category:{allowPermanentMarkdownTiles:!0,allowTemporaryMarkdownTiles:!0,displayName:"trends>surf school",id:"FP_CAT2150649",categoryClass:""},displayName:"Surf School",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT2150649",nestLevel:4,parentItemId:"FP_12800006",parentSlug:"events",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"surf-school-trend"},"true-colors-look-9":{itemId:"FP_21200024",category:{allowPermanentMarkdownTiles:!0,allowTemporaryMarkdownTiles:!0,displayName:"true colors look 9",id:"FP_CAT2650061",categoryClass:""},displayName:"true colors look 9",links:[],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT2650061",nestLevel:1,parentSlug:"marketing-root",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"true-colors-look-9"},"free-people-collection":{itemId:"FP_9500148",category:{allowPermanentMarkdownTiles:!1,allowTemporaryMarkdownTiles:!1,displayName:"Shoes > Shops & Trends > Free People Collection",id:"FP_CAT1120061",categoryClass:""},displayName:"Free People Collection",links:[[Object],[Object]],targetUrlTarget:"_self",typeCode:"DEFAULT",browseDisplayPreferences:{tileTemplate:"REGULAR"},type:"Navigation Item Browse Content",childSlugs:[],categoryId:"FP_CAT1120061",nestLevel:3,parentItemId:"FP_9500142",parentSlug:"shops-trends",active:!0,navigationDisplayPreferences:{displayAsSale:!1,tertiaryDisplay:0},seo:{noIndex:!1,includeInSitemap:!0,noFollow:!1},containerInfo:[],slug:"free-people-collection"}};const stagingdata=[{itemId:"6100017",displayName:"New",links:[[Object],[Object],[Object]],parentItemId:"6000010",categoryId:"cat242840",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"New Arrivals: Women's Clothing",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our new women's clothing plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"whats-new"},{itemId:"16700008",displayName:"New Fall Now",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat2060058",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Fall 2016 Boots, Sweaters, Jackets & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Fall 2016 clothes for women, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-fall-now"},{itemId:"6100019",displayName:"Clothes",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242842",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Arrivals: Clothes",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our new women's clothes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-clothes"},{itemId:"6100021",displayName:"Shoes",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242846",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Arrivals: Shoes",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest collection of shoes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-shoes"},{itemId:"6100023",displayName:"Accessories",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242845",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Arrivals: Accessories",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest collection of accessories plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-accessories"},{itemId:"6100025",displayName:"Intimates",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242844",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Arrivals: Intimates",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest collection of intimates plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-intimates"},{itemId:"6100027",displayName:"Swim",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242847",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Swim",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest swimwear collection plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-swim"},{itemId:"16300006",displayName:"Beauty",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat2020104",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Beauty Products",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of our newest beauty products, plus get fashion tips from FP Me stylists! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-beauty"},{itemId:"9000015",displayName:"Movement",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat1070008",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New FP Movement Clothing",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest FP movement collection plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-movement"},{itemId:"14400015",displayName:"Vintage Loves",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat360177",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Vintage Loves | New Vintage Clothes Arrivals",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of new vintage clothes arrivals plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-vintage-loves"},{itemId:"6100030",displayName:"Back in Stock",links:[[Object],[Object],[Object]],parentItemId:"6100017",categoryId:"cat242851",navigationItems:[[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"All Back in Stock Items",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop all back in stock items plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock"},{itemId:"9000024",displayName:"Clothes",links:[[Object],[Object],[Object]],parentItemId:"6100030",categoryId:"cat242852",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock Clothes",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop back in stock apparel plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-clothes"},{itemId:"9100017",displayName:"Shoes",links:[[Object],[Object],[Object]],parentItemId:"6100030",categoryId:"cat242854",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock Shoes",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop back in stock shoes plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-shoes"},{itemId:"9000029",displayName:"Accessories",links:[[Object],[Object],[Object]],parentItemId:"6100030",categoryId:"cat242853",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock Accessories",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop back in stock accessories plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-accessories"},{itemId:"9100015",displayName:"Intimates",links:[[Object],[Object],[Object]],parentItemId:"6100030",categoryId:"cat242855",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock Intimates",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop back in stock intimates plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-intimates"},{itemId:"13400008",displayName:"FP Movement",links:[[Object],[Object],[Object]],parentItemId:"6100030",categoryId:"cat1700093",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock FP Movement Workout Clothes",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop back in stock FP Movement clothes and more, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-fp-movement"},{itemId:"6100035",displayName:"Clothes",links:[[Object],[Object],[Object]],parentItemId:"6000010",categoryId:"cat1630392",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Clothes for Women | Bohemian Clothing & Apparel ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Free People's wide selection of apparel for women is always on point and in-style to keep you looking fabulous. Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Gateway",slug:"clothes"},{itemId:"6100039",displayName:"Dresses test",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat242858",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Boho Dresses, Cute & Casual Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Free People’s cute dresses fit every occasion! Shop online for summer dresses, sundresses, casual dresses, white boho maxi dresses & more.",h1TagOverride:"Dresses"},type:"Navigation Item Browse Content",slug:"dresses"},{itemId:"13500016",displayName:"New Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1710007",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"New Dresses | Maxi, Bodycon, Midi & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop our latest selection of new dresses, from minis to maxis, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"new-dresses"},{itemId:"13500018",displayName:"Back in Stock Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1710008",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Back in Stock Dresses for Women ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of back in stock dresses, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"back-in-stock-dresses"},{itemId:"6100078",displayName:"Day Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat830012",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Crochet Dresses, Sundresses & Day Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Dress up your day with these beautiful day dresses & sundresses from Free People. Pick a crochet dress, or sun dress for your Sunday brunch this weekend.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"day-dresses"},{itemId:"6100082",displayName:"Party Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1410009",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Party Dresses, Lace Dresses & Sequin Dresses ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Step into the limelight with a stunning party dresses from Free People. Shop our large collection which includes sequin dresses, lace dresses and so much more.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"party-dresses"},{itemId:"6100080",displayName:"Night Out Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat830013",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Night Dresses - Date and Night Out Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop Free People's selection of night dresses. Whether you're going on a date or a girls night out, our beautiful dresses will make you stand out at night!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"night-out-dresses"},{itemId:"6100076",displayName:"Bodycon Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1410005",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Bodycon Dresses- Lace, Long Sleeve & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Our stunning selection of bodycon dresses include lace, long sleeve and various prints in styles from mini to long. Find the perfect bodycon dress at Free People.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"bodycon-dresses"},{itemId:"6100074",displayName:"Maxi Dresses ",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat830010",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Maxi Dresses: White, Black, Lace & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Women's maxi dresses for any occasion. Shop Free People’s selection of black & white maxi dresses, one-shoulder maxi dresses & lace maxi dresses.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"maxi-dresses"},{itemId:"6100072",displayName:"Mini Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1410008",navigationItems:[[Object]],seo:{noIndex:!1,ogImage:null,title:"Mini Dresses: Shift Dresses & Little Black Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop Free People’s selection of mini dresses, little black dresses & shift dresses to wear on a date or style for a fun night out. Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"mini-dresses"},{itemId:"9500064",displayName:"Fit & Flare Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100072",categoryId:"cat1120026",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Fit & Flare Dresses for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Fit & Flare Dresses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"fit-and-flare-dresses"},{itemId:"6100084",displayName:"Printed Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1410010",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Shop Floral Dresses & Printed Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Celebrate spring with Free People's printed dresses! Choose a floral print dress for a relaxed, chic look, or a statement print dress for an edgy style.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"printed-dresses"},{itemId:"9500066",displayName:"White Dresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1120027",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"White Dresses & Little White Dresses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of White Dresses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"white-dresses"},{itemId:"10200012",displayName:"Trend: Shirtdresses",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1240194",navigationItems:[],seo:{ | |
noIndex:!1,ogImage:null,title:"Shirt Dresses | Long & Short for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop cute shirt dresses, from long and short cuts to button down styles, plus get tips from FP Me stylists! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"shirtdresses"},{itemId:"15700188",displayName:"Trend: Sweater Dresses ",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1960498",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Sweater Dresses & Knit Dresses for Women ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of cute sweaters dresses, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"sweater-dresses-trend"},{itemId:"14600013",displayName:"Dresses Under $100",links:[[Object],[Object],[Object]],parentItemId:"6100039",categoryId:"cat1340014",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Dresses Under 100 for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of dresses under $100, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:"Dresses Under $100"},type:"Navigation Item Browse Content",slug:"dresses-under-100"},{itemId:"6100041",displayName:"Tops & Tees",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250001",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Lace Tops, Off the Shoulder Tops & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Browse Free People's wide selection of tops for women. Choose from these stylish and comfortable white lace tops, off the shoulder tops, and more!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"tops"},{itemId:"6100086",displayName:"Tees",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830017",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Women's Tees - Oversized T Shirts & Baseball Tees",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Pick your favorite everyday tee at Free People! Whether it's an oversized t-shirt, baseball tee, or a v-neck, our t-shirts will keep you comfy yet stylish.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"tees"},{itemId:"10200014",displayName:"Graphic Tees",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat1240195",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Graphic Tees - Graphic T Shirts for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Graphic Tees plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"graphic-tees"},{itemId:"6100090",displayName:"Tunics",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830019",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Modern Women's Tunics And Long Tunic Tops",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop for women's long tunic tops online at FreePeople.com. Try all the styles and share pics of your favorite tunic tops with your friends via FP Me.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"tunics"},{itemId:"6100094",displayName:"Camis & Tanks",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830021",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Camis, Tank Tops & Tube Tops",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop camis, tank tops, and tube tops from Free People. Dress up with a backless top for a summer date or choose a black or white cami for a chic everyday look.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"camis-tanks"},{itemId:"6100092",displayName:"Blouses",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830020",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Blouses - Peasant Blouses & Sheer Silk Blouses",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of blouses plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"blouses"},{itemId:"6100102",displayName:"Crop Tops",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat250017",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute Crop Tops: White, Black, Lace & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"It's not officially summer until you add cropped tops to your wardrobe! Find your perfect crop top from our collection of white, black, and lace crop tops.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"crop-tops"},{itemId:"6100100",displayName:"Going Out Tops",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat250018",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Going Out Tops | Sequin Tops & Dressy Shirts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Going Out Tops plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"going-out-tops"},{itemId:"9500072",displayName:"Layering Tops",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat250025",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Layering Tees, Shirts & Tops for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of layering tops plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"layering-tops"},{itemId:"6100096",displayName:"Thermals & Henleys",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830022",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Women's Henley Shirts & Thermal Tops for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop Free People's wide selection of long sleeve thermal and henley shirts. These light-weight fabrics will keep you warm, comfortable, and stylish all winter.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"thermals-henleys"},{itemId:"6100088",displayName:"Shirts",links:[[Object],[Object],[Object]],parentItemId:"6100041",categoryId:"cat830018",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Plaid Shirts, Denim Shirts & Button Down Shirts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of shirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"shirts"},{itemId:"6100098",displayName:"Sweatshirts",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250016",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cool Sweatshirts & Hooded Sweatshirts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Sweatshirts & Pullovers plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"sweatshirts-pullovers"},{itemId:"11500014",displayName:"Bodysuits",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat1510040",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Bodysuits & Bodysuit Tops | Long Sleeve & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of sexy bodysuit tops, including long sleeve, v-neck, and sleeveless styles, plus more. Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"bodysuits"},{itemId:"4600020",displayName:"Kimonos & Ponchos",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat270072",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Kimonos & Ponchos",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop Free People's wide selection of beautiful kimonos, ponchos, and scarves. These comfortable and high quality fabrics will keep you warm this fall and winter.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"kimonos-ponchos"},{itemId:"6100043",displayName:"Sweaters",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250019",navigationItems:[[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Oversized Sweaters, Turtleneck Sweaters & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Are you ready for fall and winter? Find your new favorite oversized sweater. Shop our selection cashmere sweaters, wool sweaters plus other unique sweaters.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"sweaters"},{itemId:"12300027",displayName:"Sleeveless Sweaters",links:[[Object],[Object],[Object]],parentItemId:"6100043",categoryId:"cat1570021",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Sleeveless Sweaters & Sweater Tanks for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of cute sleeveless sweaters plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"sleeveless-sweaters"},{itemId:"6100104",displayName:"Pullovers",links:[[Object],[Object],[Object]],parentItemId:"6100043",categoryId:"cat250021",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Pullovers & Pullover Sweaters for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Pullovers plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"pullovers"},{itemId:"6100106",displayName:"Cardigans",links:[[Object],[Object],[Object]],parentItemId:"6100043",categoryId:"cat250022",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute Women's Cardigan Sweaters | Long & Short",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Cardigans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"cardigans"},{itemId:"12300029",displayName:"Tunics",links:[[Object],[Object],[Object]],parentItemId:"6100043",categoryId:"cat1570022",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Tunic Sweaters | Long Sweaters for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of long tunic sweaters plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"tunic-sweaters"},{itemId:"12800081",displayName:"Unspun",links:[[Object],[Object],[Object]],parentItemId:"6100043",categoryId:"cat1120029",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Unspun: Hand Knit Sweaters for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:null,h1TagOverride:null},type:"Navigation Item Browse Content",slug:"unspun-hand-knit-sweaters"},{itemId:"9700008",displayName:"Jackets",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250028",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Cute Winter & Fall Jackets for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Look no further. Browse our wide selection of outerwear for women to find the perfect jacket for any outfit. Find your perfect jacket at Free People.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"jackets"},{itemId:"17000006",displayName:"Vegan Leather & Faux Fur",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat2100002",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Faux Fur Coats & Vegan Leather Jackets",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a variety of vegan coats, from moto jackets to faux fur styles, plus get fashion tips from FP Me! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"vegan-jackets"},{itemId:"9500092",displayName:"Military Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120039",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Parkas, Utility & Anorak Jackets for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of denim jackets and parkas plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"utility-jackets"},{itemId:"9500078",displayName:"Statement Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120032",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Statement Jackets: Quilted, Embellished & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop cute statement jackets, from embellished to quilted styles, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"statement-jackets"},{itemId:"9500097",displayName:"Vests",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120041",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Vests for Women | Fur, Leather, Fringe & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Vests plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"vests"},{itemId:"9500082",displayName:"Coats",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120034",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Women's Coats | Peacoats, Parkas & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:null,h1TagOverride:null},type:"Navigation Item Browse Content",slug:"coats"},{itemId:"12300031",displayName:"Lightweight Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1570023",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Light Jackets & Lightweight Coats for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of spring-ready light jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"lightweight-jackets"},{itemId:"9500086",displayName:"Moto Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120036",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Moto Jackets - Motorcycle Jackets for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Moto Jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"motorcycle-jackets"},{itemId:"9500080",displayName:"Leather & Suede Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120033",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Leather Jackets & Suede Jackets",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop women's leather jackets, vegan leather jackets & suede jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"leather-jackets"},{itemId:"9500090",displayName:"Denim Jackets",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120038",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Denim Jackets & Jean Jackets for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Denim Jackets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"denim-jackets"},{itemId:"15800039",displayName:"Bombers",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1970637",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Bomber Jackets for Women ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a selection of bomber jackets in range of hues, from black to green, then share your style with FP Me! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"bomber-jackets"},{itemId:"9500094",displayName:"Shearling",links:[[Object],[Object],[Object]],parentItemId:"9700008",categoryId:"cat1120040",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Faux Fur & Shearling Jackets for Women at Free People",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Faux Fur & Shearling plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"faux-fur-and-shearling-jackets"},{itemId:"6100052",displayName:"Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat620001",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Women's Jeans, Denim & One Teaspoon Jeans",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Find your perfect jeans from Free People. Fulfill your denim needs with a pair of cropped jeans, vintage flare jeans, or stylish skinny jeans.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"jeans"},{itemId:"6200006",displayName:"High Rise Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830029",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"High Waisted Jeans - High Rise Jeans for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of high-rise jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"high-rise-jeans"},{itemId:"9500105",displayName:"Mid Rise Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1240198",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Mid Rise Jeans | Skinny, Flare & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Mid Rise Jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"mid-rise-jeans"},{itemId:"9500103",displayName:"Low Rise Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1120043",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Low Rise Jeans | Skinny, Flare & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Low Rise Jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"low-rise-jeans"},{itemId:"6100118",displayName:"Wideleg & Flare",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830026",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Flare Jeans, Bell Bottom & Wide Leg Jeans for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop Free People's modern bell bottoms & wide leg jeans now. From vintage-style bell bottoms to cropped wide legs, we've got the flare jeans you crave.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"flare-jeans"},{itemId:"6100116",displayName:"Skinny Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830025",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Skinny Jeans: High Rise, Slim Fit & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop your personal denim style with Free People's stylish straight leg jeans and skinny jeans. Our jeans are stylish, comfortable, and super versatile.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"skinny-jeans"},{itemId:"6100120",displayName:"Boyfriend Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830027",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Destroyed & Distressed Boyfriend Jeans",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Rock a pair of boyfriend jeans for your next laidback outfit. Pick from one of the boyfriend jeans styles - high rise, low rise, distressed, or painted!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"boyfriend-jeans"},{itemId:"15500095",displayName:"Straight Leg Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1940152",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Women’s Straight Leg Jeans ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of straight leg jeans for women, from high-waisted to mid-rise cuts! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"straight-leg-jeans"},{itemId:"6100126",displayName:"Overalls",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830031",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute Denim Overalls for Women | Long & Short",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:'"Shop Free People\'s denim overalls and one piece jeans. They are super chic, stylish, and fashionable but still remain their tomboyish and comfortable roots."',h1TagOverride:null},type:"Navigation Item Browse Content",slug:"overalls"},{itemId:"6100114",displayName:"Cropped Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830024",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cropped Jeans | Skinny, Boyfriend & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of cropped jeans plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"cropped-jeans"},{itemId:"15500097",displayName:"Distressed Jeans",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1940153",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Ripped & Distressed Jeans for Women ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of ripped jeans for women, from delicately distressed to dramatically destroyed. Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"ripped-jeans"},{itemId:"6100124",displayName:"Cutoffs",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830030",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Jean Shorts & Denim Cut Off Shorts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Perfect your summer by shopping from our selection of cut off shorts including distressed shorts, high-waisted jean shorts, and your classic blue jean shorts!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"denim-shorts"},{itemId:"6100132",displayName:"Additional Inseams",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat830034",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Additional Inseams - Denim for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of jeans with additional inseams plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"additional-inseams"},{itemId:"15500091",displayName:"Trend: Patched & Embroidered",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1940146",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Patched & Embroidered Jeans for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of patched and embroidered jeans, plus get fashion tips from FP Me stylists worldwide! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"patched-embroidered-jeans-trend"},{itemId:"16800010",displayName:"Brand Spotlight: McGuire",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat2080009",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"McGuire Denim | Flare, Skinny & Boyfriend Jeans",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of McGuire denim, plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"mcguire-denim"},{itemId:"15700016",displayName:"Vintage Styles",links:[[Object],[Object],[Object]],parentItemId:"6100052",categoryId:"cat1960401",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Vintage Jeans | Boyfriend, Skinny, Flare & More ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of vintage jeans for women, from high-waisted styles to skinnies and boyfriend fits! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"vintage-loves-jeans"},{itemId:"6100054",displayName:"Pants",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250059",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Women's Pants | Leather Pants, Joggers & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"pants"},{itemId:"6200016",displayName:"Wideleg & Flare",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat250062",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Wide Leg Pants, Flare Pants & High Waisted Pants",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of wide leg pants & flare pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"wide-leg-pants"},{itemId:"6200008",displayName:"Skinny Pants",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat250063",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Skinny Pants | Slim & Cigarette Pants",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of skinny pants, from cigarette to slim cuts, plus get fashion tips from FP Me stylists! Buy now for free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"skinny-pants"},{itemId:"9500107",displayName:"Structured Pants",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat1120045",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Trousers & Tailored Pants for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Structured Pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"structured-pants"},{itemId:"9500109",displayName:"High Waisted Pants",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat1120046",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"High Waisted Pants & Trousers for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of High Waisted Pants plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"high-waisted-pants"},{itemId:"6200012",displayName:"Harem Pants & Joggers",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat250060",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Shop Harem Pants & Joggers for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Throw on a pair of harem pants or joggers for a laid back yet stylish look. These comfortable pants are great for a tropical getaway or for layering on a summer night out.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"harem-pants"},{itemId:"6200018",displayName:"Leggings",links:[[Object],[Object],[Object]],parentItemId:"6100054",categoryId:"cat250064",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Leggings | Sweater, Sheer, Knit & More ",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Leggings plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"leggings"},{itemId:"6100056",displayName:"Shorts",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250065",navigationItems:[[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Shop Lace Shorts & High Waisted Shorts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Rock a pair of lace shorts, high waisted shorts, or denim cutoffs and go wild and free this summer! Our shorts are super flattering, comfortable and ever chic.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"shorts"},{itemId:"6100124",displayName:"Cutoffs",links:[[Object],[Object],[Object]],parentItemId:"6100056",categoryId:"cat830030",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Jean Shorts & Denim Cut Off Shorts",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Perfect your summer by shopping from our selection of cut off shorts including distressed shorts, high-waisted jean shorts, and your classic blue jean shorts!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"denim-shorts"},{itemId:"9500112",displayName:"Structured Shorts",links:[[Object],[Object],[Object]],parentItemId:"6100056",categoryId:"cat1120047",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Structured Dress Shorts for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Structured Shorts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"structured-shorts"},{itemId:"9500114",displayName:"Soft Shorts",links:[[Object],[Object],[Object]],parentItemId:"6100056",categoryId:"cat1120048",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Soft Shorts for Women | Printed & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Soft Shorts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.", | |
h1TagOverride:null},type:"Navigation Item Browse Content",slug:"soft-shorts"},{itemId:"6100058",displayName:"Skirts",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250066",navigationItems:[[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Cute Bohemian Women's Skirts | Fitted & Flowy",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of skirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"skirts"},{itemId:"6200022",displayName:"Mini Skirts",links:[[Object],[Object],[Object]],parentItemId:"6100058",categoryId:"cat250069",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute Short Mini Skirts for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of Mini Skirts plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"mini-skirts"},{itemId:"6200020",displayName:"Midi & Maxi Skirts",links:[[Object],[Object],[Object]],parentItemId:"6100058",categoryId:"cat250067",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Maxi Skirts: White, Black, Floral & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Dress yourself up or down in maxi skirts designed to impress. Shop online for stunning long maxi skirts & short maxi skirts in a variety of styles & prints.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"maxi-skirts"},{itemId:"9800006",displayName:"Jumpsuits & Rompers",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250050",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute Jumpsuits & Rompers for Women",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Bored of your everyday wardrobe? Shop Free People's full selection of comfortable jumpsuits, rompers, and playsuits for a cute and stylish look!",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"jumpsuits-rompers"},{itemId:"6100047",displayName:"Sets",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat250071",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Crop Top and Skirt Sets & More",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop crop top and skirt sets & crop top and short sets plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"sets"},{itemId:"6400061",displayName:"Swim",links:[[Object],[Object],[Object]],parentItemId:"6100035",categoryId:"cat1660002",navigationItems:[[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]],seo:{noIndex:!1,ogImage:null,title:"Swimsuits, Swimwear & Bathing Suits",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Wear swimsuits from Free People, Acacia or Mara Hoffman next time you're at the beach! You'll have fun mix and matching bikini tops and bottoms.",h1TagOverride:null},type:"Gateway",slug:"swimwear"},{itemId:"6400066",displayName:"All Swimwear",links:[[Object],[Object],[Object]],parentItemId:"6400061",categoryId:"cat360046",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"All Swimwear",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Shop a full selection of All Swimwear plus get fashion tips from FP Me stylists worldwide! Buy now and get free shipping – see site for details.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"all-swimwear"},{itemId:"4600110",displayName:"Bikini Tops",links:[[Object],[Object],[Object]],parentItemId:"6400061",categoryId:"cat250073",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"Cute and Sexy Bikinis & Bikini Tops",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Summer is not complete without some cute and sexy bikinis! Pick a colorful neoprene bikini, a sexy triangle top, or a vintage high neck bikini top for your next vacation.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"bikini-tops"},{itemId:"4600112",displayName:"Bikini Bottoms",links:[[Object],[Object],[Object]],parentItemId:"6400061",categoryId:"cat250074",navigationItems:[],seo:{noIndex:!1,ogImage:null,title:"High Waisted Bikini & Bikini Bottoms",noFollow:!1,seoCopy:null,includeInSitemap:!0,metaDescription:"Mix and match your bikinis with Free People's beautiful bikini bottoms for different looks! Pair your swimsuit with a cheeky, printed, or high waisted bikini bottom.",h1TagOverride:null},type:"Navigation Item Browse Content",slug:"bikini-bottoms"}];const navName=getNavigationProp("displayName","slug","pet-products",devdata);console.log(navName)},0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"ramda": "0.22.1", | |
"sanctuary": "0.7.1" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <body> --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment