diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..d1ae382 Binary files /dev/null and b/.DS_Store differ diff --git a/adminer/adminer.css b/adminer/adminer.css new file mode 100644 index 0000000..77bd4de --- /dev/null +++ b/adminer/adminer.css @@ -0,0 +1,1072 @@ +/* +╦ ╦╦ ╦╔╦╗╦═╗╔═╗ +╠═╣╚╦╝ ║║╠╦╝╠═╣ +╩ ╩ ╩ ═╩╝╩╚═╩ ╩ +Material Design Dark Theme for Adminer +Made with ♥ from Niyko +https://github.com/Niyko/Hydra-Dark-Theme-for-Adminer +*/ + +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap'); +@import url('https://fonts.googleapis.com/icon?family=Material+Icons'); +html { + background-color: #221f2e; +} +body { + display: flex; + overflow: hidden; + height: 100vh; + width: auto; + background: #FAFAFA; + font-family: 'Montserrat', sans-serif; + text-rendering: optimizeLegibility !important; + overflow: auto; +} +* { + outline-color: #7962f2; +} +::selection { + background: #4ca0ea; + color: #fff +} +::-moz-selection { + background: #4ca0ea; + color: #fff +} +#lang { + position: fixed; + top: auto; + bottom: 0; + z-index: 3; + padding: .8em 1em; + width: 245px; + border-top: 1px solid #ccc; + background: #fff +} +#lang select { + width: 66% +} +#menu { + position: fixed; + top: 0; + z-index: 2; + display: flex; + margin: 0; + padding: 0; + height: 100%; + background: #fff; + box-shadow: 0 85px 5px 0 rgba(0, 0, 0, 0.14), 0 85px 10px 0 rgba(0, 0, 0, 0.12), 0 85px 4px -1px rgba(0, 0, 0, 0.2); + flex-flow: column +} +#menu h1 { + position: fixed; + right: 60px; + border-bottom: none; + font-size: 12px; + background: transparent; + padding: 4px 0 +} +#menu select { + width: 86% +} +#menu #logins { + padding: 10px 14px 0; + height: 100% +} +#menu #logins:before { + content: 'Saved Logins'; + display: block; + font-size: 1.2em; + margin: 84px 0 20px +} +#menu #logins a { + display: inline-block; + margin: 4px 0; + padding: 6px 12px; + height: 36px; + width: 86%; + border-radius: 2px; + color: #fff; + background: #7962f2; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + text-decoration: none; + transition: all .2s; + border-radius: 2px; + text-align: center; + font-weight: bold; + font-size: 13px; + line-height: 30px +} +#menu #logins a:hover { + background: #4a39a4 +} +#menu.active { + background: #7962f2 !important; + color: #fff !important; + font-weight: auto +} +#menu .links a { + display: inline-block; + margin: 4px 2px; + padding: 5px; + width: 42%; + border-radius: 2px; + background: #fff; + color: #7962f2; + text-align: center; + text-transform: uppercase; + font-weight: bold; + font-size: 13px; + line-height: 24px; + transition: all .2s +} +#menu .links a:hover { + background: #7962f2; + color: #fff; + text-decoration: none; + font-weight: auto +} +a #h1 { + color: #AFB3B5 +} +.version { + color: #AFB3B5 +} +#tables { + overflow-x: hidden !important; + margin-bottom: 47px; + padding: 9px 12px 0 6px; + flex: 1 +} +#tables .select:hover { + background: #7962f2; + color: #fff; + text-decoration: none; + font-weight: auto +} +#tables a { + display: inline-block; + overflow: hidden; + padding: 6px 0 6px 8px; + width: 175px; + border-radius: 2px; + text-overflow: ellipsis; + transition: all .2s; + color: #000 +} +#tables a:hover { + background: #e4e5e6; + color: #000; + text-decoration: none +} +#tables a.select { + position: relative; + float: right; + padding: 5px; + width: auto; + border-radius: 2px; + background: #fff; + color: #7962f2; + text-align: center; + text-transform: uppercase; + font-weight: bold; + font-size: 13px; + line-height: 18px +} +#content { + display: flex; + flex-direction: column; + overflow-x: auto; + margin: 83px 0 0 19em; + padding: 17px 27px 100px; + min-width: 600px; + width: 100% +} +#content h2 { + position: fixed; + top: 0; + z-index: 1; + margin-left: -28px; + padding-top: 0; + padding-left: 30px; + width: 100%; + height: 65px; + background: #263238; + color: #AFB3B5; + line-height: 104px +} +#breadcrumb { + position: fixed; + z-index: 2; + padding-top: 10px; + padding-left: 20px; + background: #2f2b3f; + color: #263238 +} +#breadcrumb a { + color: #7962f2; + font-size: 13px; + line-height: 18px; + transition: all .2s +} +#breadcrumb a:hover { + color: #4a39a4; + text-decoration: none +} +#logout { + position: fixed; + top: 21px; + right: 50px; + z-index: 2; + margin: 4px 2px; + padding: 5px; + min-width: 88px; + outline: none; + border: none; + border-radius: 2px; + background: #7962f2; + box-shadow: 0 1px 4px rgba(88, 88, 88, 0.41), 0 2px 3px rgba(88, 88, 88, 0.26); + color: #fff; + text-align: center; + text-transform: uppercase; + font-weight: bold; + font-size: 13px; + line-height: 24px; + transition: all .2s +} +#logout:hover { + background: #4a39a4 +} +select { + margin: 0; + padding: 3px; + border: none; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 2px; + color: #666; + background: #fff; + cursor: pointer +} +a, +a:link { + color: #7962f2; + transition: all .2s +} +a:hover, +a:link:hover { + color: #4a39a4; + text-decoration: none +} +input:not([type]), +input[type=number], +input[type=password], +input[type=search], +input[type=text] { + padding: 8px; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 2px; + font-size: 15px +} +input[type=search]:first-child { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12) +} +input[type=submit] { + padding: 0 16px; + min-width: 64px; + height: 36px; + border: none; + border-radius: 2px; + background: #7962f2; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + color: #fff; + text-transform: uppercase; + font-size: 14px; + cursor: pointer; + transition: all .2s +} +input[type=submit]:hover { + background: #4a39a4 +} +input[type=button][disabled], +input[type=submit][disabled] { + background: #AFB3B5; + color: #504c4a; + cursor: no-drop +} +div input[name=delete], +div input[name=drop], +div input[name=truncate], +input[value=Kill] { + background: repeating-linear-gradient(-55deg, #7962f2, #7962f2 5px, #4ca0ea 5px, #4ca0ea 10px); + transition: all .2s +} +div input[name=delete]:hover, +div input[name=drop]:hover, +div input[name=truncate]:hover, +input[value=Kill]:hover { + background: repeating-linear-gradient(-55deg, #4a39a4, #4a39a4 5px, #7962f2 5px, #7962f2 10px) +} +input[type=checkbox] { + display: inline-block; + padding-left: 25px; + height: 20px; + outline: 0; + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjIwcHQiCiAgIGhlaWdodD0iNDBwdCIKICAgdmlld0JveD0iMCAwIDIwIDQwIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcyIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjUgcjEwMDQwIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjaGVjay5zdmciPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTE5Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTciCiAgICAgaWQ9Im5hbWVkdmlldzE1IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIxNiIKICAgICBpbmtzY2FwZTpjeD0iNDMuNzAyNjQ2IgogICAgIGlua3NjYXBlOmN5PSIzMS45NTE3ODMiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjE5MTIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMiIgLz4KICA8ZwogICAgIHN0eWxlPSJmaWxsOiMwMDAwMDAiCiAgICAgaWQ9ImczMDY4IgogICAgIHRyYW5zZm9ybT0ic2NhbGUoMC44LDAuOCkiPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzA1OCIKICAgICAgIGQ9Ik0gMTksNSBWIDE5IEggNSBWIDUgSCAxOSBNIDE5LDMgSCA1IEMgMy45LDMgMywzLjkgMyw1IHYgMTQgYyAwLDEuMSAwLjksMiAyLDIgaCAxNCBjIDEuMSwwIDIsLTAuOSAyLC0yIFYgNSBDIDIxLDMuOSAyMC4xLDMgMTksMyB6IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMwNjAiCiAgICAgICBkPSJNIDAsMCBIIDI0IFYgMjQgSCAwIHoiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZSIgLz4KICA8L2c+CiAgPGcKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwIgogICAgIGlkPSJnMzA4NCIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjgsMCwwLDAuOCwwLDIwKSI+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDc0IgogICAgICAgZD0iTSAwLDAgSCAyNCBWIDI0IEggMCB6IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDc2IgogICAgICAgZD0iTSAxOSwzIEggNSBDIDMuODksMyAzLDMuOSAzLDUgdiAxNCBjIDAsMS4xIDAuODksMiAyLDIgaCAxNCBjIDEuMTEsMCAyLC0wLjkgMiwtMiBWIDUgQyAyMSwzLjkgMjAuMTEsMyAxOSwzIHogTSAxMCwxNyA1LDEyIDYuNDEsMTAuNTkgMTAsMTQuMTcgMTcuNTksNi41OCAxOSw4IDEwLDE3IHoiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg=="); + background-position: 0 0; + background-size: 20px; + background-repeat: no-repeat; + vertical-align: middle; + font-size: 20px; + line-height: 20px; + cursor: pointer; + -webkit-appearance: none; + -webkit-user-select: none; + user-select: none +} +input[type=checkbox]:checked { + background-position: 0 -20px +} +input[type=radio] { + display: inline-block; + padding-left: 25px; + height: 20px; + outline: 0; + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjIwcHQiCiAgIGhlaWdodD0iNDBwdCIKICAgdmlld0JveD0iMCAwIDIwIDQwIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcyIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjUgcjEwMDQwIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjaGVjay5zdmciPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTE5Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTciCiAgICAgaWQ9Im5hbWVkdmlldzE1IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyMi42Mjc0MTciCiAgICAgaW5rc2NhcGU6Y3g9IjguNzkxODMzNyIKICAgICBpbmtzY2FwZTpjeT0iMTEuODUxMjkzIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcyIiAvPgogIDxnCiAgICAgaWQ9ImczMDE1IgogICAgIHRyYW5zZm9ybT0ic2NhbGUoMC44LDAuOCkiPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzAwNSIKICAgICAgIGQ9Ik0gMTIsMiBDIDYuNDgsMiAyLDYuNDggMiwxMiAyLDE3LjUyIDYuNDgsMjIgMTIsMjIgMTcuNTIsMjIgMjIsMTcuNTIgMjIsMTIgMjIsNi40OCAxNy41MiwyIDEyLDIgeiBtIDAsMTggQyA3LjU4LDIwIDQsMTYuNDIgNCwxMiA0LDcuNTggNy41OCw0IDEyLDQgYyA0LjQyLDAgOCwzLjU4IDgsOCAwLDQuNDIgLTMuNTgsOCAtOCw4IHoiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzAwNyIKICAgICAgIGQ9Ik0gMCwwIEggMjQgViAyNCBIIDAgeiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzdHlsZT0iZmlsbDpub25lIiAvPgogIDwvZz4KICA8ZwogICAgIGlkPSJnMzA0MiIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjgsMCwwLDAuOCwwLDIwLjgpIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMwMzIiCiAgICAgICBkPSJtIDEyLDcgYyAtMi43NiwwIC01LDIuMjQgLTUsNSAwLDIuNzYgMi4yNCw1IDUsNSAyLjc2LDAgNSwtMi4yNCA1LC01IEMgMTcsOS4yNCAxNC43Niw3IDEyLDcgeiBNIDEyLDIgQyA2LjQ4LDIgMiw2LjQ4IDIsMTIgMiwxNy41MiA2LjQ4LDIyIDEyLDIyIDE3LjUyLDIyIDIyLDE3LjUyIDIyLDEyIDIyLDYuNDggMTcuNTIsMiAxMiwyIHogbSAwLDE4IEMgNy41OCwyMCA0LDE2LjQyIDQsMTIgNCw3LjU4IDcuNTgsNCAxMiw0IGMgNC40MiwwIDgsMy41OCA4LDggMCw0LjQyIC0zLjU4LDggLTgsOCB6IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMwMzQiCiAgICAgICBkPSJNIDAsMCBIIDI0IFYgMjQgSCAwIHoiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZSIgLz4KICA8L2c+Cjwvc3ZnPg=="); + background-position: 0 0; + background-size: 20px; + background-repeat: no-repeat; + vertical-align: middle; + font-size: 20px; + line-height: 20px; + cursor: pointer; + -webkit-appearance: none; + -webkit-user-select: none; + user-select: none +} +input[type=radio]:checked { + background-position: 0 -21px +} +input[type=number] { + padding: 8px +} +#help { + display: none +} +.sqlarea.jush-sql.jush { + border: 1px solid rgba(0, 0, 0, 0.12) !important; + background: #fff; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12) +} +.js .column { + left: -50px; + margin: -6px 0 0; + padding: 5px 0 7px 3px; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 3px; + background: #fff; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12) +} +.js .column a { + padding: 1px 8px 3px 5px; + margin-right: 3px; + border-radius: 2px; + color: #7962f2; + transition: all .2s +} +.js .column a:hover { + color: #fff; + background: #7962f2 +} +table { + margin-top: 20px; + min-width: 800px; + border-collapse: collapse; + box-shadow: none; + white-space: nowrap; + font-size: 13px; + order: 4 +} +form table { + width: 100% +} +thead td, +thead th { + background: #ececec; + position: sticky; + top: 0; + z-index: 2 +} +thead td:before, +thead th:before { + content: ''; + position: absolute; + background: #fafafa; + top: -20px; + left: -10px; + width: 120%; + height: 20px +} +thead td:after, +thead th:after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + border-bottom: 1px solid #cecece +} +thead th { + padding: 0 18px; + text-align: left +} +th { + box-sizing: border-box; + padding: 5px 18px !important; + width: 20%; + border: 1px solid #ececec; + background: #fff; + font-weight: normal; + font-size: 14px +} +td { + box-sizing: border-box; + padding: 2px 10px 0; + height: 45px; + border: 1px solid #ececec; + background: #fff; + color: #000 +} +.odd td, +.odd th { + background: #fafafa +} +td a, +td a:visited, +th a, +th a:visited { + color: #7962f2; + font-weight: 700 +} +.js .checkable .checked td, +.js .checkable .checked th { + background: #e0e0e0 +} +#noindex, +sup { + display: none +} +.pages { + position: absolute; + padding: 10px 20px 0; + height: 35px; + border: 1px solid rgba(0, 0, 0, 0.12); + background-color: #fff; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + font-size: 15px +} +.pages a:not(:first-child) { + margin-top: 5px; + padding: 5px; + border: 1px solid #7962f2; + border-radius: 2px; + color: #263238; + text-align: center +} +.pages a:not(:first-child):hover { + background: #7962f2; + color: #fff; + text-decoration: none +} +.icon { + width: 24px; + height: 24px; + border-radius: 2px; + background: #000; + opacity: .8; + -webkit-filter: contrast(125%) invert(1); + filter: contrast(125%) invert(1); + transition: all .2s +} +.icon:hover { + background: #e1771a +} +.footer { + background: none; + border: none; + border-color: transparent; + position: relative +} +.footer>div { + background: transparent +} +#content form { + display: table; + order: 1 +} +#content table:nth-of-type(1) { + order: 1; + margin: 38px 0 +} +#content .links, +#content h3, +#content h3+.error { + margin: 15px 0 0; + order: 4 +} +#content .links:nth-of-type(2) { + margin-top: 30px; + order: 0 +} +#content .links a { + display: inline-block; + margin: 4px; + padding: 6px 12px; + min-width: 88px; + border-radius: 2px; + background: #fff; + box-shadow: 0 1px 4px rgba(88, 88, 88, 0.41), 0 2px 3px rgba(88, 88, 88, 0.26); + color: #7962f2; + text-align: center; + text-transform: uppercase; + font-weight: bold; + font-size: 13px; + line-height: 24px; + transition: all .2s +} +#content .links a:hover { + background: #7962f2; + color: #fff; + text-decoration: none +} +#content .links .active { + background: #7962f2; + color: #fff; + cursor: default +} +#content form>fieldset:first-child { + background-color: transparent; + border: none; + box-shadow: none; + float: right; + margin: 0; + padding: 0; + margin-bottom: 4px; + margin-top: -40px +} +#content form>fieldset:first-child legend { + /* display: none */ + position: relative; + top: -4px; +} +#content #form fieldset:nth-of-type(1) { + /* display: none */ + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + /* position: relative; */ + top: 57px; + padding: 7px 10px; + padding-bottom: 11px; +} +#content fieldset:nth-of-type(2).jsonly { + float: right; + margin-top: -30px; + margin-right: 8px; + border: none +} +#content fieldset:nth-of-type(2).jsonly legend { + display: none +} +#content fieldset:first-child #fieldset-import, +#content fieldset:nth-of-type(1), +#content fieldset:nth-of-type(2):not(.jsonly), +#content fieldset:nth-of-type(3), +#content fieldset:nth-of-type(4), +#content fieldset:nth-of-type(5) { + margin-bottom: 10px; + padding-bottom: 11px; + min-height: 57px; + border: 1px solid rgba(0, 0, 0, 0.12); + background-color: #fff; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12) +} +#content fieldset:nth-of-type(6) { + border: none +} +#content fieldset:nth-of-type(6) legend { + visibility: hidden +} +#content legend a { + padding: 5px; + color: #7962f2; + font-weight: bold; + font-size: 13px; + line-height: 18px; + transition: all .2s +} +#content legend a:hover { + color: #4a39a4; + text-decoration: none +} +#content fieldset:first-child #fieldset-import { + margin-top: 36px; + padding: 13px 10px 0 9px; + margin-left: -12px +} +#content fieldset:first-child #fieldset-import:before { + content: 'Import'; + position: absolute; + top: 8px; + left: 20px; + background: #fff; + padding: 0 7px +} +#content input[name=copy], +#content input[name=move] { + float: right; + margin-right: -20px; + margin-left: 25px +} +#content input[name=copy], +#content input[name=move] { + float: right; + margin-right: -20px; + margin-left: 25px +} +#content select { + margin-bottom: 2px; + padding: 8px +} +/*====== DARK MODE ======================================================================================================================*/ +#content { + background: #221f2e; + color: #ffffff; +} +#content h2 { + background: #2f2b3f; +} +#logout { + background: #7962f2; +} +#logout:hover { + background: #7962f2; +} +td { + background: #2f2b3f; + border: 1px solid rgba(0,0,0,0.1); +} +input[type="checkbox"] { + filter: invert(); +} +.odd td, .odd th { + background: #2f2b3f; +} +tbody tr:hover td, tbody tr:hover th { + background: #2f2b3f; +} +th { + background: #2f2b3f; + border: 1px solid rgba(0,0,0,0.1); +} +thead td, thead th { + background: #4c4665; + color: #ffffff; + font-weight: 700; + text-transform: uppercase; + font-size: 13px; +} +thead td::after, thead th::after { + border-bottom: 1px solid transparent; +} +thead td::before, thead th::before { + background: #221f2e; +} +#content table { + border-radius: 7px; +} +#content table thead td:first-child, #content table thead th:first-child { + border-top-left-radius: 7px; +} +#content table thead td:last-child, #content table thead th:last-child { + border-top-right-radius: 7px; +} +#content table tbody tr:last-child td:first-child, #content table tbody tr:last-child th:first-child { + border-bottom-left-radius: 7px; +} +#content table tbody tr:last-child td:last-child, #content table tbody tr:last-child th:last-child { + border-bottom-right-radius: 7px; +} +#content .links a { + background: #7962f2; + color: #ffffff; +} +#menu { + background-color: #221f2e; + background-image: url('data:image/png;base64,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lJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAgOa87AAAgAElEQVQAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABAAAAUGoCLAAAAABKTYAFAAAAQKkJsAAAAAAoNQEWAAAAAKUmwAIAAACg1ARYAAAAAJSaAAsAAACAUhNgAQAAAFBqAiwAAAAASk2ABQAAAECpCbAAAAAAKDUBFgAAAAClJsACAAAAoNQEWAAAAACUmgALAAAAgFITYAEAAABQagIsAAAAAEpNgAUAAABAqQmwAAAAACg1ARYAAAAApSbAAgAAAKDUBFgAAAAAlJoACwAAAIBSE2ABlFWSRkQS6cp/02YTRhpR85MUWPzydMs/xTTbhpxn639Z2v7lbcx+b708AACACAEWQN+sRjFJRLr0W1IfDaW1mU3aIj5Kk4hII1n5b7OYKa0JopIoFgstT9dZjNQ66kpa/bK0/SuvuOG1pyu7azWES7Lsa3kb09XnawK9mv+3fxUAAMDGIsACqFGbftQHO2nNv7XPJtVTrSQx9UtIalehFVKVZDX3i6p9nFQFWsnq8zWBXs3/649PfWiYHZ/lOZLqBQMAAKUkwAL2elk+URMvValuudPYdqk+1khq/hV6lFXt8akPDbMWcivxVnXTrprH6hda1TmzaXdOAABgEARYwIa2EiPUJA45EVXV87WxU3XLHaEEmYaenxErXTpX/x/R2BYvbROBAgAA3RBgASWURQBNg6a8R2sSB6EBa6W+LV7SphNqRCSJTqMAANAhARawTqqr8EvforfSlStpmMI4Uew10jQnYl3t7ph39ue2CAMAgE1EgAUMVtOvpav79rkwmDab2eqA83ntD7Nwt3YENgAA2EwEWEBXqoc7b/yevdpvhGvyC9CRZiVu+eGkrmGj8gYAwN5DgAU01aqdR9X3sTVMVz+MNbAGkrSuYWNOCa56SLdEAAA2EgEWkC810DTsdaoK9WK6/A2dVc9rtQUAQEkJsGATSaJqePTl5hdp4/emZROryMLebOV60KzVVhpVzbTS0AUYAID1JMCCvVRVPhXV3+q38nu6VBlNdPkDciSxep1YibtWA60k+wcAANaEAAs2uOr2EdX/q8qnQi0T6I/VQGv5ixGzboiNI+EBAEA/CbBgQ0pX6ofV7SPq/wcwaFk3xMbvIo2IlQuUqxIAAL0SYEGJ1baqqhlpWY0QKL/aHGtVmo28p50WAABFCbCgBNKo7eqX36pKYgXsJZK04bq3PK5WKtUCACCHAAvWzWotbbUlQlL1N8BmkKz8u/rFh7WhlqsiAAACLBig6opXbduq1ccBqFcbajV+TQUAAJuNAAv6LG3yt1YEAL1r7Fpd3R0RAIC9lQALepHUfRVgCKoA1sbyl1skK9fdtOoZAAD2LgIsKGg1kqqqGqVJ/ZMArIN0ZbysvOu1SAsAYKMTYEET9RWgNGmsGgFQZk2u22kSkSSu5gAAG4gAC6osf0afJPXfERi+2x1gb5GkEWkaixFRdeVfv+0BAKAtARabVm2VpXqgdVkVwGZQO2bh8piGgiwAgDISYLGJVFVVkvoqiwoLALH65RzLBFoAAKUgwGKvlVb93fCIFlYAFFEfaFUNDJ/ItgAA1owAi71IWtOOqrZrCAD0w+rA8KvdzZPwfgMAMFgCLDasJImaT8bTSDSsAmAdpNHYId07EgBAPwmw2FCWP+1OIiJN05qxSXz2DcB6a/gG24icbogAAHRKgMXGkSaRVPK+MxAASixNslbDaXVbLQAAOjG83hsArS3d8Udkn2C76wdgA0rTqPkGXAAAOqMFFuWQNBsAV2IFwN7NEPAAAO0JsFgfNeOBpEsfTQurANh8mr0DelcEAFglwGLN1NyIp9WfNfvcGQDqrXaiTw0EDwBsegIsBibrFbj0uXKaiKkAoEPJ8t9L76O6GwIAm5UAi76qvqnOegUu3Wr75BgAepJW/WR/JdmbrUQLANgEBFj0QbLSPXBxXbcDADaJJCLrWphkDZ0jlpo+AwDsnQRYdKmmrdXKb26dAWDtZXlWGkntyFkAAHsNARYdqA2tAIBySSONqpGzlrryp3ryAwAbngCL1qpveDWvAoCNJckCrZUv//WFhgDABiXAolFa9Z9KVWqVuuMFgA0t+0JDnQwBgA1HgMWS7HuN0tWeB7Hy7UYAwF5lpZNhzcDvmloDAOUlwNrUktVPYJNKRCS+wAgANpOaD6rS0CoLACgrAdamU3ujuvIJrJZWAEDOF7a4RQAAykCAteloYgUAFJHU/JO12F6vbQEANjsB1l4qqbrn9MEpANCtpPp/S70M5VgAwFoTYO1tktrm/jVjsgMA9CpZ/XDMPQYAsFYEWHuDmmGt3EoCAGsjrf9Ns28AYEAEWHuDitAKAFhvydLYBcnq7wAAfSLA2nCWR7Wquin09UAAQFkky/cl2b9iLACgHwRYG8LSrV+6/Jeh2QGAjWFpdE5BFgDQEwHWBpA0/AcAYCNJcj56c2MDABQnwCqbpPH2LtXaCgDYyyRN/g8AkEeAVQrJ0o1b4lsEAYBNoeYDusTgCABAawKs9ZQsjweRrowPAQCw2aTpaius1bshH+oBAKsEWGuutrWVyAoAYNVqbJVmaVaaRiLLAoBNT4C1VpZaW6VaWwEAFJNERJJEmi7dN7l9AoBNS4A1UOnyB4crra18gAgA0Kmk5h8AYPMRYA3CythWleUPDgEAAADokgCrT2oyqpWxrbRzBwAYqCQbpCES910AsDcTYPVJqk07AMDaS5cGaUiX78XckwHA3kiA1YWaLoFJ45c+AwCwXpYHfDf+KADsTQRYHcnpGJgKrgAASmflG6CFWACwNxBgFbJ8A5Qs/woAwAaR5vwPANhYBFitrNzjaIIOALDxVQ39sPKlOwDARiDAqpM0/QUAgL1DstLFEADYGARYdQxpBQCwCS0PmCXWAoBSEmBFRKQRyfLNinsWAIDNZ2m8iDRSQ2UBQAltygCrIaNavlkBAGBTS1b+Ws6xfLoJAGWwKQMsYRUAAO1k0VX1faN7SABYL5sjwKr6NsHafwEAoCj3kACwXjZHgLVyr+FTMwAA+sEHowCwlvbiAEtYBQDAoKRLf6fhvhMABm8vDrB8GgYAwGAlVX9H6v4TAAZlLwiwfOIFAEAJJPXfWyjQAoB+2eABVhpuDAAAKJO07n+J21UA6NkGDLCSWB5tQHgFAEDZpWmEXgMA0JsNGGBlra5EVwAAbBzVo2XpRQAAndowAZbICgCAjU4vAgDoTokDrKU39mT5cyrNrgEA2FukNf8XaQFAayUMsLIxrlbe1FPBFQAAe7NkJc5y5wsA+UoWYC0HVz6DAgBg80li9VsLhVkAsKoUAdbqVwsLrgAA2NyWOyC4MwaAVescYGXvznoJAgBAK8bJAmBzW+cAy9swAAC0l9R8g6G7aAA2m1J0IQQA+P/Zu5cfu/P0vu+f55Bssod9G/a0ZgQlgAQkQDbZJZvs8w8EkQFbCSB4oQAGklUQJLteOIhXtpGsYiROgMTWzLQ0E0GyRootx5ZtSRlJMSyNLnNp9oXs5v3SvFaxqs6Txakii0WyeanL73fO7/XCNKt4adYz3WyS583n+/0BL2L3+UJ3xwIwHQIWAAAsmcUVHJV21TsAEyFgAQDAknp8/8o9WQCsLgELAABWgnuyAFhdBxaw/AIJAABj0Ls+BYDVsO+Atbg/svwCCQAAI9SPfwIAS+mVA1ZlcXnk4v5IvxgCAMAY1eOf7NwADwBL5RUCVi3iVZJybhAAAJbL9m/iZSwAlslLBKx++NYvdgAAsNwe/Vl0O1EBwOg9N2At7rhKUh5YCAAAq6eSXvxeX8YCYKy+tEo9fADvzoVXAADAClr8Xv/hH15LWQCMzBMBa3en6jgwCAAAk/LwwveOK28BGItdAWt738qvUgAAQMofZQMwGrNHf6zilycAAODLeM0AwDBmfg0CAABezOJoYSJlAXC0PFoQAAB4Ce4cAeDoCVgAAMBLezxjufAdgMMlYAEAAPu0feF7l7OFABwKAQsAADgY1YvVLA+KAuCACVgAAMDBetitFiWrdSwA9knAAgAADpcLsgDYJwELAAA4VE/2K0ULgJcjYAEAAEes48mFALwMAQsAABhA7boqq8QsAL6UgAUAAAyreztmue0dgKcTsAAAgJGouB8LgKcRsAAAgBF5fBdLzgIgEbAAAIAR2glXXbXnSwCYIgELAAAYr97ZxeqkRSyAqRKwAACA5VC7L3kXswCmRMACAACWUGdxurD3hC0AVpGABQAALKXF6cJK5u7JAlh1AhYAALDcHnYrm1gAq0rAAgAAVlDbxwJYIQIWAACwgso+FsAKEbAAAIDJsJUFsJwELAAAYDL64adSFsAyEbAAAICJqZ1HGAKwJAQsAABgep5YwBK0AMZMwAIAAEjFkwsBxkvAAgAASOLJhQDjJWABAAA8g+veAcZBwAIAAHiGxcFCAIYmYAEAALwAIQtgOAIWAADAC9h7lNDRQoCjI2ABAAC8gt7+VMgCOHwCFgAAwCvbfnKh84UAh0rAAgAA2K/tNayqRM0COHgCFgAAwAHpTtyOBXDwBCwAAAAARk3AAgAAAGDUBCwAAIBBuCsL4EUJWAAAAANod2UBvDABCwAAYAA7+coeFsDzCVgAAAADeriHVZVUpSUtgCccH3oAAAAAkvQiXFVq8W7FIUOAbQIWAADAyNTDcrWzjSVlAdPmCCEAAMBo1WN/OVwITJWABQAAMHqd3c8ttI8FTI2ABQAAsGR6z1uAVSdgAQAALCmbWMBUCFgAAAAroB9+ImsBq0fAAgAAWAH18JNOWsQCVouABQAAsGpq9y1ZHVtZwLI7PvQAAAAAHJadcOW6d2C52cACAACYiqokJWcBS0fAAgAAmIpeHClc7GXZzgKWh4AFAAAwSTvhqva8BRgfAQsAAIDYxALGTMACAADgSdV2soDRELAAAAB4Uld6eyvLbhYwNAELAACAZ1jsYM3sYgEDE7AAAAD4Uv3UHSx7WcDREbAAAAB4aZ2ylwUcGQELAACAl1bZ3sEqGQs4fAIWAAAAr64fP0pYuz4FOCgCFgAAAAfm4XMLXZEFHCABCwAAgIO3dwmrFC3g1QlYAAAAHL7eKVpCFvDyBCwAAACO0HbIcvk78BIELAAAAI7e9uXvMhbwIgQsAAAABtNJUrVYyOoWtICnErAAAAAYVvdiIasqHVtZwJMELAAAAEbl4TXvXdvvu/gdpk7AAgAAYJxq50hhbb8VsmCqBCwAAABG7+GV77ayYJIELAAAAJbHzlZW79yUJWTBFAhYAAAALJ969E73E18IrBgBCwAAgKVW291KvoLVJWABAACwEnrPcUJBC1aHgAUAAMBK6j1vgeUlYAEAALDSHtvEaptZsIwELAAAAKajdjayeuezwBIQsAAAAJigRbpyaxYsBwELAAAAsjdfuTkLxkTAAgAAgOx9imG5LwtGRMACAACAp3FfFoyGgAUAAABfyn1ZMDQBCwAAAF5axz1ZcHQELAAAAHgle7ewbGXBYRGwAAAA4EB0alfEkrPg4AhYAAAAcEB2P8mw93wN8OoELAAAADh0Xn7DfvgvCAAAAA6dzSzYDwELAAAAjlA983NiFjyLgAUAAAAj0A9jluvfYS8BCwAAAEbgUbbaeZphP/E1MFUCFgAAAIzM4mmG9fBziYzFtAlYAAAAsATckMWUCVgAAACwzJQtJkDAAgAAgGX22NnC3vUprA4BCwAAAFZG7fo0Sbk5i9UgYAEAAMCq6u1drF1vbGexjI4PPQAAAABwyOqxN4+9L2ixDGxgAQAAwAQ9dRur5CzGScACAAAAFnrvnVmCFuMgYAEAAABPVZk9jFqVPQ88hCMkYAEAAABP1emHxwofHjl8YksLDp+ABQAAALy4XfdkPf6esMXhEbAAAACAV1KPvbcrYlXi/iwOkoAFAAAAHJDe9Wbn1qze1bJELV6NgAUAAAAcku2trIerWvXY18CLErAAAACAI+fGLF6GgAUAAACMxsNnHu5cq2VXiwhYAAAAwIjUzqcP74SvvV8T+1vTI2ABAAAAS6D3fNqxnTUdAhYAAACwhHaecvicb2VZayUIWAAAAMDK6t576PDh5VosEQELAAAAWGG7jx7uvFcPi9biyxdRy7LWeAlYAAAAwPRsF616+Jl6LHI9HrOkraEdH3oAAAAAgHGpPYcM9x453FW/eucdDpMNLAAAAICXsn2BfC/eLi6K34lcno54GAQsAAAAgH3ox7awnvV0xNrzNf2Mb8fTCFgAAAAAh6737GbtehpiP0pZe48udrK94TVtAhYAAADAkOpRuNp7eXxlZ8Nrt37s3Yefq9U9uihgAQAAACyVeuzdh5/rPflr15LXw7+rdh91XLxdhgUvAQsAAABgBfWea7b64Rc+/Fx2jikmu4JX7z7euPP28du7HldJ7Xw/tb0JdrDbYMcP9HsDAAAAYCk9Cl67ytfOxlY9fnvXnr8z6Z1Nrn5iE+yJb7vzPTzt2z3jGKSABQAAAMAR2X388cW3tBwhBAAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAAAARk3AAgAAAGDUBCwAAADg+WroAZgyAQsAAAB4vh56AKZMwAIAAAC+lHbF0AQsAAAA4Es5PcjQBCwAAADgOexgMSwBCwAAAHgOO1gMS8ACAAAAnsnuFWMgYAEAAADPZPeKMRCwAAAAgC9hB4vhCVgAAAAAjJqABQAAADzVYvfKIUKGJ2ABAAAAT1WODzISAhYAAAAAoyZgAQAAADBqAhYAAADwDO6/YhwELAAAAOAp3H/FeAhYAAAAwFPYvmI8BCwAAADgMR37V4yLgAUAAAA8psr+FeMiYAEAAACPs37FyAhYAAAAAIyagAUAAAA85P4rxuj40AMAAAAA4+HuK8bIBhYAAAAAoyZgAQAAANscHmScBCwAAABgmwOEjJOABQAAAGyzgcU4CVgAAADANhtYjJOABQAAAMCoCVgAAABAHB9kzAQsAAAAIO34ICMmYAEAAMDE2b1i7I4PPQAAAAAwLLtXjJ0NLAAAAABGTcACAACAyXOIkHETsAAAAGDyHCJk3AQsAAAAAEZNwAIAAABg1AQsAAAAmKiO269YDgIWAAAATFSl3X7FUhCwAAAAYLLkK5aDgAUAAACT5QAhy0HAAgAAgMmygcVyELAAAAAAGDUBCwAAACbJ8UGWx/GhBwAAADhqne6q2VY686Tn21867376K/qqOrb9XpLMkp51cqycv2JJdZLyw5clImABAAArYdGeaiOdB1XZ6GQzyWZSm+n5ZlUt3k/PK5X03lZVqee+nn/099TiczVLzTp9LMmxpI8ndTzJ8VSOp3M8yYntv44d1P9X2C/pimUjYAEAAMtmntRaZ76ervWqrCfZSGqjkt55Zf7oBXrnUZk62CNTiwzWW0m29n7Up3yoWSevJXmtUidS/Vq6TyZ1MuIWR26xgwXLQsACAABGrLaSvp/UvWS+Xqm1TjYWnerxA3xL8FJ8XslakrWktwPXw9p2PJ2TnZysysl0Xu/kpCOKHAbHB1lGAhYAADAmD5LcS3Iv3fez2K7Kzkvulb1yuhfHHSu5+/gpxT6V1KmkX09mpzp9SnZgv/wYYhkJWAAAwJDm3X2/qm5XcnuxXbXt+RdSrbRanH28n+R+Uje2T0fOkrye5Cvd/ZVUvvIiN3cBLDsBCwAAOGK13unbldxOcr+2+8vKblcdrHmSu0nuVlU6qe5+vapOJ3W6M/+Ko2F8GTdfsawELAAA4CisJXUrPb+dyroX0AdjcWl9LY5cpq9Uapaqr6T7jaROJ31y6BkZF//tsawELAAA4JDURtI3K3Wz0xuPPw2QQzJP950kd7Yvuj8xT79ZyRudnHYpPLCsBCwAAODAdNLVuZ1Z3dwOKWmHAwfT6Y1Krie5XsmsU29U+o0kb2VxnxYT4vggy0zAAgAADsJ6UjeTvpnKVlq0GqF5pW8luZXui5nNvpLutyJmTYZ4xTITsAAAgFfS6VTnVqquJlnbfkoey6Dq4VHDTi5U6o2k30ryZsQsYIQELAAA4KV00pV8UamrqTwYeh72pxb/Sm8nud1JJfVmev7VxZMNAcZBwAIAAF5IJ1s79ykl2Rp6Hg7edsy6lapbqTqezttJfzXJa0PPBkybgAUAADxHbSR9NcnNLLavmILuzSTXklxL5yupvBP3ZQEDEbAAAIBn2UrqSqdvlHA1bZV7Se4luZjUW0mfSXJq4Kl4QZ4+yCoQsAAAgL3m2dm8Sc+98GWXedI3s9jGO5XkTCdvlz4yav7lsAoELAAAIMnDy9mvd3K13HHF860l+XyWutTpM0l9NWmvMYFD4ScXAAAg3blb6YupWretwcvo9FaSK52+uniCYb9bldeHnosFxwdZFQIWAABMWm0kfbkqX3iZy348eoJhbnVyqpIznX6n/LgalH/6rAoBCwAAJqjTXamrnb66CA9wcOrR8cIr8/TXknrHPVnAfghYAAAwPXdmqQudbCgKHKbFj7G6kMqVdN5N8tUks6HnApaPgAUAANMxT3IpyQ0rVxypzmaSS9sPCDiT1Jmkjw09FrA8BCwAAJiGO6n6PN2bQw/CdG0/3fJK0teSvJPU1zy5EHgRfqIAAICVVludvlTJzbS9K0ZjnuR60jeT+mrSX0tiIwt4JgELAABW191Uf1aL41swRvPtbawbi2OFedfRQuBpBCwAAFgxnU6lriS54vmCLIl50leTul6pr80zf7dSnjEAPCRgAQDASqmNdH+Wyr2hJ4GX1/NOLlfNrif9Xnd/taJjAQIWAACsjE5uV/JZVc2HngX2ZfGwgQvVuZ7kvVTeGnokYFgCFgAALLlOOsmlWlyKPfQ4cHCq1pOcT3I6ydeTnBp2IGAos6EHAAAA9mUz3Z8s4hWsrLtJzqbzWVIbQw8zbiI2q8kGFgAALK+1Ts5VeUHPRFS+SM9vp+rdTr5WcUHWk/wjYTUJWAAAsJxudnKhrFswNYs73q7MUje7++vux4JpcIQQAACWyPZ9VxeSfC5eMWWd3kjlfHd9muTB0POMg58SWF0CFgAALI95us8luTH0IDAWVX2nkw+TXEwy8SdwOj7I6nKEEAAAlkJtpPvTWjyVDdhlexvxeqpuZT7/RqocK4QVI2ABAMDo1VoqnybZHHoSGLXuzVSdT/KVpH466ZNDjwQcDEcIAQBg3G6n++N0i1fw4u51+mylrvZU7oVyepAVJ2ABAMBYVW4kOZea+r0+8PIq6U5fTupsUmtDz3PoJtLpmC4BCwAARqhSV9O5MPQcsOwqWUv6bFKXWuaBpSVgAQDA6NSlxeYIcHD6WnWfTef+0JMAL0/AAgCAkdi+q+dC0teGngVWUtV6Kh8luZA4mgvLRMACAIAR6KQrs3NJbgw9C0zAjSRnk7439CD70y5vZzIELAAAGNgiXvX5pG8PPQtMyIOkPk5ycXnvxqqlnRxeloAFAAAD6qSr6lxS4hUM43p1pvGkQlhiAhYAAAykk66uc+m+M/QsMGmV9U5/VKmry7PQtDyTwkEQsAAAYACd7ko+TYlXMAaVdKcvV/JJUhtDz/N8Lr9iWgQsAAA4evNKfZrk7tCDAE+42+mzSW4NPQjwiIAFAABHaPuy6HMRr2C0KtlKcj6pz5PMh57nSY4PMj0CFgAAHJFOJ6nPIl7BkuibyRgveHd8kOkRsAAA4Ah0OpXZ+Uo7lgTL5UGnP0rlxtCDwJQJWAAAcAQqdSHiFSylWjToC+l8llEeKYTVJ2ABAMAh6+RiYnsDll7li3Q+SmQoPWUAACAASURBVPJg6FFgagQsAAA4XFcquT70EMABqawnOZse4imFLm9nugQsAAA4JL3Yuroy9BzAgZuncj7JxT7SquTydqZLwAIAgMNxu5ILQw8BHKrr6f4kyebQg8CqE7AAAODg3e3k/NBDAIevqu5V6sOk7x3uR3J8kGkTsAAA4EDVWpJz5dUmTEant5L6OId6353jg0ybgAUAAAemNlL9aZL50JMAg7jYycXWr+HACVgAAHAw5t3zc2l34cCUVXI9XR93sjX0LLBKBCwAANinxbZFf1ZVa0PPAgyvKvdmqbNJ1oeeBVaFgAUAAPtWF5O6PfQUwHh0eiPJR0n2+XOD44iQCFgAALBf1+tQL24Gltg8ybkk1179u3B5OyQCFgAA7MedJBeHHgIYvUudfN7WqeCVCVgAAPBKai3J+aGnAJZDJTcr8ZRSeEUCFgAAvLzNTp+LF6LAy7mb7o+S2nj+N7WsBbsJWAAA8BI63Umfq+QFXoAC7FG1nuqPtrc4v+wbHs08sCQELAAAeEGdpDI7n9T9oWcBllhnM8nHSd979jcBdhOwAADgBVVyKenbQ88BrIKed+qTdG497WvtX8HjBCwAAHgxN5NcG3oIYHVU0qmcT3L90ZfavYKnEbAAAOD51tJ9ceghgJV1MalLi3ftXsHTCFgAAPDltio5lypPHAQOUV/r5GLbwIKnErAAAOAZtl9InmtPHASOQFWuVfIbSQRz2EPAAgCAZ6qLSZ75lDCAA/bDpH7QyXeTbA09DIyJgAUAAE93sx67WBngEFU6nR8t3s2Pk/p2Ug+GHgvGQsACAIAnrXVyYeghgOno5MqeL/kkmX+QZH2QgWBkBCwAAHhMbabq0/Ise+Co7Nq+2vMV5zr9y0k7yszkCVgAALCtk073+XRvDj0LMCV15VlHlit1Mal/kPTto54KxkTAAgCAbZW6mHJpO3CEKt3dT9m+esy1Sv5BkptHMRKMkYAFAAALN5O+MfQQwLR0Z/4iD4zo1M2k/o+qXD2KuWBsBCwAAHBpOzCQSn744t+673b3L+eJC99h9QlYAABM3VYn51zaDgxgK8lPXu5vqbtJiVhMjoAFAMBkdZLu/qySjaFnASbpJbavdut7iU0spkXAAgBgsiq5UlV3hp4DmKRX2L7arUQsJkXAAgBgkrpzN174AcN5xe2r3UQspkPAAgBggmojlfNDTwFM2j62r3YTsZgGAQsAgEnpxf/O1+L4DsAQDjg2iVisPgELAIBJqeRikvtDzwFMVx/I8cG9RCxWm4AFAMBkdPJFkhtDzwFM2pVKrh/Od72IWJVcPZzvH4YjYAEAMBG1Vt0Xhp4CmLbD2b7are516h8muXa4HweOloAFAMAUzJM+n6r50IMAk3aI21e79b2kvpnk5uF/LDgaAhYAABNQnyV5MPQUwLRV+i+O7qP17Up/M8mto/uYcHgELAAAVt21pG8PPQQweZc6daQbUZ26mcovJ33nKD8uHAYBCwCAldWd+51cHnoOgEof8t1Xz9C5Ual/mPTdQT4+HBABCwCA1VS1WbOcq6SHHgWYvCPfvtqtk+vd9a0k94eaAfZLwAIAYOV0Oun+LJ3NoWcBqFkNs321e4bK5XS+nar1oWeBVyFgAQCwgupyEsdlgDG41PMex9MAKxfS828n2Rh6FHhZAhYAAKvmTiVXhx4CIElS+dHQIzyuPkvqV5NsDT0JvAwBCwCAldHJRiefDT0HwLZL6dwYeogn9cdJfr3T7ghkaQhYAACshE66kvNlqwAYi9FtXz3mL5P8pudcsCwELAAAVkKlLsYTtoDxGOn21SOV+tNO/e7Qc8CLELAAAFgFXyQ96heKwMSMe/vqoUp+r5LvDz0HPI+ABQDAcus8SHJh6DEAHukLY9++2q2Tf5qqPxl6DvgyAhYAAMtsnvS5xVuAUdjq1B8NPcTL699K5cOhp4BnEbAAAFhanfo8VetDzwGwoyp/Wct4M3pnnnm+m+T80KPA0whYAAAsq2uVvjX0EAA7OtmYd84OPccrq2x25YNULg09CuwlYAEAsHS6c7+Ty0PPAbDbrPKjpdy+2qU660l9kOTm0LPAbgIWAABLpjZrlnPL/iIRWC1Lv321W/edSn0zyd2hR4EdAhYAAEuj0+nu8+lsDj0LwG6V/HiVwnqnb3bnW0mtDT0LJAIWAABLpFIXq3Jv6DkAdutkI6uyfbVLVS6n8p2UPzRgeAIWAADL4osk14ceAmCvSn6cynzoOQ5F96fd+bVkRf//sTQELAAAlkCtJ7kw9BQAe3XncicfDj3HYarkx0l+c4VOSLKEBCwAAMZunvS5+NN/YIxW4MmDL+gHyeyfDz0E0yVgAQAwcvVZkgdDTwGwV1cuJ7kx9BxHp38/6T8aegqmScACAGC0KnU16dtDzwHwVD2Z7atd6p8k+cHQUzA9AhYAAKPU3Xc7fXnoOQCeqvuzTGr76pFOvpfkk6HnYFoELAAAxuhB1ezc0EMAPE0nG5nVv57e9tVCJVtd+U6SK0PPwnQIWAAAjM08nXNJu7QdGKufpKf9YInqrKfqW0luDT0L0yBgAQAwGotVhv4slfWBRwF4qk42kpwdeo5R6L6T5IOk1oYehdUnYAEAMCaXk3JpOzBas/TvV7I19BwjciWZfzf+mXDIBCwAAMahc6uSq0OPAfAsnVycp74Yeo7xqU+S/KOJXgnGERGwAAAYg7Uknw89BMCXmaV/NNWL21/An1fqXw49BKtLwAIAYGhblZxLTftCZGDkus/ZvvpynfzLVP3J0HOwmgQsAAAG00mnc277UmSAkaqNrvoT21cvon8r6Y+GnoLVI2ABADCYSi6mcm/oOQC+TKV/4uL2F9SZJ/XdVC4NPQqrRcACAGAQnb6R5MbQcwB8udqYJ2eHnmLJPEjqgySOXHJgBCwAAIZwN6mLQw8B8FzVf2D76hV030nyK0nWhx6F1SBgAQBwxOpBJefdJQMsgUvduTn0EEvsSrp/NQIgB0DAAgDgKG0l/Wl7MQMsg8qPxPZ9qvq0qn7DP0b2S8ACAOBI9OLVy7kkD4aeBeB5KnXO9tXB6O6/6NTvDj0Hy03AAgDgSFTn88QTB4FlUBvdW39q++rgVPJ7Sf9/Q8/B8hKwAAA4AnU55WlUwJKo/oPUbHPoMVZNp/5xJT8eeg6Wk4AFAMBhu5n01aGHAHhBLm4/JJV0p389yaWhZ2H5CFgAABymO0k+H3oIgBfT6zWrHzo6eJjqQao/SOfW0JOwXAQsAAAOR+d+OueHHgPgxdWHPW/bV4et604qH6RqfehRWB4CFgAAh6AeVNWnqcyHngTgBV3q5MOhh5iQK+n5d5JsDT0Iy0HAAgDgQHWylfSnnfaiBFganfzY0cGjVp90+v8eegqWg4AFAMBBmif5JMmDoQcBeHH9aZIbQ08xRZX6N939B0PPwfgJWAAAHIhOd5JPK1kbehaAF9fr6fqB7avhVNU/S+XPhp6DcROwAADYt066enYuyb2hZwF4OfVhKptDTzF583wvyWdDj8F4CVgAAOxLp5PUZ6m+M/QsAC+jO5fTOTv0HCSpbHb3r3S1o5w8lYAFAMC+VOrzSt8aeg6Al9PrNcsPPS11PKrq/qxn30raNi9PELAAANiPC0luDj0EwMvq1Nm0i9vHptM3k3w3iSfZ8hgBCwCAV1SX4qldwFLq9WT+8dBT8Cx1riu/4V59dhOwAAB4FVeSvjb0EACvojL7w8psY+g5eLbq/EWq/sXQczAeAhYAAC+lUleTXBl6DoBX9Gl3O/q8DDr/Kqk/HXoMxkHAAgDgJdTlTl8eegqAV9PrnfyZi9uXSPX3kv546DEYnoAFAMALqstJXx16CoBXVvX9ShwdXCadeXe+G5u/kydgAQDwIi6KV8BSq3yceb4YegxeXlWtp/pXktwdehaGI2ABAPClOrmY5PrQcwC8ulrvzl84OrjEur6o5IPYoJssAQsAgKfafnj5hRKvgGVX7ejgCujkYie/0Q9/iWJKBCwAAJ7Qi9cGnye5MfAoAPvj6OBKqeSHlfw/Q8/B0ROwAAB4zOJPtmfnK/GYeWDJ1Xq6/9LRwZXz/aT+eOghOFoCFgAAu80r+aTSt4YeBGDfqr+f1IOhx+AQVP9OKh8OPQZHR8ACAGBbbXb64yT3hp4EYL86/YmjgyusM++e/19JLgw9CkdDwAIAIIsNhf64UmtDTwKwf7Ve8dTBVVeZbaT6VxOhcgoELACAyau1VH+cxDEbYCV0+g8dHZyIrjtd+SCJP4BZcQIWAMCk9b2kP05nc+hJAA5Cpz+p9hCKKanO1XR/J8nW0LNweAQsAIDp+qJTnySO2ACrotYr5ejgFFV9muR7SQ89CYdEwAIAmKbrST4rv9MHVkavVeb/bxyHnrIfpOpfDD0Eh0PAAgCYkF4Eq8+SXBx6FoCDVWc75ejg1HX+VdL/eugxOHgCFgDAdGxV8kk8rQlYPZdSOTv0EIxE1T9O8tHQY3CwBCwAgEmoB1n8Zv7e0JMAHKxeq/QP0+69Ytvix8J3k1weehQOjoAFALDiunO/0h/FvTDACqrM/sjRQZ7iQaq+neTW0INwMAQsAIDVdjOVj9ujxYEV1MlHXS1e8XTdd9L51fgDnJUgYAEArKBOJ6lLST73pEFgNfVaJY4O8uUql1L13cSPk2UnYAEArJhOtir1cdLXhp4F4HD0Ws1m34/NGl5E90ed/u2hx2B/BCwAgBXSnftV+TAuawdWWKU+6rmjg7y4Sv2bpH9/6Dl4dQIWAMCqqNxI5eN0NoceBeCwdOdyL0I9vKT650l+MPQUvBoBCwBgyfXijqvP07ngvitgtfVazdx7xavr5Hvp/nToOXh5AhYAwBLrZKPSHydxlAZYfVV/nM6NocdgeVWylcp3klwZehZejoAFALC8blfqw6TuDz0IwGGr5KNEvOIg1FqqvpXOraEn4cUJWAAAS6aT7uRiknNJO0YDrLyuXO7Knzk6yIHpvpPKB0mtDT0KL0bAAgBYIjtHBiu5PvQsAEej1yruveJQXKn0t5PaGHoQnk/AAgBYFp1blTgyCExL1R+694rD0snnSf9aIpCOnYAFADBy208ZvJjK+fgNNjAtZzPPF0MPwcr7SZLf9CDfcROwAADGba26z8aRQWB6LqXz5ynhniPxg6rZ7w49BM92fOgBAAB4Uqczy+zqPH2lqvyRMDAxvVaVv+yUeMWR6e7fS/orSf0HQ8/CkwQsAIDRqQfp/ryr79XQowAMoFN/lHZ0kKPXqd+p9BtJ/XtDz8LjBCwAgDGp3Ej3pSpbB8Bkna3KTdcRMYRKulO/XsnJJD839Dw84g4sAIBRqM10fZrOhbioHZius6n8edrPgwynkq0k303q4tCz8IiABQAwvC+S/CTVd4YeBGA4vZbUT8QrRuJBkg+Svjn0ICwIWAAAw9lM6lySz5L2gg2YsF6r5PuLiAVj0Xcr+WbSd4eeBAELAGAYlRtJfpL07aFHARhapz7plE0XRqdTN7vrW0mJqwMTsAAAjlQ9SPKxu64AFjr5qCo/HnoOeJaqXE7m383ibiwGImABAByBTqdSVzv9YZJ7Q88D8FI6vXjYxEE/G7DWKvVj914xfvVJKr/Wac/HHMjxoQcAAFh9dT/dF7p6rYYeBVgKncwrtZVknq6tztZWpeZVtdXd3amtqvR8Pp9XpbtmW7PMu7vmmc22Mp+nKls7i56VY1tbWcSnSndqce9e9axfOB5t/93PSlg9mx97/Atq1qlKkllnltraXqA4Nuvuqlndnvf8/0zmn3fNTp6Y1/F56kTX1slOHTueOrU1nx+fpU5kduy1zvxEul9P6lRSp2pWp7rnflrl6HR+VJV/ks5/PPQoUyRgAQAcnq0kl5O+UeU1FkzQvJOtqtpM91Z3NivZStVmZ76V1GaSrXRtzmbZ6s68a76Vns3rsU2nTm0fnuntiFSLL86sFl9enSSzxZfPO49C07Ht72H38ZtK+uB/Tqr5bO/xqq3HPko/6ltVfe3k1tbffv9//+rH+/mY/+N/2SfP3r75+omcOHUsG6cqx07Vidmpzd46Nducncqx+aljXa9v9exUHcupbPWpyvxUV7/eqVOVOrGfj88Edf1xp09X6j8aepSpEbAAAA7HzUoutfsyYNXMk9ro7s2qbFZqY97Z9f58c1a12clGOvOd0PQwOm1/vvbc5rLzHNLqidzyMq9/ut94lST/1f9U60nWX/Xv//bP97E/fy2n7528+sZrOfnmvOenu2enc7zf7J6dnnWd3srWm1X9RlKnq+vY879XVl2lfjfJiST/4dCzTImABQBwsNaSXEhy3yUZsGQ686QfpGqjOxu1eOjCRtIbXbVRPd9IZpvJdo7qRZvaiVTbd925Iec5uuo3f+7EG/9o6DmS5K98UFtJbm3/9Vzv/2KfWq87b3Zvnj5x4vjp9Z6/ebyPne6en553vzWb9en07HSq3k73a4c7PQP7nU5OVfLvDz3IVNR/99dv+ekVAGCfenFU5lISj4GH8ZontZH0g3QeJLXe6QdV8wed2UZ1bQw94KrrWf/Jzx1782//F39v9f9Z/9Iv9YnTW7fePJmcmc37rc6xN2fVZ+aVt3peb6bmX6vUyaHnZB8qs3T+kyT/ztCjTIGABQCwD9sbF9eTuvzoEBAwnNpM93pXrVeynq71ec0fzLoeJNkcerpJq/m1Y7P+O3/zf3nno6FHGYv/+j+/ePq11998azafv7M173eq+63U7O1K3un02939VqqcnBqzzvFU/tMkPzv0KKtOwAIAeEXdfbdSF1Ovfv8K8Ermlax1aj1d66mtB121Xt3r6ZlINUY1v9bpv/u3/v47Z4ceZdn8N3/9ypuZzd4+3q+9U8mZefpMOu9WcqaTd5JM5OK08erMT1SO/ZWk/+2hZ1llAhYAwMtb765LVX1n6EFglXWnO71eqbUs7pdbq9RaV9Yff0ofS+C//x/+tzf/fOghVs3P/3wf+7feuvX2yeTMPDkzS87MtnJmXrMzjigera6crM5fTfKNoWdZVVYRAQBeWG0kfTXJjSqvneHAdPU88/VZze6ncz9Va/P02rFZHvS8nvjm/vNbMrP5b/3ssbd+PPQYq+iDxSX017f/esL7f6PfuL+5dqa21t6dbZ44Mz/eZ9Jb71ZyJpm9ebTTrrbqrHfVt2bdv9DJ14aeZxXZwAIAeL55kmudXF08dwx4dTVP9/2qur+V3J+l789Ta7OOO+RW0ax+62ePnf7mFC5tXzb/8y/1iQvH7757/17eq+r3ZrP8VHr+3jx5r1Inhp5vefXpJL+Q1JmhJ1k1AhYAwDN00pXcqORKJ1tDzwNLp2sr1fe7c68yu1fV91NZ97iDiaj5tbXK+3/nf337qdtBjFXXf/vXvninjm+8lxMn30vyXvf8p2azY+/1vN8YerqlUP12Ov9ZUrbcDpCABQCwRy/+d7NqdiXdLoSGF7BzX9Wxmt3rzv3U1t2qY/fEqolyaftKev8X+9TGqWvvbq6dOlOzza/P5vVT88rXj9Xsa/O0y+R32b5k/xeSnB56llUhYAEAbOsk1bmVyuUkD4aeB8at1iu528m9pO+l634csSVJMr9+7ET/3b/59975cOhJOBrvv9/H735892uzLI4jJvX1qvlPz1LvTjlsLSJW/0JSItYBELAAgMkTruDL7WxXzVJ3U303XXeS8t8KT9W19Z2/9fff+dWh52B4P//zfezfffvu17Y281M12/x61exn0vOfmdgF8u+l89dSeX3oQZadpxACAJPVSSr5opIrKeEKdnRqa9Z9t6vvJrO7VblXXYvDgP3kUwFhR1X99snbb//60HMwDttPSby0/def7nz5+3+j37h778pPH8+pb3Tm3+hZfWPW+alUrWKjuJLkm0n+apJTA8+y1GxgAQCTs305+xdJrsbGFSSpedJ303W703eTuueJm7ysqvrt126f/ub7H9jO4+W9/37Pvjh3653TNfv65nzrZ3bu15ql3uvK8pfzztdTItZ+CFgAwJTMk9xM1VWXszNtNe/Knd6a353NZrc7uV8tWPHquuo3T509/a33/1n5uZUD9f4vfvT/s3enwXWf95Xnz/lfEBQXAKR2S5ZExU46M0l3Z1I93V2z9YvUVE/18m7sbldX9cRyt/NmkpqeScWxXDVBV8xNdpKacXc6Q5MUI8fxwtiWY9mW40W2k9iW7XiJrdWkzE2kuJMACIDAvf8zLy5AkRIpcbnAc5fvp4oLAPLeY0sicQ+e3++5aVbr7nTVeEN7/NB3yb5DUi/u1rpDnMS6bhRYAABgENSWT9XKSUut0mGA5ZYorqpzSiadTNWcsEJH1ae02uOb//PoydJJMBjGxzM0v3/mDfOZv7uqcncl3yXrjsSN0tlej6W7Yv8rJStLZ+k1FFgAAKCPeV7SSSln1D59BQySecuTdTKhKpOuK8pbdJ7r0/XQ8ENbt606UDoKBtviwni1mne7qu5upb67ku+KvKJ0tleK80anequU4dJZegkFFgAA6Eezkk5GmuCUCQZFpNrSOcWTcmtKaUyXzoQ+5/p05eH3bdyxan/pKMDljI+nmjt07rYuLbXulv1WTmJdPQosAADQFyLF0WSUU7Z54Y4B4fOSJpJM2NWUEj63x/KgvEKPestb0vjZ9dO3u6m7VbXubrV8T1XVdxYaP6TEugYUWAAAoMe5KeW0rNOKWB6M/hZFqmaiesKuJzhlhVKqSo9u3DGyu3QOoBPe8pY0fu6Wk3fW88MbHN9dp77b9u3L8+y5W/JbJVFivY6h0gEAAACuj2eknIrSHhPkS3LoW67jTCU+a2fCybxlKV2/qxj9qqofX7F39FOlYwCdsnu3W5JeXPgmSfqtB46PDFc3vbFZt+62q7sT32tldeef3S9a+kikfy1uJ3xNnMACAAC9pJZ1NtFpt/dcAf3JnlediUhnJE+xyw1do/LjK/eu+cj4V82JVwyUxX1arn1PXdX3OvU9TnV7rVSdePxYtzr615LWduLx+hEFFgAA6AWzkk4rOitzmyD6lZuWJiKfSTJJaYWuU/nxk401H922zfOlowDdYPwtTw3PrrnrLjcadzu+O8kGWeuv9/Es3RzpbZJGOhizb1BgAQCALuWWnAnVOiXrfOk0wJJI5lL5jOSzrnWudBzgSuz6dFL9x80PjxwvnQXoZu96Z8bUPLNhyMP31nXz/srVHdd0SssZU/w2SeuWLmVvosACAABdI1IsTUU+K3ECBf3J9lxd50xln040UzoP8Hrs+vRwXb9/fNf6faWzAL3m13/9Jytvmrz93kbVuK9yvSHyPUqGX/M3UWJdFgUWAADoBrOSzlg6G6lVOgzQee3xwDo5bXmydBrgalFeAZ21uEurmdZ9Q6k21M79zuWKKq+x8rZIty5/yu5EgQUAAEo5n/ZOq7OW2KeCflQnmrCrU+y0Qi+y69NVld977/Z1Py2dBehnv/5vTo6uXrHyvqFGvaFV+75KuSvt62bXSP5Xkm4vnbEbUGABAIBl5DlbE3VdT9jmFkH0nUSxNaHodG1PVOHSAfQo1ycrD//exh2r9peOAgya8XdmdbOeum++rjc0rJ9Prf8g+57SuUqjwAIAAEvtvOXJOvWU7enSYYClEGXGqU5JOi2pWToPcEMor4Cu8pu/mTXDp6Y+EeWfSlFkuXSoAq5+Ez4AAMDVOy/puKQ9kvZGOUZ5hf7jpqKTUv28Uz2n9r/zlFfoba5Ppq5/n/IK6B7vf7/PDd+79l9IeliL5ZUH7ywSBRYAAOiEWtJUopdkPy9pr9ov5ufKxgI6LI6kyUT7FD0l+aDSoJxF36jrxge3sLAd6Drj426uvHfk3yn+T5La9zZfbLHQyoXv+s5Q6QAAcPX8ypvJal340zmV5MucpE1jqVMBg8uzUs5Jmoo0bSm2pPTnJ00YdDmf6KRdnVLUHMTRDfS/uP7c6RWjz5bOAeDyxsddS/r1Bx84ezLy71zywcVCyxe+00XvUD+UWuzAArAcakVNOU3FTTl1u4xyU0oduWWltfDzVFIrdhTVUdKZW5tcWbKUKkkV24oqW5ZcRbIvlF2ubDWiNFSrEalhqyG5ktSgFMMAa6ldVp2zNaUwKoX+liiSzko6aXmydB5gKcX1504NjX582zZzKyzQA377HWf/d8f/j652ss5pl1yRenWBFgUWgBvSXiFYzSWZd6U5xXOS5pM0bTXbxVU/3sDkylIjqofaBZgbbpdbQ1GGJA9ZbkgZUvu0KyPb6DntT3M8I2lKqs+p/XNgAFTnpZyso1MVO60wAGJ/7tTQGsoroMf89tvPvs32LknD1/67F5us3jmhRYEF4GrVis7LOq/2cuZZS3OR+ETnKqT9N8OQpSHZDaVdckkZUjIkayjyioVf06NfE0Hvc0uqZxJPS5mWPdOZE5BAD4gjZyrRSdlnHf7dx2CgvAJ624PvmPqVpP6kpNEbeqDFE1pdjAILwKtEalmakTSjeCbOeVNULRtLjTpZYVVDclaofYJr4UcPSVkhiTFG3LBI85amJU0rml4oqIEB43lJJ6KccngBj8FSN+rPn65GP0Z5BfS2B3916pdS1Z+T9IaOPKDVPoqvxZVa7oodpxRYwICLIsczsqYjz0iZoazqfu2dXVqRaMjSClntYiseirTC9lAUTnPhYvXC0vVZydOyppUwGoXBlWq6dk5W8imlCz4rB5ZbVT9+sjH6UcoroD+8652n7q2aQ5+V9ItL+kTxyzceLjMKLGDAtHdWeVbSOcXn5ExL/bijCpJkuVErK2wPKa88zaUVC9/Yz9V/mmqP+c7W8qyVWUlzpUMBpS0uZa/k45HOlc4DFFPVj29ojH701yivgL7yrneeGquajU9I/pWlfab2Ea2Fg1rLhgILGAwtSZOSJxeuvKewwsuiqn2Cq11sRVrhSwuuxUX06DJpb+2ZlzQbaVbKbOVqZG62owAAIABJREFUJkqrdDagq9jzik5FOrHw3wwwuCo/vqGxhvIK6FPjb8nw+bWT22T9b8v1nIulknPhuyV5HgosoG/5vJSpJJO2p0unQW+LZLeXz6+QPBRlxcItixfv5qLoWgILf0nPK5mTNWf5fOI5O3PiVBXwmqLMSI1jls4wJgiI8goYGPFvPzD1f1v5HRVZKbJwDZAjy+rUvSgUWEBf8Zyks0o9IZtlzCjDGlI0pIvGFqP2rYtWGlLVWCi7WET/slZ7kXSasuYVzUmeU+q52HPcBAhcmyTn7MZRJROlswBdg/IKGDgPPnD230beJmlluRSdGzekwAJ63MKNgWfV/jZTOg9wLSw3kgzJaiyc7BqyXElpqF1wNdo/r6qXf94zO7vqhf8+W2rvpGpJaRdVUTPSvL3wIwUVcOOipNKk45cUcfIYuIhdf+G+odGPUF4Bg+fd75j47xV9QtIdpbNIl44b5hpvnKLAAnrQwlTxlJTT7b1WwOBo38BoW2kkquRUktvfkkrWwtuyF8quKJW88PdjncbiX5VpF2KyHeU1dsM5daRUqlpRIrmWUktK5NpRHdW1pZZdNWulppQClk1t+Yyko4k4fQy8QuzP7Z1c89Hdu81+RGBAveudp+6tWo1PK/6l0lmuKAufub/GxD8FFtBballnFZ0Uu28AAAPNTUnHJZ1U1CydBuhGdaP+/AtnRz9CeQVg/Fdz0/lqaruUf1M6y9V59TJ4CiygN8xGOiXpLKc6AAADbt7xsbg+qVTcqgtcAeUVgFcrvdz9WrVLLLu9m6NX9ogAA8rTsg9IesHSGcorAMDASuYkH5KqpyMdp7wCXkNVP055BeDVnC07R/6j4rdKOlc6zetbWPuRi3aDAOg2i8VV9imZKp0GAIBi7DnFL8qNZxSdUF5jOQYAqaof3zMx+qeUVwCuZPPDI3/mqvrvJO0rneWqcQIL6DpTkV6guAIADLykXVzFz0g6TnEFXIXKlFcArsqm7Wv/1lX1jyX9deksV4sCC+gOs5L2Szrg9s8BABhQPh9pf1xRXAHXwK6/sGdiDeUVgKu2afvao1NrRn7F1vbSWa4GS9yBojwv5YSk06WTAABQVDyn9q2CJ8TOR+Ca2PUXfjI5+mHKKwDX68EHzv7byH8kaVXpLFfCCSygjFry0Sh7RHkFABhk9nx7x9XCqCDlFXBNKK8AdMKmnWOPpM4/UXygdJYrocACll2mIu2VcpJbBQEAAytuST5qdlwB18025RWAjtmya+w7auWXJT1eOsvlUGABy8bzkg9KPmBpvnQaAABKyOIp5Kp+WtGRJHXpTEAvapdXayivAHTU5kdGT668d+SfK/4dSV315ws7sIAlFkWWT0k6JolP0gEAAylR7OqEpKNKmqXzAL3Klc4k+cKeyZHPUl4BWErvesfk/1QlH5b0xtJZJAosYIl5XsmLsqZLJwEAoKBJxS+Km3aBG+JKZ+pW831bdq3fVzoLgMHwrneeGms0hz4Y6S2ls1BgAUslmpB9WGI0AgAwsKYlH1Y0VToI0PvqU5VWPLTx4dUHSycBMHi64ZZCdmABnVdLOiLrEOUVAGAgxXO1fND285RXQAe4Pk15BaCkTTvHHqkb/m8VPVUqAwUW0EGJZto3DOp06SwAACy3RK26zhHZz1TRSb6MA3SA69NVVmylvAJQ2tYPjjy1ctXsP7a1vcTzM0IIdIp1OtFLlvhvCgAwUBLF0im5OsKCdqCDXJ+uh1oPbd1284HSUQDgYg++/ew/jb1dy7jgnRNYwA2KlIX9HkcorwAAg6eajPSc5IOUV0DnmPIKQBfb9PDYF+qh5i9a2rZcz8kJLOCGeF7KIUkzpZMAALCs4jm5fkmpTpWOAvSdqn58ZWt09/guc3MngK734DvO/vPEH5T0hqV8Hk5gAdct05ZeEOUVAGCw1JKPqtKzlFfAEqjqx/dMjP4p5RWAXrFpx9hn5+f9S5IeXcrn4QQWcB0iTUo6xMggAGCQxJpwfEjRXOksQF+q/PieiTV/unu3W6WjAMD1eM87Jv5lHf0XSXd3+rE5gQVcoyinLR2kvAIADIo6mZW8x7VfoLwCOs+uz1j1I5RXAHrdxh2jn1np/D1Ff6wOv2bmBBZwDSyfiHKsdA4AAJZFVEc6Zvmo+MINsCTs+ow9/NDGHav2l84CAJ307l+d+B9V6T9L+rudeDxOYAFXIe3P2Y9QXgEABoXlU3L1tOWXRHkFLAnKKwD9bPOu0b9cee/IL9v5PyRN3OjjcQILeB2RYvmQlMnSWQAAWHLx+SiHLPP3HrCEKK8ADJLfeuDcXQ3V75fytut9DAos4DVEkVUdknLDbTEAAN0sUWwfk/ySEj4/BJaU/2Jl1nyMmwYBDJp3v33yn8j5T5J+8Vp/LyOEwBVEkeMXKa8AAANgqrKfVXSE8gpYWnG+uGdqzZ9QXgEYRJsfHvnayaGRX7b0W5Ku6bQ3J7CAKzsi6XTpEAAALB3PS/URpTpVOgkwCOJ8ce/kyIe4aRAApP/rnRO3rmzqNyP9B0nDr/frKbCAy6O8AgD0r/a44OlIhxU1S8cB+l5Vn3WtT296eOwLpaMAQLd597+f+Dm39N5I/6skX+nXUWABr+IjUiivAAB9KcpM5INVPF06CzAQqvrs7Pz8xj945NYXS0cBgG72rgcm/odKer+kf3S5j1NgARexdCLSsdI5AABYAnWiY5aPSuLzP2A5VPXZan7Fxo2PrKa8AoCr9J53TPzLOvp9SW+++P0UWMCiaELWodIxAADoOFdTTg4mOl86CjAo4nxxy87RXaVzAEAvGn9LhudGJn4t8oOS7pQosIBFs4r2yapLBwEAoFMitxy95ErHw99wwLKx88VNlFcAcMPG33l49Vxrzb9P/G4KLECel/NTltgCAPpJrAnFBx3Nl84CDApbE82qsfGh7as51Q8AHfRbDxwfocDCoKul7Jc8UzoIAAAdMm9Vh5KcLR0EGCS2JoarxsZxyisAWBJDpQMAZflFSZRXAIDeZ8fR6UiHk3CqGFhGrvLlTTtGd5bOAQD9jAILg+yklMnSIQAAuGHJnOQDiaZKRwEGDeUVACwPCiwMKM9EOebSMQAAuBF2VOeUqupF1VxEAiyvTNr59KYdY58vnQQABgEFFgaQW1YOSWL/GwCgdyVziQ5YnqK6ApZbJisNbdy4c/XB0kkAYFBQYGEQHYm4kQkA0KMuOnVlTl0By8/5m3qo+Webt41SXgHAMqLAwkCJctrSROkcAABcl4VdV+LUFVBE1Hpiy85120vnAIBBRIGFAeI5R0fF4isAQK9h1xVQVJypDDU3bt1284HSWQBgUFFgYSBEkpPDMp/0AwB6DKeugKJsfWO2OffoH+y89cXSWQBgkFFgYSBYOiVrunQOAACump0kJ+3qsEJ1BZQQ54ubd47uKp0DAECBhQEQad7SsdI5AAC4BvOqc9AyexuBIjJp+2Obd44+UToJAKCNAgt9z9Jhia9cAwB6Q6Izdg5JVbN0FmAwZbJqDf3uxkdWMzIIAF2EAgv97oykc6VDAADwuuz5tHzIzlmFG0eAIhr50ubtow+XjgEAeDUKLPSzWtYxpXQMAABem6OJWjpoZ750FmAQxZlS/LEt20e/UjoLAODyKLDQx3xcCeMXAICuFbkV6XAlnTRfcAGKiDNVV0O/+9D21YdKZwEAXBkFFvqU56KcYgBjSb0gafZKH4w0ZemlpXhiO6OJb3+dX/Zz4s84AN1tUqoOVKk5dQWU4nxly87RHaVjAABeHy/u0KfqoxZfy74Bk5IOXnjLOqfoyLU8wFKWh4knJL3ezVx7XvkOO2OJb7vksaSbLd3ZyXwA8DpqyYcVnTB3jABFxJqq3Pr4ph3rvlw6CwDg6lBgoe8kOmd7snSObmdpKtKBhbcOSbniaap+2SOW+Kyksxe/75VFm5V1kW+96F23SLpjqbMBGBD2jGrt12ucYAWw1Oonb6pWfHJ8+wgjgwDQQyiw0FciaanG1nqatU/RtKXpSIelV3ZSfdJQdUDkM2rfXrloz6Uf15v8cu/185Kq5coGoIdFkX1CtQ6LP3SBMpxzdvWxTTvGOHUFAD2IAgt9xdJZWedL5yhqoaxK8qLtGUkXXirxiunGWdp70ZsXyi1bb0oWii3rv1KWdIoSQC+x5yQdUDRVOgowqFJlulEP/e7GnasPvv6vBgB0Iwos9I1IcnRi0GqDKPstn4vzouOZxZbKHrD/IwpLLiq2csmprTdLkuxblbze4nkAfSbRGbk+6FSt0lmAQRW3vrZlx7ptpXMAAG4MBRb6xgCcvmrKrqUcVjRt+8UkM1489BMKqy7VLrOSy5Vab174WENSY5lzAVhCkVqSDlk+rZo/n4Fl5zqSTtVDrfdv3XbzgdJxAAA3jgILfSGKLB8vnWMJNB1Nxzq0WFwtfiBhILCHXVJqLdyEeHMk237TwseGy8UDcIMmJR9wNF86CDCQXMf2VzbtGN1ZOgoAoHMosNAX3F68PVc6RwfUspuuM7tYWsVeKK34Cn6/snRK0ilLUvKThXe/eeHHW2Sv55QW0BNqxUckHedPbKCQqj7bcj710PaxL5aOAgDoLAos9LyFmwdPlM5xA2rZzaQ+Ivukk0MvTwPyEmiA7bnwYyJZtyhan+hWV15HoQV0mWQ2rvZbmikdBRhIrmNV32w1hj/z0LZVjAwCQB+iwELPszSpXjt9ZUXyfFIfsXRK0UHLXBOIK4tOSjppv6LQsm61KLSAkiyfin3IUV06CzCI7HpCVeOTm7av5dQVAPQxCiz0g5OlA1w1K4qmFnYfHTQnrHC9FgutaI8UxbrV0TrZtyZZb2lF6YhA/3NT8oEkE6WTAAPJdRJ9q/LwZzZuX7W/dBwAwNKiwEKvm5VeXmzexZrtJezVSSkHGQ1Epzk6IemEkj22KkU/E6lh+/4kptACOm7S0oEkLGoHCrA1USuf2vLwur8onQUAsDwosNDbopNd2wW1T1udk3TA8pFI55gRxLJojzHtWVgK/9xioSX7VknrFDWkMG4IXIdEkXRU9lGFP9SBZec6lp60h/98y44RTl0BwAChwEIva8aa6ML+qn3aqtYp2Qck8RoHZS0UWgujq5J0W6Sbbd9PmQVcA2euivdHPscf68AysyLVZ6L8+eadnLoCgEFEgYWeFelUV609t5tKDsvZo3iqa0+GAdJxS8eVPCfpNkljapda6xg1BC4v0RmnOhipVToLMGjizDn+1uaHx/6/0lkAAOVQYKEnRZHtM11RXy0WV6r3SJ5SaK7QU44vfNuj9i2G90u+TdI6KZRZGHiJWrIOWT5dOgswcKxY9ZmVdf3+8V3r95WOAwAoiwILPcnypKJm2RCLxZX2SKK4Qs9z+2TJHil7IjUs3R/pdstjlFkYTNU5pXnAapwvnQQYNHHmVNdPbt617o9KZwEAdAcKLPSonCl2k9+riqtuOAYGdNZimWVpj9IakqsNsoYkb2BvFvpe+5jviSSH7QZ/yAPLaeHUVaPK771357qflo4DAOgeFFjoQW5Gmlr2+spuqq6PyP6JKK4wSFw1Je1pj+zmWUe3p9LNlFnoS8mcXB1QCvw9Awy4WFNy/anNO8YeL50FANB9KLDQc2ydWdZr/RaLK2WP7EmKKwy6WMcUHXu5zPLNkjYoGZJUlc4HXC9HZ2IdKj6iDgyYOHNxfuDkM1t2rHuhdB4AQHeiwELPSXJmWZ7IipT9SvbKPrcszwn0mHaZlWOSnpV1i6L1st9MmYUeUys+Euk4+wyBZdQeFzxbZcWWjTtXHywdBwDQ3Siw0GtmJc0t6TNYcXRO0bORDy/pcwH9JDop6aSSPbJuSXSz7TdRZqGrJbNStU/tv18ALBfnXGX/ycYdY18vHQUA0BsosNBjfFZLOT3YXtC+L9LTS/ckwACITrpdZv0k1q2K1lt+M7cZomvYUXRCrg4rzIYDy8XOXCp/u2oNPcapKwDAtaDAQk+xNLEkrzKsSNrvaG8kxgWBDnJ0QtKJqLXPatwV5W7LY5RZKMfNyPudTC7pF0UAvMyKrbOtRnPr1m03HygdBwDQeyiw0DuimTjzHX1MK4qmlTwr+cXl3A0PDBqrmpey39L+qLXCatxl5e5QZmF5TUXZ71qd/fsEwBW50nRq/cmmnSNfK50FANC7KLDQO6yJzj5ee1xQ0tMSS3uB5bRYZkXaH2WF5bts3Z2IMgtLI06Uo7KPmq9WAMvCzlxtf6duDD22dccqTl0BAG4IBRZ6RqSJjtRMi6euVD8peaoTDwng+llql1nR/kgrLN8l542K1ovl7+iASPNSfcCqJqmugGXQvl1wsjU0vHnrNoorAEBnUGChV8y2X+TeICup9YKtp7gqHeg+i2WWov2SbpO1XvLPcJMhbsCkpAPtU38AlpQVS5Np6KObPjjGuCAAoKMosNArJm/8ITIr+SlbL974YwFYBscVHZfyvKTbIt1s+37KLFyNtMcEj1aVX1JdOg3Q/2xN1JU+tnn7yFdLZwEA9CcKLPSK6x/1s5LkgK29yg08DoCSjls6ruQ5SbdF+TtWNcK+LFyO7Tkn+yOfC+UVsKQW91xt3jHyh6WzAAD6GwUWekFL0sz1/MZILSf7Lf+YvSdA3zhu+biUYclviOp7KLOwyNGZ2vVBq2qVzgL0MztzdfI3qevHtuxav690HgBA/6PAQi+4zlNTmbWrb3DqCuhbc1L2W94vZTjS/YwYDrRa8ZFIx12z4xBYKnbmpHyvruvPUFwBAJYTBRa6XzSla3ktYkXJQbnao4TyChgMc5aeU/Jcottt3Sx7A2XWoKhmo+z3dZ7WBXB17Ppbw3X9mXGKKwBAARRY6GqRVFlTVz39Z0XRXslPK8wMAoPI1jFJx5Q86+j2WG+SMiL5ptLZ0HmWT8U55JpV7cBSSZWjVfyZTTvHniidBQAwuCiw0NUsz0a5uj0myZzkA5KeXtpUAHpFFsqsxCtt3ynlLsqsvlFLfjHRSXYcAkvEOpboM1t2jH6ldBQAACiw0OUyfdW/znpS0uSSxgHQk2ydl7Jf0v7YKxVtsPRGSTdJahSOh2uVzErVPkmzpaMAfWmxuNo5QnEFAOgaFFjocj6n1/3SeqYlPSmZ8grA63J0XtJzkp5T6jviap2V+ziV1RvaI4M+pDAyCHScdcxuPbZpx7ovl44CAMArUWChq1mZvmJ9ZUXKfkU/pbwCcF1cHbV0tJb2V/IdUe62spYyq/skalnVwShnSmcB+s6F4mrsK5IZygUAdCUKLHSz85Euv//KSqQXHD+1zJkA9KFKnlX7Frv9UnWTpIUyS+vFiGE3mI69z8lc6SBAP4l0vKr8mU071lBcAQC6HgUWulaUacuv/sCF8kqUVwCWQGYlLZRZukPWekV3i31Zy89O6hyXfKR6/XlyAFfpQnG1fc1XbIorAEBv8LsfmOAvLXSn6EVZZy95nxUlP5X840KpAAyoKHfa1TqlvpcRw+XgppIDkidKJwH6RaTjsh/bvGPNlymuAAC9piodALgia+aSt5M5yisApVh+ScmzUvV1yT+UdXLhtBY6b1rS85RXQGdEOt5qtHbddN/a/3PLzrVforwCAPQiRgjRpdySXt51EmXGrr4lhWXtAAprjxgqL+/LkvNGRevEiOGNsaPoRKLDZmQQuCGpMl3FP6ijZ266b+1Xx8fNzZ0AgJ5GgYWulNSzdnv/VZQZi/IKQDd6ucyKdKes9Y7uEvuyroObqtsjg5fZfgjgKi0WV1G+sGnn6J7SeQAA6BQKLHSlyp5pf+md8gpAb7D0kqKXJD3zcpnle6SwL+t1VeeU7JfMLYPAdXKl43Van5P8AsUVAKAfUWChK0WekeoZUV4B6EGLZVZS77Or26P6HqtaTZn1ChdGBsPIIHCdFourPRNjX969263SeQAAWCoUWOhSOWNV3wrlFYAeZntGyn7L++N6lVPdHuUey5RZjAwC182VppX6b+tUT63cu/br4191s3QmAACWGgUWuo/VdPx1yisA/cRZLLP0yjJrTMqA7ctiZBC4Hq50XNHe+Vb9+Pt2jf2kdB4AAJYTBRa6T3Sc8gpAP7u4zJJyW6SbLb1R0ipJVel8S4aRQeC6uNLxtPKJ4b0j3+S0FQBgUFFgoYtEkqXkqMxACYCBcdzScUnPSerjMouRQeCaODOq/Ddq1d8b3jv6NxRXAIBBR4GFLrFQXklS+3g8AAyiviyzLE1J2h95vnQWoKs5M5InK+tTrVbrwJad6/eVjgQAQLegwEIXuKi8kqRUJ5gsAYBLyyxJt0S5z/LKwrmu3sLIYB0xMgi8FutELT3vuvXZLbsorQAAuBwKLBT2ivJKklSfePX7AGCgHZd03Kr2RfXNlt4kabW6usxiZBB4TQunrRQ9enJo7Te2beOEIgAAr4UCCwVdrrzSrORzBcIAQA/IrOXDkg4nWSVnfTeWWYwMAq/BOmHp+eG69dlxTlsBAHDVKLBQ0GW/Jn9yuVMAQC+yPSNpRheXWfabFA2r1M4sRgaBy4oyK+X7lr6zYWj0e7/GaSsAAK4ZBRYKuswJLOsML3kA4NpcKLOiw5KU6HZXvlnJ3Vq2MsvNyPudTDIyCLRLK9sTLTX/fLjyvvduX/fT0pkAAOhlFFgo5LLjg5J0ZpmDAEDfsXVMyTFJzzq6va50i6O7tGRlVqYi7XctTpVgoC2WVpb+PKr3b9657oXSmQAA6BcUWFhmUWw5V/j6fJ2zMl+7B4BOiXXM0TFJzyj1HbEbkt9seZWUG9ubtTAymJiRQQwsSisAAJYHBRaWUfvUlV/rJU5VnVF4DQQAS8LV0YUvERyW6tWR1ln6Wam66drLLEYGMbgulFZuPZbop5RWAAAsPQosdBWrPpPLjxYCADrK05am9aoyy0N63VFDRgYxeF4urfxYo9Ha995t6/aWzgQAwCChwMLysKQrjQ2+rFXHfCUfAJbdxWWWJOkOSbdIeoOs1Vr8ykJ7ZPBY5JccRgbR/xZLq8ifHRpq/ZTSCgCAciiwsDyu7mXOJDtUAKArHF349rSiO6I07Opu1/XzsdY6VaN0QGDp5JAa3qdW/T1VOrl5x+ie0okAAAAFFpbcYh91NeeqPEV/BQBd56jlF6Zm5z72gQ/fMvHg28/8cq3Wz1Zq/N24HlWqW0oHBG6Ic87xMVV+InVramVGfzi+3bOlYwEAgEv53Q9M0BhgCbUXt1+lZyU9unRZAADXwq5Sq/X1m+4Z/Yvxcdev/PiDbzt6R266aUMa1YaqJQot9Iw4L8re57r+m1Q6uWXHGKesAADochRY6CbflfSl0iEAAJLsc5qf/fjmR257/mp/y4P/buqOtFobXOl+1dUvUmihW8R5sYrnmo3W1xotT6xcce5H49vumi6dCwAAXD0KLCyRSL7GjVb2V5V8a8kiAQCu1gstjXz0oZ2evJEHGf/VqTvPu3VfXP0vVbRCVe5L7de43RDoDDsvKp5Tw19Lq0VhBQBAH2AHFpbIdaxjT6aWJAoA4Kq83sjgtRrftfYlSS9JelKS3vPAmX8QuUGhhU5bLKxqt77u+Ozw0OiPxreZwgoAgD7CCSx0D+djin9aOgYADCJXnppv1h9/366xnyzXc77ngXP/oE6zIemfWVUjrtcp1frlen70JleaVq2jso4m9bclaf6WmR+///13niudDQAALB1OYKHDrmlp+6VqT1/vbwUA3Ij6hWY99tH37bqxkcFrtXHnmu8u/PRJSXrwnefekPnmvZKkqvpnrkWpBanKYdc+H9XHJD3ZjM889PDoc6VjAQCA5UWBhQ67/gbKVWYSGiwAWC6VXLeiL2/eOfaE7eInsjdtW3NE0pGFN5+UpN964NxdDTXvqRv62Uar+nlJirVB4UsefceZcfySJNWV/8p167QkrVw5+tT4H5o1AwAADDhGCNE51rXvvbrU70ua60gWAMBrao8Mznz8fbtuX7aRwU55zzum/2Fdz1uVfs519XckKdL9pXPh6tk5oni2/Ub914lOaYXPbt42+mzhaAAAoEtRYKFb1JIeKh0CAAZD/UJLYzd8y2A3effbz/4jSaoix9W/kKQ4VryhZK5Bd0lRpfpkpG9I0tRc85kPfPiWiZLZAABAb6HAQpfItOT/t3QKAOhzteUvbdyx9qvdMDK49OJ3v33iH778duPnrfzshTcrrU+tdQWC9Q/nvOPDi2/Wzmknf7X49tTc6DMf+LApqgAAwA2jwEIHZGF1+w2tIzkp6YOdyQMAuIyzqVd8dMuuVftKB+kW73n79D215u+68I6G/2u3/KbFN1PVN6uuxoqE6xJx5qr4xYvf16ryZFXnmCTVdTW19Y9HniqTDgAADBKWuKMDbrC6apu98YcAAFxOrTyzamj0z8a3ebp0lm6y8eHVByUdvOhdT1788Xe9c+beqp57wyt/nyv/gmr/zGUf1Lol0WhHg3aQnTm9opBqfyBnk3z9le+uXJ3btHPkx8sSDgAA4DVQYOEGtc9edQDL2wGg8+qofmLLjrEvD8bIYGdt3bbqgKQDl/nQk5d5nyTpt3/19Aa7uuN1H3youslN/c83EE+SFHtKaT1xtb++VTemt+5a+6MbfV4AAIDlxgghuoP1vKJPlo4BAP0i1pk0VnxkoYQBAAAAehonsNAt5ksHAIB+USdPzY1NfOIP/uCemdJZAAAAgE6gwMJ16tjo4ALPtx8TAHDdkqYqP75159hfl44CAAAAdBIFFq5TJ8srSambHX9MABgsx71i6CObtq05UjoIAAAA0GkUWLgOnT59JYkRQgC4bpa/Pzx54NHx3b/AhRgAAADoSxRYuEZLUl7JruYTRggB4Jokc6nqRzfvWP/90lEAAACApUSBhWu0NGN+dZ3aTBACwDXIUTcaH9m8fexo6SQAAADAUqPAQlewVZfOAAC9wvL37xsa+dSvbTPj1wAAABgIFFi4BkszPrjw2GGJOwC8tii7xqDDAAAgAElEQVTnq2bjk5seWfu3pbMAAAAAy4kCC9dgCQsmqxYrsADgiiwfmnU+8gePrD1VOgsAAACw3CiwcJWW8vSV5FR1aLAA4FXsKlb9zb8/sfZzb93tVuk8AAAAQAkUWLhKSzveF3EFIQC8in2uSr37vTtHnysdBQAAACiJAgtdIVLYgAUAF6tfmJptfewDH75lonQSAAAAoDQKLHQFK2aJOwBIkuqofuKme8e+snnc3NAKAAAAiAILXaOqxA4sAAMu1pmGVnx0445V+0tnAQAAALoJBRa6RF1xAgvAIEv8g7vWrH30Nz7g86WzAAAAAN2GAgtdwlXpBABQguXzTdefe2jn6LdLZwEAAAC6FQUWXkO0bKei7IqLCAEMGsuHhmfysU0fGTtROgsAAADQzSiw8BqWc6QvjWV8MgAoyq5i1d/8+xNrP/fW3W6VzgMAAAB0OwosXMEynr5qPx87sAAMBFeequr6z967c/S50lkAAACAXkGBhStY5jIp7MAC0P9s/aRZz+5+aOdtk6WzAAAAAL2EAgvdggILQP9Kmqr8+KYdI9+QRln4BwAAAFwjCix0CwosAP3quFcMfWTTtjVHSgcBAAAAehUFFi5ltddfLfvzZoXCDiwAfcZ6ckNj5LO/ts3zpaMAAAAAvYwCC5cqNdgSDxd6ZgDouMizUfPRrTvW/7B0FgAAAKAfUGChW1BgAegP8QHd1Pro1v+y/nTpKAAAAEC/oMBCl8jKZb/5EAA6q47qJ266b+wr4+OuS4cBAAAA+gkFFrqDPVxsfBEAbpCtM3Wr9bEtu9bvK50FAAAA6EcUWOgO0crSEQDgetj+4XDrxKPju+6fLZ0FAAAA6FcUWGgrdfvgomglE4QAeknk2dr15x/aMfrt0lkAAACAfkeBhbbS43tmiTuA3pHUe7NibPdD23y2dBYAAABgEFBgoVs0IjUstUoHAYArSppS9aXNO8e+brt09Q8AAAAMjKp0AGCRFfZgAehiOeoVQ3+4+eGRr1FeAQAAAMuLE1iDrvTuq4vZKxVNl44BABdzFFf65op7Rj8/Pu5m6TwAAADAIKLAGnTdUl5JUrJa8unSMQBgUawzjWrFx9+7fdVPS2cBAAAABhkFFrpG5NVcRAigW7jOj1Zq9JPjuzxbOgsAAAAw6CiwBlk3jQ9KkrK6HQoACrLP1U19ausfjz5VOgoAAACANgqsQdV15ZUke1XXZQIwWKrq+amZ85/4wIdvmSgdBQAAAMDLKLAGVRcWRY5Wlc4AYEAlc61Kn31o+9pvl44CAAAA4NUosNBFvLormzUAfS32wZuG9PHxbaMnSmcBAAAAcHkUWOgezmr6KwDLqI7zl3snRr64e7dbpcMAAAAAuDIKLHST1aUDABgYx1vV/Mcf2n7LodJBAAAAALw+Cix0j2QttxACWEp2Faf+zorJg58d3/0Lc6XzAAAAALg6FFjoIl4TyWYRFoAlYGsi8zOf2PTIbc+XzgIAAADg2lBgDZyoi085VZZXSZkuHQRAf3GdHw0Pjz46vmOUP18AAACAHkSBNXC6trySJCVZa4sXmAA6ZVLxo5t2jT5dOggAAACA60eBha5iZ63kY6VzAOh9rvOjudbMp9//oTvPlc4CAAAA4MZQYA2Urh4fbLPXsgELwI1w5SlFn960a/THpbMAAAAA6AwKrIHS5eWVpERruz8lgG7lOj+amx/59Ps/ZE5dAQAAAH2EAmtQWD1xt5+Vtb1QtAHoMvFMquozm3et+X7pKAAAAAA6jwILXcajpRMA6DHWs1Pn5z71gQ/fMlE6CgAAAIClQYE1KHrg9NUCCiwAV8c+V6f5ma071v+wdBQAAAAAS4sCaxD0yPigJMkeU3olLIBSEv+gOX/uMW4YBAAAAAYDBRa6S7Iy1kpH50tHAdCN6sm61fj01j8eeap0EgAAAADLhwJrEPTYgSZHo5KOl84BoHvYVZT8YHho+rHxnXdNl84DAAAAYHlRYKEbjYkCC8Ci6HTt1ie37BzbUzoKAAAAgDIosNCFPNpzx8YAdJyj2PrOivtGPjs+7rnSeQAAAACUQ4HV96L2FvfeYWeUPe7AoMtRa8UnNu5cfbB0EgAAAADlUWD1vd4qrxaMlQ4AoJCkGedrvzw59sRbd7tVOg4AAACA7kCBha5TR2M9WbsBuCGV/NNa/tSWnSPswAMAAABwCQosdB0roz16cgzAdYgya/tL792+9hu2GSAGAAAA8CpV6QBYQr3bAa2N1CgdAsDSc50fTUye/73NO0b/mvIKAAAAwJVwAgtdyKrkkShnSicBsDQsnUrz/Kc3PXLb86WzAAAAAOh+FFj9rIfPMqS9yJ0CC+gzdlqWn1wxcfAL47t/Ya50HgAAAAC9gQIL3Sn1mNy7M5AAXi3yfrv61Mbta4+WzgIAAACgt1Bg9Surp09g2R7t4fgALhJ5Wo3q8c3bVn+XPVcAAAAArgdL3NGVIq0rnQHAjXEU1a3v3DS09ve2fHDNdyivAAAAAFwvTmD1q95/mbi+dAAA18/K4daK4U9v3TZ6oHQWAAAAAL2PAgvdihNYQA+KMmv7S8P3jH5zfNx16TwAAAAA+gMFFrrVGknDkrilDOgBdhUlPzg7Ofu5P9x9+1TpPAAAAAD6CwVWX4raW9x7XLReFreVAd0uOWI3Pr1x56r9paMAAAAA6E8UWH2nT8orSbHWWRRYQLeKMtuIv7jivtFvMS4IAAAAYClRYPWd/iivJEnW+j5YRg/0nUqua+c7zbnRL275kM+VzgMAAACg/1FgoWtZXtcP1ykC/aV+IUMrHtu8bc2R0kkAAAAADA4KrL7TPyOEStaXjgCgzdYZ1fUXNz287nulswAAAAAYPBRY6F7tJe4ASrLnktZfrrxn7Kvj426WjgMAAABgMFFg9RMvfNcnU3exRhwNyeJFM7DM7CpKftDM7Ocf2nnbZOk8AAAAAAYbBVY/6ZPiapElq9KYopOlswCDJPbBujH32NZtNx8onQUAAAAAJAosdLtovUSBBSyP6njdyhe2/vHIU6WTAAAAAMDFKLD6Sh8tcL8g6/vvfxPQZexzqvWX/83Umr966263SscBAAAAgFeiwOor/Vj0VOv6bjYS6Bb2XFR/867VI0/8xgd8vnQcAAAAALgSCix0tahe774s5oCi6kr67nxmv8SCdgAAAAC9gAKrT0RRXxY91noOYAEdtcdV9djG7WuPlg4CAAAAAFeLAqtP9GV5JcnxmKxKUV06C9DTXO+rGys/v3XbKm4WBAAAANBzKLDQ7Sono5HPlA4C9KLYBz0/+6XNj9z2fOksAAAAAHC9KLD6QD/ePXgJV+uUUGAB18DOS61W4ytbd635sTTCIC4AAACAnkaB1Qf6urySpGi9pH2lYwC9IUfruvHldnFliisAAAAAfYECC10vyvrSGYBu5+SYlK8N3zf2g/FxszMOAAAAQF+hwOoD/T9CqHXcRAhcQXS6VeWrq+8d/S7FFQAAAIB+RYHVB/q6vJIWRwgBXCJH46Gv3XTv6h9SXAEAAADodxRY6H7Wek5gAW2xD7rWVzftHHnGZscVAAAAgMFAgYXuFw1JGZE8WToKUEpU7x+qGl977/aRZyRp88OlEwEAAADA8qHAQo+o1kmhwMJAsatE9XN1o/nE1m03HyidBwAAAABKocDqcX2/wH2Rs17RwdIxgOXgKEp+PNzKl8Y/NHqsdB4AAAAAKI0Cq8d5UCqsZP1A/O/EQIsy60rfGW7W3xjftf5M6TwAAAAA0C2GpHYtkFhiHzC6lO114V9P9K3qeKtqfWP1G0e/Nz7uudJpAAAAAKDbDEntMbQL5VWkmLMuvWMw/kklWl86A9BpUb0/9dBfr9qw5qnxcdel8wAAAABAt3r1COFF5dXF1UgGZVQN3cleL45goR8kTbv6kSp/bfP20aOl4wAAAABAL3jNHViX1gXWhXaLIqE7WK/8h9S/kpWxVzmZKR0FuC7RaTX0zZXN0e+MP+zZ0nEAAAAAoJdc4xL3vFyYMGpY3qCUVwtcZ50sCiz0jDitqqWnq6Hq+0NvXPscY4IAAAAAcH2u/xbCS8qrl8cLbQ5oYWmk0jpHR0rnAF5PkmMN+zvn52a+//4P3XmudB4AAAAA6HXXX2Bd4qIqi/IKS8Ty2MAdO0PvSJqOnqkb+vaWnaN7udYVAAAAADqnQwXWa3D7ZVwksQe+c+JBfHlcr+NfIHSb2Adr1d9945rRH/7GB3y+dB4AAAAA6EdLX2BdtDar3T1EiWUvvmPgWhhcr2hd6QiAJFnViVrNH940VP1gfNvIidJ5AAAAAKDfLX2B9SqL5ZUkZeF41mKRxemaqzaQvZ8psFBM5OmG8uNW3fr+5l0j+wfxDCQAAAAAlFKgwHqFLJZWbn9zvdBleUBLmqszoFXfqKxKETe5YXnEM5Kebmbmh2s23LaXWwQBAAAAoIzyBdYl8nKhlZfPZFkXHdLCIKucjEY+UzoI+lg8Y+vZqtKP/t7Ztc+/dbdbpSMBAAAAwKDrsgLrUounjBYXwF9caF14PwZKVI1JocBCZ1FaAQAAAEBX6+oC65UuV1wlkm3ZUQak0RrMGwjboqyztL90DvSFs1WlZ+aas08zHggAAAAA3a2nCqzL8YWbDV9+XyRV1sAUWoPEyrqB3QCGG5cciRtPN4Znn9n4R7ccHtwqGAAAAAB6S88XWJdjLZzMkhRbqmvFlk2r1esiraO+wtWK06o09ELSemZl3XpmfNd6xk8BAAAAoAf1ZYG1qL07K5LdPrOTWgu1liRf2KnVawb5zIjlsdIZ0OWi05X1k2Zd7Vml4z8Z33X/bOlIAAAAAIAb09cF1qv5kh8v3qnlxXcMcDnUGxghxCskTdn7FO+pVp7fs/GPbn2xdCQAAAAAQGcNWIF1eRfqkLz8Ey+c0OrVU1r9y6slDUuaK50EZVRyHelw7Xpvq6W9Z4dH923b5vnSuQAAAAAAS4cC67J8oct6dXlFpVVaonW2jpXOgeVj6ZSlPc262rNyeGLv+La7pktnAgAAAAAsHwqsa3bxGGIu2rFlhfnDZVFVGkkosPqVo0R5SfY+N6t9w2vXvDD+h54qnQsAAAAAUA4F1nVbKKvshbcWF8S//FHOaS2NSCOlM6Cj6sRHGlX2N1vVvlWcsAIAAAAAvAIFVsf4VW+1z2gtfO/2YS2qrRuXZNT8f9izYp1RXR1ouD7YqluHbtqw7tD4uJulcwEAAAAAuhcF1hLKxd9fmC70qyusWDLjh1fPnMDqFclcnCMNVy82W9W+VDP7Htpx22TpWAAAAACA/7+9ewvy+6zvO/59frvS2pZ2JeOSYTJBvepVe9OZ3PQi004PN0yYdsJMmtbQA3QyIWSSdKCUDDOdhUq7krEbUkOha+3KhzihVlKa1EzIYZpQaBNqDpOmLSEOBMzYIFvYoPOefk8vZK111kr7//+f3/P7vV4XEjogfXblq/c8z7N1EbAKuObs0DXx6rLE9drRLV6VIs86xdY9OdKFiM0TU6l5Prft8zE1/fyhR/a8mJI6CwAAwM4IWJ10WZzJObbe28rNq790KXANtgvMlR4wZBcfWY+XI+cTuZn6dsr5hfN544UPP3rv967+vQtHSywEAACgbwSsKqTLvrsUrfJrJ7dy2vqpiCFcR3SFcHLa0xHNiSbFi+uRTzSb7YszZ194Yf74X10rvQwAAIDhELBqlq+6RndZ4Lr0K5enrIvntnpxcmtXRLorIl8oPaQXcl5rU5ycSs1Lbd48mSO/NL178+SpXa+cfPjhv7Jaeh4AAAAIWD11vUSVtn4lRYp8bdyq6jH5PBsRAtY2pSadyZvxcmrilTZvvjwVu17ejKmX8/S57x5Zet33S+8DAACAmxGwBilfE7hSxBXx6spzWq/9KOeIi29yl35EPc9GpJcKj+iGnDdSSqdyak/ldup70bTfn2rTqTSVXlndSK/sOfvNl135AwAAoGYCVk1Sntjtv3yDH6WLpeviz+ZXf5xeDVxXbbuYuXLkVy8ujlbq/UPuKdJqjnQqUj6bc3smRTqdczoT083p6dyeWYu109G233/g2OtPl94KAAAA4yRgccfS1kNb169q6dVvt77POfJlp7cuP8d1KXZt+2RXyrPXvAHWQTnyhRR5Nee0Gk2zmnJeTW0+3zbNamrb8znacxHN2V27mnPrm5vnN9vpc3vW95x7YU+cX1pK66X3AwAAQBcIWExIfrU3vRadLs9P6ZqfudKlS4yXUlnKzXPN7tWPrG+k1OTpuyIi0maabqPZFRGRm42ZSKmJzWimUjMTEZHT5q5IaVv/zTfNVM4blz0SP5XbzZy3HjSfXt+8ELt2tW20FyLndmr3xurahbs2N6Y213blufUf2hNrP/tw8gA6AAAAjICAVY0cKaf6v37gHdoKV6/91H2HPv6Xni8yBgAAAJiopvQAtqsZbLy6nhT5jaU3AAAAAJMhYFGlHPFDpTcAAAAAkyFgUavZ+Z984Z7SIwAAAIDxE7Cq4QLh1S6s3f0DpTcAAAAA4ydgUa2pqUbAAgAAgAEQsKhW2yYBCwAAAAZAwKJmry89AAAAABg/AasSqfSADspNOIEFAAAAAyBgVcIT7teRncACAACAIRCwqFYKJ7AAAABgCAQs6pXivtITAAAAgPETsKhXjntLTwAAAADGT8CiZgIWAAAADICARc0ELAAAABgAAYuaCVgAAAAwAAJWDVLpAZ21e/4nX7in9AgAAABgvASsGuTSA7rr3Ma+/aU3AAAAAOMlYFG1NNW6RggAAAA9J2BRtemNvK/0BgAAAGC8BCyqlpvm7tIbAAAAgPESsDrPC+43k3O7p/QGAAAAYLwELKqWcxawAAAAoOcELKqWUrqn9AYAAABgvAQs6uYEFgAAAPSegNV5ufSAbnMCCwAAAHpPwOo0D7jfSoosYAEAAEDPCVhULed0d+kNAAAAwHgJWNQtpenSEwAAAIDxErCo3VTpAQAAAMB4CVid5gH3W0qtE1gAAADQcwJWp3nE/ZayK4QAAADQdwIWtROwAAAAoOcELGonYAEAAEDPCVid5g2sW8rJI+4AAADQcwJWV2XvX21L0wpYAAAA0HMCFnVrm83SEwAAAIDxErCoWk55o/QGAAAAYLwELKqWIpzAAgAAgJ4TsLoqecB9m5zAAgAAgJ4TsKhaiuwEFgAAAPScgEXVcm6cwAIAAICeE7CoW3KFEAAAAPpOwKJy+VzpBQAAAMB4CVidlCOVnlCPs6UHAAAAAOMlYHVRbsLXINwuJ7AAAACg7wQsKpecwAIAAICeE7CoWkpZwAIAAICeE7CoWo7kCiEAAAD0nIDVSW3pAdVIqXUCCwAAAHpOwOqi5GsQbleb88nSGwAAAIDxErCo2lQ7I2ABAABAzwlYVO3cmbsFLAAAAOg5AauL3CDcrrO/eDydLz0CAAAAGC8Bq2Py1jdsw0ulBwAAAADjJ2BRM9cHAQAAYAAELGomYAEAAMAACFhUKycBCwAAAIZAwOoY/yDbl3ISsAAAAGAA9JKOaX0Jwm3LKX+n9AYAAABg/AQsqtVE+mbpDQAAAMD4CVhUK+csYAEAAMAACFhUazOmBCwAAAAYAAGrY1Lk0hNqsXbPgXu8gQUAAAADIGBRpxTfmp9PbekZAAAAwPgJWNQph+uDAAAAMBACFrUSsAAAAGAgBCyqlCMJWAAAADAQAhZVSil/o/QGAAAAYDIErA7JkUpPqEYT+SulNwAAAACTIWBRo7ye1wQsAAAAGIjp0gPgtuX0rQeOvf506RkAAADAZDiB1RkpUuTSI+qQ8v8rPQEAAACYHAGrK5J4dRsELAAAABgQAYsaCVgAAAAwIAIWNRKwAAAAYEAELKqTZ9o/Lb0BAAAAmBwBqys8gbVdLxz+2P5XSo8AAAAAJkfAoio5xxdLbwAAAAAmS8CiKinSF0pvAAAAACZLwKIqKbXPlN4AAAAATJaA1Qmp9IBqrK03rhACAADAwAhYXZC84L5N33jwidkXS48AAAAAJqtjAUvI4cZShOuDAAAAMEAdC1hJw+JmBCwAAAAYoI4FrPAcFDfUNknAAgAAgAHqXsAaYsFqSw+oQnvX+bUvlR4BAAAATF5nAlbe+n54dwjzAJvdHfg/80/ed6r0CAAAAGDyOhOw0uXf5+FFLG4l/UHpBQAAAEAZnQhY1+aqTsyiS5r4TOkJAAAAQBmdKEXX3KAb2JW65MDZreS1Jv/30iMAAACAMjoQsK6tN4N7B2tgwe4O/MlDS3MnS48AAAAAyuhAwLp2gnewuJL3rwAAAGDIigesdMPTVsWn0RXevwIAAIBBK16JbpSv8lAehhrIh7kD3r8CAACAgSsasG729NNQnoXKQ/lA75z3rwAAAGDgygWs7PAR2/J7pQcAAAAAZRULWGlbJ48cTxq6FOnp0hsAAACAsooFrG2dvhrAO1gD+BB34tTu03v/R+kRAAAAQFnFH3G/qZyi9xcNHTK7oRTx2/PH01rpHQAAAEBZ3Q5YkUPhGa6c4lOlNwAAAADldTxgMWBtSs2nS48AAAAAyqsgYDmBNVDPLBzde6L0CAAAAKC8CgJWjv6+gyXO3UiO5PogAAAAEBETDFhSDbejyZsCFgAAABAREwxYOztDVcFBsTvS15NlO5W/tXBs35dLrwAAAAC6oZIyJPQMSY70VETyjw4AAABExMQC1ihahJ4xFFMpP1V6AwAAANAdEwpYO38BKyevaA1CTs8dWp57pvQMAAAAoDsquULoQtlQpJR/1b82AAAAcLmxB6yRnZvKfTuB1bePZ0Ry6/ogAAAAcIXxBqw0wpermhzeweq9ry8c2/+l0iMAAACAbhlvwBplb8oRTi313idKDwAAAAC6Z3wBawytqV+3CJ0mu1objeuDAAAAwDXGErBSxFj6TOpXweJKf3JkZe8flx4BAAAAdM9YAtY4zxZJWP2UUl4uvQEAAADoprF/FcLRyi7e9dNabptfKT0CAAAA6KYRB6w8gSNSPTiDpcJdIUX818Vjsy+V3gEAAAB004gDVppAnFF/eiflY6UnAAAAAN01woA1idNXERGp/jNYqfqPYJRO7H7j3G+XHgEAAAB012hPYE3kcFSOXP1XI3SK7JIU8ej8fNoovQMAAADorhEFrBwTfZsqCUB9sdGkx0pvAAAAALqtsq9CSK+k+OwDR2e/UnoGAAAA0G0jCliTv9JX7SVCh8e2pJw+UnoDAAAA0H07D1iFgkyuN2Fx0Qsnp/d+svQIAAAAoPt2HrBKdaRc6VEmlzYvSuljS0tpvfQMAAAAoPt2llNKNqQqH3LPrhBetJZSeqT0CAAAAKAOOwtYqdw1vhQVv4M1cDnFUwtH954ovQMAAACoww4vtJU7TpQjVXiYyf3BiIjUZo+3AwAAANu2g6LShfNPXdhwG+orbmOQvrR4bN/nS68AAAAA6rGDgNWFGtOWHsDtSu2HS08AAAAA6lL1nbbKzl9V+vD8KOVvzZya+0+lVwAAAAB1uYOA1Z0Ic/EdrFoyVnc+b8XkeHD+eForPQMAAACoyx0ErG4Foxqfch+ol2fuXl0pPQIAAACoT9VXCCO6ltNupvpP9Y6kyA/P/4cfOFN6BwAAAFCf26gq3UxFtZy/ytUsHYd0bnU6faT0CgAAAKBOtxGwuhxguhnX2HL0oaW5k6VHAAAAAHXqyb22tvSAW0hDTmwbTdr4d6VHAAAAAPW6dcAacHkZlZS6fHptvHKKTxxavvebpXcAAAAA9bpFwMrdvjm4pduVLVfxORyLzekcB0uPAAAAAOp284CVK7ph2OFI1OFp4/b4wZW5r5YeAQAAANTt5oWqpqtvFbW2gVjP0Tp9BQAAAOzYDbNPru3cUNvdvYN8wj3HyuGV/V8vPQMAAACo33UDVo4Ko0uK6OJlvdTRXWO2lvPm4dIjAAAAgH64TsDKUWdwSeEeYVek/3j40Xu/UXoFAAAA0A/XFp+U6jt9taUtPeAaA/wKhBeajakjpUcAAAAA/XFVwMp1Hr7aUmt4648c8dFDj9/zfOkdAAAAQH9sBawUlberiOjk9cdhNbVX0kYslh4BAAAA9Mv0pf9R5cPt1+jg/o71tDE7uPj43HdLjwAAAAD6ZesEVh5YaWHk/uLMntmPlh4BAAAA9E8TcTFe1X/66hIhroQU6X0PP5xWS+8AAAAA+qeJ6MPVQQr7/MLK3uOlRwAAAAD91Nz6t9SmH8/R16SNeE9E8kkHAAAAxqKHAasrJ8qG0XNSxPEjK3OfK70DAAAA6K9eBqxupKNefmqvttpstr9QegQAAADQb/2sLF04gDWEG3U5f+jgY/u/VnoGAAAA0G/9DFg5ykesvvernJ5b3zh/uPQMAAAAoP/6GbAiItqSBanv9SoimvxzDz7xhrOlZwAAAAD919uAlVLJI1i9/bS+Kv3O4vLcfym9AgAAABiG3paWXLBfpX6fwFqbivyzpUcAAAAAw9HbgHXxHazJh6Qc/b5AmCIfObgy99XSOwAAAIDh6G/AiihyDKvXn9CcnltbP3+k9AwAAABgWHrdW0ocherz6auI/C4PtwMAAACT1u+AVeAdrJJPx49X+tXFY3NPl14BAAAADE+/A1ZM9kH1fPEv7KPvrq/Hz5ceAQAAAAxT7wNWnmBRaiIi9/AOYY78cw8+Mfti6R0AAADAMPU+YE1SD9tV5IjfOryy78nSOwAAAIDhErBGJF32bY+cnW7ad5UeAQAAAAybgDUiF68O9usMVk7pvQeP7v+L0jsAAACAYRtIwJpAWOrZ4asU8bm73rj346V3AAAAAAwkYE2iLvXq9NXZPBXvmJ9PbekhAAAAAIMIWBfz1RgDU45IqVdHsP7l4iNzf1Z6BAAAAEDEQALW+J+nyq++gdULn15cmT1aegQAAADAJYMIWBEx1luEuT+Hr17aaJt/HpH6k+MAAACA6k2XHjA546lMaYx/9nHVEBwAAAmvSURBVKTlSO/80KN7v1N6BwAAAMDlBnMCa1zvYOX+3B185PDK7K+XHgEAAABwtcEErLG9g9WPx9u/vhmr7y49AgAAAOB6BnSFMPoSm0atjTb+2QOPvv506SEAAAAA1zOYE1gRMZanqmpvYjnSBxcfnfts6R0AAAAANzKsgJVH37CqfgIrxx987fTeg6VnAAAAANzMsAJWROSxPIRVpRNp19Q/Pn48bZYeAgAAAHAzgwtYkUd0Bqvqo1fRpqZ928LSnm+XHgIAAABwK8MLWKP6iCt+/CpH+uDC0f2/W3oHAAAAwHYML2CN4R2syvy+d68AAACAmgwvYEWM5hWsOq8QnkjTU/d79woAAACoySAD1s6lSE1157jaHM1bvXsFAAAA1GagAWun8amt7gBWzunfHF7Z+3uldwAAAADcrmEGrJ3UpxxR26ctpfiNw8f2LpTeAQAAAHAn6ioxo5Ii7vglrGYH/98y/nT3hfV/EpGqGg0AAABwyTADVkTc6TXCyjLQKznlN88/ed+p0kMAAAAA7tRgA9YddagckXf8ftbEtCnltx1e3vfnpYcAAAAA7MRgA9YdnaSq6/rg+xeW932q9AgAAACAnRpswIp0B5cIq2lX+anFldkjpVcAAAAAjMJwA1bcyRcjrOH6YPri+vr5t1f3WhcAAADADQw6YPXwCNYLzcbU33/wiTecLT0EAAAAYFSGHbBuo0dVcPbqTBvNmw49fs/zpYcAAAAAjNKwA1ba+uaWOn72qm1zvPXIyt4/Lj0EAAAAYNSGHbAiInU9TW1DinjvkWNzv1F6BwAAAMA4DD5gbe8h905HrkcWVuYeKj0CAAAAYFwGH7BudYMwb+c3FZIjPjVzYPanS+8AAAAAGCcBq17PbKyf+4fz82mj9BAAAACAcRKwbqGTb2Sl+Fpqmjc/+MQbzpaeAgAAADBuAlbc+IWrLl4fTBEno4k3LRzde6L0FgAAAIBJELCia4nqZtK51OQ3Lz4y92ellwAAAABMioB1Q7lrYWstp/Yth47u+6PSQwAAAAAmScC6oU7lqzal9E8PL+/7dOkhAAAAAJM2XXoAt5RzpHcuLs9+ovQQAAAAgBKcwLqeLn3hwRzvO7wyu1R6BgAAAEApAtYV0hXfdcDC4rG5B0qPAAAAAChJwLpMjhwXj191oGCl/LHFlbn3l54BAAAAUJqAdZkUEZFTlL5DmCMen3nj3M8UHQEAAADQEQLWNUqfvspP3XVg9h3z86ktPAQAAACgEwSsq6Wip69+bebA3P3z82mj5AgAAACALhGwuiLHf545MPuPxCsAAACAK02XHkBEivjkyV2zP7EkXgEAAABcQ8Aq7zd3n579iaXjab30EAAAAIAucoWwrKfP7Jn98fnjaa30EAAAAICuErCKyU99d3r2xx5+OK2WXgIAAADQZQJWCTn9ysyBufuXllwbBAAAALgVAWvyHpn5y3vf5qsNAgAAAGyPgDVBKfLHZw7M/tT8fGpLbwEAAACoha9COCkpHlhY3vevS88AAAAAqI0TWOOXU+QPLC7PiVcAAAAAd8AJrPHajIh3Lqzse6T0EAAAAIBaCVjjs5ZTeuvh5dnjpYcAAAAA1EzAGo+zOdofO7y8/3dKDwEAAAConYA1ei810b7p0Mr+L5QeAgAAANAHHnEfra9PRfyIeAUAAAAwOk5gjc4z6+vpRxefmH2x9BAAAACAPnECazR+c2b6zN96ULwCAAAAGDkBa+eWZw7MvmV+6QfPlR4CAAAA0EeuEN65nCJ/cGFl33zpIQAAAAB9JmDdmfMppbcvLM99ovQQAAAAgL4TsG7ft5uU/8Gh5bn/VXoIAAAAwBB4A+v2/O8mbf6NQ8v7xCsAAACACRGwtilH/NbM6vqPHFq+95ultwAAAAAMiYC1Lenf33Vg9kfnn7zvVOklAAAAAEPjDaybuxApfmpxefax0kMAAAAAhkrAurHnI+e3LK7s+3zpIQAAAABDJmBdT4rPbmw2P/6hR/d+p/QUAAAAgKHzBtZVUsTSd6dm/454BQAAANANTmC95kKKeOfCytyjpYcAAAAA8BoBKyIip+eatPmWQyv7v1B6CgAAAABXcoUw4tMzTfvXxSsAAACAbhryCazNFPngs6fn/u3x42mz9BgAAAAArm+oAevF1LRvXTi6/3dLDwEAAADg5oYYsH4/TU/dv7A09+3SQwAAAAC4tSG9gbWZIn9g5sDs311Y2iNeAQAAAFRiKCewXBkEAAAAqNQQAtZ/22ib+z+0Mved0kMAAAAAuH19vkK4miLeO3Ng9u996NG94hUAAABApXp5AitFfKVNm/cvLt/75dJbAAAAANiZvp3Ayiliaff0mR8+LF4BAAAA9EKfTmCdiBz/YuHY3NOlhwAAAAAwOr04gZUiPrk2HX9tUbwCAAAA6J3aT2CdTyn/wsLyvl8qPQQAAACA8ag5YH1marN9x8HH9n+t9BAAAAAAxqfCK4TpXE7xvpkDs39bvAIAAADov6pOYKWIzzVt+/aDj+57tvQWAAAAACajkhNYF09d7T4w+zfFKwAAAIBh6f4JrBSfzdG+/fDyvj8vPQUAAACAyetywDoVKb13cXnvUkTKpccAAAAAUEZXA9bT7fTGu44sve650kMAAAAAKKtrAevbKfL7Flb2PV56CAAAAADd0JWAlVPEI7tX1//V/JP3nSo9BgAAAIDu6EDAyl9umvjpQ0f3/VHpJQAAAAB0T8mA9b2U8vyzp+Y+cvx42iy4AwAAAIAOKxGwckT88vp6es+DT8y9WODvBwAAAKAiEw5Y+csR6V2LK3N/ONm/FwAAAIBaTSpgvZJS/oDrggAAAADcrnEHrBwRvxw5vXthZe6lMf9dAAAAAPTQOAPWZ3LTvvvw0f1fHOPfAQAAAEDPjTxg5YhnI6X3H16ePT7qPxsAAACA4RllwHo5p3jg7D2zH3744bQ6wj8XAAAAgAEbRcBaTxHHVqfj/Q8tzZ0cwZ8HAAAAAFt2GrCentpsf/7gY/u/NpI1AAAAAHCVOw1Yf9jkeM+hY3P/c6RrAAAAAOAqtxewcvzf3KQPHF7e+2sRKY9pEwAAAABs2VbAyhFfbSIvPHtm7snjx9PmuEcBAAAAwCU3D1g5PZdTHLrrwN6V+fm0MaFNAAAAALDlRgHrpZziobvavb80fyxdmOgiAAAAALjMFQErRZyMiAd2T5/56PzSD54rtAkAAAAAtkxHXApX+aOb05u/eGTpdd8vPQoAAAAALplOEe9ZWz/38QefeMPZ0mMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEr7/+8wYKYnyRAwAAAAAElFTkSuQmCC'); + background-size: 100%; + background-repeat: no-repeat; + background-position: top; + padding-top: 68px; +} +#menu #dbs { + border: none; + background: #fff; + margin: 15px; + border-radius: 1000px; + padding: 4px 14px; + font-weight: 500; + box-shadow: 0 5px 15px rgba(0,0,0,0.3); +} +#menu form { + /*background: #7962f2;*/ +} +#menu .links { + /*background-color: #7962f2; + background-image: url('side-menu-bg.png');*/ + padding-bottom: 158px; + background-size: 100%; + background-position: bottom; + border: none; +} +#menu .links a { + background: rgba(255,255,255,0.2); + color: #fff; +} +#tables a { + background: transparent; + color: #fff; + font-weight: 500; +} +#tables a.select { + background: rgba(255,255,255,0.2); + color: #fff; +} +#content h2 { + color: #fff; +} +#breadcrumb a { + color: #7962f2 +} +#breadcrumb { + text-transform: uppercase; + font-weight: 700; + color: rgba(255,255,255,0.3); +} +#menu select { + background: transparent; + border: none; + font-family: 'Montserrat', sans-serif; + text-transform: uppercase; + font-weight: 700; + color: rgba(0,0,0,0.6); +} +#dbs{ + color: transparent; +} +#dbs span{ + font-size: 0px; +} +#dbs span::before { + font-size: 16px; + position: relative; + top: 1px; + color: #000; + content: "dns"; + font-family: "Material Icons"; +} +#menu select { + -webkit-appearance: none; + -moz-appearance: none; + text-indent: 1px; + text-overflow: ''; + width: 78%; + position: relative; + top: -1px; +} +#dbs::after{ + content: "arrow_forward_ios"; + font-family: "Material Icons"; + font-size: 15px; + color: #000; + position: relative; + display: inline; + top: 1px; + left: 8px; + opacity: 0.6; +} +#tables .structure{ + font-size: 14px; + position: relative; + top: -8px; + width: 67%; +} +#tables .structure::before { + content: "drag_indicator"; + font-family: "Material Icons"; + font-size: 18px; + color: #fff; + position: relative; + display: inline; + top: 3px; + left: -2px; + opacity: 0.6; +} +#menu p, #tables { + border-bottom: 1px solid transparent; +} +#tables a:hover { + background: transparent; + color: #7962f2; +} +input[type="search"]{ + background: rgba(255,255,255,0.2); + border-radius: 1000px; + color: #fff; + padding-left:10px; +} +input[type="submit"] { + background: #7962f2; + color: #ffffff; + text-transform: uppercase; + font-weight: bold; +} +a, a:link { + color: #7962f2; + transition: all .2s; +} +td{ + color: #ffffff; +} +#content fieldset:first-child #fieldset-import, #content fieldset:nth-of-type(1), #content fieldset:nth-of-type(2):not(.jsonly), #content fieldset:nth-of-type(3), #content fieldset:nth-of-type(4), #content fieldset:nth-of-type(5) { + background-color: #221f2e; +} +div input[name="delete"], div input[name="drop"], div input[name="truncate"], input[value="Kill"] { + background: repeating-linear-gradient(-55deg, #7962f2, #7962f2 5px, #4a39a4 5px, #4a39a4 10px); +} +div input[name="delete"]:hover, div input[name="drop"]:hover, div input[name="truncate"]:hover, input[value="Kill"]:hover { + background: repeating-linear-gradient(-55deg, #4a39a4, #4a39a4 5px, #7962f2 5px, #7962f2 10px); +} +.js .checkable .checked td, .js .checkable .checked th { + background: #221f2e; +} +td a, td a:visited, th a, th a:visited { + color: #7962f2; +} +a:link:hover, a:visited:hover { + color: #4a39a4; +} +#tables .select:hover { + background: #7962f2; + color: #fff; +} +input[type="button"][disabled], input[type="submit"][disabled] { + background: rgba(255,255,255,0.1); !important; + color: rgba(255,255,255,0.3); +} +::-webkit-scrollbar { + width: 10px; + border-radius: 1000px; + background: #1E1C27; +} +::-webkit-scrollbar-thumb { + background: #76757B; + width: 10px; + border-radius: 1000px; +} +table{ + background: #2f2b3f; +} +#content select { + background: rgba(255,255,255,0.1); + color: #fff; + border-radius: 7px; +} +input:not([type]), input[type="number"], input[type="password"], input[type="search"], input[type="text"] { + background: rgba(255,255,255,0.1); + color: #fff; + border-radius: 5px; +} +textarea { + background: rgba(255,255,255,0.1); + color: #fff; + border: none; + border-radius: 5px; +} +#menu #logins a { + background: rgba(255,255,255,0.1); + color: #ffffff; +} +#menu #logins::before { + color: #ffffff; +} +#content .links a:hover { + background: #4a39a4; + color: #fff; +} +#menu .links a:hover { + background: #ffffff; + color: #7962f2; +} +#content .links .active { + background: rgba(255,255,255,0.2); + color: #fff; +} +code { + filter: sepia() invert(); + color: #000000; +} +#content legend a { + color: #7962f2; +} +#content legend a:hover { + color: #7962f2; +} +.js .column { + background: #221f2e; +} +.sqlarea.jush-sql.jush { + filter: sepia() invert(); + background: transparent; + box-shadow: none; + border: 2px solid rgba(0,0,0,0.1) !important; + border-radius: 12px; +} +input[type="radio"] { + filter: invert(); +} +.icon:hover { + background: #000; +} +select option { + background: #221f2e; +} +select[name="db"] option { + background: #ffffff; +} +.message { + padding: 13px; + background: #7962f2; + color: #fff; + font-weight: 600; + text-transform: capitalize; + border-radius: 5px; +} +.message a{ + color: #ffffff; + border-bottom: 2px solid #ffffff; +} +.error { + padding: 13px; + background: #7962f2; + color: #fff; + font-weight: 600; + text-transform: capitalize; + border-radius: 5px; +} +#version{ + color: #7962f2; +} +#tables{ + /* margin-bottom: 100px; */ +} +a[href="#import"]{ + font-weight: 600; + padding: 11px 16px; + border: none; + border-radius: 2px; + background: #7962f2; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + color: #fff; + text-transform: uppercase; + font-size: 14px; + cursor: pointer; + transition: all .2s; +} +a[href="#import"]:hover{ + color: #ffffff; +} +#menu h1:first-of-type{ + margin-top: -9px; +} +#lang{ + box-shadow: 0 5px 15px rgba(0,0,0,0.3); + background: #7962f2; + color: #ffffff; + border: none; + right: -184px; + left: auto; + bottom: 30px; + width: 227px; + height: 42px; + border-top-left-radius: 12px; + border-bottom-left-radius: 12px; + font-size: 0px; + transition-duration: 0.3s; +} +#lang:hover{ + right: 0px; +} +#lang::before{ + content: ""; + background-image: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTEyLjQxOCA1MTIuNDE4IiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi40MTggNTEyLjQxOCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNDM3LjMzNSA3NS4wODJjLTEwMC4xLTEwMC4xMDItMjYyLjEzNi0xMDAuMTE4LTM2Mi4yNTIgMC0xMDAuMTAzIDEwMC4xMDItMTAwLjExOCAyNjIuMTM2IDAgMzYyLjI1MyAxMDAuMSAxMDAuMTAyIDI2Mi4xMzYgMTAwLjExNyAzNjIuMjUyIDAgMTAwLjEwMy0xMDAuMTAyIDEwMC4xMTctMjYyLjEzNiAwLTM2Mi4yNTN6bS0xMC43MDYgMzI1LjczOWMtMTEuOTY4LTEwLjcwMi0yNC43Ny0yMC4xNzMtMzguMjY0LTI4LjMzNSA4LjkxOS0zMC44MDkgMTQuMjAzLTY0LjcxMiAxNS40NTItOTkuOTU0aDc1LjMwOWMtMy40MDUgNDcuNTAzLTIxLjY1NyA5Mi4wNjQtNTIuNDk3IDEyOC4yODl6bS0zOTMuMzM4LTEyOC4yODloNzUuMzA5YzEuMjQ5IDM1LjI0MiA2LjUzMyA2OS4xNDUgMTUuNDUyIDk5Ljk1NC0xMy40OTQgOC4xNjItMjYuMjk2IDE3LjYzMy0zOC4yNjQgMjguMzM1LTMwLjg0LTM2LjIyNS00OS4wOTEtODAuNzg2LTUyLjQ5Ny0xMjguMjg5em01Mi40OTgtMTYwLjkzNmMxMS45NjggMTAuNzAyIDI0Ljc3IDIwLjE3MyAzOC4yNjQgMjguMzM1LTguOTE5IDMwLjgwOS0xNC4yMDMgNjQuNzEyLTE1LjQ1MiA5OS45NTRoLTc1LjMxYzMuNDA2LTQ3LjUwMiAyMS42NTctOTIuMDYzIDUyLjQ5OC0xMjguMjg5em0xNTQuMDk3IDMxLjcwOWMtMjYuNjIyLTEuOTA0LTUyLjI5MS04LjQ2MS03Ni4wODgtMTkuMjc4IDEzLjg0LTM1LjYzOSAzOS4zNTQtNzguMzg0IDc2LjA4OC04OC45Nzd6bTAgMzIuNzA4djYzLjg3M2gtOTguNjI1YzEuMTMtMjkuODEyIDUuMzU0LTU4LjQzOSAxMi4zNzktODQuNjMyIDI3LjA0MyAxMS44MjIgNTYuMTI3IDE4Ljg4MiA4Ni4yNDYgMjAuNzU5em0wIDk2LjUxOXY2My44NzNjLTMwLjExOSAxLjg3Ny01OS4yMDMgOC45MzctODYuMjQ2IDIwLjc1OS03LjAyNS0yNi4xOTMtMTEuMjQ5LTU0LjgyLTEyLjM3OS04NC42MzJ6bTAgOTYuNTgxdjEwOC4yNTRjLTM2LjczMi0xMC41OTMtNjIuMjQ2LTUzLjMzMy03Ni4wODgtODguOTc2IDIzLjc5Ny0xMC44MTcgNDkuNDY2LTE3LjM3NCA3Ni4wODgtMTkuMjc4em0zMi42NDYgMGMyNi42MjIgMS45MDQgNTIuMjkxIDguNDYxIDc2LjA4OCAxOS4yNzgtMTMuODQxIDM1LjY0LTM5LjM1NCA3OC4zODMtNzYuMDg4IDg4Ljk3NnptMC0zMi43MDh2LTYzLjg3M2g5OC42MjVjLTEuMTMgMjkuODEyLTUuMzU0IDU4LjQzOS0xMi4zNzkgODQuNjMyLTI3LjA0My0xMS44MjItNTYuMTI3LTE4Ljg4Mi04Ni4yNDYtMjAuNzU5em0wLTk2LjUxOXYtNjMuODczYzMwLjExOS0xLjg3NyA1OS4yMDMtOC45MzcgODYuMjQ2LTIwLjc1OSA3LjAyNSAyNi4xOTMgMTEuMjQ5IDU0LjgyIDEyLjM3OSA4NC42MzJ6bTAtOTYuNTgxdi0xMDguMjU0YzM2LjczNCAxMC41OTMgNjIuMjQ4IDUzLjMzOCA3Ni4wODggODguOTc3LTIzLjc5NyAxMC44MTYtNDkuNDY2IDE3LjM3My03Ni4wODggMTkuMjc3em03My4zMi05MS45NTdjMjAuODk1IDkuMTUgNDAuMzg5IDIxLjU1NyA1Ny44NjQgMzYuOTUxLTguMzE4IDcuMzM0LTE3LjA5NSAxMy45ODQtMjYuMjYgMTkuOTMxLTguMTM5LTIwLjE1Mi0xOC41MzYtMzkuNzM2LTMxLjYwNC01Ni44ODJ6bS0yMTAuODkxIDU2Ljg4MmMtOS4xNjUtNS45NDctMTcuOTQxLTEyLjU5Ny0yNi4yNi0xOS45MzEgMTcuNDc1LTE1LjM5NCAzNi45NjktMjcuODAxIDU3Ljg2NC0zNi45NTEtMTMuMDY4IDE3LjE0OC0yMy40NjUgMzYuNzMyLTMxLjYwNCA1Ni44ODJ6bS4wMDEgMjk1Ljk1OGM4LjEzOCAyMC4xNTEgMTguNTM3IDM5LjczNiAzMS42MDQgNTYuODgyLTIwLjg5NS05LjE1LTQwLjM4OS0yMS41NTctNTcuODY0LTM2Ljk1MSA4LjMxOC03LjMzNCAxNy4wOTUtMTMuOTg0IDI2LjI2LTE5LjkzMXptMjQyLjQ5NCAwYzkuMTY1IDUuOTQ3IDE3Ljk0MiAxMi41OTcgMjYuMjYgMTkuOTMtMTcuNDc1IDE1LjM5NC0zNi45NjkgMjcuODAxLTU3Ljg2NCAzNi45NTEgMTMuMDY3LTE3LjE0NCAyMy40NjUtMzYuNzI5IDMxLjYwNC01Ni44ODF6bTI2LjM2Mi0xNjQuMzAyYy0xLjI0OS0zNS4yNDItNi41MzMtNjkuMTQ2LTE1LjQ1Mi05OS45NTQgMTMuNDk0LTguMTYyIDI2LjI5NS0xNy42MzMgMzguMjY0LTI4LjMzNSAzMC44NCAzNi4yMjUgNDkuMDkxIDgwLjc4NiA1Mi40OTcgMTI4LjI4OXoiLz48L3N2Zz4=); + width: 36px; + height: 21px; + display: inline-block; + background-size: contain; + background-repeat: no-repeat; + filter: invert(); + margin: 10px; +} +#lang select { + background: #4c4665; + color: #fff; + position: relative; + top: -15px; + border-radius: 5px; +} +#schema{ + position: absolute; +} +#schema-link{ + float: right; +} +#schema .table { + padding: 0px 0px 10px 0px; + background: #2f2b3f; + border: none; + border-radius: 5px; + box-shadow: 0 5px 8px rgba(0, 0, 0, 0.11); + overflow: hidden; +} +#schema .table a { + display: inline-block; + background: #7962f2; + color: #fff; + padding: 7px; + min-width: 141px; + width: 100%; + margin-bottom: 3px; +} +#schema .table span { + margin-left: 10px; +} +.char { + color: #00e676; +} +.date { + color: #7e57c2; +} +table thead a{ + color: #ffffff !important; +} +#form fieldset:first-child{ + float: unset !important; + padding: 7px 10px !important; + padding-bottom: 11px !important; + margin-top: 11.52px !important; + margin-left: 0px !important; + margin-right: 7.2px !important; + margin-bottom: 10px !important; +} +a[href="#import"] { + margin-top: 20px; + display: inline-block; +} diff --git a/adminer/dockerFile b/adminer/dockerFile new file mode 100644 index 0000000..8c922ad --- /dev/null +++ b/adminer/dockerFile @@ -0,0 +1,5 @@ +FROM adminer + +ADD adminer.css /var/www/html/ + +ENV ADMINER_DESIGN='hydra' diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..d41e67d --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,58 @@ +version: '3' + +services: + mysql: + build: + context: ./mysql/ + dockerfile: dockerFile + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + restart: always + volumes: + - './mysql/db:/var/lib/mysql' + + + api: + build: + context: ./laravel/ + dockerfile: dockerFile + ports: + - 8000:8000 + environment: + DB_HOST: "mysql" + DB_PORT: "3306" + DB_DATABASE: "database" + DB_USERNAME: "root" + DB_PASSWORD: "root" + WAIT_HOSTS: mysql:3306 + WAIT_HOSTS_TIMEOUT: 300 + WAIT_SLEEP_INTERVAL: 10 + WAIT_HOST_CONNECT_TIMEOUT: 10 + volumes: + - './laravel/my-project:/app' + command: sh -c "/wait && /bin/bash /app/onLaunch.sh" + depends_on: + - mysql + + + dbmanager: + build: + context: ./adminer/ + dockerfile: dockerFile + restart: always + ports: + - 8080:8080 + + + front: + build: + context: ./node/ + dockerfile: dockerFile + ports: + - 8081:8081 + volumes: + - ./node/vue:/var/www/html/app + tty: true diff --git a/laravel/.DS_Store b/laravel/.DS_Store new file mode 100644 index 0000000..73c8895 Binary files /dev/null and b/laravel/.DS_Store differ diff --git a/laravel/dockerFile b/laravel/dockerFile new file mode 100644 index 0000000..8aba82d --- /dev/null +++ b/laravel/dockerFile @@ -0,0 +1,10 @@ +FROM docker.io/bitnami/laravel:9 + +ENV DOCKER_HOSTNAME: ${DOCKER_HOSTNAME:-api} + +# Add docker-compose-wait tool ------------------- +ENV WAIT_VERSION 2.7.2 +ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait +RUN chmod +x /wait + +EXPOSE 8000 diff --git a/laravel/my-project/.DS_Store b/laravel/my-project/.DS_Store new file mode 100644 index 0000000..4d47077 Binary files /dev/null and b/laravel/my-project/.DS_Store differ diff --git a/laravel/my-project/.buildcomplete b/laravel/my-project/.buildcomplete new file mode 100644 index 0000000..e69de29 diff --git a/laravel/my-project/.editorconfig b/laravel/my-project/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/laravel/my-project/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/laravel/my-project/.env.example b/laravel/my-project/.env.example new file mode 100644 index 0000000..00b6110 --- /dev/null +++ b/laravel/my-project/.env.example @@ -0,0 +1,58 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailhog +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/laravel/my-project/.gitattributes b/laravel/my-project/.gitattributes new file mode 100644 index 0000000..7dbbf41 --- /dev/null +++ b/laravel/my-project/.gitattributes @@ -0,0 +1,11 @@ +* text=auto + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/laravel/my-project/.gitignore b/laravel/my-project/.gitignore new file mode 100644 index 0000000..f0d10af --- /dev/null +++ b/laravel/my-project/.gitignore @@ -0,0 +1,18 @@ +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/laravel/my-project/README.md b/laravel/my-project/README.md new file mode 100644 index 0000000..bf0ddd9 --- /dev/null +++ b/laravel/my-project/README.md @@ -0,0 +1,66 @@ +

