├── .DS_Store ├── .gitattributes ├── next-env.d.ts ├── public ├── favicon.ico └── vercel.svg ├── pages ├── _app.js ├── api │ └── hello.js └── index.tsx ├── lib ├── curves │ ├── types.ts │ ├── bezier.ts │ ├── utils.ts │ └── vector.ts ├── types.ts ├── utils.ts ├── pixi.ts └── state.ts ├── components ├── color-input.tsx ├── boolean-input.tsx ├── app.tsx ├── number-input.tsx ├── toolbar.tsx └── controls.tsx ├── tsconfig.json ├── package.json ├── styles ├── globals.css └── Home.module.css ├── README.md ├── .gitignore ├── LICENSE └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steveruizok/brush-engine/HEAD/.DS_Store -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steveruizok/brush-engine/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import '../styles/globals.css' 2 | 3 | function MyApp({ Component, pageProps }) { 4 | return 5 | } 6 | 7 | export default MyApp 8 | -------------------------------------------------------------------------------- /pages/api/hello.js: -------------------------------------------------------------------------------- 1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2 | 3 | export default (req, res) => { 4 | res.status(200).json({ name: 'John Doe' }) 5 | } 6 | -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- 1 | import dynamic from "next/dynamic" 2 | const App = dynamic(() => import("components/app"), { ssr: false }) 3 | 4 | export default function Home() { 5 | return ( 6 |
7 | 8 |
9 | ) 10 | } 11 | -------------------------------------------------------------------------------- /lib/curves/types.ts: -------------------------------------------------------------------------------- 1 | export interface IVector { 2 | x: number 3 | y: number 4 | } 5 | 6 | export interface IQuadBezier { 7 | p1: IVector 8 | pc: IVector 9 | p2: IVector 10 | } 11 | 12 | export interface IBoundingBox { 13 | minX: number 14 | minY: number 15 | maxX: number 16 | maxY: number 17 | } 18 | 19 | export interface Point extends IVector { 20 | p?: number 21 | } 22 | 23 | export type IPoint = { 24 | p: Point 25 | d: number 26 | } 27 | -------------------------------------------------------------------------------- /components/color-input.tsx: -------------------------------------------------------------------------------- 1 | export default function ColorInput({ 2 | label, 3 | value, 4 | onChange, 5 | }: { 6 | label: string 7 | value: string 8 | onChange: (n: string) => void 9 | }) { 10 | return ( 11 | <> 12 | 13 | onChange(e.currentTarget.value)} 17 | /> 18 | {String(value)} 19 | 20 | ) 21 | } 22 | -------------------------------------------------------------------------------- /components/boolean-input.tsx: -------------------------------------------------------------------------------- 1 | export default function BooleanInput({ 2 | label, 3 | value, 4 | onChange, 5 | }: { 6 | label: string 7 | value: boolean 8 | onChange: (n: boolean) => void 9 | }) { 10 | return ( 11 | <> 12 | 13 | onChange(Boolean(e.currentTarget.checked))} 17 | /> 18 | {String(value)} 19 | 20 | ) 21 | } 22 | -------------------------------------------------------------------------------- /lib/types.ts: -------------------------------------------------------------------------------- 1 | export interface IBrush { 2 | type: string 3 | color: string 4 | size: number 5 | opacity: number 6 | speed: number 7 | streamline: number 8 | variation: number 9 | spacing: number 10 | jitter: number 11 | sizeJitter: number 12 | alpha: number 13 | } 14 | 15 | export interface IMark { 16 | type: string 17 | points: number[][] 18 | } 19 | 20 | export interface ISettings { 21 | rerenderMarks: boolean 22 | showControls: boolean 23 | simulatePressure: boolean 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": false, 8 | "forceConsistentCasingInFileNames": true, 9 | "noEmit": true, 10 | "esModuleInterop": true, 11 | "module": "esnext", 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "jsx": "preserve", 16 | "baseUrl": ".", 17 | "paths": { 18 | "components/*": ["components/*"] 19 | } 20 | }, 21 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 22 | "exclude": ["node_modules"] 23 | } 24 | -------------------------------------------------------------------------------- /components/app.tsx: -------------------------------------------------------------------------------- 1 | import state, { useSelector } from "lib/state" 2 | import Toolbar from "./toolbar" 3 | import Controls from "./controls" 4 | import * as React from "react" 5 | 6 | export default function App() { 7 | const ref = React.useRef(null) 8 | 9 | React.useEffect(() => { 10 | state.send("LOADED", { elm: ref.current }) 11 | return () => { 12 | state.send("UNLOADED", { elm: ref.current }) 13 | } 14 | }, [ref.current]) 15 | 16 | const showControls = useSelector((state) => state.data.settings.showControls) 17 | 18 | return ( 19 | <> 20 |
21 | 22 | {showControls && } 23 | 24 | ) 25 | } 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "brush-engine", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start" 9 | }, 10 | "dependencies": { 11 | "@pixi/filter-ascii": "^3.1.1", 12 | "@pixi/filter-color-overlay": "^3.1.1", 13 | "@pixi/filter-dot": "^3.1.1", 14 | "@pixi/filter-outline": "^3.2.0", 15 | "@state-designer/react": "^1.5.6", 16 | "lz-string": "^1.4.4", 17 | "next": "10.0.7", 18 | "pixi.js": "^5.3.8", 19 | "react": "17.0.1", 20 | "react-dom": "17.0.1", 21 | "react-feather": "^2.0.9", 22 | "styled-components": "^5.2.1" 23 | }, 24 | "devDependencies": { 25 | "@types/lz-string": "^1.3.34", 26 | "@types/node": "^14.14.31", 27 | "@types/react": "^17.0.2", 28 | "@types/styled-components": "^5.1.7", 29 | "typescript": "^4.2.2" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /components/number-input.tsx: -------------------------------------------------------------------------------- 1 | export default function NumberInput({ 2 | label, 3 | value, 4 | onChange, 5 | min = 0, 6 | max = 100, 7 | step = (max - min) / 100, 8 | }: { 9 | label: string 10 | value: number 11 | onChange: (n: number) => void 12 | min?: number 13 | max?: number 14 | step?: number 15 | }) { 16 | return ( 17 | <> 18 | 19 | onChange(Number(e.currentTarget.value))} 27 | /> 28 | onChange(Number(e.currentTarget.value))} 35 | /> 36 | 37 | ) 38 | } 39 | -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | html, 2 | * { 3 | padding: 0; 4 | margin: 0; 5 | box-sizing: border-box; 6 | overscroll-behavior: none; 7 | overflow: hidden; 8 | } 9 | 10 | :root { 11 | --color-background: #1d1d1d; 12 | --color-text: #cfcfcf; 13 | --color-scrim: rgba(20, 0, 0, 0.1); 14 | --color-border: rgba(144, 144, 144, 0.2); 15 | --color-hover: rgba(144, 144, 144, 0.1); 16 | } 17 | 18 | .dark { 19 | --color-background: #1d1d1d; 20 | --color-text: #cfcfcf; 21 | --color-scrim: rgba(20, 0, 0, 0.1); 22 | } 23 | 24 | .light { 25 | --color-background: #f7f3f3; 26 | --color-text: #1d1d1d; 27 | --color-scrim: rgba(255, 255, 255, 0.9); 28 | } 29 | 30 | button { 31 | background: transparent; 32 | border: none; 33 | background-color: var(--color-background); 34 | color: var(--color-text); 35 | border: 1px solid var(--color-border); 36 | border-radius: 2px; 37 | font-family: Helvetica Neue, Arial, Helvetica, sans-serif; 38 | font-weight: 500; 39 | font-size: 15px; 40 | } 41 | 42 | a { 43 | color: var(--color-text); 44 | text-decoration: none; 45 | font-weight: bold; 46 | } 47 | 48 | body { 49 | margin: 0; 50 | padding: 0; 51 | font-family: Helvetica Neue, Arial, Helvetica, sans-serif; 52 | font-weight: 500; 53 | font-size: 15px; 54 | overscroll-behavior: none; 55 | touch-action: manipulation; 56 | overflow: hidden; 57 | color: var(--color-text); 58 | background-color: var(--color-background); 59 | } 60 | 61 | .app { 62 | position: absolute; 63 | top: 0; 64 | left: 0; 65 | width: 100%; 66 | height: 100%; 67 | } 68 | 69 | .controls { 70 | position: absolute; 71 | top: 0; 72 | left: 0; 73 | z-index: 999; 74 | } 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | ``` 12 | 13 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 14 | 15 | You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. 16 | 17 | [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. 18 | 19 | The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. 20 | 21 | ## Learn More 22 | 23 | To learn more about Next.js, take a look at the following resources: 24 | 25 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 26 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 27 | 28 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 29 | 30 | ## Deploy on Vercel 31 | 32 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 33 | 34 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 35 | -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Get a point between two points. 3 | * @param x0 The x-axis coordinate of the first point. 4 | * @param y0 The y-axis coordinate of the first point. 5 | * @param x1 The x-axis coordinate of the second point. 6 | * @param y1 The y-axis coordinate of the second point. 7 | * @param d Normalized 8 | */ 9 | export function getPointBetween( 10 | x0: number, 11 | y0: number, 12 | x1: number, 13 | y1: number, 14 | d = 0.5 15 | ) { 16 | return [x0 + (x1 - x0) * d, y0 + (y1 - y0) * d] 17 | } 18 | 19 | export function distanceBetweenPoints(a: number[], b: number[]) { 20 | return Math.hypot(a[1] - b[1], a[0] - b[0]) 21 | } 22 | export function lerpPoints(a: number[], b: number[], t: number) { 23 | return [lerp(a[0], b[0], t), lerp(a[1], b[1], t), lerp(a[2], b[2], t)] 24 | } 25 | 26 | /** 27 | * Linear interpolation betwen two numbers. 28 | * @param y1 29 | * @param y2 30 | * @param mu 31 | */ 32 | export function lerp(y1: number, y2: number, mu: number) { 33 | return y1 * (1 - mu) + y2 * mu 34 | } 35 | 36 | /** 37 | * Modulate a value between two ranges. 38 | * @param value 39 | * @param rangeA from [low, high] 40 | * @param rangeB to [low, high] 41 | * @param clamp 42 | */ 43 | export function modulate( 44 | value: number, 45 | rangeA: number[], 46 | rangeB: number[], 47 | clamp = false 48 | ) { 49 | const [fromLow, fromHigh] = rangeA 50 | const [toLow, toHigh] = rangeB 51 | const result = 52 | toLow + ((value - fromLow) / (fromHigh - fromLow)) * (toHigh - toLow) 53 | if (clamp === true) { 54 | if (toLow < toHigh) { 55 | if (result < toLow) { 56 | return toLow 57 | } 58 | if (result > toHigh) { 59 | return toHigh 60 | } 61 | } else { 62 | if (result > toLow) { 63 | return toLow 64 | } 65 | if (result < toHigh) { 66 | return toHigh 67 | } 68 | } 69 | } 70 | return result 71 | } 72 | -------------------------------------------------------------------------------- /components/toolbar.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import state from "lib/state" 3 | import styled from "styled-components" 4 | import { Trash, RotateCcw, RotateCw, Settings } from "react-feather" 5 | 6 | export default function Toolbar() { 7 | return ( 8 | e.stopPropagation()}> 9 | 10 | state.send("UNDO")}> 11 | 12 | 13 | {/* state.send("REDO")}> 14 | 15 | */} 16 | 17 |
18 | @steveruizok 19 |
20 | 21 | 23 | state.send("CHANGED_SETTINGS", { 24 | showControls: !state.data.settings.showControls, 25 | }) 26 | } 27 | > 28 | 29 | 30 | state.send("ERASED")}> 31 | 32 | 33 | 34 |
35 | ) 36 | } 37 | 38 | const ToolbarContainer = styled.div` 39 | position: absolute; 40 | top: 0; 41 | left: 0; 42 | width: 100%; 43 | height: 44px; 44 | display: flex; 45 | align-items: center; 46 | justify-content: space-between; 47 | border-bottom: 1px solid var(--color-border); 48 | background-color: var(--color-scrim); 49 | backdrop-filter: blur(30px); 50 | user-select: none; 51 | ` 52 | 53 | const ButtonGroup = styled.div` 54 | padding: 0 4px; 55 | display: flex; 56 | align-items: center; 57 | ` 58 | 59 | const IconButton = styled.button` 60 | background: transparent; 61 | display: flex; 62 | border: none; 63 | align-items: center; 64 | font-size: 32px; 65 | padding: 8px; 66 | color: var(--color-text); 67 | cursor: pointer; 68 | border-radius: 4px; 69 | outline: none; 70 | 71 | &:disabled { 72 | opacity: 0.3; 73 | } 74 | 75 | &:hover { 76 | background-color: var(--color-hover); 77 | } 78 | ` 79 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | *.DS_STORE 107 | 108 | .vercel 109 | -------------------------------------------------------------------------------- /styles/Home.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | min-height: 100vh; 3 | padding: 0 0.5rem; 4 | display: flex; 5 | flex-direction: column; 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | 10 | .main { 11 | padding: 5rem 0; 12 | flex: 1; 13 | display: flex; 14 | flex-direction: column; 15 | justify-content: center; 16 | align-items: center; 17 | } 18 | 19 | .footer { 20 | width: 100%; 21 | height: 100px; 22 | border-top: 1px solid #eaeaea; 23 | display: flex; 24 | justify-content: center; 25 | align-items: center; 26 | } 27 | 28 | .footer img { 29 | margin-left: 0.5rem; 30 | } 31 | 32 | .footer a { 33 | display: flex; 34 | justify-content: center; 35 | align-items: center; 36 | } 37 | 38 | .title a { 39 | color: #0070f3; 40 | text-decoration: none; 41 | } 42 | 43 | .title a:hover, 44 | .title a:focus, 45 | .title a:active { 46 | text-decoration: underline; 47 | } 48 | 49 | .title { 50 | margin: 0; 51 | line-height: 1.15; 52 | font-size: 4rem; 53 | } 54 | 55 | .title, 56 | .description { 57 | text-align: center; 58 | } 59 | 60 | .description { 61 | line-height: 1.5; 62 | font-size: 1.5rem; 63 | } 64 | 65 | .code { 66 | background: #fafafa; 67 | border-radius: 5px; 68 | padding: 0.75rem; 69 | font-size: 1.1rem; 70 | font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, 71 | Bitstream Vera Sans Mono, Courier New, monospace; 72 | } 73 | 74 | .grid { 75 | display: flex; 76 | align-items: center; 77 | justify-content: center; 78 | flex-wrap: wrap; 79 | max-width: 800px; 80 | margin-top: 3rem; 81 | } 82 | 83 | .card { 84 | margin: 1rem; 85 | flex-basis: 45%; 86 | padding: 1.5rem; 87 | text-align: left; 88 | color: inherit; 89 | text-decoration: none; 90 | border: 1px solid #eaeaea; 91 | border-radius: 10px; 92 | transition: color 0.15s ease, border-color 0.15s ease; 93 | } 94 | 95 | .card:hover, 96 | .card:focus, 97 | .card:active { 98 | color: #0070f3; 99 | border-color: #0070f3; 100 | } 101 | 102 | .card h3 { 103 | margin: 0 0 1rem 0; 104 | font-size: 1.5rem; 105 | } 106 | 107 | .card p { 108 | margin: 0; 109 | font-size: 1.25rem; 110 | line-height: 1.5; 111 | } 112 | 113 | .logo { 114 | height: 1em; 115 | } 116 | 117 | @media (max-width: 600px) { 118 | .grid { 119 | width: 100%; 120 | flex-direction: column; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /lib/pixi.ts: -------------------------------------------------------------------------------- 1 | import * as PIXI from "pixi.js" 2 | import { ISettings, IBrush } from "./types" 3 | import { lerp, lerpPoints } from "./utils" 4 | 5 | const dpr = window.devicePixelRatio 6 | 7 | // Pixi App 8 | PIXI.settings.RESOLUTION = dpr 9 | PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.LINEAR 10 | PIXI.settings.FILTER_RESOLUTION = dpr 11 | 12 | const app = new PIXI.Application({ 13 | backgroundColor: 0x1d1d1d, 14 | antialias: true, 15 | resolution: dpr, 16 | }) 17 | 18 | // Surface for previous strokes 19 | const prevSurface = new PIXI.Graphics() 20 | app.stage.addChild(prevSurface) 21 | 22 | // Surface for the current stroke 23 | const currSurface = new PIXI.Graphics() 24 | app.stage.addChild(currSurface) 25 | 26 | // Filters? 27 | prevSurface.filters = [] 28 | currSurface.filters = [] 29 | 30 | // Brush texture 31 | 32 | const brushShape = new PIXI.Graphics() 33 | brushShape.beginFill(Number(0xffffff)) 34 | brushShape.drawCircle(0, 0, 50) 35 | brushShape.endFill() 36 | 37 | const brushTexture = app.renderer.generateTexture( 38 | brushShape, 39 | PIXI.SCALE_MODES.LINEAR, 40 | dpr 41 | ) 42 | 43 | // A factory function, creates a mark and returns functions for 44 | // adding points / completing the mark. 45 | export function createPixiMark(brush: IBrush, options = {} as ISettings) { 46 | const { simulatePressure = true } = options 47 | let { 48 | color, 49 | opacity, 50 | alpha, 51 | size, 52 | streamline, 53 | variation, 54 | jitter, 55 | sizeJitter, 56 | speed, 57 | type, 58 | spacing, 59 | } = brush 60 | let nColor = Number(color.replace("#", "0x")) 61 | let prev: number[] 62 | let error = 0 63 | let pts: number[][] = [] 64 | 65 | // Container 66 | const container = new PIXI.Container() 67 | container.interactive = false 68 | container.interactiveChildren = false 69 | currSurface.addChild(container) 70 | if (opacity < 1) { 71 | container.filters = [new PIXI.filters.AlphaFilter(opacity)] 72 | } 73 | 74 | // Add a point to the mark 75 | function addPoint(curr: number[]) { 76 | pts.push([...curr]) 77 | 78 | if (!prev) { 79 | prev = [...curr] 80 | drawPoint(prev) 81 | return 82 | } 83 | let [x, y, p] = curr 84 | 85 | const maxSize = size 86 | const minSize = maxSize * (1 - variation) 87 | 88 | // Move point towards previous point (streamline) 89 | x = prev[0] + (x - prev[0]) * (1 - streamline) 90 | y = prev[1] + (y - prev[1]) * (1 - streamline) 91 | 92 | // Get distance between current and previous point 93 | const dist = Math.hypot(x - prev[0], y - prev[1]) 94 | 95 | // Use distance to determine pressure if not provided 96 | if (type !== "pen") { 97 | p = 1 - Math.min(1, dist / size) 98 | } 99 | 100 | // Smooth pressure changes (speed) 101 | p = lerp(prev[2], p, speed) 102 | 103 | let trav = error 104 | 105 | while (trav <= dist) { 106 | let [tx, ty, tp] = lerpPoints(prev, [x, y, p], trav / dist) 107 | let ts = simulatePressure ? lerp(minSize, maxSize, tp) : size 108 | 109 | trav += ts * spacing 110 | 111 | const jx = lerp(-jitter * (size / 2), jitter * (size / 2), Math.random()) 112 | const jy = lerp(-jitter * (size / 2), jitter * (size / 2), Math.random()) 113 | const js = lerp( 114 | -sizeJitter * (size / 2), 115 | sizeJitter * (size / 2), 116 | Math.random() 117 | ) 118 | 119 | drawPoint([tx + jx, ty + jy, ts + js]) 120 | } 121 | 122 | error = trav - dist 123 | 124 | prev = [x, y, p] 125 | } 126 | 127 | function drawPoint([x, y, r]: number[]) { 128 | const dab = new PIXI.Sprite(brushTexture) 129 | dab.tint = nColor 130 | dab.anchor.set(0.5) 131 | dab.setTransform(x / dpr, y / dpr, r / 100 / dpr, r / 100 / dpr) 132 | container.addChild(dab) 133 | dab.alpha = alpha 134 | } 135 | 136 | function complete(curr: number[]) { 137 | pts.push([...curr]) 138 | 139 | // Move to pixi 140 | if (pts.length < 3) { 141 | const [x, y] = curr 142 | addPoint([x, y, 0.618]) 143 | } 144 | 145 | currSurface.removeChild(container) 146 | prevSurface.addChild(container) 147 | } 148 | 149 | return { addPoint, complete } 150 | } 151 | 152 | // Cleanup! 153 | 154 | export function cleanPrevSurface() { 155 | for (let child of prevSurface.children) { 156 | child.destroy() 157 | } 158 | prevSurface.removeChildren() 159 | } 160 | 161 | export function cleanCurrSurface() { 162 | for (let child of currSurface.children) { 163 | child.destroy() 164 | } 165 | currSurface.removeChildren() 166 | } 167 | 168 | export function clean() { 169 | cleanPrevSurface() 170 | cleanCurrSurface() 171 | } 172 | 173 | export default app 174 | -------------------------------------------------------------------------------- /lib/curves/bezier.ts: -------------------------------------------------------------------------------- 1 | import { IVector, IQuadBezier } from "./types" 2 | import * as Utils from "./utils" 3 | import * as Vector from "./vector" 4 | 5 | export function create(p1: IVector, pc: IVector, p2: IVector) { 6 | return { 7 | p1: Vector.create(p1), 8 | pc: Vector.create(pc), 9 | p2: Vector.create(p2), 10 | } 11 | } 12 | 13 | export function closestTtoPc(A: IQuadBezier) { 14 | var d1 = Vector.distance(A.pc, A.p1) 15 | var d2 = Vector.distance(A.pc, A.p2) 16 | if (d1 + d2 === 0) return 0.5 // Avoid divide by 0 17 | return d1 / (d1 + d2) 18 | } 19 | 20 | // Get the point at t 21 | export function getPointAtT(A: IQuadBezier, t: number) { 22 | // return getControlPointOfASegment(t, t); 23 | return Vector.lrp(Vector.lrp(A.p1, A.pc, t), Vector.lrp(A.pc, A.p2, t), t) 24 | } 25 | 26 | // Return t for a slope 27 | // Given a slope return the t wich had this slope 28 | export function TforSlope(A: IQuadBezier, slope: number) { 29 | var t = 30 | (slope * (A.pc.x - A.p1.x) - (A.pc.y - A.p1.y)) / 31 | (A.p1.y - 2 * A.pc.y + A.p2.y - slope * (A.p1.x - 2 * A.pc.x + A.p2.x)) 32 | 33 | if (t >= 0 && t <= 1) return 5 34 | // newPMt 35 | // There is a t with slope 36 | else return undefined // Is not a t with that slope 37 | } 38 | 39 | // Control point of a segment 40 | export function getControlPointOfASegment( 41 | A: IQuadBezier, 42 | t0: number, 43 | t1: number 44 | ) { 45 | return Vector.lrp(Vector.lrp(A.p1, A.pc, t0), Vector.lrp(A.pc, A.p2, t0), t1) 46 | } 47 | 48 | // Control point of a segment of the QuadBezier 49 | export function getSegment(A: IQuadBezier, t0: number, t1: number) { 50 | var np1 = getPointAtT(A, t0) 51 | // npc comes using the De Casteljau's algorithm -> https://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm 52 | var npc = getControlPointOfASegment(A, t0, t1) 53 | var np2 = getPointAtT(A, t1) 54 | return create(np1, npc, np2) 55 | } 56 | 57 | // Return the quadratic first derivate vaule at t == slope vector (not unified) (velocity) 58 | export function slopeVectorAtT(A: IQuadBezier, t: number) { 59 | // F'(t) = 2((1-t)(pc-p1)+t(p2-p1)) 60 | // = 2(t(p1-2pc+p2)+(pc-p1) 61 | // {x: 2*(t*(p1.x - 2*pc.x + p2.x) + (pc.x- p1.x)), y: 2*(t*(p1.y - 2*pc.y + p2.y) + (pc.y- p1.y))} 62 | return Vector.mul( 63 | Vector.add( 64 | Vector.mul(Vector.add(Vector.sub(A.p1, Vector.mul(A.pc, 2)), A.p2), t), 65 | Vector.sub(A.pc, A.p1) 66 | ), 67 | 2 68 | ) 69 | } 70 | 71 | // Return the quadratic bezier second derivate 72 | export function seconDerivateVector(A: IQuadBezier) { 73 | // F''(t) = 2(p1-2pc+p2) 74 | //{x: 2*(p1.x - 2*pc.x + p2.x) ,y: 2*(p1.y - 2*pc.y + p2.y)} 75 | return Vector.mul(Vector.add(Vector.sub(A.p1, Vector.mul(A.pc, 2)), A.p2), 2) 76 | } 77 | 78 | // Return the slope (radians) to the quadratic bezier at t 79 | export function slopeAtT(A: IQuadBezier, t: number) { 80 | var d = slopeVectorAtT(A, t) 81 | if (d.x !== 0) return d.y / d.x 82 | else return null 83 | } 84 | 85 | // Return t for a angle (radians) 86 | export function TforAngle(A: IQuadBezier, ang: number) { 87 | return TforSlope(A, Math.tan(ang)) 88 | } 89 | 90 | // Return t for a angle (degrees) 91 | export function TforAngleDegrees(A: IQuadBezier, ang: number) { 92 | return TforSlope(A, Math.tan((ang * 180) / Math.PI)) 93 | } 94 | 95 | // Return t for a angle (vector) 96 | export function TtangentToVector(A: IQuadBezier, v: IVector) { 97 | return TforSlope(A, Vector.slope(v)) 98 | } 99 | 100 | // Angle between p1 pc p2 (radians) 101 | export function ang(A: IQuadBezier) { 102 | return Vector.ang3(A.p1, A.pc, A.p2) 103 | } 104 | 105 | export function angDegrees(A: IQuadBezier) { 106 | return Utils.toDegrees(ang(A)) 107 | } 108 | 109 | // Return the normal vector at t 110 | export function normalVectorAtT(A: IQuadBezier, t: number) { 111 | return Vector.per(slopeVectorAtT(A, t)) 112 | } 113 | 114 | // Return the normal unit vector at t 115 | export function normalUnitVectorAtT(A: IQuadBezier, t: number) { 116 | return Vector.uni(normalVectorAtT(A, t)) 117 | } 118 | 119 | // Quadratic Bezier Curvature 120 | export function curvature(A: IQuadBezier, t: number) { 121 | // k(t) = | F'(t) x F''(t) | / ||F'(t)||^3 122 | // = (x'(t)y''(t)-x''(t)y'(t)) / pow(x'(t)^2+y'(t)^2,3/2) 123 | // = |4(pc-p1) x (p1-2pc+p2)| / ||F'(t)||^3 124 | // = 8A / ||F'(t)||^3 125 | // Where A is the triangle area P1-PC-P2 => A=|vec(PC,P1) X vec(PC,P2)|/2 126 | // var A=Math.vCPR(Math.vVEC(p1,pc),Math.vVEC(pc,p2))/2 127 | // return 8*A/Math.pow(Math.vDPR(d1,d1),3/2) 128 | 129 | var d1 = slopeVectorAtT(A, t) 130 | var d2 = seconDerivateVector(A) 131 | return Vector.cpr(d1, d2) / Math.pow(Vector.dpr(d1, d1), 3 / 2) 132 | } 133 | 134 | // Returns de control point of a quadratic bezier that pass from three points 135 | export function control3Points(A: IQuadBezier, t: number) { 136 | var t1 = 1 - t 137 | var tSq = t * t 138 | var denom = 2 * t * t1 139 | 140 | return Vector.div( 141 | Vector.sub( 142 | Vector.sub(A.pc, Vector.mul(A.p1, t1 * t1)), 143 | Vector.mul(A.p2, tSq) 144 | ), 145 | denom 146 | ) 147 | } 148 | 149 | // Returns de control point of a quadratic bezier that pass from three points 150 | // where the tension tends to pc, so the point at T must be the nearest one to pc 151 | export function control3PointsAuto(A: IQuadBezier) { 152 | return control3Points(A, closestTtoPc(A)) 153 | } 154 | -------------------------------------------------------------------------------- /lib/curves/utils.ts: -------------------------------------------------------------------------------- 1 | import { IVector } from "./types" 2 | 3 | /** 4 | * Global isNum -> Double check is number 5 | * @param n 6 | */ 7 | export const IsNum = (n: number | any) => { 8 | return !!( 9 | Number(typeof n).toString() === "NaN" && Number(n + "").toString() === "NaN" 10 | ) 11 | } 12 | 13 | /** 14 | * Round a number to pecision. 15 | * @param num 16 | * @param precision 17 | */ 18 | export function preciseRound(num: number, precision: number) { 19 | return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision) 20 | } 21 | 22 | /** 23 | * Get the squared distance between two points. 24 | * @param A 25 | * @param B 26 | */ 27 | export function distance2(A: IVector, B: IVector) { 28 | var dX = B.x - A.x 29 | var dY = B.y - A.y 30 | return dX * dX + dY * dY 31 | } 32 | 33 | /** 34 | * Get the distance between two points. 35 | * @param A 36 | * @param B 37 | */ 38 | export function distance(A: IVector, B: IVector) { 39 | return Math.sqrt(distance2(A, B)) 40 | } 41 | 42 | /** 43 | * Linear interpolation betwen two numbers. 44 | * @param y1 45 | * @param y2 46 | * @param mu 47 | */ 48 | export function cosineInterpolate(y1: number, y2: number, mu: number) { 49 | let mu2 = (1 - Math.cos(mu * Math.PI)) / 2 50 | return y1 * (1 - mu2) + y2 * mu2 51 | } 52 | 53 | /** 54 | * Radians to degrees. 55 | * @param r 56 | */ 57 | export function toDegrees(r: number) { 58 | return (r * 180) / Math.PI 59 | } 60 | 61 | /** 62 | * Clamp a value into a range. 63 | * @param n 64 | * @param min 65 | */ 66 | export function clamp(n: number, min: number): number 67 | export function clamp(n: number, min: number, max: number): number 68 | export function clamp(n: number, min: number, max?: number): number { 69 | return Math.max(min, typeof max !== "undefined" ? Math.min(n, max) : n) 70 | } 71 | 72 | /** 73 | * Get a random number between a num and max 74 | * @param min 75 | * @param max 76 | */ 77 | export function random(min?: number, max?: number) { 78 | if (min !== undefined && max !== undefined) { 79 | return Math.random() * (max - min) + min 80 | } 81 | 82 | if (min !== undefined) { 83 | return Math.random() * min 84 | } 85 | 86 | return Math.random() 87 | } 88 | 89 | /** 90 | * Get a random integer. 91 | */ 92 | export function randomInt(max: number): number 93 | export function randomInt(min: number, max: number): number 94 | export function randomInt(a: number, b?: number): number { 95 | let min: number, max: number 96 | if (a !== undefined && b !== undefined) { 97 | min = Math.ceil(a) 98 | max = Math.floor(b) 99 | } else { 100 | max = Math.floor(a) 101 | min = 0 102 | } 103 | 104 | return Math.floor(Math.random() * (max - min + 1)) + min 105 | } 106 | 107 | // Array 108 | 109 | /** 110 | * Get the minimum value of an array of numbers. 111 | * */ 112 | export function min(arr: number[]) { 113 | return arr.reduce((m, p) => (p < m ? p : m), arr[0]) 114 | } 115 | 116 | /** 117 | * Get the maximum value in an array of numbers. 118 | */ 119 | export function max(arr: number[]) { 120 | return arr.reduce((m, p) => (p > m ? p : m), arr[0]) 121 | } 122 | 123 | /** 124 | * Get the value at the specified index. (Supports negative values) 125 | * @param arr 126 | * @param n 127 | */ 128 | export function at(arr: T[], n: number) { 129 | return n >= 0 ? arr[n] : arr[arr.length - 1 + n] 130 | } 131 | 132 | /** 133 | * Get the last value in an array. 134 | */ 135 | export function last(arr: T[]) { 136 | return arr[arr.length - 1] 137 | } 138 | 139 | /** 140 | * Get the second to last value in an array. 141 | * @param arr 142 | */ 143 | export function prior(arr: T[]) { 144 | return at(arr, -1) 145 | } 146 | 147 | /** 148 | * Get the first value in an array. 149 | * */ 150 | export function first(arr: T[]) { 151 | return arr[0] 152 | } 153 | 154 | /** 155 | * Convert a hue to an RGB value. 156 | * @param p 157 | * @param q 158 | * @param t 159 | */ 160 | function hue2rgb(p: number, q: number, t: number) { 161 | if (t < 0) t += 1 162 | if (t > 1) t -= 1 163 | if (t < 1 / 6) return p + (q - p) * 6 * t 164 | if (t < 1 / 2) return q 165 | if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6 166 | return p 167 | } 168 | 169 | /** 170 | * Convert an HSL color value to an RGB value. 171 | * @param h 172 | * @param s 173 | * @param l 174 | */ 175 | export function hslToRgb(h: number, s: number, l: number) { 176 | let r: number, g: number, b: number 177 | 178 | if (s === 0) { 179 | r = g = b = l // achromatic 180 | } else { 181 | var q = l < 0.5 ? l * (1 + s) : l + s - l * s 182 | var p = 2 * l - q 183 | 184 | r = hue2rgb(p, q, h + 1 / 3) 185 | g = hue2rgb(p, q, h) 186 | b = hue2rgb(p, q, h - 1 / 3) 187 | } 188 | 189 | return [r * 255, g * 255, b * 255] 190 | } 191 | 192 | /** 193 | * Get the document offset (top) for an element. 194 | * @param elm 195 | */ 196 | export function getDocumentOffsetTop(elm: HTMLElement): number { 197 | return ( 198 | elm.offsetTop + 199 | (elm.offsetParent 200 | ? getDocumentOffsetTop(elm.offsetParent as HTMLElement) 201 | : 0) 202 | ) 203 | } 204 | 205 | /** 206 | * Get the document offset (left) for an element. 207 | * @param elm 208 | */ 209 | export function getDocumentOffsetLeft(elm: HTMLElement): number { 210 | return ( 211 | elm.offsetLeft + 212 | (elm.offsetParent 213 | ? getDocumentOffsetLeft(elm.offsetParent as HTMLElement) 214 | : 0) 215 | ) 216 | } 217 | -------------------------------------------------------------------------------- /lib/curves/vector.ts: -------------------------------------------------------------------------------- 1 | import { IVector } from "./types" 2 | import * as Utils from "./utils" 3 | 4 | /** 5 | * Create a new vector object. 6 | */ 7 | export function create(A: IVector): IVector 8 | export function create(x: number, y: number): IVector 9 | export function create(pts: number[]): IVector 10 | export function create(x: number | IVector | number[], y?: number): IVector { 11 | // A new copy the vector object 12 | if (Array.isArray(x)) { 13 | return { x: x[0], y: x[1] } 14 | } 15 | 16 | if (typeof x === "object") { 17 | return { ...x } 18 | } else { 19 | return { x, y: y as number } 20 | } 21 | } 22 | 23 | /** 24 | * Get the scope of a vector. 25 | * @param A 26 | */ 27 | export function slope(A: IVector) { 28 | return A.y / A.x 29 | } 30 | 31 | /** 32 | * Add vectors. 33 | * @param A 34 | * @param B 35 | */ 36 | export function add(A: IVector, B: IVector) { 37 | return create(A.x + B.x, A.y + B.y) 38 | } 39 | 40 | /** 41 | * Subtract vectors. 42 | * @param A 43 | * @param B 44 | */ 45 | export function sub(A: IVector, B: IVector) { 46 | return create(A.x - B.x, A.y - B.y) 47 | } 48 | 49 | /** 50 | * Get the vector from vectors A to B. 51 | * @param A 52 | * @param B 53 | */ 54 | export function vec(A: IVector, B: IVector) { 55 | // A, B as points get the vector from A to B 56 | return create(B.x - A.x, B.y - A.y) 57 | } 58 | 59 | /** 60 | * Vector multiplication by scalar 61 | * @param A 62 | * @param n 63 | */ 64 | export function mul(A: IVector, n: number) { 65 | // VECTOR MULTIPLICATION BY SCALAR 66 | return create(A.x * n, A.y * n) 67 | } 68 | 69 | /** 70 | * Vector division by scalar. 71 | * @param A 72 | * @param n 73 | */ 74 | export function div(A: IVector, n: number) { 75 | return create(A.x / n, A.y / n) 76 | } 77 | 78 | /** 79 | * Perpendicular rotation of a vector A 80 | * @param A 81 | */ 82 | export function per(A: IVector) { 83 | return create(A.y, -A.x) 84 | } 85 | 86 | /** 87 | * Dot product 88 | * @param A 89 | * @param B 90 | */ 91 | export function dpr(A: IVector, B: IVector) { 92 | return A.x * B.x + A.y * B.y 93 | } 94 | 95 | /** 96 | * Cross product (outer product) | A X B | 97 | * @param A 98 | * @param B 99 | */ 100 | export function cpr(A: IVector, B: IVector) { 101 | return A.x * B.y - B.x * A.y 102 | } 103 | 104 | /** 105 | * Length of the vector squared 106 | * @param A 107 | */ 108 | export function len2(A: IVector) { 109 | return A.x * A.x + A.y * A.y 110 | } 111 | 112 | /** 113 | * Length of the vector 114 | * @param A 115 | */ 116 | export function len(A: IVector) { 117 | return Math.sqrt(len2(A)) 118 | } 119 | 120 | /** 121 | * Project A over B 122 | * @param A 123 | * @param B 124 | */ 125 | export function pry(A: IVector, B: IVector) { 126 | return dpr(A, B) / len(B) 127 | } 128 | 129 | /** 130 | * Unit vector / direction vector 131 | * @param A 132 | */ 133 | export function uni(A: IVector) { 134 | var d = len(A) 135 | return div(A, d) 136 | } 137 | 138 | /** 139 | * Distance length from A to B squared. 140 | * @param A 141 | * @param B 142 | */ 143 | export function distance2(A: IVector, B: IVector) { 144 | var dif = sub(A, B) 145 | return dif.x * dif.x + dif.y * dif.y 146 | } 147 | 148 | /** 149 | * Distance length from A to B 150 | * @param A 151 | * @param B 152 | */ 153 | export function distance(A: IVector, B: IVector) { 154 | return Math.sqrt(distance2(A, B)) 155 | } 156 | 157 | /** 158 | * Angle between vector A and vector B in radians 159 | * @param A 160 | * @param B 161 | */ 162 | export function ang(A: IVector, B: IVector) { 163 | return Math.atan2(cpr(A, B), dpr(A, B)) 164 | } 165 | 166 | /** 167 | * Mean between two vectors or mid point between two points 168 | * @param A 169 | * @param B 170 | */ 171 | export function med(A: IVector, B: IVector) { 172 | return mul(add(A, B), 0.5) 173 | } 174 | 175 | /** 176 | * Vector rotation by r (radians) 177 | * @param A 178 | * @param r rotation in radians 179 | */ 180 | export function rot(A: IVector, r: number) { 181 | return create( 182 | A.x * Math.cos(r) - A.y * Math.sin(r), 183 | A.y * Math.cos(r) + A.x * Math.sin(r) 184 | ) 185 | } 186 | 187 | /** 188 | * Check of two vectors are identical. 189 | * @param A 190 | * @param B 191 | */ 192 | export function isEqual(A: IVector, B: IVector) { 193 | return A.x === B.x && A.y === B.y 194 | } 195 | 196 | /** 197 | * Interpolate vector A to B with a scalar t 198 | * @param A 199 | * @param B 200 | * @param t scalar 201 | */ 202 | export function lrp(A: IVector, B: IVector, t: number) { 203 | return add(A, mul(vec(A, B), t)) 204 | } 205 | 206 | /** 207 | * Interpolate from A to B when curVAL goes fromVAL => to 208 | * @param A 209 | * @param B 210 | * @param from Starting value 211 | * @param to Ending value 212 | * @param s Strength 213 | */ 214 | export function int(A: IVector, B: IVector, from: number, to: number, s = 1) { 215 | var t = (Utils.clamp(from, to) - from) / (to - from) 216 | return add(mul(A, 1 - t), mul(B, s)) 217 | } 218 | 219 | /** 220 | * Get the angle between the three vectors A, B, and C. 221 | * @param p1 222 | * @param pc 223 | * @param p2 224 | */ 225 | export function ang3(p1: IVector, pc: IVector, p2: IVector) { 226 | // this, 227 | var v1 = vec(pc, p1) 228 | var v2 = vec(pc, p2) 229 | return ang(v1, v2) 230 | } 231 | 232 | /** 233 | * Get whether p1 is left of p2, relative to pc. 234 | * @param p1 235 | * @param pc 236 | * @param p2 237 | */ 238 | export function isLeft(p1: IVector, pc: IVector, p2: IVector) { 239 | // isLeft: >0 for counterclockwise 240 | // =0 for none (degenerate) 241 | // <0 for clockwise 242 | return (pc.x - p1.x) * (p2.y - p1.y) - (p2.x - p1.x) * (pc.y - p1.y) 243 | } 244 | 245 | export function clockwise(p1: IVector, pc: IVector, p2: IVector) { 246 | return isLeft(p1, pc, p2) > 0 247 | } 248 | -------------------------------------------------------------------------------- /components/controls.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import ColorInput from "./color-input" 3 | import NumberInput from "./number-input" 4 | import BooleanInput from "./boolean-input" 5 | import state, { useSelector } from "lib/state" 6 | import styled from "styled-components" 7 | 8 | const StyledControls = styled.div` 9 | position: absolute; 10 | top: 44px; 11 | left: 0; 12 | right: 0; 13 | display: grid; 14 | grid-template-columns: auto 1fr 48px; 15 | gap: 4px 8px; 16 | font-size: 13px; 17 | padding: 16px 8px; 18 | background-color: var(--color-scrim); 19 | border-bottom: 1px solid var(--color-border); 20 | backdrop-filter: blur(30px); 21 | ` 22 | 23 | const ButtonGroup = styled.div` 24 | grid-column: 1 / span 3; 25 | display: grid; 26 | grid-auto-flow: column; 27 | gap: 16px; 28 | 29 | button { 30 | padding: 8px 12px; 31 | } 32 | ` 33 | 34 | export default function Controls() { 35 | let brush = useSelector((state) => state.data.brush) 36 | let settings = useSelector((state) => state.data.settings) 37 | 38 | return ( 39 | e.stopPropagation()}> 40 | state.send("CHANGED_BRUSH", { color })} 44 | /> 45 | state.send("CHANGED_BRUSH", { size })} 51 | /> 52 | state.send("CHANGED_BRUSH", { spacing })} 59 | /> 60 | 61 | state.send("CHANGED_BRUSH", { alpha })} 67 | /> 68 | state.send("CHANGED_BRUSH", { opacity })} 74 | /> 75 | state.send("CHANGED_BRUSH", { jitter })} 81 | /> 82 | state.send("CHANGED_BRUSH", { sizeJitter })} 88 | /> 89 | state.send("CHANGED_BRUSH", { variation })} 95 | /> 96 | state.send("CHANGED_BRUSH", { streamline })} 102 | /> 103 | state.send("CHANGED_BRUSH", { speed })} 109 | /> 110 | 114 | state.send("CHANGED_SETTINGS", { simulatePressure }) 115 | } 116 | /> 117 | 121 | state.send("CHANGED_SETTINGS", { rerenderMarks }) 122 | } 123 | /> 124 | 125 | 126 | 133 | 134 | {/* state.send("CHANGED_OPTIONS", { simulatePressure: v })} 138 | /> 139 | {options.simulatePressure && ( 140 | <> 141 | 147 | state.send("CHANGED_OPTIONS", { 148 | pressureMaxVelocity: v, 149 | }) 150 | } 151 | /> 152 | 155 | state.send("CHANGED_OPTIONS", { 156 | pressureChangeRate: v, 157 | }) 158 | } 159 | min={0.001} 160 | max={2} 161 | label="Pressure Change Rate" 162 | /> 163 | 168 | state.send("CHANGED_OPTIONS", { 169 | pressureVelocityEffect: v, 170 | }) 171 | } 172 | label="Pressure Velocity Effect" 173 | /> 174 | 175 | )} 176 | state.send("CHANGED_OPTIONS", { streamline: v })} 179 | label="Streamline" 180 | min={0} 181 | max={1} 182 | /> 183 | state.send("CHANGED_OPTIONS", { minSize: v })} 189 | /> 190 | state.send("CHANGED_OPTIONS", { maxSize: v })} 196 | /> 197 | 198 | state.send("CHANGED_OPTIONS", { softness: v })} 201 | label="Softness" 202 | min={0} 203 | max={50} 204 | /> 205 | state.send("TOGGLED_DARK_MODE")} 209 | /> 210 | state.send("CHANGED_SETTINGS", { recomputePaths: v })} 214 | /> 215 | state.send("CHANGED_SETTINGS", { showTrace: v })} 219 | /> 220 | 221 | 222 | 223 | */} 224 | 225 | ) 226 | } 227 | -------------------------------------------------------------------------------- /lib/state.ts: -------------------------------------------------------------------------------- 1 | import { createSelectorHook, createState } from "@state-designer/react" 2 | import { lerp } from "./utils" 3 | import { compress, decompress } from "lz-string" 4 | import { IMark, IBrush } from "./types" 5 | import app, { createPixiMark, clean } from "./pixi" 6 | 7 | let pixiMark: ReturnType 8 | 9 | // Pointer 10 | 11 | const pointer = { 12 | x: 0, 13 | y: 0, 14 | dx: 0, 15 | dy: 0, 16 | ox: 0, 17 | oy: 0, 18 | p: 0.5, 19 | type: "mouse", 20 | shiftKey: false, 21 | metaKey: false, 22 | altKey: false, 23 | t: 0, 24 | } 25 | 26 | // Event Handling 27 | 28 | function updatePointer(e: PointerEvent) { 29 | pointer.dx = e.pageX - pointer.x 30 | pointer.dy = e.pageY - pointer.y 31 | pointer.x = e.pageX 32 | pointer.y = e.pageY 33 | pointer.p = e.pressure 34 | pointer.type = e.pointerType 35 | pointer.shiftKey = e.shiftKey 36 | pointer.metaKey = e.metaKey 37 | pointer.altKey = e.altKey 38 | pointer.t = e.timeStamp 39 | } 40 | 41 | function handlePointerDown(e: PointerEvent) { 42 | pointer.ox = e.pageX 43 | pointer.oy = e.pageY 44 | updatePointer(e) 45 | state.send("STARTED_POINTING") 46 | } 47 | 48 | function handlePointerMove(e: PointerEvent) { 49 | if (e.timeStamp - pointer.t < 16) return 50 | 51 | updatePointer(e) 52 | state.send("MOVED_POINTER") 53 | } 54 | 55 | function handlePointerUp(e: PointerEvent) { 56 | updatePointer(e) 57 | state.send("STOPPED_POINTING") 58 | } 59 | 60 | function handleKeyDown(e: KeyboardEvent) { 61 | pointer.shiftKey = e.shiftKey 62 | pointer.metaKey = e.metaKey 63 | pointer.altKey = e.altKey 64 | state.send(`STARTED_PRESSING_${e.key.toUpperCase()}`) 65 | } 66 | 67 | function handleKeyUp(e: KeyboardEvent) { 68 | pointer.shiftKey = e.shiftKey 69 | pointer.metaKey = e.metaKey 70 | pointer.altKey = e.altKey 71 | state.send(`STARTED_PRESSING_${e.key.toUpperCase()}`) 72 | } 73 | 74 | function handleResize() { 75 | if (typeof window !== "undefined") { 76 | const w = window.innerWidth 77 | const h = window.innerHeight 78 | app.renderer.resize(w, h) 79 | } 80 | } 81 | 82 | const defaultBrush: IBrush = { 83 | color: "#ffbe0c", 84 | size: 32, 85 | spacing: 0.15, 86 | speed: 0.62, 87 | variation: 0.82, 88 | streamline: 0.5, 89 | opacity: 1, 90 | alpha: 0.9, 91 | jitter: 0.06, 92 | sizeJitter: 0, 93 | type: "mouse", 94 | } 95 | 96 | const state = createState({ 97 | data: { 98 | brush: defaultBrush, 99 | settings: { 100 | rerenderMarks: true, 101 | showControls: false, 102 | simulatePressure: true, 103 | }, 104 | marks: [] as IMark[], 105 | currentMark: undefined as IMark, 106 | }, 107 | on: { 108 | LOADED: ["mountApp", "loadData", "rerenderMarks"], 109 | UNLOADED: ["unmountApp"], 110 | STARTED_PRESSING_E: "clearMarks", 111 | ERASED: "clearMarks", 112 | CHANGED_BRUSH: [ 113 | "updateBrush", 114 | "saveData", 115 | { if: "rerenderMarks", do: "rerenderMarks" }, 116 | ], 117 | CHANGED_SETTINGS: [ 118 | "updateSettings", 119 | "saveData", 120 | { if: "rerenderMarks", do: "rerenderMarks" }, 121 | ], 122 | UNDO: ["undo", "rerenderMarks", "saveData"], 123 | REDO: ["redo", "rerenderMarks", "saveData"], 124 | RESET_BRUSH: ["resetBrush", "rerenderMarks", "saveData"], 125 | }, 126 | states: { 127 | canvas: { 128 | initial: "notDrawing", 129 | states: { 130 | notDrawing: { 131 | on: { 132 | STARTED_POINTING: { 133 | do: "createMark", 134 | to: "drawing", 135 | }, 136 | }, 137 | }, 138 | drawing: { 139 | on: { 140 | MOVED_POINTER: { 141 | do: "updateMark", 142 | }, 143 | STOPPED_POINTING: { 144 | do: ["updateMark", "finishMark", "saveData"], 145 | to: "notDrawing", 146 | }, 147 | }, 148 | }, 149 | }, 150 | }, 151 | }, 152 | conditions: { 153 | rerenderMarks(data) { 154 | return data.settings.rerenderMarks 155 | }, 156 | }, 157 | actions: { 158 | // IMarks 159 | createMark(data) { 160 | const { x, y, type } = pointer 161 | const { brush, settings } = data 162 | 163 | let p = type === "pen" ? pointer.p : 0.15 164 | 165 | brush.type = type 166 | 167 | data.currentMark = { 168 | type, 169 | points: [[x, y, p]], 170 | } 171 | 172 | pixiMark = createPixiMark(brush, settings) 173 | pixiMark.addPoint([x, y, p]) 174 | }, 175 | updateMark(data) { 176 | let { x, y, p } = pointer 177 | const mark = data.currentMark! 178 | pixiMark.addPoint([x, y, p]) 179 | mark.points.push([x, y, p]) 180 | }, 181 | finishMark(data) { 182 | const mark = data.currentMark! 183 | const { x, y, p } = pointer 184 | 185 | mark.points.push([x, y, p]) 186 | pixiMark.complete([x, y, p]) 187 | 188 | data.marks.push(mark) 189 | data.currentMark = undefined 190 | }, 191 | clearMarks(data) { 192 | clean() 193 | data.marks = [] 194 | data.currentMark = undefined 195 | }, 196 | rerenderMarks(data) { 197 | clean() 198 | 199 | for (let { points } of data.marks) { 200 | const mark = createPixiMark(data.brush, data.settings) 201 | for (let i = 0; i < points.length - 1; i++) { 202 | mark.addPoint(points[i]) 203 | } 204 | 205 | mark.complete(points[points.length - 1]) 206 | } 207 | }, 208 | 209 | // Undo / Redo 210 | undo(data) { 211 | data.marks.pop() 212 | }, 213 | redo(data) {}, 214 | 215 | // Data 216 | saveData(data) { 217 | const { marks, brush, settings } = data 218 | if (typeof localStorage !== "undefined") { 219 | localStorage.setItem( 220 | "__brush_engine", 221 | compress(JSON.stringify({ marks, brush, settings })) 222 | ) 223 | } 224 | }, 225 | loadData(data) { 226 | if (typeof localStorage !== "undefined") { 227 | const local = localStorage.getItem("__brush_engine") 228 | if (local !== null) { 229 | const loaded = JSON.parse(decompress(local)) as Partial 230 | 231 | Object.assign(data, loaded) 232 | } 233 | } 234 | }, 235 | 236 | // Settings 237 | updateSettings(data, payload: Partial) { 238 | data.settings = { ...data.settings, ...payload } 239 | }, 240 | // Brush 241 | updateBrush(data, payload: Partial) { 242 | data.brush = { ...data.brush, ...payload } 243 | }, 244 | resetBrush(data) { 245 | data.brush = { ...defaultBrush } 246 | }, 247 | 248 | // Setup / Teardown 249 | mountApp(data, payload: { elm: HTMLDivElement }) { 250 | payload.elm.appendChild(app.view) 251 | if (typeof window !== "undefined") { 252 | handleResize() 253 | window.addEventListener("resize", handleResize) 254 | window.addEventListener("pointermove", handlePointerMove) 255 | window.addEventListener("pointerdown", handlePointerDown) 256 | window.addEventListener("pointerup", handlePointerUp) 257 | window.addEventListener("keydown", handleKeyDown) 258 | window.addEventListener("keyup", handleKeyUp) 259 | } 260 | }, 261 | unmountApp(data, payload: { elm: HTMLDivElement }) { 262 | clean() 263 | payload.elm.innerHTML = "" 264 | if (typeof window !== "undefined") { 265 | window.removeEventListener("resize", handleResize) 266 | window.removeEventListener("pointermove", handlePointerMove) 267 | window.removeEventListener("pointerdown", handlePointerDown) 268 | window.removeEventListener("pointerup", handlePointerUp) 269 | window.removeEventListener("keydown", handleKeyDown) 270 | window.removeEventListener("keyup", handleKeyUp) 271 | } 272 | }, 273 | }, 274 | }) 275 | 276 | export default state 277 | export const useSelector = createSelectorHook(state) 278 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/code-frame@^7.12.13": 13 | version "7.12.13" 14 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" 15 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== 16 | dependencies: 17 | "@babel/highlight" "^7.12.13" 18 | 19 | "@babel/generator@^7.13.0": 20 | version "7.13.0" 21 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.0.tgz#bd00d4394ca22f220390c56a0b5b85568ec1ec0c" 22 | integrity sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw== 23 | dependencies: 24 | "@babel/types" "^7.13.0" 25 | jsesc "^2.5.1" 26 | source-map "^0.5.0" 27 | 28 | "@babel/helper-annotate-as-pure@^7.0.0": 29 | version "7.12.13" 30 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" 31 | integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== 32 | dependencies: 33 | "@babel/types" "^7.12.13" 34 | 35 | "@babel/helper-function-name@^7.12.13": 36 | version "7.12.13" 37 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" 38 | integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== 39 | dependencies: 40 | "@babel/helper-get-function-arity" "^7.12.13" 41 | "@babel/template" "^7.12.13" 42 | "@babel/types" "^7.12.13" 43 | 44 | "@babel/helper-get-function-arity@^7.12.13": 45 | version "7.12.13" 46 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" 47 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== 48 | dependencies: 49 | "@babel/types" "^7.12.13" 50 | 51 | "@babel/helper-module-imports@^7.0.0": 52 | version "7.12.13" 53 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" 54 | integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== 55 | dependencies: 56 | "@babel/types" "^7.12.13" 57 | 58 | "@babel/helper-split-export-declaration@^7.12.13": 59 | version "7.12.13" 60 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" 61 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== 62 | dependencies: 63 | "@babel/types" "^7.12.13" 64 | 65 | "@babel/helper-validator-identifier@^7.12.11": 66 | version "7.12.11" 67 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 68 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 69 | 70 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": 71 | version "7.12.13" 72 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" 73 | integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== 74 | dependencies: 75 | "@babel/helper-validator-identifier" "^7.12.11" 76 | chalk "^2.0.0" 77 | js-tokens "^4.0.0" 78 | 79 | "@babel/parser@^7.12.13", "@babel/parser@^7.13.0": 80 | version "7.13.4" 81 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.4.tgz#340211b0da94a351a6f10e63671fa727333d13ab" 82 | integrity sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA== 83 | 84 | "@babel/runtime@7.12.5": 85 | version "7.12.5" 86 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" 87 | integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== 88 | dependencies: 89 | regenerator-runtime "^0.13.4" 90 | 91 | "@babel/template@^7.12.13": 92 | version "7.12.13" 93 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" 94 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== 95 | dependencies: 96 | "@babel/code-frame" "^7.12.13" 97 | "@babel/parser" "^7.12.13" 98 | "@babel/types" "^7.12.13" 99 | 100 | "@babel/traverse@^7.4.5": 101 | version "7.13.0" 102 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" 103 | integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== 104 | dependencies: 105 | "@babel/code-frame" "^7.12.13" 106 | "@babel/generator" "^7.13.0" 107 | "@babel/helper-function-name" "^7.12.13" 108 | "@babel/helper-split-export-declaration" "^7.12.13" 109 | "@babel/parser" "^7.13.0" 110 | "@babel/types" "^7.13.0" 111 | debug "^4.1.0" 112 | globals "^11.1.0" 113 | lodash "^4.17.19" 114 | 115 | "@babel/types@7.8.3": 116 | version "7.8.3" 117 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" 118 | integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== 119 | dependencies: 120 | esutils "^2.0.2" 121 | lodash "^4.17.13" 122 | to-fast-properties "^2.0.0" 123 | 124 | "@babel/types@^7.12.13", "@babel/types@^7.13.0": 125 | version "7.13.0" 126 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" 127 | integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== 128 | dependencies: 129 | "@babel/helper-validator-identifier" "^7.12.11" 130 | lodash "^4.17.19" 131 | to-fast-properties "^2.0.0" 132 | 133 | "@emotion/is-prop-valid@^0.8.8": 134 | version "0.8.8" 135 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" 136 | integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== 137 | dependencies: 138 | "@emotion/memoize" "0.7.4" 139 | 140 | "@emotion/memoize@0.7.4": 141 | version "0.7.4" 142 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" 143 | integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== 144 | 145 | "@emotion/stylis@^0.8.4": 146 | version "0.8.5" 147 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" 148 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== 149 | 150 | "@emotion/unitless@^0.7.4": 151 | version "0.7.5" 152 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" 153 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== 154 | 155 | "@hapi/accept@5.0.1": 156 | version "5.0.1" 157 | resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" 158 | integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q== 159 | dependencies: 160 | "@hapi/boom" "9.x.x" 161 | "@hapi/hoek" "9.x.x" 162 | 163 | "@hapi/boom@9.x.x": 164 | version "9.1.1" 165 | resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04" 166 | integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA== 167 | dependencies: 168 | "@hapi/hoek" "9.x.x" 169 | 170 | "@hapi/hoek@9.x.x": 171 | version "9.1.1" 172 | resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa" 173 | integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== 174 | 175 | "@next/env@10.0.7": 176 | version "10.0.7" 177 | resolved "https://registry.yarnpkg.com/@next/env/-/env-10.0.7.tgz#7b3e87a9029ca37491e2ec25c27593f0906725f9" 178 | integrity sha512-/vnz2SL/mk3Tei58WfRtVnvz5xHmAqcBmZL5sTBEy1CZG6OtZGNx0qAFCjtVkeJ5m1Bh4Ut+WFh/RF333wx8Sg== 179 | 180 | "@next/polyfill-module@10.0.7": 181 | version "10.0.7" 182 | resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.0.7.tgz#ec45ec1f28f47beed15ed67dffc907edd7143094" 183 | integrity sha512-HxqzRpoSgmZP0kRIWwH+e0SgtAXqJ0VkYtwWcsQFED8+xF4Eqn+7Twyp4uE6hutC8gr8IFSFqH+DEYhRtg1ltQ== 184 | 185 | "@next/react-dev-overlay@10.0.7": 186 | version "10.0.7" 187 | resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.0.7.tgz#5fe777011cab75ec09ad539ee61bb95ab5a2bdeb" 188 | integrity sha512-yq71MDHVqN2N+IqOvZDiFsMpQrBcymrdpTx1ShhAADX7cWQvW4dhcIir4BbfrS10vS1LLz/3a8uKZkGdNoJj3w== 189 | dependencies: 190 | "@babel/code-frame" "7.12.11" 191 | anser "1.4.9" 192 | chalk "4.0.0" 193 | classnames "2.2.6" 194 | css.escape "1.5.1" 195 | data-uri-to-buffer "3.0.1" 196 | platform "1.3.6" 197 | shell-quote "1.7.2" 198 | source-map "0.8.0-beta.0" 199 | stacktrace-parser "0.1.10" 200 | strip-ansi "6.0.0" 201 | 202 | "@next/react-refresh-utils@10.0.7": 203 | version "10.0.7" 204 | resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.0.7.tgz#866ce30fe2f321e011255e81ed5d55eeda05894b" 205 | integrity sha512-d/71vtQglv6m7sh4W1O9drc2hYti7UnAdEXfBLZAS354g2S80lvCRGIhbDrMx4w0rpShoxBIZboE2++LihAESg== 206 | 207 | "@opentelemetry/api@0.14.0": 208 | version "0.14.0" 209 | resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.14.0.tgz#4e17d8d2f1da72b19374efa7b6526aa001267cae" 210 | integrity sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ== 211 | dependencies: 212 | "@opentelemetry/context-base" "^0.14.0" 213 | 214 | "@opentelemetry/context-base@^0.14.0": 215 | version "0.14.0" 216 | resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" 217 | integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw== 218 | 219 | "@pixi/accessibility@5.3.8": 220 | version "5.3.8" 221 | resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.8.tgz#c80a5a0849b82dc97b52bbe8e65ebef61ec8a6ff" 222 | integrity sha512-DBkUUPIDfaw1hXFLTOsmZ401JSyu286rS2UB79ClxvVtDfGI7pR+Hgq1PuNeoQSiO9Db32W4grvuxYTulO2jkQ== 223 | dependencies: 224 | "@pixi/core" "5.3.8" 225 | "@pixi/display" "5.3.8" 226 | "@pixi/utils" "5.3.8" 227 | 228 | "@pixi/app@5.3.8": 229 | version "5.3.8" 230 | resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.8.tgz#e13d36fa5fc2b1e052a81ce67f053a0bec8504f3" 231 | integrity sha512-eekP/tIPlERZOiWOCVKgOCc66JoAHDP7yT9DBw2LtCKswvP83iwN0PX5YR/u6Z05kUW5y8t4bigfLqEqc4uChw== 232 | dependencies: 233 | "@pixi/core" "5.3.8" 234 | "@pixi/display" "5.3.8" 235 | 236 | "@pixi/constants@5.3.8": 237 | version "5.3.8" 238 | resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.8.tgz#3777b268feab6a5636bb8508fbbaad41c0b30874" 239 | integrity sha512-vTkgBgiox2pLj2ZK/X37O6rFjsLic6CYa+rSCCMo8lCwipG/dgizYoAVIsmZy30tFgg1xYzI6qOw3MSVXupp8Q== 240 | 241 | "@pixi/core@5.3.8": 242 | version "5.3.8" 243 | resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.8.tgz#28e6348b5f99aa2cfc9483796219dd379a858b36" 244 | integrity sha512-mbl7//UbNaIZJbS8R8g5o6cHAMW7xaJWW/dNazSJ9057Fpq5g3e3E2rreNTEILfC29cxm2sXDmgK5a9agoqJaA== 245 | dependencies: 246 | "@pixi/constants" "5.3.8" 247 | "@pixi/math" "5.3.8" 248 | "@pixi/runner" "5.3.8" 249 | "@pixi/settings" "5.3.8" 250 | "@pixi/ticker" "5.3.8" 251 | "@pixi/utils" "5.3.8" 252 | 253 | "@pixi/display@5.3.8": 254 | version "5.3.8" 255 | resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.8.tgz#4a351f834af249a02928a9fbee61b31edb9c977c" 256 | integrity sha512-ch7g63ox3iow/NEGbrArLfUMJVLVF+FpdFAp72uEweIzlcyzOQV6AcQTHtiRy4+tM6LdlcLSJXJISqGKt2R0Dg== 257 | dependencies: 258 | "@pixi/math" "5.3.8" 259 | "@pixi/settings" "5.3.8" 260 | "@pixi/utils" "5.3.8" 261 | 262 | "@pixi/extract@5.3.8": 263 | version "5.3.8" 264 | resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.8.tgz#851a8b346993b920f46a9b3c67611464e7aa7d28" 265 | integrity sha512-z09D+5qmGQilbBXhR3xlZCixkTb6+1bSo6jGsbQxpu3xaF0ogh1HB76SJ2Wi1vwba9Q/PMb6RlawdEAg+sRFMg== 266 | dependencies: 267 | "@pixi/core" "5.3.8" 268 | "@pixi/math" "5.3.8" 269 | "@pixi/utils" "5.3.8" 270 | 271 | "@pixi/filter-alpha@5.3.8": 272 | version "5.3.8" 273 | resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.8.tgz#2a2d878071833e8e781af4cf136bbce822ba2a57" 274 | integrity sha512-4vOmuWDLBiMbdQ2S3PmxzrzpPOrlzZVZ8iPEkQrBCYZ4dIuZY7NaV+9tneIK66dDfVI6OA8Ai304LH22nhC81Q== 275 | dependencies: 276 | "@pixi/core" "5.3.8" 277 | 278 | "@pixi/filter-ascii@^3.1.1": 279 | version "3.1.1" 280 | resolved "https://registry.yarnpkg.com/@pixi/filter-ascii/-/filter-ascii-3.1.1.tgz#edcc8e5fd08b72996f848d18af4761f4a9b92767" 281 | integrity sha512-/9mECm/T+9ze7qBXG4q0FghzBBXwOu213IWpJrQGsv5zptRI+8hNU58Gx/U/O7hlKVdNjLoeMlQxKGRcC4N4YQ== 282 | 283 | "@pixi/filter-blur@5.3.8": 284 | version "5.3.8" 285 | resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.8.tgz#1a1c573f98f6d8e1d3cde5ef980f296a7a052e23" 286 | integrity sha512-biNqbfFIDbvOJJ+NiE9G0XojnuMQqtbcaDIiOScRoY3o3yCMjjcUxUMYrZ4xnTGGtEH23OKGUTZVf53qTQ4wiw== 287 | dependencies: 288 | "@pixi/core" "5.3.8" 289 | "@pixi/settings" "5.3.8" 290 | 291 | "@pixi/filter-color-matrix@5.3.8": 292 | version "5.3.8" 293 | resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.8.tgz#24d254587159cf4cb46386df4c89bb9d0686163c" 294 | integrity sha512-0Ag08uPKVoHWQSAIhS27Bs/b50NVMZ+3fUdNg9jgyrRthD/Uc2ljfkIJRa95Mj31YJBS15Giu4BGfefpe1i3zw== 295 | dependencies: 296 | "@pixi/core" "5.3.8" 297 | 298 | "@pixi/filter-color-overlay@^3.1.1": 299 | version "3.1.1" 300 | resolved "https://registry.yarnpkg.com/@pixi/filter-color-overlay/-/filter-color-overlay-3.1.1.tgz#4bfb2cf59abf8e1913a21621a5cde3b839972e1b" 301 | integrity sha512-GO4I0e+GMnT/tfXJCZnV3pxS3/aBJQRXMmccm8E4p5XHOQxkHWwycvewpDTOTUnkz5iIOzgx5SFmlmv0yZeJ4Q== 302 | 303 | "@pixi/filter-displacement@5.3.8": 304 | version "5.3.8" 305 | resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.8.tgz#d184ab5a637382b4473462e2f4a21d8ef9f67861" 306 | integrity sha512-OQYBK3oOId8VZV7KRYYdt196EYsG0cjAmQQT7P3/IETLIP6Mba+Bd/GtyxGEIBHcb7R5DebuvN4sVQtNgkRKlw== 307 | dependencies: 308 | "@pixi/core" "5.3.8" 309 | "@pixi/math" "5.3.8" 310 | 311 | "@pixi/filter-dot@^3.1.1": 312 | version "3.1.1" 313 | resolved "https://registry.yarnpkg.com/@pixi/filter-dot/-/filter-dot-3.1.1.tgz#84049158e7fc86192b3a2fbda352f8e7e31f9ea9" 314 | integrity sha512-ejE0olqrZwdjjNH186ls0ANiKNUjQnSHNueNshmZ+QbtVEz1SDPewxw88FLyxjoAONvmeYPHSCjGGvqRjXB7Cw== 315 | 316 | "@pixi/filter-fxaa@5.3.8": 317 | version "5.3.8" 318 | resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.8.tgz#dbf954b9cb999aa60ecfe254062a178afd1fbd79" 319 | integrity sha512-eOfrp46AEjkAM1U+6k9Ga/5ezEwr1+7yGS3VijZBHntZTYKFhmGGOXrQxxL4KuslrfTV/smAflEr22U+A2H98A== 320 | dependencies: 321 | "@pixi/core" "5.3.8" 322 | 323 | "@pixi/filter-noise@5.3.8": 324 | version "5.3.8" 325 | resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.8.tgz#1a927ba9ba3ce73434a939543571579d82e3c569" 326 | integrity sha512-+MOz3GpB9XpH7d0B/HAz8zOp164UMKnE64Q9QI094X4KjXWj24RKZea8xFcOaOy9xKi57qqyo+3pLwqFB8ffsw== 327 | dependencies: 328 | "@pixi/core" "5.3.8" 329 | 330 | "@pixi/filter-outline@^3.2.0": 331 | version "3.2.0" 332 | resolved "https://registry.yarnpkg.com/@pixi/filter-outline/-/filter-outline-3.2.0.tgz#50c1b563408de3e890f4dcd5a88b7c22f6d5bbb7" 333 | integrity sha512-7LXxGjFt3R77MdJzIM77djHwnvNdtx4KzDpn2XSGQLdde02jQ21yGSWROF5oesCGTILrphdK+atwK4T3F9dQFg== 334 | 335 | "@pixi/graphics@5.3.8": 336 | version "5.3.8" 337 | resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.8.tgz#7cf8b6f9fc7c5b503dc0dec2f6650803a8f89ded" 338 | integrity sha512-auqwS6ZnDlNoerddLCoMpEzgq0o09WHH7XxwfTK75hJwBaFX1RO/nasfvCx2wAtWZxAYCaABfR8WnWZfrsBSqA== 339 | dependencies: 340 | "@pixi/constants" "5.3.8" 341 | "@pixi/core" "5.3.8" 342 | "@pixi/display" "5.3.8" 343 | "@pixi/math" "5.3.8" 344 | "@pixi/sprite" "5.3.8" 345 | "@pixi/utils" "5.3.8" 346 | 347 | "@pixi/interaction@5.3.8": 348 | version "5.3.8" 349 | resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.8.tgz#12fd73162326fbb4fbc35ad76a2cb343981846cb" 350 | integrity sha512-i9KS9TNVK/PEwyjZH2iqui9xroy0R48u/QL4Q8+VQpwbeDlz+WlPWoW5R7rpUwtHd9H6mLWpGR3sdWOmS7fMsA== 351 | dependencies: 352 | "@pixi/core" "5.3.8" 353 | "@pixi/display" "5.3.8" 354 | "@pixi/math" "5.3.8" 355 | "@pixi/ticker" "5.3.8" 356 | "@pixi/utils" "5.3.8" 357 | 358 | "@pixi/loaders@5.3.8": 359 | version "5.3.8" 360 | resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.8.tgz#78a53a137972dc78d66891f602fd2e80bdddc93a" 361 | integrity sha512-0M2e/gkBBqJW695wz9DcsYN7IY992FKqb9uOEhFFjCn2bkK9WsR6M/JBvTlTk4LOvEg81b1/J51bkucpXWx1Cg== 362 | dependencies: 363 | "@pixi/core" "5.3.8" 364 | "@pixi/utils" "5.3.8" 365 | resource-loader "^3.0.1" 366 | 367 | "@pixi/math@5.3.8": 368 | version "5.3.8" 369 | resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.8.tgz#fe9081709806e20ee778e04cf4f5e281062d9f74" 370 | integrity sha512-MZekzC9W391KU2NyzbRHrgYfjPKguzU5cRLbaEw9dgDabLh3/Yzob1KVg8dngIITPbi5yBmoX7zh7ZHEA1NRPQ== 371 | 372 | "@pixi/mesh-extras@5.3.8": 373 | version "5.3.8" 374 | resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.8.tgz#d040044aab1951cebfc67bc7b94caf62b8de6405" 375 | integrity sha512-+lHcmvslKsmlixiJW87/t5diRy7p+tvqQbXMG4/3Vzv3dBEGq453hMIknlLr2xLGyzBtboCHObzwKfeE4tvHTw== 376 | dependencies: 377 | "@pixi/constants" "5.3.8" 378 | "@pixi/core" "5.3.8" 379 | "@pixi/math" "5.3.8" 380 | "@pixi/mesh" "5.3.8" 381 | "@pixi/utils" "5.3.8" 382 | 383 | "@pixi/mesh@5.3.8": 384 | version "5.3.8" 385 | resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.8.tgz#e5a6ef1f0beadd948c143de4370c6fd5bd5e2430" 386 | integrity sha512-/CQdTypiLgSZqKx9z89cJlLQ8/FaUrc8M3HjmL8Vy5F320ERCR1YLDc6gOzyohK71wDxkUud5VbNz5woQVSBxw== 387 | dependencies: 388 | "@pixi/constants" "5.3.8" 389 | "@pixi/core" "5.3.8" 390 | "@pixi/display" "5.3.8" 391 | "@pixi/math" "5.3.8" 392 | "@pixi/settings" "5.3.8" 393 | "@pixi/utils" "5.3.8" 394 | 395 | "@pixi/mixin-cache-as-bitmap@5.3.8": 396 | version "5.3.8" 397 | resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.8.tgz#f614e4007f2ab1ad557b0e1949280118cca245a9" 398 | integrity sha512-Y4z3yvMldRUU99I+FBOl+j+TCq7CXN2ysNED/vMD2YpfilS2/8dQcAqRNEOBXCdSixd6+QHBuc0+PWR6M7irKg== 399 | dependencies: 400 | "@pixi/core" "5.3.8" 401 | "@pixi/display" "5.3.8" 402 | "@pixi/math" "5.3.8" 403 | "@pixi/settings" "5.3.8" 404 | "@pixi/sprite" "5.3.8" 405 | "@pixi/utils" "5.3.8" 406 | 407 | "@pixi/mixin-get-child-by-name@5.3.8": 408 | version "5.3.8" 409 | resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.8.tgz#f487942d2ab8a64f7a4b5adce2a6e390970a4f75" 410 | integrity sha512-6Z4C2SucwC1w2xa260VxU+uIkP8FhwnZWDfY0rxyxecWxvkM7ULsIU9szoUYUJvLJnpxRi4Xb6rXNPxXyzis9Q== 411 | dependencies: 412 | "@pixi/display" "5.3.8" 413 | 414 | "@pixi/mixin-get-global-position@5.3.8": 415 | version "5.3.8" 416 | resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.8.tgz#ac927fcec19913b48c2aee2db53d185e4b572a64" 417 | integrity sha512-o2ZKmTxDvoibGBZ8LP3qJZ3cHe7L447qsuHPPLYOPmA5hqG49YchwmKMwV6tn96C8yDECaVn429Hu5hZEI7UlA== 418 | dependencies: 419 | "@pixi/display" "5.3.8" 420 | "@pixi/math" "5.3.8" 421 | 422 | "@pixi/particles@5.3.8": 423 | version "5.3.8" 424 | resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.8.tgz#6ca5f9c8ea58be91fdddfd76ef1a6e37ea3add72" 425 | integrity sha512-XAehJJ9SsLwlZF1Qkkir0ejPZ0YgCg8MbxzmrxBUbhH1NyHJLFm+K2S7Bp12FdR/hZwTENF7GMGVRH+o86u3hw== 426 | dependencies: 427 | "@pixi/constants" "5.3.8" 428 | "@pixi/core" "5.3.8" 429 | "@pixi/display" "5.3.8" 430 | "@pixi/math" "5.3.8" 431 | "@pixi/utils" "5.3.8" 432 | 433 | "@pixi/polyfill@5.3.8": 434 | version "5.3.8" 435 | resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.8.tgz#425433c95f91615136e456fe8448b230a3fcc8cc" 436 | integrity sha512-AIXfAjYD7dfP2C+TX3482YterwGE876amqmk6EzMZCI3vvsvDJUGT/Dx6lSOU5zbcUbJ9t3Ybz81xQYpaEhv/Q== 437 | dependencies: 438 | es6-promise-polyfill "^1.2.0" 439 | object-assign "^4.1.1" 440 | 441 | "@pixi/prepare@5.3.8": 442 | version "5.3.8" 443 | resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.8.tgz#451183c43611c06adc10afaa28d8e54aa67b19ee" 444 | integrity sha512-DbYxQdziypsdQJaRKwdmODkIy2mQHETEFlVWou0XwVy+WB8VBlSnHZ57cVEY8l6Z0hJ93Vo4K6j5qIRi9MRjJA== 445 | dependencies: 446 | "@pixi/core" "5.3.8" 447 | "@pixi/display" "5.3.8" 448 | "@pixi/graphics" "5.3.8" 449 | "@pixi/settings" "5.3.8" 450 | "@pixi/text" "5.3.8" 451 | "@pixi/ticker" "5.3.8" 452 | 453 | "@pixi/runner@5.3.8": 454 | version "5.3.8" 455 | resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.8.tgz#6d6d36c2d573f490d7ed68dae9ddcc3063b5be77" 456 | integrity sha512-6Y9v9OHd5FFv6s0M4AGHnG3qvLiTBM5T5RnlEqMNMsqH6CWSDq0mNJA5HQD65q5ViK8HM6MYPm2nwwkYq5AICQ== 457 | 458 | "@pixi/settings@5.3.8": 459 | version "5.3.8" 460 | resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.8.tgz#58275eae1ced5dc47c76f9cd22e33bbf71f1cd0e" 461 | integrity sha512-/NSd9v6+IbG3GjzIoNwy7rgPg6kwwWy54pcaiM3Wv3zjkwhkVySK4m3h892Wa2z5lFvrHEH9zewGJwEpUH/FMA== 462 | dependencies: 463 | ismobilejs "^1.1.0" 464 | 465 | "@pixi/sprite-animated@5.3.8": 466 | version "5.3.8" 467 | resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.8.tgz#e6588f28320d7cb10d97cb186d63ff7e3da55bd3" 468 | integrity sha512-zLnzmCJJ++Hyyy1LPh5Lt4icPuy8C+vL59yVj3nAYzqq/G26rFuHELexB0iwKBPE9yQYuaUQhFgOPgW4vFqLAw== 469 | dependencies: 470 | "@pixi/core" "5.3.8" 471 | "@pixi/sprite" "5.3.8" 472 | "@pixi/ticker" "5.3.8" 473 | 474 | "@pixi/sprite-tiling@5.3.8": 475 | version "5.3.8" 476 | resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.8.tgz#08f35ce57be2c2b8e294a6eb3830cb279b94c243" 477 | integrity sha512-SvCAvajihsaNx/xX4s6waEqPLVkI5W86h31kpoqdPj3zXhoLbpZh6t2TWbcRJmgjM1GvBNy14gWtelBq8UF7Mg== 478 | dependencies: 479 | "@pixi/constants" "5.3.8" 480 | "@pixi/core" "5.3.8" 481 | "@pixi/display" "5.3.8" 482 | "@pixi/math" "5.3.8" 483 | "@pixi/sprite" "5.3.8" 484 | "@pixi/utils" "5.3.8" 485 | 486 | "@pixi/sprite@5.3.8": 487 | version "5.3.8" 488 | resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.8.tgz#6cfb06f6c27555d9043b0422f48a641f6794ce24" 489 | integrity sha512-r+WeX5cti3VKu6U+hZeSiY4UC8912FjNU7M5bA/gev9CfUKv3fNwKYshPfzOkTPua8dFwI1U6tplYu5rSPMBmw== 490 | dependencies: 491 | "@pixi/constants" "5.3.8" 492 | "@pixi/core" "5.3.8" 493 | "@pixi/display" "5.3.8" 494 | "@pixi/math" "5.3.8" 495 | "@pixi/settings" "5.3.8" 496 | "@pixi/utils" "5.3.8" 497 | 498 | "@pixi/spritesheet@5.3.8": 499 | version "5.3.8" 500 | resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.8.tgz#66b22c5342e394a51f844d872191bee6e8c81c9f" 501 | integrity sha512-KqTsW2LViI1UjZTycfI0x3m+yZqV8zfIm/CiDAmtujUPAu8sU78jzByc8ke7FaFC6waDsfAKTKu4fBqSu7aH1w== 502 | dependencies: 503 | "@pixi/core" "5.3.8" 504 | "@pixi/loaders" "5.3.8" 505 | "@pixi/math" "5.3.8" 506 | "@pixi/utils" "5.3.8" 507 | 508 | "@pixi/text-bitmap@5.3.8": 509 | version "5.3.8" 510 | resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.8.tgz#7b991bb28b6879478e9a031ffc15164efd79f0f7" 511 | integrity sha512-jJVAc/y7Mo/DLw8n14A1AFmhQe8rw5d+vCg/1k4hw0Oru4l2QU/8AA940kPeuky4Sj0hMLf9UWAS6A3gOo5ZTA== 512 | dependencies: 513 | "@pixi/core" "5.3.8" 514 | "@pixi/display" "5.3.8" 515 | "@pixi/loaders" "5.3.8" 516 | "@pixi/math" "5.3.8" 517 | "@pixi/mesh" "5.3.8" 518 | "@pixi/settings" "5.3.8" 519 | "@pixi/text" "5.3.8" 520 | "@pixi/utils" "5.3.8" 521 | 522 | "@pixi/text@5.3.8": 523 | version "5.3.8" 524 | resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.8.tgz#4cee2526fe25798f4ea4d1f7a6e89485e5ddc588" 525 | integrity sha512-qarv4kXSrtroJy5dbmF0Vld7L8teeQxsV5N1g1Fjhi4uUCb43ioR9euBHIjju33kOLDYYXXw6L78XIe/cW6nIw== 526 | dependencies: 527 | "@pixi/core" "5.3.8" 528 | "@pixi/math" "5.3.8" 529 | "@pixi/settings" "5.3.8" 530 | "@pixi/sprite" "5.3.8" 531 | "@pixi/utils" "5.3.8" 532 | 533 | "@pixi/ticker@5.3.8": 534 | version "5.3.8" 535 | resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.8.tgz#dc4be5db117a15c72f9e99076b674e09a9d7ecbd" 536 | integrity sha512-WoVi8btR0X2/fXJgt/oRy2gm32ECnibqUkxl0MOcLuxg7cHDZKFA5PwNK/eIx5hZZ2xM/ztoPtEohWV6LqLryw== 537 | dependencies: 538 | "@pixi/settings" "5.3.8" 539 | 540 | "@pixi/utils@5.3.8": 541 | version "5.3.8" 542 | resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.8.tgz#ea4d55e59362270b74d9d80d3cd2a3ec9d2da708" 543 | integrity sha512-LljIFFOFcXLyLzXqIYwcXUqz6NsAUbwxb7Som9Gm3i1usGIqPRX4R08Iaf4L6OKA7417gSrRmbYdT0Hje/0ikA== 544 | dependencies: 545 | "@pixi/constants" "5.3.8" 546 | "@pixi/settings" "5.3.8" 547 | earcut "^2.1.5" 548 | eventemitter3 "^3.1.0" 549 | url "^0.11.0" 550 | 551 | "@state-designer/core@latest": 552 | version "1.5.6" 553 | resolved "https://registry.yarnpkg.com/@state-designer/core/-/core-1.5.6.tgz#b7aa6784b9263927fe241139459f787e4373e187" 554 | integrity sha512-twQiLk5+sixSrlB+/OtLaiqFdiEH3MY8mHnWAijF4KKYLjqddSI+u/ahdtpzPHUQeFw5YzW6ooKNYyvBHOaJzQ== 555 | dependencies: 556 | immer "^8.0.1" 557 | lodash "^4.17.20" 558 | lodash-es "^4.17.20" 559 | object.entries "^1.1.1" 560 | object.fromentries "^2.0.2" 561 | 562 | "@state-designer/react@^1.5.6": 563 | version "1.5.6" 564 | resolved "https://registry.yarnpkg.com/@state-designer/react/-/react-1.5.6.tgz#c13483646689a4565a6a82054ea6c2e60da3fbb2" 565 | integrity sha512-6/ICOt5lJKZn/V7C/AeWsbe64gjor3Ddn2hE/NblViYvFmWokUrLF1lMTa+RnKIvZGkE+KUAv8GGCWvjy5H6zQ== 566 | dependencies: 567 | "@state-designer/core" latest 568 | lodash "^4.17.20" 569 | lodash-es "^4.17.20" 570 | 571 | "@types/hoist-non-react-statics@*": 572 | version "3.3.1" 573 | resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" 574 | integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== 575 | dependencies: 576 | "@types/react" "*" 577 | hoist-non-react-statics "^3.3.0" 578 | 579 | "@types/lz-string@^1.3.34": 580 | version "1.3.34" 581 | resolved "https://registry.yarnpkg.com/@types/lz-string/-/lz-string-1.3.34.tgz#69bfadde419314b4a374bf2c8e58659c035ed0a5" 582 | integrity sha512-j6G1e8DULJx3ONf6NdR5JiR2ZY3K3PaaqiEuKYkLQO0Czfi1AzrtjfnfCROyWGeDd5IVMKCwsgSmMip9OWijow== 583 | 584 | "@types/node@^14.14.31": 585 | version "14.14.31" 586 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" 587 | integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== 588 | 589 | "@types/prop-types@*": 590 | version "15.7.3" 591 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" 592 | integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== 593 | 594 | "@types/react@*", "@types/react@^17.0.2": 595 | version "17.0.2" 596 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" 597 | integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== 598 | dependencies: 599 | "@types/prop-types" "*" 600 | csstype "^3.0.2" 601 | 602 | "@types/styled-components@^5.1.7": 603 | version "5.1.7" 604 | resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.7.tgz#3cd10b088c1cb1acde2e4b166b3e8275a3083710" 605 | integrity sha512-BJzPhFygYspyefAGFZTZ/8lCEY4Tk+Iqktvnko3xmJf9LrLqs3+grxPeU3O0zLl6yjbYBopD0/VikbHgXDbJtA== 606 | dependencies: 607 | "@types/hoist-non-react-statics" "*" 608 | "@types/react" "*" 609 | csstype "^3.0.2" 610 | 611 | anser@1.4.9: 612 | version "1.4.9" 613 | resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" 614 | integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA== 615 | 616 | ansi-regex@^2.0.0: 617 | version "2.1.1" 618 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 619 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 620 | 621 | ansi-regex@^3.0.0: 622 | version "3.0.0" 623 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 624 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 625 | 626 | ansi-regex@^5.0.0: 627 | version "5.0.0" 628 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 629 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 630 | 631 | ansi-styles@^3.2.1: 632 | version "3.2.1" 633 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 634 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 635 | dependencies: 636 | color-convert "^1.9.0" 637 | 638 | ansi-styles@^4.1.0: 639 | version "4.3.0" 640 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 641 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 642 | dependencies: 643 | color-convert "^2.0.1" 644 | 645 | anymatch@~3.1.1: 646 | version "3.1.1" 647 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 648 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 649 | dependencies: 650 | normalize-path "^3.0.0" 651 | picomatch "^2.0.4" 652 | 653 | aproba@^1.0.3: 654 | version "1.2.0" 655 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 656 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 657 | 658 | are-we-there-yet@~1.1.2: 659 | version "1.1.5" 660 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 661 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 662 | dependencies: 663 | delegates "^1.0.0" 664 | readable-stream "^2.0.6" 665 | 666 | array-flatten@^3.0.0: 667 | version "3.0.0" 668 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-3.0.0.tgz#6428ca2ee52c7b823192ec600fa3ed2f157cd541" 669 | integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA== 670 | 671 | asn1.js@^5.2.0: 672 | version "5.4.1" 673 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" 674 | integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== 675 | dependencies: 676 | bn.js "^4.0.0" 677 | inherits "^2.0.1" 678 | minimalistic-assert "^1.0.0" 679 | safer-buffer "^2.1.0" 680 | 681 | assert@^1.1.1: 682 | version "1.5.0" 683 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" 684 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== 685 | dependencies: 686 | object-assign "^4.1.1" 687 | util "0.10.3" 688 | 689 | ast-types@0.13.2: 690 | version "0.13.2" 691 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" 692 | integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== 693 | 694 | "babel-plugin-styled-components@>= 1": 695 | version "1.12.0" 696 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9" 697 | integrity sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA== 698 | dependencies: 699 | "@babel/helper-annotate-as-pure" "^7.0.0" 700 | "@babel/helper-module-imports" "^7.0.0" 701 | babel-plugin-syntax-jsx "^6.18.0" 702 | lodash "^4.17.11" 703 | 704 | babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.18.0: 705 | version "6.18.0" 706 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 707 | integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= 708 | 709 | base64-js@^1.0.2, base64-js@^1.3.1: 710 | version "1.5.1" 711 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 712 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 713 | 714 | big.js@^5.2.2: 715 | version "5.2.2" 716 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 717 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 718 | 719 | binary-extensions@^2.0.0: 720 | version "2.2.0" 721 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 722 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 723 | 724 | bl@^4.0.3: 725 | version "4.1.0" 726 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 727 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 728 | dependencies: 729 | buffer "^5.5.0" 730 | inherits "^2.0.4" 731 | readable-stream "^3.4.0" 732 | 733 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: 734 | version "4.12.0" 735 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" 736 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== 737 | 738 | bn.js@^5.0.0, bn.js@^5.1.1: 739 | version "5.2.0" 740 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" 741 | integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== 742 | 743 | braces@~3.0.2: 744 | version "3.0.2" 745 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 746 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 747 | dependencies: 748 | fill-range "^7.0.1" 749 | 750 | brorand@^1.0.1, brorand@^1.1.0: 751 | version "1.1.0" 752 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 753 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 754 | 755 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 756 | version "1.2.0" 757 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 758 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 759 | dependencies: 760 | buffer-xor "^1.0.3" 761 | cipher-base "^1.0.0" 762 | create-hash "^1.1.0" 763 | evp_bytestokey "^1.0.3" 764 | inherits "^2.0.1" 765 | safe-buffer "^5.0.1" 766 | 767 | browserify-cipher@^1.0.0: 768 | version "1.0.1" 769 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 770 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 771 | dependencies: 772 | browserify-aes "^1.0.4" 773 | browserify-des "^1.0.0" 774 | evp_bytestokey "^1.0.0" 775 | 776 | browserify-des@^1.0.0: 777 | version "1.0.2" 778 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 779 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 780 | dependencies: 781 | cipher-base "^1.0.1" 782 | des.js "^1.0.0" 783 | inherits "^2.0.1" 784 | safe-buffer "^5.1.2" 785 | 786 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: 787 | version "4.1.0" 788 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" 789 | integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== 790 | dependencies: 791 | bn.js "^5.0.0" 792 | randombytes "^2.0.1" 793 | 794 | browserify-sign@^4.0.0: 795 | version "4.2.1" 796 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" 797 | integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== 798 | dependencies: 799 | bn.js "^5.1.1" 800 | browserify-rsa "^4.0.1" 801 | create-hash "^1.2.0" 802 | create-hmac "^1.1.7" 803 | elliptic "^6.5.3" 804 | inherits "^2.0.4" 805 | parse-asn1 "^5.1.5" 806 | readable-stream "^3.6.0" 807 | safe-buffer "^5.2.0" 808 | 809 | browserify-zlib@^0.2.0: 810 | version "0.2.0" 811 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 812 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 813 | dependencies: 814 | pako "~1.0.5" 815 | 816 | browserslist@4.16.1: 817 | version "4.16.1" 818 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" 819 | integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== 820 | dependencies: 821 | caniuse-lite "^1.0.30001173" 822 | colorette "^1.2.1" 823 | electron-to-chromium "^1.3.634" 824 | escalade "^3.1.1" 825 | node-releases "^1.1.69" 826 | 827 | buffer-xor@^1.0.3: 828 | version "1.0.3" 829 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 830 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 831 | 832 | buffer@5.6.0: 833 | version "5.6.0" 834 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" 835 | integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== 836 | dependencies: 837 | base64-js "^1.0.2" 838 | ieee754 "^1.1.4" 839 | 840 | buffer@^4.3.0: 841 | version "4.9.2" 842 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" 843 | integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== 844 | dependencies: 845 | base64-js "^1.0.2" 846 | ieee754 "^1.1.4" 847 | isarray "^1.0.0" 848 | 849 | buffer@^5.5.0: 850 | version "5.7.1" 851 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 852 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 853 | dependencies: 854 | base64-js "^1.3.1" 855 | ieee754 "^1.1.13" 856 | 857 | builtin-status-codes@^3.0.0: 858 | version "3.0.0" 859 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 860 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 861 | 862 | bytes@3.1.0: 863 | version "3.1.0" 864 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 865 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 866 | 867 | call-bind@^1.0.0, call-bind@^1.0.2: 868 | version "1.0.2" 869 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 870 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 871 | dependencies: 872 | function-bind "^1.1.1" 873 | get-intrinsic "^1.0.2" 874 | 875 | camelize@^1.0.0: 876 | version "1.0.0" 877 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" 878 | integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= 879 | 880 | caniuse-lite@^1.0.30001173, caniuse-lite@^1.0.30001179: 881 | version "1.0.30001192" 882 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001192.tgz#b848ebc0ab230cf313d194a4775a30155d50ae40" 883 | integrity sha512-63OrUnwJj5T1rUmoyqYTdRWBqFFxZFlyZnRRjDR8NSUQFB6A+j/uBORU/SyJ5WzDLg4SPiZH40hQCBNdZ/jmAw== 884 | 885 | chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.2: 886 | version "2.4.2" 887 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 888 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 889 | dependencies: 890 | ansi-styles "^3.2.1" 891 | escape-string-regexp "^1.0.5" 892 | supports-color "^5.3.0" 893 | 894 | chalk@4.0.0: 895 | version "4.0.0" 896 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" 897 | integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== 898 | dependencies: 899 | ansi-styles "^4.1.0" 900 | supports-color "^7.1.0" 901 | 902 | chokidar@3.5.1: 903 | version "3.5.1" 904 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" 905 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== 906 | dependencies: 907 | anymatch "~3.1.1" 908 | braces "~3.0.2" 909 | glob-parent "~5.1.0" 910 | is-binary-path "~2.1.0" 911 | is-glob "~4.0.1" 912 | normalize-path "~3.0.0" 913 | readdirp "~3.5.0" 914 | optionalDependencies: 915 | fsevents "~2.3.1" 916 | 917 | chownr@^1.1.1: 918 | version "1.1.4" 919 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 920 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 921 | 922 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 923 | version "1.0.4" 924 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 925 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 926 | dependencies: 927 | inherits "^2.0.1" 928 | safe-buffer "^5.0.1" 929 | 930 | classnames@2.2.6: 931 | version "2.2.6" 932 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" 933 | integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== 934 | 935 | code-point-at@^1.0.0: 936 | version "1.1.0" 937 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 938 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 939 | 940 | color-convert@^1.9.0, color-convert@^1.9.1: 941 | version "1.9.3" 942 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 943 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 944 | dependencies: 945 | color-name "1.1.3" 946 | 947 | color-convert@^2.0.1: 948 | version "2.0.1" 949 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 950 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 951 | dependencies: 952 | color-name "~1.1.4" 953 | 954 | color-name@1.1.3: 955 | version "1.1.3" 956 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 957 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 958 | 959 | color-name@^1.0.0, color-name@~1.1.4: 960 | version "1.1.4" 961 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 962 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 963 | 964 | color-string@^1.5.4: 965 | version "1.5.4" 966 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" 967 | integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== 968 | dependencies: 969 | color-name "^1.0.0" 970 | simple-swizzle "^0.2.2" 971 | 972 | color@^3.1.3: 973 | version "3.1.3" 974 | resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" 975 | integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== 976 | dependencies: 977 | color-convert "^1.9.1" 978 | color-string "^1.5.4" 979 | 980 | colorette@^1.2.1: 981 | version "1.2.2" 982 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" 983 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== 984 | 985 | commondir@^1.0.1: 986 | version "1.0.1" 987 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 988 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 989 | 990 | console-browserify@^1.1.0: 991 | version "1.2.0" 992 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" 993 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== 994 | 995 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 996 | version "1.1.0" 997 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 998 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 999 | 1000 | constants-browserify@^1.0.0: 1001 | version "1.0.0" 1002 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 1003 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 1004 | 1005 | convert-source-map@1.7.0: 1006 | version "1.7.0" 1007 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 1008 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 1009 | dependencies: 1010 | safe-buffer "~5.1.1" 1011 | 1012 | core-util-is@~1.0.0: 1013 | version "1.0.2" 1014 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 1015 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 1016 | 1017 | create-ecdh@^4.0.0: 1018 | version "4.0.4" 1019 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" 1020 | integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== 1021 | dependencies: 1022 | bn.js "^4.1.0" 1023 | elliptic "^6.5.3" 1024 | 1025 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: 1026 | version "1.2.0" 1027 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 1028 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 1029 | dependencies: 1030 | cipher-base "^1.0.1" 1031 | inherits "^2.0.1" 1032 | md5.js "^1.3.4" 1033 | ripemd160 "^2.0.1" 1034 | sha.js "^2.4.0" 1035 | 1036 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: 1037 | version "1.1.7" 1038 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 1039 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 1040 | dependencies: 1041 | cipher-base "^1.0.3" 1042 | create-hash "^1.1.0" 1043 | inherits "^2.0.1" 1044 | ripemd160 "^2.0.0" 1045 | safe-buffer "^5.0.1" 1046 | sha.js "^2.4.8" 1047 | 1048 | crypto-browserify@3.12.0, crypto-browserify@^3.11.0: 1049 | version "3.12.0" 1050 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 1051 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 1052 | dependencies: 1053 | browserify-cipher "^1.0.0" 1054 | browserify-sign "^4.0.0" 1055 | create-ecdh "^4.0.0" 1056 | create-hash "^1.1.0" 1057 | create-hmac "^1.1.0" 1058 | diffie-hellman "^5.0.0" 1059 | inherits "^2.0.1" 1060 | pbkdf2 "^3.0.3" 1061 | public-encrypt "^4.0.0" 1062 | randombytes "^2.0.0" 1063 | randomfill "^1.0.3" 1064 | 1065 | css-color-keywords@^1.0.0: 1066 | version "1.0.0" 1067 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 1068 | integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= 1069 | 1070 | css-to-react-native@^3.0.0: 1071 | version "3.0.0" 1072 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" 1073 | integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== 1074 | dependencies: 1075 | camelize "^1.0.0" 1076 | css-color-keywords "^1.0.0" 1077 | postcss-value-parser "^4.0.2" 1078 | 1079 | css.escape@1.5.1: 1080 | version "1.5.1" 1081 | resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" 1082 | integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= 1083 | 1084 | cssnano-preset-simple@1.2.2: 1085 | version "1.2.2" 1086 | resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.2.2.tgz#c631bf79ffec7fdfc4069e2f2da3ca67d99d8413" 1087 | integrity sha512-gtvrcRSGtP3hA/wS8mFVinFnQdEsEpm3v4I/s/KmNjpdWaThV/4E5EojAzFXxyT5OCSRPLlHR9iQexAqKHlhGQ== 1088 | dependencies: 1089 | caniuse-lite "^1.0.30001179" 1090 | postcss "^7.0.32" 1091 | 1092 | cssnano-simple@1.2.2: 1093 | version "1.2.2" 1094 | resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.2.2.tgz#72c2c3970e67123c3b4130894a30dc1050267007" 1095 | integrity sha512-4slyYc1w4JhSbhVX5xi9G0aQ42JnRyPg+7l7cqoNyoIDzfWx40Rq3JQZnoAWDu60A4AvKVp9ln/YSUOdhDX68g== 1096 | dependencies: 1097 | cssnano-preset-simple "1.2.2" 1098 | postcss "^7.0.32" 1099 | 1100 | csstype@^3.0.2: 1101 | version "3.0.7" 1102 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" 1103 | integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== 1104 | 1105 | data-uri-to-buffer@3.0.1: 1106 | version "3.0.1" 1107 | resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" 1108 | integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== 1109 | 1110 | debug@^4.1.0: 1111 | version "4.3.1" 1112 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 1113 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 1114 | dependencies: 1115 | ms "2.1.2" 1116 | 1117 | decompress-response@^4.2.0: 1118 | version "4.2.1" 1119 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" 1120 | integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== 1121 | dependencies: 1122 | mimic-response "^2.0.0" 1123 | 1124 | decompress-response@^6.0.0: 1125 | version "6.0.0" 1126 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 1127 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 1128 | dependencies: 1129 | mimic-response "^3.1.0" 1130 | 1131 | deep-extend@^0.6.0: 1132 | version "0.6.0" 1133 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 1134 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 1135 | 1136 | define-properties@^1.1.3: 1137 | version "1.1.3" 1138 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 1139 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 1140 | dependencies: 1141 | object-keys "^1.0.12" 1142 | 1143 | delegates@^1.0.0: 1144 | version "1.0.0" 1145 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1146 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 1147 | 1148 | depd@~1.1.2: 1149 | version "1.1.2" 1150 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 1151 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 1152 | 1153 | des.js@^1.0.0: 1154 | version "1.0.1" 1155 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" 1156 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== 1157 | dependencies: 1158 | inherits "^2.0.1" 1159 | minimalistic-assert "^1.0.0" 1160 | 1161 | detect-libc@^1.0.3: 1162 | version "1.0.3" 1163 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 1164 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 1165 | 1166 | diffie-hellman@^5.0.0: 1167 | version "5.0.3" 1168 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 1169 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 1170 | dependencies: 1171 | bn.js "^4.1.0" 1172 | miller-rabin "^4.0.0" 1173 | randombytes "^2.0.0" 1174 | 1175 | domain-browser@^1.1.1: 1176 | version "1.2.0" 1177 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 1178 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== 1179 | 1180 | earcut@^2.1.5: 1181 | version "2.2.2" 1182 | resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.2.tgz#41b0bc35f63e0fe80da7cddff28511e7e2e80d11" 1183 | integrity sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ== 1184 | 1185 | electron-to-chromium@^1.3.634: 1186 | version "1.3.674" 1187 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.674.tgz#d97feefdf1d9411fdc9d56d17e1b9d67b818e710" 1188 | integrity sha512-DBmEKRVYLZAoQSW+AmLcTF5Bpwhk4RUkobtzXVDlfPPYIlbsH3Jfg3QbBjAfFcRARzMIo4YiMhp3N+RnMuo1Eg== 1189 | 1190 | elliptic@^6.5.3: 1191 | version "6.5.4" 1192 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" 1193 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== 1194 | dependencies: 1195 | bn.js "^4.11.9" 1196 | brorand "^1.1.0" 1197 | hash.js "^1.0.0" 1198 | hmac-drbg "^1.0.1" 1199 | inherits "^2.0.4" 1200 | minimalistic-assert "^1.0.1" 1201 | minimalistic-crypto-utils "^1.0.1" 1202 | 1203 | emojis-list@^2.0.0: 1204 | version "2.1.0" 1205 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1206 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= 1207 | 1208 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 1209 | version "1.4.4" 1210 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 1211 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 1212 | dependencies: 1213 | once "^1.4.0" 1214 | 1215 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: 1216 | version "1.18.0-next.2" 1217 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" 1218 | integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== 1219 | dependencies: 1220 | call-bind "^1.0.2" 1221 | es-to-primitive "^1.2.1" 1222 | function-bind "^1.1.1" 1223 | get-intrinsic "^1.0.2" 1224 | has "^1.0.3" 1225 | has-symbols "^1.0.1" 1226 | is-callable "^1.2.2" 1227 | is-negative-zero "^2.0.1" 1228 | is-regex "^1.1.1" 1229 | object-inspect "^1.9.0" 1230 | object-keys "^1.1.1" 1231 | object.assign "^4.1.2" 1232 | string.prototype.trimend "^1.0.3" 1233 | string.prototype.trimstart "^1.0.3" 1234 | 1235 | es-to-primitive@^1.2.1: 1236 | version "1.2.1" 1237 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 1238 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1239 | dependencies: 1240 | is-callable "^1.1.4" 1241 | is-date-object "^1.0.1" 1242 | is-symbol "^1.0.2" 1243 | 1244 | es6-promise-polyfill@^1.2.0: 1245 | version "1.2.0" 1246 | resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" 1247 | integrity sha1-84kl8jyz4+jObNqP93T867sJDN4= 1248 | 1249 | escalade@^3.1.1: 1250 | version "3.1.1" 1251 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1252 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1253 | 1254 | escape-string-regexp@^1.0.5: 1255 | version "1.0.5" 1256 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1257 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1258 | 1259 | esutils@^2.0.2: 1260 | version "2.0.3" 1261 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1262 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1263 | 1264 | etag@1.8.1: 1265 | version "1.8.1" 1266 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 1267 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 1268 | 1269 | eventemitter3@^3.1.0: 1270 | version "3.1.2" 1271 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" 1272 | integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== 1273 | 1274 | events@^3.0.0: 1275 | version "3.2.0" 1276 | resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" 1277 | integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== 1278 | 1279 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1280 | version "1.0.3" 1281 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1282 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 1283 | dependencies: 1284 | md5.js "^1.3.4" 1285 | safe-buffer "^5.1.1" 1286 | 1287 | expand-template@^2.0.3: 1288 | version "2.0.3" 1289 | resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" 1290 | integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 1291 | 1292 | fill-range@^7.0.1: 1293 | version "7.0.1" 1294 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1295 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1296 | dependencies: 1297 | to-regex-range "^5.0.1" 1298 | 1299 | find-cache-dir@3.3.1: 1300 | version "3.3.1" 1301 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" 1302 | integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== 1303 | dependencies: 1304 | commondir "^1.0.1" 1305 | make-dir "^3.0.2" 1306 | pkg-dir "^4.1.0" 1307 | 1308 | find-up@^4.0.0: 1309 | version "4.1.0" 1310 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1311 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1312 | dependencies: 1313 | locate-path "^5.0.0" 1314 | path-exists "^4.0.0" 1315 | 1316 | fs-constants@^1.0.0: 1317 | version "1.0.0" 1318 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 1319 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 1320 | 1321 | fsevents@~2.3.1: 1322 | version "2.3.2" 1323 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1324 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1325 | 1326 | function-bind@^1.1.1: 1327 | version "1.1.1" 1328 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1329 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1330 | 1331 | gauge@~2.7.3: 1332 | version "2.7.4" 1333 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1334 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 1335 | dependencies: 1336 | aproba "^1.0.3" 1337 | console-control-strings "^1.0.0" 1338 | has-unicode "^2.0.0" 1339 | object-assign "^4.1.0" 1340 | signal-exit "^3.0.0" 1341 | string-width "^1.0.1" 1342 | strip-ansi "^3.0.1" 1343 | wide-align "^1.1.0" 1344 | 1345 | get-intrinsic@^1.0.2: 1346 | version "1.1.1" 1347 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 1348 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 1349 | dependencies: 1350 | function-bind "^1.1.1" 1351 | has "^1.0.3" 1352 | has-symbols "^1.0.1" 1353 | 1354 | github-from-package@0.0.0: 1355 | version "0.0.0" 1356 | resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" 1357 | integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= 1358 | 1359 | glob-parent@~5.1.0: 1360 | version "5.1.1" 1361 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 1362 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 1363 | dependencies: 1364 | is-glob "^4.0.1" 1365 | 1366 | glob-to-regexp@^0.4.1: 1367 | version "0.4.1" 1368 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 1369 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 1370 | 1371 | globals@^11.1.0: 1372 | version "11.12.0" 1373 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1374 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1375 | 1376 | graceful-fs@^4.1.2: 1377 | version "4.2.6" 1378 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 1379 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 1380 | 1381 | has-flag@^3.0.0: 1382 | version "3.0.0" 1383 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1384 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1385 | 1386 | has-flag@^4.0.0: 1387 | version "4.0.0" 1388 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1389 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1390 | 1391 | has-symbols@^1.0.1: 1392 | version "1.0.1" 1393 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 1394 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 1395 | 1396 | has-unicode@^2.0.0: 1397 | version "2.0.1" 1398 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1399 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 1400 | 1401 | has@^1.0.3: 1402 | version "1.0.3" 1403 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1404 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1405 | dependencies: 1406 | function-bind "^1.1.1" 1407 | 1408 | hash-base@^3.0.0: 1409 | version "3.1.0" 1410 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" 1411 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== 1412 | dependencies: 1413 | inherits "^2.0.4" 1414 | readable-stream "^3.6.0" 1415 | safe-buffer "^5.2.0" 1416 | 1417 | hash.js@^1.0.0, hash.js@^1.0.3: 1418 | version "1.1.7" 1419 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 1420 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 1421 | dependencies: 1422 | inherits "^2.0.3" 1423 | minimalistic-assert "^1.0.1" 1424 | 1425 | he@1.2.0: 1426 | version "1.2.0" 1427 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 1428 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 1429 | 1430 | hmac-drbg@^1.0.1: 1431 | version "1.0.1" 1432 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1433 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 1434 | dependencies: 1435 | hash.js "^1.0.3" 1436 | minimalistic-assert "^1.0.0" 1437 | minimalistic-crypto-utils "^1.0.1" 1438 | 1439 | hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: 1440 | version "3.3.2" 1441 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" 1442 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== 1443 | dependencies: 1444 | react-is "^16.7.0" 1445 | 1446 | http-errors@1.7.3: 1447 | version "1.7.3" 1448 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 1449 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 1450 | dependencies: 1451 | depd "~1.1.2" 1452 | inherits "2.0.4" 1453 | setprototypeof "1.1.1" 1454 | statuses ">= 1.5.0 < 2" 1455 | toidentifier "1.0.0" 1456 | 1457 | https-browserify@^1.0.0: 1458 | version "1.0.0" 1459 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1460 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 1461 | 1462 | iconv-lite@0.4.24: 1463 | version "0.4.24" 1464 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1465 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1466 | dependencies: 1467 | safer-buffer ">= 2.1.2 < 3" 1468 | 1469 | ieee754@^1.1.13, ieee754@^1.1.4: 1470 | version "1.2.1" 1471 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 1472 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 1473 | 1474 | immer@^8.0.1: 1475 | version "8.0.1" 1476 | resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" 1477 | integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== 1478 | 1479 | inherits@2.0.1: 1480 | version "2.0.1" 1481 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1482 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 1483 | 1484 | inherits@2.0.3: 1485 | version "2.0.3" 1486 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1487 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1488 | 1489 | inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: 1490 | version "2.0.4" 1491 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1492 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1493 | 1494 | ini@~1.3.0: 1495 | version "1.3.8" 1496 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 1497 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 1498 | 1499 | is-arrayish@^0.3.1: 1500 | version "0.3.2" 1501 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" 1502 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 1503 | 1504 | is-binary-path@~2.1.0: 1505 | version "2.1.0" 1506 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1507 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1508 | dependencies: 1509 | binary-extensions "^2.0.0" 1510 | 1511 | is-callable@^1.1.4, is-callable@^1.2.2: 1512 | version "1.2.3" 1513 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" 1514 | integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== 1515 | 1516 | is-date-object@^1.0.1: 1517 | version "1.0.2" 1518 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 1519 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 1520 | 1521 | is-extglob@^2.1.1: 1522 | version "2.1.1" 1523 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1524 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1525 | 1526 | is-fullwidth-code-point@^1.0.0: 1527 | version "1.0.0" 1528 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1529 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1530 | dependencies: 1531 | number-is-nan "^1.0.0" 1532 | 1533 | is-fullwidth-code-point@^2.0.0: 1534 | version "2.0.0" 1535 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1536 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1537 | 1538 | is-glob@^4.0.1, is-glob@~4.0.1: 1539 | version "4.0.1" 1540 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1541 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1542 | dependencies: 1543 | is-extglob "^2.1.1" 1544 | 1545 | is-negative-zero@^2.0.1: 1546 | version "2.0.1" 1547 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 1548 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 1549 | 1550 | is-number@^7.0.0: 1551 | version "7.0.0" 1552 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1553 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1554 | 1555 | is-regex@^1.1.1: 1556 | version "1.1.2" 1557 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" 1558 | integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== 1559 | dependencies: 1560 | call-bind "^1.0.2" 1561 | has-symbols "^1.0.1" 1562 | 1563 | is-symbol@^1.0.2: 1564 | version "1.0.3" 1565 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 1566 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 1567 | dependencies: 1568 | has-symbols "^1.0.1" 1569 | 1570 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1571 | version "1.0.0" 1572 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1573 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1574 | 1575 | ismobilejs@^1.1.0: 1576 | version "1.1.1" 1577 | resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" 1578 | integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== 1579 | 1580 | isobject@^2.0.0: 1581 | version "2.1.0" 1582 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1583 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1584 | dependencies: 1585 | isarray "1.0.0" 1586 | 1587 | jest-worker@24.9.0: 1588 | version "24.9.0" 1589 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" 1590 | integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== 1591 | dependencies: 1592 | merge-stream "^2.0.0" 1593 | supports-color "^6.1.0" 1594 | 1595 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1596 | version "4.0.0" 1597 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1598 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1599 | 1600 | jsesc@^2.5.1: 1601 | version "2.5.2" 1602 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1603 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1604 | 1605 | json5@^1.0.1: 1606 | version "1.0.1" 1607 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1608 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1609 | dependencies: 1610 | minimist "^1.2.0" 1611 | 1612 | line-column@^1.0.2: 1613 | version "1.0.2" 1614 | resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" 1615 | integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= 1616 | dependencies: 1617 | isarray "^1.0.0" 1618 | isobject "^2.0.0" 1619 | 1620 | loader-utils@1.2.3: 1621 | version "1.2.3" 1622 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" 1623 | integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== 1624 | dependencies: 1625 | big.js "^5.2.2" 1626 | emojis-list "^2.0.0" 1627 | json5 "^1.0.1" 1628 | 1629 | locate-path@^5.0.0: 1630 | version "5.0.0" 1631 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1632 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1633 | dependencies: 1634 | p-locate "^4.1.0" 1635 | 1636 | lodash-es@^4.17.20: 1637 | version "4.17.21" 1638 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" 1639 | integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== 1640 | 1641 | lodash.sortby@^4.7.0: 1642 | version "4.7.0" 1643 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 1644 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 1645 | 1646 | lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20: 1647 | version "4.17.21" 1648 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1649 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1650 | 1651 | loose-envify@^1.1.0, loose-envify@^1.4.0: 1652 | version "1.4.0" 1653 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1654 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1655 | dependencies: 1656 | js-tokens "^3.0.0 || ^4.0.0" 1657 | 1658 | lru-cache@^6.0.0: 1659 | version "6.0.0" 1660 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1661 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1662 | dependencies: 1663 | yallist "^4.0.0" 1664 | 1665 | lz-string@^1.4.4: 1666 | version "1.4.4" 1667 | resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" 1668 | integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= 1669 | 1670 | make-dir@^3.0.2: 1671 | version "3.1.0" 1672 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1673 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1674 | dependencies: 1675 | semver "^6.0.0" 1676 | 1677 | md5.js@^1.3.4: 1678 | version "1.3.5" 1679 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 1680 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 1681 | dependencies: 1682 | hash-base "^3.0.0" 1683 | inherits "^2.0.1" 1684 | safe-buffer "^5.1.2" 1685 | 1686 | merge-stream@^2.0.0: 1687 | version "2.0.0" 1688 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1689 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1690 | 1691 | miller-rabin@^4.0.0: 1692 | version "4.0.1" 1693 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 1694 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 1695 | dependencies: 1696 | bn.js "^4.0.0" 1697 | brorand "^1.0.1" 1698 | 1699 | mimic-response@^2.0.0: 1700 | version "2.1.0" 1701 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" 1702 | integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== 1703 | 1704 | mimic-response@^3.1.0: 1705 | version "3.1.0" 1706 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 1707 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 1708 | 1709 | mini-signals@^1.2.0: 1710 | version "1.2.0" 1711 | resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" 1712 | integrity sha1-RbCAE8X65RokqhqTXNMXye1yHXQ= 1713 | 1714 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 1715 | version "1.0.1" 1716 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 1717 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 1718 | 1719 | minimalistic-crypto-utils@^1.0.1: 1720 | version "1.0.1" 1721 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 1722 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 1723 | 1724 | minimist@^1.2.0, minimist@^1.2.3: 1725 | version "1.2.5" 1726 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1727 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1728 | 1729 | mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 1730 | version "0.5.3" 1731 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 1732 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 1733 | 1734 | ms@2.1.2: 1735 | version "2.1.2" 1736 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1737 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1738 | 1739 | nanoid@^3.1.16: 1740 | version "3.1.20" 1741 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" 1742 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== 1743 | 1744 | napi-build-utils@^1.0.1: 1745 | version "1.0.2" 1746 | resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" 1747 | integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 1748 | 1749 | native-url@0.3.4: 1750 | version "0.3.4" 1751 | resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" 1752 | integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== 1753 | dependencies: 1754 | querystring "^0.2.0" 1755 | 1756 | next@10.0.7: 1757 | version "10.0.7" 1758 | resolved "https://registry.yarnpkg.com/next/-/next-10.0.7.tgz#442f8e1da7454de33b0bbcc1ce5684b923597ee6" 1759 | integrity sha512-We0utmwwfkvO12eLyUZd3tX9VLDE3FPpOaHpH3kqKdUTxJzUKt8FLBXCTm0mwsTKW5XColWG8mJvz2OLu3+3QA== 1760 | dependencies: 1761 | "@babel/runtime" "7.12.5" 1762 | "@hapi/accept" "5.0.1" 1763 | "@next/env" "10.0.7" 1764 | "@next/polyfill-module" "10.0.7" 1765 | "@next/react-dev-overlay" "10.0.7" 1766 | "@next/react-refresh-utils" "10.0.7" 1767 | "@opentelemetry/api" "0.14.0" 1768 | ast-types "0.13.2" 1769 | browserslist "4.16.1" 1770 | buffer "5.6.0" 1771 | caniuse-lite "^1.0.30001179" 1772 | chalk "2.4.2" 1773 | chokidar "3.5.1" 1774 | crypto-browserify "3.12.0" 1775 | cssnano-simple "1.2.2" 1776 | etag "1.8.1" 1777 | find-cache-dir "3.3.1" 1778 | jest-worker "24.9.0" 1779 | native-url "0.3.4" 1780 | node-fetch "2.6.1" 1781 | node-html-parser "1.4.9" 1782 | node-libs-browser "^2.2.1" 1783 | p-limit "3.1.0" 1784 | path-browserify "1.0.1" 1785 | pnp-webpack-plugin "1.6.4" 1786 | postcss "8.1.7" 1787 | process "0.11.10" 1788 | prop-types "15.7.2" 1789 | raw-body "2.4.1" 1790 | react-is "16.13.1" 1791 | react-refresh "0.8.3" 1792 | stream-browserify "3.0.0" 1793 | styled-jsx "3.3.2" 1794 | use-subscription "1.5.1" 1795 | vm-browserify "1.1.2" 1796 | watchpack "2.0.0-beta.13" 1797 | optionalDependencies: 1798 | sharp "0.26.3" 1799 | 1800 | node-abi@^2.7.0: 1801 | version "2.19.3" 1802 | resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" 1803 | integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== 1804 | dependencies: 1805 | semver "^5.4.1" 1806 | 1807 | node-addon-api@^3.0.2: 1808 | version "3.1.0" 1809 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" 1810 | integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== 1811 | 1812 | node-fetch@2.6.1: 1813 | version "2.6.1" 1814 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 1815 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 1816 | 1817 | node-html-parser@1.4.9: 1818 | version "1.4.9" 1819 | resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" 1820 | integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== 1821 | dependencies: 1822 | he "1.2.0" 1823 | 1824 | node-libs-browser@^2.2.1: 1825 | version "2.2.1" 1826 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" 1827 | integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== 1828 | dependencies: 1829 | assert "^1.1.1" 1830 | browserify-zlib "^0.2.0" 1831 | buffer "^4.3.0" 1832 | console-browserify "^1.1.0" 1833 | constants-browserify "^1.0.0" 1834 | crypto-browserify "^3.11.0" 1835 | domain-browser "^1.1.1" 1836 | events "^3.0.0" 1837 | https-browserify "^1.0.0" 1838 | os-browserify "^0.3.0" 1839 | path-browserify "0.0.1" 1840 | process "^0.11.10" 1841 | punycode "^1.2.4" 1842 | querystring-es3 "^0.2.0" 1843 | readable-stream "^2.3.3" 1844 | stream-browserify "^2.0.1" 1845 | stream-http "^2.7.2" 1846 | string_decoder "^1.0.0" 1847 | timers-browserify "^2.0.4" 1848 | tty-browserify "0.0.0" 1849 | url "^0.11.0" 1850 | util "^0.11.0" 1851 | vm-browserify "^1.0.1" 1852 | 1853 | node-releases@^1.1.69: 1854 | version "1.1.71" 1855 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" 1856 | integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== 1857 | 1858 | noop-logger@^0.1.1: 1859 | version "0.1.1" 1860 | resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" 1861 | integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= 1862 | 1863 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1864 | version "3.0.0" 1865 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1866 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1867 | 1868 | npmlog@^4.0.1, npmlog@^4.1.2: 1869 | version "4.1.2" 1870 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1871 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 1872 | dependencies: 1873 | are-we-there-yet "~1.1.2" 1874 | console-control-strings "~1.1.0" 1875 | gauge "~2.7.3" 1876 | set-blocking "~2.0.0" 1877 | 1878 | number-is-nan@^1.0.0: 1879 | version "1.0.1" 1880 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1881 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1882 | 1883 | object-assign@^4.1.0, object-assign@^4.1.1: 1884 | version "4.1.1" 1885 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1886 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1887 | 1888 | object-inspect@^1.9.0: 1889 | version "1.9.0" 1890 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" 1891 | integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== 1892 | 1893 | object-keys@^1.0.12, object-keys@^1.1.1: 1894 | version "1.1.1" 1895 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1896 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1897 | 1898 | object.assign@^4.1.2: 1899 | version "4.1.2" 1900 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1901 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1902 | dependencies: 1903 | call-bind "^1.0.0" 1904 | define-properties "^1.1.3" 1905 | has-symbols "^1.0.1" 1906 | object-keys "^1.1.1" 1907 | 1908 | object.entries@^1.1.1: 1909 | version "1.1.3" 1910 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" 1911 | integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== 1912 | dependencies: 1913 | call-bind "^1.0.0" 1914 | define-properties "^1.1.3" 1915 | es-abstract "^1.18.0-next.1" 1916 | has "^1.0.3" 1917 | 1918 | object.fromentries@^2.0.2: 1919 | version "2.0.4" 1920 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" 1921 | integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== 1922 | dependencies: 1923 | call-bind "^1.0.2" 1924 | define-properties "^1.1.3" 1925 | es-abstract "^1.18.0-next.2" 1926 | has "^1.0.3" 1927 | 1928 | once@^1.3.1, once@^1.4.0: 1929 | version "1.4.0" 1930 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1931 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1932 | dependencies: 1933 | wrappy "1" 1934 | 1935 | os-browserify@^0.3.0: 1936 | version "0.3.0" 1937 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 1938 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 1939 | 1940 | p-limit@3.1.0: 1941 | version "3.1.0" 1942 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1943 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1944 | dependencies: 1945 | yocto-queue "^0.1.0" 1946 | 1947 | p-limit@^2.2.0: 1948 | version "2.3.0" 1949 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1950 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1951 | dependencies: 1952 | p-try "^2.0.0" 1953 | 1954 | p-locate@^4.1.0: 1955 | version "4.1.0" 1956 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1957 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1958 | dependencies: 1959 | p-limit "^2.2.0" 1960 | 1961 | p-try@^2.0.0: 1962 | version "2.2.0" 1963 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1964 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1965 | 1966 | pako@~1.0.5: 1967 | version "1.0.11" 1968 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 1969 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 1970 | 1971 | parse-asn1@^5.0.0, parse-asn1@^5.1.5: 1972 | version "5.1.6" 1973 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" 1974 | integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== 1975 | dependencies: 1976 | asn1.js "^5.2.0" 1977 | browserify-aes "^1.0.0" 1978 | evp_bytestokey "^1.0.0" 1979 | pbkdf2 "^3.0.3" 1980 | safe-buffer "^5.1.1" 1981 | 1982 | parse-uri@^1.0.0: 1983 | version "1.0.3" 1984 | resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.3.tgz#f3c24a74907a4e357c1741e96ca9faadecfd6db5" 1985 | integrity sha512-upMnGxNcm+45So85HoguwZTVZI9u11i36DdxJfGF2HYWS2eh3TIx7+/tTi7qrEq15qzGkVhsKjesau+kCk48pA== 1986 | 1987 | path-browserify@0.0.1: 1988 | version "0.0.1" 1989 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" 1990 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== 1991 | 1992 | path-browserify@1.0.1: 1993 | version "1.0.1" 1994 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" 1995 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== 1996 | 1997 | path-exists@^4.0.0: 1998 | version "4.0.0" 1999 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 2000 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2001 | 2002 | pbkdf2@^3.0.3: 2003 | version "3.1.1" 2004 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" 2005 | integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== 2006 | dependencies: 2007 | create-hash "^1.1.2" 2008 | create-hmac "^1.1.4" 2009 | ripemd160 "^2.0.1" 2010 | safe-buffer "^5.0.1" 2011 | sha.js "^2.4.8" 2012 | 2013 | picomatch@^2.0.4, picomatch@^2.2.1: 2014 | version "2.2.2" 2015 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 2016 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 2017 | 2018 | pixi.js@^5.3.8: 2019 | version "5.3.8" 2020 | resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.8.tgz#f6389f128be61ca81067a8ecf165dc94861957de" 2021 | integrity sha512-kDqkWhuAkc42lD+ldVTaS439q7D7uo9FM/wCP26jUNAFlYAp75IcALEgXuBh6HEjp51enGkRvwX9+fIiA5F9ug== 2022 | dependencies: 2023 | "@pixi/accessibility" "5.3.8" 2024 | "@pixi/app" "5.3.8" 2025 | "@pixi/constants" "5.3.8" 2026 | "@pixi/core" "5.3.8" 2027 | "@pixi/display" "5.3.8" 2028 | "@pixi/extract" "5.3.8" 2029 | "@pixi/filter-alpha" "5.3.8" 2030 | "@pixi/filter-blur" "5.3.8" 2031 | "@pixi/filter-color-matrix" "5.3.8" 2032 | "@pixi/filter-displacement" "5.3.8" 2033 | "@pixi/filter-fxaa" "5.3.8" 2034 | "@pixi/filter-noise" "5.3.8" 2035 | "@pixi/graphics" "5.3.8" 2036 | "@pixi/interaction" "5.3.8" 2037 | "@pixi/loaders" "5.3.8" 2038 | "@pixi/math" "5.3.8" 2039 | "@pixi/mesh" "5.3.8" 2040 | "@pixi/mesh-extras" "5.3.8" 2041 | "@pixi/mixin-cache-as-bitmap" "5.3.8" 2042 | "@pixi/mixin-get-child-by-name" "5.3.8" 2043 | "@pixi/mixin-get-global-position" "5.3.8" 2044 | "@pixi/particles" "5.3.8" 2045 | "@pixi/polyfill" "5.3.8" 2046 | "@pixi/prepare" "5.3.8" 2047 | "@pixi/runner" "5.3.8" 2048 | "@pixi/settings" "5.3.8" 2049 | "@pixi/sprite" "5.3.8" 2050 | "@pixi/sprite-animated" "5.3.8" 2051 | "@pixi/sprite-tiling" "5.3.8" 2052 | "@pixi/spritesheet" "5.3.8" 2053 | "@pixi/text" "5.3.8" 2054 | "@pixi/text-bitmap" "5.3.8" 2055 | "@pixi/ticker" "5.3.8" 2056 | "@pixi/utils" "5.3.8" 2057 | 2058 | pkg-dir@^4.1.0: 2059 | version "4.2.0" 2060 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 2061 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 2062 | dependencies: 2063 | find-up "^4.0.0" 2064 | 2065 | platform@1.3.6: 2066 | version "1.3.6" 2067 | resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" 2068 | integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== 2069 | 2070 | pnp-webpack-plugin@1.6.4: 2071 | version "1.6.4" 2072 | resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" 2073 | integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== 2074 | dependencies: 2075 | ts-pnp "^1.1.6" 2076 | 2077 | postcss-value-parser@^4.0.2: 2078 | version "4.1.0" 2079 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 2080 | integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 2081 | 2082 | postcss@8.1.7: 2083 | version "8.1.7" 2084 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.7.tgz#ff6a82691bd861f3354fd9b17b2332f88171233f" 2085 | integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ== 2086 | dependencies: 2087 | colorette "^1.2.1" 2088 | line-column "^1.0.2" 2089 | nanoid "^3.1.16" 2090 | source-map "^0.6.1" 2091 | 2092 | postcss@^7.0.32: 2093 | version "7.0.35" 2094 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" 2095 | integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== 2096 | dependencies: 2097 | chalk "^2.4.2" 2098 | source-map "^0.6.1" 2099 | supports-color "^6.1.0" 2100 | 2101 | prebuild-install@^6.0.0: 2102 | version "6.0.1" 2103 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d" 2104 | integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ== 2105 | dependencies: 2106 | detect-libc "^1.0.3" 2107 | expand-template "^2.0.3" 2108 | github-from-package "0.0.0" 2109 | minimist "^1.2.3" 2110 | mkdirp-classic "^0.5.3" 2111 | napi-build-utils "^1.0.1" 2112 | node-abi "^2.7.0" 2113 | noop-logger "^0.1.1" 2114 | npmlog "^4.0.1" 2115 | pump "^3.0.0" 2116 | rc "^1.2.7" 2117 | simple-get "^3.0.3" 2118 | tar-fs "^2.0.0" 2119 | tunnel-agent "^0.6.0" 2120 | which-pm-runs "^1.0.0" 2121 | 2122 | process-nextick-args@~2.0.0: 2123 | version "2.0.1" 2124 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 2125 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 2126 | 2127 | process@0.11.10, process@^0.11.10: 2128 | version "0.11.10" 2129 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2130 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 2131 | 2132 | prop-types@15.7.2, prop-types@^15.7.2: 2133 | version "15.7.2" 2134 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 2135 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 2136 | dependencies: 2137 | loose-envify "^1.4.0" 2138 | object-assign "^4.1.1" 2139 | react-is "^16.8.1" 2140 | 2141 | public-encrypt@^4.0.0: 2142 | version "4.0.3" 2143 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 2144 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 2145 | dependencies: 2146 | bn.js "^4.1.0" 2147 | browserify-rsa "^4.0.0" 2148 | create-hash "^1.1.0" 2149 | parse-asn1 "^5.0.0" 2150 | randombytes "^2.0.1" 2151 | safe-buffer "^5.1.2" 2152 | 2153 | pump@^3.0.0: 2154 | version "3.0.0" 2155 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 2156 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2157 | dependencies: 2158 | end-of-stream "^1.1.0" 2159 | once "^1.3.1" 2160 | 2161 | punycode@1.3.2: 2162 | version "1.3.2" 2163 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2164 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 2165 | 2166 | punycode@^1.2.4: 2167 | version "1.4.1" 2168 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2169 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 2170 | 2171 | punycode@^2.1.0: 2172 | version "2.1.1" 2173 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2174 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2175 | 2176 | querystring-es3@^0.2.0: 2177 | version "0.2.1" 2178 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2179 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 2180 | 2181 | querystring@0.2.0: 2182 | version "0.2.0" 2183 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2184 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 2185 | 2186 | querystring@^0.2.0: 2187 | version "0.2.1" 2188 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" 2189 | integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== 2190 | 2191 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2192 | version "2.1.0" 2193 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 2194 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 2195 | dependencies: 2196 | safe-buffer "^5.1.0" 2197 | 2198 | randomfill@^1.0.3: 2199 | version "1.0.4" 2200 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2201 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 2202 | dependencies: 2203 | randombytes "^2.0.5" 2204 | safe-buffer "^5.1.0" 2205 | 2206 | raw-body@2.4.1: 2207 | version "2.4.1" 2208 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" 2209 | integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== 2210 | dependencies: 2211 | bytes "3.1.0" 2212 | http-errors "1.7.3" 2213 | iconv-lite "0.4.24" 2214 | unpipe "1.0.0" 2215 | 2216 | rc@^1.2.7: 2217 | version "1.2.8" 2218 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2219 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 2220 | dependencies: 2221 | deep-extend "^0.6.0" 2222 | ini "~1.3.0" 2223 | minimist "^1.2.0" 2224 | strip-json-comments "~2.0.1" 2225 | 2226 | react-dom@17.0.1: 2227 | version "17.0.1" 2228 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" 2229 | integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== 2230 | dependencies: 2231 | loose-envify "^1.1.0" 2232 | object-assign "^4.1.1" 2233 | scheduler "^0.20.1" 2234 | 2235 | react-feather@^2.0.9: 2236 | version "2.0.9" 2237 | resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-2.0.9.tgz#6e42072130d2fa9a09d4476b0e61b0ed17814480" 2238 | integrity sha512-yMfCGRkZdXwIs23Zw/zIWCJO3m3tlaUvtHiXlW+3FH7cIT6fiK1iJ7RJWugXq7Fso8ZaQyUm92/GOOHXvkiVUw== 2239 | dependencies: 2240 | prop-types "^15.7.2" 2241 | 2242 | react-is@16.13.1, react-is@^16.7.0, react-is@^16.8.1: 2243 | version "16.13.1" 2244 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 2245 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 2246 | 2247 | react-refresh@0.8.3: 2248 | version "0.8.3" 2249 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" 2250 | integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== 2251 | 2252 | react@17.0.1: 2253 | version "17.0.1" 2254 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" 2255 | integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== 2256 | dependencies: 2257 | loose-envify "^1.1.0" 2258 | object-assign "^4.1.1" 2259 | 2260 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.3, readable-stream@^2.3.6: 2261 | version "2.3.7" 2262 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 2263 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 2264 | dependencies: 2265 | core-util-is "~1.0.0" 2266 | inherits "~2.0.3" 2267 | isarray "~1.0.0" 2268 | process-nextick-args "~2.0.0" 2269 | safe-buffer "~5.1.1" 2270 | string_decoder "~1.1.1" 2271 | util-deprecate "~1.0.1" 2272 | 2273 | readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: 2274 | version "3.6.0" 2275 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 2276 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 2277 | dependencies: 2278 | inherits "^2.0.3" 2279 | string_decoder "^1.1.1" 2280 | util-deprecate "^1.0.1" 2281 | 2282 | readdirp@~3.5.0: 2283 | version "3.5.0" 2284 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" 2285 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 2286 | dependencies: 2287 | picomatch "^2.2.1" 2288 | 2289 | regenerator-runtime@^0.13.4: 2290 | version "0.13.7" 2291 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 2292 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 2293 | 2294 | resource-loader@^3.0.1: 2295 | version "3.0.1" 2296 | resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" 2297 | integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== 2298 | dependencies: 2299 | mini-signals "^1.2.0" 2300 | parse-uri "^1.0.0" 2301 | 2302 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2303 | version "2.0.2" 2304 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2305 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 2306 | dependencies: 2307 | hash-base "^3.0.0" 2308 | inherits "^2.0.1" 2309 | 2310 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: 2311 | version "5.2.1" 2312 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2313 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2314 | 2315 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2316 | version "5.1.2" 2317 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2318 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2319 | 2320 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: 2321 | version "2.1.2" 2322 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2323 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2324 | 2325 | scheduler@^0.20.1: 2326 | version "0.20.1" 2327 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" 2328 | integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== 2329 | dependencies: 2330 | loose-envify "^1.1.0" 2331 | object-assign "^4.1.1" 2332 | 2333 | semver@^5.4.1: 2334 | version "5.7.1" 2335 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2336 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 2337 | 2338 | semver@^6.0.0: 2339 | version "6.3.0" 2340 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2341 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 2342 | 2343 | semver@^7.3.2: 2344 | version "7.3.4" 2345 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" 2346 | integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== 2347 | dependencies: 2348 | lru-cache "^6.0.0" 2349 | 2350 | set-blocking@~2.0.0: 2351 | version "2.0.0" 2352 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2353 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2354 | 2355 | setimmediate@^1.0.4: 2356 | version "1.0.5" 2357 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2358 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 2359 | 2360 | setprototypeof@1.1.1: 2361 | version "1.1.1" 2362 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 2363 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 2364 | 2365 | sha.js@^2.4.0, sha.js@^2.4.8: 2366 | version "2.4.11" 2367 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2368 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 2369 | dependencies: 2370 | inherits "^2.0.1" 2371 | safe-buffer "^5.0.1" 2372 | 2373 | shallowequal@^1.1.0: 2374 | version "1.1.0" 2375 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" 2376 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== 2377 | 2378 | sharp@0.26.3: 2379 | version "0.26.3" 2380 | resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.26.3.tgz#9de8577a986b22538e6e12ced1f7e8a53f9728de" 2381 | integrity sha512-NdEJ9S6AMr8Px0zgtFo1TJjMK/ROMU92MkDtYn2BBrDjIx3YfH9TUyGdzPC+I/L619GeYQc690Vbaxc5FPCCWg== 2382 | dependencies: 2383 | array-flatten "^3.0.0" 2384 | color "^3.1.3" 2385 | detect-libc "^1.0.3" 2386 | node-addon-api "^3.0.2" 2387 | npmlog "^4.1.2" 2388 | prebuild-install "^6.0.0" 2389 | semver "^7.3.2" 2390 | simple-get "^4.0.0" 2391 | tar-fs "^2.1.1" 2392 | tunnel-agent "^0.6.0" 2393 | 2394 | shell-quote@1.7.2: 2395 | version "1.7.2" 2396 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" 2397 | integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== 2398 | 2399 | signal-exit@^3.0.0: 2400 | version "3.0.3" 2401 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 2402 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 2403 | 2404 | simple-concat@^1.0.0: 2405 | version "1.0.1" 2406 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" 2407 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 2408 | 2409 | simple-get@^3.0.3: 2410 | version "3.1.0" 2411 | resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" 2412 | integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== 2413 | dependencies: 2414 | decompress-response "^4.2.0" 2415 | once "^1.3.1" 2416 | simple-concat "^1.0.0" 2417 | 2418 | simple-get@^4.0.0: 2419 | version "4.0.0" 2420 | resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675" 2421 | integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ== 2422 | dependencies: 2423 | decompress-response "^6.0.0" 2424 | once "^1.3.1" 2425 | simple-concat "^1.0.0" 2426 | 2427 | simple-swizzle@^0.2.2: 2428 | version "0.2.2" 2429 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" 2430 | integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= 2431 | dependencies: 2432 | is-arrayish "^0.3.1" 2433 | 2434 | source-map@0.7.3: 2435 | version "0.7.3" 2436 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 2437 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 2438 | 2439 | source-map@0.8.0-beta.0: 2440 | version "0.8.0-beta.0" 2441 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" 2442 | integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== 2443 | dependencies: 2444 | whatwg-url "^7.0.0" 2445 | 2446 | source-map@^0.5.0: 2447 | version "0.5.7" 2448 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2449 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2450 | 2451 | source-map@^0.6.1: 2452 | version "0.6.1" 2453 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2454 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2455 | 2456 | stacktrace-parser@0.1.10: 2457 | version "0.1.10" 2458 | resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" 2459 | integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== 2460 | dependencies: 2461 | type-fest "^0.7.1" 2462 | 2463 | "statuses@>= 1.5.0 < 2": 2464 | version "1.5.0" 2465 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2466 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2467 | 2468 | stream-browserify@3.0.0: 2469 | version "3.0.0" 2470 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" 2471 | integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== 2472 | dependencies: 2473 | inherits "~2.0.4" 2474 | readable-stream "^3.5.0" 2475 | 2476 | stream-browserify@^2.0.1: 2477 | version "2.0.2" 2478 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" 2479 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== 2480 | dependencies: 2481 | inherits "~2.0.1" 2482 | readable-stream "^2.0.2" 2483 | 2484 | stream-http@^2.7.2: 2485 | version "2.8.3" 2486 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 2487 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== 2488 | dependencies: 2489 | builtin-status-codes "^3.0.0" 2490 | inherits "^2.0.1" 2491 | readable-stream "^2.3.6" 2492 | to-arraybuffer "^1.0.0" 2493 | xtend "^4.0.0" 2494 | 2495 | string-hash@1.1.3: 2496 | version "1.1.3" 2497 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" 2498 | integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= 2499 | 2500 | string-width@^1.0.1: 2501 | version "1.0.2" 2502 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2503 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 2504 | dependencies: 2505 | code-point-at "^1.0.0" 2506 | is-fullwidth-code-point "^1.0.0" 2507 | strip-ansi "^3.0.0" 2508 | 2509 | "string-width@^1.0.2 || 2": 2510 | version "2.1.1" 2511 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2512 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2513 | dependencies: 2514 | is-fullwidth-code-point "^2.0.0" 2515 | strip-ansi "^4.0.0" 2516 | 2517 | string.prototype.trimend@^1.0.3: 2518 | version "1.0.4" 2519 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 2520 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 2521 | dependencies: 2522 | call-bind "^1.0.2" 2523 | define-properties "^1.1.3" 2524 | 2525 | string.prototype.trimstart@^1.0.3: 2526 | version "1.0.4" 2527 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 2528 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 2529 | dependencies: 2530 | call-bind "^1.0.2" 2531 | define-properties "^1.1.3" 2532 | 2533 | string_decoder@^1.0.0, string_decoder@^1.1.1: 2534 | version "1.3.0" 2535 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 2536 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 2537 | dependencies: 2538 | safe-buffer "~5.2.0" 2539 | 2540 | string_decoder@~1.1.1: 2541 | version "1.1.1" 2542 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2543 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 2544 | dependencies: 2545 | safe-buffer "~5.1.0" 2546 | 2547 | strip-ansi@6.0.0: 2548 | version "6.0.0" 2549 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 2550 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 2551 | dependencies: 2552 | ansi-regex "^5.0.0" 2553 | 2554 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2555 | version "3.0.1" 2556 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2557 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 2558 | dependencies: 2559 | ansi-regex "^2.0.0" 2560 | 2561 | strip-ansi@^4.0.0: 2562 | version "4.0.0" 2563 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2564 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2565 | dependencies: 2566 | ansi-regex "^3.0.0" 2567 | 2568 | strip-json-comments@~2.0.1: 2569 | version "2.0.1" 2570 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2571 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2572 | 2573 | styled-components@^5.2.1: 2574 | version "5.2.1" 2575 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a" 2576 | integrity sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ== 2577 | dependencies: 2578 | "@babel/helper-module-imports" "^7.0.0" 2579 | "@babel/traverse" "^7.4.5" 2580 | "@emotion/is-prop-valid" "^0.8.8" 2581 | "@emotion/stylis" "^0.8.4" 2582 | "@emotion/unitless" "^0.7.4" 2583 | babel-plugin-styled-components ">= 1" 2584 | css-to-react-native "^3.0.0" 2585 | hoist-non-react-statics "^3.0.0" 2586 | shallowequal "^1.1.0" 2587 | supports-color "^5.5.0" 2588 | 2589 | styled-jsx@3.3.2: 2590 | version "3.3.2" 2591 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018" 2592 | integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g== 2593 | dependencies: 2594 | "@babel/types" "7.8.3" 2595 | babel-plugin-syntax-jsx "6.18.0" 2596 | convert-source-map "1.7.0" 2597 | loader-utils "1.2.3" 2598 | source-map "0.7.3" 2599 | string-hash "1.1.3" 2600 | stylis "3.5.4" 2601 | stylis-rule-sheet "0.0.10" 2602 | 2603 | stylis-rule-sheet@0.0.10: 2604 | version "0.0.10" 2605 | resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" 2606 | integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw== 2607 | 2608 | stylis@3.5.4: 2609 | version "3.5.4" 2610 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" 2611 | integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== 2612 | 2613 | supports-color@^5.3.0, supports-color@^5.5.0: 2614 | version "5.5.0" 2615 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2616 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2617 | dependencies: 2618 | has-flag "^3.0.0" 2619 | 2620 | supports-color@^6.1.0: 2621 | version "6.1.0" 2622 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" 2623 | integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== 2624 | dependencies: 2625 | has-flag "^3.0.0" 2626 | 2627 | supports-color@^7.1.0: 2628 | version "7.2.0" 2629 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2630 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2631 | dependencies: 2632 | has-flag "^4.0.0" 2633 | 2634 | tar-fs@^2.0.0, tar-fs@^2.1.1: 2635 | version "2.1.1" 2636 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 2637 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 2638 | dependencies: 2639 | chownr "^1.1.1" 2640 | mkdirp-classic "^0.5.2" 2641 | pump "^3.0.0" 2642 | tar-stream "^2.1.4" 2643 | 2644 | tar-stream@^2.1.4: 2645 | version "2.2.0" 2646 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 2647 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 2648 | dependencies: 2649 | bl "^4.0.3" 2650 | end-of-stream "^1.4.1" 2651 | fs-constants "^1.0.0" 2652 | inherits "^2.0.3" 2653 | readable-stream "^3.1.1" 2654 | 2655 | timers-browserify@^2.0.4: 2656 | version "2.0.12" 2657 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" 2658 | integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== 2659 | dependencies: 2660 | setimmediate "^1.0.4" 2661 | 2662 | to-arraybuffer@^1.0.0: 2663 | version "1.0.1" 2664 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 2665 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= 2666 | 2667 | to-fast-properties@^2.0.0: 2668 | version "2.0.0" 2669 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2670 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2671 | 2672 | to-regex-range@^5.0.1: 2673 | version "5.0.1" 2674 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2675 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2676 | dependencies: 2677 | is-number "^7.0.0" 2678 | 2679 | toidentifier@1.0.0: 2680 | version "1.0.0" 2681 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 2682 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 2683 | 2684 | tr46@^1.0.1: 2685 | version "1.0.1" 2686 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 2687 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= 2688 | dependencies: 2689 | punycode "^2.1.0" 2690 | 2691 | ts-pnp@^1.1.6: 2692 | version "1.2.0" 2693 | resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" 2694 | integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== 2695 | 2696 | tty-browserify@0.0.0: 2697 | version "0.0.0" 2698 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 2699 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= 2700 | 2701 | tunnel-agent@^0.6.0: 2702 | version "0.6.0" 2703 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 2704 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 2705 | dependencies: 2706 | safe-buffer "^5.0.1" 2707 | 2708 | type-fest@^0.7.1: 2709 | version "0.7.1" 2710 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" 2711 | integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== 2712 | 2713 | typescript@^4.2.2: 2714 | version "4.2.2" 2715 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" 2716 | integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== 2717 | 2718 | unpipe@1.0.0: 2719 | version "1.0.0" 2720 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2721 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 2722 | 2723 | url@^0.11.0: 2724 | version "0.11.0" 2725 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 2726 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 2727 | dependencies: 2728 | punycode "1.3.2" 2729 | querystring "0.2.0" 2730 | 2731 | use-subscription@1.5.1: 2732 | version "1.5.1" 2733 | resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" 2734 | integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== 2735 | dependencies: 2736 | object-assign "^4.1.1" 2737 | 2738 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 2739 | version "1.0.2" 2740 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2741 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2742 | 2743 | util@0.10.3: 2744 | version "0.10.3" 2745 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 2746 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 2747 | dependencies: 2748 | inherits "2.0.1" 2749 | 2750 | util@^0.11.0: 2751 | version "0.11.1" 2752 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" 2753 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== 2754 | dependencies: 2755 | inherits "2.0.3" 2756 | 2757 | vm-browserify@1.1.2, vm-browserify@^1.0.1: 2758 | version "1.1.2" 2759 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" 2760 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== 2761 | 2762 | watchpack@2.0.0-beta.13: 2763 | version "2.0.0-beta.13" 2764 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" 2765 | integrity sha512-ZEFq2mx/k5qgQwgi6NOm+2ImICb8ngAkA/rZ6oyXZ7SgPn3pncf+nfhYTCrs3lmHwOxnPtGLTOuFLfpSMh1VMA== 2766 | dependencies: 2767 | glob-to-regexp "^0.4.1" 2768 | graceful-fs "^4.1.2" 2769 | 2770 | webidl-conversions@^4.0.2: 2771 | version "4.0.2" 2772 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 2773 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 2774 | 2775 | whatwg-url@^7.0.0: 2776 | version "7.1.0" 2777 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" 2778 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== 2779 | dependencies: 2780 | lodash.sortby "^4.7.0" 2781 | tr46 "^1.0.1" 2782 | webidl-conversions "^4.0.2" 2783 | 2784 | which-pm-runs@^1.0.0: 2785 | version "1.0.0" 2786 | resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" 2787 | integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= 2788 | 2789 | wide-align@^1.1.0: 2790 | version "1.1.3" 2791 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 2792 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 2793 | dependencies: 2794 | string-width "^1.0.2 || 2" 2795 | 2796 | wrappy@1: 2797 | version "1.0.2" 2798 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2799 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2800 | 2801 | xtend@^4.0.0: 2802 | version "4.0.2" 2803 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 2804 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 2805 | 2806 | yallist@^4.0.0: 2807 | version "4.0.0" 2808 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2809 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2810 | 2811 | yocto-queue@^0.1.0: 2812 | version "0.1.0" 2813 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2814 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2815 | --------------------------------------------------------------------------------