diff --git a/config/dependencies.yaml b/config/dependencies.yaml index c58e514fca0..62f1a73c519 100644 --- a/config/dependencies.yaml +++ b/config/dependencies.yaml @@ -85,6 +85,10 @@ jaeger: '@freesewing/brian': *freesewing '@freesewing/bent': *freesewing '@freesewing/plugin-bust': *freesewing +lily: + peer: + '@freesewing/titan': *freesewing + '@freesewing/paco': *freesewing new-design: _: 'axios': &axios '1.6.8' diff --git a/config/exceptions.yaml b/config/exceptions.yaml index 1c38f056d89..26a3f8214b2 100644 --- a/config/exceptions.yaml +++ b/config/exceptions.yaml @@ -34,6 +34,8 @@ packageJson: private: true lab: private: true + lily: + author: Anna Puk (https://github.com/anna-puk) lucy: author: SeaZeeZee (https://github.com/SeaZeeZee) lunetius: &starf diff --git a/config/software/designs.json b/config/software/designs.json index 66cfa3d8fdc..5fc0cb4343d 100644 --- a/config/software/designs.json +++ b/config/software/designs.json @@ -554,14 +554,25 @@ "techniques": [] }, "naomiwu": { - "description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt", "code": "Joost De Cock", - "design": ["Naomi Wu", "Joost De Cock"], + "description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt", + "design": [ + "Naomi Wu", + "Joost De Cock" + ], "difficulty": 3, "lab": false, "org": false, - "tags": ["bottoms", "skirts"], - "techniques": ["button", "hem", "pocket", "lining"] + "tags": [ + "bottoms", + "skirts" + ], + "techniques": [ + "button", + "hem", + "pocket", + "lining" + ] }, "noble": { "code": "Wouter Van Wageningen", @@ -976,5 +987,21 @@ "hem", "button" ] + }, + "lily": { + "code": "Anna Puk, Joost De Cock", + "description": "A FreeSewing pattern for basic leggings", + "design": "Anna Puk", + "difficulty": 2, + "lab": true, + "org": true, + "tags": [ + "bottoms" + ], + "techniques": [ + "elastic", + "curvedSeam", + "hem" + ] } -} +} \ No newline at end of file diff --git a/designs/lily/CHANGELOG.md b/designs/lily/CHANGELOG.md new file mode 100644 index 00000000000..83751ede3b8 --- /dev/null +++ b/designs/lily/CHANGELOG.md @@ -0,0 +1,17 @@ +# Change log for: @freesewing/lily + + +## 3.0.0 (2023-09-30) + +### Changed + + - All FreeSewing packages are now ESM only. + - All FreeSewing packages now use named exports. + - Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required. + + +This is the **initial release**, and the start of this change log. + +> Prior to version 2, FreeSewing was not a JavaScript project. +> As such, that history is out of scope for this change log. + diff --git a/designs/lily/README.md b/designs/lily/README.md new file mode 100644 index 00000000000..c95b8710c5b --- /dev/null +++ b/designs/lily/README.md @@ -0,0 +1,162 @@ +

@freesewing/lily on NPM + License: MIT + Code quality on DeepScan + Open issues tagged pkg:lily + All Contributors +

Follow @freesewing_org on Twitter + Chat with us on Discord + Become a FreeSewing Patron + Follow @freesewing_org on Twitter +

+ +# @freesewing/lily + +A FreeSewing pattern for basic leggings + + + +# FreeSewing + +> [!TIP] +>#### Support FreeSewing: Become a patron, or make a one-time donation 🥰 +> +> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons. +> +> If you feel FreeSewing is worthwhile, and you can spend a few coins without +hardship, then you should [join us and become a patron](https://freesewing.org/community/join). + +## What am I looking at? 🤔 + +This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages. + +This folder holds: @freesewing/lily + +If you're not entirely sure what to do or how to start, type this command: + +``` +npm run tips +``` + +> [!NOTE] +> If you don't want to set up a dev environment, you can run it in your browser: +> +> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing) +> +> We recommend that you fork our repository and then +> put `gitpod.io/# to start up a browser-based dev environment of your own. + +## About FreeSewing 💀 + +Where the world of makers and developers collide, that's where you'll find FreeSewing. + +If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate +sewing patterns adapted to your measurements. + +If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/). +The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox +for parametric design of sewing patterns. But FreeSewing also provides a range +of [plugins](https://freesewing.dev/reference/plugins/) that further extend the +functionality of the platform. + +If you have NodeJS installed, you can try it right now by running: + +```bash +npx @freesewing/new-design +``` + +Getting started guides are available for: +- [Linux](https://freesewing.dev/tutorials/getting-started-linux/) +- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/) +- [Windows](https://freesewing.dev/tutorials/getting-started-windows/) + +The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will +show you how to create your first parametric design. + +## Getting started ⚡ + +To get started with FreeSewing, you can spin up our development environment with: + +```bash +npx @freesewing/new-design +``` + +To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system. +Once you have those, clone (or fork) this repo and run `yarn kickstart`: + +```bash +git clone git@github.com:freesewing/freesewing.git +cd freesewing +yarn kickstart +``` + +## Links 👩‍💻 + +**Official channels** + + - 💻 Makers website: [FreeSewing.org](https://freesewing.org) + - 💻 Developers website: [FreeSewing.dev](https://freesewing.dev) + - ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose), + [Issues](https://github.com/freesewing/freesewing/issues) & + [Discussions](https://github.com/freesewing/freesewing/discussions) on + [GitHub](https://github.com/freesewing/freesewing) + +**Social media** + + - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) + - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) + +**Places the FreeSewing community hangs out** + + - 💬 [Discord](https://discord.freesewing.org/) + - 💬 [Facebook](https://www.facebook.com/groups/627769821272714/) + - 💬 [Reddit](https://www.reddit.com/r/freesewing/) + +## License: MIT 🤓 + +© [Joost De Cock](https://github.com/joostdecock). +See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details. + +## Where to get help 🤯 + +For [Support](https://github.com/freesewing/freesewing/issues/new/choose), +please use the [Issues](https://github.com/freesewing/freesewing/issues) & +[Discussions](https://github.com/freesewing/freesewing/discussions) on +[GitHub](https://github.com/freesewing/freesewing). + diff --git a/designs/lily/build.mjs b/designs/lily/build.mjs new file mode 100644 index 00000000000..99ace216bc8 --- /dev/null +++ b/designs/lily/build.mjs @@ -0,0 +1,35 @@ +/* This script will build the package with esbuild */ +import esbuild from 'esbuild' +import pkg from './package.json' assert { type: 'json' } + +// Create banner based on package info +const banner = `/** + * ${pkg.name} | v${pkg.version} + * ${pkg.description} + * (c) ${new Date().getFullYear()} ${pkg.author} + * @license ${pkg.license} + */` + +// Shared esbuild options +const options = { + banner: { js: banner }, + bundle: true, + entryPoints: ['src/index.mjs'], + format: 'esm', + outfile: 'dist/index.mjs', + external: ['@freesewing'], + metafile: process.env.VERBOSE ? true : false, + minify: process.env.NO_MINIFY ? false : true, + sourcemap: true, +} + +// Let esbuild generate the build +const build = async () => { + const result = await esbuild.build(options).catch(() => process.exit(1)) + + if (process.env.VERBOSE) { + const info = await esbuild.analyzeMetafile(result.metafile) + console.log(info) + } +} +build() diff --git a/designs/lily/data.mjs b/designs/lily/data.mjs new file mode 100644 index 00000000000..ff5d4a4d600 --- /dev/null +++ b/designs/lily/data.mjs @@ -0,0 +1,4 @@ +// This file is auto-generated | All changes you make will be overwritten. +export const name = '@freesewing/lily' +export const version = '3.2.0' +export const data = { name, version } diff --git a/designs/lily/i18n/de.json b/designs/lily/i18n/de.json new file mode 100644 index 00000000000..185dfb452be --- /dev/null +++ b/designs/lily/i18n/de.json @@ -0,0 +1,7 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern that needs a description", + "p": { }, + "s": { }, + "o": { } +} diff --git a/designs/lily/i18n/en.json b/designs/lily/i18n/en.json new file mode 100644 index 00000000000..ad820c3445d --- /dev/null +++ b/designs/lily/i18n/en.json @@ -0,0 +1,24 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern for basic leggings", + "p": { + "back": "Back", + "front": "Front", + "waistband": "Waistband" + }, + "s": { + "adjustEase.t": "Adjust ease settings to match fabric stretch", + "adjustEase.d": "Knee, seat and waist ease should be set to fabric stretch * -1/10; click the button to adjust all three.", + "adjustEase": "adjust ease" + }, + "o": { + "lengthReduction": { + "t": "Length reduction", + "d": "Controls how much the leggings are shortened with respect to ankle length" + }, + "fabricStretch": { + "t": "Fabric stretch", + "d": "How much the fabric can stretch horizontally; this is used to calculate ease" + } + } +} diff --git a/designs/lily/i18n/es.json b/designs/lily/i18n/es.json new file mode 100644 index 00000000000..185dfb452be --- /dev/null +++ b/designs/lily/i18n/es.json @@ -0,0 +1,7 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern that needs a description", + "p": { }, + "s": { }, + "o": { } +} diff --git a/designs/lily/i18n/fr.json b/designs/lily/i18n/fr.json new file mode 100644 index 00000000000..185dfb452be --- /dev/null +++ b/designs/lily/i18n/fr.json @@ -0,0 +1,7 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern that needs a description", + "p": { }, + "s": { }, + "o": { } +} diff --git a/designs/lily/i18n/index.mjs b/designs/lily/i18n/index.mjs new file mode 100644 index 00000000000..36aac928b67 --- /dev/null +++ b/designs/lily/i18n/index.mjs @@ -0,0 +1,8 @@ +import en from './en.json' assert { type: 'json' } +import de from './de.json' assert { type: 'json' } +import es from './es.json' assert { type: 'json' } +import fr from './fr.json' assert { type: 'json' } +import nl from './nl.json' assert { type: 'json' } +import uk from './uk.json' assert { type: 'json' } + +export const i18n = { en, de, es, fr, nl, uk } diff --git a/designs/lily/i18n/nl.json b/designs/lily/i18n/nl.json new file mode 100644 index 00000000000..185dfb452be --- /dev/null +++ b/designs/lily/i18n/nl.json @@ -0,0 +1,7 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern that needs a description", + "p": { }, + "s": { }, + "o": { } +} diff --git a/designs/lily/i18n/uk.json b/designs/lily/i18n/uk.json new file mode 100644 index 00000000000..185dfb452be --- /dev/null +++ b/designs/lily/i18n/uk.json @@ -0,0 +1,7 @@ +{ + "t": "Lily", + "d": "A FreeSewing pattern that needs a description", + "p": { }, + "s": { }, + "o": { } +} diff --git a/designs/lily/package.json b/designs/lily/package.json new file mode 100644 index 00000000000..34552f353c8 --- /dev/null +++ b/designs/lily/package.json @@ -0,0 +1,74 @@ +{ + "name": "@freesewing/lily", + "version": "3.2.0", + "description": "A FreeSewing pattern for basic leggings", + "author": "Anna Puk (https://github.com/anna-puk)", + "homepage": "https://freesewing.org/", + "repository": "github:freesewing/freesewing", + "license": "MIT", + "bugs": { + "url": "https://github.com/freesewing/freesewing/issues" + }, + "funding": { + "type": "individual", + "url": "https://freesewing.org/patrons/join" + }, + "keywords": [ + "freesewing", + "design", + "diy", + "fashion", + "made to measure", + "parametric design", + "pattern", + "sewing", + "sewing pattern" + ], + "type": "module", + "module": "dist/index.mjs", + "exports": { + ".": { + "internal": "./src/index.mjs", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "build": "node build.mjs", + "build:all": "yarn build", + "clean": "rimraf dist", + "mbuild": "NO_MINIFY=1 node build.mjs", + "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", + "test": "npx mocha tests/*.test.mjs", + "vbuild": "VERBOSE=1 node build.mjs", + "lab": "cd ../../sites/lab && yarn start", + "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", + "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", + "testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", + "wbuild": "node build.mjs", + "wbuild:all": "yarn wbuild" + }, + "peerDependencies": { + "@freesewing/core": "3.2.0", + "@freesewing/titan": "3.2.0", + "@freesewing/paco": "3.2.0" + }, + "dependencies": {}, + "devDependencies": { + "mocha": "10.3.0", + "chai": "5.1.0", + "@freesewing/models": "3.2.0", + "@freesewing/plugin-timing": "3.2.0" + }, + "files": [ + "dist/*", + "README.md" + ], + "publishConfig": { + "access": "public", + "tag": "latest" + }, + "engines": { + "node": ">= 18.17.0 <22" + } +} diff --git a/designs/lily/src/back.mjs b/designs/lily/src/back.mjs new file mode 100644 index 00000000000..fc290e894d9 --- /dev/null +++ b/designs/lily/src/back.mjs @@ -0,0 +1,590 @@ +import { back as titanBack } from '@freesewing/titan' + +function draftLilyBack({ + points, + Point, + paths, + Path, + measurements, + options, + complete, + paperless, + store, + macro, + utils, + snippets, + Snippet, + sa, + absoluteOptions, + part, + log, + units, +}) { + //TODO: implement stretch setting to replace ease + // work-around: flag it + const stretchAsEase = -options.fabricStretch / 10 + const easeTol = 0.005 + if ( + Math.abs(options.waistEase - stretchAsEase) > easeTol || + Math.abs(options.seatEase - stretchAsEase) > easeTol || + Math.abs(options.kneeEase - stretchAsEase) > easeTol + ) { + store.flag.note({ + msg: `lily:adjustEase`, + replace: { + stretch: units(options.fabricStretch), + ease: stretchAsEase, + }, + suggest: { + text: 'adjustEase', + icon: 'options', + update: { + settings: [ + 'options', + { + ...options, + waistEase: stretchAsEase, + seatEase: stretchAsEase, + kneeEase: stretchAsEase, + }, + ], + }, + }, + }) + } + + /* + * Helper method to draw the inseam path + */ + const drawInseam = () => + new Path() + .move(points.fork) + .curve(points.forkCp2, points.kneeInCp1, points.kneeIn) + .curve(points.kneeInCp2, points.floorInCp2, points.floorIn) + /* + * Helper method to draw the outseam path + */ + const drawOutseam = () => { + const waistOut = points.styleWaistOutLily || points.waistOut + if (points.waistOut.x > points.seatOut.x) + return new Path() + .move(points.floorOut) + .curve(points.floorOutCp2, points.kneeOutCp1, points.kneeOut) + .curve(points.kneeOutCp2, points.seatOut, waistOut) + else + return new Path() + .move(points.floorOut) + .curve(points.floorOutCp2, points.kneeOutCp1, points.kneeOut) + .curve(points.kneeOutCp2, points.seatOutCp1, points.seatOut) + .curve_(points.seatOutCp2, waistOut) + } + /* + * Helper method to draw the outline path + */ + const drawPath = () => { + const waistIn = points.styleWaistInLily || points.waistIn + return drawInseam() + .line(points.floorOut) + .join(drawOutseam()) + .line(waistIn) + .line(points.crossSeamCurveStart) + .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork) + .close() + } + /* + * Helper method to calculate the length of the cross seam + */ + const crossSeamDelta = () => + new Path() + .move(points.waistIn) + .line(points.crossSeamCurveStart) + .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork) + .length() - measurements.crossSeamBack + /* + * Helper method to (re)draw the cross seam + */ + const drawCrossSeam = () => { + points.crossSeamCurveStart = points.waistIn.shiftFractionTowards( + points.cbSeat, + options.crossSeamCurveStart + ) + points.crossSeamCurveMax = utils.beamsIntersect( + points.waistIn, + points.cbSeat, + points.fork, + points.fork.shift(0, 1) // beams have infinite length anyway + ) + points.crossSeamCurveCp1 = points.crossSeamCurveStart.shiftFractionTowards( + points.crossSeamCurveMax, + options.crossSeamCurveBend + ) + points.crossSeamCurveCp2 = points.fork + .shiftFractionTowards(points.crossSeamCurveMax, options.crossSeamCurveBend) + .rotate(options.crossSeamCurveAngle, points.fork) + } + + // NOTE: majority of points re-used from titan + + // shape at the ankle (unlike titan) + const halfAnkle = + measurements.ankle * (1 + options.fabricStretch) > measurements.heel + ? (1 - options.fabricStretch / 10) * (measurements.ankle / 4) + : measurements.heel / 4 / (1 + options.fabricStretch) + // NOTE: for shortened leggings, this may not have been necessary... + + points.floorOut = points.floor.shift(0, halfAnkle) + points.floorIn = points.floorOut.flipX(points.floor) + + store.set('halfAnkle', halfAnkle) + + points.floorInCp2 = points.floorIn.shift(90, points.knee.dy(points.floor) / 3) + points.kneeInCp2 = points.kneeIn.shift(90, -points.knee.dy(points.floor) / 3) + points.floorOutCp2 = points.floorOut.shift(90, points.knee.dy(points.floor) / 3) + points.kneeOutCp1 = points.kneeOut.shift(90, -points.knee.dy(points.floor) / 3) + + // other control points have already been calculated in titan: + // Control points to shape the legs towards the seat + // Balance the waist + + // Cross seam + drawCrossSeam() + + //Uncomment the line below to see the seam prior to fitting the cross seam + // paths.seam1 = drawPath().attr('class', 'dashed lining') + + // Should we fit the cross seam? + if (options.fitCrossSeam && options.fitCrossSeamBack) { + let delta = crossSeamDelta() + let run = 0 + do { + run++ + // Remedy A: Slash and spread + for (const i of ['waistIn', 'waistOut']) + points[i] = points[i].rotate(delta / 15, points.seatOut) + // Remedy B: Nudge the fork inwards/outwards + points.fork = points.fork.shift(0, delta / 5) + points.forkCp2 = points.crossSeamCurveCp2.rotate(-90, points.fork) + drawCrossSeam() + delta = crossSeamDelta() + // Uncomment the line beloe this to see all iterations + // paths[`try${run}`] = drawPath().attr('class', 'dotted') + } while (Math.abs(delta) > 1 && run < 15) + } + + // Store inseam & outseam length + store.set('inseamBack', drawInseam().length()) + store.set('outseamBack', drawOutseam().length()) + + // Only now style the waist lower if requested + // Note: redo this for lily even though it was already done for titan; + // calculation for titan happened using its own seam lengths + store.set('waistbandWidth', absoluteOptions.waistbandWidth) // used in lilyWaistband + if (options.waistHeight < 1 || absoluteOptions.waistbandWidth > 0) { + points.styleWaistOutLily = drawOutseam() + .reverse() + .shiftAlong( + measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth + ) + points.styleWaistInLily = utils.beamsIntersect( + points.styleWaistOutLily, + points.styleWaistOutLily.shift(points.waistOut.angle(points.waistIn), 10), + points.waistIn, + points.crossSeamCurveStart + ) + } else { + points.styleWaistInLily = points.waistIn.clone() + points.styleWaistOutLily = points.waistOut.clone() + } + // Adapt the vertical placement of the seat control point to the lowered waist + points.seatOutCp2.y = points.seatOut.y - points.styleWaistOutLily.dy(points.seatOut) / 2 + let test = points.styleWaistInLily.dist(points.styleWaistOutLily) + console.log('back waist length', test) + store.set('backWaist', points.styleWaistInLily.dist(points.styleWaistOutLily)) + + // Paths + paths.seam = drawPath().attr('class', 'fabric') + + // adjust the length (at the bottom) + let extendBeyondKnee = 1 + if (options.lengthReduction > 0) { + let requestedLength = (1 - options.lengthReduction) * measurements.waistToFloor + // leggings must reach to fork at least, so define a minimum + const waistToFork = points.waistX.dy(points.fork) + if (waistToFork >= 0.999 * requestedLength) { + log.warn('length reduction capped; cutting off at fork') + // add one percent to waistToFork to ensure that path length is nonzero + requestedLength = waistToFork * 1.01 + } + + // work-around to avoid splitting exactly at the knee + // (due to a bug, splitting a path at a node is not possible) + if ( + 0.999 < requestedLength / measurements.waistToKnee && + requestedLength / measurements.waistToKnee < 1.001 + ) { + requestedLength = 1.001 * measurements.waistToKnee + } + points.bottom = points.waistX.shift(270, requestedLength) + let upperPoint, upperCp + if (requestedLength < measurements.waistToKnee) { + extendBeyondKnee = 0 + + // 'cut' between fork and knee + if (points.waistOut.x > points.seatOut.x) { + upperPoint = points.styleWaistOutLily + upperCp = points.seatOut + } else { + upperPoint = points.seatOut + upperCp = points.seatOutCp1 + } + points.bottomOut = utils.beamIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeOut, + points.kneeOutCp2, + upperCp, + upperPoint + ) + + points.bottomIn = utils.beamIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeIn, + points.kneeInCp1, + points.forkCp2, + points.fork + ) + } else { + // 'cut' between knee and 'floor' + points.bottomOut = utils.beamIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeOut, + points.kneeOutCp1, + points.floorOutCp2, + points.floorOut + ) + + points.bottomIn = utils.beamIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeIn, + points.kneeInCp2, + points.floorInCp2, + points.floorIn + ) + } + + // define the three parts of the path, then combine + paths.bottom = new Path().move(points.bottomIn).line(points.bottomOut) + + const halves = paths.seam.split(points.bottomIn) + paths.upperInseam = halves[0] + const halves2 = halves[1].split(points.bottomOut) + paths.upperOutseam = halves2[1] + + paths.seam = paths.upperInseam.join(paths.bottom).join(paths.upperOutseam) + + // store requestedLength for use in front part + store.set('requestedLength', requestedLength) + } else { + // define the same three parts of the path as when length reduction is enabled, then combine + + // first define the points (also used for paperless) + points.bottom = points.floor + points.bottomIn = points.floorIn + points.bottomOut = points.floorOut + + paths.bottom = new Path().move(points.bottomIn).line(points.bottomOut) + + // note: upperOutseam contains waist and cross seam as well + paths.upperInseam = drawInseam() + paths.upperOutseam = drawOutseam().join( + new Path() + .move(points.styleWaistOutLily) + .line(points.styleWaistInLily) + .line(points.crossSeamCurveStart) + .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork) + ) + paths.bottom.hide() + paths.upperInseam.hide() + paths.upperOutseam.hide() + } + + points.grainlineTop.y = points.styleWaistOutLily.y + points.grainlineBottom.y = points.bottom.y + macro('grainline', { + from: points.grainlineTop, + to: points.grainlineBottom, + }) + points.logoAnchor = new Point(points.crossSeamCurveStart.x / 2, points.fork.y) + snippets.logo = new Snippet('logo', points.logoAnchor) + points.scalebox = points.logoAnchor.shiftFractionTowards( + points.styleWaistOutLily.shiftFractionTowards(points.styleWaistInLily, 0.5), + 0.5 + ) + macro('scalebox', { at: points.scalebox }) + points.titleAnchor = points.logoAnchor.shift(-90, 60) + macro('title', { + nr: 1, + title: 'back', + at: points.titleAnchor, + }) + + //notches + if (options.fitGuides) { + points.waistMid = points.waistOut.shiftFractionTowards(points.waistIn, 0.5) + // shift + rotate (below) is equivalent to shifting measurements.waistToSeat perpendicular to the waistIn-waistMid line + points.seatMid = points.waistMid + .shiftTowards(points.waistIn, measurements.waistToSeat) + .rotate(90, points.waistMid) + points.seatInTarget = points.seatOut.shiftOutwards(points.seatMid, measurements.seat / 4) + points.seatOutTarget = points.seatMid.shiftTowards(points.seatOut, measurements.seat / 4) + // shift + rotate (below) is equivalent to shifting measurements.waistToHips perpendicular to the waistIn-waistOut line + points.hipsInTarget = points.waistIn + .shiftTowards(points.waistOut, measurements.waistToHips) + .rotate(-90, points.waistIn) + points.hipsOutTarget = points.waistOut + .shiftTowards(points.waistIn, measurements.waistToHips) + .rotate(90, points.waistOut) + points.hipsIn = utils.beamsIntersect( + points.hipsOutTarget, + points.hipsInTarget, + points.waistIn, + points.crossSeamCurveStart + ) + points.crossSeamCurveStartMid = utils.beamsIntersect( + points.crossSeamCurveStart, + points.crossSeamCurveStart.shift(points.waistIn.angle(points.waistOut), 1), + points.waistMid, + points.seatMid + ) + if (points.seatMid.y > points.crossSeamCurveStartMid.y) { + points.seatIn = utils.lineIntersectsCurve( + points.seatMid, + points.seatInTarget, + points.crossSeamCurveStart, + points.crossSeamCurveCp1, + points.crossSeamCurveCp2, + points.fork + ) + } else { + points.seatIn = utils.beamsIntersect( + points.seatMid, + points.seatInTarget, + points.waistIn, + points.crossSeamCurveStart + ) + } + if (points.waistOut.x > points.seatOut.x) { + points.hipsOut = utils.lineIntersectsCurve( + points.hipsIn, + points.hipsIn.rotate(180, points.hipsOutTarget), + points.kneeOut, + points.kneeOutCp2, + points.seatOut, + points.waistOut + ) + points.seatOutNotch = utils.lineIntersectsCurve( + points.seatMid, + points.seatOutTarget, + points.kneeOut, + points.kneeOutCp2, + points.seatOut, + points.waistOut + ) + } else { + points.hipsOut = utils.lineIntersectsCurve( + points.hipsIn, + points.hipsIn.rotate(180, points.hipsOutTarget), + points.seatOut, + points.seatOutCp2, + points.waistOut, + points.waistOut + ) + points.seatOutNotch = points.seatOut + } + points.kneeOutNotch = points.kneeOut + points.kneeInNotch = points.kneeIn + macro('sprinkle', { + snippet: 'notch', + on: ['seatOutNotch'], + }) + if (extendBeyondKnee) { + macro('sprinkle', { + snippet: 'notch', + on: ['kneeInNotch', 'kneeOutNotch'], + }) + } + macro('sprinkle', { + snippet: 'bnotch', + on: ['crossSeamCurveStart', 'seatIn'], + }) + + if (complete) { + paths.seatline = new Path() + .move(points.seatIn) + .line(points.seatOutNotch) + .addClass('fabric help') + .addText('Seat Line', 'center') + if ( + measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth < + measurements.waistToHips + ) { + snippets.hipsIn = new Snippet('bnotch', points.hipsIn) + snippets.hipsOut = new Snippet('notch', points.hipsOut) + paths.hipline = new Path() + .move(points.hipsIn) + .line(points.hipsOut) + .addClass('fabric help') + .addText('Hip Line', 'center') + } + } + } + + if (sa) { + paths.saBase = paths.upperOutseam.join(paths.upperInseam).hide() + paths.hemBase = paths.bottom.hide() + paths.sa = paths.hemBase + .offset(sa * 3) + .join(paths.saBase.offset(sa)) + .close() + .addClass('fabric sa') + } + + if (paperless) { + // Help construct cross seam + paths.hint = new Path() + .move(points.crossSeamCurveStart) + .line(points.crossSeamCurveMax) + .line(points.fork) + .addClass('note lashed') + macro('hd', { + id: 'wHem', + from: points.bottomIn, + to: points.bottomOut, + y: points.bottomIn.y - 30, + }) + macro('hd', { + id: 'wHemLeft', + from: points.bottomIn, + to: points.bottom, + y: points.bottomIn.y - 15, + }) + macro('hd', { + id: 'wHemRight', + from: points.bottom, + to: points.bottomOut, + y: points.bottomIn.y - 15, + }) + macro('vd', { + id: 'hHemToSideWaist', + from: points.bottomOut, + to: points.styleWaistOutLily, + x: + (points.seatOut.x > points.styleWaistOutLily.x + ? points.seatOut.x + : points.styleWaistOutLily.x) + + sa + + 15, + }) + macro('vd', { + id: 'hHemToFork', + from: points.bottomIn, + to: points.fork, + x: points.fork.x - sa - 15, + }) + macro('vd', { + id: 'hForkToCbWaist', + from: points.fork, + to: points.styleWaistInLily, + x: points.fork.x - sa - 15, + }) + macro('vd', { + id: 'hFull', + from: points.bottomIn, + to: points.styleWaistInLily, + x: points.fork.x - sa - 30, + }) + macro('vd', { + id: 'hStartCrotchCurveToCbWaist', + from: points.crossSeamCurveStart, + to: points.styleWaistInLily, + x: points.crossSeamCurveStart.x - sa - 15, + }) + macro('hd', { + id: 'wCbWaistToPleat', + from: points.styleWaistInLily, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 15, + }) + macro('hd', { + id: 'wStartCrotchCurveToPleat', + from: points.crossSeamCurveStart, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 30, + }) + macro('hd', { + id: 'wForkProjectionToPleat', + from: points.crossSeamCurveMax, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 45, + }) + macro('hd', { + id: 'wForkToPleat', + from: points.fork, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 60, + }) + macro('hd', { + id: 'wPleatToSideWaist', + from: points.grainlineTop, + to: points.styleWaistOutLily, + y: points.styleWaistInLily.y - sa - 15, + }) + if (points.seatOut.x > points.styleWaistOutLily.x) { + macro('hd', { + id: 'wPleatToSideWaistAlt', + from: points.grainlineTop, + to: points.seatOut, + y: points.styleWaistInLily.y - sa - 30, + }) + } + } + + return part +} + +export const back = { + name: 'lily.back', + from: titanBack, + //after: titanFront, + measurements: [ + 'ankle', + 'heel', // secondary measurement, used instead of ankle + ], + options: { + fitGuides: { bool: false, menu: 'advanced' }, + fitKnee: { bool: true, hide: true }, + legBalance: 0.5, // between back and front parts + waistBalance: 0.5, + crotchDrop: { pct: 0, min: 0, max: 15, menu: 'advanced' }, // 'downgrade' to advanced menu + waistHeight: { ...titanBack.options.waistHeight, pct: 50 }, // halfway between waist and hips + fabricStretch: { pct: 40, min: 0, max: 50, menu: 'fit' }, + waistEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10, + seatEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10, + kneeEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10, + //test: {pct: back.options.fabricStretch/2, min: 0, max: 50, menu: 'fit'}, + lengthBonus: 0, + lengthReduction: { + pct: 0, + min: 0, + max: 100, + toAbs: (pct, { measurements }) => measurements.waistToFloor * pct, + menu: 'style', + }, + waistbandWidth: { ...titanBack.options.waistbandWidth, menu: 'style' }, + }, + hide: 'HIDE_TREE', + draft: draftLilyBack, +} diff --git a/designs/lily/src/front.mjs b/designs/lily/src/front.mjs new file mode 100644 index 00000000000..d4e4cbb5e13 --- /dev/null +++ b/designs/lily/src/front.mjs @@ -0,0 +1,602 @@ +import { front as titanFront } from '@freesewing/titan' +import { back } from './back.mjs' + +function draftLilyFront({ + points, + Point, + paths, + Path, + measurements, + options, + complete, + paperless, + store, + macro, + utils, + snippets, + Snippet, + sa, + absoluteOptions, + log, + part, +}) { + /* + * Helper method to draw the inseam path + */ + const drawInseam = () => + new Path() + .move(points.floorIn) + .curve(points.floorInCp2, points.kneeInCp1, points.kneeIn) + .curve(points.kneeInCp2, points.forkCp1, points.fork) + /* + * Helper method to draw the outseam path + */ + const drawOutseam = () => { + const waistOut = points.styleWaistOutLily || points.waistOut + return points.waistOut.x < points.seatOut.x + ? new Path() + .move(waistOut) + .curve(points.seatOut, points.kneeOutCp1, points.kneeOut) + .curve(points.kneeOutCp2, points.floorOutCp2, points.floorOut) + : new Path() + .move(waistOut) + ._curve(points.seatOutCp1, points.seatOut) + .curve(points.seatOutCp2, points.kneeOutCp1, points.kneeOut) + .curve(points.kneeOutCp2, points.floorOutCp2, points.floorOut) + } + /* + * Helper method to draw the outline path + */ + const drawPath = () => { + const waistIn = points.styleWaistInLily || points.waistIn + const waistOut = points.styleWaistOutLily || points.waistOut + return drawOutseam() + .line(points.floorIn) + .join(drawInseam()) + .curve(points.crotchSeamCurveCp1, points.crotchSeamCurveCp2, points.crotchSeamCurveStart) + .line(waistIn) + .line(waistOut) + .close() + } + /* + * Helper method to calculate the length of the crotch seam + */ + const crotchSeamDelta = () => + new Path() + .move(points.waistIn) + .line(points.crotchSeamCurveStart) + .curve(points.crotchSeamCurveCp2, points.crotchSeamCurveCp1, points.fork) + .length() - measurements.crossSeamFront + /* + * Helper method to (re)draw the crotch seam + */ + const drawCrotchSeam = () => { + points.crotchSeamCurveStart = points.waistIn.shiftFractionTowards( + points.cfSeat, + options.crotchSeamCurveStart + ) + points.crotchSeamCurveMax = utils.beamsIntersect( + points.waistIn, + points.cfSeat, + points.fork, + points.fork.shift(0, 666) + ) + points.crotchSeamCurveCp1 = points.fork + .shiftFractionTowards(points.crotchSeamCurveMax, options.crotchSeamCurveBend) + .rotate(options.crotchSeamCurveAngle * -1, points.fork) + points.crotchSeamCurveCp2 = points.crotchSeamCurveStart.shiftFractionTowards( + points.crotchSeamCurveMax, + options.crotchSeamCurveBend + ) + points.forkCp1 = points.crotchSeamCurveCp1.rotate(90, points.fork) + } + /* + * Helper method to calculate the inseam delta + */ + const inseamDelta = () => drawInseam().length() - store.get('inseamBack') + /* + * Helper method to calculate the outseam delta + */ + const outseamDelta = () => drawOutseam().length() - store.get('outseamBack') + /* + * Helper method to lengthen/shorten both inseam and outseam + */ + const adaptInseamAndOutseam = () => { + const shift = [ + 'kneeInCp1', + 'kneeInCp2', + 'kneeOutCp1', + 'kneeOutCp2', + 'kneeIn', + 'kneeOut', + 'knee', + 'floorInCp2', + 'floorIn', + 'floorOutCp2', + 'floorOut', + 'floor', + 'grainlineBottom', + ] + let delta = seamDelta() + let run = 0 + do { + run++ + for (const i of shift) points[i] = points[i].shift(90, delta) + delta = seamDelta() + } while (Math.abs(delta) > 1 && run < 10) + } + /* + * Helper method to determine the delta common when both inseam and outseam + * are either too long or too short + */ + const seamDelta = () => { + const inseam = inseamDelta() + const outseam = outseamDelta() + return Math.abs(inseam) > Math.abs(outseam) ? outseam : inseam + } + /* + * Helper method that can fit either inseam or outseam + */ + const adaptSeam = (side) => { + const out = side === 'out' ? true : false + const rotate = [ + 'cfSeat', + 'crotchSeamCurveCp1', + 'crotchSeamCurveCp2', + 'crotchSeamCurveStart', + 'waistIn', + 'cfWaist', + 'waistOut', + ] + rotate.push(out ? 'seatOut' : 'fork') + const deltaMethod = out ? outseamDelta : inseamDelta + let run = 0 + let delta = deltaMethod() + do { + for (const i of rotate) + points[i] = points[i].rotate( + (delta / 10) * (out ? 1 : -1), + points[out ? 'fork' : 'seatOut'] + ) + run++ + delta = deltaMethod() + } while (Math.abs(delta) > 1 && run < 20) + } + const adaptOutseam = () => adaptSeam('out') + const adaptInseam = () => adaptSeam('in') + + // NOTE: majority of points re-used from titan + + // shape at the ankle (unlike titan) + points.floorOut = points.floor.shift(180, store.get('halfAnkle')) + points.floorIn = points.floorOut.flipX(points.floor) + + // Control points between knee and ankle + points.floorInCp2 = points.floorIn.shift(90, points.knee.dy(points.floor) / 3) + points.kneeInCp1 = points.kneeIn.shift(90, -points.knee.dy(points.floor) / 3) + points.floorOutCp2 = points.floorOut.shift(90, points.knee.dy(points.floor) / 3) + points.kneeOutCp2 = points.kneeOut.shift(90, -points.knee.dy(points.floor) / 3) + + // other control points have already been calculated in titan + // Control points to shape the legs towards the seat + // Balance the waist + + // Draw initial crotch seam + drawCrotchSeam() + + // Uncomment this to see the outline prior to fitting the crotch seam + //paths.seam1 = drawPath().attr('class', 'dashed lining') + + if (options.fitCrossSeam && options.fitCrossSeamFront) { + let delta = crotchSeamDelta() + let run = 0 + do { + run++ + // Remedy A: Slash and spread + for (const i of ['waistIn', 'waistOut', 'cfWaist']) + points[i] = points[i].rotate(delta / -15, points.seatOut) + // Remedy B: Nudge the fork inwards/outwards + points.fork = points.fork.shift(180, delta / 5) + drawCrotchSeam() + delta = crotchSeamDelta() + // Uncomment the line below this to see all iterations + //paths[`try${run}`] = drawPath().attr('class', 'dotted') + } while (Math.abs(delta) > 1 && run < 15) + } + + // Uncomment this to see the outline prior to fitting the inseam & outseam + //paths.seam2 = drawPath().attr('class', 'dotted interfacing') + + /* + * With the cross seams matched back and front, + * all that's left is to match the inseam and outseam + */ + + // When both are too short/long, adapt the leg length + if ((inseamDelta() < 0 && outseamDelta() < 0) || (inseamDelta() > 0 && outseamDelta() > 0)) + adaptInseamAndOutseam() + + // Now one is ok, the other will be adapted + adaptOutseam() + adaptInseam() + + // Changing one will ever so slightly impact the other, so let's run both again to be sure + adaptOutseam() + adaptInseam() + + // Only now style the waist lower if requested + // Note: redo this for lily even though it was already done for titan; + // calculation for titan happened using its own seam lengths + if (options.waistHeight < 1 || absoluteOptions.waistbandWidth > 0) { + points.styleWaistOutLily = drawOutseam().shiftAlong( + measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth + ) + points.styleWaistInLily = utils.beamsIntersect( + points.styleWaistOutLily, + points.styleWaistOutLily.shift(points.waistOut.angle(points.waistIn), 10), + points.waistIn, + points.crotchSeamCurveStart + ) + } else { + points.styleWaistInLily = points.waistIn.clone() + points.styleWaistOutLily = points.waistOut.clone() + } + store.set('frontWaist', points.styleWaistInLily.dist(points.styleWaistOutLily)) + + // Now that the top of the garment has been lowered, adjust the + // crotchSeamCurveStart so it doesn't start above the top of the garment. + if (points.crotchSeamCurveStart.y < points.styleWaistInLily.y) { + points.crotchSeamCurveStart = points.styleWaistInLily.clone() + } + + // Seamline + paths.seam = drawPath().attr('class', 'fabric') + + // adjust the length (at the bottom) + let extendBeyondKnee = 1 + if (options.lengthReduction > 0) { + let requestedLength = store.get('requestedLength') + // leggings must reach to fork at least, so define a minimum + let waistToFork = points.waistX.dy(points.fork) + let waistToKnee = points.waistX.dy(points.knee) // adapting the seams may have shifted the knee up or down + if (waistToFork > requestedLength) { + //log.warning('length reduction capped; cutting off at fork') // log only for back part + // add one percent to waistToFork to ensure that path length is nonzero + requestedLength = waistToFork * 1.01 + } + + // work-around to avoid splitting exactly at the knee + // (due to a bug, splitting a path at a node is not possible) + if (0.999 < requestedLength / waistToKnee && requestedLength / waistToKnee < 1.001) { + requestedLength = 1.001 * waistToKnee + } + points.bottom = points.waistX.shift(270, requestedLength) + let upperPoint, upperCp + if (requestedLength < waistToKnee) { + extendBeyondKnee = 0 + + // 'cut' between fork and knee + if (points.waistOut.x < points.seatOut.x) { + upperPoint = points.styleWaistOutLily + upperCp = points.seatOut + } else { + upperPoint = points.seatOut + upperCp = points.seatOutCp2 + } + points.bottomOut = utils.lineIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeOut, + points.kneeOutCp1, + upperCp, + upperPoint + ) + + points.bottomIn = utils.lineIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeIn, + points.kneeInCp2, + points.forkCp1, + points.fork + ) + } else { + // 'cut' between knee and 'floor' + points.bottomOut = utils.lineIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeOut, + points.kneeOutCp2, + points.floorOutCp2, + points.floorOut + ) + + points.bottomIn = utils.lineIntersectsCurve( + points.bottom.shift(0, 999), + points.bottom.shift(180, 999), + points.kneeIn, + points.kneeInCp1, + points.floorInCp2, + points.floorIn + ) + } + + // define the three parts of the path, then combine + paths.bottom = new Path().move(points.bottomOut).line(points.bottomIn) + + const halves = paths.seam.split(points.bottomOut) + paths.upperOutseam = halves[0] + const halves2 = halves[1].split(points.bottomIn) + paths.upperInseam = halves2[1] + + paths.seam = paths.upperOutseam.join(paths.bottom).join(paths.upperInseam) + } else { + // define the same three parts of the path as when length reduction is enabled, then combine + + // first define the points (also used for paperless) + points.bottom = points.floor + points.bottomIn = points.floorIn + points.bottomOut = points.floorOut + + paths.bottom = new Path().move(points.bottomOut).line(points.bottomIn) + + // note: upperInseam contains waist and cross seam as well + paths.upperInseam = drawInseam() + .curve(points.crotchSeamCurveCp1, points.crotchSeamCurveCp2, points.crotchSeamCurveStart) + .line(points.styleWaistInLily) + .line(points.styleWaistOutLily) + paths.upperOutseam = drawOutseam() + paths.bottom.hide() + paths.upperInseam.hide() + paths.upperOutseam.hide() + } + + if (complete) { + points.grainlineTop.y = points.styleWaistInLily.y + points.grainlineBottom.y = points.bottom.y + macro('grainline', { + from: points.grainlineTop, + to: points.grainlineBottom, + }) + points.logoAnchor = new Point(points.crotchSeamCurveStart.x / 2, points.fork.y) + snippets.logo = new Snippet('logo', points.logoAnchor) + points.titleAnchor = points.logoAnchor.shift(-90, 60) + macro('title', { + nr: 2, + title: 'front', + at: points.titleAnchor, + }) + + //notches + if (options.fitGuides) { + points.waistMid = points.waistOut.shiftFractionTowards(points.waistIn, 0.5) + points.seatMid = points.waistMid + .shiftTowards(points.waistOut, measurements.waistToSeat) + .rotate(90, points.waistMid) + points.seatInTarget = points.seatOut.shiftOutwards(points.seatMid, measurements.seat / 4) + points.seatOutTarget = points.seatMid.shiftTowards(points.seatOut, measurements.seat / 4) + points.hipsInTarget = points.waistIn + .shiftTowards(points.waistOut, measurements.waistToHips) + .rotate(90, points.waistIn) + points.hipsOutTarget = points.waistOut + .shiftTowards(points.waistIn, measurements.waistToHips) + .rotate(-90, points.waistOut) + points.hipsIn = utils.beamsIntersect( + points.hipsOutTarget, + points.hipsInTarget, + points.waistIn, + points.crotchSeamCurveStart + ) + // intersection between the vertical line from waistMid to seatMid and a line parallel to waistIn-waistOut that goes through crotchSeamCurveStart + points.crotchSeamCurveStartMid = utils.beamsIntersect( + points.crotchSeamCurveStart, + points.crotchSeamCurveStart.shift(points.waistIn.angle(points.waistOut), 1), + points.waistMid, + points.seatMid + ) + // check whether intersection occurs above or below crotch seam curve start + points.seatInTemp = utils.beamsIntersect( + points.seatMid, + points.seatInTarget, + points.crotchSeamCurveStart, + points.waistIn + ) // NOTE: guaranteed to return a Point since the lines cannot be parallel + if (points.seatInTemp.y <= points.crotchSeamCurveStartMid.y) { + // intersection is above the crotch seam curve start, so on the line segment + points.seatIn = points.seatInTemp.clone() + } else if (points.seatInTemp.y > points.fork.y) { + // seat appears to be below crotch + log.warn('seat estimated to be below crotch; this is probably not accurate') + points.seatIn = points.fork.clone() + } else { + points.seatIn = utils.beamIntersectsCurve( + points.seatMid, + points.seatInTarget, + points.crotchSeamCurveStart, + points.crotchSeamCurveCp2, + points.crotchSeamCurveCp1, + points.fork + ) + } + if (points.waistOut.x < points.seatOut.x) { + //log.info('waist to the left of seat') + points.hipsOut = utils.lineIntersectsCurve( + points.hipsIn, + points.hipsIn.rotate(180, points.hipsOutTarget), + points.waistOut, + points.seatOut, + points.kneeOutCp1, + points.kneeOut + ) + points.seatOutNotch = utils.lineIntersectsCurve( + points.seatMid, + points.seatOutTarget, + points.waistOut, + points.seatOut, + points.kneeOutCp1, + points.kneeOut + ) + } else { + //log.info('waist to the right of seat') + points.hipsOut = utils.lineIntersectsCurve( + points.hipsIn, + points.hipsIn.rotate(180, points.hipsOutTarget), + points.waistOut, + points.waistOut, + points.seatOutCp1, + points.seatOut + ) + points.seatOutNotch = points.seatOut + } + points.kneeOutNotch = points.kneeOut + points.kneeInNotch = points.kneeIn + macro('sprinkle', { + snippet: 'notch', + on: ['crotchSeamCurveStart', 'seatIn', 'seatOutNotch'], + }) + if (extendBeyondKnee) { + macro('sprinkle', { + snippet: 'notch', + on: ['kneeInNotch', 'kneeOutNotch'], + }) + } + paths.seatline = new Path() + .move(points.seatOutNotch) + .line(points.seatIn) + .addClass('fabric help') + .addText('Seat Line', 'center') + if ( + measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth < + measurements.waistToHips + ) { + macro('sprinkle', { + snippet: 'notch', + on: ['hipsIn', 'hipsOut'], + }) + paths.hipline = new Path() + .move(points.hipsOut) + .line(points.hipsIn) + .addClass('fabric help') + .addText('Hip Line', 'center') + } + } + + if (sa) { + paths.saBase = paths.upperInseam.join(paths.upperOutseam).hide() + paths.hemBase = paths.bottom.hide() + paths.sa = paths.hemBase + .offset(sa * 3) + .join(paths.saBase.offset(sa)) + .close() + .addClass('fabric sa') + } + + // Delete Titan's old hint path (which could start above the top + // of the garment) + // delete paths.hint + + if (paperless) { + // Help construct crotch seam + paths.hint = new Path() + .move(points.crotchSeamCurveStart) + .line(points.crotchSeamCurveMax) + .line(points.fork) + .addClass('note lashed') + macro('hd', { + id: 'wHemLeftToPleat', + from: points.bottomOut, + to: points.bottom, + y: points.bottomIn.y - 15, + }) + macro('hd', { + id: 'wHemRightToPleat', + from: points.bottom, + to: points.bottomIn, + y: points.bottomIn.y - 15, + }) + macro('hd', { + id: 'wHem', + from: points.bottomOut, + to: points.bottomIn, + y: points.bottomIn.y - 30, + }) + macro('vd', { + id: 'hHemToFork', + from: points.bottomOut, + to: points.fork, + x: points.fork.x + sa + 15, + }) + macro('vd', { + id: 'hForkToCfWaist', + from: points.fork, + to: points.styleWaistInLily, + x: points.fork.x + sa + 15, + }) + macro('vd', { + id: 'hHemToSideWaist', + from: points.bottomIn, + to: points.styleWaistOutLily, + x: + (points.seatOut.x < points.styleWaistOutLily.x + ? points.seatOut.x + : points.styleWaistOutLily.x) - + sa - + 15, + }) + macro('vd', { + id: 'hStartCrotchCurveToCfWaist', + from: points.crotchSeamCurveStart, + to: points.styleWaistInLily, + x: points.crotchSeamCurveStart.x + sa + 15, + }) + macro('hd', { + id: 'wSideWaistToPleat', + from: points.seatOut, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 15, + }) + if (points.styleWaistOutLily.x < points.seatOut.x) { + macro('hd', { + id: 'wSideWaistToPleatAlt', + from: points.styleWaistOutLily, + to: points.grainlineTop, + y: points.styleWaistInLily.y - sa - 30, + }) + } + macro('hd', { + id: 'wPleatToCfWaist', + from: points.grainlineTop, + to: points.styleWaistInLily, + y: points.styleWaistInLily.y - sa - 15, + }) + macro('hd', { + id: 'wPleatToStartCrotchCurve', + from: points.grainlineTop, + to: points.crotchSeamCurveStart, + y: points.styleWaistInLily.y - sa - 30, + }) + macro('hd', { + id: 'wPleatToCrotchProjection', + from: points.grainlineTop, + to: points.crotchSeamCurveMax, + y: points.styleWaistInLily.y - sa - 45, + }) + macro('hd', { + id: 'wPleatToFork', + from: points.grainlineTop, + to: points.fork, + y: points.styleWaistInLily.y - sa - 60, + }) + } + } + + return part +} + +export const front = { + name: 'lily.front', + from: titanFront, + after: back, + hide: 'HIDE_TREE', + draft: draftLilyFront, +} diff --git a/designs/lily/src/index.mjs b/designs/lily/src/index.mjs new file mode 100644 index 00000000000..1a831522031 --- /dev/null +++ b/designs/lily/src/index.mjs @@ -0,0 +1,16 @@ +import { Design } from '@freesewing/core' +import { i18n } from '../i18n/index.mjs' +import { data } from '../data.mjs' +// Parts +import { front } from './front.mjs' +import { back } from './back.mjs' +import { waistband } from './waistband.mjs' + +// Create new design +const Lily = new Design({ + data, + parts: [front, back, waistband], +}) + +// Named exports +export { front, back, waistband, i18n, Lily } diff --git a/designs/lily/src/waistband.mjs b/designs/lily/src/waistband.mjs new file mode 100644 index 00000000000..b6deb052d44 --- /dev/null +++ b/designs/lily/src/waistband.mjs @@ -0,0 +1,18 @@ +import { back } from './back.mjs' +import { front } from './front.mjs' +import { waistband as pacoWaistband } from '@freesewing/paco' + +export const waistband = { + name: 'lily.waistband', + after: [back, front], + hide: 'HIDE_TREE', + draft: (sh) => { + const { snippets, part } = sh + //draft + pacoWaistband.draft(sh) + //delete eyelets + for (let s in snippets) delete snippets[s] + + return part + }, +} diff --git a/designs/lily/tests/shared.test.mjs b/designs/lily/tests/shared.test.mjs new file mode 100644 index 00000000000..e587224479e --- /dev/null +++ b/designs/lily/tests/shared.test.mjs @@ -0,0 +1,20 @@ +// This file is auto-generated | Any changes you make will be overwritten. +import { Lily, i18n } from '../src/index.mjs' + +// Shared tests +import { testPatternConfig } from '../../../tests/designs/config.mjs' +import { testPatternI18n } from '../../../tests/designs/i18n.mjs' +import { testPatternDrafting } from '../../../tests/designs/drafting.mjs' +import { testPatternSampling } from '../../../tests/designs/sampling.mjs' + +// Test config +testPatternConfig(Lily) + +// Test translation +testPatternI18n(Lily, i18n) + +// Test drafting - Change the second parameter to `true` to log errors +testPatternDrafting(Lily, false) + +// Test sampling - Change the second parameter to `true` to log errors +testPatternSampling(Lily, false) diff --git a/packages/new-design/lib/download-list.mjs b/packages/new-design/lib/download-list.mjs index e5c0c5778af..3f4b50e29d8 100644 --- a/packages/new-design/lib/download-list.mjs +++ b/packages/new-design/lib/download-list.mjs @@ -10,7 +10,6 @@ export const downloads = { 'sde/site.config.mjs', 'sde/tailwind.config.mjs', 'sde/hooks/use-design.mjs', - 'sde/pkgs/.gitkeep', 'sde/mock/designs.mjs', 'sde/mock/docs-helpers.mjs', 'sde/mock/highlight.mjs', @@ -21,6 +20,7 @@ export const downloads = { 'sde/mock/read-more.mjs', 'sde/mock/tabbed-example.mjs', 'sde/mock/youtube.mjs', + 'sde/pkgs/.gitkeep', 'sde/prebuild/.gitkeep', 'sde/prebuild/sitenav.de.mjs', 'sde/prebuild/sitenav.en.mjs', @@ -36,23 +36,11 @@ export const downloads = { 'sde/components/search.mjs', 'sde/components/header/design-picker.mjs', 'sde/components/header/index.mjs', - 'sde/components/navigation/modal-menu.mjs', 'sde/components/layouts/bare.mjs', 'sde/components/layouts/default.mjs', 'sde/components/layouts/workbench.mjs', + 'sde/components/navigation/modal-menu.mjs', 'sde/components/wrappers/page.mjs', - 'sde/design/from-bent/src/back.mjs', - 'sde/design/from-bent/src/front.mjs', - 'sde/design/from-bent/src/index.mjs', - 'sde/design/from-bent/src/top-sleeve.mjs', - 'sde/design/from-bent/src/under-sleeve.mjs', - 'sde/design/from-bent/i18n/de.json', - 'sde/design/from-bent/i18n/en.json', - 'sde/design/from-bent/i18n/es.json', - 'sde/design/from-bent/i18n/fr.json', - 'sde/design/from-bent/i18n/index.mjs', - 'sde/design/from-bent/i18n/nl.json', - 'sde/design/from-bent/i18n/uk.json', 'sde/design/from-bella/en.json', 'sde/design/from-bella/i18n/de.json', 'sde/design/from-bella/i18n/en.json', @@ -64,6 +52,18 @@ export const downloads = { 'sde/design/from-bella/src/back.mjs', 'sde/design/from-bella/src/front.mjs', 'sde/design/from-bella/src/index.mjs', + 'sde/design/from-bent/i18n/de.json', + 'sde/design/from-bent/i18n/en.json', + 'sde/design/from-bent/i18n/es.json', + 'sde/design/from-bent/i18n/fr.json', + 'sde/design/from-bent/i18n/index.mjs', + 'sde/design/from-bent/i18n/nl.json', + 'sde/design/from-bent/i18n/uk.json', + 'sde/design/from-bent/src/back.mjs', + 'sde/design/from-bent/src/front.mjs', + 'sde/design/from-bent/src/index.mjs', + 'sde/design/from-bent/src/top-sleeve.mjs', + 'sde/design/from-bent/src/under-sleeve.mjs', 'sde/design/from-breanna/i18n/de.json', 'sde/design/from-breanna/i18n/en.json', 'sde/design/from-breanna/i18n/es.json', @@ -75,6 +75,10 @@ export const downloads = { 'sde/design/from-breanna/src/front.mjs', 'sde/design/from-breanna/src/index.mjs', 'sde/design/from-breanna/src/sleeve.mjs', + 'sde/design/from-brian/src/back.mjs', + 'sde/design/from-brian/src/front.mjs', + 'sde/design/from-brian/src/index.mjs', + 'sde/design/from-brian/src/sleeve.mjs', 'sde/design/from-brian/i18n/de.json', 'sde/design/from-brian/i18n/en.json', 'sde/design/from-brian/i18n/es.json', @@ -82,10 +86,6 @@ export const downloads = { 'sde/design/from-brian/i18n/index.mjs', 'sde/design/from-brian/i18n/nl.json', 'sde/design/from-brian/i18n/uk.json', - 'sde/design/from-brian/src/back.mjs', - 'sde/design/from-brian/src/front.mjs', - 'sde/design/from-brian/src/index.mjs', - 'sde/design/from-brian/src/sleeve.mjs', 'sde/design/from-scratch/i18n/de.json', 'sde/design/from-scratch/i18n/en.json', 'sde/design/from-scratch/i18n/es.json', @@ -189,6 +189,60 @@ export const downloads = { 'sde/public/locales/de/tutorial.json', 'sde/public/locales/de/ui-settings.json', 'sde/public/locales/de/workbench.json', + 'sde/public/locales/es/account.json', + 'sde/public/locales/es/auth.json', + 'sde/public/locales/es/bella.json', + 'sde/public/locales/es/bent.json', + 'sde/public/locales/es/breanna.json', + 'sde/public/locales/es/brian.json', + 'sde/public/locales/es/common.json', + 'sde/public/locales/es/core-settings.json', + 'sde/public/locales/es/curate.json', + 'sde/public/locales/es/cut.json', + 'sde/public/locales/es/design-options.json', + 'sde/public/locales/es/designs.json', + 'sde/public/locales/es/docs.json', + 'sde/public/locales/es/errors.json', + 'sde/public/locales/es/flag.json', + 'sde/public/locales/es/footer.json', + 'sde/public/locales/es/frombella.json', + 'sde/public/locales/es/frombent.json', + 'sde/public/locales/es/frombreanna.json', + 'sde/public/locales/es/frombrian.json', + 'sde/public/locales/es/fromscratch.json', + 'sde/public/locales/es/fromtitan.json', + 'sde/public/locales/es/gdpr.json', + 'sde/public/locales/es/header.json', + 'sde/public/locales/es/hodl.json', + 'sde/public/locales/es/homepage.json', + 'sde/public/locales/es/lab.json', + 'sde/public/locales/es/locales.json', + 'sde/public/locales/es/logs.json', + 'sde/public/locales/es/measurements.json', + 'sde/public/locales/es/modal.json', + 'sde/public/locales/es/newsletter.json', + 'sde/public/locales/es/patrons.json', + 'sde/public/locales/es/plugin-annotations.json', + 'sde/public/locales/es/plugins.json', + 'sde/public/locales/es/popout.json', + 'sde/public/locales/es/print.json', + 'sde/public/locales/es/roles.json', + 'sde/public/locales/es/sde.json', + 'sde/public/locales/es/sections.json', + 'sde/public/locales/es/sets.json', + 'sde/public/locales/es/sponsors.json', + 'sde/public/locales/es/status.json', + 'sde/public/locales/es/submissions.json', + 'sde/public/locales/es/support.json', + 'sde/public/locales/es/susi.json', + 'sde/public/locales/es/tags.json', + 'sde/public/locales/es/techniques.json', + 'sde/public/locales/es/themes.json', + 'sde/public/locales/es/timeago.json', + 'sde/public/locales/es/titan.json', + 'sde/public/locales/es/tutorial.json', + 'sde/public/locales/es/ui-settings.json', + 'sde/public/locales/es/workbench.json', 'sde/public/locales/en/account.json', 'sde/public/locales/en/auth.json', 'sde/public/locales/en/bella.json', @@ -297,114 +351,6 @@ export const downloads = { 'sde/public/locales/fr/tutorial.json', 'sde/public/locales/fr/ui-settings.json', 'sde/public/locales/fr/workbench.json', - 'sde/public/locales/nl/account.json', - 'sde/public/locales/nl/auth.json', - 'sde/public/locales/nl/bella.json', - 'sde/public/locales/nl/bent.json', - 'sde/public/locales/nl/breanna.json', - 'sde/public/locales/nl/brian.json', - 'sde/public/locales/nl/common.json', - 'sde/public/locales/nl/core-settings.json', - 'sde/public/locales/nl/curate.json', - 'sde/public/locales/nl/cut.json', - 'sde/public/locales/nl/design-options.json', - 'sde/public/locales/nl/designs.json', - 'sde/public/locales/nl/docs.json', - 'sde/public/locales/nl/errors.json', - 'sde/public/locales/nl/flag.json', - 'sde/public/locales/nl/footer.json', - 'sde/public/locales/nl/frombella.json', - 'sde/public/locales/nl/frombent.json', - 'sde/public/locales/nl/frombreanna.json', - 'sde/public/locales/nl/frombrian.json', - 'sde/public/locales/nl/fromscratch.json', - 'sde/public/locales/nl/fromtitan.json', - 'sde/public/locales/nl/gdpr.json', - 'sde/public/locales/nl/header.json', - 'sde/public/locales/nl/hodl.json', - 'sde/public/locales/nl/homepage.json', - 'sde/public/locales/nl/lab.json', - 'sde/public/locales/nl/locales.json', - 'sde/public/locales/nl/logs.json', - 'sde/public/locales/nl/measurements.json', - 'sde/public/locales/nl/modal.json', - 'sde/public/locales/nl/newsletter.json', - 'sde/public/locales/nl/patrons.json', - 'sde/public/locales/nl/plugin-annotations.json', - 'sde/public/locales/nl/plugins.json', - 'sde/public/locales/nl/popout.json', - 'sde/public/locales/nl/print.json', - 'sde/public/locales/nl/roles.json', - 'sde/public/locales/nl/sde.json', - 'sde/public/locales/nl/sections.json', - 'sde/public/locales/nl/sets.json', - 'sde/public/locales/nl/sponsors.json', - 'sde/public/locales/nl/status.json', - 'sde/public/locales/nl/submissions.json', - 'sde/public/locales/nl/support.json', - 'sde/public/locales/nl/susi.json', - 'sde/public/locales/nl/tags.json', - 'sde/public/locales/nl/techniques.json', - 'sde/public/locales/nl/themes.json', - 'sde/public/locales/nl/timeago.json', - 'sde/public/locales/nl/titan.json', - 'sde/public/locales/nl/tutorial.json', - 'sde/public/locales/nl/ui-settings.json', - 'sde/public/locales/nl/workbench.json', - 'sde/public/locales/es/account.json', - 'sde/public/locales/es/auth.json', - 'sde/public/locales/es/bella.json', - 'sde/public/locales/es/bent.json', - 'sde/public/locales/es/breanna.json', - 'sde/public/locales/es/brian.json', - 'sde/public/locales/es/common.json', - 'sde/public/locales/es/core-settings.json', - 'sde/public/locales/es/curate.json', - 'sde/public/locales/es/cut.json', - 'sde/public/locales/es/design-options.json', - 'sde/public/locales/es/designs.json', - 'sde/public/locales/es/docs.json', - 'sde/public/locales/es/errors.json', - 'sde/public/locales/es/flag.json', - 'sde/public/locales/es/footer.json', - 'sde/public/locales/es/frombella.json', - 'sde/public/locales/es/frombent.json', - 'sde/public/locales/es/frombreanna.json', - 'sde/public/locales/es/frombrian.json', - 'sde/public/locales/es/fromscratch.json', - 'sde/public/locales/es/fromtitan.json', - 'sde/public/locales/es/gdpr.json', - 'sde/public/locales/es/header.json', - 'sde/public/locales/es/hodl.json', - 'sde/public/locales/es/homepage.json', - 'sde/public/locales/es/lab.json', - 'sde/public/locales/es/locales.json', - 'sde/public/locales/es/logs.json', - 'sde/public/locales/es/measurements.json', - 'sde/public/locales/es/modal.json', - 'sde/public/locales/es/newsletter.json', - 'sde/public/locales/es/patrons.json', - 'sde/public/locales/es/plugin-annotations.json', - 'sde/public/locales/es/plugins.json', - 'sde/public/locales/es/popout.json', - 'sde/public/locales/es/print.json', - 'sde/public/locales/es/roles.json', - 'sde/public/locales/es/sde.json', - 'sde/public/locales/es/sections.json', - 'sde/public/locales/es/sets.json', - 'sde/public/locales/es/sponsors.json', - 'sde/public/locales/es/status.json', - 'sde/public/locales/es/submissions.json', - 'sde/public/locales/es/support.json', - 'sde/public/locales/es/susi.json', - 'sde/public/locales/es/tags.json', - 'sde/public/locales/es/techniques.json', - 'sde/public/locales/es/themes.json', - 'sde/public/locales/es/timeago.json', - 'sde/public/locales/es/titan.json', - 'sde/public/locales/es/tutorial.json', - 'sde/public/locales/es/ui-settings.json', - 'sde/public/locales/es/workbench.json', 'sde/public/locales/uk/account.json', 'sde/public/locales/uk/auth.json', 'sde/public/locales/uk/bella.json', @@ -459,6 +405,60 @@ export const downloads = { 'sde/public/locales/uk/tutorial.json', 'sde/public/locales/uk/ui-settings.json', 'sde/public/locales/uk/workbench.json', + 'sde/public/locales/nl/account.json', + 'sde/public/locales/nl/auth.json', + 'sde/public/locales/nl/bella.json', + 'sde/public/locales/nl/bent.json', + 'sde/public/locales/nl/breanna.json', + 'sde/public/locales/nl/brian.json', + 'sde/public/locales/nl/common.json', + 'sde/public/locales/nl/core-settings.json', + 'sde/public/locales/nl/curate.json', + 'sde/public/locales/nl/cut.json', + 'sde/public/locales/nl/design-options.json', + 'sde/public/locales/nl/designs.json', + 'sde/public/locales/nl/docs.json', + 'sde/public/locales/nl/errors.json', + 'sde/public/locales/nl/flag.json', + 'sde/public/locales/nl/footer.json', + 'sde/public/locales/nl/frombella.json', + 'sde/public/locales/nl/frombent.json', + 'sde/public/locales/nl/frombreanna.json', + 'sde/public/locales/nl/frombrian.json', + 'sde/public/locales/nl/fromscratch.json', + 'sde/public/locales/nl/fromtitan.json', + 'sde/public/locales/nl/gdpr.json', + 'sde/public/locales/nl/header.json', + 'sde/public/locales/nl/hodl.json', + 'sde/public/locales/nl/homepage.json', + 'sde/public/locales/nl/lab.json', + 'sde/public/locales/nl/locales.json', + 'sde/public/locales/nl/logs.json', + 'sde/public/locales/nl/measurements.json', + 'sde/public/locales/nl/modal.json', + 'sde/public/locales/nl/newsletter.json', + 'sde/public/locales/nl/patrons.json', + 'sde/public/locales/nl/plugin-annotations.json', + 'sde/public/locales/nl/plugins.json', + 'sde/public/locales/nl/popout.json', + 'sde/public/locales/nl/print.json', + 'sde/public/locales/nl/roles.json', + 'sde/public/locales/nl/sde.json', + 'sde/public/locales/nl/sections.json', + 'sde/public/locales/nl/sets.json', + 'sde/public/locales/nl/sponsors.json', + 'sde/public/locales/nl/status.json', + 'sde/public/locales/nl/submissions.json', + 'sde/public/locales/nl/support.json', + 'sde/public/locales/nl/susi.json', + 'sde/public/locales/nl/tags.json', + 'sde/public/locales/nl/techniques.json', + 'sde/public/locales/nl/themes.json', + 'sde/public/locales/nl/timeago.json', + 'sde/public/locales/nl/titan.json', + 'sde/public/locales/nl/tutorial.json', + 'sde/public/locales/nl/ui-settings.json', + 'sde/public/locales/nl/workbench.json', 'shared/utils.mjs', 'shared/components/mdx/dynamic.mjs', 'shared/components/mdx/design-measurements.mjs', diff --git a/sites/lab/hooks/use-design.mjs b/sites/lab/hooks/use-design.mjs index 280d21acf42..c5b7f8bc066 100644 --- a/sites/lab/hooks/use-design.mjs +++ b/sites/lab/hooks/use-design.mjs @@ -58,6 +58,7 @@ import { Wahid as wahid } from '@freesewing/wahid' import { Walburga as walburga } from '@freesewing/walburga' import { Waralee as waralee } from '@freesewing/waralee' import { Yuri as yuri } from '@freesewing/yuri' +import { Lily as lily } from '@freesewing/lily' const designs = { aaron, @@ -116,6 +117,7 @@ const designs = { walburga, waralee, yuri, + lily, } export const useDesign = (design) => (designs[design] ? designs[design] : false) diff --git a/sites/org/hooks/use-design.mjs b/sites/org/hooks/use-design.mjs index de6c7f2e460..b823a2c8a46 100644 --- a/sites/org/hooks/use-design.mjs +++ b/sites/org/hooks/use-design.mjs @@ -55,6 +55,7 @@ import { Wahid as wahid } from '@freesewing/wahid' import { Walburga as walburga } from '@freesewing/walburga' import { Waralee as waralee } from '@freesewing/waralee' import { Yuri as yuri } from '@freesewing/yuri' +import { Lily as lily } from '@freesewing/lily' const designs = { aaron, @@ -110,6 +111,7 @@ const designs = { walburga, waralee, yuri, + lily, } export const useDesign = (design) => (designs[design] ? designs[design] : false) diff --git a/sites/org/pages/account/patterns/lily/edit.mjs b/sites/org/pages/account/patterns/lily/edit.mjs new file mode 100644 index 00000000000..4f6a6136207 --- /dev/null +++ b/sites/org/pages/account/patterns/lily/edit.mjs @@ -0,0 +1,86 @@ +/* + * This page is auto-generated. Do not edit it by hand. + */ +import { Lily } from 'designs/lily/src/index.mjs' +// Dependencies +import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import { nsMerge, getSearchParam } from 'shared/utils.mjs' +// Hooks +import { useState, useEffect, useContext } from 'react' +import { useTranslation } from 'next-i18next' +import { useBackend } from 'shared/hooks/use-backend.mjs' +// Context +import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs' +// Components +import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' +import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs' +import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs' +import { Loading } from 'shared/components/spinner.mjs' + +// Translation namespaces used on this page +const ns = nsMerge('lily', wbNs, pageNs) + +const EditDesignComponent = ({ id, design, Design, settings }) => ( + +) + +const EditLilyPage = ({ page }) => { + const { setLoadingStatus } = useContext(LoadingStatusContext) + const backend = useBackend() + const { t } = useTranslation(ns) + + const [pattern, setPattern] = useState(false) + + useEffect(() => { + const getPattern = async () => { + setLoadingStatus([true, t('backendLoadingStarted')]) + let result + try { + result = await backend.getPattern(id) + if (result.success) { + setPattern(result.data.pattern) + setLoadingStatus([true, 'backendLoadingCompleted', true, true]) + } else setLoadingStatus([true, 'backendError', true, false]) + } catch (err) { + console.log(err) + setLoadingStatus([true, 'backendError', true, false]) + } + } + const id = getSearchParam('id') + if (id) getPattern() + }, [backend, setLoadingStatus, t]) + + return ( + // prettier-ignore + + {pattern ? ( + + ) : ( +
+

{t('account:oneMomentPLease')}

+ +
+ )} +
+ ) +} + +export default EditLilyPage + +export async function getStaticProps({ locale }) { + return { + props: { + ...(await serverSideTranslations(locale, ns)), + page: { + locale, + path: ['account', 'patterns', 'lily'], + title: 'Lily', + }, + }, + } +} diff --git a/sites/org/pages/new/lily.mjs b/sites/org/pages/new/lily.mjs new file mode 100644 index 00000000000..e9abc59ccd7 --- /dev/null +++ b/sites/org/pages/new/lily.mjs @@ -0,0 +1,41 @@ +/* + * This page is auto-generated. Do not edit it by hand. + */ +import { Lily } from 'designs/lily/src/index.mjs' +// Dependencies +import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import { nsMerge } from 'shared/utils.mjs' +// Components +import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' +import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs' +import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs' + +// Translation namespaces used on this page +const ns = nsMerge('lily', wbNs, pageNs) + +const NewLilyPage = ({ page, docs }) => ( + + + +) + +export default NewLilyPage + +export async function getStaticProps({ locale }) { + return { + props: { + ...(await serverSideTranslations(locale, ns)), + page: { + locale, + path: ['new', 'lily'], + title: 'Lily', + }, + }, + } +} diff --git a/sites/shared/i18n/designs.mjs b/sites/shared/i18n/designs.mjs index d8d7bb41782..53120fa144a 100644 --- a/sites/shared/i18n/designs.mjs +++ b/sites/shared/i18n/designs.mjs @@ -61,6 +61,7 @@ import { i18n as wahid } from '@freesewing/wahid' import { i18n as walburga } from '@freesewing/walburga' import { i18n as waralee } from '@freesewing/waralee' import { i18n as yuri } from '@freesewing/yuri' +import { i18n as lily } from '@freesewing/lily' export const designs = { aaron, @@ -122,4 +123,5 @@ export const designs = { walburga, waralee, yuri, + lily, } diff --git a/sites/shared/prebuild/data/design-measurements.mjs b/sites/shared/prebuild/data/design-measurements.mjs index 5dce375afa4..a7704e8a3d4 100644 --- a/sites/shared/prebuild/data/design-measurements.mjs +++ b/sites/shared/prebuild/data/design-measurements.mjs @@ -1,3 +1,3 @@ // __SDEFILE__ - This file is a dependency for the stand-alone environment // This file is auto-generated by the prebuild script | Any changes will be overwritten -export const measurements = {"aaron":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips"],"albert":["chest","hpsToWaistBack","waist","waistToKnee","hips"],"bee":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope","bustPointToUnderbust"],"bella":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"benjamin":["neck"],"bent":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToElbow","shoulderToWrist","wrist"],"bob":[],"breanna":["biceps","bustFront","bustSpan","highBust","highBustFront","hpsToBust","hpsToWaistBack","hpsToWaistFront","waist","waistToHips","neck","shoulderToShoulder","shoulderSlope","shoulderToWrist","wrist"],"brian":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToWrist","wrist"],"bruce":["hips","upperLeg","waistToHips","waistToUpperLeg"],"carlita":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","highBust","bustSpan","shoulderToElbow","shoulderToWrist","wrist"],"carlton":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","shoulderToElbow","shoulderToWrist","wrist"],"cathrin":["underbust","waist","hips","waistToUnderbust","waistToHips"],"charlie":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"cornelius":["waist","hips","inseam","seat","waistToKnee","waistToHips","waistToFloor","knee"],"diana":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"examples":["head"],"florence":["head"],"florent":["head"],"gozer":["hpsToWaistBack","waistToFloor","head"],"hi":[],"holmes":["head"],"hortensia":[],"huey":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"hugo":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"jaeger":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToElbow","shoulderToWrist","wrist"],"legend":[],"lucy":[],"lumina":["waist","waistBack","hips","seat","seatBack","inseam","waistToSeat","waistToUpperLeg","waistToKnee","waistToHips","waistToFloor","knee","ankle","crossSeam","crossSeamFront","heel","upperLeg"],"lumira":["waist","waistBack","hips","seat","seatBack","upperLeg","knee","ankle","heel","inseam","crossSeam","crossSeamFront","waistToFloor","waistToKnee","waistToUpperLeg","waistToSeat","waistToHips"],"lunetius":["waistToKnee","waistToUpperLeg","waistToFloor","hpsToWaistBack","neck","shoulderToShoulder","shoulderToElbow","waistToHips"],"magde":[],"naomiwu":["hips","seat","waistToHips","waistToSeat","waistToUpperLeg"],"noble":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"octoplushy":[],"onyx":["biceps","neck","chest","waist","hips","seat","waistToHips","hpsToWaistBack","hpsToWaistFront","waistToSeat","crossSeam","waistToArmpit","inseam","upperLeg","waistToUpperLeg","ankle","wrist","shoulderToWrist","head"],"otis":["waist"],"paco":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","heel"],"penelope":["waist","seat","waistToHips","waistToSeat","waistToKnee"],"plugintest":["seat","seatBack","waist","waistBack","crossSeam","crossSeamFront"],"rendertest":[],"sandy":["waist","waistToFloor","waistToHips","hips"],"shelly":["biceps","neck","chest","hips","waistToHips","hpsToWaistBack","waistToArmpit","wrist","shoulderToWrist"],"shin":["hips","upperLeg","waistToUpperLeg","waistToHips"],"simon":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","shoulderToWrist","wrist"],"simone":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","highBust","bustSpan","shoulderToWrist","wrist"],"skully":[],"sven":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"tamiko":["shoulderToShoulder","chest","hpsToWaistBack","shoulderSlope","waistToHips"],"teagan":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"tiberius":["head","shoulderToElbow","shoulderToShoulder","biceps","hpsToWaistBack","waistToKnee","waist","chest","seat","hips","waistToFloor","waistToUpperLeg"],"titan":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"trayvon":["hpsToWaistBack","waistToHips","neck"],"tristan":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"uma":["waist","seat","waistToSeat","waistToUpperLeg"],"wahid":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"walburga":["head","shoulderToShoulder","hpsToWaistBack","waistToKnee","waistToHips","waistToFloor","waistToUpperLeg","neck"],"waralee":["seat","inseam","crotchDepth","waistToHips"],"yuri":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"]} +export const measurements = {"aaron":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips"],"albert":["chest","hpsToWaistBack","waist","waistToKnee","hips"],"bee":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope","bustPointToUnderbust"],"bella":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"benjamin":["neck"],"bent":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToElbow","shoulderToWrist","wrist"],"bob":[],"breanna":["biceps","bustFront","bustSpan","highBust","highBustFront","hpsToBust","hpsToWaistBack","hpsToWaistFront","waist","waistToHips","neck","shoulderToShoulder","shoulderSlope","shoulderToWrist","wrist"],"brian":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToWrist","wrist"],"bruce":["hips","upperLeg","waistToHips","waistToUpperLeg"],"carlita":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","highBust","bustSpan","shoulderToElbow","shoulderToWrist","wrist"],"carlton":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","shoulderToElbow","shoulderToWrist","wrist"],"cathrin":["underbust","waist","hips","waistToUnderbust","waistToHips"],"charlie":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"cornelius":["waist","hips","inseam","seat","waistToKnee","waistToHips","waistToFloor","knee"],"diana":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"examples":["head"],"florence":["head"],"florent":["head"],"gozer":["hpsToWaistBack","waistToFloor","head"],"hi":[],"holmes":["head"],"hortensia":[],"huey":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"hugo":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"jaeger":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToElbow","shoulderToWrist","wrist"],"legend":[],"lucy":[],"lumina":["waist","waistBack","hips","seat","seatBack","inseam","waistToSeat","waistToUpperLeg","waistToKnee","waistToHips","waistToFloor","knee","ankle","crossSeam","crossSeamFront","heel","upperLeg"],"lumira":["waist","waistBack","hips","seat","seatBack","upperLeg","knee","ankle","heel","inseam","crossSeam","crossSeamFront","waistToFloor","waistToKnee","waistToUpperLeg","waistToSeat","waistToHips"],"lunetius":["waistToKnee","waistToUpperLeg","waistToFloor","hpsToWaistBack","neck","shoulderToShoulder","shoulderToElbow","waistToHips"],"magde":[],"naomiwu":["hips","seat","waistToHips","waistToSeat","waistToUpperLeg"],"noble":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"octoplushy":[],"onyx":["biceps","neck","chest","waist","hips","seat","waistToHips","hpsToWaistBack","hpsToWaistFront","waistToSeat","crossSeam","waistToArmpit","inseam","upperLeg","waistToUpperLeg","ankle","wrist","shoulderToWrist","head"],"otis":["waist"],"paco":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","heel"],"penelope":["waist","seat","waistToHips","waistToSeat","waistToKnee"],"plugintest":["seat","seatBack","waist","waistBack","crossSeam","crossSeamFront"],"rendertest":[],"sandy":["waist","waistToFloor","waistToHips","hips"],"shelly":["biceps","neck","chest","hips","waistToHips","hpsToWaistBack","waistToArmpit","wrist","shoulderToWrist"],"shin":["hips","upperLeg","waistToUpperLeg","waistToHips"],"simon":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","shoulderToWrist","wrist"],"simone":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","highBust","bustSpan","shoulderToWrist","wrist"],"skully":[],"sven":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"tamiko":["shoulderToShoulder","chest","hpsToWaistBack","shoulderSlope","waistToHips"],"teagan":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"tiberius":["head","shoulderToElbow","shoulderToShoulder","biceps","hpsToWaistBack","waistToKnee","waist","chest","seat","hips","waistToFloor","waistToUpperLeg"],"titan":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"trayvon":["hpsToWaistBack","waistToHips","neck"],"tristan":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"uma":["waist","seat","waistToSeat","waistToUpperLeg"],"wahid":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"walburga":["head","shoulderToShoulder","hpsToWaistBack","waistToKnee","waistToHips","waistToFloor","waistToUpperLeg","neck"],"waralee":["seat","inseam","crotchDepth","waistToHips"],"yuri":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"lily":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","ankle","heel"]} diff --git a/sites/shared/prebuild/data/design-options.mjs b/sites/shared/prebuild/data/design-options.mjs index 38eedb053d2..70e73d74bd4 100644 --- a/sites/shared/prebuild/data/design-options.mjs +++ b/sites/shared/prebuild/data/design-options.mjs @@ -1,3 +1,3 @@ // __SDEFILE__ - This file is a dependency for the stand-alone environment // This file is auto-generated by the prebuild script | Any changes will be overwritten -export const options = {"aaron":{"brianFitSleeve":false,"brianFitCollar":false,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":8,"min":0,"max":20,"menu":"style"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.6,"backNeckCutout":0.05,"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":8,"min":0,"max":20,"menu":"fit"},"stretchFactor":{"pct":5,"min":0,"max":15,"menu":"fit"},"armholeDrop":{"pct":10,"min":0,"max":75,"menu":"style"},"necklineBend":{"pct":100,"min":40,"max":100,"menu":"style"},"necklineDrop":{"pct":20,"min":10,"max":35,"menu":"style"},"shoulderStrapWidth":{"pct":15,"min":10,"max":40,"menu":"style"},"shoulderStrapPlacement":{"pct":40,"min":20,"max":80,"menu":"style"},"backlineBend":{"pct":50,"min":25,"max":100,"menu":"style"},"knitBindingWidth":{"pct":600,"min":300,"max":800,"menu":"style"}},"albert":{"backOpening":{"pct":10,"min":0,"max":25,"menu":"fit"},"bibWidth":{"pct":100,"min":50,"max":125,"menu":"style"},"bibLength":{"pct":75,"min":0,"max":90,"menu":"style"},"lengthBonus":{"pct":0,"min":-20,"max":25,"menu":"style"},"chestDepth":{"pct":22,"min":15,"max":90,"menu":"fit"},"strapWidth":{"pct":60,"min":20,"max":100,"menu":"style"}},"bee":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"advanced"},"bustDartCurve":1,"bustDartLength":1,"waistDartLength":1,"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"advanced"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.35,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"advanced"},"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"ties":{"bool":true,"menu":"style"},"crossBackTies":{"bool":false,"menu":"style"},"bandLength":{"pct":85,"min":75,"max":90,"menu":"style"},"neckTieLength":{"pct":80,"min":70,"max":100,"menu":"style"},"neckTieWidth":{"pct":6,"min":2,"max":18,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"reversible":{"bool":false,"menu":"style"},"topDepth":{"pct":54,"min":50,"max":80,"menu":"fit"},"bottomCupDepth":{"pct":8,"min":0,"max":20,"menu":"fit"},"sideDepth":{"pct":20.6,"min":0,"max":30,"menu":"fit"},"sideCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"frontCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"bellaGuide":{"bool":false,"menu":"fit"},"pointedTieEnds":{"bool":false,"menu":"style"},"duoColorTies":{"bool":false,"menu":"style"},"bandTieWidth":{"pct":3,"min":1,"max":9,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"bandTieLength":{"pct":35,"min":30,"max":50,"menu":"style"}},"bella":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":{"pct":100,"min":0,"max":100,"menu":"darts"},"bustDartLength":{"pct":90,"min":75,"max":100,"menu":"darts"},"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"}},"benjamin":{"transitionLength":2,"bandLength":0.17,"adjustmentRibbonWidth":20,"collarEase":{"pct":3,"min":0,"max":6,"menu":"fit"},"adjustmentRibbon":{"bool":false,"menu":"fit"},"tipWidth":{"pct":15,"min":0,"max":20,"menu":"style"},"knotWidth":{"pct":7,"min":5,"max":10,"menu":"style"},"bowLength":{"pct":28,"min":23,"max":33,"menu":"style"},"bowStyle":{"dflt":"butterfly","list":["diamond","butterfly","square","widesquare"],"menu":"style"},"endStyle":{"dflt":"straight","list":["straight","pointed","rounded"],"menu":"style"},"collarBandHeight":{"pct":6,"min":5,"max":8,"menu":"style"}},"bent":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"chestEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":40,"min":2,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":60,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"}},"bob":{"neckRatio":{"pct":80,"min":70,"max":90,"menu":"fit"},"widthRatio":{"pct":45,"min":35,"max":55,"menu":"fit"},"lengthRatio":{"pct":75,"min":55,"max":85,"menu":"fit"},"headSize":{"pct":100,"min":10,"max":200,"snap":5,"menu":"size"}},"breanna":{"collarFactor":4.8,"armholeDepthBase":0.6,"shoulderSeamLength":0.95,"sleeveWidthGuarantee":0.9,"breannaFitSleeve":true,"breannaFitCollar":true,"shoulderDart":{"bool":false,"menu":"fit"},"waistDart":{"bool":true,"menu":"fit"},"primaryBustDart":{"list":["06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"06:00","doNotTranslate":true,"menu":"style"},"secondaryBustDart":{"list":["none","06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"13:30","doNotTranslate":true,"menu":"style"},"acrossBackFactor":{"pct":96,"min":93,"max":100,"menu":"advanced"},"armholeDepthFactor":{"pct":100,"min":80,"max":120,"menu":"advanced"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"shoulderDartSize":{"pct":7,"min":4,"max":10},"shoulderDartLength":{"pct":85,"min":60,"max":100},"waistDartSize":{"pct":10,"min":4,"max":15},"waistDartLength":{"pct":85,"min":60,"max":100},"verticalEase":{"pct":2,"min":0,"max":8,"menu":"fit"},"frontArmholeDeeper":{"pct":1,"min":0,"max":5,"menu":"advanced"},"shoulderEase":{"pct":0,"min":0,"max":4,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"waistEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"primaryBustDartShaping":{"pct":50,"min":25,"max":75,"menu":"style"},"primaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"secondaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":100,"menu":"advanced"},"frontScyeDart":{"pct":25,"min":0,"max":45,"menu":"fit"},"sleevecapEase":{"pct":0.5,"min":0,"max":2.5,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":110,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":45,"min":35,"max":55,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"cuffEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"brian":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"bruce":{"hipRatioFront":0.245,"hipRatioBack":0.315,"legRatioInset":0.3,"legRatioBack":0.32,"gussetRatio":0.0666,"gussetInsetRatio":0.6,"heightRatioInset":0.65,"bulge":{"deg":20,"min":0,"max":40,"menu":"fit"},"legBonus":{"pct":0,"min":-10,"max":20,"menu":"style"},"rise":{"pct":10,"min":0,"max":25,"menu":"style"},"stretch":{"pct":15,"min":5,"max":25,"menu":"fit"},"legStretch":{"pct":40,"min":25,"max":45,"menu":"fit"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"carlita":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":0,"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"contour":{"pct":50,"min":25,"max":75,"menu":"advanced"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"carlton":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":{"deg":4,"min":0,"max":6,"menu":"pockets"},"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"cathrin":{"waistReduction":{"pct":10,"min":2,"max":20,"menu":"fit"},"panels":{"list":["11","13"],"dflt":"13","menu":"fit"},"backOpening":{"pct":4,"min":3,"max":10,"menu":"style"},"backRise":{"pct":15,"min":1,"max":25,"menu":"style"},"backDrop":{"pct":2,"min":-10,"max":5,"menu":"style"},"frontRise":{"pct":4,"min":-10,"max":8,"menu":"style"},"frontDrop":{"pct":5,"min":0,"max":10,"menu":"style"},"hipRise":{"pct":5,"min":0,"max":15,"menu":"style"}},"charlie":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":1,"min":0,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":15,"min":10,"max":30,"menu":"fit"},"waistHeight":{"pct":-4,"min":-15,"max":40,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":true,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":55,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":50,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandReduction":0.25,"waistbandFactor":0.1,"frontPocketSlantDepth":{"pct":85,"min":70,"max":100,"menu":"pockets.frontpockets"},"frontPocketSlantWidth":{"pct":25,"min":15,"max":35,"menu":"pockets.frontpockets"},"frontPocketSlantRound":{"pct":30,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketSlantBend":{"pct":25,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketWidth":{"pct":55,"min":45,"max":65,"menu":"pockets.frontpockets"},"frontPocketDepth":{"pct":100,"min":85,"max":110,"menu":"pockets.frontpockets"},"frontPocketFacing":{"pct":45,"min":25,"max":65,"menu":"pockets.frontpockets"},"flyCurve":{"pct":72,"min":50,"max":100,"menu":"advanced.fly"},"flyLength":{"pct":45,"min":30,"max":60,"menu":"advanced.fly"},"flyWidth":{"pct":15,"min":10,"max":20,"menu":"advanced.fly"},"backPocketVerticalPlacement":{"pct":24,"min":18,"max":30,"menu":"pockets.backpockets"},"backPocketHorizontalPlacement":{"pct":55,"min":48,"max":62,"menu":"pockets.backpockets"},"backPocketWidth":{"pct":55,"min":50,"max":60,"menu":"pockets.backpockets"},"backPocketDepth":{"pct":60,"min":40,"max":80,"menu":"pockets.backpockets"},"backPocketFacing":{"bool":true,"menu":"pockets.backpockets"},"waistbandCurve":{"pct":0,"min":0,"max":35,"menu":"fit"},"beltLoops":{"count":8,"min":6,"max":12,"menu":"advanced"}},"cornelius":{"pctAtoO":0.5,"pctAtoC":0.25,"pctUtoA":0.25,"pctJtoA":0.25,"pctSeatAdjustment":0.5,"ventLength":{"pct":70,"min":25,"max":110,"menu":"style"},"fullness":{"pct":0,"min":0,"max":55,"menu":"fit"},"waistbandBelowWaist":{"pct":5,"min":0,"max":15,"menu":"style"},"waistReduction":{"pct":1,"min":-2,"max":10,"menu":"fit"},"bandBelowKnee":{"pct":25,"min":15,"max":50,"menu":"advanced"},"pctZtoR":0.35,"pctRtoZin":0.75,"pctRtoZup":0.25,"pctRtoKin":0.75,"pctRtoKdown":0.25,"pctKtoRout":0.15,"pctKtoRup":0.25,"pctKtoH":0.7,"flyWidth":{"pct":0.38,"min":0.2,"max":0.6,"menu":"style"},"kneeToBelow":{"pct":94,"min":85,"max":110,"menu":"advanced"},"cuffWidth":{"pct":0,"min":-50,"max":150,"menu":"style"},"cuffStyle":{"dflt":"elegant","list":["traditional","elegant","keystone"],"menu":"style"}},"diana":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":0,"min":-5,"max":50,"menu":"fit"},"chestEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"collarEase":0,"cuffEase":{"pct":20,"min":0,"max":30,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":0,"max":50,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":0,"min":0,"max":20,"menu":"advanced"},"armholeDepthFactor":{"pct":55,"min":50,"max":70,"menu":"advanced"},"backNeckCutout":0.05,"frontArmholeDeeper":{"pct":0,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"drapeAngle":{"deg":20,"min":10,"max":30,"menu":"style"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"fit"},"shoulderSeamLength":{"pct":35,"min":0.1,"max":60,"menu":"style"},"waistEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"hipsEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":100,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":6,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"examples":{"size":{"pct":50,"min":5,"max":100,"menu":"stack"},"x":{"pct":0,"min":-100,"max":100,"menu":"stack"},"y":{"pct":0,"min":-100,"max":100,"menu":"stack"},"stackIt":{"dflt":"Do stack","list":["Do stack","Do not stack"],"menu":"stack"}},"florence":{"length":{"pct":40,"min":35,"max":45,"menu":"fit"},"height":{"pct":26,"min":23,"max":29,"menu":"fit"},"curve":{"pct":12.5,"min":10,"max":15,"menu":"fit"}},"florent":{"topSide":0.8,"brim":0,"headEase":{"pct":2,"min":0,"max":5,"menu":"fit"}},"gozer":{},"hi":{"length":1000,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"nosePointiness":{"pct":0,"min":-5,"max":10,"menu":"style"},"aggressive":{"bool":false,"menu":"style"},"hungry":{"pct":50,"min":0,"max":100,"menu":"style"}},"holmes":{"headEase":{"pct":3,"min":0,"max":9,"snap":{"metric":[6,13,19,25,32,38,44,50],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1,44.45,50.8]},"menu":"fit"},"lengthRatio":{"pct":55,"min":40,"max":60,"menu":"style"},"gores":{"count":6,"min":4,"max":20,"menu":"style"},"visorAngle":{"deg":45,"min":10,"max":90,"menu":"style"},"visorWidth":{"pct":5,"min":1,"max":17,"snap":5,"menu":"style"},"visorLength":{"pct":100,"min":80,"max":150,"menu":"advanced"},"earLength":{"pct":100,"min":80,"max":150,"menu":"style"},"earWidth":{"pct":100,"min":80,"max":150,"menu":"style"},"buttonhole":{"bool":false,"menu":"style"}},"hortensia":{"width":230,"height":330,"size":{"pct":50,"min":20,"max":200,"menu":"style"},"zipperSize":{"dflt":"#5","list":["#3","#4","#4.5","#5","#6","#8","#10","invisible"],"menu":"style"},"minHandleSpaceWidth":80,"maxHandleSpaceWidth":250,"pctHandleSpace":50,"pctHandleVert":42,"handleWidth":{"pct":8.6,"min":4,"max":25,"menu":"style"},"strapLength":{"pct":160,"min":75,"max":250,"menu":"style"}},"huey":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"ribbing":{"bool":true,"menu":"style"},"ribbingHeight":{"pct":10,"min":5,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":4,"max":12,"menu":"fit"},"pocket":{"bool":true,"menu":"style"},"pocketHeight":{"pct":30,"min":25,"max":35,"menu":"style"},"pocketWidth":{"pct":60,"min":50,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"},"hoodHeight":{"pct":59,"min":55,"max":65,"menu":"style"},"hoodCutback":{"pct":10,"min":5,"max":15,"menu":"style"},"hoodClosure":{"pct":13.5,"min":10,"max":15,"menu":"style"},"hoodDepth":{"pct":8.5,"min":5,"max":12,"menu":"style"},"hoodAngle":{"deg":5,"min":2,"max":8,"menu":"style"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"hugo":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":8,"min":4,"max":20,"menu":"fit"},"collarEase":0.05,"cuffEase":{"pct":20,"min":10,"max":50,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":0,"max":20,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.5,"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":12,"min":4,"max":20,"menu":"fit"},"ribbingHeight":{"pct":10,"min":4,"max":20,"menu":"style"},"pocketWidth":{"pct":50,"min":35,"max":65,"menu":"style"},"sleevecapEase":0,"sleevecapTopFactorX":0.5,"sleevecapTopFactorY":0.45,"sleevecapBackFactorX":0.6,"sleevecapBackFactorY":0.33,"sleevecapFrontFactorX":0.55,"sleevecapFrontFactorY":0.33,"sleevecapQ1Offset":0.017,"sleevecapQ2Offset":0.035,"sleevecapQ3Offset":0.025,"sleevecapQ4Offset":0.01,"sleevecapQ1Spread1":0.1,"sleevecapQ1Spread2":0.15,"sleevecapQ2Spread1":0.15,"sleevecapQ2Spread2":0.1,"sleevecapQ3Spread1":0.1,"sleevecapQ3Spread2":0.08,"sleevecapQ4Spread1":0.07,"sleevecapQ4Spread2":0.063,"sleeveWidthGuarantee":0.9,"sleeveLengthBonus":{"pct":2,"min":0,"max":10,"menu":"style"},"ribbingStretch":{"pct":5,"min":0,"max":10,"menu":"fit"}},"jaeger":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":19,"min":10,"max":25,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"centerBackDart":{"pct":0.5,"min":0,"max":1.5,"menu":"fit"},"hipsEase":{"pct":12,"min":8,"max":20,"menu":"fit"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"rollLineCollarHeight":{"pct":6,"min":5,"max":9,"menu":"collar"},"reduceWaistStandardFraction":0.08,"reduceWaistDartFraction":0.05,"reduceHipsStandardFraction":0.1,"centerFrontHemDrop":{"pct":2,"min":0,"max":4,"menu":"style"},"frontPocketPlacement":{"pct":75,"min":65,"max":85,"menu":"pockets"},"frontPocketWidth":{"pct":68,"min":55,"max":75,"menu":"pockets"},"frontPocketDepth":{"pct":110,"min":80,"max":130,"menu":"pockets"},"frontPocketRadius":{"pct":10,"min":0,"max":50,"menu":"pockets"},"frontDartPlacement":{"pct":55,"min":45,"max":60,"menu":"advanced"},"sideFrontPlacement":{"pct":85,"min":80,"max":90,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"innerPocketPlacement":{"pct":52,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"frontCutawayAngle":{"deg":2.5,"min":1,"max":4,"menu":"style"},"frontCutawayStart":{"pct":30,"min":10,"max":70,"menu":"style"},"frontCutawayEnd":{"pct":40,"min":10,"max":40,"menu":"style"},"hemRadius":{"pct":100,"min":35,"max":100,"menu":"style"},"chestPocketDepth":{"pct":110,"min":70,"max":150,"menu":"pockets"},"chestPocketWidth":{"pct":37,"min":30,"max":45,"menu":"pockets"},"chestPocketPlacement":{"pct":52,"min":40,"max":60,"menu":"pockets"},"chestPocketAngle":{"deg":2.5,"min":0,"max":7,"menu":"pockets"},"chestPocketWeltSize":{"pct":17.5,"min":10,"max":25,"menu":"pockets"},"lapelStart":{"pct":10,"min":0,"max":35,"menu":"style"},"collarHeight":{"pct":9,"min":7,"max":10,"menu":"collar"},"collarNotchDepth":{"pct":15,"min":15,"max":50,"menu":"collar"},"collarNotchAngle":{"deg":45,"min":30,"max":60,"menu":"collar"},"collarNotchReturn":{"pct":100,"min":50,"max":100,"menu":"collar"},"chestShaping":{"pct":30,"min":0,"max":100,"menu":"advanced"},"buttons":{"list":["1","2","3"],"dflt":"2","menu":"style"},"buttonLength":{"pct":30,"min":30,"max":60,"menu":"style"},"chestShapingMax":5,"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"style"},"backVent":{"count":1,"min":0,"max":2,"menu":"style"},"backVentLength":{"pct":35,"min":15,"max":100,"menu":"style"},"collarSpread":{"deg":13,"min":5,"max":35,"menu":"collar"},"collarRoll":{"pct":5,"min":0,"max":10,"menu":"collar"},"pocketFoldover":{"pct":25,"min":15,"max":35,"menu":"pockets"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"sleeveVentLength":{"pct":35,"min":25,"max":55,"menu":"sleeves"},"sleeveVentWidth":{"pct":18,"min":10,"max":26,"menu":"sleeves"}},"legend":{},"lucy":{"width":{"pct":50,"min":30,"max":100,"menu":"style"},"length":{"pct":50,"min":30,"max":100,"menu":"style"},"edge":{"pct":25,"min":20,"max":50,"menu":"style"}},"lumina":{"waistband":{"bool":true,"menu":"style"},"lowerwaistbandback":{"bool":true},"ease":{"pct":-8,"min":-25,"max":10,"menu":"fit"},"length":{"pct":35,"min":10,"max":100,"menu":"style"},"waistbandsize":{"pct":50,"min":0,"max":150},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"waistreduction":{"pct":4,"min":0,"max":10},"sidepanel":{"pct":25,"min":10,"max":40,"menu":"style"},"smoothing":{"pct":85,"min":50,"max":100,"menu":"advanced"},"fixedsidepanel":{"bool":false,"menu":"style"},"crossSeamAngle":35,"crotchToKnee":0.4,"waistToKneeCP":0.4,"kneeToWaistLength":400,"crotchPointsCP":2,"pocket":{"bool":true,"menu":"style"},"pocketdepth":{"pct":90,"min":20,"max":120}},"lumira":{"gussetcompensation":1.03,"waistband":{"bool":true,"menu":"style"},"backgusset":{"bool":false,"menu":"style"},"cyclingchamois":{"bool":false,"menu":"style"},"frontbulge":{"bool":false},"ease":{"pct":-8,"min":-30,"max":0,"menu":"fit"},"leglength":{"pct":100,"min":10,"max":100,"menu":"style"},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"gussetwidth":{"pct":16,"min":5,"max":30},"backgussetwidth":{"pct":50,"min":20,"max":75},"frontgussetlength":{"pct":12.5,"min":0,"max":30},"waistbandsize":{"pct":90,"min":0,"max":150},"waistreduction":{"pct":4,"min":0,"max":10},"backinserttopcp":0.3,"backinserttopcpangle":0,"backinsertgussetcp":0.2,"frontbulgelift":1.75,"frontbulgeforwardpercentage":0.125,"frontbulgemiddleshift":0.65,"buttlift":{"pct":30,"min":0,"max":60},"frontbulgesize":{"pct":2.5,"min":0,"max":10}},"lunetius":{"lengthRatio":{"pct":105,"min":60,"max":130,"menu":"style"},"widthRatio":{"pct":100,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toBelowKnee","toHips","toUpperLeg","toFloor"],"dflt":"toBelowKnee","menu":"style"}},"magde":{"size":{"pct":100,"min":15,"max":200,"menu":"style"},"taperRatio":{"pct":60,"min":50,"max":100,"menu":"style"},"flapHeightRatio":{"pct":83,"min":60,"max":100,"menu":"style"},"openingRatio":{"pct":66,"min":30,"max":90,"menu":"style"},"onePieceLid":{"bool":false,"menu":"style"},"useCommonWebbingSizes":{"bool":true,"menu":"style"}},"naomiwu":{"hipsEase":{"pct":0,"min":-5,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"waistSlant":{"pct":0,"min":0,"max":2,"menu":"fit"},"invertFly":{"bool":false,"menu":"style"},"length":{"pct":40,"min":0,"max":80,"menu":"style"},"waistbandWidth":{"pct":4.4,"min":2,"max":10,"menu":"style"},"beltLoopWidth":{"pct":40,"min":20,"max":60,"menu":"style"},"frontPocketOpeningBend":{"pct":80,"min":0,"max":100,"menu":"pockets"},"frontPocketOpeningDepth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backPocketDepth":{"pct":70,"min":60,"max":85,"menu":"pockets"},"backPocketChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"frontPocketOpeningWidth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backAttachmentWidth":{"pct":40,"min":25,"max":55,"menu":"pockets"},"backAttachmentDepth":{"pct":190,"min":100,"max":220,"menu":"pockets"},"frontAttachmentWidth":{"pct":95,"min":80,"max":110,"menu":"pockets"},"frontAttachmentChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"backAttachmentFlapChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"dartLength":{"pct":90,"min":50,"max":100,"menu":"advanced"},"dartWidth":{"pct":5,"min":4,"max":8,"menu":"advanced"},"flyLength":{"pct":75,"min":50,"max":85,"menu":"advanced"},"flyWidth":{"pct":16,"min":10,"max":22,"menu":"advanced"},"frontHalf":{"pct":55,"min":50,"max":60,"menu":"advanced"},"jseamBend":{"pct":65,"min":50,"max":100,"menu":"advanced"},"minDartWidth":{"pct":2,"min":0.5,"max":4,"menu":"advanced"}},"noble":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":{"pct":50,"min":10,"max":90},"dartPosition":{"dflt":"shoulder","list":["shoulder","armhole"],"menu":"darts"},"shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"darts"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"}},"octoplushy":{"sizeConstant":200,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"type":{"dflt":"octoplushy","list":["octoplushy","octopus","squid"],"menu":"style"},"armWidth":{"pct":15,"min":10,"max":30,"menu":"style"},"armLength":{"pct":200,"min":100,"max":500,"menu":"style"},"neckWidth":{"pct":25,"min":25,"max":45,"menu":"style"},"armTaper":{"pct":25,"min":0,"max":50,"menu":"style"},"bottomTopArmRatio":{"pct":57,"min":25,"max":75,"menu":"style"},"bottomArmReduction":{"pct":90,"min":75,"max":125},"bottomArmReductionPlushy":{"pct":80,"min":75,"max":125}},"onyx":{"neckStyle":{"dflt":"neckband","list":["neckband","hood"],"menu":"style"},"skirt":{"bool":false,"menu":"style"},"sleeveRibbing":{"bool":false,"menu":"construction"},"legRibbing":{"bool":false,"menu":"construction"},"zipperPosition":{"dflt":"front","list":["front","back","none"],"menu":"construction"},"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"waistEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"hipsEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"seatEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"upperLegEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"legHemEase":{"pct":0,"min":-40,"max":100,"menu":"fit"},"centerSeamEase":{"pct":0,"min":-20,"max":50,"menu":"fit"},"outseamEase":{"pct":0,"min":-20,"max":5,"menu":"fit"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"legLength":{"pct":20,"min":0,"max":120,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"legHem":{"pct":200,"min":0,"max":800},"crotchGussetWidth":{"pct":100,"min":75,"max":133,"menu":"fit"},"legTaperPosition":{"pct":50,"min":0,"max":100,"menu":"advanced"},"frontOnFold":{"bool":false,"menu":"construction"},"backOnFold":{"bool":true,"menu":"construction"},"zipperLength":{"pct":20,"min":0,"max":50,"menu":"construction"},"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"armholeTweakFactor":1.1,"skirtWidth":{"pct":160,"min":100,"max":250},"skirtLength":{"pct":100,"min":20,"max":500},"skirtWaistband":{"pct":200,"min":0,"max":800},"skirtHem":{"pct":200,"min":0,"max":800},"sleeveRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"sleeveRibbingLength":{"pct":75,"min":50,"max":100},"legRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"legRibbingLength":{"pct":75,"min":50,"max":100},"neckbandLength":{"pct":80,"min":50,"max":100},"neckbandWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"zipperGuardWidth":{"pct":50,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35},"menu":"construction"},"neckGuardLength":{"pct":2,"min":0,"max":5},"zipperGuardTapeCoverMaterial":0.75,"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800},"hoodDepth":{"pct":100,"min":70,"max":180},"hoodHeight":{"pct":100,"min":70,"max":140},"hoodFrontDip":{"pct":8,"min":0,"max":20},"hoodHem":{"pct":200,"min":0,"max":800},"hoodFrontBonus":{"pct":0,"min":-8,"max":10},"hoodFrontPieceSize":{"pct":50,"min":0,"max":50}},"otis":{"ease":{"pct":14,"min":0,"max":30,"menu":"fit"},"snapPlacket":{"pct":5,"min":0,"max":30,"menu":"advanced"},"sleeveType":{"dflt":"short","list":["short","long"],"menu":"style"},"hem":{"pct":10,"min":0,"max":30,"menu":"advanced"},"binding":{"pct":11,"min":2,"max":30,"menu":"advanced"}},"paco":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"kneeEase":0.06,"waistHeight":{"pct":5,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":0,"min":-15,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":10,"menu":"style"},"fitKnee":false,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"titanPaperless":false,"frontPocketHeelRatio":0.4,"backPocketWaistRatio":0.4,"backPocketHeightRatio":0.4,"backPocketWidthRatio":0.37,"waistbandHeight":0,"elasticatedCuff":{"bool":true,"menu":"style"},"ankleElastic":{"pct":5,"min":1,"max":13,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"heelEase":{"pct":5,"min":0,"max":50,"menu":"elastic"},"frontPockets":{"bool":true,"menu":"pockets"},"backPockets":{"bool":false,"menu":"pockets"},"frontPocketFlapSize":{"pct":3,"min":3,"max":3,"snap":{"metric":1,"imperial":0.79375},"menu":false},"weltFactor":0.15},"penelope":{"dartMaximumDifference":0.344,"dartMinimumDifference":0.2,"dartMinimumWidth":0.006888,"dartSideMinimum":10,"dartBackControl1":0.114,"dartBackControl2":5,"dartBackControl3":4,"curvePlacement":2.4,"dart2offset":32,"dart2factor":0.8,"hipCurveDividerDown":40,"hipCurveDividerUp":3,"sideSeamShiftPercentage":0.006,"backVentWidth":0.1,"paperlessOffset":15,"curvedDartControlAngle":2,"curvedDartTopControlOffset":0.2,"curvedDartBottomControlOffset":0.4,"curvedDarts":{"bool":true,"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"},"hemBonus":{"pct":0,"min":-35,"max":0,"menu":"style"},"hem":{"pct":2,"min":0,"max":5,"menu":"style"},"backVent":{"bool":true,"menu":"style"},"backVentLength":{"pct":40,"min":5,"max":70},"zipperLocation":{"dflt":"backSeam","list":["backSeam","sideSeam"],"menu":"style"},"nrOfDarts":{"count":2,"min":1,"max":2,"menu":"style"},"seatEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"waistEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"backDartDepthFactor":{"pct":50,"min":35,"max":70,"menu":"advanced"},"frontDartDepthFactor":{"pct":45,"min":30,"max":65,"menu":"advanced"},"dartToSideSeamFactor":{"pct":50,"min":30,"max":70,"menu":"advanced"},"waistband":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":10,"min":5,"max":20},"waistbandOverlap":{"pct":3.5,"min":0,"max":10}},"plugintest":{"plugin":{"dflt":"all","list":["all","annotations","flip","gore","i18n","measurements","mirror","round","sprinkle","title","versionfreeSvg"],"menu":"tests"},"bannerDy":{"count":-1,"min":-15,"max":15,"menu":"annotations.banner"},"bannerSpaces":{"count":10,"min":0,"max":20,"menu":"annotations.banner"},"bannerRepeat":{"count":10,"min":1,"max":20,"menu":"annotations.banner"},"bartackLength":{"count":15,"min":2,"max":100,"menu":"annotations.bartack"},"bartackAngle":{"count":0,"min":-360,"max":360,"menu":"annotations.bartack"},"bartackDensity":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackWidth":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackStart":{"pct":25,"min":0,"max":100,"menu":"annotations.bartack"},"bartackEnd":{"pct":75,"min":0,"max":100,"menu":"annotations.bartack"},"crossboxText":{"bool":true,"menu":"annotations.crossboxText"},"cutonfoldMargin":{"pct":5,"min":0,"max":25,"menu":"annotations.cutonfold"},"cutonfoldOffset":{"count":15,"min":0,"max":100,"menu":"annotations.cutonfold"},"cutonfoldGrainline":{"bool":false,"menu":"annotations.cutonfold"},"dimensionsCustomText":{"bool":false,"menu":"annotations.dimensions"},"dimensionsEndMarker":{"bool":true,"menu":"annotations.dimensions"},"dimensionsStartMarker":{"bool":true,"menu":"annotations.dimensions"},"logoScale":{"pct":100,"min":10,"max":200,"menu":"annotations.logo"},"logoRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.logo"},"pleatMargin":{"count":35,"min":0,"max":50,"menu":"annotations.pleat"},"pleatReverse":{"bool":false,"menu":"annotations.pleat"},"scaleboxRotation":{"deg":0,"min":0,"max":360,"menu":"annotations.scalebox"},"scaleboxText":{"dflt":"default","list":["default","custom","suppress"],"menu":"annotations.scalebox"},"sewtogetherHinge":{"bool":true,"menu":"annotations.sewtogether"},"sewtogetherMiddle":{"bool":false,"menu":"annotations.sewtogether"},"titleNr":{"count":1,"min":0,"max":100,"menu":"annotations.title"},"titleTitle":{"bool":true,"menu":"annotations.title"},"titleMeta":{"bool":true,"menu":"annotations.title"},"titleScale":{"pct":100,"min":10,"max":200,"menu":"annotations.title"},"titleRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.title"},"snippetScale":{"pct":100,"min":10,"max":200,"menu":"annotations.snippets"},"snippetRotation":{"deg":0,"min":-360,"max":360,"menu":"annotations.snippets"},"flipAxis":{"dflt":"x","list":["x","y"],"menu":"flip"},"goreRadius":{"count":20,"min":10,"max":30,"menu":"gore"},"goreGoreNumber":{"count":6,"min":4,"max":8,"menu":"gore"},"goreExtraLength":{"count":10,"min":0,"max":20,"menu":"gore"},"mirrorLine":{"dflt":"a","list":["a","b","none"],"menu":"mirror"},"mirrorClone":{"bool":true,"menu":"mirror"},"roundRadius":{"count":10,"min":0,"max":50,"menu":"round"},"roundHide":{"bool":false,"menu":"round"},"sprinkleScale":{"pct":100,"min":10,"max":200,"menu":"sprinkle"},"sprinkleRotate":{"deg":0,"min":-360,"max":360,"menu":"sprinkle"},"sprinkleSnippet":{"dflt":"bnotch","list":["notch","bnotch","button","buttonhole","buttonhole-start","buttonhole-end","snap-stud","snap-socket","logo"],"menu":"sprinkle"},"ringsectorInsideRadius":{"count":30,"min":10,"max":50,"menu":"ringsector"},"ringsectorOutsideRadius":{"count":60,"min":60,"max":120,"menu":"ringsector"},"ringsectorAngle":{"deg":75,"min":30,"max":120,"menu":"ringsector"}},"rendertest":{"width":{"mm":200,"min":50,"max":500,"testIgnore":false},"only":{"menu":"show","dflt":"false","list":["false","circles","colors","widths","styles","combos","text","snippets","macros"]}},"sandy":{"minimumOverlap":15,"seamlessFullCircle":{"bool":false,"menu":"construction"},"waistbandWidth":{"pct":4,"min":1,"max":8,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandPosition":{"pct":50,"min":0,"max":100,"menu":"fit"},"lengthBonus":{"pct":50,"min":10,"max":100,"menu":"style"},"circleRatio":{"pct":50,"min":20,"max":100,"menu":"style"},"waistbandOverlap":{"pct":3,"min":0,"max":15,"menu":"style"},"gathering":{"pct":0,"min":0,"max":200,"menu":"style"},"hemWidth":{"pct":2,"min":1,"max":10,"menu":"construction"},"waistbandShape":{"list":["straight","curved"],"dflt":"straight","menu":"fit"},"panels":{"count":1,"min":1,"max":8,"menu":"construction"}},"shelly":{"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"straightSides":{"bool":true,"menu":"advanced"},"hipsEase":{"pct":0,"min":-30,"max":75,"menu":"advanced"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"bodyLength":{"pct":120,"min":20,"max":300,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"hemWidth":{"pct":200,"min":0,"max":800,"menu":"construction"},"sideShape":{"pct":0,"min":-20,"max":20,"menu":"advanced"},"armholeTweakFactor":1.1,"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800,"menu":"construction"},"neckbandLength":{"pct":80,"min":50,"max":100,"menu":"fit"},"neckbandWidth":{"pct":7.5,"min":0,"max":50,"menu":"fit"}},"shin":{"frontFactor":0.58,"legFrontFactor":0.48,"gussetFactor":0.0714,"angle":10,"elasticWidth":{"pct":10,"min":4,"max":20,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"stretch":{"pct":20,"min":10,"max":30,"menu":"fit"},"bulge":{"pct":2.5,"min":0,"max":5,"menu":"fit"},"legReduction":{"pct":5,"min":0,"max":10,"menu":"fit"},"rise":{"pct":0,"min":0,"max":25,"menu":"style"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"simon":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"}},"simone":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"minimalDartShaping":5,"bustDartAngle":{"deg":10,"min":0,"max":20,"menu":"advanced"},"bustDartLength":{"pct":80,"min":50,"max":90,"menu":"advanced"},"frontDarts":{"bool":false,"menu":"advanced"},"frontDartLength":{"pct":45,"min":30,"max":60,"menu":"advanced"},"contour":{"pct":50,"min":30,"max":75,"menu":"style"},"bustAlignedButtons":{"dflt":"disabled","list":["even","split","disabled"],"menu":"style.closure"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"}},"skully":{"size":{"pct":75,"min":10,"max":300,"menu":"fit"}},"sven":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":10,"min":5,"max":30,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":0,"max":30,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"waistEase":0.08,"sleeveLengthBonus":{"pct":3,"min":0,"max":10,"menu":"style"},"ribbingHeight":{"pct":8,"min":3,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"ribbing":{"bool":true,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"tamiko":{"armholeDepthFactor":{"pct":50,"min":40,"max":60,"menu":"fit"},"chestEase":{"pct":2,"min":1,"max":20,"menu":"fit"},"flare":{"deg":15,"min":-10,"max":30,"menu":"style"},"lengthBonus":{"pct":13,"min":0,"max":60,"menu":"style"},"shoulderseamLength":{"pct":10,"min":5,"max":25,"menu":"style"},"draftForHighBust":{"bool":false,"menu":"fit"}},"teagan":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":12,"min":5,"max":25,"menu":"fit"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":5,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":8,"min":4,"max":12,"menu":"fit"},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveWidthGuarantee":0.85,"sleeveLength":{"pct":30,"min":20,"max":100,"menu":"fit"},"fitWaist":{"bool":false,"menu":"fit"},"waistEase":{"pct":25,"min":8,"max":40},"hipsEase":{"pct":18,"min":8,"max":30,"menu":"fit"},"necklineDepth":{"pct":25,"min":20,"max":40,"menu":"style"},"necklineWidth":{"pct":30,"min":10,"max":50,"menu":"style"},"necklineBend":{"pct":30,"min":0,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveEase":{"pct":15,"min":5,"max":35,"menu":"style"}},"tiberius":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"armholeDrop":{"pct":110,"min":100,"max":150,"menu":"fit"},"lengthBonus":{"pct":90,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":100,"min":50,"max":130,"menu":"style"},"clavi":{"bool":false,"menu":"style.clavi"},"clavusLocation":{"pct":65,"min":50,"max":80,"menu":"style.clavi"},"clavusWidth":{"pct":100,"min":50,"max":150,"menu":"style.clavi"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"width":{"list":["toElbow","toShoulder","toMidArm"],"dflt":"toMidArm","menu":"style"},"forceWidth":{"bool":false,"menu":"advanced"}},"titan":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":true,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":6,"min":1,"max":25,"menu":"fit"},"waistHeight":{"pct":100,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":{"bool":false,"menu":"style"},"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"advanced"}},"trayvon":{"tipWidth":{"pct":15,"min":5,"max":35,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"knotWidth":{"pct":8,"min":4,"max":12,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"}},"tristan":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":0.46,"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"advanced"},"armholeDepth":{"pct":44,"min":38,"max":55,"menu":"style"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.035,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":0.29,"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":0.5,"dartPosition":"shoulder","shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90,"menu":"style"},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"advanced"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"},"armholeBackDepth":0.6,"armholeBackIn":0.6,"armholeFrontDepth":0.65,"armholeFrontIn":0.2,"cutDepthBack":{"pct":40,"min":5,"max":90,"menu":"style"},"cutDepthFront":{"pct":80,"min":0,"max":125,"menu":"style"},"cutRoundnessBack":{"pct":20,"min":0,"max":100,"menu":"style"},"cutRoundnessFront":{"pct":10,"min":0,"max":100,"menu":"style"},"strapWidth":{"pct":45,"min":5,"max":90,"menu":"style"},"hemSize":{"pct":5.62,"min":1,"max":25},"zipperLocation":{"dflt":"side","list":["front","side","back"],"menu":"options"},"hem":{"bool":false},"lacing":{"bool":true,"menu":"options"},"lacingLocation":{"dflt":"front","list":["front","back"]},"lacingWidth":{"pct":20,"min":0,"max":50},"peplum":{"bool":false,"menu":"options"},"peplumSize":{"pct":10,"min":5,"max":250},"peplumFullness":{"deg":180,"min":180,"max":360}},"uma":{"xStretch":{"pct":15,"min":0,"max":30,"menu":"fit"},"yStretch":{"pct":5,"min":0,"max":15,"menu":"fit"},"gussetWidth":{"pct":15,"min":5,"max":24,"menu":"fit"},"gussetLength":{"pct":12.7,"min":10,"max":16,"menu":"fit"},"gussetPosition":{"pct":70,"min":5,"max":95,"menu":"fit"},"bulge":{"deg":0,"min":0,"max":30,"menu":"fit"},"rise":{"pct":50,"min":30,"max":100,"menu":"style"},"legRise":{"pct":54,"min":5,"max":95,"menu":"style"},"frontDip":{"pct":10,"min":0,"max":25,"menu":"style"},"frontExposure":{"pct":70,"min":5,"max":100,"menu":"style"},"backDip":{"pct":-5,"min":-15,"max":10,"menu":"style"},"backExposure":{"pct":30,"min":0,"max":115,"menu":"style"}},"wahid":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":false},"chestEase":{"pct":2,"min":1,"max":10,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":false},"cuffEase":{"pct":20,"min":0,"max":200,"menu":false},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":false},"lengthBonus":{"pct":1,"min":0,"max":8,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":false},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":false},"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":70,"min":60,"max":80,"menu":"fit"},"backNeckCutout":{"pct":5,"min":-2,"max":8,"menu":false},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":false},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"frontOverlap":0.01,"necklineDrop":{"pct":50,"min":35,"max":85,"menu":"style"},"frontStyle":{"dflt":"classic","list":["classic","rounded"],"menu":"style"},"frontInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"shoulderInset":{"pct":10,"min":0,"max":20,"menu":"advanced"},"neckInset":{"pct":5,"min":0,"max":10,"menu":"advanced"},"hemStyle":{"dflt":"classic","list":["classic","rounded","square"],"menu":"style"},"hemRadius":{"pct":6,"min":2,"max":12,"menu":"style"},"pocketWidth":{"pct":10,"max":15,"min":8,"menu":"style"},"pocketAngle":{"deg":5,"min":0,"max":5,"menu":"advanced"},"pocketLocation":{"pct":35,"min":25,"max":55,"menu":"style"},"frontScyeDart":{"deg":6,"min":0,"max":12,"menu":"fit"},"buttons":{"count":6,"min":4,"max":12,"menu":"style"},"waistEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"hipsEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"backInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"centerBackDart":{"pct":2,"min":0,"max":5,"menu":"fit"},"backScyeDart":{"deg":2,"min":0,"max":6,"menu":"fit"},"weltHeight":{"pct":12.5,"max":20,"min":10,"menu":"style"}},"walburga":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"lengthBonus":{"pct":85,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":95,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"neckline":{"bool":true,"menu":"style"},"neckoRatio":{"pct":100,"min":10,"max":190,"menu":"style"}},"waralee":{"backRaise":{"pct":10,"min":0,"max":25,"menu":"fit"},"waistRaise":{"pct":0,"min":-20,"max":40,"menu":"fit"},"fitWaist":{"bool":true,"menu":"fit"},"hemWidth":{"pct":1.75,"min":1,"max":2.5,"menu":"style"},"legSize":{"pct":75,"max":90,"min":50,"menu":"style"},"waistOverlap":{"pct":50,"min":10,"max":100,"menu":"style"},"frontPocket":{"bool":true,"menu":"style"},"backPocket":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":3.5,"min":2,"max":5,"menu":"style"},"frontPocketStyle":{"dflt":"welt","list":["welt","waistband"],"menu":"style"},"separateWaistband":{"bool":false,"menu":"style"},"knotInFront":{"bool":true,"menu":"style"},"crotchFront":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchBack":{"pct":45,"min":10,"max":70,"menu":"advanced"},"crotchFactorFrontHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorFrontVer":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchFactorBackHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorBackVer":{"pct":60,"min":20,"max":90,"menu":"advanced"},"backWaistAdjustment":0.3,"frontPocketVerticalOffset":0.07,"frontPocketHorizontalOffset":0.18,"frontPocketSize":0.45,"frontPocketWidthHeightRatio":0.076,"frontPocketDepthFactor":1.6,"frontWaistAdjustment":0.163,"backPocketDepth":0.5,"backPocketVerticalOffset":0.2,"backPocketHorizontalOffset":0.045,"backPocketSize":0.45,"crotchEase":1.08},"yuri":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":20,"min":10,"max":30,"menu":"fit"},"cuffEase":{"pct":30,"min":20,"max":60,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":10,"min":5,"max":15,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":1,"min":0,"max":10,"menu":"fit"},"hipsEase":{"pct":0,"min":0,"max":10,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}}} +export const options = {"aaron":{"brianFitSleeve":false,"brianFitCollar":false,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":8,"min":0,"max":20,"menu":"style"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.6,"backNeckCutout":0.05,"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":8,"min":0,"max":20,"menu":"fit"},"stretchFactor":{"pct":5,"min":0,"max":15,"menu":"fit"},"armholeDrop":{"pct":10,"min":0,"max":75,"menu":"style"},"necklineBend":{"pct":100,"min":40,"max":100,"menu":"style"},"necklineDrop":{"pct":20,"min":10,"max":35,"menu":"style"},"shoulderStrapWidth":{"pct":15,"min":10,"max":40,"menu":"style"},"shoulderStrapPlacement":{"pct":40,"min":20,"max":80,"menu":"style"},"backlineBend":{"pct":50,"min":25,"max":100,"menu":"style"},"knitBindingWidth":{"pct":600,"min":300,"max":800,"menu":"style"}},"albert":{"backOpening":{"pct":10,"min":0,"max":25,"menu":"fit"},"bibWidth":{"pct":100,"min":50,"max":125,"menu":"style"},"bibLength":{"pct":75,"min":0,"max":90,"menu":"style"},"lengthBonus":{"pct":0,"min":-20,"max":25,"menu":"style"},"chestDepth":{"pct":22,"min":15,"max":90,"menu":"fit"},"strapWidth":{"pct":60,"min":20,"max":100,"menu":"style"}},"bee":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"advanced"},"bustDartCurve":1,"bustDartLength":1,"waistDartLength":1,"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"advanced"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.35,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"advanced"},"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"ties":{"bool":true,"menu":"style"},"crossBackTies":{"bool":false,"menu":"style"},"bandLength":{"pct":85,"min":75,"max":90,"menu":"style"},"neckTieLength":{"pct":80,"min":70,"max":100,"menu":"style"},"neckTieWidth":{"pct":6,"min":2,"max":18,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"reversible":{"bool":false,"menu":"style"},"topDepth":{"pct":54,"min":50,"max":80,"menu":"fit"},"bottomCupDepth":{"pct":8,"min":0,"max":20,"menu":"fit"},"sideDepth":{"pct":20.6,"min":0,"max":30,"menu":"fit"},"sideCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"frontCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"bellaGuide":{"bool":false,"menu":"fit"},"pointedTieEnds":{"bool":false,"menu":"style"},"duoColorTies":{"bool":false,"menu":"style"},"bandTieWidth":{"pct":3,"min":1,"max":9,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"bandTieLength":{"pct":35,"min":30,"max":50,"menu":"style"}},"bella":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":{"pct":100,"min":0,"max":100,"menu":"darts"},"bustDartLength":{"pct":90,"min":75,"max":100,"menu":"darts"},"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"}},"benjamin":{"transitionLength":2,"bandLength":0.17,"adjustmentRibbonWidth":20,"collarEase":{"pct":3,"min":0,"max":6,"menu":"fit"},"adjustmentRibbon":{"bool":false,"menu":"fit"},"tipWidth":{"pct":15,"min":0,"max":20,"menu":"style"},"knotWidth":{"pct":7,"min":5,"max":10,"menu":"style"},"bowLength":{"pct":28,"min":23,"max":33,"menu":"style"},"bowStyle":{"dflt":"butterfly","list":["diamond","butterfly","square","widesquare"],"menu":"style"},"endStyle":{"dflt":"straight","list":["straight","pointed","rounded"],"menu":"style"},"collarBandHeight":{"pct":6,"min":5,"max":8,"menu":"style"}},"bent":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"chestEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":40,"min":2,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":60,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"}},"bob":{"neckRatio":{"pct":80,"min":70,"max":90,"menu":"fit"},"widthRatio":{"pct":45,"min":35,"max":55,"menu":"fit"},"lengthRatio":{"pct":75,"min":55,"max":85,"menu":"fit"},"headSize":{"pct":100,"min":10,"max":200,"snap":5,"menu":"size"}},"breanna":{"collarFactor":4.8,"armholeDepthBase":0.6,"shoulderSeamLength":0.95,"sleeveWidthGuarantee":0.9,"breannaFitSleeve":true,"breannaFitCollar":true,"shoulderDart":{"bool":false,"menu":"fit"},"waistDart":{"bool":true,"menu":"fit"},"primaryBustDart":{"list":["06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"06:00","doNotTranslate":true,"menu":"style"},"secondaryBustDart":{"list":["none","06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"13:30","doNotTranslate":true,"menu":"style"},"acrossBackFactor":{"pct":96,"min":93,"max":100,"menu":"advanced"},"armholeDepthFactor":{"pct":100,"min":80,"max":120,"menu":"advanced"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"shoulderDartSize":{"pct":7,"min":4,"max":10},"shoulderDartLength":{"pct":85,"min":60,"max":100},"waistDartSize":{"pct":10,"min":4,"max":15},"waistDartLength":{"pct":85,"min":60,"max":100},"verticalEase":{"pct":2,"min":0,"max":8,"menu":"fit"},"frontArmholeDeeper":{"pct":1,"min":0,"max":5,"menu":"advanced"},"shoulderEase":{"pct":0,"min":0,"max":4,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"waistEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"primaryBustDartShaping":{"pct":50,"min":25,"max":75,"menu":"style"},"primaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"secondaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":100,"menu":"advanced"},"frontScyeDart":{"pct":25,"min":0,"max":45,"menu":"fit"},"sleevecapEase":{"pct":0.5,"min":0,"max":2.5,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":110,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":45,"min":35,"max":55,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"cuffEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"brian":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"bruce":{"hipRatioFront":0.245,"hipRatioBack":0.315,"legRatioInset":0.3,"legRatioBack":0.32,"gussetRatio":0.0666,"gussetInsetRatio":0.6,"heightRatioInset":0.65,"bulge":{"deg":20,"min":0,"max":40,"menu":"fit"},"legBonus":{"pct":0,"min":-10,"max":20,"menu":"style"},"rise":{"pct":10,"min":0,"max":25,"menu":"style"},"stretch":{"pct":15,"min":5,"max":25,"menu":"fit"},"legStretch":{"pct":40,"min":25,"max":45,"menu":"fit"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"carlita":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":0,"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"contour":{"pct":50,"min":25,"max":75,"menu":"advanced"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"carlton":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":{"deg":4,"min":0,"max":6,"menu":"pockets"},"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"cathrin":{"waistReduction":{"pct":10,"min":2,"max":20,"menu":"fit"},"panels":{"list":["11","13"],"dflt":"13","menu":"fit"},"backOpening":{"pct":4,"min":3,"max":10,"menu":"style"},"backRise":{"pct":15,"min":1,"max":25,"menu":"style"},"backDrop":{"pct":2,"min":-10,"max":5,"menu":"style"},"frontRise":{"pct":4,"min":-10,"max":8,"menu":"style"},"frontDrop":{"pct":5,"min":0,"max":10,"menu":"style"},"hipRise":{"pct":5,"min":0,"max":15,"menu":"style"}},"charlie":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":1,"min":0,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":15,"min":10,"max":30,"menu":"fit"},"waistHeight":{"pct":-4,"min":-15,"max":40,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":true,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":55,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":50,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandReduction":0.25,"waistbandFactor":0.1,"frontPocketSlantDepth":{"pct":85,"min":70,"max":100,"menu":"pockets.frontpockets"},"frontPocketSlantWidth":{"pct":25,"min":15,"max":35,"menu":"pockets.frontpockets"},"frontPocketSlantRound":{"pct":30,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketSlantBend":{"pct":25,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketWidth":{"pct":55,"min":45,"max":65,"menu":"pockets.frontpockets"},"frontPocketDepth":{"pct":100,"min":85,"max":110,"menu":"pockets.frontpockets"},"frontPocketFacing":{"pct":45,"min":25,"max":65,"menu":"pockets.frontpockets"},"flyCurve":{"pct":72,"min":50,"max":100,"menu":"advanced.fly"},"flyLength":{"pct":45,"min":30,"max":60,"menu":"advanced.fly"},"flyWidth":{"pct":15,"min":10,"max":20,"menu":"advanced.fly"},"backPocketVerticalPlacement":{"pct":24,"min":18,"max":30,"menu":"pockets.backpockets"},"backPocketHorizontalPlacement":{"pct":55,"min":48,"max":62,"menu":"pockets.backpockets"},"backPocketWidth":{"pct":55,"min":50,"max":60,"menu":"pockets.backpockets"},"backPocketDepth":{"pct":60,"min":40,"max":80,"menu":"pockets.backpockets"},"backPocketFacing":{"bool":true,"menu":"pockets.backpockets"},"waistbandCurve":{"pct":0,"min":0,"max":35,"menu":"fit"},"beltLoops":{"count":8,"min":6,"max":12,"menu":"advanced"}},"cornelius":{"pctAtoO":0.5,"pctAtoC":0.25,"pctUtoA":0.25,"pctJtoA":0.25,"pctSeatAdjustment":0.5,"ventLength":{"pct":70,"min":25,"max":110,"menu":"style"},"fullness":{"pct":0,"min":0,"max":55,"menu":"fit"},"waistbandBelowWaist":{"pct":5,"min":0,"max":15,"menu":"style"},"waistReduction":{"pct":1,"min":-2,"max":10,"menu":"fit"},"bandBelowKnee":{"pct":25,"min":15,"max":50,"menu":"advanced"},"pctZtoR":0.35,"pctRtoZin":0.75,"pctRtoZup":0.25,"pctRtoKin":0.75,"pctRtoKdown":0.25,"pctKtoRout":0.15,"pctKtoRup":0.25,"pctKtoH":0.7,"flyWidth":{"pct":0.38,"min":0.2,"max":0.6,"menu":"style"},"kneeToBelow":{"pct":94,"min":85,"max":110,"menu":"advanced"},"cuffWidth":{"pct":0,"min":-50,"max":150,"menu":"style"},"cuffStyle":{"dflt":"elegant","list":["traditional","elegant","keystone"],"menu":"style"}},"diana":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":0,"min":-5,"max":50,"menu":"fit"},"chestEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"collarEase":0,"cuffEase":{"pct":20,"min":0,"max":30,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":0,"max":50,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":0,"min":0,"max":20,"menu":"advanced"},"armholeDepthFactor":{"pct":55,"min":50,"max":70,"menu":"advanced"},"backNeckCutout":0.05,"frontArmholeDeeper":{"pct":0,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"drapeAngle":{"deg":20,"min":10,"max":30,"menu":"style"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"fit"},"shoulderSeamLength":{"pct":35,"min":0.1,"max":60,"menu":"style"},"waistEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"hipsEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":100,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":6,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"examples":{"size":{"pct":50,"min":5,"max":100,"menu":"stack"},"x":{"pct":0,"min":-100,"max":100,"menu":"stack"},"y":{"pct":0,"min":-100,"max":100,"menu":"stack"},"stackIt":{"dflt":"Do stack","list":["Do stack","Do not stack"],"menu":"stack"}},"florence":{"length":{"pct":40,"min":35,"max":45,"menu":"fit"},"height":{"pct":26,"min":23,"max":29,"menu":"fit"},"curve":{"pct":12.5,"min":10,"max":15,"menu":"fit"}},"florent":{"topSide":0.8,"brim":0,"headEase":{"pct":2,"min":0,"max":5,"menu":"fit"}},"gozer":{},"hi":{"length":1000,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"nosePointiness":{"pct":0,"min":-5,"max":10,"menu":"style"},"aggressive":{"bool":false,"menu":"style"},"hungry":{"pct":50,"min":0,"max":100,"menu":"style"}},"holmes":{"headEase":{"pct":3,"min":0,"max":9,"snap":{"metric":[6,13,19,25,32,38,44,50],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1,44.45,50.8]},"menu":"fit"},"lengthRatio":{"pct":55,"min":40,"max":60,"menu":"style"},"gores":{"count":6,"min":4,"max":20,"menu":"style"},"visorAngle":{"deg":45,"min":10,"max":90,"menu":"style"},"visorWidth":{"pct":5,"min":1,"max":17,"snap":5,"menu":"style"},"visorLength":{"pct":100,"min":80,"max":150,"menu":"advanced"},"earLength":{"pct":100,"min":80,"max":150,"menu":"style"},"earWidth":{"pct":100,"min":80,"max":150,"menu":"style"},"buttonhole":{"bool":false,"menu":"style"}},"hortensia":{"width":230,"height":330,"size":{"pct":50,"min":20,"max":200,"menu":"style"},"zipperSize":{"dflt":"#5","list":["#3","#4","#4.5","#5","#6","#8","#10","invisible"],"menu":"style"},"minHandleSpaceWidth":80,"maxHandleSpaceWidth":250,"pctHandleSpace":50,"pctHandleVert":42,"handleWidth":{"pct":8.6,"min":4,"max":25,"menu":"style"},"strapLength":{"pct":160,"min":75,"max":250,"menu":"style"}},"huey":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"ribbing":{"bool":true,"menu":"style"},"ribbingHeight":{"pct":10,"min":5,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":4,"max":12,"menu":"fit"},"pocket":{"bool":true,"menu":"style"},"pocketHeight":{"pct":30,"min":25,"max":35,"menu":"style"},"pocketWidth":{"pct":60,"min":50,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"},"hoodHeight":{"pct":59,"min":55,"max":65,"menu":"style"},"hoodCutback":{"pct":10,"min":5,"max":15,"menu":"style"},"hoodClosure":{"pct":13.5,"min":10,"max":15,"menu":"style"},"hoodDepth":{"pct":8.5,"min":5,"max":12,"menu":"style"},"hoodAngle":{"deg":5,"min":2,"max":8,"menu":"style"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"hugo":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":8,"min":4,"max":20,"menu":"fit"},"collarEase":0.05,"cuffEase":{"pct":20,"min":10,"max":50,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":0,"max":20,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.5,"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":12,"min":4,"max":20,"menu":"fit"},"ribbingHeight":{"pct":10,"min":4,"max":20,"menu":"style"},"pocketWidth":{"pct":50,"min":35,"max":65,"menu":"style"},"sleevecapEase":0,"sleevecapTopFactorX":0.5,"sleevecapTopFactorY":0.45,"sleevecapBackFactorX":0.6,"sleevecapBackFactorY":0.33,"sleevecapFrontFactorX":0.55,"sleevecapFrontFactorY":0.33,"sleevecapQ1Offset":0.017,"sleevecapQ2Offset":0.035,"sleevecapQ3Offset":0.025,"sleevecapQ4Offset":0.01,"sleevecapQ1Spread1":0.1,"sleevecapQ1Spread2":0.15,"sleevecapQ2Spread1":0.15,"sleevecapQ2Spread2":0.1,"sleevecapQ3Spread1":0.1,"sleevecapQ3Spread2":0.08,"sleevecapQ4Spread1":0.07,"sleevecapQ4Spread2":0.063,"sleeveWidthGuarantee":0.9,"sleeveLengthBonus":{"pct":2,"min":0,"max":10,"menu":"style"},"ribbingStretch":{"pct":5,"min":0,"max":10,"menu":"fit"}},"jaeger":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":19,"min":10,"max":25,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"centerBackDart":{"pct":0.5,"min":0,"max":1.5,"menu":"fit"},"hipsEase":{"pct":12,"min":8,"max":20,"menu":"fit"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"rollLineCollarHeight":{"pct":6,"min":5,"max":9,"menu":"collar"},"reduceWaistStandardFraction":0.08,"reduceWaistDartFraction":0.05,"reduceHipsStandardFraction":0.1,"centerFrontHemDrop":{"pct":2,"min":0,"max":4,"menu":"style"},"frontPocketPlacement":{"pct":75,"min":65,"max":85,"menu":"pockets"},"frontPocketWidth":{"pct":68,"min":55,"max":75,"menu":"pockets"},"frontPocketDepth":{"pct":110,"min":80,"max":130,"menu":"pockets"},"frontPocketRadius":{"pct":10,"min":0,"max":50,"menu":"pockets"},"frontDartPlacement":{"pct":55,"min":45,"max":60,"menu":"advanced"},"sideFrontPlacement":{"pct":85,"min":80,"max":90,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"innerPocketPlacement":{"pct":52,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"frontCutawayAngle":{"deg":2.5,"min":1,"max":4,"menu":"style"},"frontCutawayStart":{"pct":30,"min":10,"max":70,"menu":"style"},"frontCutawayEnd":{"pct":40,"min":10,"max":40,"menu":"style"},"hemRadius":{"pct":100,"min":35,"max":100,"menu":"style"},"chestPocketDepth":{"pct":110,"min":70,"max":150,"menu":"pockets"},"chestPocketWidth":{"pct":37,"min":30,"max":45,"menu":"pockets"},"chestPocketPlacement":{"pct":52,"min":40,"max":60,"menu":"pockets"},"chestPocketAngle":{"deg":2.5,"min":0,"max":7,"menu":"pockets"},"chestPocketWeltSize":{"pct":17.5,"min":10,"max":25,"menu":"pockets"},"lapelStart":{"pct":10,"min":0,"max":35,"menu":"style"},"collarHeight":{"pct":9,"min":7,"max":10,"menu":"collar"},"collarNotchDepth":{"pct":15,"min":15,"max":50,"menu":"collar"},"collarNotchAngle":{"deg":45,"min":30,"max":60,"menu":"collar"},"collarNotchReturn":{"pct":100,"min":50,"max":100,"menu":"collar"},"chestShaping":{"pct":30,"min":0,"max":100,"menu":"advanced"},"buttons":{"list":["1","2","3"],"dflt":"2","menu":"style"},"buttonLength":{"pct":30,"min":30,"max":60,"menu":"style"},"chestShapingMax":5,"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"style"},"backVent":{"count":1,"min":0,"max":2,"menu":"style"},"backVentLength":{"pct":35,"min":15,"max":100,"menu":"style"},"collarSpread":{"deg":13,"min":5,"max":35,"menu":"collar"},"collarRoll":{"pct":5,"min":0,"max":10,"menu":"collar"},"pocketFoldover":{"pct":25,"min":15,"max":35,"menu":"pockets"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"sleeveVentLength":{"pct":35,"min":25,"max":55,"menu":"sleeves"},"sleeveVentWidth":{"pct":18,"min":10,"max":26,"menu":"sleeves"}},"legend":{},"lucy":{"width":{"pct":50,"min":30,"max":100,"menu":"style"},"length":{"pct":50,"min":30,"max":100,"menu":"style"},"edge":{"pct":25,"min":20,"max":50,"menu":"style"}},"lumina":{"waistband":{"bool":true,"menu":"style"},"lowerwaistbandback":{"bool":true},"ease":{"pct":-8,"min":-25,"max":10,"menu":"fit"},"length":{"pct":35,"min":10,"max":100,"menu":"style"},"waistbandsize":{"pct":50,"min":0,"max":150},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"waistreduction":{"pct":4,"min":0,"max":10},"sidepanel":{"pct":25,"min":10,"max":40,"menu":"style"},"smoothing":{"pct":85,"min":50,"max":100,"menu":"advanced"},"fixedsidepanel":{"bool":false,"menu":"style"},"crossSeamAngle":35,"crotchToKnee":0.4,"waistToKneeCP":0.4,"kneeToWaistLength":400,"crotchPointsCP":2,"pocket":{"bool":true,"menu":"style"},"pocketdepth":{"pct":90,"min":20,"max":120}},"lumira":{"gussetcompensation":1.03,"waistband":{"bool":true,"menu":"style"},"backgusset":{"bool":false,"menu":"style"},"cyclingchamois":{"bool":false,"menu":"style"},"frontbulge":{"bool":false},"ease":{"pct":-8,"min":-30,"max":0,"menu":"fit"},"leglength":{"pct":100,"min":10,"max":100,"menu":"style"},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"gussetwidth":{"pct":16,"min":5,"max":30},"backgussetwidth":{"pct":50,"min":20,"max":75},"frontgussetlength":{"pct":12.5,"min":0,"max":30},"waistbandsize":{"pct":90,"min":0,"max":150},"waistreduction":{"pct":4,"min":0,"max":10},"backinserttopcp":0.3,"backinserttopcpangle":0,"backinsertgussetcp":0.2,"frontbulgelift":1.75,"frontbulgeforwardpercentage":0.125,"frontbulgemiddleshift":0.65,"buttlift":{"pct":30,"min":0,"max":60},"frontbulgesize":{"pct":2.5,"min":0,"max":10}},"lunetius":{"lengthRatio":{"pct":105,"min":60,"max":130,"menu":"style"},"widthRatio":{"pct":100,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toBelowKnee","toHips","toUpperLeg","toFloor"],"dflt":"toBelowKnee","menu":"style"}},"magde":{"size":{"pct":100,"min":15,"max":200,"menu":"style"},"taperRatio":{"pct":60,"min":50,"max":100,"menu":"style"},"flapHeightRatio":{"pct":83,"min":60,"max":100,"menu":"style"},"openingRatio":{"pct":66,"min":30,"max":90,"menu":"style"},"onePieceLid":{"bool":false,"menu":"style"},"useCommonWebbingSizes":{"bool":true,"menu":"style"}},"naomiwu":{"hipsEase":{"pct":0,"min":-5,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"waistSlant":{"pct":0,"min":0,"max":2,"menu":"fit"},"invertFly":{"bool":false,"menu":"style"},"length":{"pct":40,"min":0,"max":80,"menu":"style"},"waistbandWidth":{"pct":4.4,"min":2,"max":10,"menu":"style"},"beltLoopWidth":{"pct":40,"min":20,"max":60,"menu":"style"},"frontPocketOpeningBend":{"pct":80,"min":0,"max":100,"menu":"pockets"},"frontPocketOpeningDepth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backPocketDepth":{"pct":70,"min":60,"max":85,"menu":"pockets"},"backPocketChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"frontPocketOpeningWidth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backAttachmentWidth":{"pct":40,"min":25,"max":55,"menu":"pockets"},"backAttachmentDepth":{"pct":190,"min":100,"max":220,"menu":"pockets"},"frontAttachmentWidth":{"pct":95,"min":80,"max":110,"menu":"pockets"},"frontAttachmentChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"backAttachmentFlapChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"dartLength":{"pct":90,"min":50,"max":100,"menu":"advanced"},"dartWidth":{"pct":5,"min":4,"max":8,"menu":"advanced"},"flyLength":{"pct":75,"min":50,"max":85,"menu":"advanced"},"flyWidth":{"pct":16,"min":10,"max":22,"menu":"advanced"},"frontHalf":{"pct":55,"min":50,"max":60,"menu":"advanced"},"jseamBend":{"pct":65,"min":50,"max":100,"menu":"advanced"},"minDartWidth":{"pct":2,"min":0.5,"max":4,"menu":"advanced"}},"noble":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":{"pct":50,"min":10,"max":90},"dartPosition":{"dflt":"shoulder","list":["shoulder","armhole"],"menu":"darts"},"shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"darts"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"}},"octoplushy":{"sizeConstant":200,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"type":{"dflt":"octoplushy","list":["octoplushy","octopus","squid"],"menu":"style"},"armWidth":{"pct":15,"min":10,"max":30,"menu":"style"},"armLength":{"pct":200,"min":100,"max":500,"menu":"style"},"neckWidth":{"pct":25,"min":25,"max":45,"menu":"style"},"armTaper":{"pct":25,"min":0,"max":50,"menu":"style"},"bottomTopArmRatio":{"pct":57,"min":25,"max":75,"menu":"style"},"bottomArmReduction":{"pct":90,"min":75,"max":125},"bottomArmReductionPlushy":{"pct":80,"min":75,"max":125}},"onyx":{"neckStyle":{"dflt":"neckband","list":["neckband","hood"],"menu":"style"},"skirt":{"bool":false,"menu":"style"},"sleeveRibbing":{"bool":false,"menu":"construction"},"legRibbing":{"bool":false,"menu":"construction"},"zipperPosition":{"dflt":"front","list":["front","back","none"],"menu":"construction"},"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"waistEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"hipsEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"seatEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"upperLegEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"legHemEase":{"pct":0,"min":-40,"max":100,"menu":"fit"},"centerSeamEase":{"pct":0,"min":-20,"max":50,"menu":"fit"},"outseamEase":{"pct":0,"min":-20,"max":5,"menu":"fit"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"legLength":{"pct":20,"min":0,"max":120,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"legHem":{"pct":200,"min":0,"max":800},"crotchGussetWidth":{"pct":100,"min":75,"max":133,"menu":"fit"},"legTaperPosition":{"pct":50,"min":0,"max":100,"menu":"advanced"},"frontOnFold":{"bool":false,"menu":"construction"},"backOnFold":{"bool":true,"menu":"construction"},"zipperLength":{"pct":20,"min":0,"max":50,"menu":"construction"},"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"armholeTweakFactor":1.1,"skirtWidth":{"pct":160,"min":100,"max":250},"skirtLength":{"pct":100,"min":20,"max":500},"skirtWaistband":{"pct":200,"min":0,"max":800},"skirtHem":{"pct":200,"min":0,"max":800},"sleeveRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"sleeveRibbingLength":{"pct":75,"min":50,"max":100},"legRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"legRibbingLength":{"pct":75,"min":50,"max":100},"neckbandLength":{"pct":80,"min":50,"max":100},"neckbandWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"zipperGuardWidth":{"pct":50,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35},"menu":"construction"},"neckGuardLength":{"pct":2,"min":0,"max":5},"zipperGuardTapeCoverMaterial":0.75,"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800},"hoodDepth":{"pct":100,"min":70,"max":180},"hoodHeight":{"pct":100,"min":70,"max":140},"hoodFrontDip":{"pct":8,"min":0,"max":20},"hoodHem":{"pct":200,"min":0,"max":800},"hoodFrontBonus":{"pct":0,"min":-8,"max":10},"hoodFrontPieceSize":{"pct":50,"min":0,"max":50}},"otis":{"ease":{"pct":14,"min":0,"max":30,"menu":"fit"},"snapPlacket":{"pct":5,"min":0,"max":30,"menu":"advanced"},"sleeveType":{"dflt":"short","list":["short","long"],"menu":"style"},"hem":{"pct":10,"min":0,"max":30,"menu":"advanced"},"binding":{"pct":11,"min":2,"max":30,"menu":"advanced"}},"paco":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"kneeEase":0.06,"waistHeight":{"pct":5,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":0,"min":-15,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":10,"menu":"style"},"fitKnee":false,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"titanPaperless":false,"frontPocketHeelRatio":0.4,"backPocketWaistRatio":0.4,"backPocketHeightRatio":0.4,"backPocketWidthRatio":0.37,"waistbandHeight":0,"elasticatedCuff":{"bool":true,"menu":"style"},"ankleElastic":{"pct":5,"min":1,"max":13,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"heelEase":{"pct":5,"min":0,"max":50,"menu":"elastic"},"frontPockets":{"bool":true,"menu":"pockets"},"backPockets":{"bool":false,"menu":"pockets"},"frontPocketFlapSize":{"pct":3,"min":3,"max":3,"snap":{"metric":1,"imperial":0.79375},"menu":false},"weltFactor":0.15},"penelope":{"dartMaximumDifference":0.344,"dartMinimumDifference":0.2,"dartMinimumWidth":0.006888,"dartSideMinimum":10,"dartBackControl1":0.114,"dartBackControl2":5,"dartBackControl3":4,"curvePlacement":2.4,"dart2offset":32,"dart2factor":0.8,"hipCurveDividerDown":40,"hipCurveDividerUp":3,"sideSeamShiftPercentage":0.006,"backVentWidth":0.1,"paperlessOffset":15,"curvedDartControlAngle":2,"curvedDartTopControlOffset":0.2,"curvedDartBottomControlOffset":0.4,"curvedDarts":{"bool":true,"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"},"hemBonus":{"pct":0,"min":-35,"max":0,"menu":"style"},"hem":{"pct":2,"min":0,"max":5,"menu":"style"},"backVent":{"bool":true,"menu":"style"},"backVentLength":{"pct":40,"min":5,"max":70},"zipperLocation":{"dflt":"backSeam","list":["backSeam","sideSeam"],"menu":"style"},"nrOfDarts":{"count":2,"min":1,"max":2,"menu":"style"},"seatEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"waistEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"backDartDepthFactor":{"pct":50,"min":35,"max":70,"menu":"advanced"},"frontDartDepthFactor":{"pct":45,"min":30,"max":65,"menu":"advanced"},"dartToSideSeamFactor":{"pct":50,"min":30,"max":70,"menu":"advanced"},"waistband":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":10,"min":5,"max":20},"waistbandOverlap":{"pct":3.5,"min":0,"max":10}},"plugintest":{"plugin":{"dflt":"all","list":["all","annotations","flip","gore","i18n","measurements","mirror","round","sprinkle","title","versionfreeSvg"],"menu":"tests"},"bannerDy":{"count":-1,"min":-15,"max":15,"menu":"annotations.banner"},"bannerSpaces":{"count":10,"min":0,"max":20,"menu":"annotations.banner"},"bannerRepeat":{"count":10,"min":1,"max":20,"menu":"annotations.banner"},"bartackLength":{"count":15,"min":2,"max":100,"menu":"annotations.bartack"},"bartackAngle":{"count":0,"min":-360,"max":360,"menu":"annotations.bartack"},"bartackDensity":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackWidth":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackStart":{"pct":25,"min":0,"max":100,"menu":"annotations.bartack"},"bartackEnd":{"pct":75,"min":0,"max":100,"menu":"annotations.bartack"},"crossboxText":{"bool":true,"menu":"annotations.crossboxText"},"cutonfoldMargin":{"pct":5,"min":0,"max":25,"menu":"annotations.cutonfold"},"cutonfoldOffset":{"count":15,"min":0,"max":100,"menu":"annotations.cutonfold"},"cutonfoldGrainline":{"bool":false,"menu":"annotations.cutonfold"},"dimensionsCustomText":{"bool":false,"menu":"annotations.dimensions"},"dimensionsEndMarker":{"bool":true,"menu":"annotations.dimensions"},"dimensionsStartMarker":{"bool":true,"menu":"annotations.dimensions"},"logoScale":{"pct":100,"min":10,"max":200,"menu":"annotations.logo"},"logoRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.logo"},"pleatMargin":{"count":35,"min":0,"max":50,"menu":"annotations.pleat"},"pleatReverse":{"bool":false,"menu":"annotations.pleat"},"scaleboxRotation":{"deg":0,"min":0,"max":360,"menu":"annotations.scalebox"},"scaleboxText":{"dflt":"default","list":["default","custom","suppress"],"menu":"annotations.scalebox"},"sewtogetherHinge":{"bool":true,"menu":"annotations.sewtogether"},"sewtogetherMiddle":{"bool":false,"menu":"annotations.sewtogether"},"titleNr":{"count":1,"min":0,"max":100,"menu":"annotations.title"},"titleTitle":{"bool":true,"menu":"annotations.title"},"titleMeta":{"bool":true,"menu":"annotations.title"},"titleScale":{"pct":100,"min":10,"max":200,"menu":"annotations.title"},"titleRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.title"},"snippetScale":{"pct":100,"min":10,"max":200,"menu":"annotations.snippets"},"snippetRotation":{"deg":0,"min":-360,"max":360,"menu":"annotations.snippets"},"flipAxis":{"dflt":"x","list":["x","y"],"menu":"flip"},"goreRadius":{"count":20,"min":10,"max":30,"menu":"gore"},"goreGoreNumber":{"count":6,"min":4,"max":8,"menu":"gore"},"goreExtraLength":{"count":10,"min":0,"max":20,"menu":"gore"},"mirrorLine":{"dflt":"a","list":["a","b","none"],"menu":"mirror"},"mirrorClone":{"bool":true,"menu":"mirror"},"roundRadius":{"count":10,"min":0,"max":50,"menu":"round"},"roundHide":{"bool":false,"menu":"round"},"sprinkleScale":{"pct":100,"min":10,"max":200,"menu":"sprinkle"},"sprinkleRotate":{"deg":0,"min":-360,"max":360,"menu":"sprinkle"},"sprinkleSnippet":{"dflt":"bnotch","list":["notch","bnotch","button","buttonhole","buttonhole-start","buttonhole-end","snap-stud","snap-socket","logo"],"menu":"sprinkle"},"ringsectorInsideRadius":{"count":30,"min":10,"max":50,"menu":"ringsector"},"ringsectorOutsideRadius":{"count":60,"min":60,"max":120,"menu":"ringsector"},"ringsectorAngle":{"deg":75,"min":30,"max":120,"menu":"ringsector"}},"rendertest":{"width":{"mm":200,"min":50,"max":500,"testIgnore":false},"only":{"menu":"show","dflt":"false","list":["false","circles","colors","widths","styles","combos","text","snippets","macros"]}},"sandy":{"minimumOverlap":15,"seamlessFullCircle":{"bool":false,"menu":"construction"},"waistbandWidth":{"pct":4,"min":1,"max":8,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandPosition":{"pct":50,"min":0,"max":100,"menu":"fit"},"lengthBonus":{"pct":50,"min":10,"max":100,"menu":"style"},"circleRatio":{"pct":50,"min":20,"max":100,"menu":"style"},"waistbandOverlap":{"pct":3,"min":0,"max":15,"menu":"style"},"gathering":{"pct":0,"min":0,"max":200,"menu":"style"},"hemWidth":{"pct":2,"min":1,"max":10,"menu":"construction"},"waistbandShape":{"list":["straight","curved"],"dflt":"straight","menu":"fit"},"panels":{"count":1,"min":1,"max":8,"menu":"construction"}},"shelly":{"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"straightSides":{"bool":true,"menu":"advanced"},"hipsEase":{"pct":0,"min":-30,"max":75,"menu":"advanced"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"bodyLength":{"pct":120,"min":20,"max":300,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"hemWidth":{"pct":200,"min":0,"max":800,"menu":"construction"},"sideShape":{"pct":0,"min":-20,"max":20,"menu":"advanced"},"armholeTweakFactor":1.1,"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800,"menu":"construction"},"neckbandLength":{"pct":80,"min":50,"max":100,"menu":"fit"},"neckbandWidth":{"pct":7.5,"min":0,"max":50,"menu":"fit"}},"shin":{"frontFactor":0.58,"legFrontFactor":0.48,"gussetFactor":0.0714,"angle":10,"elasticWidth":{"pct":10,"min":4,"max":20,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"stretch":{"pct":20,"min":10,"max":30,"menu":"fit"},"bulge":{"pct":2.5,"min":0,"max":5,"menu":"fit"},"legReduction":{"pct":5,"min":0,"max":10,"menu":"fit"},"rise":{"pct":0,"min":0,"max":25,"menu":"style"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"simon":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"}},"simone":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"minimalDartShaping":5,"bustDartAngle":{"deg":10,"min":0,"max":20,"menu":"advanced"},"bustDartLength":{"pct":80,"min":50,"max":90,"menu":"advanced"},"frontDarts":{"bool":false,"menu":"advanced"},"frontDartLength":{"pct":45,"min":30,"max":60,"menu":"advanced"},"contour":{"pct":50,"min":30,"max":75,"menu":"style"},"bustAlignedButtons":{"dflt":"disabled","list":["even","split","disabled"],"menu":"style.closure"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"}},"skully":{"size":{"pct":75,"min":10,"max":300,"menu":"fit"}},"sven":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":10,"min":5,"max":30,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":0,"max":30,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"waistEase":0.08,"sleeveLengthBonus":{"pct":3,"min":0,"max":10,"menu":"style"},"ribbingHeight":{"pct":8,"min":3,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"ribbing":{"bool":true,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"tamiko":{"armholeDepthFactor":{"pct":50,"min":40,"max":60,"menu":"fit"},"chestEase":{"pct":2,"min":1,"max":20,"menu":"fit"},"flare":{"deg":15,"min":-10,"max":30,"menu":"style"},"lengthBonus":{"pct":13,"min":0,"max":60,"menu":"style"},"shoulderseamLength":{"pct":10,"min":5,"max":25,"menu":"style"},"draftForHighBust":{"bool":false,"menu":"fit"}},"teagan":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":12,"min":5,"max":25,"menu":"fit"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":5,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":8,"min":4,"max":12,"menu":"fit"},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveWidthGuarantee":0.85,"sleeveLength":{"pct":30,"min":20,"max":100,"menu":"fit"},"fitWaist":{"bool":false,"menu":"fit"},"waistEase":{"pct":25,"min":8,"max":40},"hipsEase":{"pct":18,"min":8,"max":30,"menu":"fit"},"necklineDepth":{"pct":25,"min":20,"max":40,"menu":"style"},"necklineWidth":{"pct":30,"min":10,"max":50,"menu":"style"},"necklineBend":{"pct":30,"min":0,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveEase":{"pct":15,"min":5,"max":35,"menu":"style"}},"tiberius":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"armholeDrop":{"pct":110,"min":100,"max":150,"menu":"fit"},"lengthBonus":{"pct":90,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":100,"min":50,"max":130,"menu":"style"},"clavi":{"bool":false,"menu":"style.clavi"},"clavusLocation":{"pct":65,"min":50,"max":80,"menu":"style.clavi"},"clavusWidth":{"pct":100,"min":50,"max":150,"menu":"style.clavi"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"width":{"list":["toElbow","toShoulder","toMidArm"],"dflt":"toMidArm","menu":"style"},"forceWidth":{"bool":false,"menu":"advanced"}},"titan":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":true,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":6,"min":1,"max":25,"menu":"fit"},"waistHeight":{"pct":100,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":{"bool":false,"menu":"style"},"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"advanced"}},"trayvon":{"tipWidth":{"pct":15,"min":5,"max":35,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"knotWidth":{"pct":8,"min":4,"max":12,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"}},"tristan":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":0.46,"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"advanced"},"armholeDepth":{"pct":44,"min":38,"max":55,"menu":"style"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.035,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":0.29,"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":0.5,"dartPosition":"shoulder","shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90,"menu":"style"},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"advanced"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"},"armholeBackDepth":0.6,"armholeBackIn":0.6,"armholeFrontDepth":0.65,"armholeFrontIn":0.2,"cutDepthBack":{"pct":40,"min":5,"max":90,"menu":"style"},"cutDepthFront":{"pct":80,"min":0,"max":125,"menu":"style"},"cutRoundnessBack":{"pct":20,"min":0,"max":100,"menu":"style"},"cutRoundnessFront":{"pct":10,"min":0,"max":100,"menu":"style"},"strapWidth":{"pct":45,"min":5,"max":90,"menu":"style"},"hemSize":{"pct":5.62,"min":1,"max":25},"zipperLocation":{"dflt":"side","list":["front","side","back"],"menu":"options"},"hem":{"bool":false},"lacing":{"bool":true,"menu":"options"},"lacingLocation":{"dflt":"front","list":["front","back"]},"lacingWidth":{"pct":20,"min":0,"max":50},"peplum":{"bool":false,"menu":"options"},"peplumSize":{"pct":10,"min":5,"max":250},"peplumFullness":{"deg":180,"min":180,"max":360}},"uma":{"xStretch":{"pct":15,"min":0,"max":30,"menu":"fit"},"yStretch":{"pct":5,"min":0,"max":15,"menu":"fit"},"gussetWidth":{"pct":15,"min":5,"max":24,"menu":"fit"},"gussetLength":{"pct":12.7,"min":10,"max":16,"menu":"fit"},"gussetPosition":{"pct":70,"min":5,"max":95,"menu":"fit"},"bulge":{"deg":0,"min":0,"max":30,"menu":"fit"},"rise":{"pct":50,"min":30,"max":100,"menu":"style"},"legRise":{"pct":54,"min":5,"max":95,"menu":"style"},"frontDip":{"pct":10,"min":0,"max":25,"menu":"style"},"frontExposure":{"pct":70,"min":5,"max":100,"menu":"style"},"backDip":{"pct":-5,"min":-15,"max":10,"menu":"style"},"backExposure":{"pct":30,"min":0,"max":115,"menu":"style"}},"wahid":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":false},"chestEase":{"pct":2,"min":1,"max":10,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":false},"cuffEase":{"pct":20,"min":0,"max":200,"menu":false},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":false},"lengthBonus":{"pct":1,"min":0,"max":8,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":false},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":false},"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":70,"min":60,"max":80,"menu":"fit"},"backNeckCutout":{"pct":5,"min":-2,"max":8,"menu":false},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":false},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"frontOverlap":0.01,"necklineDrop":{"pct":50,"min":35,"max":85,"menu":"style"},"frontStyle":{"dflt":"classic","list":["classic","rounded"],"menu":"style"},"frontInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"shoulderInset":{"pct":10,"min":0,"max":20,"menu":"advanced"},"neckInset":{"pct":5,"min":0,"max":10,"menu":"advanced"},"hemStyle":{"dflt":"classic","list":["classic","rounded","square"],"menu":"style"},"hemRadius":{"pct":6,"min":2,"max":12,"menu":"style"},"pocketWidth":{"pct":10,"max":15,"min":8,"menu":"style"},"pocketAngle":{"deg":5,"min":0,"max":5,"menu":"advanced"},"pocketLocation":{"pct":35,"min":25,"max":55,"menu":"style"},"frontScyeDart":{"deg":6,"min":0,"max":12,"menu":"fit"},"buttons":{"count":6,"min":4,"max":12,"menu":"style"},"waistEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"hipsEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"backInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"centerBackDart":{"pct":2,"min":0,"max":5,"menu":"fit"},"backScyeDart":{"deg":2,"min":0,"max":6,"menu":"fit"},"weltHeight":{"pct":12.5,"max":20,"min":10,"menu":"style"}},"walburga":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"lengthBonus":{"pct":85,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":95,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"neckline":{"bool":true,"menu":"style"},"neckoRatio":{"pct":100,"min":10,"max":190,"menu":"style"}},"waralee":{"backRaise":{"pct":10,"min":0,"max":25,"menu":"fit"},"waistRaise":{"pct":0,"min":-20,"max":40,"menu":"fit"},"fitWaist":{"bool":true,"menu":"fit"},"hemWidth":{"pct":1.75,"min":1,"max":2.5,"menu":"style"},"legSize":{"pct":75,"max":90,"min":50,"menu":"style"},"waistOverlap":{"pct":50,"min":10,"max":100,"menu":"style"},"frontPocket":{"bool":true,"menu":"style"},"backPocket":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":3.5,"min":2,"max":5,"menu":"style"},"frontPocketStyle":{"dflt":"welt","list":["welt","waistband"],"menu":"style"},"separateWaistband":{"bool":false,"menu":"style"},"knotInFront":{"bool":true,"menu":"style"},"crotchFront":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchBack":{"pct":45,"min":10,"max":70,"menu":"advanced"},"crotchFactorFrontHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorFrontVer":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchFactorBackHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorBackVer":{"pct":60,"min":20,"max":90,"menu":"advanced"},"backWaistAdjustment":0.3,"frontPocketVerticalOffset":0.07,"frontPocketHorizontalOffset":0.18,"frontPocketSize":0.45,"frontPocketWidthHeightRatio":0.076,"frontPocketDepthFactor":1.6,"frontWaistAdjustment":0.163,"backPocketDepth":0.5,"backPocketVerticalOffset":0.2,"backPocketHorizontalOffset":0.045,"backPocketSize":0.45,"crotchEase":1.08},"yuri":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":20,"min":10,"max":30,"menu":"fit"},"cuffEase":{"pct":30,"min":20,"max":60,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":10,"min":5,"max":15,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":1,"min":0,"max":10,"menu":"fit"},"hipsEase":{"pct":0,"min":0,"max":10,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"lily":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":{"bool":false,"menu":"advanced"},"waistEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"seatEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"kneeEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"waistHeight":{"pct":50,"min":0,"max":100,"menu":"style"},"lengthBonus":0,"crotchDrop":{"pct":0,"min":0,"max":15,"menu":"advanced"},"fitKnee":{"bool":true,"hide":true},"legBalance":0.5,"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":0.5,"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"fabricStretch":{"pct":40,"min":0,"max":50,"menu":"fit"},"lengthReduction":{"pct":0,"min":0,"max":100,"menu":"style"}}} diff --git a/sites/shared/prebuild/data/designs.mjs b/sites/shared/prebuild/data/designs.mjs index cd5a54e8286..aa0c6341577 100644 --- a/sites/shared/prebuild/data/designs.mjs +++ b/sites/shared/prebuild/data/designs.mjs @@ -1,3 +1,3 @@ // __SDEFILE__ - This file is a dependency for the stand-alone environment // This file is auto-generated by the prebuild script | Any changes will be overwritten -export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","gozer","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lumina","lumira","lunetius","magde","naomiwu","noble","octoplushy","onyx","otis","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","tristan","uma","wahid","walburga","waralee","yuri"] +export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","gozer","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lumina","lumira","lunetius","magde","naomiwu","noble","octoplushy","onyx","otis","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","tristan","uma","wahid","walburga","waralee","yuri","lily"] diff --git a/yarn.lock b/yarn.lock index a5378275f5a..031eac621f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10024,6 +10024,32 @@ mocha-steps@1.3.0: resolved "https://registry.npmjs.org/mocha-steps/-/mocha-steps-1.3.0.tgz" integrity sha512-KZvpMJTqzLZw3mOb+EEuYi4YZS41C9iTnb7skVFRxHjUd1OYbl64tCMSmpdIRM9LnwIrSOaRfPtNpF5msgv6Eg== +mocha@10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "8.1.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + mocha@10.4.0, mocha@^10.0.0: version "10.4.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261"