Merge branch 'develop' into readable-time

This commit is contained in:
picklesrus 2020-12-07 16:05:02 -05:00 committed by GitHub
commit f4f6b70f2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 1581 additions and 556 deletions

435
package-lock.json generated
View file

@ -16,12 +16,12 @@
} }
}, },
"@babel/cli": { "@babel/cli": {
"version": "7.12.1", "version": "7.12.8",
"resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.8.tgz",
"integrity": "sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==", "integrity": "sha512-/6nQj11oaGhLmZiuRUfxsujiPDc9BBReemiXgIbxc+M5W+MIiFKYwvNDJvBfnGKNsJTKbUfEheKc9cwoPHAVQA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@nicolo-ribaudo/chokidar-2": "^2.1.8", "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents",
"chokidar": "^3.4.0", "chokidar": "^3.4.0",
"commander": "^4.0.1", "commander": "^4.0.1",
"convert-source-map": "^1.1.0", "convert-source-map": "^1.1.0",
@ -226,19 +226,19 @@
} }
}, },
"@babel/core": { "@babel/core": {
"version": "7.12.3", "version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
"integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1", "@babel/generator": "^7.12.5",
"@babel/helper-module-transforms": "^7.12.1", "@babel/helper-module-transforms": "^7.12.1",
"@babel/helpers": "^7.12.1", "@babel/helpers": "^7.12.5",
"@babel/parser": "^7.12.3", "@babel/parser": "^7.12.7",
"@babel/template": "^7.10.4", "@babel/template": "^7.12.7",
"@babel/traverse": "^7.12.1", "@babel/traverse": "^7.12.9",
"@babel/types": "^7.12.1", "@babel/types": "^7.12.7",
"convert-source-map": "^1.7.0", "convert-source-map": "^1.7.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.1", "gensync": "^1.0.0-beta.1",
@ -259,12 +259,12 @@
} }
}, },
"@babel/generator": { "@babel/generator": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
"integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1", "@babel/types": "^7.12.5",
"jsesc": "^2.5.1", "jsesc": "^2.5.1",
"source-map": "^0.5.0" "source-map": "^0.5.0"
} }
@ -310,43 +310,43 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.12.3", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
"integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
"dev": true "dev": true
}, },
"@babel/template": { "@babel/template": {
"version": "7.10.4", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/parser": "^7.10.4", "@babel/parser": "^7.12.7",
"@babel/types": "^7.10.4" "@babel/types": "^7.12.7"
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.12.1", "version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
"integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1", "@babel/generator": "^7.12.5",
"@babel/helper-function-name": "^7.10.4", "@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0", "@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.12.1", "@babel/parser": "^7.12.7",
"@babel/types": "^7.12.1", "@babel/types": "^7.12.7",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0", "globals": "^11.1.0",
"lodash": "^4.17.19" "lodash": "^4.17.19"
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -384,9 +384,9 @@
} }
}, },
"debug": { "debug": {
"version": "4.2.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"ms": "2.1.2" "ms": "2.1.2"
@ -508,18 +508,18 @@
} }
}, },
"@babel/helper-member-expression-to-functions": { "@babel/helper-member-expression-to-functions": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz",
"integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1" "@babel/types": "^7.12.7"
}, },
"dependencies": { "dependencies": {
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -542,18 +542,18 @@
} }
}, },
"@babel/helper-module-imports": { "@babel/helper-module-imports": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
"integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==", "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1" "@babel/types": "^7.12.5"
}, },
"dependencies": { "dependencies": {
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -602,12 +602,12 @@
} }
}, },
"@babel/generator": { "@babel/generator": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
"integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1", "@babel/types": "^7.12.5",
"jsesc": "^2.5.1", "jsesc": "^2.5.1",
"source-map": "^0.5.0" "source-map": "^0.5.0"
} }
@ -653,43 +653,43 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.12.3", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
"integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
"dev": true "dev": true
}, },
"@babel/template": { "@babel/template": {
"version": "7.10.4", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/parser": "^7.10.4", "@babel/parser": "^7.12.7",
"@babel/types": "^7.10.4" "@babel/types": "^7.12.7"
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.12.1", "version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
"integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1", "@babel/generator": "^7.12.5",
"@babel/helper-function-name": "^7.10.4", "@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0", "@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.12.1", "@babel/parser": "^7.12.7",
"@babel/types": "^7.12.1", "@babel/types": "^7.12.7",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0", "globals": "^11.1.0",
"lodash": "^4.17.19" "lodash": "^4.17.19"
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -718,9 +718,9 @@
} }
}, },
"debug": { "debug": {
"version": "4.2.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"ms": "2.1.2" "ms": "2.1.2"
@ -780,18 +780,18 @@
} }
}, },
"@babel/helper-optimise-call-expression": { "@babel/helper-optimise-call-expression": {
"version": "7.10.4", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz",
"integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.10.4" "@babel/types": "^7.12.7"
}, },
"dependencies": { "dependencies": {
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -820,15 +820,15 @@
"dev": true "dev": true
}, },
"@babel/helper-replace-supers": { "@babel/helper-replace-supers": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz",
"integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==", "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-member-expression-to-functions": "^7.12.1", "@babel/helper-member-expression-to-functions": "^7.12.1",
"@babel/helper-optimise-call-expression": "^7.10.4", "@babel/helper-optimise-call-expression": "^7.10.4",
"@babel/traverse": "^7.12.1", "@babel/traverse": "^7.12.5",
"@babel/types": "^7.12.1" "@babel/types": "^7.12.5"
}, },
"dependencies": { "dependencies": {
"@babel/code-frame": { "@babel/code-frame": {
@ -841,12 +841,12 @@
} }
}, },
"@babel/generator": { "@babel/generator": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
"integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1", "@babel/types": "^7.12.5",
"jsesc": "^2.5.1", "jsesc": "^2.5.1",
"source-map": "^0.5.0" "source-map": "^0.5.0"
} }
@ -892,43 +892,43 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.12.3", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
"integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
"dev": true "dev": true
}, },
"@babel/template": { "@babel/template": {
"version": "7.10.4", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/parser": "^7.10.4", "@babel/parser": "^7.12.7",
"@babel/types": "^7.10.4" "@babel/types": "^7.12.7"
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.12.1", "version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
"integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1", "@babel/generator": "^7.12.5",
"@babel/helper-function-name": "^7.10.4", "@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0", "@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.12.1", "@babel/parser": "^7.12.7",
"@babel/types": "^7.12.1", "@babel/types": "^7.12.7",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0", "globals": "^11.1.0",
"lodash": "^4.17.19" "lodash": "^4.17.19"
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -957,9 +957,9 @@
} }
}, },
"debug": { "debug": {
"version": "4.2.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"ms": "2.1.2" "ms": "2.1.2"
@ -1028,9 +1028,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -1068,14 +1068,14 @@
"dev": true "dev": true
}, },
"@babel/helpers": { "@babel/helpers": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
"integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==", "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/template": "^7.10.4", "@babel/template": "^7.10.4",
"@babel/traverse": "^7.12.1", "@babel/traverse": "^7.12.5",
"@babel/types": "^7.12.1" "@babel/types": "^7.12.5"
}, },
"dependencies": { "dependencies": {
"@babel/code-frame": { "@babel/code-frame": {
@ -1088,12 +1088,12 @@
} }
}, },
"@babel/generator": { "@babel/generator": {
"version": "7.12.1", "version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
"integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.12.1", "@babel/types": "^7.12.5",
"jsesc": "^2.5.1", "jsesc": "^2.5.1",
"source-map": "^0.5.0" "source-map": "^0.5.0"
} }
@ -1139,43 +1139,43 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.12.3", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
"integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
"dev": true "dev": true
}, },
"@babel/template": { "@babel/template": {
"version": "7.10.4", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/parser": "^7.10.4", "@babel/parser": "^7.12.7",
"@babel/types": "^7.10.4" "@babel/types": "^7.12.7"
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.12.1", "version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
"integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.1", "@babel/generator": "^7.12.5",
"@babel/helper-function-name": "^7.10.4", "@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0", "@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.12.1", "@babel/parser": "^7.12.7",
"@babel/types": "^7.12.1", "@babel/types": "^7.12.7",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0", "globals": "^11.1.0",
"lodash": "^4.17.19" "lodash": "^4.17.19"
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.12.1", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.10.4", "@babel/helper-validator-identifier": "^7.10.4",
@ -1204,9 +1204,9 @@
} }
}, },
"debug": { "debug": {
"version": "4.2.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"ms": "2.1.2" "ms": "2.1.2"
@ -1473,13 +1473,23 @@
"dev": true "dev": true
}, },
"@nicolo-ribaudo/chokidar-2": { "@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8", "version": "2.1.8-no-fsevents",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz",
"integrity": "sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA==", "integrity": "sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"chokidar": "2.1.8" "anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
"is-glob": "^4.0.0",
"normalize-path": "^3.0.0",
"path-is-absolute": "^1.0.0",
"readdirp": "^2.2.1",
"upath": "^1.1.1"
}, },
"dependencies": { "dependencies": {
"anymatch": { "anymatch": {
@ -1550,27 +1560,6 @@
} }
} }
}, },
"chokidar": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
"integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"dev": true,
"optional": true,
"requires": {
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
"is-glob": "^4.0.0",
"normalize-path": "^3.0.0",
"path-is-absolute": "^1.0.0",
"readdirp": "^2.2.1",
"upath": "^1.1.1"
}
},
"debug": { "debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@ -2017,9 +2006,9 @@
"dev": true "dev": true
}, },
"@types/babel__core": { "@types/babel__core": {
"version": "7.1.10", "version": "7.1.12",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.10.tgz", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
"integrity": "sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw==", "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/parser": "^7.1.0", "@babel/parser": "^7.1.0",
@ -2039,9 +2028,9 @@
} }
}, },
"@types/babel__template": { "@types/babel__template": {
"version": "7.0.3", "version": "7.4.0",
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.3.tgz", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz",
"integrity": "sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q==", "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/parser": "^7.1.0", "@babel/parser": "^7.1.0",
@ -2049,9 +2038,9 @@
} }
}, },
"@types/babel__traverse": { "@types/babel__traverse": {
"version": "7.0.15", "version": "7.0.16",
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.16.tgz",
"integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "integrity": "sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.3.0" "@babel/types": "^7.3.0"
@ -4462,9 +4451,9 @@
} }
}, },
"y18n": { "y18n": {
"version": "4.0.0", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
"dev": true "dev": true
} }
} }
@ -4620,9 +4609,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001157", "version": "1.0.30001165",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz",
"integrity": "sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==", "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==",
"dev": true "dev": true
}, },
"canvas-fit": { "canvas-fit": {
@ -9080,9 +9069,9 @@
} }
}, },
"gensync": { "gensync": {
"version": "1.0.0-beta.1", "version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true "dev": true
}, },
"geojson-rewind": { "geojson-rewind": {
@ -15664,9 +15653,9 @@
} }
}, },
"node-releases": { "node-releases": {
"version": "1.1.66", "version": "1.1.67",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz",
"integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==",
"dev": true "dev": true
}, },
"node-sass": { "node-sass": {
@ -20634,9 +20623,9 @@
} }
}, },
"scratch-blocks": { "scratch-blocks": {
"version": "0.1.0-prerelease.20201112095731", "version": "0.1.0-prerelease.20201205050032",
"resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20201112095731.tgz", "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20201205050032.tgz",
"integrity": "sha512-SivUAKm0YzW91NCSRvx2FkAh0hM373GqtNxyFETHX6I5wKfYn9I4qx7g5Xppc4FTUDwnhzt0dZUB5B4kjbk1jw==", "integrity": "sha512-1mkwAJi1ykFL1nVQXBcJ2SjJzQD9SmjjWxyhV3M5hgCqn/svRbC2Au4vhb6l1UPKZ1PFViKta2L38deekhqbcQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"exports-loader": "0.6.3", "exports-loader": "0.6.3",
@ -20644,9 +20633,9 @@
} }
}, },
"scratch-gui": { "scratch-gui": {
"version": "0.1.0-prerelease.20201112102118", "version": "0.1.0-prerelease.20201207040127",
"resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20201112102118.tgz", "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20201207040127.tgz",
"integrity": "sha512-DRu7rmVLPOdOkSI/cNwF2dNk6BV6iIhoiquLaM0kf6LP9MGqzgg+YhjMBOeGrAjWEm1KW+GoCUrA2ziRLrRprg==", "integrity": "sha512-C3a2ULO+3GdP1GHhWjeNanQdfitw9xXfJVfV1+UpMBVP1cZr1SMk6UvUDwcQEMqMU3B+GSYkw/blQ+vCXCt1RQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"arraybuffer-loader": "^1.0.6", "arraybuffer-loader": "^1.0.6",
@ -20697,13 +20686,13 @@
"redux": "3.7.2", "redux": "3.7.2",
"redux-throttle": "0.1.1", "redux-throttle": "0.1.1",
"scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-audio": "0.1.0-prerelease.20200528195344",
"scratch-blocks": "0.1.0-prerelease.20201112095731", "scratch-blocks": "0.1.0-prerelease.20201205050032",
"scratch-l10n": "3.10.20201112030847", "scratch-l10n": "3.10.20201207031619",
"scratch-paint": "0.2.0-prerelease.20201020103914", "scratch-paint": "0.2.0-prerelease.20201020103914",
"scratch-render": "0.1.0-prerelease.20201111202433", "scratch-render": "0.1.0-prerelease.20201113223804",
"scratch-storage": "1.3.3", "scratch-storage": "1.3.3",
"scratch-svg-renderer": "0.2.0-prerelease.20201019174008", "scratch-svg-renderer": "0.2.0-prerelease.20201019174008",
"scratch-vm": "0.2.0-prerelease.20201112030151", "scratch-vm": "0.2.0-prerelease.20201125065300",
"startaudiocontext": "1.2.1", "startaudiocontext": "1.2.1",
"style-loader": "^0.23.0", "style-loader": "^0.23.0",
"text-encoding": "0.7.0", "text-encoding": "0.7.0",
@ -20743,16 +20732,16 @@
"dev": true "dev": true
}, },
"browserslist": { "browserslist": {
"version": "4.14.7", "version": "4.15.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.15.0.tgz",
"integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", "integrity": "sha512-IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"caniuse-lite": "^1.0.30001157", "caniuse-lite": "^1.0.30001164",
"colorette": "^1.2.1", "colorette": "^1.2.1",
"electron-to-chromium": "^1.3.591", "electron-to-chromium": "^1.3.612",
"escalade": "^3.1.1", "escalade": "^3.1.1",
"node-releases": "^1.1.66" "node-releases": "^1.1.67"
} }
}, },
"chalk": { "chalk": {
@ -20882,9 +20871,9 @@
"dev": true "dev": true
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.593", "version": "1.3.616",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.593.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz",
"integrity": "sha512-GvO7G1ZxvffnMvPCr4A7+iQPVuvpyqMrx2VWSERAjG+pHK6tmO9XqYdBfMIq9corRyi4bNImSDEiDvIoDb8HrA==", "integrity": "sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==",
"dev": true "dev": true
}, },
"file-loader": { "file-loader": {
@ -21120,18 +21109,6 @@
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
"dev": true "dev": true
}, },
"scratch-l10n": {
"version": "3.10.20201112030847",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.10.20201112030847.tgz",
"integrity": "sha512-3NQJq4sAvz8cItUi6kb7soZEa92udW8woKtcdOkiHxqyQ24BIHMAzsA5BJJlSuyqy0AqV3Iv+qzVZ42emzGVhg==",
"dev": true,
"requires": {
"@babel/cli": "^7.1.2",
"@babel/core": "^7.1.2",
"babel-plugin-react-intl": "^3.0.1",
"transifex": "1.6.6"
}
},
"scratch-storage": { "scratch-storage": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz",
@ -21199,9 +21176,9 @@
} }
}, },
"scratch-l10n": { "scratch-l10n": {
"version": "3.10.20201026030842", "version": "3.10.20201207031619",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.10.20201026030842.tgz", "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.10.20201207031619.tgz",
"integrity": "sha512-ZsNhjAfDdyf/4Tm+E0CwQkqPXAgvMyfyppl++xOBmQLGAXlhUHHSEWgLSGRWyYByL4Sin2QwfayFmxT5vv3JDQ==", "integrity": "sha512-sawrlFBKRq+G99fGFddkO4GWABz119Z7lcdAqkG7XtHn9JvFwjWSwdeNqwSaJjZ7/K5nGMmD3MJGWUmRm8odjA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/cli": "^7.1.2", "@babel/cli": "^7.1.2",
@ -21273,9 +21250,9 @@
} }
}, },
"scratch-render": { "scratch-render": {
"version": "0.1.0-prerelease.20201111202433", "version": "0.1.0-prerelease.20201113223804",
"resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20201111202433.tgz", "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20201113223804.tgz",
"integrity": "sha512-idnng53j71ClK8iavh/J2wBSYqLrI5RYgokyOyVXGsRpQOOHnbCjBm5lcvJ5Ff7/bzqa/kIMeKgijebfg2FB4Q==", "integrity": "sha512-Qb7wpwVNmLkoJ+3HN50DBohMsYsALJu2lLfSmIrtNQ+DcFXK+rgCvRpVvEtQWKQeSFIbjC0XgyMJHcov5vH3RQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"grapheme-breaker": "0.3.2", "grapheme-breaker": "0.3.2",
@ -21439,9 +21416,9 @@
"dev": true "dev": true
}, },
"scratch-vm": { "scratch-vm": {
"version": "0.2.0-prerelease.20201112030151", "version": "0.2.0-prerelease.20201125065300",
"resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20201112030151.tgz", "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20201125065300.tgz",
"integrity": "sha512-rl1eK+79zyDwik7kayDe3WFrbLTE+oF2g7xIhJ5+KxFrEqwZdSoN7WtHg+hvNa+sBqKPBj3Ns2UImwLKIPWJWg==", "integrity": "sha512-1kU4L6kdlkoIEIMKPyccVSDu1oPLDVbBkmqq5yk9tjLS0wT5Y/PU/P8q3Ey0ZumvNnLPWbw4QzQQl8g/2J/fcw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@vernier/godirect": "1.5.0", "@vernier/godirect": "1.5.0",

View file

@ -130,7 +130,7 @@
"redux-mock-store": "^1.2.3", "redux-mock-store": "^1.2.3",
"redux-thunk": "2.0.1", "redux-thunk": "2.0.1",
"sass-loader": "6.0.6", "sass-loader": "6.0.6",
"scratch-gui": "0.1.0-prerelease.20201112102118", "scratch-gui": "0.1.0-prerelease.20201207040127",
"scratch-l10n": "latest", "scratch-l10n": "latest",
"selenium-webdriver": "3.6.0", "selenium-webdriver": "3.6.0",
"slick-carousel": "1.6.0", "slick-carousel": "1.6.0",

View file

@ -3,6 +3,8 @@ const PropTypes = require('prop-types');
const React = require('react'); const React = require('react');
const Video = require('../video/video.jsx'); const Video = require('../video/video.jsx');
const Spinner = require('../spinner/spinner.jsx');
const classNames = require('classnames');
require('./video-preview.scss'); require('./video-preview.scss');
@ -10,16 +12,25 @@ class VideoPreview extends React.Component {
constructor (props) { constructor (props) {
super(props); super(props);
bindAll(this, [ bindAll(this, [
'handleShowVideo' 'handleShowVideo',
'handleVideoLoaded'
]); ]);
this.state = { this.state = {
videoOpen: false videoOpen: false,
spinnerVisible: false
}; };
} }
handleShowVideo () { handleShowVideo () {
this.setState({videoOpen: true}); this.setState({
videoOpen: true,
spinnerVisible: true
});
}
handleVideoLoaded () {
this.setState({spinnerVisible: false});
} }
render () { render () {
@ -27,17 +38,26 @@ class VideoPreview extends React.Component {
<div className="video-preview"> <div className="video-preview">
{this.state.videoOpen ? {this.state.videoOpen ?
( (
<Video <div className="spinner-video-container">
className="video" {this.state.spinnerVisible ? <Spinner className="loading-spinner" /> : null}
height={this.props.videoHeight} <Video
videoId={this.props.videoId} className="video"
width={this.props.videoWidth} height={this.props.videoHeight}
/> videoId={this.props.videoId}
width={this.props.videoWidth}
onVideoStart={this.handleVideoLoaded}
/>
</div>
) : ( ) : (
<div <div
className="video-thumbnail" className="video-thumbnail"
onClick={this.handleShowVideo} onClick={this.handleShowVideo}
> >
{/* Load an invisible spinner so that the image has a chance to load before it's needed */}
<img
className={classNames('loading-spinner', 'hidden-spinner')}
src="/svgs/modal/spinner-white.svg"
/>
<img <img
src={this.props.thumbnail} src={this.props.thumbnail}
style={{ style={{

View file

@ -24,3 +24,32 @@
margin-top: 20px; margin-top: 20px;
} }
} }
.loading-spinner {
margin: auto;
width: 5rem;
height: 5rem;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.hidden-spinner {
visibility: hidden;
}
.spinner-video-container {
width: 100%;
height: 100%;
position: relative;
}
.iframe-video-not-started {
visibility: hidden;
}
.iframe-video-started {
visibility: visible;
}

View file

@ -4,25 +4,65 @@ const classNames = require('classnames');
require('./video.scss'); require('./video.scss');
const Video = props => ( class Video extends React.Component {
<div className={classNames('video-player', props.className)}> constructor (props) {
<iframe super(props);
allowFullScreen
// allowFullScreen is legacy, can we start using allow='fullscreen'? this.state = {
// allow="fullscreen" videoStarted: false
frameBorder="0" // deprecated attribute };
height={props.height} }
scrolling="no" // deprecated attribute componentDidMount () {
src={`https://fast.wistia.net/embed/iframe/${props.videoId}?seo=false&videoFoam=true`} /**
title={props.title} uses code snippets from
width={props.width} https://github.com/mrdavidjcole/wistia-player-react/blob/master/src/components/wistia_embed.js
/> **/
<script if (!document.getElementById('wistia_script')) {
async const wistiaScript = document.createElement('script');
src="https://fast.wistia.net/assets/external/E-v1.js" wistiaScript.id = 'wistia_script';
/> wistiaScript.type = 'text/javascript';
</div> wistiaScript.src = 'https://fast.wistia.com/assets/external/E-v1.js';
); wistiaScript.async = false;
document.body.appendChild(wistiaScript);
}
window._wq = window._wq || [];
// Use onReady in combination with the Wistia 'play' event handler so that onVideoStart()
// isn't called until the video actually starts. onReady fires before the video player is visible.
window._wq.push({
id: this.props.videoId,
onReady: video => {
video.bind('play', () => {
this.setState({videoStarted: true});
this.props.onVideoStart();
return video.unbind;
});
}
});
}
render () {
// Provide CSS classes for anything using the video component to configure what happens before and after
// the video has played for the first time. See VideoPreview for an example.
const videoStartedClass = this.state.videoStarted ? 'iframe-video-started' : 'iframe-video-not-started';
return (
<div className={classNames('video-player', this.props.className)}>
<iframe
allowFullScreen
className={classNames('wistia_embed', `wistia_async_${this.props.videoId}`, videoStartedClass)}
frameBorder="0" // deprecated attribute
height={this.props.height}
scrolling="no" // deprecated attribute
src={`https://fast.wistia.net/embed/iframe/${this.props.videoId}?seo=false&videoFoam=true`}
title={this.props.title}
width={this.props.width}
/>
</div>
);
}
}
Video.defaultProps = { Video.defaultProps = {
height: '225', height: '225',
title: '', title: '',
@ -32,6 +72,7 @@ Video.defaultProps = {
Video.propTypes = { Video.propTypes = {
className: PropTypes.string, className: PropTypes.string,
height: PropTypes.string.isRequired, height: PropTypes.string.isRequired,
onVideoStart: PropTypes.func,
title: PropTypes.string.isRequired, title: PropTypes.string.isRequired,
videoId: PropTypes.string.isRequired, videoId: PropTypes.string.isRequired,
width: PropTypes.string.isRequired width: PropTypes.string.isRequired

View file

@ -8,7 +8,7 @@
}, },
{ {
"name": "annual-report", "name": "annual-report",
"pattern": "^/annual-report/?$", "pattern": "^/annual-report/?(\\?.*)?$",
"routeAlias": "/annual-report/?$", "routeAlias": "/annual-report/?$",
"view": "annual-report/annual-report", "view": "annual-report/annual-report",
"title": "Annual Report", "title": "Annual Report",
@ -21,13 +21,6 @@
"view": "camp/camp", "view": "camp/camp",
"title": "Down Deep" "title": "Down Deep"
}, },
{
"name": "communityblocks-interviews",
"pattern": "^/info/communityblocks-interviews/?$",
"routeAlias": "/info/(cards|communityblocks-interviews|credits|faq|donate)/?$",
"view": "communityblocks-interviews/communityblocks-interviews",
"title": "Community Blocks Beta Tester Interviews"
},
{ {
"name": "conference-index", "name": "conference-index",
"pattern": "^/conference/?(\\?.*)?$", "pattern": "^/conference/?(\\?.*)?$",
@ -111,7 +104,7 @@
{ {
"name": "credits", "name": "credits",
"pattern": "^/credits/?$", "pattern": "^/credits/?$",
"routeAlias": "/info/(cards|communityblocks-interviews|credits|faq|donate)/?$", "routeAlias": "/info/(cards|credits|faq|donate)/?$",
"view": "credits/credits", "view": "credits/credits",
"title": "Credits" "title": "Credits"
}, },
@ -153,7 +146,7 @@
{ {
"name": "faq", "name": "faq",
"pattern": "^/info/faq/?(\\?.*)?$", "pattern": "^/info/faq/?(\\?.*)?$",
"routeAlias": "/info/(cards|communityblocks-interviews|credits|faq)/?$", "routeAlias": "/info/(cards|credits|faq)/?$",
"view": "faq/faq", "view": "faq/faq",
"title": "FAQ" "title": "FAQ"
}, },
@ -254,6 +247,14 @@
"view": "search/search", "view": "search/search",
"title": "Search" "title": "Search"
}, },
{
"name": "sec",
"pattern": "^/sec/?(\\?.*)?$",
"routeAlias": "/sec/?",
"view": "sec/sec",
"title": "Scratch Education Collaborative",
"viewportWidth": "device-width"
},
{ {
"name": "splash", "name": "splash",
"pattern": "^/?$", "pattern": "^/?$",
@ -374,13 +375,13 @@
{ {
"name" : "credits-redirect", "name" : "credits-redirect",
"pattern": "^/info/credits/?$", "pattern": "^/info/credits/?$",
"routeAlias": "/info/(cards|communityblocks-interviews|credits|faq|donate)/?$", "routeAlias": "/info/(cards|credits|faq|donate)/?$",
"redirect" : "/credits" "redirect" : "/credits"
}, },
{ {
"name": "donate-redirect", "name": "donate-redirect",
"pattern": "^/info/donate/?", "pattern": "^/info/donate/?",
"routeAlias": "/info/(cards|communityblocks-interviews|credits|faq|donate)/?$", "routeAlias": "/info/(cards|credits|faq|donate)/?$",
"redirect": "https://secure.donationpay.org/scratchfoundation/" "redirect": "https://secure.donationpay.org/scratchfoundation/"
}, },
{ {

View file

@ -63,8 +63,9 @@ const About = () => (
<p><FormattedMessage <p><FormattedMessage
id="about.aroundTheWorldDescription" id="about.aroundTheWorldDescription"
values={{ values={{
languageCount: 60,
translationLink: ( translationLink: (
<a href="https://en.scratch-wiki.info/wiki/How_to_Translate_Scratch"> <a href="https://github.com/LLK/scratch-l10n/wiki/Guide-for-Scratch-Translators">
<FormattedMessage id="about.translationLinkText" /> <FormattedMessage id="about.translationLinkText" />
</a> </a>
) )
@ -149,6 +150,9 @@ const About = () => (
<li> <li>
<a href="/credits"><FormattedMessage id="about.learnMoreCredits" /></a> <a href="/credits"><FormattedMessage id="about.learnMoreCredits" /></a>
</li> </li>
<li>
<a href="/annual-report"><FormattedMessage id="about.learnMoreAnnualReport" /></a>
</li>
</ul> </ul>
</li> </li>

View file

@ -7,7 +7,7 @@
"about.whoUsesScratch": "Who Uses Scratch?", "about.whoUsesScratch": "Who Uses Scratch?",
"about.whoUsesScratchDescription": "Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating Scratch projects in a wide variety of settings, including homes, schools, museums, libraries, and community centers.", "about.whoUsesScratchDescription": "Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating Scratch projects in a wide variety of settings, including homes, schools, museums, libraries, and community centers.",
"about.aroundTheWorld": "Around the World", "about.aroundTheWorld": "Around the World",
"about.aroundTheWorldDescription": "Scratch is used in more than 150 different countries and available in more than 40 languages. To change languages, click the menu at the bottom of the page. Or, in the Project Editor, click the globe at the top of the page. To add or improve a translation, see the {translationLink} page.", "about.aroundTheWorldDescription": "Scratch is used in more than 150 different countries and available in more than {languageCount} languages. To change languages, click the menu at the bottom of the page. Or, in the Project Editor, click the globe at the top of the page. To add or improve a translation, see the {translationLink} page.",
"about.translationLinkText": "translation", "about.translationLinkText": "translation",
"about.quotes": "Quotes", "about.quotes": "Quotes",
"about.quotesDescription": "The Scratch Team has received many emails from youth, parents, and educators expressing thanks for Scratch. Want to see what people are saying? You can read a collection of the {quotesLink} we've received.", "about.quotesDescription": "The Scratch Team has received many emails from youth, parents, and educators expressing thanks for Scratch. Want to see what people are saying? You can read a collection of the {quotesLink} we've received.",
@ -17,6 +17,7 @@
"about.learnMoreFaq": "Frequently Asked Questions", "about.learnMoreFaq": "Frequently Asked Questions",
"about.learnMoreParents": "Information for Parents", "about.learnMoreParents": "Information for Parents",
"about.learnMoreCredits": "Credits", "about.learnMoreCredits": "Credits",
"about.learnMoreAnnualReport": "Annual Report 2019",
"about.literacy": "Learn to Code, Code to Learn", "about.literacy": "Learn to Code, Code to Learn",
"about.literacyDescription": "The ability to code computer programs is an important part of literacy in todays society. When people learn to code in Scratch, they learn important strategies for solving problems, designing projects, and communicating ideas.", "about.literacyDescription": "The ability to code computer programs is an important part of literacy in todays society. When people learn to code in Scratch, they learn important strategies for solving problems, designing projects, and communicating ideas.",
"about.schools": "Scratch in Schools", "about.schools": "Scratch in Schools",

View file

@ -22,6 +22,7 @@ const PeopleGrid = require('../../components/people-grid/people-grid.jsx');
const People = require('./people.json'); const People = require('./people.json');
const BLMProjects = require('./blm-projects.json'); const BLMProjects = require('./blm-projects.json');
const VideoPreview = require('../../components/video-preview/video-preview.jsx'); const VideoPreview = require('../../components/video-preview/video-preview.jsx');
const Supporters = require('./supporters.json');
require('./annual-report.scss'); require('./annual-report.scss');
@ -56,6 +57,30 @@ const countryNames = countryKeys.map(key => CountryUsage[key].display);
const countryData = countryKeys.map(key => CountryUsage[key].count); const countryData = countryKeys.map(key => CountryUsage[key].count);
const colorIndex = countryKeys.map(key => CountryUsage[key]['log count']); const colorIndex = countryKeys.map(key => CountryUsage[key]['log count']);
// Create the div given a list of supporter names,
// this will contain two columns of names either of equal size
// or with the left column containing 1 more item than the right
const createSupportersLists = supportersList => {
const splitIndex = Math.ceil(supportersList.length / 2);
const firstHalf = supportersList.slice(0, splitIndex);
const secondHalf = supportersList.slice(splitIndex);
return (
<div className="supporters-list">
<ul className="supporters-list-side">
{
firstHalf.map((supporter, index) => (<li key={index}>{supporter}</li>))
}
</ul>
<ul className="supporters-list-side">
{
secondHalf.map((supporter, index) => (<li key={index}>{supporter}</li>))
}
</ul>
</div>
);
};
class AnnualReport extends React.Component { class AnnualReport extends React.Component {
constructor (props) { constructor (props) {
super(props); super(props);
@ -2021,198 +2046,42 @@ class AnnualReport extends React.Component {
<FormattedHTMLMessage id="annualReport.supportersFoundingTitle" /> <FormattedHTMLMessage id="annualReport.supportersFoundingTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.founding)}
<ul className="supporters-list-side">
<li>Massachusetts Institute of Technology</li>
<li>National Science Foundation</li>
</ul>
<ul className="supporters-list-side">
<li>Siegel Family Endowment</li>
</ul>
</div>
</div> </div>
<div className="supporters-level"> <div className="supporters-level">
<h5> <h5>
<FormattedHTMLMessage id="annualReport.supportersCreativityTitle" /> <FormattedHTMLMessage id="annualReport.supportersCreativityTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.creativity)}
<ul className="supporters-list-side">
<li>Google</li>
<li>LEGO Foundation</li>
<li>Little Bluebridge Foundation</li>
</ul>
<ul className="supporters-list-side">
<li>Smilegate Foundation</li>
<li>TAL Education</li>
<li>WarnerMedia</li>
</ul>
</div>
</div> </div>
<div className="supporters-level"> <div className="supporters-level">
<h5> <h5>
<FormattedHTMLMessage id="annualReport.supportersCollaborationTitle" /> <FormattedHTMLMessage id="annualReport.supportersCollaborationTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.collaboration)}
<ul className="supporters-list-side">
<li>Mark Dalton</li>
<li>Cindy and Evan Goldberg</li>
<li>Paul T. Jones</li>
<li>BrainPOP</li>
</ul>
<ul className="supporters-list-side">
<li>Kahn-Rowe Family Fund</li>
<li>LEGO Education</li>
<li>Morgan Stanley</li>
<li>Two Sigma</li>
</ul>
</div>
</div> </div>
<div className="supporters-level"> <div className="supporters-level">
<h5> <h5>
<FormattedHTMLMessage id="annualReport.supportersImaginationTitle" /> <FormattedHTMLMessage id="annualReport.supportersImaginationTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.imagination)}
<ul className="supporters-list-side">
<li>Alex Ginsburg</li>
<li>James Tomilson Hill</li>
<li>John Overdeck</li>
<li>Mitchel Resnick</li>
<li>David Shaw</li>
<li>David Siegel</li>
<li>Tao Ye</li>
<li>Christos Zoulas</li>
<li>AT&T Aspire</li>
<li>Big Hen Group</li>
<li>Bloomberg Philanthropies</li>
<li>Citibank</li>
<li>Credit Suisse</li>
<li>EPAM</li>
</ul>
<ul className="supporters-list-side">
<li>Facebook</li>
<li>Goldman Sachs</li>
<li>Huron Foundation</li>
<li>Intel One-to-One Institute</li>
<li>Piantino Family Foundation</li>
<li>Playmates Toys</li>
<li>Skadden Arps</li>
<li>Societe Generale</li>
<li>Solomon Wilson Family Foundation</li>
<li>Tudor Investments</li>
<li>UBS</li>
<li>Vista Equity Partners</li>
<li>Weill Family Foundation</li>
<li>WestRiver Group</li>
</ul>
</div>
</div> </div>
<div className="supporters-level"> <div className="supporters-level">
<h5> <h5>
<FormattedHTMLMessage id="annualReport.supportersInspirationTitle" /> <FormattedHTMLMessage id="annualReport.supportersInspirationTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.inspiration)}
<ul className="supporters-list-side">
<li>Erik Anderson</li>
<li>Jon Claerbout</li>
<li>Jonathan Dinu</li>
<li>John Doerr</li>
<li>Dan Huttenlocher</li>
<li>Justin Nadler</li>
<li>Ali-Milan Nekmouche</li>
<li>Edward Schmidt</li>
<li>Hope Smith</li>
<li>Alfred Spector</li>
<li>Ben Stein</li>
<li>Donald Sussman</li>
<li>Glen Whitney</li>
<li>AIG</li>
<li>Amazon</li>
</ul>
<ul className="supporters-list-side">
<li>Bank of America</li>
<li>Certified Moving & Storage</li>
<li>Dalio Foundation, Inc.</li>
<li>Dalton Family Foundation</li>
<li>Deutsche Bank</li>
<li>Ernst & Young</li>
<li>Hearst Corporation</li>
<li>HedgeServ</li>
<li>Humble Bundle</li>
<li>Intel Corporation</li>
<li>Jenner & Block LLP</li>
<li>La Vida Feliz Foundation</li>
<li>Silicon Valley Bank</li>
<li>Spin Master</li>
<li>Union Square Ventures</li>
</ul>
</div>
</div> </div>
<div className="supporters-level"> <div className="supporters-level">
<h5> <h5>
<FormattedHTMLMessage id="annualReport.supportersExplorationTitle" /> <FormattedHTMLMessage id="annualReport.supportersExplorationTitle" />
</h5> </h5>
<hr /> <hr />
<div className="supporters-list"> {createSupportersLists(Supporters.exploration)}
<ul className="supporters-list-side">
<li>Michael Ball</li>
<li>Ken Baron</li>
<li>Craig Barrett</li>
<li>Adam Beder</li>
<li>Mark Bezos</li>
<li>Eric Chen</li>
<li>Michael Cirillo</li>
<li>Eric Dahm</li>
<li>Peter Desmond</li>
<li>Jeremy Deutsch</li>
<li>John Doyle</li>
<li>Kenneth Ehlert</li>
<li>Tim Ettenheim </li>
<li>Alan Eustace</li>
<li>Steve Evans</li>
<li>Catherine Greenspon</li>
<li>Jonathan W. Hitchon</li>
<li>Margaret Honey</li>
<li>Andrew Janian</li>
<li>David Joerg</li>
<li>Mark Loughridge</li>
<li>Carter Lyons</li>
<li>Adam Messinger</li>
<li>Robert and Bethany Millard </li>
<li>Stephen M. Ross</li>
<li>Wray Thorn</li>
</ul>
<ul className="supporters-list-side">
<li>Jessica Traynor</li>
<li>Adobe</li>
<li>Anchor Point Foundation</li>
<li>Barclays</li>
<li>Blackstone Charitable Foundation</li>
<li>Blackstone Group</li>
<li>Cisco/Meraki</li>
<li>Citco</li>
<li>Deloitte</li>
<li>Eclipse Contracting</li>
<li>Funny or Die</li>
<li>Hasbro</li>
<li>J.P. Morgan</li>
<li>Mattel</li>
<li>McGraw Hill Education</li>
<li>NHK</li>
<li>Pearson</li>
<li>Pershing Square Foundation</li>
<li>SAP</li>
<li>Scholastic</li>
<li>The Ramsey Family Fund</li>
<li>Thelonious Monk Institute of Jazz</li>
<li>Via Technologies</li>
<li>WilmerHale</li>
<li>Zoshinkai Holdings</li>
</ul>
</div>
</div> </div>
</div> </div>
<div className="supporters-subsection supporters-lists"> <div className="supporters-subsection supporters-lists">
@ -2220,24 +2089,7 @@ class AnnualReport extends React.Component {
<h3> <h3>
<FormattedHTMLMessage id="annualReport.supportersInKindTitle" /> <FormattedHTMLMessage id="annualReport.supportersInKindTitle" />
</h3> </h3>
<div className="supporters-list"> {createSupportersLists(Supporters.inKind)}
<ul className="supporters-list-side">
<li>Fastly</li>
<li>Amazon Web Services</li>
<li>Wilson Sonsini Goodrich & Rosati</li>
<li>New Relic</li>
<li>Adobe</li>
<li>DK</li>
</ul>
<ul className="supporters-list-side">
<li>No Starch Press</li>
<li>Github</li>
<li>Travis CI</li>
<li>Sauce Labs</li>
<li>Pingdom</li>
<li>PagerDuty</li>
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -0,0 +1,154 @@
{
"founding": [
"Massachusetts Institute of Technology",
"National Science Foundation",
"Siegel Family Endowment"
],
"creativity": [
"Google",
"LEGO Foundation",
"Little Bluebridge Foundation",
"Smilegate Foundation",
"TAL Education",
"WarnerMedia"
],
"collaboration": [
"Mark Dalton",
"Cindy and Evan Goldberg",
"Paul T. Jones",
"BrainPOP",
"Kahn-Rowe Family Fund",
"LEGO Education",
"Morgan Stanley",
"Two Sigma"
],
"imagination": [
"Alex Ginsburg",
"James Tomilson Hill",
"John Overdeck",
"Mitchel Resnick",
"David Shaw",
"David Siegel",
"Tao Ye",
"Christos Zoulas",
"AT&T Aspire",
"Big Hen Group",
"Bloomberg Philanthropies",
"Citibank",
"Credit Suisse",
"EPAM",
"Facebook",
"Goldman Sachs",
"Huron Foundation",
"Intel One-to-One Institute",
"Piantino Family Foundation",
"Playmates Toys",
"Skadden Arps",
"Societe Generale",
"Solomon Wilson Family Foundation",
"Tudor Investments",
"UBS",
"Vista Equity Partners",
"Weill Family Foundation",
"WestRiver Group"
],
"inspiration": [
"Erik Anderson",
"Jon Claerbout",
"Jonathan Dinu",
"John Doerr",
"Dan Huttenlocher",
"Justin Nadler",
"Ali-Milan Nekmouche",
"Edward Schmidt",
"Hope Smith",
"Alfred Spector",
"Ben Stein",
"Donald Sussman",
"Glen Whitney",
"AIG",
"Amazon",
"Bank of America",
"Certified Moving & Storage",
"Dalio Foundation, Inc.",
"Dalton Family Foundation",
"Deutsche Bank",
"Ernst & Young",
"Hearst Corporation",
"HedgeServ",
"Humble Bundle",
"Intel Corporation",
"Jenner & Block LLP",
"La Vida Feliz Foundation",
"Silicon Valley Bank",
"Spin Master",
"Union Square Ventures"
],
"exploration": [
"Michael Ball",
"Ken Baron",
"Craig Barrett",
"Adam Beder",
"Mark Bezos",
"Eric Chen",
"Michael Cirillo",
"Eric Dahm",
"Peter Desmond",
"Jeremy Deutsch",
"John Doyle",
"Kenneth Ehlert",
"Tim Ettenheim",
"Alan Eustace",
"Steve Evans",
"Catherine Greenspon",
"Jonathan W. Hitchon",
"Margaret Honey",
"Andrew Janian",
"David Joerg",
"Mark Loughridge",
"Carter Lyons",
"Adam Messinger",
"Robert and Bethany Millard",
"Stephen M. Ross",
"Wray Thorn",
"Jessica Traynor",
"Adobe",
"Anchor Point Foundation",
"Barclays",
"Blackstone Charitable Foundation",
"Blackstone Group",
"Cisco/Meraki",
"Citco",
"Deloitte",
"Eclipse Contracting",
"Funny or Die",
"Hasbro",
"J.P. Morgan",
"Mattel",
"McGraw Hill Education",
"NHK",
"Pearson",
"Pershing Square Foundation",
"SAP",
"Scholastic",
"The Ramsey Family Fund",
"Thelonious Monk Institute of Jazz",
"Via Technologies",
"WilmerHale",
"Zoshinkai Holdings"
],
"inKind": [
"Fastly",
"Amazon Web Services",
"Wilson Sonsini Goodrich & Rosati",
"New Relic",
"Adobe",
"DK",
"No Starch Press",
"Github",
"Travis CI",
"Sauce Labs",
"Pingdom",
"PagerDuty"
]
}

View file

@ -1,86 +0,0 @@
const React = require('react');
const render = require('../../lib/render.jsx');
const Page = require('../../components/page/www/page.jsx');
const CommunityBlocksInterviews = () => (
<div className="inner">
<h2>Community Blocks Beta Tester Interviews</h2>
<br />
<p>
Hello Scratchers!
</p>
<p>
I am Sayamindu Dasgupta (<a
href="/users/sdg1/"
rel="noopener noreferrer"
target="_blank"
>
sdg1
</a> on Scratch) and I am a member of
the <a
href="/info/credits"
rel="noopener noreferrer"
target="_blank"
>
MIT Scratch Team
</a>.
</p>
<p>
One of our projects on the MIT Scratch Team is to understand how people use Scratch, the Scratch Community
Blocks, and participate in the Scratch community. To do this, we are talking to Scratchers who have been
particapting the Community Blocks beta testing program directly through interviews. In the interview, we
would talk for an hour, asking about your Scratch experience (by phone or a service like Skype).
</p>
<p>
Thank you for indicating in the beta invitation survey that you are willing to be interviewed.
If you are still interested, please do the following steps:
</p>
<ul>
<li>
<b>Complete the consent forms:</b> If you are under 18 years old, please download and complete these
two forms (<a href="/pdfs/interviews/communityblocks/assent_form.pdf">one for you to sign</a>&nbsp;
and <a href="/pdfs/interviews/communityblocks/consent_for_parent.pdf">
another for your parent to sign
</a>).
If you are 18 years old and over, please complete&nbsp;
<a href="/pdfs/interviews/communityblocks/consent_for_over_18.pdf">this form</a>.
</li>
<li>
<b>Send the forms:</b> You can send me the forms in two ways: (1) by email
(<a
href="mailto:sayamindu@media.mit.edu"
rel="noopener noreferrer"
target="_blank"
>
sayamindu@media.mit.edu
</a>) by taking a picture
or scanning the forms, or (2) send it through snail mail to Sayamindu Dasgupta, 77 Massachusetts Ave
E14-464A, Cambridge, MA 02139
</li>
<li>
<b>Schedule a time to talk:</b> Send me an email
(<a
href="mailto:sayamindu@media.mit.edu"
rel="noopener noreferrer"
target="_blank"
>
sayamindu@media.mit.edu
</a>) with a possible time
where we can talk for about an hour.
</li>
<li>
If you have any questions, please do not hesitate to contact me by sending me an email
at <a href="mailto:sayamindu@media.mit.edu">sayamindu@media.mit.edu</a>.
</li>
</ul>
<p>
Thank you and I look forward to speaking with you. Scratch on!
</p>
Sayamindu
</div>
);
render(<Page><CommunityBlocksInterviews /></Page>, document.getElementById('app'));

View file

@ -105,7 +105,7 @@ class MicroBit extends ExtensionLanding {
<a <a
download download
className="download" className="download"
href="https://downloads.scratch.mit.edu/microbit/scratch-microbit-1.1.0.hex.zip" href="https://downloads.scratch.mit.edu/microbit/scratch-microbit.hex.zip"
> >
<FormattedMessage id="microbit.downloadHex" /> <FormattedMessage id="microbit.downloadHex" />
</a> </a>

View file

@ -275,6 +275,10 @@
} }
} }
.compose-disabled {
opacity: .5;
}
.comments-root-reply { .comments-root-reply {
margin-bottom: 1.5rem; margin-bottom: 1.5rem;
} }

View file

@ -39,8 +39,8 @@ class ComposeComment extends React.Component {
'handleCancel', 'handleCancel',
'handleInput', 'handleInput',
'handleMuteClose', 'handleMuteClose',
'handleMuteOpen' 'handleMuteOpen',
'isMuted'
]); ]);
this.state = { this.state = {
message: '', message: '',
@ -112,6 +112,14 @@ class ComposeComment extends React.Component {
}); });
} }
convertToMinutesFromNow (timeStampInSec) {
return Math.ceil(((timeStampInSec * 1000) - Date.now()) / (60 * 1000));
}
isMuted () {
return this.state.muteExpiresAt * 1000 > Date.now();
}
handleMuteClose () { handleMuteClose () {
this.setState({ this.setState({
muteOpen: false muteOpen: false
@ -123,7 +131,6 @@ class ComposeComment extends React.Component {
muteOpen: true muteOpen: true
}); });
} }
shouldShowMuteModal (offensesList) { shouldShowMuteModal (offensesList) {
// We should show the mute modal whne the user is newly muted or hasn't seen it for a while. // We should show the mute modal whne the user is newly muted or hasn't seen it for a while.
// We don't want to show it more than about once a week. // We don't want to show it more than about once a week.
@ -145,7 +152,7 @@ class ComposeComment extends React.Component {
} }
const mostRecent = offensesList[numOffenses - 1]; const mostRecent = offensesList[numOffenses - 1];
const creationTimeMinutesAgo = (Date.now() - (mostRecent.createdAt * 1000)) / (60 * 1000); const creationTimeMinutesAgo = this.convertToMinutesFromNow(mostRecent.createdAt);
return creationTimeMinutesAgo < 2 && numOffenses === 1; return creationTimeMinutesAgo < 2 && numOffenses === 1;
} }
@ -161,13 +168,14 @@ class ComposeComment extends React.Component {
render () { render () {
return ( return (
<React.Fragment> <React.Fragment>
{this.state.status === ComposeStatus.REJECTED_MUTE ? ( {this.isMuted() ? (
<FlexRow className="comment"> <FlexRow className="comment">
<CommentingStatus> <CommentingStatus>
<p>Scratch thinks your comment was disrespectful.</p> <p>Scratch thinks your comment was disrespectful.</p>
<p> You will be able to comment <p> You will be able to comment
again {formatTime.formatRelativeTime(this.state.muteExpiresAt, window._locale)}. again {formatTime.formatRelativeTime(this.state.muteExpiresAt, window._locale)}.
Your account has been paused from commenting until then. Your account has been paused from commenting until then.
</p> </p>
<p className="bottom-text">For more information, <p className="bottom-text">For more information,
<a <a
@ -178,7 +186,10 @@ class ComposeComment extends React.Component {
</FlexRow> </FlexRow>
) : null } ) : null }
<div <div
className="flex-row comment" className={classNames('flex-row',
'comment',
this.state.status === ComposeStatus.REJECTED_MUTE ?
'compose-disabled' : '')}
> >
<a href={`/users/${this.props.user.username}`}> <a href={`/users/${this.props.user.username}`}>
<Avatar src={this.props.user.thumbnailUrl} /> <Avatar src={this.props.user.thumbnailUrl} />
@ -201,6 +212,7 @@ class ComposeComment extends React.Component {
className={classNames('compose-input', className={classNames('compose-input',
MAX_COMMENT_LENGTH - this.state.message.length >= 0 ? MAX_COMMENT_LENGTH - this.state.message.length >= 0 ?
'compose-valid' : 'compose-invalid')} 'compose-valid' : 'compose-invalid')}
disabled={this.state.status === ComposeStatus.REJECTED_MUTE}
handleUpdate={onUpdate} handleUpdate={onUpdate}
name="compose-comment" name="compose-comment"
type="textarea" type="textarea"

29
src/views/sec/l10n.json Normal file
View file

@ -0,0 +1,29 @@
{
"sec.title": "Scratch Education Collaborative",
"sec.intro": "A global network of organizations supporting creative coding",
"sec.projectsTitle": "Overview",
"sec.eligibilityTitle": "Eligibility",
"sec.applyTitle": "How do I apply?",
"sec.subscribe": "To receive updates about resources, events, and ideas for supporting families and educators using Scratch, {subscribeLink}",
"sec.subscribeCallToAction": "sign up for our mailing list",
"sec.applyDeadline": "The deadline for applying to the Scratch Education Collaborative is January 10th, 2021",
"sec.applyButton": "Click here to apply",
"sec.projectsIntro": "The Scratch Foundation is launching the Scratch Education Collaborative (SEC), to bring together organizations committed to supporting creative coding experiences with a focus on educators, students, and communities historically excluded from computing.",
"sec.projectsIntro2": "In 2021, during the pilot year of the SEC, 5 organizations from across the globe will be selected to share their work, learn from one another, and help to develop best practices and examples for implementing {culturallySustainingLink} creative computing with Scratch.",
"sec.culturallySustaining": "culturally sustaining",
"sec.expectationsFromSec": "What participating organizations can expect from the SEC",
"sec.expectationsFromSecPoint1": "Opportunities to connect with and learn from peer organizations and thought leaders around the globe through virtual workshops",
"sec.expectationsFromSecPoint2": "Support in developing and promoting equity-centered creative coding resources, events, and workshops using Scratch",
"sec.expectationsFromSecPoint3": "Opportunities to connect with and learn from the Scratch Team through workshops and virtual office hours",
"sec.expectationsFromSecPoint4": "Promotion of the organizations work and impact through Scratch Team social-channels, websites, and newsletters",
"sec.expectationsFromOrgs": "What the SEC expects of participating organizations",
"sec.expectationsFromOrgsPoint1": "Participate in 4-6 virtual workshops or meetings over the course of the year",
"sec.expectationsFromOrgsPoint2": "Support the creation of culturally sustaining Scratch creative coding resources for your community",
"sec.expectationsFromOrgsPoint3": "Host at least one event, tutorial, or professional development activity for your community in 2021",
"sec.expectationsFromOrgsPoint4": "Share best-practices, learnings, and challenges back with the Scratch Foundation and SEC peer organizations",
"sec.eligibilityPoint1": "Participants must be a non-profit organization, public school, school district, university, college, or government entity",
"sec.eligibilityPoint2": "Organizations must be part-of and work with communities historically excluded from computing",
"sec.eligibilityPoint3": "Must be able to dedicate at least one staff person as point of contact for the program",
"sec.eligibilityPrompt": "Wondering if your organization might be a good fit for the pilot year of the Scratch Education Collaborative? {link} to find out more.",
"sec.eligibilityPromptLink": "Read the FAQ"
}

153
src/views/sec/sec.jsx Normal file
View file

@ -0,0 +1,153 @@
const FormattedMessage = require('react-intl').FormattedMessage;
const React = require('react');
const FlexRow = require('../../components/flex-row/flex-row.jsx');
const SubNavigation = require('../../components/subnavigation/subnavigation.jsx');
const TitleBanner = require('../../components/title-banner/title-banner.jsx');
const render = require('../../lib/render.jsx');
const Page = require('../../components/page/www/page.jsx');
require('./sec.scss');
const EducationCollaborative = () => (
<div className="education-collaborative">
<TitleBanner className="masthead">
<div className="inner">
<FlexRow className="masthead-info uneven">
<div className="long">
<h1 className="title-banner-h1">
<FormattedMessage id="sec.title" />
</h1>
<p className="title-banner-p intro">
<FormattedMessage
id="sec.intro"
/>
</p>
</div>
<img
alt=""
className="short"
src="/images/sec/SEC-Top-img.svg"
/>
</FlexRow>
</div>
</TitleBanner>
<div className="inner">
<section id="projects">
<h2><FormattedMessage id="sec.projectsTitle" /></h2>
<p><FormattedMessage id="sec.projectsIntro" /></p>
<p>
<FormattedMessage
id="sec.projectsIntro2"
values={{
culturallySustainingLink: <a
href="https://docs.google.com/document/d/1JcRBFhAXvMGKXgHADg1sAZC8b_zb2OSVDjaEOL8tzcw/edit#bookmark=id.4c6pah669jb5"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="sec.culturallySustaining" />
</a>
}}
/>
</p>
</section>
<section id="expectations-for-sec">
<h3><FormattedMessage id="sec.expectationsFromSec" /></h3>
<ul>
<li><FormattedMessage id="sec.expectationsFromSecPoint1" /></li>
<li><FormattedMessage id="sec.expectationsFromSecPoint2" /></li>
<li><FormattedMessage id="sec.expectationsFromSecPoint3" /></li>
<li><FormattedMessage id="sec.expectationsFromSecPoint4" /></li>
</ul>
</section>
<section id="expectations-for-orgs">
<h3><FormattedMessage id="sec.expectationsFromOrgs" /></h3>
<ul>
<li><FormattedMessage id="sec.expectationsFromOrgsPoint1" /></li>
<li><FormattedMessage id="sec.expectationsFromOrgsPoint2" /></li>
<li><FormattedMessage id="sec.expectationsFromOrgsPoint3" /></li>
<li><FormattedMessage id="sec.expectationsFromOrgsPoint4" /></li>
</ul>
</section>
<section id="eligibility">
<h3><FormattedMessage id="sec.eligibilityTitle" /></h3>
<ul>
<li><FormattedMessage id="sec.eligibilityPoint1" /></li>
<li><FormattedMessage id="sec.eligibilityPoint2" /></li>
<li><FormattedMessage id="sec.eligibilityPoint3" /></li>
</ul>
</section>
<section>
<p><FormattedMessage
id="sec.eligibilityPrompt"
values={{
link: <a
href="https://docs.google.com/document/d/1JcRBFhAXvMGKXgHADg1sAZC8b_zb2OSVDjaEOL8tzcw/edit?usp=sharing"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage id="sec.eligibilityPromptLink" />
</a>
}}
/>
</p>
</section>
</div>
<TitleBanner className="masthead">
<div className="inner">
<FlexRow className="masthead-info uneven">
<div className="long">
<h1><FormattedMessage id="sec.applyTitle" /></h1>
<p className="intro">
<FormattedMessage id="sec.applyDeadline" />
</p>
<SubNavigation
align="left"
className="sec-apply-buttons"
>
<a
href="https://forms.gle/Py7jgaE2ZK1YdbUF7"
rel="noopener noreferrer"
target="_blank"
>
<li><FormattedMessage id="sec.applyButton" /></li>
</a>
</SubNavigation>
</div>
<img
alt=""
className="short"
src="/images/sec/SEC-bottom-img.svg"
/>
</FlexRow>
</div>
</TitleBanner>
<div className="inner">
<section>
<p>
<FormattedMessage
id="sec.subscribe"
values={{
subscribeLink: (
<a
href=" https://us9.list-manage.com/subscribe?u=96e741c12c99f46f1f3e95e09&id=149bd1a4c2"
target="_blank"
>
<FormattedMessage id="sec.subscribeCallToAction" />
</a>
)
}}
/>
</p>
</section>
</div>
</div>
);
render(<Page><EducationCollaborative /></Page>, document.getElementById('app'));

70
src/views/sec/sec.scss Normal file
View file

@ -0,0 +1,70 @@
@import "../../colors";
@import "../../frameless";
$sec-spot: $ui-blue;
#view {
padding: 0;
}
.education-collaborative {
.title-banner {
&.masthead {
background-color: $sec-spot;
padding: 50px 0;
.masthead-info {
align-items: center;
justify-content: space-between;
@media #{$intermediate} {
justify-content: end;
}
h1 {
margin: 0 0 1rem 0;
text-align: left;
color: $ui-white;
}
p {
margin: 0;
text-align: left;
color: $ui-white;
max-width: $cols6;
font-size: 1.65em;
}
img {
width: $cols4;
}
.sec-apply-buttons {
margin-top: 2rem;
li {
border: 2px solid $ui-white;
padding: 16px;
font-size: 16px;
font-weight: 500;
}
}
}
}
}
section {
margin-bottom: 3rem;
p, ul {
max-width: $cols8;
}
}
}
@media #{$intermediate, $medium, $small} {
#view {
text-align: left;
}
}

View file

@ -53,7 +53,8 @@ $tile-height: 244px;
img { img {
width: $cols4; width: $cols4;
height: auto; height: $cols4 * 0.553333333; /* images are 600 x 332 for retina */
object-fit: cover;
} }
.hoc-image-text { .hoc-image-text {

View file

@ -47,11 +47,11 @@ const TopBanner = () => (
</div> </div>
</FlexRow> </FlexRow>
</a> </a>
<a href="/projects/editor?tutorial=talking"> <a href="/projects/editor?tutorial=make-it-fly">
<FlexRow className="hoc-banner-image column"> <FlexRow className="hoc-banner-image column">
<img src="/images/hoc/talking.png" /> <img src="/images/hoc/make-it-fly.jpg" />
<div className="hoc-image-text"> <div className="hoc-image-text">
<FormattedMessage id="hocbanner.talking" /> <FormattedMessage id="hocbanner.makeItFly" />
</div> </div>
</FlexRow> </FlexRow>
</a> </a>

View file

@ -39,6 +39,7 @@
"hocbanner.imagine": "Imagine a World", "hocbanner.imagine": "Imagine a World",
"hocbanner.codeACartoon": "Code a Cartoon", "hocbanner.codeACartoon": "Code a Cartoon",
"hocbanner.talking": "Talking Tales", "hocbanner.talking": "Talking Tales",
"hocbanner.makeItFly": "Make It Fly",
"welcome.welcomeToScratch": "Welcome to Scratch!", "welcome.welcomeToScratch": "Welcome to Scratch!",
"welcome.learn": "Learn how to make a project in Scratch", "welcome.learn": "Learn how to make a project in Scratch",

View file

@ -36,8 +36,8 @@ const ShareProjectMessage = require('./activity-rows/share-project.jsx');
const TopBanner = require('./hoc/top-banner.jsx'); const TopBanner = require('./hoc/top-banner.jsx');
const MiddleBanner = require('./hoc/middle-banner.jsx'); const MiddleBanner = require('./hoc/middle-banner.jsx');
const HOC_START_TIME = 1575262800000; // 2019-12-02 00:00:00 const HOC_START_TIME = 1605484800000; // 2020-11-16 00:00:00
const HOC_END_TIME = 1577077200000; // 2019-12-23 00:00:00 const HOC_END_TIME = 1608681600000; // 2020-12-23 00:00:00
require('./splash.scss'); require('./splash.scss');
@ -468,6 +468,7 @@ class SplashPresentation extends React.Component { // eslint-disable-line react/
Object.keys(this.props.user).length !== 0 && // Only show if user is logged in Object.keys(this.props.user).length !== 0 && // Only show if user is logged in
Date.now() >= HOC_START_TIME && // Show middle banner on and after Dec 3 Date.now() >= HOC_START_TIME && // Show middle banner on and after Dec 3
Date.now() < HOC_END_TIME && // Hide middle banner after Dec 14 Date.now() < HOC_END_TIME && // Hide middle banner after Dec 14
false && // we did not use this middle banner in last HoC
<MediaQuery <MediaQuery
key="frameless-desktop" key="frameless-desktop"
minWidth={frameless.tabletPortrait} minWidth={frameless.tabletPortrait}

View file

@ -341,7 +341,7 @@ const Landing = props => (
id="teacherlanding.accountsRequestInfo" id="teacherlanding.accountsRequestInfo"
values={{ values={{
setupGuideLink: ( setupGuideLink: (
<a href="https://docs.google.com/document/d/1Qb8Lyeiivr-oB49p5Bo17iXU5qxGpBJHuFa_KR5aW-o/view" > <a href="https://resources.scratch.mit.edu/www/guides/en/scratch-teacher-accounts-guide.pdf" >
<FormattedMessage id="teacherlanding.accountsSetupGuide" /> <FormattedMessage id="teacherlanding.accountsSetupGuide" />
</a> </a>
), ),

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,302 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 460.9 347.5" style="enable-background:new 0 0 460.9 347.5;" xml:space="preserve">
<style type="text/css">
.st0{opacity:0.26;fill:#006AFF;enable-background:new ;}
.st1{fill:#FFFFFF;}
.st2{fill:#575E75;}
.st3{fill:#CC9900;}
.st4{fill:#FF8C1A;}
.st5{fill-opacity:0.15;}
.st6{fill:#0EBD8C;}
.st7{fill:#47B946;}
.st8{fill:#4D97FF;}
.st9{fill:#9966FF;}
.st10{fill:#FFAB19;}
.st11{fill:#CF63CF;}
.st12{fill:#FFBF00;}
.st13{fill-rule:evenodd;clip-rule:evenodd;fill:#0EA57A;}
.st14{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;filter:url(#Adobe_OpacityMaskFilter);}
.st15{mask:url(#a_1_);}
.st16{fill-rule:evenodd;clip-rule:evenodd;fill:#0EBD8C;}
.st17{fill-rule:evenodd;clip-rule:evenodd;fill:#FF3355;}
.st18{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6680;}
.st19{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;filter:url(#Adobe_OpacityMaskFilter_1_);}
.st20{mask:url(#b_1_);}
.st21{fill:#256ED1;}
.st22{fill:#2876E0;}
.st23{fill:#59C059;}
.st24{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st25{opacity:0.26;fill:#4C97FF;enable-background:new ;}
.st26{fill:#4C97FF;}
</style>
<path class="st0" d="M420.1,209.1c-10.7-8-22.6-14-34.4-20.1c-11.6-6-24.3-12.2-33.8-21.4c-4-3.9-7.2-9-5.3-14.6
c1.5-4.6,5.4-8.2,9.5-10.8c10.5-6.7,21.9-6.7,33.9-7.2c11.1-0.5,23.1-1.4,32.6-7.8c9.1-6.2,14.3-16.5,14-27.5
c-0.4-23.6-18.7-43-37.8-54.4c-20-11.8-43.2-17.1-66.3-15.2c-11.3,0.9-22.4,3.6-32.9,8.1c-11.9,5.1-22,12.8-32.6,20.1
c-10.8,7.4-22.4,14.2-35.9,14.3c-5.2,0.2-10.4-1.1-15-3.6c-6.3-3.7-9.5-10.2-13-16.3c-6.2-11-14.7-20.3-25.8-26.6
c-10.8-6.1-25.2-10.1-36.8-3.6c-9.2,4.9-13.6,15.7-10.5,25.6c-25.2-6.3-52.2-8.5-77.6-4.2C39.6,46.1,27,51.3,18.9,61.6
C12,70.3,8.8,82,12.7,92.7c6.3,17.1,25.3,23.9,39.7,32.6c6.7,4.1,13.8,9.1,16.8,16.7c4.9,12.3-2.2,26.1-2.7,38.7
c-1,25.6,23.1,40.5,45.8,43.6c10.7,1.5,24.8,1.3,32.4,10.3s4.4,22.9,3.1,33.5c-1.5,11.3-2.1,22.6,2.7,33.3
c4.4,9.7,12.4,17.4,21.5,22.7c21.3,12.3,45.6,11.1,68.5,4.4c13.7-4,26.9-9.6,40.4-14.4c14-5.1,28.5-8.7,43.2-10.7
c14.7-1.8,29.6-2.1,44.4-0.8c11.4,0.8,22.8,1.9,34.2,0.9c21.2-1.7,42.5-12.4,45.9-35.5C452.1,245.1,437.7,222.4,420.1,209.1
L420.1,209.1z"/>
<g>
<path class="st1" d="M255.5,266h4.6v4.6h-4.6L255.5,266z"/>
<path class="st1" d="M260.1,266h4.6v4.6h-4.6V266z"/>
<path class="st1" d="M260.1,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M269.2,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M269.2,266h4.6v4.6h-4.6V266z"/>
<path class="st1" d="M260.1,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M260.1,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st1" d="M269.2,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st1" d="M269.2,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M273.8,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st1" d="M273.8,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M278.3,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st1" d="M278.3,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M282.9,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M287.4,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M292,284.2h4.6v4.6H292V284.2z"/>
<path class="st1" d="M260.1,288.8h45.6v4.6h-45.6V288.8z"/>
<path class="st1" d="M260.1,293.3h50.1v4.6h-50.1V293.3z"/>
<path class="st1" d="M260.1,297.9h63.8v4.6h-63.8V297.9z"/>
<path class="st1" d="M264.6,302.4h54.7v4.6h-54.7V302.4z"/>
<path class="st1" d="M292,307h27.3v4.6H292V307z"/>
<path class="st1" d="M269.2,307h18.2v4.6h-18.2V307z"/>
<path class="st1" d="M273.8,311.5h13.7v4.6h-13.7V311.5z"/>
<path class="st1" d="M260.1,311.5h9.1v4.6h-9.1V311.5z"/>
<path class="st1" d="M255.5,316.1h9.1v4.6h-9.1V316.1z"/>
<path class="st1" d="M260.1,307h4.6v4.6h-4.6V307z"/>
<path class="st1" d="M255.5,320.6h4.6v4.6h-4.6L255.5,320.6z"/>
<path class="st1" d="M278.3,316.1h9.1v4.6h-9.1V316.1z"/>
<path class="st1" d="M278.3,320.6h9.1v4.6h-9.1V320.6z"/>
<path class="st1" d="M282.9,325.2h4.6v4.6h-4.6V325.2z"/>
<path class="st1" d="M287.4,329.8h4.6v4.6h-4.6V329.8z"/>
<path class="st1" d="M287.4,325.2h4.6v4.6h-4.6V325.2z"/>
<path class="st1" d="M292,311.5h27.3v4.6H292V311.5z"/>
<path class="st1" d="M305.6,316.1h13.7v4.6h-13.7V316.1z"/>
<path class="st1" d="M310.2,320.6h9.1v4.6h-9.1V320.6z"/>
<path class="st1" d="M296.5,316.1h4.6v4.6h-4.6V316.1z"/>
<path class="st1" d="M314.8,325.2h4.6v4.6h-4.6V325.2z"/>
<path class="st1" d="M314.8,334.3h4.6v4.6h-4.6V334.3z"/>
<path class="st1" d="M314.8,329.8h4.6v4.6h-4.6V329.8z"/>
<path class="st1" d="M319.3,334.3h4.6v4.6h-4.6V334.3z"/>
<path class="st1" d="M319.3,329.8h4.6v4.6h-4.6V329.8z"/>
<path class="st1" d="M305.6,334.3h4.6v4.6h-4.6V334.3z"/>
<path class="st1" d="M305.6,329.8h4.6v4.6h-4.6V329.8z"/>
<path class="st1" d="M305.6,325.2h4.6v4.6h-4.6V325.2z"/>
<path class="st1" d="M301.1,320.6h4.6v4.6h-4.6V320.6z"/>
<path class="st1" d="M269.2,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M273.8,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M264.6,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st1" d="M264.6,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M260.1,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st1" d="M255.5,279.6h4.6v4.6h-4.6L255.5,279.6z"/>
<path class="st1" d="M264.6,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M264.6,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M255.5,275.1h4.6v4.6h-4.6L255.5,275.1z"/>
<path class="st1" d="M246.4,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M251,275.1h4.6v4.6H251V275.1z"/>
<path class="st1" d="M241.9,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M246.4,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M251,270.5h4.6v4.6H251V270.5z"/>
<path class="st1" d="M246.4,266h4.6v4.6h-4.6V266z"/>
<path class="st1" d="M251,266h4.6v4.6H251V266z"/>
<path class="st1" d="M255.5,270.5h4.6v4.6h-4.6L255.5,270.5z"/>
<path class="st1" d="M241.9,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M269.2,261.4h4.6v4.6h-4.6V261.4z"/>
<path class="st1" d="M264.6,256.9h4.6v4.6h-4.6V256.9z"/>
<path class="st1" d="M269.2,256.9h4.6v4.6h-4.6V256.9z"/>
<path class="st1" d="M269.2,252.3h4.6v4.6h-4.6V252.3z"/>
<path class="st1" d="M264.6,247.7h4.6v4.6h-4.6V247.7z"/>
<path class="st1" d="M260.1,256.9h4.6v4.6h-4.6V256.9z"/>
<path class="st1" d="M255.5,256.9h4.6v4.6h-4.6L255.5,256.9z"/>
<path class="st1" d="M251,261.4h4.6v4.6H251V261.4z"/>
<path class="st1" d="M264.6,252.3h4.6v4.6h-4.6V252.3z"/>
<path class="st1" d="M264.6,266h4.6v4.6h-4.6V266z"/>
<path class="st1" d="M264.6,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st1" d="M264.6,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st1" d="M264.6,261.4h4.6v4.6h-4.6V261.4z"/>
</g>
<path class="st2" d="M255.5,266h4.6v4.6h-4.6L255.5,266z"/>
<path class="st1" d="M260.1,266h4.6v4.6h-4.6V266z"/>
<path class="st1" d="M260.1,261.4h4.6v4.6h-4.6V261.4z"/>
<path class="st1" d="M255.5,261.4h4.6v4.6h-4.6L255.5,261.4z"/>
<path class="st3" d="M255.5,325.2h4.6v4.6h-4.6L255.5,325.2z"/>
<path class="st3" d="M292,329.8h4.6v4.6H292V329.8z"/>
<path class="st3" d="M319.3,338.9h4.6v4.6h-4.6V338.9z"/>
<path class="st3" d="M310.2,338.9h4.6v4.6h-4.6V338.9z"/>
<path class="st4" d="M246.4,252.3h4.6v4.6h-4.6V252.3z"/>
<path class="st4" d="M241.9,247.7h4.6v4.6h-4.6V247.7z"/>
<path class="st4" d="M237.3,243.2h4.6v4.6h-4.6V243.2z"/>
<path class="st4" d="M237.3,238.6h4.6v4.6h-4.6V238.6z"/>
<path class="st4" d="M241.9,238.6h4.6v4.6h-4.6V238.6z"/>
<path class="st4" d="M246.4,247.7h4.6v4.6h-4.6V247.7z"/>
<path class="st4" d="M241.9,243.2h4.6v4.6h-4.6V243.2z"/>
<path class="st4" d="M251,252.3h4.6v4.6H251V252.3z"/>
<path class="st4" d="M255.5,252.3h4.6v4.6h-4.6L255.5,252.3z"/>
<path class="st4" d="M251,256.9h4.6v4.6H251V256.9z"/>
<path class="st4" d="M246.4,243.2h4.6v4.6h-4.6V243.2z"/>
<path class="st4" d="M251,247.7h4.6v4.6H251V247.7z"/>
<path class="st5" d="M292,311.5h4.6v4.6H292V311.5z"/>
<path class="st5" d="M296.5,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M296.5,307h4.6v4.6h-4.6V307z"/>
<path class="st5" d="M296.5,302.4h4.6v4.6h-4.6V302.4z"/>
<path class="st5" d="M301.1,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M305.6,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M305.6,316.1h4.6v4.6h-4.6V316.1z"/>
<path class="st5" d="M310.2,320.6h4.6v4.6h-4.6V320.6z"/>
<path class="st5" d="M301.1,320.6h4.6v4.6h-4.6V320.6z"/>
<path class="st5" d="M296.5,316.1h4.6v4.6h-4.6V316.1z"/>
<path class="st5" d="M305.6,325.2h4.6v4.6h-4.6V325.2z"/>
<path class="st5" d="M305.6,329.8h4.6v4.6h-4.6V329.8z"/>
<path class="st5" d="M305.6,334.3h4.6v4.6h-4.6V334.3z"/>
<path class="st5" d="M260.1,288.8h4.6v4.6h-4.6V288.8z"/>
<path class="st5" d="M260.1,293.3h4.6v4.6h-4.6V293.3z"/>
<path class="st5" d="M260.1,297.9h4.6v4.6h-4.6V297.9z"/>
<path class="st5" d="M264.6,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M260.1,307h4.6v4.6h-4.6V307z"/>
<path class="st5" d="M264.6,302.4h4.6v4.6h-4.6V302.4z"/>
<path class="st5" d="M269.2,307h4.6v4.6h-4.6V307z"/>
<path class="st5" d="M282.9,307h4.6v4.6h-4.6V307z"/>
<path class="st5" d="M282.9,302.4h4.6v4.6h-4.6V302.4z"/>
<path class="st5" d="M273.8,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M278.3,311.5h4.6v4.6h-4.6V311.5z"/>
<path class="st5" d="M278.3,316.1h4.6v4.6h-4.6V316.1z"/>
<path class="st5" d="M278.3,320.6h4.6v4.6h-4.6V320.6z"/>
<path class="st5" d="M255.5,279.6h4.6v4.6h-4.6L255.5,279.6z"/>
<path class="st5" d="M251,275.1h4.6v4.6H251V275.1z"/>
<path class="st5" d="M246.4,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st5" d="M241.9,275.1h4.6v4.6h-4.6V275.1z"/>
<path class="st5" d="M241.9,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st5" d="M246.4,270.5h4.6v4.6h-4.6V270.5z"/>
<path class="st5" d="M251,256.9h4.6v4.6H251V256.9z"/>
<path class="st5" d="M246.4,252.3h4.6v4.6h-4.6V252.3z"/>
<path class="st5" d="M241.9,247.7h4.6v4.6h-4.6V247.7z"/>
<path class="st5" d="M237.3,243.2h4.6v4.6h-4.6V243.2z"/>
<path class="st5" d="M260.1,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st5" d="M264.6,279.6h4.6v4.6h-4.6V279.6z"/>
<path class="st5" d="M260.1,284.2h4.6v4.6h-4.6V284.2z"/>
<path class="st6" d="M273.8,270.5h27.3v4.6h-27.3V270.5z"/>
<path class="st7" d="M278.3,275.1h18.2v4.6h-18.2V275.1z"/>
<path class="st8" d="M273.8,266H292v4.6h-18.2V266z"/>
<path class="st9" d="M273.8,261.4h13.7v4.6h-13.7V261.4z"/>
<path class="st4" d="M319.3,293.3H333v4.6h-13.7V293.3z"/>
<path class="st4" d="M346.6,293.3h9.1v4.6h-9.1V293.3z"/>
<path class="st10" d="M351.2,288.8h4.6v4.6h-4.6V288.8z"/>
<path class="st10" d="M323.9,288.8h4.6v4.6h-4.6V288.8z"/>
<path class="st11" d="M328.4,297.9h27.3v4.6h-27.3V297.9z"/>
<path class="st9" d="M333,302.4h18.2v4.6H333V302.4z"/>
<path class="st3" d="M332.1,170.9l-10.9-35.2c0,0,8.9-16.8,34.5-24.7s42.4,1,42.4,1l43.7-13.5c1.8-0.6,3.6,0.4,4.2,2.2c0,0,0,0,0,0
l9.9,32c0.6,1.8-0.4,3.6-2.2,4.2c0,0,0,0,0,0l-80.8,24.9c-0.9,0.3-1.6,0.8-2,1.6l-3.1,5.9c-0.4,0.8-1.1,1.4-2,1.6l-10.2,3.1
c-0.9,0.3-1.8,0.2-2.6-0.2l-5.9-3.1c-0.8-0.4-1.7-0.5-2.6-0.2l-8.3,2.6C334.5,173.6,332.7,172.6,332.1,170.9L332.1,170.9z"/>
<path class="st12" d="M331.1,167.6l-10.9-35.2c0,0,8.9-16.8,34.5-24.7s42.4,1,42.4,1l43.7-13.5c1.7-0.5,3.6,0.4,4.1,2.2l9.9,32
c0.5,1.8-0.4,3.6-2.2,4.2l-80.8,24.9c-0.9,0.3-1.6,0.8-2,1.6l-3.1,5.9c-0.4,0.8-1.1,1.4-2,1.6l-10.2,3.1c-0.9,0.3-1.8,0.2-2.6-0.2
l-5.9-3.1c-0.8-0.4-1.7-0.5-2.5-0.2l-8.3,2.6C333.5,170.3,331.7,169.4,331.1,167.6L331.1,167.6z"/>
<path class="st13" d="M346.4,209.6c9.1-8.6,0.9-11.3-3.4-9.5c-6.5,2.8-9.4,8.5-12.2,9.1c-5.5,1.1-8.5-8.3-6.3-12.1
c2.6-4.5,6.8-9.2,8.7-9.6c2.6-0.5,4.9,2.6,8.5,6.1c3.1,3.1,10.1,1.1,6.1-3.9c-5.6-6.9-11.4-11.8-14.8-11.4c-2.7,0.3-5.6,1.6-9.1,4.9
c-4.5,4.3-6.1,6.6-7,6.9c-2.1,0.6-0.7-11.4,1.9-22.3c1.8-7.6-6.6-9.3-8.5-1.1c-3.5,15.5-1.9,28.1-3.3,28.2c-1,0.1-3.7-9-3.8-22.6
c0-6.1-8.7-6.6-8.1,2c0.8,11.3,4,23.8,2.3,24.5c-1.1,0.4-4.9-10.9-6.8-15.5c-2.9-7.3-9.2-3.1-7.2,1.9c7.6,19.7,9,20.6,10.3,32.5
c1.9,16.8,30,22.3,38.9,6.9C339,214,341.5,214.2,346.4,209.6L346.4,209.6z"/>
<defs>
<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="284.9" y="160.7" width="64.5" height="70.5">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="284.9" y="160.7" width="64.5" height="70.5" id="a_1_">
<path class="st14" d="M346.4,209.6c9.1-8.6,0.9-11.3-3.4-9.5c-6.5,2.8-9.4,8.5-12.2,9.1c-5.5,1.1-8.5-8.3-6.3-12.1
c2.6-4.5,6.8-9.2,8.7-9.6c2.6-0.5,4.9,2.6,8.5,6.1c3.1,3.1,10.1,1.1,6.1-3.9c-5.6-6.9-11.4-11.8-14.8-11.4
c-2.7,0.3-5.6,1.6-9.1,4.9c-4.5,4.3-6.1,6.6-7,6.9c-2.1,0.6-0.7-11.4,1.9-22.3c1.8-7.6-6.6-9.3-8.5-1.1
c-3.5,15.5-1.9,28.1-3.3,28.2c-1,0.1-3.7-9-3.8-22.6c0-6.1-8.7-6.6-8.1,2c0.8,11.3,4,23.8,2.3,24.5c-1.1,0.4-4.9-10.9-6.8-15.5
c-2.9-7.3-9.2-3.1-7.2,1.9c7.6,19.7,9,20.6,10.3,32.5c1.9,16.8,30,22.3,38.9,6.9C339,214,341.5,214.2,346.4,209.6L346.4,209.6z"/>
</mask>
<g class="st15">
<path class="st16" d="M345.3,206.8c9.1-8.6,0.9-11.3-3.4-9.5c-6.5,2.8-9.4,8.5-12.2,9c-5.5,1.1-7.4-6.5-5.2-10.3
c2.6-4.5,6-9.5,7.9-9.9c2.6-0.5,4.7,1.1,8.3,4.7c3.1,3.1,10.1,1.1,6.1-3.9c-5.6-6.9-11.4-11.8-14.8-11.4c-2.7,0.3-5.6,1.6-9.1,4.9
c-4.5,4.3-3.7,4.8-4.7,5.1c-2.1,0.6,2.2-10.2,4-21.3c0.4-2.3-6.9-7.1-8.7,1.1c-1.1,4.8-0.7,9.3-1.1,13.3
c-0.9,8.9-1.9,15.2-5.3,16.5c-1.5-5.7-2.3-13.1-2.3-22.2c0-6.1-7.9-7.1-7.6-1.3s2,8.4,2.5,13.9c0.5,5,0.4,12.3-2,13.2
c-2.5-7.4-4.4-12.6-5.6-15.7c-2.9-7.2-8.5-3.5-6.5,1.5c7.6,19.7,12.5,19.6,13.9,31.5c1.9,16.8,25.9,21.2,34.9,5.8
C340.3,211.2,340.4,211.5,345.3,206.8L345.3,206.8z"/>
</g>
<path class="st17" d="M341.6,217.8l-4.5-30.8c-0.2-1.7,1-3.3,2.7-3.5l8-1.2c0.8-0.1,1.7,0.1,2.3,0.6l5,3.7c0.7,0.5,1.5,0.7,2.3,0.6
l9.9-1.4c0.8-0.1,1.6-0.6,2.1-1.2l3.8-5c0.5-0.7,1.2-1.1,2.1-1.2l77.6-11.3c1.7-0.3,3.3,0.9,3.5,2.6c0,0,0,0,0,0l4.5,30.8
c0.2,1.7-1,3.3-2.7,3.5l-77.6,11.3c-0.8,0.1-1.6,0.6-2.1,1.2l-3.8,5c-0.5,0.7-1.2,1.1-2.1,1.2l-9.9,1.4c-0.8,0.1-1.7-0.1-2.3-0.6
l-5-3.7c-0.7-0.5-1.5-0.7-2.3-0.6l-8,1.2C343.5,220.6,341.9,219.5,341.6,217.8"/>
<path class="st18" d="M341.2,214.4l-4.5-30.8c-0.2-1.7,1-3.3,2.7-3.5l8-1.2c0.8-0.1,1.7,0.1,2.3,0.6l5,3.7c0.7,0.5,1.5,0.7,2.3,0.6
l9.9-1.4c0.8-0.1,1.6-0.6,2.1-1.2l3.8-5c0.5-0.7,1.2-1.1,2.1-1.2l77.6-11.3c1.7-0.3,3.3,0.9,3.5,2.6c0,0,0,0,0,0l4.5,30.8
c0.2,1.7-1,3.3-2.7,3.5l-77.6,11.3c-0.8,0.1-1.6,0.6-2.1,1.2l-3.8,5c-0.5,0.7-1.2,1.1-2.1,1.2l-9.9,1.4c-0.8,0.1-1.7-0.1-2.3-0.6
l-5-3.7c-0.7-0.5-1.5-0.7-2.3-0.6l-8,1.2C343.1,217.3,341.5,216.1,341.2,214.4"/>
<path class="st13" d="M333.2,187.5c2.6-0.5,5.3,2.7,9,6.2c3.2,3,10.1,1.1,6.1-3.8c-5.6-6.8-11.7-11.7-15.1-11.4V187.5z"/>
<defs>
<filter id="Adobe_OpacityMaskFilter_1_" filterUnits="userSpaceOnUse" x="332" y="175.8" width="19" height="20.4">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="332" y="175.8" width="19" height="20.4" id="b_1_">
<path class="st19" d="M333.2,187.5c2.6-0.5,5.3,2.7,9,6.2c3.2,3,10.1,1.1,6.1-3.8c-5.6-6.8-11.7-11.7-15.1-11.4V187.5z"/>
</mask>
<g class="st20">
<path class="st16" d="M332.9,186.2c3-0.1,6.5,5.3,10.1,8.8c3.1,3,10.9,0,6.9-4.9c-5.6-6.8-14.5-14.6-17.9-14.2L332.9,186.2z"/>
</g>
<path class="st21" d="M124.2,153.9c43.4,42,44.4,111.3,2.4,154.6c-13.5,13.9-30.5,24-49.2,29.2c51.5,10.1,101.4-23.4,111.5-74.9
C198.2,215.4,170.4,168.5,124.2,153.9z"/>
<path class="st22" d="M157.4,232.4c0-29.6-12-57.9-33.2-78.5C74.2,138.2,20.8,166,5.1,216.1s12.1,103.4,62.1,119.1
c3.3,1.1,6.8,1.9,10.2,2.6C124.7,324.6,157.4,281.5,157.4,232.4z"/>
<path class="st23" d="M151.9,190.1c-1.9-2.4-4.7-5-8.1-4.7c-6.1,0.2-5.7,5.4-5.7,6.2c-0.2,3.8,3.3,6.2,3.3,6.2s-7.1,5.4-12.3,0.2
s-8.5-14.4-27-16.6s-23.9,3.6-23.9,6.7s2.8,5.2,2.8,5.2s-6.9,3.1-6.9,8.3s10.9,9.5,11.4,13c0.5,3.8-12.6,19.7-2.4,28.7
s28.2-13.5,28.2-13.5s6.6,6.2,12.3,2.6c4.7-3.1,5.2-9.9,5.2-11.6c0.7,1.8,2.4,2.9,4.3,3.1c1.2,0,2.3-0.4,3.3-0.9v0.2
c0,0,1,5.4,3.3,5.2s2.8-6.4,2.8-6.4s13-0.5,16.1,10.4s-1.2,13.3-1.2,13.3s-6.4-3.8-13.5,3.3s1.4,15.9-0.9,20.1s-15.9,4.3-15.2,11.1
c0.7,7.1,23,4.3,32.9-7.1c4.1-4.7,7.7-9.9,10.7-15.4h0.2c2.1,2.1,5.7,5,9.2,4.5c5.7-1,8.3-7.1,9.2-10.7v-0.2
c0.4-3.1,0.6-6.3,0.5-9.5c0-20.7-7.7-40.7-21.6-56.1l-0.2-0.5c-1.6-0.9-6.4-3.3-10.7-1.9C154.7,184.4,152.3,189.1,151.9,190.1
L151.9,190.1z"/>
<path class="st23" d="M51.7,328.9C23,313.7,0.5,282.2,0,245.3c-0.2-16.7,4.4-33.2,13.3-47.4c2.9-3.1,10.7-9.9,19.2-10.9
c11.1-1.2,19.4,1.9,19.9,5s-7.6,6.4-7.6,10s11.8,3.6,11.8,3.6s-2.1,2.4-0.7,4.3s4.5,1.7,4.5,1.7s-5.2,7.3-0.9,11.4s6.4,5.4,4.5,7.3
c-1.9,1.7-21.1-4.7-21.1-4.7s4.5,12.8,1.7,15.2s-11.8-0.2-11.8-0.2s4.3,9.9,0.7,12.1s-5.5,0-7.8-1.4c-2.1-1.4-7.3-2.9-6.4,2.8
c0.9,5.4,6.9,9.9,14,8.3s7.8-7.3,14.7-6.2s9,7.1,7.8,10.4S45.5,279,45.5,279s10.9,4.7,12.1,7.8c3.1,7.8-1.9,16.3-1.9,16.3
s12.6,4,13.3,5.9s-4.7,3.6-4.7,3.6s6.6,10.7,2.1,14.5c-3.5,3.1-9,3.5-11.6,3.3L51.7,328.9z"/>
<path class="st24" d="M155.8,126.6l-0.1,0.2c-9.6,14.2-23.9,17.3-22.6,10.8c0.9-4.6,1.7-8.6,0.9-11h-4c-9.4,0-17-7.6-17-17
s7.6-17,17-17h81c9.4,0,17,7.6,17,17s-7.6,17-17,17l0,0L155.8,126.6z"/>
<path class="st24" d="M260.4,78.3c-0.8,2.4-0.1,6.4,0.9,11c1.4,6.4-13,3.4-22.6-10.8l-0.1-0.2h-55.2c-9.4,0-17-7.6-17-17
s7.6-17,17-17h81c9.4,0,17,7.6,17,17s-7.6,17-17,17L260.4,78.3z"/>
<path class="st2" d="M333.2,35.2c-7.4,0.3-12.5-10.2,8.6,26.3c2.1,3.8-0.8,8.3-6.4,10.1s-11.9,0-14-3.8s0.8-8.4,6.4-10.1
c1.8-0.5,3.7-0.8,5.5-0.6c1.5-0.6-1.6-4.2-10.1-20.9c-10.7-20.9,4.6-5.1,14.5-9.9S340.6,34.8,333.2,35.2 M369.6,41.2
c2.1,3.8-0.8,8.3-6.4,10.1s-11.9,0-14-3.8s0.8-8.4,6.4-10.1c1.2-0.4,2.4-0.6,3.6-0.6c0.6,0,1.3,0,1.9,0c1.6-0.5-1.5-4-10.1-20.9
c-10.7-20.9,4.6-5.1,14.5-9.9s2.8,8.6-4.6,9S348.6,4.7,369.6,41.2"/>
<path class="st25" d="M163.2,339.4c-1.5,0.4-2.7,1.7-3.1,3.2l-0.9,3.5c-0.2,0.9-1.1,1.5-2,1.2c-0.6-0.1-1.1-0.6-1.2-1.2l-1-3.5
c-0.4-1.5-1.7-2.7-3.2-3.1l-3.5-0.9c-0.9-0.2-1.5-1.1-1.2-2c0.1-0.6,0.6-1.1,1.2-1.2l3.5-1c1.5-0.4,2.7-1.7,3.1-3.2l0.9-3.5
c0.2-0.9,1.1-1.5,2-1.2c0.6,0.1,1.1,0.6,1.2,1.2l1,3.5c0.4,1.5,1.7,2.7,3.2,3.1l3.5,0.9c0.9,0.2,1.5,1.1,1.2,2.1
c-0.1,0.6-0.6,1-1.2,1.2L163.2,339.4z"/>
<path class="st25" d="M28.9,162.9c-0.9,0.3-1.6,1-1.8,1.9l-0.5,2.1c-0.2,0.5-0.7,0.8-1.3,0.7c-0.3-0.1-0.5-0.3-0.6-0.6l-0.6-2
c-0.3-0.9-1-1.6-1.9-1.8l-2.1-0.5c-0.5-0.2-0.8-0.8-0.6-1.3c0.1-0.3,0.3-0.5,0.6-0.6l2-0.6c0.9-0.3,1.6-1,1.8-1.9l0.5-2.1
c0.2-0.5,0.7-0.8,1.3-0.6c0.3,0.1,0.5,0.3,0.6,0.6l0.6,2c0.3,0.9,1,1.6,1.9,1.8l2.1,0.5c0.5,0.2,0.8,0.7,0.7,1.3
c-0.1,0.3-0.3,0.5-0.6,0.6L28.9,162.9z"/>
<path class="st26" d="M203.7,195.3c-1.7,0.4-3.1,1.7-3.6,3.4l-1.1,3.9c-0.3,1-1.3,1.6-2.3,1.3c-0.6-0.2-1.1-0.7-1.3-1.4l-1-3.9
c-0.4-1.7-1.7-3.1-3.4-3.6l-3.9-1.2c-1-0.3-1.6-1.3-1.3-2.3c0.2-0.6,0.7-1.1,1.4-1.3l3.9-1c1.7-0.4,3.1-1.7,3.6-3.4l1.2-3.9
c0.3-1,1.3-1.6,2.3-1.3c0.6,0.2,1.1,0.7,1.3,1.4l1,4c0.4,1.7,1.7,3.1,3.4,3.6l3.9,1.1c1,0.3,1.6,1.3,1.3,2.3
c-0.2,0.6-0.7,1.1-1.4,1.3L203.7,195.3z"/>
<path class="st26" d="M185.7,160.4c0.2,0.9,0.9,1.5,1.8,1.8l2,0.5c0.5,0.1,0.8,0.6,0.7,1.1c-0.1,0.3-0.3,0.6-0.7,0.7l-2,0.5
c-0.9,0.2-1.5,0.9-1.8,1.8l-0.5,2c-0.1,0.5-0.6,0.8-1.1,0.7c-0.3-0.1-0.6-0.3-0.7-0.7l-0.5-2c-0.2-0.9-0.9-1.5-1.8-1.8l-2-0.6
c-0.5-0.1-0.8-0.6-0.7-1.1c0.1-0.3,0.3-0.6,0.7-0.7l2-0.5c0.9-0.2,1.5-0.9,1.8-1.8l0.6-2c0.1-0.5,0.6-0.8,1.1-0.7
c0.3,0.1,0.6,0.3,0.7,0.7L185.7,160.4z"/>
<path class="st25" d="M403.6,18.9c-2.2,0.6-4,2.4-4.5,4.7l-1.3,5.2c-0.3,1.3-1.7,2.1-3,1.8c-0.9-0.2-1.5-0.9-1.8-1.7l-1.5-5.1
c-0.7-2.2-2.5-4-4.7-4.5l-5.1-1.2c-1.3-0.3-2.1-1.6-1.8-3c0.2-0.9,0.9-1.5,1.7-1.8l5.1-1.5c2.3-0.7,4-2.5,4.5-4.8l1.3-5.2
c0.3-1.3,1.7-2.1,3-1.8c0.9,0.2,1.5,0.9,1.8,1.7l1.5,5.1c0.7,2.2,2.4,4,4.7,4.5l5.2,1.3c1.3,0.3,2.1,1.7,1.8,3
c-0.2,0.9-0.9,1.5-1.7,1.8L403.6,18.9z"/>
<path class="st25" d="M426.1,39.6c-1.1,0.3-1.9,1.2-2.1,2.2l-0.6,2.5c-0.2,0.6-0.8,1-1.4,0.8c-0.4-0.1-0.7-0.4-0.8-0.8l-0.7-2.4
c-0.3-1.1-1.2-1.9-2.3-2.1l-2.5-0.6c-0.6-0.1-1-0.8-0.9-1.4c0.1-0.4,0.4-0.8,0.8-0.9l2.4-0.7c1.1-0.3,1.9-1.2,2.1-2.3l0.6-2.5
c0.2-0.6,0.8-1,1.4-0.8c0.4,0.1,0.7,0.4,0.8,0.8l0.7,2.4c0.3,1.1,1.2,1.9,2.3,2.1l2.5,0.6c0.6,0.2,1,0.8,0.9,1.4
c-0.1,0.4-0.4,0.7-0.8,0.9L426.1,39.6z"/>
<path class="st25" d="M55.6,147.4c-1.5,0.5-2.6,1.7-3,3.2l-0.8,3.5c-0.2,0.9-1.1,1.4-2,1.2c-0.6-0.1-1-0.6-1.2-1.1l-1-3.4
c-0.5-1.5-1.7-2.6-3.2-3l-3.5-0.8c-0.9-0.2-1.4-1.1-1.2-2c0.1-0.6,0.6-1,1.1-1.2l3.4-1c1.5-0.5,2.6-1.7,3-3.2l0.8-3.5
c0.2-0.9,1.1-1.4,2-1.2c0.6,0.1,1,0.6,1.2,1.1l1,3.4c0.5,1.5,1.7,2.6,3.2,3l3.5,0.8c0.9,0.2,1.4,1.1,1.2,2c-0.1,0.6-0.6,1-1.1,1.2
L55.6,147.4z"/>
<path class="st26" d="M349.3,271.4c-1.2,0.3-2.1,1.2-2.5,2.3l-0.8,2.6c-0.2,0.7-0.9,1.1-1.6,0.9c-0.4-0.1-0.8-0.5-0.9-0.9l-0.6-2.7
c-0.3-1.2-1.2-2.1-2.3-2.5l-2.6-0.8c-0.7-0.2-1.1-0.9-0.9-1.6c0.1-0.4,0.5-0.8,0.9-0.9l2.7-0.6c1.2-0.3,2.1-1.2,2.5-2.3l0.8-2.6
c0.2-0.7,0.9-1.1,1.6-0.9c0.4,0.1,0.8,0.5,0.9,0.9l0.6,2.7c0.3,1.2,1.2,2.1,2.3,2.5l2.6,0.8c0.7,0.2,1.1,0.9,0.9,1.6
c-0.1,0.4-0.5,0.8-0.9,0.9L349.3,271.4z"/>
<path class="st26" d="M369.4,279.7c-0.7,0.2-1.2,0.7-1.4,1.3l-0.5,1.5c-0.1,0.4-0.5,0.6-0.9,0.5c-0.3-0.1-0.5-0.3-0.5-0.5l-0.4-1.6
c-0.2-0.7-0.7-1.2-1.4-1.4l-1.5-0.5c-0.4-0.1-0.6-0.5-0.5-0.9c0.1-0.3,0.3-0.5,0.5-0.5l1.6-0.4c0.7-0.2,1.2-0.7,1.5-1.4l0.5-1.5
c0.1-0.4,0.5-0.6,0.9-0.5c0.2,0.1,0.4,0.3,0.5,0.5l0.4,1.6c0.2,0.7,0.7,1.2,1.4,1.4l1.5,0.5c0.4,0.1,0.6,0.5,0.5,0.9
c-0.1,0.3-0.3,0.5-0.5,0.5L369.4,279.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1,381 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 484.8 380" style="enable-background:new 0 0 484.8 380;" xml:space="preserve">
<style type="text/css">
.st0{opacity:0.26;fill:#006AFF;enable-background:new ;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:#D9E3F2;stroke-width:7.59;stroke-linecap:round;stroke-linejoin:round;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#D9E3F2;stroke:#D9E3F2;stroke-width:7.59;stroke-linecap:round;stroke-linejoin:round;}
.st3{fill:none;stroke:#585F76;stroke-width:7.59;stroke-linecap:round;stroke-linejoin:round;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#774DCB;}
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:#9966FF;}
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#FF661A;}
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#FF8C1A;}
.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#0EBD8C;}
.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#4D97FF;}
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6680;}
.st11{fill:#120201;}
.st12{fill:#E85F1A;}
.st13{fill:#FCC3AC;}
.st14{fill:#F47621;}
.st15{fill:#FFFFFF;}
.st16{fill:#000600;}
.st17{fill:none;}
.st18{fill:#FF661A;}
.st19{fill:#EFAB00;}
.st20{fill:#59C059;}
.st21{fill:#E8511C;}
.st22{fill:#C18500;}
.st23{fill:#C6431A;}
.st24{fill:#A06B00;}
.st25{fill:#4BA04B;}
.st26{fill:#FFBF00;}
.st27{fill-rule:evenodd;clip-rule:evenodd;fill:#855CD6;}
.st28{fill-rule:evenodd;clip-rule:evenodd;fill:#0EA57A;}
.st29{fill-rule:evenodd;clip-rule:evenodd;fill:#FF3355;}
.st30{opacity:0.26;fill:#4C97FF;enable-background:new ;}
.st31{fill:#4C97FF;}
</style>
<title>SEC-bottom-img</title>
<g>
<g id="Layer_2_1_">
<g id="Layer_1-2">
<path class="st0" d="M465.1,173.6c-6.9-8.3-15.2-14.6-24.1-20.1c-8.3-5.1-17.7-10-23.5-18.6c-7.2-10.7-5-24.5-4.5-36.9
c0.5-10.6-0.4-22.2-6.3-31c-6.8-10.1-18.2-12.4-29-12.9c-12.8-0.6-25.5,1-38.1,3.1c-25.4,4.4-50.7,11.9-76.6,10.6
c-12-0.5-23.7-3.5-34.3-8.9c-9-4.7-17.3-10.8-25.4-16.9C187,29.9,170.4,16.7,150.4,14c-22.1-3-44.9,8.8-61.9,23.6
c-7.7,6.8-14.7,15.8-16.7,26.7c-2,10.8,0.8,21.4,6.2,30.5c5,8.5,11.7,15.6,18.6,22.2c-17.3,8.3-30.7,23.3-40.8,40.9
c-12,21-21.8,47-21.8,72.1c0.1,21.6,9.3,44.8,27.9,54.2c22.5,11.4,46.4-0.8,67.7-9.6c17.6-7.3,44.3-14.6,57.9,5.3
c6.6,9.5,5.5,22.7,8.8,33.6c2.8,9.1,7.7,17.5,14.2,24.5c29.9,32.1,78.6,29.3,112.6,7.2c18.8-12.2,31.2-30.4,44.7-48.6
c6.3-8.5,13.1-17,21.3-23.3c9.7-7.4,20.8-10.7,32.3-12.7c19-3.3,46.1-2.7,58.4-22.3C492.6,218.1,477.9,189.1,465.1,173.6z"/>
<g id="Fill-Bucket">
<g id="paint-bucket">
<g id="Bucket">
<path id="Oval" class="st1" d="M215.4,63.5c-2.4,3.9-18.7-1-36.4-10.9s-30.2-21.1-27.8-24.9s18.7,1,36.4,10.9
S217.8,59.6,215.4,63.5z"/>
<path id="Path" class="st2" d="M215.4,65.2l-42.1,55.4c-1.8,3.1-14.4-0.8-28.2-9s-23.4-17.2-21.6-20.3l27.1-64.1
c-2.4,4.1,10.2,15.9,28.1,26.4S213,69.3,215.4,65.2z"/>
<path id="Path-2" class="st3" d="M162,59.5c0,0,12.9-44.1,27.8-48c19-5,5.1,31.8,5.1,31.8"/>
<path id="Path-3" class="st1" d="M186.6,37.9c17.8,9.8,30.4,20.8,28,24.7s-18.7-0.9-36.5-10.6"/>
</g>
</g>
<g id="hand">
<g id="Fill-1">
<path id="path-3-2" class="st4" d="M141.5,38.9l-2.5,5.8c-3.2,7.4-4,8.8,1.8,9.9c7.6,1.5,17.6,4.2,23.7,5.8
c6.8,1.8,4.3,10.7-1.8,9.3c-8.3-1.9-22-6.5-22.9-4.2c-0.9,2.5,17.6,6.3,28.2,10.5c7.8,3,5.2,10.9-2.9,9.2
c-9.8-2-23.7-8.7-24.6-6.9s12.4,7.1,20.5,10.3c6.6,2.6,3.2,10.5-2.8,8.2c-9.1-3.5-23.7-11.9-24.6-10.3
c-1.1,2.1,8.4,6.4,13.3,9.1c5.9,3.3,2.3,9.4-2.7,7c-8.8-4.3-29.8-15.4-35.5-18.7c-25.6-14.7-10.5-45.3,9.2-42.5
C127.8,42.7,136.4,39.2,141.5,38.9z"/>
</g>
<path class="st5" d="M165.1,85.1c8.2,1.7,10.7-6.2,2.9-9.2c-10.6-4.1-34.1-5-34.1-7.7c0.2-6.9,20.4-0.5,28.7,1.4
c6.1,1.4,8.6-7.5,1.8-9.3c-6-1.5-16-4.3-23.7-5.8c-5.8-1.1-5-2.5-1.8-9.9l2.5-5.8c-5.1,0.3-13.7,3.8-23.6,2.4
c-19.7-2.8-34.8,27.8-9.3,42.5c5.7,3.3,26.7,14.4,35.5,18.7c5,2.4,7.9-1.1,2-4.4c-4.9-2.7-18.5-8.4-18.5-8.9
c0.2-6.5,21.5,4,30.6,7.6c6,2.3,9.4-5.6,2.8-8.2c-8.1-3.2-26.4-5.7-26.4-7.7C134.8,74.3,155.3,83.1,165.1,85.1z"/>
</g>
<g id="Meltbow">
<path id="Path-4" class="st6" d="M202.2,55.6c0,0,139,45,131.4,181.5c-0.5,9.9,14,10.1,14.5,0.2
C356.8,81.6,202.2,55.6,202.2,55.6z"/>
<path id="Path-5" class="st7" d="M204.5,56.4c0,0,128.3,56.6,120.8,190.7c-0.4,7,13.9,7.2,14.3,0.2
C348.5,88.2,204.5,56.4,204.5,56.4z"/>
<path id="Path-6" class="st8" d="M202.2,55.6c0,0,118.6,47.1,111.1,181.8c-0.5,8.9,13.7,9,14.2,0.2
C336.1,83.8,202.2,55.6,202.2,55.6z"/>
<path id="Path-7-2" class="st9" d="M202.2,55.6c0,0,103.8,62.6,97.7,169.7c-0.6,10.3,16.9,10.5,17.4,0.2
C324.8,93.2,202.2,55.6,202.2,55.6z"/>
<path id="Path-8" class="st5" d="M202.2,55.6c0,0,87.2,37.9,78.6,188.2c-1,17.5,21.7,18.5,22.7,1.7
C312.1,93.8,202.2,55.6,202.2,55.6z"/>
<path id="Path-9-2" class="st10" d="M202.2,55.6c0,0,50.6,33.6,56,142c0.4,8.1,1.1,10.8,5.2,10.8s4.5-8,5.7-8
c2.3,0-1.4,25.7-1.8,32.3c-0.7,13.2,19.6,12,20.3,0.2C295,98.1,202.2,55.6,202.2,55.6z"/>
</g>
</g>
<g id="ocean">
<g id="fish-a">
<g id="Clownfish">
<g id="flipper1">
<path id="Shape" class="st11" d="M175,340.3c-2.2,0.4-1.3,0.2-2.4-1.4c-1.3-2.1-4-3.1-5.4-5.3c-1.2-1.9-2.3-5.6-1.9-7.8
c0.6-3.6,1.2-6.5,4.1-9.1c2.2-1.9,4.7-2.6,7.1-4c2.9-1.6,6-0.8,9.2-0.9c3.8-0.2,8.1-0.3,11.6-1.5c1.1-0.3,2.1-0.9,2.9-1.6
c0.7-0.7,0.9-1.7,1.6-2.3c2.2-1.8,6.1-1.7,7.6-4.6s-1-5.9,1.4-8.4c0.9-0.7,1.8-1.4,2.5-2.3c0.9-1.3,1.9-1.4,3.2-2.5
c3-2.5,5.5-2.2,9-1.4c1,0.3,2,0.6,3,0.7c0.6,0,1.2-0.1,1.8-0.2c2.1,0.1,2.1,0.1,4.7,3.9c1.7,2.4,4,10.8,4,10.8L175,340.3z"/>
<path id="Shape-2" class="st12" d="M179,341.7c-2.2,0.4-1.3,0.2-2.4-1.4c-1.3-2.1-2.8-1.4-4.2-3.6c-1.2-1.9-4.3-4.5-4-6.8
c0.6-3.6,0-8.2,3-10.8c2.2-1.9,4.7-2.6,7.1-4c2.9-1.6,6-0.8,9.2-0.9c3.8-0.2,8-0.3,11.6-1.5c1.1-0.3,2.1-0.9,2.9-1.6
c0.6-0.7,0.9-1.7,1.6-2.3c2.2-1.8,6.1-1.7,7.6-4.6s-1-5.9,1.4-8.4c0.9-0.7,1.8-1.5,2.5-2.3c0.9-1.3,1.9-1.4,3.2-2.5
c3-2.5,5.5-2.2,9-1.4c1,0.3,2,0.6,3,0.7c0.6,0,1.2-0.1,1.8-0.2c2.1,0.1,2.1,0.1,4.7,3.9c1.7,2.4,4,10.8,4,10.8L179,341.7z"/>
<path id="Shape-3" class="st13" d="M209.7,302.1c-1.4,2.8-5.3,2.8-7.6,4.6c-0.7,0.6-0.9,1.6-1.6,2.3
c-0.9,0.7-1.9,1.2-2.9,1.6c-3,0.8-6.2,1.3-9.3,1.4c2.3,2,4.5,4.6,6.3,6.4c0.3,0.4,0.7,0.6,1,1l0,0l0.1,0.1
c0,0.1,0.2,0.1,0.2,0.2c0.7,0.7,1.4,1.5,2,2.3l2.8,3.6l21.7-12.7c-1.4-1.6-2.7-3-4-4.4c-0.8-0.9-1.6-1.7-2.5-2.5
C213.9,304.5,211.9,303.2,209.7,302.1L209.7,302.1z"/>
<path id="Shape-4" class="st14" d="M189.8,320.6c-2.5-3.3-5.4-6.3-8.6-8.9c-0.7,0-1.5,0.1-2.2,0.2c3.8,2.7,7.1,5.9,9.7,9.7
c-1.6,1.4-3.1,2.9-4.6,4.4c-3.2-4.3-6.5-8.5-10.7-11.8c-0.5,0.2-1,0.4-1.4,0.7c4.3,3.3,7.9,7.6,11.1,12.1
c-0.7,0.7-1.4,1.5-2,2.3l-0.6,0.7c-3.9-4.2-8.3-7.8-13.1-10.9c-0.3,0.4-0.5,0.8-0.6,1.3c4.7,3,9,6.6,12.7,10.7
c-0.7,0.8-1.3,1.6-1.9,2.4c-2-1.6-4.3-3-6.7-3.9c-1.8-0.7-3.6-1.7-5.5-2.4c0,0.5,0.1,1,0.2,1.6c1.6,0.6,3.2,1.5,4.7,2.2
c2.3,0.9,4.5,2.2,6.5,3.7c-1.2,1.7-2.5,3.2-3.6,5.1l0,0l0.1,0.3v0.1l0,0l0.1,0.1l0,0c0,0.1,0.1,0.1,0.2,0.1l0,0
c0.1,0,0.2,0,0.2,0.1l0,0c0.1,0,0.3,0,0.6-0.1l0.1,0c0.1-0.1,0.3-0.1,0.4,0l27.9-16.3l-5.9-8.5
C196.6,315.8,190.2,320.4,189.8,320.6z"/>
<path id="Shape-5" class="st15" d="M210.3,308.2c-1-1.3-2.1-2.6-3.2-3.9l-1.1,0.4c1.1,1.3,2.2,2.5,3.2,3.9
c-1.7,0.8-3.4,1.6-5.2,2.6l-0.3,0.1c-0.9-1.2-1.9-2.2-2.8-3.4c-0.2,0.3-0.4,0.6-0.6,0.9l0,0c0.8,0.9,1.7,2,2.5,2.9
c-1.6,0.9-3.3,1.9-4.9,2.9c-1.1-1.3-2.1-2.4-3.4-3.6c-0.4,0-0.9,0.2-1.4,0.2c1.3,1.4,3.7,4.1,3.7,4.1l5.9,8.5l1.6-0.9
l4.7-2.7l2.8-1.7l4.4-2.3L210.3,308.2z"/>
<path id="Shape-6" class="st14" d="M235.2,301.9c-1.4-4.9-3.6-9.6-6.4-13.9c-0.7-0.1-1.3-0.3-2-0.5c3,4.5,5.3,9.3,6.9,14.5
c-1.4,0.1-2.7,0.2-4,0.4c-1.9-5.7-4.7-11-8.3-15.8c-0.5,0-1.1,0.1-1.6,0.3c3.8,4.6,6.7,9.9,8.4,15.6c-1.3,0.2-2.7,0.4-4,0.8
c-2-5.1-4.9-9.8-8.5-13.9c-0.4,0.3-0.9,0.5-1.2,0.8c3.6,3.9,6.4,8.4,8.3,13.3c-1.1,0.3-2.2,0.6-3.3,1c-2.6-3.7-5.6-7-9-10
c-0.2,0.5-0.4,1.1-0.4,1.7c2.9,2.7,5.6,5.6,8,8.8l-7.6,2.9l5.9,8.2c0,0,23.2-13.9,23.1-14.1l0,0l-0.1-0.4l0,0L235.2,301.9z"
/>
</g>
<g id="flipper2">
<path id="Shape-7" class="st16" d="M194.2,355.3c-1.8,1.8-4.2,3.1-6,4.9c-1.4,1.1-2.5,2.3-3.5,3.8c-0.6,0.4-1.1,0.9-1.6,1.4
c-1.3,1.1-3.4,2.8-3.4,4.8s1.3,2.7,2,4.1c0.4,1,0.9,2,1.6,3c0.6,0.8,1.5,1.3,2.5,1.4c1.1,0,1.3-1,2.4-0.6
c0.4,0.2,1,1,1.4,1.3c0.9,0.6,2.1,0.8,3.1,0.5c2.9-0.5,4.2-3,7.1-3.2s4,0.8,5.8-0.5c2.9-2,5.6-4.3,8.1-6.8
c0.4-0.5,0.9-1.1,1.7-1.9c1.3-1.1,2.4-2.1,3.6-3.2c2.1-2.2,8.3-9.7,8.6-11.3L194.2,355.3z"/>
<path id="Shape-8" class="st12" d="M194.2,355.3c-1.8,1.8-4.2,3.1-6,4.9c-1.3,1.1-3.9,3.2-3.9,5s1.8,2.4,2.5,3.8
c0.4,1.1-0.2,2.2,0.5,3.4c0.6,0.8,1.5,1.3,2.5,1.4c1.1,0,2.5-1.6,3.5-1c0.4,0.2,0.5,1.2,0.9,1.5c0.9,0.6,2.1,0.8,3.1,0.5
c2.9-0.5,5-2.5,7.6-3.4c1.7,2.1,4,0.8,5.8-0.5c2.9-2,5.6-4.3,8.1-6.8c2.1-2.2,8.3-9.6,8.6-11.3L194.2,355.3z"/>
<path id="Shape-9" class="st14" d="M188.1,360.3c-1.3,1.1-2.5,2.4-3.5,3.8c-0.1,0-0.2,0.2-0.4,0.3c1.7,0,3.5-0.2,5.1-0.4
c-3.1,2.2-6.3,4.2-9.6,6c0.1,0.1-0.1,0.2,0,0.3c0,0.4,0.1,0.9,0.2,1.3c4.3-2.1,8.4-4.7,12.2-7.7c1.8-0.1,3.7-0.3,5.5-0.4
c-4.2,5.2-9.1,9.8-14.4,13.8l0.1,0.1c0.2,0.4,0.6,0.7,0.9,0.9c5.8-4.3,10.9-9.4,15.4-15.1c1.3-0.2,2.7-0.2,3.9-0.4
c-1.4,2.7-3,5.5-4.8,8.1c-2,2.9-4.1,6.2-6.6,9.1c0.1-0.1,0.3-0.1,0.5,0c0.8-0.2,1.6-0.4,2.3-0.9c1.9-2.4,3.5-4.9,5.1-7.3
c2-2.9,3.7-6,5.4-9.2l5.3-0.6c-2.2,5.3-5,10.4-8.5,15c0.6,0.1,1.2,0.1,1.7,0.1c3.5-4.7,6.3-9.8,8.4-15.2c0,0,6.5-0.3,9.6-0.7
c2.3-2.9,5.4-6.8,5.5-7.8l-33.1,2.5C192.4,357,188.1,360.3,188.1,360.3z"/>
</g>
<g id="fin2">
<path id="Shape-10" class="st16" d="M250.4,343.6c-1.3,1-3,1.8-4.3,2.9c-0.3,0.3-0.5,0.6-0.7,0.9c-0.9,1.4-0.3,2.7-0.5,4.4
c-0.2,0.2-0.6,0.4-0.8,0.6c-2.2,1.9-0.1,2.5-1.1,4.9c-0.7,1.5-1.2,3.4-0.2,4.7c0.4,0.8,0.6,1.8,0.6,2.7
c-0.3,1.6,0.3,1.6,1,2.7c0.6,0.8,0.4,1.4,0.8,2.6c0.4,1.3,1.4,2.2,2.7,2.5c2.2,0.5,2.4-1.1,3.6-2.2c1,1,0.4,5.2,2.9,1.5
c2.4-3.5,3.7-7.7,5-11.6c1-2.4,1.8-4.7,2.6-7c1-2.7,1.9-5.5,2.7-8.3c0.4-1.7,0.5-3.4,1-5L250.4,343.6z"/>
<path id="Shape-11" class="st12" d="M251,343.4c-1.3,1-3,1.8-4.3,2.9c-2.2,1.9-0.7,4.1-1.7,6.5c-0.7,1.5-0.6,1.8,0.4,3.1
c0.3,0.4,0.7,0.7,0.8,1.2c0.2,0.9-0.2,0.7-0.2,1.5c-0.3,1.7,0.3,1.6,1,2.7c0.6,0.8,0.4,1.4,0.8,2.6c0.4,1.3,1.4,2.2,2.7,2.5
c2.2,0.5,4.1,3.1,6.5-0.6s3.9-8.4,5.5-12.7c1-2.7,1.9-5.5,2.7-8.3c0.4-1.7,0.5-3.4,1-5L251,343.4z"/>
<path id="Shape-12" class="st14" d="M257.4,341.9l-1.5,0.4c0.1,0.1,0.1,0.3,0,0.5c-0.1,0.8-0.2,1.6-0.3,2.6
c-1.5,3.2-3.1,6.3-4.9,9.3c-2.1,3.4-4.4,7.7-7.7,10.6c0,0.6,0.2,1.1,0.6,1.5c3-2.5,5.1-6.3,7.2-9.4c1.3-2.2,2.6-4.4,3.8-6.5
c-1.6,7.4-4.4,14.5-8.3,21c0.4,0.3,0.9,0.6,1.4,0.7c4.4-7.4,7.4-15.5,9.1-24c0.3,8.3-1.2,16.5-4.4,24.2
c0.3,0.8,0.7,1,1.9-0.7c3.5-8.8,4.7-18.3,3.6-27.7l0,0c0.2-0.4,0.1-0.6-0.1-0.7c-0.1-0.3-0.1-0.6-0.2-0.9
C257.4,342.5,257.3,342.2,257.4,341.9z"/>
<path id="Shape-13" class="st17" d="M248,349.6c-1.3,1-3,1.8-4.3,2.9c-2.2,1.9-0.1,2.5-1.1,4.9c-0.7,1.5-1.2,3.4-0.2,4.7
c0.4,0.8,0.6,1.8,0.6,2.7c-0.3,1.6,0.3,1.6,1,2.7c0.6,0.8,0.4,1.4,0.8,2.6c0.4,1.3,1.4,2.2,2.7,2.5c2.2,0.5,2.4-1.1,3.6-2.2
c1,1,0.5,5.2,2.9,1.5s3.9-8.4,5.5-12.7c1-2.7,1.9-5.5,2.7-8.3c0.4-1.7,0.5-3.4,1-5L248,349.6z"/>
</g>
<g id="body">
<path id="Shape-14" class="st14" d="M169.3,347.4c3-6.2,8-12.9,12.6-18.4c6.8-8.1,13.9-13.3,23.1-18.2
c17.8-9.6,36.2-11.8,56-6.9c9.9,2.4,19.9,3.4,27.3,10.6c2,1.1-3.7,6.8-7.8,8.7c5.4,2.4,10.1-5.7,9.9-3.6
c-0.2,3.5-3.3,8.8-4.4,10c-9.2,10.9-22.7,23.3-37,26.3c-19.8,4.2-39.8,7.1-60,8.9c-2.8,0.3-9.6,0.7-9.6,0.7
c-3.9-0.5-3.6-2.9-6.8-4.5L169.3,347.4z"/>
<path id="Shape-15" class="st15" d="M270.4,340c-5.1-2.2-10.8-4.8-14.3-9.5c-5.8-7.8-4.5-18.8-1.7-27.9
c-4.7-0.8-9.4-1.2-14.2-1.2L240,302c-1.7,5.7-3,11.6-1.1,17.4c3.7,11.8,17.8,25.4,30.7,26.2c1.8-1.4,3.5-2.9,5.2-4.5
C273.3,340.9,271.8,340.5,270.4,340z"/>
<path id="Shape-16" class="st15" d="M204.1,311.2c-3.6,1.8-7,4-10.2,6.5c6.7,6.8,12.2,14.5,16.5,23
c2.6,5.2,7.3,13.1,9.4,20.6c5.2-0.8,10.5-1.7,15.7-2.6c0.6-0.7,1.1-1.6,1.5-2.4c8.1-19.9-21-49.8-21.4-50.1
C211.6,307.5,207.7,309.1,204.1,311.2z"/>
<g id="eye">
<path id="Shape-17" class="st15" d="M270.1,323c3.3-1.5,4.9-5.7,3.7-8.2c-0.9-2-3.5-3-7-2.1c-5.5,1.3-6.4,5.4-5.2,8.3
C262.4,323.2,266.7,324.6,270.1,323z"/>
<path id="Shape-18" class="st16" d="M266.4,319.4c0.7-0.9-0.2-2.7-1.8-2.7c0.2-0.4,0.6-0.5,0.9-0.8c3.6-2.6,6.4,1.1,4.5,3.8
c-1.4,1.9-3.9,1.6-4.5,0.5C265.9,320,266.2,319.7,266.4,319.4z"/>
<path id="Shape-19" class="st12" d="M258,314.7c1.4-3.6,5.2-5.4,8.8-5.7c1.3-0.2,1-2.1-0.1-2c-4.3,0.4-8.9,2.6-10.5,6.8
C255.8,315.1,257.7,315.9,258,314.7z"/>
</g>
</g>
<g id="fin">
<path id="Shape-20" class="st14" d="M250.2,342.5c0.1,0.1-8,8-10.3,9c-4.2,1.9-7.1,1.5-11-0.4c-0.7-0.3-1.9-0.2-2.7-0.7
c-1.1-0.6-1.9-1.4-2.6-2.4c-0.8-1.6-1.9-2.9-3.2-4c-1.6-1.4-2.4-3.4-3.3-5.4s-0.1-3.4,0.5-5.5c0.4-1.2,0.7-3,1.8-3.9
c0.6-0.5,1.6-0.6,2.4-1s1.2-1.4,2.2-1.6c1.6-0.3,3.8,1.3,5.1,1.9c3,1.3,5.9,2.7,8.8,4c3,1.5,6.3,2.4,9.6,2.6L250.2,342.5z"/>
<path id="Shape-21" class="st12" d="M251.1,342l-2.6-6.9c-0.1-0.3-0.4-0.6-0.7-0.6c-6-0.5-11.4-3.5-16.8-6
c-3.2-1.5-5.4-3.5-8.7-1.9c-3.8,1.9-5,3.8-6.1,7.9c-1.2,4.6,1.6,7.7,4.5,11.1s3.9,5.3,8.2,6.6c3.8,1.2,6.8,2.2,10.8,0.5
c2.6-1.2,4.7-3.4,6.9-5.3c1.5-1.3,3.5-2.9,4.6-4.5l0,0C251.4,342.6,251.4,342.2,251.1,342z M219.3,340.3
c-0.8-1.3-1.1-2.8-1.1-4.4c9.3,4.5,19.8,6.1,30,4.7c-0.2,0.2-0.4,0.3-0.6,0.5c-4.4,1.2-8.9,1.9-13.4,1.9
C229.7,342.9,224.1,342.3,219.3,340.3L219.3,340.3z M227.8,329c4,2.2,8.1,4,12.3,5.6l0,0c-2.7-0.1-5.5-0.7-8-1.7
c-3-1.2-5.9-2.8-8.5-4.6C225,328.1,226.5,328.4,227.8,329z M221.5,329.4c3.3,2.2,6.8,4.2,10.5,5.7c4.9,1.9,10.1,2.6,15.3,2.2
c0.3,0.4,0.5,0.9,0.7,1.4c-10.1,1.4-20.3-0.3-29.4-4.8c-0.1-0.1,0.1-0.2,0-0.3C219,331.9,220.1,330.4,221.5,329.4
L221.5,329.4z M224,346.3c-0.9-1.2-2-2.3-2.8-3.4c3.4,1.1,7,1.7,10.6,1.8c4.1,0.3,8.2,0,12.2-0.8c-1.3,1-2.6,1.8-4,2.6
c-3,1.6-6.2,3-9.4,4c-0.4-0.2-0.8-0.3-1.2-0.5c-0.4-0.2-0.8-0.1-1.2-0.3C225.7,348.9,225.7,348.4,224,346.3z M244.4,346.9
c-2.2,1.9-4.2,3.9-7.1,4.5c-1.3,0.3-2.6,0.3-3.8,0.1c2.9-0.9,5.6-2,8.2-3.5c2.5-1.5,4.8-3.2,7-5.1h0.1
C247.5,344.3,246,345.7,244.4,346.9L244.4,346.9z"/>
</g>
<g id="tail">
<path id="Shape-22" class="st12" d="M174.9,338.2c-1.3,2.2-5.4,2.4-5.4,2.4c-1.6,0.9-14.1-0.5-19.3,1.5
c-0.4-0.1-0.9-0.2-1.3-0.3c-1.5-0.4-2.8-0.3-3.9,0.7c-1.1,0.9-2.4,1.4-3.9,1.6c-3.3,0.3-4.9,1.7-5.3,5.1
c-0.2,1.9-2.1,3.3-2.6,5c-0.3,1.3,0.5,3.2,1.1,5s-0.3,4,0.6,5.2s0.6,2.1,1.7,2.9c2,1.6,2.1,1.4,2.6,3.5
c0.9,1.8,2.3,3.4,3.9,4.7c2.7,1.8,2,0.8,4.2,2.1c1.6,1.1,4-0.3,5.8-0.2c1.2,0.2,2.5-0.1,3.6-0.8c0.2-0.1,0.4-0.2,0.6-0.4
c1.6,0.2,2.3-0.9,4.2-1.6c4.6-1.6,8.8-4.1,12.4-7.5V367l5.7-1.6C179.6,365.5,187.1,359.3,174.9,338.2z"/>
<path id="Shape-23" class="st11" d="M174.2,338.3c-0.3,0.4-0.5,0.8-0.8,1.2c-0.9,0.8-3.9,1-3.9,1c-1.1,0.7-7.4,0.4-13.2,0.6
c13.9,7.3,15.5,19.4,11.2,30.9c2.4-1.3,4.5-2.9,6.5-4.8l-0.1-0.1l5.7-1.6c0.1-0.1,0.2-0.1,0.2-0.2c0,0,5.7-4.4,1.8-14.7
S174.2,338.3,174.2,338.3z"/>
<path id="Shape-24" class="st15" d="M181.1,359.6c0.6-6.1-3.3-13.9-8-19.9c-1.2,0.4-2.4,0.6-3.6,0.7c0,0-7.6,0.1-13.2,0.6
c1.9,1.7,3.8,3.5,5.5,5.5c-3.9,0.2-7.8,0.2-11.7,0c-3.6-0.3-8.4-0.2-12.5-1.2c-0.4,0.3-0.7,0.8-0.9,1.3
c4.2,1.3,9.1,1.2,13.2,1.4c4.4,0.3,8.7,0.3,13.1,0c0.2,0.3,0.4,0.5,0.6,0.8c-4.5,1.7-9.1,3-13.7,4c-3.8,0.9-7.7,1.4-11.6,1.6
c-1.5,0.1-3.1,0.3-4.8,0.4c0,0.4,0.1,0.9,0.2,1.3c0.3-0.1,0.4,0,0.7-0.1c4.7-0.1,9.4-0.6,14.1-1.5c5.5-1,10.8-2.5,16-4.5
c0.3,0.5,0.5,0.9,0.8,1.4c-9.6,4.7-19.9,8-30.4,11c0,0.5,0,1,0.1,1.5c10.6-3,21.1-6.2,30.9-11c0.3,0.7,0.6,1.3,0.9,2
c-9.2,5.3-18.7,9.8-28.6,13.7c0.4,0.3,0.7,0.7,0.9,1.2c9.7-3.8,19.1-8.4,28.1-13.6c0.3,1,0.6,1.9,0.8,2.9
c-3.5,2.2-7,4.4-10.5,6.3c-5.3,3-10.7,5.7-16.4,7.9c0.3,0.4,0.8,0.8,1.1,1.1c5.2-2.1,10.2-4.5,15-7.2
c3.8-2.1,7.5-4.2,11.1-6.7c0.2,1.3,0.2,2.5,0.2,3.8c-3,2.5-6.3,5-9.5,7.3c-2.9,2-5.9,4.3-9,6.2c1.2-0.1,2.4-0.6,3.3-0.6
c0.3,0,0.4,0,0.6,0.1c5.1-3.2,9.9-6.7,14.4-10.6c-0.2,1.8-0.6,3.5-1.1,5.2c2.4-1.4,4.7-3,6.8-4.9v-0.1l3.5-0.9
C179.6,364.3,180.8,362,181.1,359.6z"/>
<path id="Shape-25" class="st11" d="M156.1,375.7c-1.2-0.5-2.2-0.4-3.1-1.3c-0.7-0.6-0.5-1.8-1.7-2.1
c-0.9-0.2-1.8-0.4-2.8-0.3c-2.9-0.4-3.2-2.6-5.2-4.3s-3-0.5-2.9-4.4c0.1-1.4-2.1-4.7-1.9-5.8c0.3-1.3,0.3-2.7,0.7-3.9
c0.5-1,1-1.9,1.8-2.7c0.4-0.5,0.9-1,1.4-1.5c0.3-0.4-0.5-1-0.2-1.6c1.1-1.6,7.2-2.1,6-4.1c0.5-0.8,1.3-1.4,2.2-1.6l0,0
c-0.4-0.1-0.9-0.2-1.3-0.3c-1.5-0.4-2.8-0.3-3.9,0.7c-1.1,0.9-2.4,1.4-3.9,1.6c-3.3,0.3-4.9,1.7-5.3,5.1
c-0.2,1.9-2.1,3.3-2.6,5c-0.4,1.4,0.3,3.3,1,5s-0.3,4,0.6,5.2s0.6,2.1,1.7,2.9c2,1.6,2.1,1.4,2.6,3.5
c0.9,1.8,2.3,3.4,3.9,4.7c2.7,1.8,2,0.8,4.2,2.1c1.6,1.1,4-0.3,5.8-0.2c1.2,0.2,2.5-0.1,3.6-0.8c0.2-0.1,0.4-0.2,0.6-0.4
C157,376,156.5,375.8,156.1,375.7z"/>
</g>
</g>
</g>
</g>
<g id="heart">
<path id="Combined-Shape" class="st18" d="M381.4,304.5l0.3,4.5l-4.5,0.3l0.3,4.5l-4.5,0.3l0.3,4.5l-4.5,0.3l-4.5,0.3l0.1,2.3
l-0.1-2.3l4.5-0.3l0.3,4.5l-4.5,0.3l-0.1-2.3l0.1,2.3l0.3,4.5l-4.5,0.3l-0.3-4.5l-4.5,0.3l-0.3-4.5l-4.5,0.3l-0.3-4.5l-4.5,0.3
l-0.2-4.5l-4.5,0.3l-0.3-4.5l-0.3-4.5l-0.3-4.5l4.5-0.3l-0.3-4.5l4.5-0.3l4.5-0.3l4.5-0.3l0.3,4.5l4.5-0.3l-0.3-4.5l4.5-0.3
l4.5-0.3l4.5-0.3l0.3,4.5l4.5-0.3l0.3,4.5L381.4,304.5z"/>
<rect id="Rectangle-Copy-21" x="349.2" y="297.1" transform="matrix(0.9984 -5.704129e-02 5.704129e-02 0.9984 -16.5059 20.5346)" class="st15" width="4.5" height="4.5"/>
<rect id="Rectangle-Copy-22" x="344.9" y="301.9" transform="matrix(0.9984 -5.704129e-02 5.704129e-02 0.9984 -16.7853 20.2976)" class="st15" width="4.5" height="4.5"/>
</g>
<g id="Taco">
<path id="Fill-27" class="st19" d="M478.2,152.8c12-5.2-16.9-51.6-47.1-37.6c-30.7,14.3-21,67.3-21,67.3L478.2,152.8z"/>
<path id="Fill-29" class="st20" d="M378.9,172.4c0,0,69.2-10.6,81.1-13.9c15.9-4.3,18.7-11.2,17.2-19.8
c-2.6-14.1-13.2-10-19.4-15.6s-3.8-20.2-18.9-14.3c-12.7,4.9-17-4.5-23.4-2.5c-10,3.1-8.1,12.9-14.1,18.5
c-5.6,5.3-11.7,0.7-17.9,7c-5.2,5.3,0.4,19-6.8,25.4C365.1,167.8,378.9,172.5,378.9,172.4"/>
<path id="Fill-31" class="st21" d="M457.8,133.3c1.2-1,1.3-2.7,0.3-3.9c0,0,0,0,0,0l-2-2.3c-1-1.2-2.8-1.3-4-0.3c0,0,0,0,0,0
l-6.3,5.3c-1.2,1-1.3,2.8-0.3,3.9c0,0,0,0,0,0l2,2.3c1,1.2,2.8,1.3,4,0.3c0,0,0,0,0,0L457.8,133.3"/>
<path id="Fill-33" class="st22" d="M461.8,129.3c2-1.5,5.3,1.4,7,1.2s6.2-1.2,8.9,2.5c1.9,2.5,0.8,6.6,3.4,8.4
c4.5,3,1.6,9-2.6,11.2l0,0c-5.8,2-11.5-8.8-21.1-18.5C459,132.9,460.5,130.3,461.8,129.3"/>
<path id="Fill-35" class="st23" d="M450.6,128c2.4,1.7,4.6,3.7,6.6,5.8l-1,0.9l-1.1,0.9c-2-2.1-4.2-4.1-6.5-5.8L450.6,128z"/>
<path id="Fill-37" class="st24" d="M456.2,134.7c0.5-0.1,0.9-0.3,1.3-0.6c9.6,9.7,15.3,20.5,21.1,18.5l-0.6,0.3l-0.3,0.1
c-1.1,0.4-1.4,0.6-2,0.8c-5.7,1.8-11.3-8.7-20.6-18.2L456.2,134.7z"/>
<path id="Fill-39" class="st21" d="M445.8,120.7c1.5,0,2.8-1.2,2.9-2.7v-0.6c0-1.5-1.2-2.8-2.7-2.9l-4.3-0.1
c-1.5-0.1-2.8,1.2-2.9,2.7v0.6c-0.1,1.5,1.1,2.8,2.7,2.9c0,0,0,0,0,0L445.8,120.7"/>
<path id="Fill-41" class="st25" d="M405.2,125.5c1.9-0.9,3.8-1.7,5.7-2.3c17.8-6.2,30.3-2.1,39.7,4.8l-2,1.7
c-9.4-7.2-22.1-11.7-40.4-5.4C407.2,124.7,406.2,125.1,405.2,125.5"/>
<path id="Fill-43" class="st21" d="M383.4,158.6c0.2-1.5-0.9-2.9-2.5-3.1l-1.6-0.2c-1.5-0.2-2.9,0.9-3.1,2.5l-0.7,5.8
c-0.2,1.5,0.9,2.9,2.5,3.1c0,0,0,0,0,0l1.6,0.2c1.5,0.2,2.9-0.9,3.1-2.5L383.4,158.6"/>
<path id="Fill-45" class="st21" d="M406,127.7c1.5-0.1,2.7-1.5,2.6-3l-0.1-1.6c-0.1-1.5-1.4-2.7-3-2.6c0,0,0,0,0,0l-5.8,0.4
c-1.5,0.1-2.7,1.5-2.6,3l0.1,1.6c0.1,1.5,1.5,2.7,3,2.6L406,127.7"/>
<path id="Fill-47" class="st26" d="M476.2,153.6c-11.9,5.2-23.1-44.9-68-29.2c-35.8,12.4-31.6,45.4-26.7,61.6
c1.2,3.9,5.3,6.1,9.1,4.9c0.3-0.1,0.6-0.2,0.9-0.3L476.2,153.6z"/>
<path id="Fill-49" class="st26" d="M422.5,116.6c-0.3,0.1-0.6,0.2-1,0.1l-9.4-2.6c-0.8-0.2-1.2-1-1-1.7c0,0,0,0,0,0
c0.2-0.8,1-1.2,1.8-1l9.4,2.6c0.8,0.2,1.2,1,1,1.8c0,0,0,0,0,0C423.1,116.1,422.8,116.4,422.5,116.6"/>
<path id="Fill-51" class="st26" d="M379.4,140.3c-0.7,0.3-1.6,0-1.9-0.7c-0.3-0.6-0.1-1.4,0.5-1.7l8-5.5c0.6-0.5,1.5-0.3,2,0.3
c0.5,0.6,0.3,1.5-0.3,2c0,0-0.1,0.1-0.1,0.1l-8,5.5C379.5,140.2,379.5,140.2,379.4,140.3"/>
<path id="Fill-53" class="st26" d="M465.9,134.5c-0.7,0.3-1.6,0-1.9-0.7c-0.2-0.4-0.2-0.9,0.1-1.3l4.5-8.6
c0.4-0.7,1.2-1,1.9-0.6s1,1.2,0.6,1.9l0,0l-4.5,8.6C466.5,134.1,466.2,134.4,465.9,134.5"/>
<path id="Fill-55" class="st19" d="M390,163.2c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S390.9,162.8,390,163.2L390,163.2"
/>
<path id="Fill-57" class="st19" d="M408.4,158.7c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S409.3,158.3,408.4,158.7
L408.4,158.7"/>
<path id="Fill-59" class="st19" d="M416.5,171.5c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S417.4,171.1,416.5,171.5
L416.5,171.5"/>
<path id="Fill-61" class="st19" d="M445.4,160.8c-0.9,0.4-2-0.1-2.4-1c-0.4-0.9,0-1.9,0.9-2.3c0.9-0.4,2,0,2.4,0.9
S446.4,160.4,445.4,160.8L445.4,160.8"/>
<path id="Fill-63" class="st19" d="M429.5,133.4c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4l0,0c0.9-0.4,2,0,2.4,0.9
S430.4,133,429.5,133.4"/>
<path id="Fill-65" class="st19" d="M408.5,133.6c-0.9,0.3-2-0.2-2.3-1.1c-0.3-0.9,0.1-1.8,0.9-2.2c0.9-0.3,2,0.2,2.3,1.1
C409.7,132.2,409.4,133.2,408.5,133.6"/>
<path id="Fill-67" class="st19" d="M427.3,152.9c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S428.2,152.5,427.3,152.9
L427.3,152.9"/>
<path id="Fill-69" class="st19" d="M446.3,146.1c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4l0,0c0.9-0.4,2,0,2.4,0.9
S447.3,145.7,446.3,146.1"/>
<path id="Fill-71" class="st19" d="M392.7,178.1c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S393.6,177.7,392.7,178.1"/>
<path id="Fill-73" class="st19" d="M394.5,146.7c-0.9,0.4-2,0-2.4-0.9s0-2,0.9-2.4s2,0,2.4,0.9S395.4,146.3,394.5,146.7
L394.5,146.7"/>
<path id="Fill-81" class="st25" d="M457.2,133.8l0.3,0.3c-0.4,0.3-0.8,0.5-1.3,0.6L457.2,133.8"/>
</g>
<g id="Stack-Blocks">
<g id="Block">
<path id="Fill-4-Copy" class="st27" d="M71.2,258.2c-0.4-1.7,0.6-3.5,2.4-3.9c0,0,0,0,0,0l8.2-2.1c0.8-0.2,1.7-0.1,2.5,0.4
l5.6,3.3c0.8,0.4,1.6,0.6,2.5,0.3l10-2.6c0.8-0.2,1.6-0.7,2-1.5l3.3-5.6c0.4-0.7,1.2-1.3,2-1.5l48.1-12.3
c1.7-0.5,3.5,0.6,4,2.3c0,0,0,0,0,0l8,31.4c0.4,1.7-0.6,3.5-2.4,3.9c0,0,0,0,0,0l-48.1,12.3c-0.8,0.2-1.6,0.7-2,1.5l-3.3,5.6
c-0.4,0.7-1.2,1.3-2,1.5l-10,2.6c-0.8,0.2-1.7,0.1-2.5-0.4l-5.6-3.3c-0.7-0.4-1.6-0.6-2.5-0.4l-8.2,2.1c-1.7,0.5-3.5-0.5-4-2.3
c0,0,0,0,0,0L71.2,258.2z"/>
<path id="Fill-4" class="st5" d="M72.7,264.4c-0.4-1.7,0.6-3.5,2.4-4l8.2-2.1c0.8-0.2,1.7-0.1,2.5,0.3l5.6,3.3
c0.8,0.4,1.6,0.6,2.5,0.3l10-2.6c0.8-0.2,1.6-0.8,2-1.5l3.3-5.6c0.4-0.7,1.2-1.3,2-1.5l48.1-12.3c1.7-0.5,3.5,0.6,4,2.3
c0,0,0,0,0,0l8,31.4c0.4,1.7-0.6,3.5-2.4,4l-48.1,12.3c-0.8,0.2-1.6,0.8-2,1.5l-3.3,5.6c-0.4,0.7-1.2,1.3-2,1.5l-10,2.6
c-0.8,0.2-1.7,0.1-2.5-0.3l-5.6-3.3c-0.7-0.4-1.6-0.6-2.5-0.4l-8.2,2.1c-1.7,0.5-3.5-0.6-4-2.3c0,0,0,0,0,0L72.7,264.4z"/>
</g>
<g id="Placing">
<g id="Hand-2">
<g id="Fill-1-2">
<path id="path-7-3" class="st28" d="M71.1,240.4c6.7-11.2-2.3-11.6-6.1-8.5c-5.7,4.6-6.9,11.2-9.6,12.6
c-5.2,2.7-11-5.9-9.8-10.3c1.3-5.2,4.2-11.1,6-12.1c2.5-1.3,5.7,1.2,10.3,3.7c4,2.2,10.4-1.8,5-5.6
c-7.7-5.3-14.8-8.5-18.2-7.1c-2.6,1.1-5.2,3.2-7.7,7.6c-3.2,5.6-4.2,8.4-5,8.9c-1.9,1.2-4-11.2-4.5-22.9
c-0.3-8.1-9.3-7.4-8.8,1.4c0.9,16.5,6.2,28.7,4.8,29.2c-0.9,0.4-6.3-7.9-10.3-21.6c-1.8-6.1-10.6-4.1-7.5,4.3
c4,11.1,10.8,22.7,9.3,23.8c-1,0.8-8.1-9.5-11.3-13.6c-5-6.4-10.1-0.4-6.7,4c13.3,17.5,14.9,18.1,19.7,29.6
c6.8,16.3,36.4,13.7,41-4.4C64.9,247,67.5,246.5,71.1,240.4z"/>
</g>
<g>
<path id="Fill-1-Copy" class="st8" d="M69.2,238c6.7-11.2-2.3-11.6-6.1-8.5c-5.7,4.6-6.9,11.2-9.6,12.6
c-5.2,2.7-9.3-4.4-8.2-8.8c1.3-5.2,3.2-11.2,5-12.1c2.5-1.3,5-0.2,9.6,2.3c4,2.2,10.4-1.8,5-5.6c-7.6-5.3-14.8-8.5-18.1-7.2
c-2.6,1.1-5.2,3.2-7.7,7.6c-3.2,5.6-2.3,5.9-3.2,6.4c-1.9,1.2-0.8-10.8-2.1-22.5c-0.3-2.4-8.9-5.1-8.4,3.6
c0.3,5.1,2,9.5,2.8,13.6c1.7,9.1,2.5,15.7-0.6,18c-3.2-5.3-6.1-12.5-8.7-21.6c-1.8-6.1-10-4.9-8,0.9s4.4,7.9,6.5,13.2
c1.9,4.9,4,12.2,1.8,13.8c-4.6-6.7-8-11.4-10.1-14.1c-5-6.4-9.5-1.1-6.1,3.4c13.3,17.5,18.2,16,23,27.5
c6.8,16.3,32.1,13.8,36.6-4.3C65.4,243.7,65.6,244,69.2,238z"/>
</g>
</g>
<path id="Fill-4-Copy-2" class="st29" d="M64.7,241.1l-13.4-29.5c-0.7-1.6,0-3.6,1.6-4.3l7.7-3.5c0.8-0.4,1.7-0.4,2.5-0.1
l6.1,2.3c0.8,0.3,1.7,0.3,2.5-0.1l9.4-4.3c0.8-0.4,1.4-1,1.7-1.8l2.3-6.1c0.3-0.8,0.9-1.5,1.7-1.8l74.4-33.7
c1.6-0.8,3.6,0,4.3,1.6c0,0,0,0,0,0l13.4,29.5c0.7,1.6,0,3.6-1.6,4.3L103,227.3c-0.8,0.4-1.4,1-1.7,1.8l-2.3,6.1
c-0.3,0.8-0.9,1.5-1.7,1.8l-9.4,4.3c-0.8,0.4-1.7,0.4-2.5,0.1l-6.1-2.3c-0.8-0.3-1.7-0.3-2.5,0.1l-7.7,3.5
C67.4,243.4,65.5,242.7,64.7,241.1"/>
<path id="Fill-4-2" class="st10" d="M67.3,246.7l-13.4-29.5c-0.7-1.6,0-3.6,1.6-4.3c0,0,0,0,0,0l7.7-3.5
c0.8-0.4,1.7-0.4,2.5-0.1l6.1,2.3c0.8,0.3,1.7,0.3,2.5-0.1l9.4-4.3c0.8-0.4,1.4-1,1.7-1.8l2.3-6.1c0.3-0.8,0.9-1.5,1.7-1.8
l74.4-33.7c1.6-0.8,3.6,0,4.3,1.6c0,0,0,0,0,0l13.4,29.5c0.7,1.6,0,3.6-1.6,4.3c0,0,0,0,0,0l-74.4,33.7c-0.8,0.4-1.4,1-1.7,1.8
l-2.3,6.1c-0.3,0.8-0.9,1.5-1.7,1.8l-9.4,4.3c-0.8,0.4-1.7,0.4-2.5,0.1l-6.1-2.3c-0.8-0.3-1.7-0.3-2.5,0.1l-7.7,3.5
C70,249.1,68.1,248.4,67.3,246.7C67.3,246.7,67.3,246.7,67.3,246.7"/>
<g id="Finger">
<g id="Fill-6">
<path id="path-9-3" class="st28" d="M51.5,222.1c2.5-1.3,6.1,1.2,10.8,3.6c4,2.1,10.5-1.9,5-5.6c-7.5-5.2-15.1-8.4-18.4-7
L51.5,222.1z"/>
</g>
<g>
<path id="Fill-6-2" class="st8" d="M50.8,220.8c3-1,8,3.5,12.7,5.9c4,2.1,10.9-3.2,5.5-6.9c-7.6-5.2-18.7-10.4-22-9.1
L50.8,220.8z"/>
</g>
</g>
</g>
</g>
<path class="st30" d="M76.7,316.1c-1.1,0.3-1.9,1.2-2.2,2.3l-0.6,2.5c-0.2,0.6-0.8,1-1.4,0.9c-0.4-0.1-0.7-0.4-0.9-0.8l-0.7-2.4
c-0.3-1.1-1.2-1.9-2.3-2.2l-2.5-0.6c-0.6-0.2-1-0.8-0.9-1.4c0.1-0.4,0.4-0.7,0.8-0.9l2.5-0.7c1.1-0.3,1.9-1.2,2.2-2.3l0.6-2.5
c0.2-0.6,0.8-1,1.4-0.9c0.4,0.1,0.7,0.4,0.8,0.8l0.7,2.5c0.3,1.1,1.2,1.9,2.3,2.2l2.5,0.6c0.6,0.2,1,0.8,0.9,1.4
c-0.1,0.4-0.4,0.7-0.8,0.8L76.7,316.1z"/>
<path class="st31" d="M448.4,192.4c-1.9,0.5-3.5,1.9-4,3.9l-1.3,4.3c-0.3,1.1-1.5,1.8-2.6,1.4c-0.7-0.2-1.3-0.8-1.5-1.5l-1.1-4.4
c-0.5-1.9-1.9-3.5-3.8-4.1l-4.4-1.3c-1.1-0.3-1.8-1.5-1.4-2.6c0.2-0.7,0.8-1.3,1.5-1.5l4.4-1.1c1.9-0.5,3.5-1.9,4.1-3.9l1.3-4.4
c0.3-1.1,1.5-1.7,2.6-1.4c0.7,0.2,1.3,0.8,1.4,1.5l1.1,4.4c0.5,1.9,2,3.4,3.9,4l4.4,1.3c1.1,0.3,1.8,1.5,1.4,2.6
c-0.2,0.7-0.8,1.3-1.5,1.5L448.4,192.4z"/>
<path class="st31" d="M390.2,102.3c0.3,1.1,1.2,2,2.3,2.3l2.5,0.7c0.6,0.2,1,0.9,0.8,1.5c-0.1,0.4-0.4,0.7-0.8,0.8l-2.5,0.7
c-1.1,0.3-2,1.2-2.3,2.3l-0.7,2.5c-0.2,0.6-0.9,1-1.5,0.8c-0.4-0.1-0.7-0.4-0.8-0.8l-0.7-2.5c-0.3-1.1-1.2-2-2.3-2.3l-2.5-0.7
c-0.6-0.2-1-0.9-0.8-1.5c0.1-0.4,0.4-0.7,0.8-0.8l2.5-0.7c1.1-0.3,2-1.2,2.3-2.3l0.7-2.5c0.2-0.6,0.9-1,1.5-0.8
c0.4,0.1,0.7,0.4,0.8,0.8L390.2,102.3z"/>
<path class="st30" d="M167.7,302.5c-1.5,0.5-2.6,1.7-3,3.2l-0.8,3.5c-0.2,0.9-1.1,1.4-2,1.2c-0.6-0.1-1-0.6-1.2-1.1l-1-3.4
c-0.5-1.5-1.7-2.6-3.2-3L153,302c-0.9-0.2-1.4-1.1-1.2-2c0.1-0.6,0.6-1,1.1-1.2l3.4-1c1.5-0.5,2.6-1.7,3-3.2l0.8-3.5
c0.2-0.9,1.1-1.4,2-1.2c0.6,0.1,1,0.6,1.2,1.1l1,3.4c0.5,1.5,1.7,2.6,3.2,3l3.5,0.8c0.9,0.2,1.4,1.1,1.2,2
c-0.1,0.6-0.6,1-1.1,1.2L167.7,302.5z"/>
<path class="st31" d="M219.6,111.5c-1.7,0.4-3.1,1.7-3.6,3.4l-1.2,3.9c-0.3,1-1.3,1.6-2.3,1.3c-0.6-0.2-1.1-0.7-1.3-1.4l-0.9-3.9
c-0.4-1.7-1.7-3.1-3.4-3.6l-3.9-1.2c-1-0.3-1.6-1.3-1.3-2.3c0.2-0.6,0.7-1.1,1.4-1.3l3.9-1c1.7-0.4,3.1-1.7,3.6-3.4l1.2-3.9
c0.3-1,1.3-1.6,2.3-1.3c0.6,0.2,1.1,0.7,1.3,1.4l0.9,4c0.4,1.7,1.7,3.1,3.4,3.6l3.9,1.2c1,0.3,1.6,1.3,1.3,2.3
c-0.2,0.6-0.7,1.1-1.4,1.3L219.6,111.5z"/>
<path class="st30" d="M51.4,304.1c-1.9,0.6-3.3,2.1-3.8,4l-1.1,4.4c-0.3,1.1-1.4,1.8-2.5,1.5c-0.7-0.2-1.3-0.7-1.5-1.4l-1.3-4.3
c-0.6-1.9-2.1-3.3-4-3.8l-4.4-1.1c-1.1-0.3-1.8-1.4-1.5-2.5c0.2-0.7,0.7-1.3,1.4-1.5l4.3-1.3c1.9-0.6,3.3-2.1,3.8-4l1-4.4
c0.3-1.1,1.4-1.8,2.5-1.5c0.7,0.2,1.3,0.7,1.5,1.4l1.3,4.3c0.6,1.9,2.1,3.3,4,3.8l4.4,1c1.1,0.3,1.8,1.4,1.5,2.5
c-0.2,0.7-0.7,1.3-1.4,1.5L51.4,304.1z"/>
<path class="st30" d="M169.4,9.1c-1.1,0.3-1.9,1.2-2.2,2.3l-0.6,2.5c-0.2,0.6-0.8,1-1.4,0.9c-0.4-0.1-0.7-0.4-0.8-0.8l-0.7-2.5
c-0.3-1.1-1.2-1.9-2.3-2.2l-2.5-0.6c-0.6-0.2-1-0.8-0.9-1.4c0.1-0.4,0.4-0.7,0.8-0.8l2.4-0.7c1.1-0.3,1.9-1.2,2.2-2.3l0.6-2.5
c0.2-0.6,0.8-1,1.4-0.9c0.4,0.1,0.7,0.4,0.8,0.8l0.7,2.4c0.3,1.1,1.2,1.9,2.3,2.2l2.5,0.6c0.6,0.2,1,0.8,0.9,1.4
c-0.1,0.4-0.4,0.7-0.8,0.9L169.4,9.1z"/>
<path class="st30" d="M230.4,40.7c-1.5,0.5-2.6,1.7-3,3.2l-0.8,3.5c-0.2,0.9-1.1,1.4-2,1.2c-0.6-0.1-1-0.6-1.2-1.1l-1-3.4
c-0.5-1.5-1.7-2.6-3.2-3l-3.5-0.8c-0.9-0.2-1.4-1.1-1.2-2c0.1-0.6,0.6-1,1.1-1.2l3.4-1c1.5-0.5,2.6-1.7,3-3.2l0.8-3.5
c0.2-0.9,1.1-1.4,2-1.2c0.6,0.1,1,0.6,1.2,1.1l1,3.4c0.5,1.5,1.7,2.6,3.2,3l3.5,0.8c0.9,0.2,1.4,1.1,1.2,2
c-0.1,0.6-0.6,1-1.1,1.2L230.4,40.7z"/>
<path class="st31" d="M243.4,240.8c-2.3,0.6-4.1,2.3-4.8,4.6l-1.5,5.1c-0.4,1.3-1.8,2.1-3.1,1.7c-0.8-0.3-1.5-0.9-1.7-1.8
l-1.3-5.2c-0.6-2.3-2.3-4.1-4.6-4.8l-5.1-1.5c-1.3-0.4-2.1-1.8-1.7-3.1c0.3-0.8,0.9-1.5,1.8-1.7l5.2-1.3c2.3-0.5,4.1-2.3,4.8-4.6
l1.6-5.2c0.4-1.3,1.8-2.1,3.1-1.7c0.8,0.3,1.5,0.9,1.7,1.8l1.3,5.2c0.6,2.3,2.3,4.1,4.6,4.8l5.1,1.5c1.3,0.4,2.1,1.8,1.7,3.1
c-0.3,0.8-0.9,1.5-1.8,1.7L243.4,240.8z"/>
<path class="st31" d="M329.5,112.4c0.3,1.1,1.2,2,2.3,2.3l2.5,0.7c0.6,0.2,1,0.9,0.8,1.5c-0.1,0.4-0.4,0.7-0.8,0.8l-2.5,0.7
c-1.1,0.3-2,1.2-2.3,2.3l-0.7,2.5c-0.2,0.6-0.9,1-1.5,0.8c-0.4-0.1-0.7-0.4-0.8-0.8l-0.7-2.5c-0.3-1.1-1.2-2-2.3-2.3l-2.5-0.7
c-0.6-0.2-1-0.9-0.8-1.5c0.1-0.4,0.4-0.7,0.8-0.8l2.5-0.7c1.1-0.3,2-1.2,2.3-2.3l0.7-2.5c0.2-0.6,0.9-1,1.5-0.8
c0.4,0.1,0.7,0.4,0.8,0.8L329.5,112.4z"/>
<path class="st30" d="M399.6,290.7c-1.1,0.3-1.9,1.2-2.2,2.3l-0.6,2.5c-0.2,0.6-0.8,1-1.4,0.9c-0.4-0.1-0.7-0.4-0.8-0.8l-0.7-2.5
c-0.3-1.1-1.2-1.9-2.3-2.2l-2.5-0.6c-0.6-0.2-1-0.8-0.8-1.5c0.1-0.4,0.4-0.7,0.8-0.8l2.5-0.7c1.1-0.3,1.9-1.2,2.1-2.3l0.6-2.5
c0.2-0.6,0.8-1,1.4-0.9c0.4,0.1,0.7,0.4,0.8,0.8l0.7,2.5c0.3,1.1,1.2,1.9,2.3,2.2l2.5,0.6c0.6,0.2,1,0.8,0.9,1.4
c-0.1,0.4-0.4,0.7-0.8,0.8L399.6,290.7z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -74,23 +74,73 @@ describe('Compose Comment test', () => {
expect(component.find('FlexRow.compose-error-row').exists()).toEqual(false); expect(component.find('FlexRow.compose-error-row').exists()).toEqual(false);
}); });
test('Comment Status shows when state is REJECTED_MUTE ', () => { test('Comment Status shows when mute expiration in the future ', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const component = getComposeCommentWrapper({}); const component = getComposeCommentWrapper({});
const commentInstance = component.instance(); const commentInstance = component.instance();
commentInstance.setState({status: 'REJECTED_MUTE'}); commentInstance.setState({muteExpiresAt: 100});
component.update(); component.update();
expect(component.find('FlexRow.compose-comment').exists()).toEqual(true); expect(component.find('FlexRow.compose-comment').exists()).toEqual(true);
expect(component.find('MuteModal').exists()).toEqual(false); expect(component.find('MuteModal').exists()).toEqual(false);
expect(component.find('CommentingStatus').exists()).toEqual(true); expect(component.find('CommentingStatus').exists()).toEqual(true);
global.Date.now = realDateNow;
});
test('Comment Status shows when user just submitted a comment that got them muted', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const component = getComposeCommentWrapper({});
const commentInstance = component.instance();
commentInstance.setState({
status: 'REJECTED_MUTE',
muteExpiresAt: 100
});
component.update();
expect(component.find('FlexRow.compose-comment').exists()).toEqual(true);
expect(component.find('MuteModal').exists()).toEqual(false);
expect(component.find('CommentingStatus').exists()).toEqual(true);
// Compose box is disabled
expect(component.find('InplaceInput.compose-input').exists()).toEqual(true);
expect(component.find('InplaceInput.compose-input').props().disabled).toBe(true);
global.Date.now = realDateNow;
});
test('Comment Error does not show for mutes', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const component = getComposeCommentWrapper({});
const commentInstance = component.instance();
commentInstance.setState({
status: 'REJECTED_MUTE',
error: 'a mute error'
});
component.update();
expect(component.find('FlexRow.compose-error-row').exists()).toEqual(false);
expect(component.find('FlexRow.compose-comment').exists()).toEqual(true);
global.Date.now = realDateNow;
});
test('Comment Error does show for non-mute errors', () => {
const component = getComposeCommentWrapper({});
const commentInstance = component.instance();
commentInstance.setState({
error: 'some error',
status: 'FLOOD'
});
component.update();
expect(component.find('FlexRow.compose-error-row').exists()).toEqual(true);
expect(component.find('FlexRow.compose-comment').exists()).toEqual(true);
expect(component.find('InplaceInput.compose-input').exists()).toEqual(true);
expect(component.find('InplaceInput.compose-input').props().disabled).toBe(false);
}); });
test('Mute Modal shows when muteOpen is true ', () => { test('Mute Modal shows when muteOpen is true ', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const component = getComposeCommentWrapper({}); const component = getComposeCommentWrapper({});
const commentInstance = component.instance(); const commentInstance = component.instance();
commentInstance.setState({muteOpen: true}); commentInstance.setState({muteOpen: true});
component.update(); component.update();
expect(component.find('FlexRow.compose-comment').exists()).toEqual(true);
expect(component.find('MuteModal').exists()).toEqual(true); expect(component.find('MuteModal').exists()).toEqual(true);
global.Date.now = realDateNow;
}); });
test('shouldShowMuteModal is false when list is undefined ', () => { test('shouldShowMuteModal is false when list is undefined ', () => {
@ -138,4 +188,32 @@ describe('Compose Comment test', () => {
global.Date.now = realDateNow; global.Date.now = realDateNow;
}); });
test('isMuted: expiration is in the future ', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0; // Set "now" to 0 for easier testing.
const commentInstance = getComposeCommentWrapper({}).instance();
commentInstance.setState({muteExpiresAt: 100});
expect(commentInstance.isMuted()).toBe(true);
global.Date.now = realDateNow;
});
test('isMuted: expiration is in the past ', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const commentInstance = getComposeCommentWrapper({}).instance();
commentInstance.setState({muteExpiresAt: -100});
expect(commentInstance.isMuted()).toBe(false);
global.Date.now = realDateNow;
});
test('isMuted: expiration is not set ', () => {
const realDateNow = Date.now.bind(global.Date);
global.Date.now = () => 0;
const commentInstance = getComposeCommentWrapper({}).instance();
expect(commentInstance.isMuted()).toBe(false);
global.Date.now = realDateNow;
});
}); });