Laravel Logo

+ +

+Build Status +Total Downloads +Latest Stable Version +License +

+ +## About Laravel + +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: + +- [Simple, fast routing engine](https://laravel.com/docs/routing). +- [Powerful dependency injection container](https://laravel.com/docs/container). +- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. +- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). +- Database agnostic [schema migrations](https://laravel.com/docs/migrations). +- [Robust background job processing](https://laravel.com/docs/queues). +- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). + +Laravel is accessible, powerful, and provides tools required for large, robust applications. + +## Learning Laravel + +Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. + +You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. + +If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 2000 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. + +## Laravel Sponsors + +We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). + +### Premium Partners + +- **[Vehikl](https://vehikl.com/)** +- **[Tighten Co.](https://tighten.co)** +- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** +- **[64 Robots](https://64robots.com)** +- **[Cubet Techno Labs](https://cubettech.com)** +- **[Cyber-Duck](https://cyber-duck.co.uk)** +- **[Many](https://www.many.co.uk)** +- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** +- **[DevSquad](https://devsquad.com)** +- **[Curotec](https://www.curotec.com/services/technologies/laravel/)** +- **[OP.GG](https://op.gg)** +- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)** +- **[Lendio](https://lendio.com)** + +## Contributing + +Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). + +## Code of Conduct + +In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). + +## Security Vulnerabilities + +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. + +## License + +The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/laravel/my-project/app/Console/Kernel.php b/laravel/my-project/app/Console/Kernel.php new file mode 100644 index 0000000..d8bc1d2 --- /dev/null +++ b/laravel/my-project/app/Console/Kernel.php @@ -0,0 +1,32 @@ +command('inspire')->hourly(); + } + + /** + * Register the commands for the application. + * + * @return void + */ + protected function commands() + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/laravel/my-project/app/Exceptions/Handler.php b/laravel/my-project/app/Exceptions/Handler.php new file mode 100644 index 0000000..82a37e4 --- /dev/null +++ b/laravel/my-project/app/Exceptions/Handler.php @@ -0,0 +1,50 @@ +, \Psr\Log\LogLevel::*> + */ + protected $levels = [ + // + ]; + + /** + * A list of the exception types that are not reported. + * + * @var array> + */ + protected $dontReport = [ + // + ]; + + /** + * A list of the inputs that are never flashed to the session on validation exceptions. + * + * @var array + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + * + * @return void + */ + public function register() + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/laravel/my-project/app/Http/Controllers/Controller.php b/laravel/my-project/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..a0a2a8a --- /dev/null +++ b/laravel/my-project/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +where('id', 1)->get(); + return json_encode($words); + //return "ok"; + } +} diff --git a/laravel/my-project/app/Http/Kernel.php b/laravel/my-project/app/Http/Kernel.php new file mode 100644 index 0000000..5b2eb5d --- /dev/null +++ b/laravel/my-project/app/Http/Kernel.php @@ -0,0 +1,68 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \Fruitcake\Cors\HandleCors::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + 'throttle:api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \App\Http\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/laravel/my-project/app/Http/Middleware/Authenticate.php b/laravel/my-project/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..704089a --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/Authenticate.php @@ -0,0 +1,21 @@ +expectsJson()) { + return route('login'); + } + } +} diff --git a/laravel/my-project/app/Http/Middleware/EncryptCookies.php b/laravel/my-project/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/laravel/my-project/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/laravel/my-project/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/laravel/my-project/app/Http/Middleware/RedirectIfAuthenticated.php b/laravel/my-project/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..a2813a0 --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,32 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/laravel/my-project/app/Http/Middleware/TrimStrings.php b/laravel/my-project/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/laravel/my-project/app/Http/Middleware/TrustHosts.php b/laravel/my-project/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..7186414 --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts() + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/laravel/my-project/app/Http/Middleware/TrustProxies.php b/laravel/my-project/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/laravel/my-project/app/Http/Middleware/ValidateSignature.php b/laravel/my-project/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/laravel/my-project/app/Http/Middleware/VerifyCsrfToken.php b/laravel/my-project/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/laravel/my-project/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/laravel/my-project/app/Models/User.php b/laravel/my-project/app/Models/User.php new file mode 100644 index 0000000..23b4063 --- /dev/null +++ b/laravel/my-project/app/Models/User.php @@ -0,0 +1,44 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + ]; +} diff --git a/laravel/my-project/app/Providers/AppServiceProvider.php b/laravel/my-project/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..ee8ca5b --- /dev/null +++ b/laravel/my-project/app/Providers/AppServiceProvider.php @@ -0,0 +1,28 @@ + + */ + protected $policies = [ + // 'App\Models\Model' => 'App\Policies\ModelPolicy', + ]; + + /** + * Register any authentication / authorization services. + * + * @return void + */ + public function boot() + { + $this->registerPolicies(); + + // + } +} diff --git a/laravel/my-project/app/Providers/BroadcastServiceProvider.php b/laravel/my-project/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..395c518 --- /dev/null +++ b/laravel/my-project/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,21 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + * + * @return void + */ + public function boot() + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + * + * @return bool + */ + public function shouldDiscoverEvents() + { + return false; + } +} diff --git a/laravel/my-project/app/Providers/RouteServiceProvider.php b/laravel/my-project/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..ea87f2e --- /dev/null +++ b/laravel/my-project/app/Providers/RouteServiceProvider.php @@ -0,0 +1,52 @@ +configureRateLimiting(); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->group(base_path('routes/web.php')); + }); + } + + /** + * Configure the rate limiters for the application. + * + * @return void + */ + protected function configureRateLimiting() + { + RateLimiter::for('api', function (Request $request) { + return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); + }); + } +} diff --git a/laravel/my-project/artisan b/laravel/my-project/artisan new file mode 100755 index 0000000..67a3329 --- /dev/null +++ b/laravel/my-project/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/laravel/my-project/bootstrap/app.php b/laravel/my-project/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/laravel/my-project/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/laravel/my-project/bootstrap/cache/.gitignore b/laravel/my-project/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/laravel/my-project/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/laravel/my-project/composer.json b/laravel/my-project/composer.json new file mode 100644 index 0000000..cf25532 --- /dev/null +++ b/laravel/my-project/composer.json @@ -0,0 +1,67 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "require": { + "php": "^8.0.2", + "fruitcake/laravel-cors": "^3.0", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^9.19", + "laravel/sanctum": "^3.0", + "laravel/tinker": "^2.7" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "laravel/pint": "^1.0", + "laravel/sail": "^1.0.1", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^6.1", + "phpunit/phpunit": "^9.5.10", + "spatie/laravel-ignition": "^1.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/laravel/my-project/composer.lock b/laravel/my-project/composer.lock new file mode 100644 index 0000000..6923785 --- /dev/null +++ b/laravel/my-project/composer.lock @@ -0,0 +1,7905 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "3d4469b56e67c06dd5a90295945685f3", + "packages": [ + { + "name": "brick/math", + "version": "0.10.2", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.10.2" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2022-08-10T22:54:19+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.6" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2022-10-20T09:10:12+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2022-09-10T18:51:20+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2022-06-18T20:57:19+00:00" + }, + { + "name": "fruitcake/laravel-cors", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/laravel-cors.git", + "reference": "7c036ec08972d8d5d9db637e772af6887828faf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/7c036ec08972d8d5d9db637e772af6887828faf5", + "reference": "7c036ec08972d8d5d9db637e772af6887828faf5", + "shasum": "" + }, + "require": { + "fruitcake/php-cors": "^1.2", + "illuminate/contracts": "^6|^7|^8|^9", + "illuminate/support": "^6|^7|^8|^9", + "php": "^7.4|^8.0" + }, + "require-dev": { + "laravel/framework": "^6|^7.24|^8", + "orchestra/testbench-dusk": "^4|^5|^6|^7", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + }, + "laravel": { + "providers": [ + "Fruitcake\\Cors\\CorsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", + "keywords": [ + "api", + "cors", + "crossdomain", + "laravel" + ], + "support": { + "issues": "https://github.com/fruitcake/laravel-cors/issues", + "source": "https://github.com/fruitcake/laravel-cors/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-02-23T14:53:22+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-02-20T15:07:15+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.28 || ^9.5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2022-07-30T15:56:11+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9 || ^2.4", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "7.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-08-28T15:39:27+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.4.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "67c26b443f348a51926030c83481b85718457d3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", + "reference": "67c26b443f348a51926030c83481b85718457d3d", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.4.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-10-26T14:07:24+00:00" + }, + { + "name": "laravel/framework", + "version": "v9.37.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "0c9675abf6d966e834b2ebeca3319f524e07a330" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/0c9675abf6d966e834b2ebeca3319f524e07a330", + "reference": "0c9675abf6d966e834b2ebeca3319f524e07a330", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^2.0", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1", + "ext-mbstring": "*", + "ext-openssl": "*", + "fruitcake/php-cors": "^1.2", + "laravel/serializable-closure": "^1.2.2", + "league/commonmark": "^2.2", + "league/flysystem": "^3.8.0", + "monolog/monolog": "^2.0", + "nesbot/carbon": "^2.62.1", + "nunomaduro/termwind": "^1.13", + "php": "^8.0.2", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.2.2", + "symfony/console": "^6.0.9", + "symfony/error-handler": "^6.0", + "symfony/finder": "^6.0", + "symfony/http-foundation": "^6.0", + "symfony/http-kernel": "^6.0", + "symfony/mailer": "^6.0", + "symfony/mime": "^6.0", + "symfony/process": "^6.0", + "symfony/routing": "^6.0", + "symfony/uid": "^6.0", + "symfony/var-dumper": "^6.0", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^2.0" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", + "doctrine/dbal": "^2.13.3|^3.1.4", + "fakerphp/faker": "^1.9.2", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "orchestra/testbench-core": "^7.11", + "pda/pheanstalk": "^4.0", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^9.5.8", + "predis/predis": "^1.1.9|^2.0.2", + "symfony/cache": "^6.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", + "ext-bcmath": "Required to use the multiple_of validation rule.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", + "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2022-10-25T15:43:46+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "b71e80a3a8e8029e2ec8c1aa814b999609ce16dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/b71e80a3a8e8029e2ec8c1aa814b999609ce16dc", + "reference": "b71e80a3a8e8029e2ec8c1aa814b999609ce16dc", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21", + "illuminate/contracts": "^9.21", + "illuminate/database": "^9.21", + "illuminate/support": "^9.21", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.0", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "support": { + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" + }, + "time": "2022-07-29T21:33:30+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2022-09-08T13:45:54+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.7.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "dff39b661e827dae6e092412f976658df82dbac5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5", + "reference": "dff39b661e827dae6e092412f976658df82dbac5", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.10.4|^0.11.1", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.7.2" + }, + "time": "2022-03-23T12:38:24+00:00" + }, + { + "name": "league/commonmark", + "version": "2.3.6", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "857afc47ce113454bd629037213378ba3219dd40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/857afc47ce113454bd629037213378ba3219dd40", + "reference": "857afc47ce113454bd629037213378ba3219dd40", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2022-10-30T16:45:38+00:00" + }, + { + "name": "league/config", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.90", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2021-08-14T12:15:32+00:00" + }, + { + "name": "league/flysystem", + "version": "3.10.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b9bd194b016114d6ff6765c09d40c7d427e4e3f6", + "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6", + "shasum": "" + }, + "require": { + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.1", + "aws/aws-sdk-php": "^3.198.1", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.14", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.10.2" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2022-10-25T07:01:47+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2022-04-17T13:12:02+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpspec/prophecy": "^1.15", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5.14", + "predis/predis": "^1.1 || ^2.0", + "rollbar/rollbar": "^1.3 || ^2 || ^3", + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.8.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-07-24T11:55:47+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.62.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.0", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2022-09-02T07:48:13+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.3" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.8" + }, + "time": "2022-09-12T23:36:20+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.14.2", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "9a8218511eb1a0965629ff820dda25985440aefc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/9a8218511eb1a0965629ff820dda25985440aefc", + "reference": "9a8218511eb1a0965629ff820dda25985440aefc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.14.2" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2022-10-28T22:51:32+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2022-07-30T15:51:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.11.8", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e", + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.11.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.8" + }, + "time": "2022-07-28T14:25:11+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "symfony/polyfill-php81": "^1.23" + }, + "require-dev": { + "captainhook/captainhook": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "ergebnis/composer-normalize": "^2.6", + "fakerphp/faker": "^1.5", + "hamcrest/hamcrest-php": "^2", + "jangregor/phpstan-prophecy": "^0.8", + "mockery/mockery": "^1.3", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^0.12.32", + "phpstan/phpstan-mockery": "^0.12.5", + "phpstan/phpstan-phpunit": "^0.12.11", + "phpunit/phpunit": "^8.5 || ^9", + "psy/psysh": "^0.10.4", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.2.2" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2021-10-10T03:01:02+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.5.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d", + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10", + "ext-ctype": "*", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-ctype": "Enables faster processing of character classification using ctype functions.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.5.1" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2022-09-16T03:22:46+00:00" + }, + { + "name": "symfony/console", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/a1282bd0c096e0bdb8800b104177e2ce404d8815", + "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-26T21:42:49+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/0dd5e36b80e1de97f8f74ed7023ac2b837a36443", + "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T17:24:16+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/699a26ce5ec656c198bf6e26398b0f0818c7e504", + "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:23:08+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a0449a7ad7daa0f7c0acd508259f80544ab5a347", + "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.1.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-05T16:51:07+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "02ff5eea2f453731cfbc6bc215e456b781480448" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448", + "reference": "02ff5eea2f453731cfbc6bc215e456b781480448", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "39696bff2c2970b3779a5cac7bf9f0b88fc2b709" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/39696bff2c2970b3779a5cac7bf9f0b88fc2b709", + "reference": "39696bff2c2970b3779a5cac7bf9f0b88fc2b709", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:42:06+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/792a1856d2b95273f0e1c3435785f1d01a60ecc6", + "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:44:59+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8fc1ffe753948c47a103a809cdd6a4a8458b3254", + "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^6.1", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.1", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^6.1", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^6.1", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T18:06:36+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "7e19813c0b43387c55665780c4caea505cc48391" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/7e19813c0b43387c55665780c4caea505cc48391", + "reference": "7e19813c0b43387c55665780c4caea505cc48391", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<5.4" + }, + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:23:08+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "f440f066d57691088d998d6e437ce98771144618" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/f440f066d57691088d998d6e437ce98771144618", + "reference": "f440f066d57691088d998d6e437ce98771144618", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.2|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-19T08:10:53+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "433d05519ce6990bf3530fba6957499d327395c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/a41886c1c81dc075a09c71fe6db5b9d68c79de23", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/process", + "version": "v6.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/a6506e99cfad7059b1ab5cab395854a0a0c21292", + "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T17:24:16+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/95effeb9d6e2cec861cee06bf5bbf82d09aea7f5", + "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-18T13:12:43+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:18:58+00:00" + }, + { + "name": "symfony/string", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-10T09:34:31+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.1.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "e6cd330e5a072518f88d65148f3f165541807494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/e6cd330e5a072518f88d65148f3f165541807494", + "reference": "e6cd330e5a072518f88d65148f3f165541807494", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.3|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.1.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:04:03+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc", + "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T17:24:16+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.1.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "e03519f7b1ce1d3c0b74f751892bb41d549a2d98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/e03519f7b1ce1d3c0b74f751892bb41d549a2d98", + "reference": "e03519f7b1ce1d3c0b74f751892bb41d549a2d98", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v6.1.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-09T09:34:27+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.1.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0f0adde127f24548e23cbde83bcaeadc491c551f", + "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.1.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:04:03+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.5", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" + }, + "time": "2022-09-12T13:28:28+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.5.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.2", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.8", + "symfony/polyfill-ctype": "^1.23", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-filter": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "5.5-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2022-10-16T01:01:54+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "symfony/phpunit-bridge": "^4.4 || ^5.2" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v1.20-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" + }, + "time": "2022-07-20T13:12:54+00:00" + }, + { + "name": "filp/whoops", + "version": "2.14.5", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.14.5" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2022-01-07T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "1d276e4c803397a26cc337df908f55c2a4e90d86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/1d276e4c803397a26cc337df908f55c2a4e90d86", + "reference": "1d276e4c803397a26cc337df908f55c2a4e90d86", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.11.0", + "illuminate/view": "^9.27", + "laravel-zero/framework": "^9.1.3", + "mockery/mockery": "^1.5.0", + "nunomaduro/larastan": "^2.2", + "nunomaduro/termwind": "^1.14.0", + "pestphp/pest": "^1.22.1" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2022-09-13T15:07:15+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.16.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/7d1ed5f856ec8b9708712e3fc0708fcabe114659", + "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.0|^9.0", + "illuminate/contracts": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "php": "^7.3|^8.0" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2022-09-28T13:13:22+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.5.1" + }, + "time": "2022-09-07T15:32:08+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0f6349c3ed5dd28467087b08fb59384bb458a22b", + "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.14.5", + "php": "^8.0.0", + "symfony/console": "^6.0.2" + }, + "require-dev": { + "brianium/paratest": "^6.4.1", + "laravel/framework": "^9.26.1", + "laravel/pint": "^1.1.1", + "nunomaduro/larastan": "^1.0.3", + "nunomaduro/mock-final-classes": "^1.1.0", + "orchestra/testbench": "^7.7", + "phpunit/phpunit": "^9.5.23", + "spatie/ignition": "^1.4.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "6.x-dev" + }, + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2022-09-29T12:29:49+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "spatie/backtrace", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", + "keywords": [ + "Backtrace", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2021-11-09T10:57:15+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/b1b974348750925b717fa8c8b97a0db0d1aa40ca", + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0", + "php": "^8.0", + "spatie/backtrace": "^1.2", + "symfony/http-foundation": "^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/process": "^5.2|^6.0", + "symfony/var-dumper": "^5.2|^6.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.3.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-08T10:10:20+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/dd3d456779108d7078baf4e43f8c2b937d9794a1", + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "^2.0", + "php": "^8.0", + "spatie/flare-client-php": "^1.1", + "symfony/console": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/ignition/issues", + "source": "https://github.com/spatie/ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-26T11:51:15+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", + "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^8.77|^9.27", + "monolog/monolog": "^2.3", + "php": "^8.0", + "spatie/flare-client-php": "^1.0.1", + "spatie/ignition": "^1.4.1", + "symfony/console": "^5.0|^6.0", + "symfony/var-dumper": "^5.0|^6.0" + }, + "require-dev": { + "filp/whoops": "^2.14", + "livewire/livewire": "^2.8|dev-develop", + "mockery/mockery": "^1.4", + "nunomaduro/larastan": "^1.0", + "orchestra/testbench": "^6.23|^7.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/laravel-ray": "^1.27" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/laravel-ignition/issues", + "source": "https://github.com/spatie/laravel-ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-10-26T17:39:54+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.0.2" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/laravel/my-project/config/app.php b/laravel/my-project/config/app.php new file mode 100644 index 0000000..ef76a7e --- /dev/null +++ b/laravel/my-project/config/app.php @@ -0,0 +1,215 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => Facade::defaultAliases()->merge([ + // 'ExampleClass' => App\Example\ExampleClass::class, + ])->toArray(), + +]; diff --git a/laravel/my-project/config/auth.php b/laravel/my-project/config/auth.php new file mode 100644 index 0000000..d8c6cee --- /dev/null +++ b/laravel/my-project/config/auth.php @@ -0,0 +1,111 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/laravel/my-project/config/broadcasting.php b/laravel/my-project/config/broadcasting.php new file mode 100644 index 0000000..9e4d4aa --- /dev/null +++ b/laravel/my-project/config/broadcasting.php @@ -0,0 +1,70 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/laravel/my-project/config/cache.php b/laravel/my-project/config/cache.php new file mode 100644 index 0000000..33bb295 --- /dev/null +++ b/laravel/my-project/config/cache.php @@ -0,0 +1,110 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/laravel/my-project/config/cors.php b/laravel/my-project/config/cors.php new file mode 100644 index 0000000..f1588e3 --- /dev/null +++ b/laravel/my-project/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie', 'api'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/laravel/my-project/config/database.php b/laravel/my-project/config/database.php new file mode 100644 index 0000000..137ad18 --- /dev/null +++ b/laravel/my-project/config/database.php @@ -0,0 +1,151 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/laravel/my-project/config/filesystems.php b/laravel/my-project/config/filesystems.php new file mode 100644 index 0000000..e9d9dbd --- /dev/null +++ b/laravel/my-project/config/filesystems.php @@ -0,0 +1,76 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/laravel/my-project/config/hashing.php b/laravel/my-project/config/hashing.php new file mode 100644 index 0000000..bcd3be4 --- /dev/null +++ b/laravel/my-project/config/hashing.php @@ -0,0 +1,52 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + ], + +]; diff --git a/laravel/my-project/config/logging.php b/laravel/my-project/config/logging.php new file mode 100644 index 0000000..5aa1dbb --- /dev/null +++ b/laravel/my-project/config/logging.php @@ -0,0 +1,122 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/laravel/my-project/config/mail.php b/laravel/my-project/config/mail.php new file mode 100644 index 0000000..534395a --- /dev/null +++ b/laravel/my-project/config/mail.php @@ -0,0 +1,118 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array", "failover" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + ], + + 'postmark' => [ + 'transport' => 'postmark', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/laravel/my-project/config/queue.php b/laravel/my-project/config/queue.php new file mode 100644 index 0000000..25ea5a8 --- /dev/null +++ b/laravel/my-project/config/queue.php @@ -0,0 +1,93 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/laravel/my-project/config/sanctum.php b/laravel/my-project/config/sanctum.php new file mode 100644 index 0000000..529cfdc --- /dev/null +++ b/laravel/my-project/config/sanctum.php @@ -0,0 +1,67 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. If this value is null, personal access tokens do + | not expire. This won't tweak the lifetime of first-party sessions. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + ], + +]; diff --git a/laravel/my-project/config/services.php b/laravel/my-project/config/services.php new file mode 100644 index 0000000..0ace530 --- /dev/null +++ b/laravel/my-project/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/laravel/my-project/config/session.php b/laravel/my-project/config/session.php new file mode 100644 index 0000000..8fed97c --- /dev/null +++ b/laravel/my-project/config/session.php @@ -0,0 +1,201 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + +]; diff --git a/laravel/my-project/config/view.php b/laravel/my-project/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/laravel/my-project/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/laravel/my-project/database/.DS_Store b/laravel/my-project/database/.DS_Store new file mode 100644 index 0000000..3c541cf Binary files /dev/null and b/laravel/my-project/database/.DS_Store differ diff --git a/laravel/my-project/database/.gitignore b/laravel/my-project/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/laravel/my-project/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/laravel/my-project/database/factories/UserFactory.php b/laravel/my-project/database/factories/UserFactory.php new file mode 100644 index 0000000..41f8ae8 --- /dev/null +++ b/laravel/my-project/database/factories/UserFactory.php @@ -0,0 +1,40 @@ + + */ +class UserFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + * + * @return static + */ + public function unverified() + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/laravel/my-project/database/migrations/2014_10_12_000000_create_users_table.php b/laravel/my-project/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..cf6b776 --- /dev/null +++ b/laravel/my-project/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +}; diff --git a/laravel/my-project/database/migrations/2014_10_12_100000_create_password_resets_table.php b/laravel/my-project/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..fcacb80 --- /dev/null +++ b/laravel/my-project/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +}; diff --git a/laravel/my-project/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/laravel/my-project/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..1719198 --- /dev/null +++ b/laravel/my-project/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/laravel/my-project/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/laravel/my-project/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..6c81fd2 --- /dev/null +++ b/laravel/my-project/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,37 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/laravel/my-project/database/migrations/2022_11_02_000000_alterUser.php b/laravel/my-project/database/migrations/2022_11_02_000000_alterUser.php new file mode 100644 index 0000000..4bd2412 --- /dev/null +++ b/laravel/my-project/database/migrations/2022_11_02_000000_alterUser.php @@ -0,0 +1,32 @@ +foreign('auth')->references('id')->on('users'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('Utilisateur', function (Blueprint $table) { + $table->dropForeign('Utilisateur_auth_foreign'); + }); + } +}; diff --git a/laravel/my-project/database/seeders/DatabaseSeeder.php b/laravel/my-project/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..76d96dc --- /dev/null +++ b/laravel/my-project/database/seeders/DatabaseSeeder.php @@ -0,0 +1,24 @@ +create(); + + // \App\Models\User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); + } +} diff --git a/laravel/my-project/lang/en/auth.php b/laravel/my-project/lang/en/auth.php new file mode 100644 index 0000000..6598e2c --- /dev/null +++ b/laravel/my-project/lang/en/auth.php @@ -0,0 +1,20 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/laravel/my-project/lang/en/pagination.php b/laravel/my-project/lang/en/pagination.php new file mode 100644 index 0000000..d481411 --- /dev/null +++ b/laravel/my-project/lang/en/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/laravel/my-project/lang/en/passwords.php b/laravel/my-project/lang/en/passwords.php new file mode 100644 index 0000000..2345a56 --- /dev/null +++ b/laravel/my-project/lang/en/passwords.php @@ -0,0 +1,22 @@ + 'Your password has been reset!', + 'sent' => 'We have emailed your password reset link!', + 'throttled' => 'Please wait before retrying.', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that email address.", + +]; diff --git a/laravel/my-project/lang/en/validation.php b/laravel/my-project/lang/en/validation.php new file mode 100644 index 0000000..5ea01fa --- /dev/null +++ b/laravel/my-project/lang/en/validation.php @@ -0,0 +1,174 @@ + 'The :attribute must be accepted.', + 'accepted_if' => 'The :attribute must be accepted when :other is :value.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute must only contain letters.', + 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute must only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute must have between :min and :max items.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute must be between :min and :max.', + 'string' => 'The :attribute must be between :min and :max characters.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute is not a valid date.', + 'date_equals' => 'The :attribute must be a date equal to :date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', + 'email' => 'The :attribute must be a valid email address.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute must have more than :value items.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'numeric' => 'The :attribute must be greater than :value.', + 'string' => 'The :attribute must be greater than :value characters.', + ], + 'gte' => [ + 'array' => 'The :attribute must have :value items or more.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', + ], + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'lt' => [ + 'array' => 'The :attribute must have less than :value items.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'numeric' => 'The :attribute must be less than :value.', + 'string' => 'The :attribute must be less than :value characters.', + ], + 'lte' => [ + 'array' => 'The :attribute must not have more than :value items.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'string' => 'The :attribute must be less than or equal to :value characters.', + ], + 'mac_address' => 'The :attribute must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute must not have more than :max items.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute must not be greater than :max.', + 'string' => 'The :attribute must not be greater than :max characters.', + ], + 'max_digits' => 'The :attribute must not have more than :max digits.', + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute must have at least :min items.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'numeric' => 'The :attribute must be at least :min.', + 'string' => 'The :attribute must be at least :min characters.', + ], + 'min_digits' => 'The :attribute must have at least :min digits.', + 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'password' => [ + 'letters' => 'The :attribute must contain at least one letter.', + 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute must contain at least one number.', + 'symbols' => 'The :attribute must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], + 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'array' => 'The :attribute must contain :size items.', + 'file' => 'The :attribute must be :size kilobytes.', + 'numeric' => 'The :attribute must be :size.', + 'string' => 'The :attribute must be :size characters.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid timezone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute must be a valid URL.', + 'uuid' => 'The :attribute must be a valid UUID.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; diff --git a/laravel/my-project/licenses/laravel-9.3.9.txt b/laravel/my-project/licenses/laravel-9.3.9.txt new file mode 100644 index 0000000..c419878 --- /dev/null +++ b/laravel/my-project/licenses/laravel-9.3.9.txt @@ -0,0 +1 @@ +MIT: http://opensource.org/licenses/MIT \ No newline at end of file diff --git a/laravel/my-project/onLaunch.sh b/laravel/my-project/onLaunch.sh new file mode 100644 index 0000000..3748340 --- /dev/null +++ b/laravel/my-project/onLaunch.sh @@ -0,0 +1,11 @@ +composer require fruitcake/laravel-cors + + +php artisan migrate +php artisan key:generate +php artisan cache:clear +php artisan config:clear +php artisan route:clear + + +php artisan serve --host=0.0.0.0 --env=.env \ No newline at end of file diff --git a/laravel/my-project/package.json b/laravel/my-project/package.json new file mode 100644 index 0000000..36489d9 --- /dev/null +++ b/laravel/my-project/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.6.0", + "lodash": "^4.17.19", + "postcss": "^8.1.14", + "vite": "^3.0.0" + } +} diff --git a/laravel/my-project/phpunit.xml b/laravel/my-project/phpunit.xml new file mode 100644 index 0000000..2ac86a1 --- /dev/null +++ b/laravel/my-project/phpunit.xml @@ -0,0 +1,31 @@ + + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + + diff --git a/laravel/my-project/public/.htaccess b/laravel/my-project/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/laravel/my-project/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/laravel/my-project/public/favicon.ico b/laravel/my-project/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/laravel/my-project/public/index.php b/laravel/my-project/public/index.php new file mode 100644 index 0000000..1d69f3a --- /dev/null +++ b/laravel/my-project/public/index.php @@ -0,0 +1,55 @@ +make(Kernel::class); + +$response = $kernel->handle( + $request = Request::capture() +)->send(); + +$kernel->terminate($request, $response); diff --git a/laravel/my-project/public/robots.txt b/laravel/my-project/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/laravel/my-project/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/laravel/my-project/resources/css/app.css b/laravel/my-project/resources/css/app.css new file mode 100644 index 0000000..e69de29 diff --git a/laravel/my-project/resources/js/app.js b/laravel/my-project/resources/js/app.js new file mode 100644 index 0000000..e59d6a0 --- /dev/null +++ b/laravel/my-project/resources/js/app.js @@ -0,0 +1 @@ +import './bootstrap'; diff --git a/laravel/my-project/resources/js/bootstrap.js b/laravel/my-project/resources/js/bootstrap.js new file mode 100644 index 0000000..d21a8c0 --- /dev/null +++ b/laravel/my-project/resources/js/bootstrap.js @@ -0,0 +1,34 @@ +import _ from 'lodash'; +window._ = _; + +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +import axios from 'axios'; +window.axios = axios; + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo'; + +// import Pusher from 'pusher-js'; +// window.Pusher = Pusher; + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: import.meta.env.VITE_PUSHER_APP_KEY, +// wsHost: import.meta.env.VITE_PUSHER_HOST ?? `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`, +// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80, +// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443, +// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https', +// enabledTransports: ['ws', 'wss'], +// }); diff --git a/laravel/my-project/resources/views/welcome.blade.php b/laravel/my-project/resources/views/welcome.blade.php new file mode 100644 index 0000000..0ad6097 --- /dev/null +++ b/laravel/my-project/resources/views/welcome.blade.php @@ -0,0 +1,132 @@ + + + + + + + Laravel + + + + + + + + + + +
+ @if (Route::has('login')) + + @endif + +
+
+ + + + + +
+ +
+
+
+ + +
+
+ Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end. +
+
+
+ +
+
+ + +
+ +
+
+ Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process. +
+
+
+ +
+
+ + +
+ +
+
+ Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials. +
+
+
+ +
+
+ +
Vibrant Ecosystem
+
+ +
+
+ Laravel's robust library of first-party tools and libraries, such as Forge, Vapor, Nova, and Envoyer help you take your projects to the next level. Pair them with powerful open source libraries like Cashier, Dusk, Echo, Horizon, Sanctum, Telescope, and more. +
+
+
+
+
+ +
+
+
+ + + + + + Shop + + + + + + + + Sponsor + +
+
+ +
+ Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }}) +
+
+
+
+ + diff --git a/laravel/my-project/routes/api.php b/laravel/my-project/routes/api.php new file mode 100644 index 0000000..696b0ec --- /dev/null +++ b/laravel/my-project/routes/api.php @@ -0,0 +1,23 @@ +get('/user', function (Request $request) { + return $request->user(); +}); + +Route::get('/helloworld', [HelloWorldController::class, 'getHelloWorld']); diff --git a/laravel/my-project/routes/channels.php b/laravel/my-project/routes/channels.php new file mode 100644 index 0000000..5d451e1 --- /dev/null +++ b/laravel/my-project/routes/channels.php @@ -0,0 +1,18 @@ +id === (int) $id; +}); diff --git a/laravel/my-project/routes/console.php b/laravel/my-project/routes/console.php new file mode 100644 index 0000000..e05f4c9 --- /dev/null +++ b/laravel/my-project/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote'); diff --git a/laravel/my-project/routes/web.php b/laravel/my-project/routes/web.php new file mode 100644 index 0000000..9c7bf4e --- /dev/null +++ b/laravel/my-project/routes/web.php @@ -0,0 +1,20 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/laravel/my-project/tests/Feature/ExampleTest.php b/laravel/my-project/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..1eafba6 --- /dev/null +++ b/laravel/my-project/tests/Feature/ExampleTest.php @@ -0,0 +1,21 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/laravel/my-project/tests/TestCase.php b/laravel/my-project/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/laravel/my-project/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/laravel/my-project/vite.config.js b/laravel/my-project/vite.config.js new file mode 100644 index 0000000..421b569 --- /dev/null +++ b/laravel/my-project/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + plugins: [ + laravel({ + input: ['resources/css/app.css', 'resources/js/app.js'], + refresh: true, + }), + ], +}); diff --git a/mysql/.gitignore b/mysql/.gitignore new file mode 100644 index 0000000..9f4c740 --- /dev/null +++ b/mysql/.gitignore @@ -0,0 +1 @@ +db/ \ No newline at end of file diff --git a/mysql/data.sql b/mysql/data.sql new file mode 100644 index 0000000..9d4f397 --- /dev/null +++ b/mysql/data.sql @@ -0,0 +1,194 @@ +-- phpMyAdmin SQL Dump +-- version 5.1.0 +-- https://www.phpmyadmin.net/ +-- +-- Hôte : localhost:8889 +-- Généré le : mer. 26 oct. 2022 à 09:52 +-- Version du serveur : 5.7.34 +-- Version de PHP : 8.0.8 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Base de données : `ecasteDB` +-- + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Admin` +-- + +CREATE TABLE `Admin` ( + `idAdmin` int(11) NOT NULL, + `Utilisateur` int(4) NOT NULL, + `Magasin` int(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Fournisseur` +-- + +CREATE TABLE `Fournisseur` ( + `id` int(4) NOT NULL, + `nom` varchar(50) NOT NULL, + `type` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Magasin` +-- + +CREATE TABLE `Magasin` ( + `id` int(4) NOT NULL, + `nom` varchar(50) NOT NULL, + `caPrevisionnel` float NOT NULL, + `objectifStockPrevisionnel` float NOT NULL, + `stockInitial` float NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Transaction` +-- + +CREATE TABLE `Transaction` ( + `id` int(4) NOT NULL, + `dateTransaction` date NOT NULL, + `montantTransaction` float NOT NULL, + `typeTransaction` varchar(5) NOT NULL, + `Magasin` int(4) NOT NULL, + `Fournisseur` int(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Utilisateur` +-- + +CREATE TABLE `Utilisateur` ( + `id` int(4) NOT NULL, + `nom` varchar(50) NOT NULL, + `Magasin` int(4) NOT NULL, + `auth` bigint(20) UNSIGNED NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Index pour les tables déchargées +-- + +-- +-- Index pour la table `Admin` +-- +ALTER TABLE `Admin` + ADD PRIMARY KEY (`idAdmin`), + ADD KEY `Utilisateur` (`Utilisateur`), + ADD KEY `Magasin` (`Magasin`); + +-- +-- Index pour la table `Fournisseur` +-- +ALTER TABLE `Fournisseur` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `Magasin` +-- +ALTER TABLE `Magasin` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `Transaction` +-- +ALTER TABLE `Transaction` + ADD PRIMARY KEY (`id`), + ADD KEY `Fournisseur` (`Fournisseur`), + ADD KEY `Magasin` (`Magasin`); + +-- +-- Index pour la table `Utilisateur` +-- +ALTER TABLE `Utilisateur` + ADD PRIMARY KEY (`id`), + ADD KEY `auth` (`auth`), + ADD KEY `Magasin` (`Magasin`); + +-- +-- AUTO_INCREMENT pour les tables déchargées +-- + +-- +-- AUTO_INCREMENT pour la table `Admin` +-- +ALTER TABLE `Admin` + MODIFY `idAdmin` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Fournisseur` +-- +ALTER TABLE `Fournisseur` + MODIFY `id` int(4) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Magasin` +-- +ALTER TABLE `Magasin` + MODIFY `id` int(4) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Transaction` +-- +ALTER TABLE `Transaction` + MODIFY `id` int(4) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Utilisateur` +-- +ALTER TABLE `Utilisateur` + MODIFY `id` int(4) NOT NULL AUTO_INCREMENT; + +-- +-- Contraintes pour les tables déchargées +-- + +-- +-- Contraintes pour la table `Admin` +-- +ALTER TABLE `Admin` + ADD CONSTRAINT `AdminIsUser` FOREIGN KEY (`Utilisateur`) REFERENCES `Utilisateur` (`id`), + ADD CONSTRAINT `AdminForMagasin` FOREIGN KEY (`Magasin`) REFERENCES `Magasin` (`id`); + +-- +-- Contraintes pour la table `Transaction` +-- +ALTER TABLE `Transaction` + ADD CONSTRAINT `FournisseurTransaction` FOREIGN KEY (`Fournisseur`) REFERENCES `Fournisseur` (`id`), + ADD CONSTRAINT `TransactionForMagasin` FOREIGN KEY (`Magasin`) REFERENCES `Magasin` (`id`); + +-- +-- Contraintes pour la table `Utilisateur` +-- +ALTER TABLE `Utilisateur` + /* + ADD CONSTRAINT `UtilisateurIsUser` FOREIGN KEY (`auth`) REFERENCES `Users` (`id`), + */ + ADD CONSTRAINT `UtilisateurHasMagasin` FOREIGN KEY (`Magasin`) REFERENCES `Magasin` (`id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/mysql/dockerFile b/mysql/dockerFile new file mode 100644 index 0000000..0473561 --- /dev/null +++ b/mysql/dockerFile @@ -0,0 +1,10 @@ +FROM mysql:8.0.31 + +ENV MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} +ENV MYSQL_DATABASE=${MYSQL_DATABASE} +ENV MYSQL_USER=${MYSQL_USER} +ENV MYSQL_PASSWORD=${MYSQL_PASSWORD} + +#ADD data.sql /docker-entrypoint-initdb.d + +EXPOSE 3306 \ No newline at end of file diff --git a/node/.DS_Store b/node/.DS_Store new file mode 100644 index 0000000..cdfc017 Binary files /dev/null and b/node/.DS_Store differ diff --git a/node/dockerFile b/node/dockerFile new file mode 100644 index 0000000..3fc4f51 --- /dev/null +++ b/node/dockerFile @@ -0,0 +1,11 @@ +FROM node:19 + +WORKDIR /var/www/html/app/vueProject + +COPY ./vue/vueProject/* . + +RUN npm install --global cross-env +RUN npm install axios +RUN npm install + +CMD [ "npm" , "run", "dev" ] \ No newline at end of file diff --git a/node/vue/.DS_Store b/node/vue/.DS_Store new file mode 100644 index 0000000..ae21c2c Binary files /dev/null and b/node/vue/.DS_Store differ diff --git a/node/vue/vueProject/.gitignore b/node/vue/vueProject/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/node/vue/vueProject/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/node/vue/vueProject/.vscode/extensions.json b/node/vue/vueProject/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/node/vue/vueProject/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/node/vue/vueProject/README.md b/node/vue/vueProject/README.md new file mode 100644 index 0000000..e63a538 --- /dev/null +++ b/node/vue/vueProject/README.md @@ -0,0 +1,29 @@ +# vueProject + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` diff --git a/node/vue/vueProject/index.html b/node/vue/vueProject/index.html new file mode 100644 index 0000000..99f583a --- /dev/null +++ b/node/vue/vueProject/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/node/vue/vueProject/package-lock.json b/node/vue/vueProject/package-lock.json new file mode 100644 index 0000000..e42ff09 --- /dev/null +++ b/node/vue/vueProject/package-lock.json @@ -0,0 +1,1402 @@ +{ + "name": "vueproject", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vueproject", + "version": "0.0.0", + "dependencies": { + "axios": "^1.1.3", + "vue": "^3.2.41", + "vue-axios": "^3.5.1", + "vue-router": "^4.1.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.2", + "vite": "^3.1.8" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "dependencies": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "dependencies": { + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "dependencies": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "dependencies": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "dependencies": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + }, + "peerDependencies": { + "vue": "3.2.41" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/vite": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", + "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/vue-axios": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vue-axios/-/vue-axios-3.5.1.tgz", + "integrity": "sha512-PyiCHFZ30IGgzmW8mr8DkrzUqqDc5F1qtDfRVMDVx3q1zNSi3UxWKBHxtt/Gsz+HVJehxtc7vxyk+Vxr1Ok2BQ==", + "peerDependencies": { + "axios": ">=1.0.0", + "vue": "^3.0.0 || ^2.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "dependencies": { + "@vue/devtools-api": "^6.4.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==" + }, + "@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "dev": true, + "optional": true + }, + "@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "requires": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "requires": { + "@vue/shared": "3.2.41" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "requires": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "requires": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "requires": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "dev": true, + "optional": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "vite": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", + "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "vue-axios": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vue-axios/-/vue-axios-3.5.1.tgz", + "integrity": "sha512-PyiCHFZ30IGgzmW8mr8DkrzUqqDc5F1qtDfRVMDVx3q1zNSi3UxWKBHxtt/Gsz+HVJehxtc7vxyk+Vxr1Ok2BQ==", + "requires": {} + }, + "vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "requires": { + "@vue/devtools-api": "^6.4.5" + } + } + } +} diff --git a/node/vue/vueProject/package.json b/node/vue/vueProject/package.json new file mode 100644 index 0000000..0632548 --- /dev/null +++ b/node/vue/vueProject/package.json @@ -0,0 +1,19 @@ +{ + "name": "vueproject", + "version": "0.0.0", + "scripts": { + "dev": "vite --host", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.1.3", + "vue": "^3.2.41", + "vue-axios": "^3.5.1", + "vue-router": "^4.1.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.2", + "vite": "^3.1.8" + } +} diff --git a/node/vue/vueProject/public/favicon.ico b/node/vue/vueProject/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/node/vue/vueProject/public/favicon.ico differ diff --git a/node/vue/vueProject/src/App.vue b/node/vue/vueProject/src/App.vue new file mode 100644 index 0000000..a9c7b4f --- /dev/null +++ b/node/vue/vueProject/src/App.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/node/vue/vueProject/src/api/config.js b/node/vue/vueProject/src/api/config.js new file mode 100644 index 0000000..8fd091c --- /dev/null +++ b/node/vue/vueProject/src/api/config.js @@ -0,0 +1,6 @@ +export const APISettings = { + token: '', + headers: new Headers({ + 'Accept': 'application/json' + }), +} \ No newline at end of file diff --git a/node/vue/vueProject/src/assets/base.css b/node/vue/vueProject/src/assets/base.css new file mode 100644 index 0000000..71dc55a --- /dev/null +++ b/node/vue/vueProject/src/assets/base.css @@ -0,0 +1,74 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + position: relative; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/node/vue/vueProject/src/assets/logo.svg b/node/vue/vueProject/src/assets/logo.svg new file mode 100644 index 0000000..bc826fe --- /dev/null +++ b/node/vue/vueProject/src/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node/vue/vueProject/src/assets/main.css b/node/vue/vueProject/src/assets/main.css new file mode 100644 index 0000000..e8667cd --- /dev/null +++ b/node/vue/vueProject/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/node/vue/vueProject/src/components/HelloWorldItem.vue b/node/vue/vueProject/src/components/HelloWorldItem.vue new file mode 100644 index 0000000..f5c722e --- /dev/null +++ b/node/vue/vueProject/src/components/HelloWorldItem.vue @@ -0,0 +1,57 @@ + + + + + \ No newline at end of file diff --git a/node/vue/vueProject/src/components/TheWelcome.vue b/node/vue/vueProject/src/components/TheWelcome.vue new file mode 100644 index 0000000..5e64625 --- /dev/null +++ b/node/vue/vueProject/src/components/TheWelcome.vue @@ -0,0 +1,86 @@ + + + diff --git a/node/vue/vueProject/src/components/WelcomeItem.vue b/node/vue/vueProject/src/components/WelcomeItem.vue new file mode 100644 index 0000000..a5eca70 --- /dev/null +++ b/node/vue/vueProject/src/components/WelcomeItem.vue @@ -0,0 +1,85 @@ + + + diff --git a/node/vue/vueProject/src/components/icons/IconCommunity.vue b/node/vue/vueProject/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/node/vue/vueProject/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/node/vue/vueProject/src/components/icons/IconDocumentation.vue b/node/vue/vueProject/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/node/vue/vueProject/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/node/vue/vueProject/src/components/icons/IconEcosystem.vue b/node/vue/vueProject/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/node/vue/vueProject/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/node/vue/vueProject/src/components/icons/IconSupport.vue b/node/vue/vueProject/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/node/vue/vueProject/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/node/vue/vueProject/src/components/icons/IconTooling.vue b/node/vue/vueProject/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/node/vue/vueProject/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/node/vue/vueProject/src/main.js b/node/vue/vueProject/src/main.js new file mode 100644 index 0000000..eedade8 --- /dev/null +++ b/node/vue/vueProject/src/main.js @@ -0,0 +1,11 @@ +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +import './assets/main.css' + +const app = createApp(App) + +app.use(router) + +app.mount('#app') diff --git a/node/vue/vueProject/src/router/index.js b/node/vue/vueProject/src/router/index.js new file mode 100644 index 0000000..70444b1 --- /dev/null +++ b/node/vue/vueProject/src/router/index.js @@ -0,0 +1,28 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import('../views/AboutView.vue') + }, + { + path: '/helloworld', + name: 'helloworld', + component: () => import('../views/HelloWorld.vue') + } + ] +}) + +export default router diff --git a/node/vue/vueProject/src/services/RestService.js b/node/vue/vueProject/src/services/RestService.js new file mode 100644 index 0000000..1efb607 --- /dev/null +++ b/node/vue/vueProject/src/services/RestService.js @@ -0,0 +1,20 @@ +import axios from 'axios' + +const API_URL='http://0.0.0.0:8000/api'; + +class RestService { + makeGETRequest(url, data, header) { + + return new Promise( (resolve, reject) => { + axios.get(API_URL + url, data, header) + .then(response => { + return resolve(response); + }) + .catch( error => { + reject( error ); + } ); + } ); + } +} + +export default new RestService; \ No newline at end of file diff --git a/node/vue/vueProject/src/views/AboutView.vue b/node/vue/vueProject/src/views/AboutView.vue new file mode 100644 index 0000000..756ad2a --- /dev/null +++ b/node/vue/vueProject/src/views/AboutView.vue @@ -0,0 +1,15 @@ + + + diff --git a/node/vue/vueProject/src/views/HelloWorld.vue b/node/vue/vueProject/src/views/HelloWorld.vue new file mode 100644 index 0000000..c179118 --- /dev/null +++ b/node/vue/vueProject/src/views/HelloWorld.vue @@ -0,0 +1,9 @@ + + + diff --git a/node/vue/vueProject/src/views/HomeView.vue b/node/vue/vueProject/src/views/HomeView.vue new file mode 100644 index 0000000..6bb706f --- /dev/null +++ b/node/vue/vueProject/src/views/HomeView.vue @@ -0,0 +1,9 @@ + + + diff --git a/node/vue/vueProject/vite.config.js b/node/vue/vueProject/vite.config.js new file mode 100644 index 0000000..a41ab67 --- /dev/null +++ b/node/vue/vueProject/vite.config.js @@ -0,0 +1,17 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + server: { // <-- this object is added + port: 8081 + }, + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +})