From 3fe409b0b025383235d5e544f00b1e66f9e06aa1 Mon Sep 17 00:00:00 2001 From: Sean Shriver Date: Fri, 22 Nov 2024 16:42:06 -0600 Subject: [PATCH 1/5] Fixing robs changes --- .../relational-migration/application refactoring/index2.en.md | 4 ++-- content/relational-migration/data migration/index3.en.md | 1 - content/relational-migration/index.en.md | 4 ++-- content/relational-migration/setup/index.en.md | 2 ++ content/relational-migration/setup/index2.en.md | 4 +++- contentspec.yaml | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/content/relational-migration/application refactoring/index2.en.md b/content/relational-migration/application refactoring/index2.en.md index 46d7c38..321b171 100644 --- a/content/relational-migration/application refactoring/index2.en.md +++ b/content/relational-migration/application refactoring/index2.en.md @@ -24,9 +24,9 @@ the original browser has a cookie set to the relational Rest API. 4. If you have multiple browsers on your laptop, such as Edge, Firefox, or Safari, open a different browser and navigate to the web app: -[https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html](https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html). +[https://dynamodbworkshop.s3.amazonaws.com/migration/index.html](https://dynamodbworkshop.s3.amazonaws.com/migration/index.html). (You can also open the same browser in Incognito Mode for this step.) 5. Click the Target API button and paste in the new Rest API URL. -6. Notice the title of the page has updated to **DynamoDB App** in a blue color. If it isn't blue, you can refresh the page and see the color change. +6. Notice the title of the page has updated to **DynamoDB App** in a blue color. diff --git a/content/relational-migration/data migration/index3.en.md b/content/relational-migration/data migration/index3.en.md index 88a57bb..895da9b 100644 --- a/content/relational-migration/data migration/index3.en.md +++ b/content/relational-migration/data migration/index3.en.md @@ -44,7 +44,6 @@ We can also check the import status within the AWS Console. 4. In the search box, type DynamoDB to visit the DyanmoDB console. 5. From the left nav, click Imports from S3. 6. Notice your import is listed along with the current status. - ![Import from S3](/static/images/relational-migration/import-from-s3.png) 7. Once the import has completed, you can click it to see a summary including item count and the size of the import. 8. On the left nav, click to Tables. 9. In the list of tables, click on the Customers table. diff --git a/content/relational-migration/index.en.md b/content/relational-migration/index.en.md index 7b35a2d..6907880 100644 --- a/content/relational-migration/index.en.md +++ b/content/relational-migration/index.en.md @@ -57,8 +57,8 @@ then apply them to create a new VIEW and use this to perform a custom import. Developer challenge: Write a new set of data access functions that point to DynamoDB. -### Requirements -This workshop is designed to run in an immersion day on Workshop Studio in an AWS-provided environment that includes a MySQL database on EC2. It cannot be run in your own AWS account, however the code is all open source. +### Runtime environment +This workshop is designed to run in an AWS-provided environment that includes a MySQL database on EC2. ### Technical Depth This workshop is a L300 level workshop. Having SQL, Python, and Bash skills will help but are not required. diff --git a/content/relational-migration/setup/index.en.md b/content/relational-migration/setup/index.en.md index 84cb29b..ceca422 100644 --- a/content/relational-migration/setup/index.en.md +++ b/content/relational-migration/setup/index.en.md @@ -14,6 +14,8 @@ You likely have a developer desktop or laptop, the ability to find and clone the public Github code repository, and a running MySQL database instance. You can create a new Amazon S3 bucket quickly, which can be used as a staging area for data to be migrated. +All the steps, tools, and scripts presented in the workshop are designed to be taken home with you +so you can perform a real database migration. diff --git a/content/relational-migration/setup/index2.en.md b/content/relational-migration/setup/index2.en.md index 033c1b7..8e1dc06 100644 --- a/content/relational-migration/setup/index2.en.md +++ b/content/relational-migration/setup/index2.en.md @@ -26,6 +26,8 @@ The Lambda source code project has been setup as follows 1. Next, let's deploy the Chalice application stack. + The deploy may take up to three minutes, be patient. + ```bash chalice deploy --stage relational ``` @@ -42,7 +44,7 @@ chalice deploy --stage relational A single-page web application is included in the /webapp project folder. The web app has already been deployed for you in a public S3 bucket for convenience. -5. Navigate to [https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html](https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html) +5. Navigate to [https://dynamodbworkshop.s3.amazonaws.com/migration/index.html](https://dynamodbworkshop.s3.amazonaws.com/migration/index.html) The webapp stores the API URL you provide as a browser cookie. Then, Javascript functions will call the API for you, when you click on diff --git a/contentspec.yaml b/contentspec.yaml index cd6cdd4..3b7916d 100644 --- a/contentspec.yaml +++ b/contentspec.yaml @@ -13,4 +13,4 @@ params: event_driven_architecture_lab_yaml : "https://s3.amazonaws.com/amazon-dynamodb-labs.com/assets/event-driven-cfn.yaml" github_contributing_guide : "https://github.com/aws-samples/amazon-dynamodb-labs/blob/master/CONTRIBUTING.md" github_issues_link : "https://github.com/aws-samples/amazon-dynamodb-labs/issues" - lsql_git_commit : "47a43bedf75bc0859e9141ad1bdd1f330f0933f1" + lsql_git_commit : "cea34bc520512c70091aba2995de0e99a31d1078" From 2b9de09e8b22e27916ca703dd9e3e2613391fcd3 Mon Sep 17 00:00:00 2001 From: Sean Shriver Date: Fri, 22 Nov 2024 16:44:09 -0600 Subject: [PATCH 2/5] reverting URL changes..... --- .../relational-migration/application refactoring/index2.en.md | 2 +- content/relational-migration/setup/index2.en.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/relational-migration/application refactoring/index2.en.md b/content/relational-migration/application refactoring/index2.en.md index 321b171..b2c6d09 100644 --- a/content/relational-migration/application refactoring/index2.en.md +++ b/content/relational-migration/application refactoring/index2.en.md @@ -24,7 +24,7 @@ the original browser has a cookie set to the relational Rest API. 4. If you have multiple browsers on your laptop, such as Edge, Firefox, or Safari, open a different browser and navigate to the web app: -[https://dynamodbworkshop.s3.amazonaws.com/migration/index.html](https://dynamodbworkshop.s3.amazonaws.com/migration/index.html). +[https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html](https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html). (You can also open the same browser in Incognito Mode for this step.) diff --git a/content/relational-migration/setup/index2.en.md b/content/relational-migration/setup/index2.en.md index 8e1dc06..ec842ce 100644 --- a/content/relational-migration/setup/index2.en.md +++ b/content/relational-migration/setup/index2.en.md @@ -44,7 +44,7 @@ chalice deploy --stage relational A single-page web application is included in the /webapp project folder. The web app has already been deployed for you in a public S3 bucket for convenience. -5. Navigate to [https://dynamodbworkshop.s3.amazonaws.com/migration/index.html](https://dynamodbworkshop.s3.amazonaws.com/migration/index.html) +5. Navigate to [https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html](https://amazon-dynamodb-labs.com/static/relational-migration/web/index.html) The webapp stores the API URL you provide as a browser cookie. Then, Javascript functions will call the API for you, when you click on From 918414a10724ad99d0e7c285d680a4b3f20325d1 Mon Sep 17 00:00:00 2001 From: Sean Shriver Date: Fri, 14 Feb 2025 12:59:53 -0600 Subject: [PATCH 3/5] RH visualizer --- .github/workflows/main.yml | 4 + static/files/visualizer/LICENSE.txt | 7 + static/files/visualizer/README.md | 17 + .../visualizer/css/bootstrap-3.3.7.min.css | 7209 +++++++++++++++++ static/files/visualizer/css/main.css | 813 ++ static/files/visualizer/data/ACL.json | 1 + .../visualizer/data/Asset Management.json | 1 + .../files/visualizer/data/FlightsFares.json | 1 + static/files/visualizer/data/Hospital.json | 545 ++ .../visualizer/data/Hotel Reservations.json | 1 + .../data/Mobile Payments Service.json | 1 + static/files/visualizer/data/OneTable.js | 181 + static/files/visualizer/data/OneTable.json | 1 + .../files/visualizer/data/Phone Billing.json | 1 + static/files/visualizer/data/banking.json | 512 ++ static/files/visualizer/favicon.ico | Bin 0 -> 15086 bytes .../files/visualizer/img/AttributeContext.png | Bin 0 -> 7682 bytes static/files/visualizer/img/DynamoDB.png | Bin 0 -> 16634 bytes .../files/visualizer/img/MappingFunction.png | Bin 0 -> 16132 bytes static/files/visualizer/img/OneTable.png | Bin 0 -> 15645 bytes static/files/visualizer/img/PK.png | Bin 0 -> 1795 bytes static/files/visualizer/img/PKcontext.png | Bin 0 -> 12404 bytes static/files/visualizer/img/SK.png | Bin 0 -> 1752 bytes static/files/visualizer/img/SKcontext.png | Bin 0 -> 21370 bytes static/files/visualizer/img/add.png | Bin 0 -> 9501 bytes static/files/visualizer/img/back.png | Bin 0 -> 9906 bytes static/files/visualizer/img/binoculars.png | Bin 0 -> 1448 bytes static/files/visualizer/img/button.png | Bin 0 -> 2201 bytes static/files/visualizer/img/button1.png | Bin 0 -> 2249 bytes .../files/visualizer/img/data/Hospital.json | 331 + static/files/visualizer/img/delete.png | Bin 0 -> 27660 bytes static/files/visualizer/img/model.png | Bin 0 -> 63577 bytes static/files/visualizer/img/model1.png | Bin 0 -> 70389 bytes static/files/visualizer/img/model2.png | Bin 0 -> 67399 bytes static/files/visualizer/img/model3.png | Bin 0 -> 70861 bytes static/files/visualizer/img/model4.png | Bin 0 -> 71203 bytes static/files/visualizer/img/model5.png | Bin 0 -> 73058 bytes static/files/visualizer/img/newTable.png | Bin 0 -> 56879 bytes static/files/visualizer/img/primaryKey.png | Bin 0 -> 1902 bytes static/files/visualizer/img/remove.png | Bin 0 -> 8664 bytes static/files/visualizer/img/show-schema.png | Bin 0 -> 100115 bytes static/files/visualizer/img/swap.png | Bin 0 -> 4464 bytes static/files/visualizer/img/tab.png | Bin 0 -> 3846 bytes static/files/visualizer/img/valueTemplate.png | Bin 0 -> 54772 bytes static/files/visualizer/index.html | 485 ++ .../visualizer/js/aws-sdk-2.892.0.min.js | 8 + static/files/visualizer/js/function.js | 1995 +++++ static/files/visualizer/js/globals.js | 112 + .../files/visualizer/js/jquery-3.5.1.min.js | 2 + static/files/visualizer/js/onload.js | 307 + static/files/visualizer/js/query.js | 365 + 51 files changed, 12900 insertions(+) create mode 100644 static/files/visualizer/LICENSE.txt create mode 100644 static/files/visualizer/README.md create mode 100644 static/files/visualizer/css/bootstrap-3.3.7.min.css create mode 100644 static/files/visualizer/css/main.css create mode 100644 static/files/visualizer/data/ACL.json create mode 100644 static/files/visualizer/data/Asset Management.json create mode 100644 static/files/visualizer/data/FlightsFares.json create mode 100644 static/files/visualizer/data/Hospital.json create mode 100644 static/files/visualizer/data/Hotel Reservations.json create mode 100644 static/files/visualizer/data/Mobile Payments Service.json create mode 100644 static/files/visualizer/data/OneTable.js create mode 100644 static/files/visualizer/data/OneTable.json create mode 100644 static/files/visualizer/data/Phone Billing.json create mode 100644 static/files/visualizer/data/banking.json create mode 100644 static/files/visualizer/favicon.ico create mode 100644 static/files/visualizer/img/AttributeContext.png create mode 100644 static/files/visualizer/img/DynamoDB.png create mode 100644 static/files/visualizer/img/MappingFunction.png create mode 100644 static/files/visualizer/img/OneTable.png create mode 100644 static/files/visualizer/img/PK.png create mode 100644 static/files/visualizer/img/PKcontext.png create mode 100644 static/files/visualizer/img/SK.png create mode 100644 static/files/visualizer/img/SKcontext.png create mode 100644 static/files/visualizer/img/add.png create mode 100644 static/files/visualizer/img/back.png create mode 100644 static/files/visualizer/img/binoculars.png create mode 100644 static/files/visualizer/img/button.png create mode 100644 static/files/visualizer/img/button1.png create mode 100644 static/files/visualizer/img/data/Hospital.json create mode 100644 static/files/visualizer/img/delete.png create mode 100644 static/files/visualizer/img/model.png create mode 100644 static/files/visualizer/img/model1.png create mode 100644 static/files/visualizer/img/model2.png create mode 100644 static/files/visualizer/img/model3.png create mode 100644 static/files/visualizer/img/model4.png create mode 100644 static/files/visualizer/img/model5.png create mode 100644 static/files/visualizer/img/newTable.png create mode 100644 static/files/visualizer/img/primaryKey.png create mode 100644 static/files/visualizer/img/remove.png create mode 100644 static/files/visualizer/img/show-schema.png create mode 100644 static/files/visualizer/img/swap.png create mode 100644 static/files/visualizer/img/tab.png create mode 100644 static/files/visualizer/img/valueTemplate.png create mode 100644 static/files/visualizer/index.html create mode 100644 static/files/visualizer/js/aws-sdk-2.892.0.min.js create mode 100644 static/files/visualizer/js/function.js create mode 100644 static/files/visualizer/js/globals.js create mode 100644 static/files/visualizer/js/jquery-3.5.1.min.js create mode 100644 static/files/visualizer/js/onload.js create mode 100644 static/files/visualizer/js/query.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7785984..a341679 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,6 +29,10 @@ jobs: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} - name: S3SyncStaticWeb run: aws s3 sync ./global-serverless/web/ s3://amazon-dynamodb-labs-static/static/global-serverless-application/web/ + - name: StaticYearReplacer + run: sed -i "s/<>/$(date +%Y)/" ./static/files/visualizer/index.html + - name: S3SyncVisualizer + run: aws s3 sync ./static/files/visualizer/ s3://amazon-dynamodb-labs-static/static/visualizer/ - name: Pull preview build run: aws s3 sync s3://amazon-dynamodb-labs-static/build/ . && chmod +x preview_build - name: Build Assets diff --git a/static/files/visualizer/LICENSE.txt b/static/files/visualizer/LICENSE.txt new file mode 100644 index 0000000..2fa5fba --- /dev/null +++ b/static/files/visualizer/LICENSE.txt @@ -0,0 +1,7 @@ +Copyright 2025 Amazon Web Services, Inc. or its Affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/static/files/visualizer/README.md b/static/files/visualizer/README.md new file mode 100644 index 0000000..455ffac --- /dev/null +++ b/static/files/visualizer/README.md @@ -0,0 +1,17 @@ +## The Visualizer + + 🚀 [Launch the visualizer!](http://amazondynamodblabs.com/static/visualizer/index.html) 🚀 + +This is the source code from the DynamoDB visualizer original deployed to this [S3 bucket website](https://rh-web-bucket.s3.amazonaws.com/index.html). By using this code, you agree to the license found in [LICENSE.txt](LICENSE.txt) + + +![Sample screenshot](https://amazondynamodblabs.com/static/visualizer/img/model.png) + + +## Deployment and development + +On merge to the main branch, this code is auto deployed to [the Amazon DynamoDB Labs website](http://amazondynamodblabs.com/static/visualizer/index.html). Local development can be done in a simple web browser with a basic IDE. + +## Authorship + +The original author was Rick Houlihan, during his time at AWS - [X.com](https://x.com/houlihan_rick) \ No newline at end of file diff --git a/static/files/visualizer/css/bootstrap-3.3.7.min.css b/static/files/visualizer/css/bootstrap-3.3.7.min.css new file mode 100644 index 0000000..126116a --- /dev/null +++ b/static/files/visualizer/css/bootstrap-3.3.7.min.css @@ -0,0 +1,7209 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block +} + +audio, canvas, progress, video { + display: inline-block; + vertical-align: baseline +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden], template { + display: none +} + +a { + background-color: transparent +} + +a:active, a:hover { + outline: 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: 700 +} + +dfn { + font-style: italic +} + +h1 { + margin: .67em 0; + font-size: 2em +} + +mark { + color: #000; + background: #ff0 +} + +small { + font-size: 80% +} + +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sup { + top: -.5em +} + +sub { + bottom: -.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 1em 40px +} + +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +pre { + overflow: auto +} + +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em +} + +button, input, optgroup, select, textarea { + margin: 0; + font: inherit; + color: inherit +} + +button { + overflow: visible +} + +button, select { + text-transform: none +} + +button, html input[type=button], input[type=reset], input[type=submit] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0 +} + +input { + line-height: normal +} + +input[type=checkbox], input[type=radio] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 +} + +input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { + height: auto +} + +input[type=search] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield +} + +input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid silver +} + +legend { + padding: 0; + border: 0 +} + +textarea { + overflow: auto +} + +optgroup { + font-weight: 700 +} + +table { + border-spacing: 0; + border-collapse: collapse +} + +td, th { + padding: 0 +} + +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, :after, :before { + color: #000 !important; + text-shadow: none !important; + background: 0 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important + } + + a, a:visited { + text-decoration: underline + } + + a[href]:after { + content: " (" attr(href) ")" + } + + abbr[title]:after { + content: " (" attr(title) ")" + } + + a[href^="javascript:"]:after, a[href^="#"]:after { + content: "" + } + + blockquote, pre { + border: 1px solid #999; + page-break-inside: avoid + } + + thead { + display: table-header-group + } + + img, tr { + page-break-inside: avoid + } + + img { + max-width: 100% !important + } + + h2, h3, p { + orphans: 3; + widows: 3 + } + + h2, h3 { + page-break-after: avoid + } + + .navbar { + display: none + } + + .btn > .caret, .dropup > .btn > .caret { + border-top-color: #000 !important + } + + .label { + border: 1px solid #000 + } + + .table { + border-collapse: collapse !important + } + + .table td, .table th { + background-color: #fff !important + } + + .table-bordered td, .table-bordered th { + border: 1px solid #ddd !important + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url(../fonts/glyphicons-halflings-regular.eot); + src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'), url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'), url(../fonts/glyphicons-halflings-regular.woff) format('woff'), url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'), url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg') +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.glyphicon-asterisk:before { + content: "\002a" +} + +.glyphicon-plus:before { + content: "\002b" +} + +.glyphicon-eur:before, .glyphicon-euro:before { + content: "\20ac" +} + +.glyphicon-minus:before { + content: "\2212" +} + +.glyphicon-cloud:before { + content: "\2601" +} + +.glyphicon-envelope:before { + content: "\2709" +} + +.glyphicon-pencil:before { + content: "\270f" +} + +.glyphicon-glass:before { + content: "\e001" +} + +.glyphicon-music:before { + content: "\e002" +} + +.glyphicon-search:before { + content: "\e003" +} + +.glyphicon-heart:before { + content: "\e005" +} + +.glyphicon-star:before { + content: "\e006" +} + +.glyphicon-star-empty:before { + content: "\e007" +} + +.glyphicon-user:before { + content: "\e008" +} + +.glyphicon-film:before { + content: "\e009" +} + +.glyphicon-th-large:before { + content: "\e010" +} + +.glyphicon-th:before { + content: "\e011" +} + +.glyphicon-th-list:before { + content: "\e012" +} + +.glyphicon-ok:before { + content: "\e013" +} + +.glyphicon-remove:before { + content: "\e014" +} + +.glyphicon-zoom-in:before { + content: "\e015" +} + +.glyphicon-zoom-out:before { + content: "\e016" +} + +.glyphicon-off:before { + content: "\e017" +} + +.glyphicon-signal:before { + content: "\e018" +} + +.glyphicon-cog:before { + content: "\e019" +} + +.glyphicon-trash:before { + content: "\e020" +} + +.glyphicon-home:before { + content: "\e021" +} + +.glyphicon-file:before { + content: "\e022" +} + +.glyphicon-time:before { + content: "\e023" +} + +.glyphicon-road:before { + content: "\e024" +} + +.glyphicon-download-alt:before { + content: "\e025" +} + +.glyphicon-download:before { + content: "\e026" +} + +.glyphicon-upload:before { + content: "\e027" +} + +.glyphicon-inbox:before { + content: "\e028" +} + +.glyphicon-play-circle:before { + content: "\e029" +} + +.glyphicon-repeat:before { + content: "\e030" +} + +.glyphicon-refresh:before { + content: "\e031" +} + +.glyphicon-list-alt:before { + content: "\e032" +} + +.glyphicon-lock:before { + content: "\e033" +} + +.glyphicon-flag:before { + content: "\e034" +} + +.glyphicon-headphones:before { + content: "\e035" +} + +.glyphicon-volume-off:before { + content: "\e036" +} + +.glyphicon-volume-down:before { + content: "\e037" +} + +.glyphicon-volume-up:before { + content: "\e038" +} + +.glyphicon-qrcode:before { + content: "\e039" +} + +.glyphicon-barcode:before { + content: "\e040" +} + +.glyphicon-tag:before { + content: "\e041" +} + +.glyphicon-tags:before { + content: "\e042" +} + +.glyphicon-book:before { + content: "\e043" +} + +.glyphicon-bookmark:before { + content: "\e044" +} + +.glyphicon-print:before { + content: "\e045" +} + +.glyphicon-camera:before { + content: "\e046" +} + +.glyphicon-font:before { + content: "\e047" +} + +.glyphicon-bold:before { + content: "\e048" +} + +.glyphicon-italic:before { + content: "\e049" +} + +.glyphicon-text-height:before { + content: "\e050" +} + +.glyphicon-text-width:before { + content: "\e051" +} + +.glyphicon-align-left:before { + content: "\e052" +} + +.glyphicon-align-center:before { + content: "\e053" +} + +.glyphicon-align-right:before { + content: "\e054" +} + +.glyphicon-align-justify:before { + content: "\e055" +} + +.glyphicon-list:before { + content: "\e056" +} + +.glyphicon-indent-left:before { + content: "\e057" +} + +.glyphicon-indent-right:before { + content: "\e058" +} + +.glyphicon-facetime-video:before { + content: "\e059" +} + +.glyphicon-picture:before { + content: "\e060" +} + +.glyphicon-map-marker:before { + content: "\e062" +} + +.glyphicon-adjust:before { + content: "\e063" +} + +.glyphicon-tint:before { + content: "\e064" +} + +.glyphicon-edit:before { + content: "\e065" +} + +.glyphicon-share:before { + content: "\e066" +} + +.glyphicon-check:before { + content: "\e067" +} + +.glyphicon-move:before { + content: "\e068" +} + +.glyphicon-step-backward:before { + content: "\e069" +} + +.glyphicon-fast-backward:before { + content: "\e070" +} + +.glyphicon-backward:before { + content: "\e071" +} + +.glyphicon-play:before { + content: "\e072" +} + +.glyphicon-pause:before { + content: "\e073" +} + +.glyphicon-stop:before { + content: "\e074" +} + +.glyphicon-forward:before { + content: "\e075" +} + +.glyphicon-fast-forward:before { + content: "\e076" +} + +.glyphicon-step-forward:before { + content: "\e077" +} + +.glyphicon-eject:before { + content: "\e078" +} + +.glyphicon-chevron-left:before { + content: "\e079" +} + +.glyphicon-chevron-right:before { + content: "\e080" +} + +.glyphicon-plus-sign:before { + content: "\e081" +} + +.glyphicon-minus-sign:before { + content: "\e082" +} + +.glyphicon-remove-sign:before { + content: "\e083" +} + +.glyphicon-ok-sign:before { + content: "\e084" +} + +.glyphicon-question-sign:before { + content: "\e085" +} + +.glyphicon-info-sign:before { + content: "\e086" +} + +.glyphicon-screenshot:before { + content: "\e087" +} + +.glyphicon-remove-circle:before { + content: "\e088" +} + +.glyphicon-ok-circle:before { + content: "\e089" +} + +.glyphicon-ban-circle:before { + content: "\e090" +} + +.glyphicon-arrow-left:before { + content: "\e091" +} + +.glyphicon-arrow-right:before { + content: "\e092" +} + +.glyphicon-arrow-up:before { + content: "\e093" +} + +.glyphicon-arrow-down:before { + content: "\e094" +} + +.glyphicon-share-alt:before { + content: "\e095" +} + +.glyphicon-resize-full:before { + content: "\e096" +} + +.glyphicon-resize-small:before { + content: "\e097" +} + +.glyphicon-exclamation-sign:before { + content: "\e101" +} + +.glyphicon-gift:before { + content: "\e102" +} + +.glyphicon-leaf:before { + content: "\e103" +} + +.glyphicon-fire:before { + content: "\e104" +} + +.glyphicon-eye-open:before { + content: "\e105" +} + +.glyphicon-eye-close:before { + content: "\e106" +} + +.glyphicon-warning-sign:before { + content: "\e107" +} + +.glyphicon-plane:before { + content: "\e108" +} + +.glyphicon-calendar:before { + content: "\e109" +} + +.glyphicon-random:before { + content: "\e110" +} + +.glyphicon-comment:before { + content: "\e111" +} + +.glyphicon-magnet:before { + content: "\e112" +} + +.glyphicon-chevron-up:before { + content: "\e113" +} + +.glyphicon-chevron-down:before { + content: "\e114" +} + +.glyphicon-retweet:before { + content: "\e115" +} + +.glyphicon-shopping-cart:before { + content: "\e116" +} + +.glyphicon-folder-close:before { + content: "\e117" +} + +.glyphicon-folder-open:before { + content: "\e118" +} + +.glyphicon-resize-vertical:before { + content: "\e119" +} + +.glyphicon-resize-horizontal:before { + content: "\e120" +} + +.glyphicon-hdd:before { + content: "\e121" +} + +.glyphicon-bullhorn:before { + content: "\e122" +} + +.glyphicon-bell:before { + content: "\e123" +} + +.glyphicon-certificate:before { + content: "\e124" +} + +.glyphicon-thumbs-up:before { + content: "\e125" +} + +.glyphicon-thumbs-down:before { + content: "\e126" +} + +.glyphicon-hand-right:before { + content: "\e127" +} + +.glyphicon-hand-left:before { + content: "\e128" +} + +.glyphicon-hand-up:before { + content: "\e129" +} + +.glyphicon-hand-down:before { + content: "\e130" +} + +.glyphicon-circle-arrow-right:before { + content: "\e131" +} + +.glyphicon-circle-arrow-left:before { + content: "\e132" +} + +.glyphicon-circle-arrow-up:before { + content: "\e133" +} + +.glyphicon-circle-arrow-down:before { + content: "\e134" +} + +.glyphicon-globe:before { + content: "\e135" +} + +.glyphicon-wrench:before { + content: "\e136" +} + +.glyphicon-tasks:before { + content: "\e137" +} + +.glyphicon-filter:before { + content: "\e138" +} + +.glyphicon-briefcase:before { + content: "\e139" +} + +.glyphicon-fullscreen:before { + content: "\e140" +} + +.glyphicon-dashboard:before { + content: "\e141" +} + +.glyphicon-paperclip:before { + content: "\e142" +} + +.glyphicon-heart-empty:before { + content: "\e143" +} + +.glyphicon-link:before { + content: "\e144" +} + +.glyphicon-phone:before { + content: "\e145" +} + +.glyphicon-pushpin:before { + content: "\e146" +} + +.glyphicon-usd:before { + content: "\e148" +} + +.glyphicon-gbp:before { + content: "\e149" +} + +.glyphicon-sort:before { + content: "\e150" +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151" +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152" +} + +.glyphicon-sort-by-order:before { + content: "\e153" +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154" +} + +.glyphicon-sort-by-attributes:before { + content: "\e155" +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156" +} + +.glyphicon-unchecked:before { + content: "\e157" +} + +.glyphicon-expand:before { + content: "\e158" +} + +.glyphicon-collapse-down:before { + content: "\e159" +} + +.glyphicon-collapse-up:before { + content: "\e160" +} + +.glyphicon-log-in:before { + content: "\e161" +} + +.glyphicon-flash:before { + content: "\e162" +} + +.glyphicon-log-out:before { + content: "\e163" +} + +.glyphicon-new-window:before { + content: "\e164" +} + +.glyphicon-record:before { + content: "\e165" +} + +.glyphicon-save:before { + content: "\e166" +} + +.glyphicon-open:before { + content: "\e167" +} + +.glyphicon-saved:before { + content: "\e168" +} + +.glyphicon-import:before { + content: "\e169" +} + +.glyphicon-export:before { + content: "\e170" +} + +.glyphicon-send:before { + content: "\e171" +} + +.glyphicon-floppy-disk:before { + content: "\e172" +} + +.glyphicon-floppy-saved:before { + content: "\e173" +} + +.glyphicon-floppy-remove:before { + content: "\e174" +} + +.glyphicon-floppy-save:before { + content: "\e175" +} + +.glyphicon-floppy-open:before { + content: "\e176" +} + +.glyphicon-credit-card:before { + content: "\e177" +} + +.glyphicon-transfer:before { + content: "\e178" +} + +.glyphicon-cutlery:before { + content: "\e179" +} + +.glyphicon-header:before { + content: "\e180" +} + +.glyphicon-compressed:before { + content: "\e181" +} + +.glyphicon-earphone:before { + content: "\e182" +} + +.glyphicon-phone-alt:before { + content: "\e183" +} + +.glyphicon-tower:before { + content: "\e184" +} + +.glyphicon-stats:before { + content: "\e185" +} + +.glyphicon-sd-video:before { + content: "\e186" +} + +.glyphicon-hd-video:before { + content: "\e187" +} + +.glyphicon-subtitles:before { + content: "\e188" +} + +.glyphicon-sound-stereo:before { + content: "\e189" +} + +.glyphicon-sound-dolby:before { + content: "\e190" +} + +.glyphicon-sound-5-1:before { + content: "\e191" +} + +.glyphicon-sound-6-1:before { + content: "\e192" +} + +.glyphicon-sound-7-1:before { + content: "\e193" +} + +.glyphicon-copyright-mark:before { + content: "\e194" +} + +.glyphicon-registration-mark:before { + content: "\e195" +} + +.glyphicon-cloud-download:before { + content: "\e197" +} + +.glyphicon-cloud-upload:before { + content: "\e198" +} + +.glyphicon-tree-conifer:before { + content: "\e199" +} + +.glyphicon-tree-deciduous:before { + content: "\e200" +} + +.glyphicon-cd:before { + content: "\e201" +} + +.glyphicon-save-file:before { + content: "\e202" +} + +.glyphicon-open-file:before { + content: "\e203" +} + +.glyphicon-level-up:before { + content: "\e204" +} + +.glyphicon-copy:before { + content: "\e205" +} + +.glyphicon-paste:before { + content: "\e206" +} + +.glyphicon-alert:before { + content: "\e209" +} + +.glyphicon-equalizer:before { + content: "\e210" +} + +.glyphicon-king:before { + content: "\e211" +} + +.glyphicon-queen:before { + content: "\e212" +} + +.glyphicon-pawn:before { + content: "\e213" +} + +.glyphicon-bishop:before { + content: "\e214" +} + +.glyphicon-knight:before { + content: "\e215" +} + +.glyphicon-baby-formula:before { + content: "\e216" +} + +.glyphicon-tent:before { + content: "\26fa" +} + +.glyphicon-blackboard:before { + content: "\e218" +} + +.glyphicon-bed:before { + content: "\e219" +} + +.glyphicon-apple:before { + content: "\f8ff" +} + +.glyphicon-erase:before { + content: "\e221" +} + +.glyphicon-hourglass:before { + content: "\231b" +} + +.glyphicon-lamp:before { + content: "\e223" +} + +.glyphicon-duplicate:before { + content: "\e224" +} + +.glyphicon-piggy-bank:before { + content: "\e225" +} + +.glyphicon-scissors:before { + content: "\e226" +} + +.glyphicon-bitcoin:before { + content: "\e227" +} + +.glyphicon-btc:before { + content: "\e227" +} + +.glyphicon-xbt:before { + content: "\e227" +} + +.glyphicon-yen:before { + content: "\00a5" +} + +.glyphicon-jpy:before { + content: "\00a5" +} + +.glyphicon-ruble:before { + content: "\20bd" +} + +.glyphicon-rub:before { + content: "\20bd" +} + +.glyphicon-scale:before { + content: "\e230" +} + +.glyphicon-ice-lolly:before { + content: "\e231" +} + +.glyphicon-ice-lolly-tasted:before { + content: "\e232" +} + +.glyphicon-education:before { + content: "\e233" +} + +.glyphicon-option-horizontal:before { + content: "\e234" +} + +.glyphicon-option-vertical:before { + content: "\e235" +} + +.glyphicon-menu-hamburger:before { + content: "\e236" +} + +.glyphicon-modal-window:before { + content: "\e237" +} + +.glyphicon-oil:before { + content: "\e238" +} + +.glyphicon-grain:before { + content: "\e239" +} + +.glyphicon-sunglasses:before { + content: "\e240" +} + +.glyphicon-text-size:before { + content: "\e241" +} + +.glyphicon-text-color:before { + content: "\e242" +} + +.glyphicon-text-background:before { + content: "\e243" +} + +.glyphicon-object-align-top:before { + content: "\e244" +} + +.glyphicon-object-align-bottom:before { + content: "\e245" +} + +.glyphicon-object-align-horizontal:before { + content: "\e246" +} + +.glyphicon-object-align-left:before { + content: "\e247" +} + +.glyphicon-object-align-vertical:before { + content: "\e248" +} + +.glyphicon-object-align-right:before { + content: "\e249" +} + +.glyphicon-triangle-right:before { + content: "\e250" +} + +.glyphicon-triangle-left:before { + content: "\e251" +} + +.glyphicon-triangle-bottom:before { + content: "\e252" +} + +.glyphicon-triangle-top:before { + content: "\e253" +} + +.glyphicon-console:before { + content: "\e254" +} + +.glyphicon-superscript:before { + content: "\e255" +} + +.glyphicon-subscript:before { + content: "\e256" +} + +.glyphicon-menu-left:before { + content: "\e257" +} + +.glyphicon-menu-right:before { + content: "\e258" +} + +.glyphicon-menu-down:before { + content: "\e259" +} + +.glyphicon-menu-up:before { + content: "\e260" +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +:after, :before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff +} + +button, input, select, textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +a { + color: #337ab7; + text-decoration: none +} + +a:focus, a:hover { + color: #23527c; + text-decoration: underline +} + +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +figure { + margin: 0 +} + +img { + vertical-align: middle +} + +.carousel-inner > .item > a > img, .carousel-inner > .item > img, .img-responsive, .thumbnail a > img, .thumbnail > img { + display: block; + max-width: 100%; + height: auto +} + +.img-rounded { + border-radius: 6px +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out +} + +.img-circle { + border-radius: 50% +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0 +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto +} + +[role=button] { + cursor: pointer +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit +} + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-weight: 400; + line-height: 1; + color: #777 +} + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px +} + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small { + font-size: 65% +} + +.h4, .h5, .h6, h4, h5, h6 { + margin-top: 10px; + margin-bottom: 10px +} + +.h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-size: 75% +} + +.h1, h1 { + font-size: 36px +} + +.h2, h2 { + font-size: 30px +} + +.h3, h3 { + font-size: 24px +} + +.h4, h4 { + font-size: 18px +} + +.h5, h5 { + font-size: 14px +} + +.h6, h6 { + font-size: 12px +} + +p { + margin: 0 0 10px +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4 +} + +@media (min-width: 768px) { + .lead { + font-size: 21px + } +} + +.small, small { + font-size: 85% +} + +.mark, mark { + padding: .2em; + background-color: #fcf8e3 +} + +.text-left { + text-align: left +} + +.text-right { + text-align: right +} + +.text-center { + text-align: center +} + +.text-justify { + text-align: justify +} + +.text-nowrap { + white-space: nowrap +} + +.text-lowercase { + text-transform: lowercase +} + +.text-uppercase { + text-transform: uppercase +} + +.text-capitalize { + text-transform: capitalize +} + +.text-muted { + color: #777 +} + +.text-primary { + color: #337ab7 +} + +a.text-primary:focus, a.text-primary:hover { + color: #286090 +} + +.text-success { + color: #3c763d +} + +a.text-success:focus, a.text-success:hover { + color: #2b542c +} + +.text-info { + color: #31708f +} + +a.text-info:focus, a.text-info:hover { + color: #245269 +} + +.text-warning { + color: #8a6d3b +} + +a.text-warning:focus, a.text-warning:hover { + color: #66512c +} + +.text-danger { + color: #a94442 +} + +a.text-danger:focus, a.text-danger:hover { + color: #843534 +} + +.bg-primary { + color: #fff; + background-color: #337ab7 +} + +a.bg-primary:focus, a.bg-primary:hover { + background-color: #286090 +} + +.bg-success { + background-color: #dff0d8 +} + +a.bg-success:focus, a.bg-success:hover { + background-color: #c1e2b3 +} + +.bg-info { + background-color: #d9edf7 +} + +a.bg-info:focus, a.bg-info:hover { + background-color: #afd9ee +} + +.bg-warning { + background-color: #fcf8e3 +} + +a.bg-warning:focus, a.bg-warning:hover { + background-color: #f7ecb5 +} + +.bg-danger { + background-color: #f2dede +} + +a.bg-danger:focus, a.bg-danger:hover { + background-color: #e4b9b9 +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee +} + +ol, ul { + margin-top: 0; + margin-bottom: 10px +} + +ol ol, ol ul, ul ol, ul ul { + margin-bottom: 0 +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px +} + +dl { + margin-top: 0; + margin-bottom: 20px +} + +dd, dt { + line-height: 1.42857143 +} + +dt { + font-weight: 700 +} + +dd { + margin-left: 0 +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap + } + + .dl-horizontal dd { + margin-left: 180px + } +} + +abbr[data-original-title], abbr[title] { + cursor: help; + border-bottom: 1px dotted #777 +} + +.initialism { + font-size: 90%; + text-transform: uppercase +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee +} + +blockquote ol:last-child, blockquote p:last-child, blockquote ul:last-child { + margin-bottom: 0 +} + +blockquote .small, blockquote footer, blockquote small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777 +} + +blockquote .small:before, blockquote footer:before, blockquote small:before { + content: '\2014 \00A0' +} + +.blockquote-reverse, blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0 +} + +.blockquote-reverse .small:before, .blockquote-reverse footer:before, .blockquote-reverse small:before, blockquote.pull-right .small:before, blockquote.pull-right footer:before, blockquote.pull-right small:before { + content: '' +} + +.blockquote-reverse .small:after, .blockquote-reverse footer:after, .blockquote-reverse small:after, blockquote.pull-right .small:after, blockquote.pull-right footer:after, blockquote.pull-right small:after { + content: '\00A0 \2014' +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143 +} + +code, kbd, pre, samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25) +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + -webkit-box-shadow: none; + box-shadow: none +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0 +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media (min-width: 768px) { + .container { + width: 750px + } +} + +@media (min-width: 992px) { + .container { + width: 970px + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px + } +} + +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +.row { + margin-right: -15px; + margin-left: -15px +} + +.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px +} + +.col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + float: left +} + +.col-xs-12 { + width: 100% +} + +.col-xs-11 { + width: 91.66666667% +} + +.col-xs-10 { + width: 83.33333333% +} + +.col-xs-9 { + width: 75% +} + +.col-xs-8 { + width: 66.66666667% +} + +.col-xs-7 { + width: 58.33333333% +} + +.col-xs-6 { + width: 50% +} + +.col-xs-5 { + width: 41.66666667% +} + +.col-xs-4 { + width: 33.33333333% +} + +.col-xs-3 { + width: 25% +} + +.col-xs-2 { + width: 16.66666667% +} + +.col-xs-1 { + width: 8.33333333% +} + +.col-xs-pull-12 { + right: 100% +} + +.col-xs-pull-11 { + right: 91.66666667% +} + +.col-xs-pull-10 { + right: 83.33333333% +} + +.col-xs-pull-9 { + right: 75% +} + +.col-xs-pull-8 { + right: 66.66666667% +} + +.col-xs-pull-7 { + right: 58.33333333% +} + +.col-xs-pull-6 { + right: 50% +} + +.col-xs-pull-5 { + right: 41.66666667% +} + +.col-xs-pull-4 { + right: 33.33333333% +} + +.col-xs-pull-3 { + right: 25% +} + +.col-xs-pull-2 { + right: 16.66666667% +} + +.col-xs-pull-1 { + right: 8.33333333% +} + +.col-xs-pull-0 { + right: auto +} + +.col-xs-push-12 { + left: 100% +} + +.col-xs-push-11 { + left: 91.66666667% +} + +.col-xs-push-10 { + left: 83.33333333% +} + +.col-xs-push-9 { + left: 75% +} + +.col-xs-push-8 { + left: 66.66666667% +} + +.col-xs-push-7 { + left: 58.33333333% +} + +.col-xs-push-6 { + left: 50% +} + +.col-xs-push-5 { + left: 41.66666667% +} + +.col-xs-push-4 { + left: 33.33333333% +} + +.col-xs-push-3 { + left: 25% +} + +.col-xs-push-2 { + left: 16.66666667% +} + +.col-xs-push-1 { + left: 8.33333333% +} + +.col-xs-push-0 { + left: auto +} + +.col-xs-offset-12 { + margin-left: 100% +} + +.col-xs-offset-11 { + margin-left: 91.66666667% +} + +.col-xs-offset-10 { + margin-left: 83.33333333% +} + +.col-xs-offset-9 { + margin-left: 75% +} + +.col-xs-offset-8 { + margin-left: 66.66666667% +} + +.col-xs-offset-7 { + margin-left: 58.33333333% +} + +.col-xs-offset-6 { + margin-left: 50% +} + +.col-xs-offset-5 { + margin-left: 41.66666667% +} + +.col-xs-offset-4 { + margin-left: 33.33333333% +} + +.col-xs-offset-3 { + margin-left: 25% +} + +.col-xs-offset-2 { + margin-left: 16.66666667% +} + +.col-xs-offset-1 { + margin-left: 8.33333333% +} + +.col-xs-offset-0 { + margin-left: 0 +} + +@media (min-width: 768px) { + .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9 { + float: left + } + + .col-sm-12 { + width: 100% + } + + .col-sm-11 { + width: 91.66666667% + } + + .col-sm-10 { + width: 83.33333333% + } + + .col-sm-9 { + width: 75% + } + + .col-sm-8 { + width: 66.66666667% + } + + .col-sm-7 { + width: 58.33333333% + } + + .col-sm-6 { + width: 50% + } + + .col-sm-5 { + width: 41.66666667% + } + + .col-sm-4 { + width: 33.33333333% + } + + .col-sm-3 { + width: 25% + } + + .col-sm-2 { + width: 16.66666667% + } + + .col-sm-1 { + width: 8.33333333% + } + + .col-sm-pull-12 { + right: 100% + } + + .col-sm-pull-11 { + right: 91.66666667% + } + + .col-sm-pull-10 { + right: 83.33333333% + } + + .col-sm-pull-9 { + right: 75% + } + + .col-sm-pull-8 { + right: 66.66666667% + } + + .col-sm-pull-7 { + right: 58.33333333% + } + + .col-sm-pull-6 { + right: 50% + } + + .col-sm-pull-5 { + right: 41.66666667% + } + + .col-sm-pull-4 { + right: 33.33333333% + } + + .col-sm-pull-3 { + right: 25% + } + + .col-sm-pull-2 { + right: 16.66666667% + } + + .col-sm-pull-1 { + right: 8.33333333% + } + + .col-sm-pull-0 { + right: auto + } + + .col-sm-push-12 { + left: 100% + } + + .col-sm-push-11 { + left: 91.66666667% + } + + .col-sm-push-10 { + left: 83.33333333% + } + + .col-sm-push-9 { + left: 75% + } + + .col-sm-push-8 { + left: 66.66666667% + } + + .col-sm-push-7 { + left: 58.33333333% + } + + .col-sm-push-6 { + left: 50% + } + + .col-sm-push-5 { + left: 41.66666667% + } + + .col-sm-push-4 { + left: 33.33333333% + } + + .col-sm-push-3 { + left: 25% + } + + .col-sm-push-2 { + left: 16.66666667% + } + + .col-sm-push-1 { + left: 8.33333333% + } + + .col-sm-push-0 { + left: auto + } + + .col-sm-offset-12 { + margin-left: 100% + } + + .col-sm-offset-11 { + margin-left: 91.66666667% + } + + .col-sm-offset-10 { + margin-left: 83.33333333% + } + + .col-sm-offset-9 { + margin-left: 75% + } + + .col-sm-offset-8 { + margin-left: 66.66666667% + } + + .col-sm-offset-7 { + margin-left: 58.33333333% + } + + .col-sm-offset-6 { + margin-left: 50% + } + + .col-sm-offset-5 { + margin-left: 41.66666667% + } + + .col-sm-offset-4 { + margin-left: 33.33333333% + } + + .col-sm-offset-3 { + margin-left: 25% + } + + .col-sm-offset-2 { + margin-left: 16.66666667% + } + + .col-sm-offset-1 { + margin-left: 8.33333333% + } + + .col-sm-offset-0 { + margin-left: 0 + } +} + +@media (min-width: 992px) { + .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9 { + float: left + } + + .col-md-12 { + width: 100% + } + + .col-md-11 { + width: 91.66666667% + } + + .col-md-10 { + width: 83.33333333% + } + + .col-md-9 { + width: 75% + } + + .col-md-8 { + width: 66.66666667% + } + + .col-md-7 { + width: 58.33333333% + } + + .col-md-6 { + width: 50% + } + + .col-md-5 { + width: 41.66666667% + } + + .col-md-4 { + width: 33.33333333% + } + + .col-md-3 { + width: 25% + } + + .col-md-2 { + width: 16.66666667% + } + + .col-md-1 { + width: 8.33333333% + } + + .col-md-pull-12 { + right: 100% + } + + .col-md-pull-11 { + right: 91.66666667% + } + + .col-md-pull-10 { + right: 83.33333333% + } + + .col-md-pull-9 { + right: 75% + } + + .col-md-pull-8 { + right: 66.66666667% + } + + .col-md-pull-7 { + right: 58.33333333% + } + + .col-md-pull-6 { + right: 50% + } + + .col-md-pull-5 { + right: 41.66666667% + } + + .col-md-pull-4 { + right: 33.33333333% + } + + .col-md-pull-3 { + right: 25% + } + + .col-md-pull-2 { + right: 16.66666667% + } + + .col-md-pull-1 { + right: 8.33333333% + } + + .col-md-pull-0 { + right: auto + } + + .col-md-push-12 { + left: 100% + } + + .col-md-push-11 { + left: 91.66666667% + } + + .col-md-push-10 { + left: 83.33333333% + } + + .col-md-push-9 { + left: 75% + } + + .col-md-push-8 { + left: 66.66666667% + } + + .col-md-push-7 { + left: 58.33333333% + } + + .col-md-push-6 { + left: 50% + } + + .col-md-push-5 { + left: 41.66666667% + } + + .col-md-push-4 { + left: 33.33333333% + } + + .col-md-push-3 { + left: 25% + } + + .col-md-push-2 { + left: 16.66666667% + } + + .col-md-push-1 { + left: 8.33333333% + } + + .col-md-push-0 { + left: auto + } + + .col-md-offset-12 { + margin-left: 100% + } + + .col-md-offset-11 { + margin-left: 91.66666667% + } + + .col-md-offset-10 { + margin-left: 83.33333333% + } + + .col-md-offset-9 { + margin-left: 75% + } + + .col-md-offset-8 { + margin-left: 66.66666667% + } + + .col-md-offset-7 { + margin-left: 58.33333333% + } + + .col-md-offset-6 { + margin-left: 50% + } + + .col-md-offset-5 { + margin-left: 41.66666667% + } + + .col-md-offset-4 { + margin-left: 33.33333333% + } + + .col-md-offset-3 { + margin-left: 25% + } + + .col-md-offset-2 { + margin-left: 16.66666667% + } + + .col-md-offset-1 { + margin-left: 8.33333333% + } + + .col-md-offset-0 { + margin-left: 0 + } +} + +@media (min-width: 1200px) { + .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9 { + float: left + } + + .col-lg-12 { + width: 100% + } + + .col-lg-11 { + width: 91.66666667% + } + + .col-lg-10 { + width: 83.33333333% + } + + .col-lg-9 { + width: 75% + } + + .col-lg-8 { + width: 66.66666667% + } + + .col-lg-7 { + width: 58.33333333% + } + + .col-lg-6 { + width: 50% + } + + .col-lg-5 { + width: 41.66666667% + } + + .col-lg-4 { + width: 33.33333333% + } + + .col-lg-3 { + width: 25% + } + + .col-lg-2 { + width: 16.66666667% + } + + .col-lg-1 { + width: 8.33333333% + } + + .col-lg-pull-12 { + right: 100% + } + + .col-lg-pull-11 { + right: 91.66666667% + } + + .col-lg-pull-10 { + right: 83.33333333% + } + + .col-lg-pull-9 { + right: 75% + } + + .col-lg-pull-8 { + right: 66.66666667% + } + + .col-lg-pull-7 { + right: 58.33333333% + } + + .col-lg-pull-6 { + right: 50% + } + + .col-lg-pull-5 { + right: 41.66666667% + } + + .col-lg-pull-4 { + right: 33.33333333% + } + + .col-lg-pull-3 { + right: 25% + } + + .col-lg-pull-2 { + right: 16.66666667% + } + + .col-lg-pull-1 { + right: 8.33333333% + } + + .col-lg-pull-0 { + right: auto + } + + .col-lg-push-12 { + left: 100% + } + + .col-lg-push-11 { + left: 91.66666667% + } + + .col-lg-push-10 { + left: 83.33333333% + } + + .col-lg-push-9 { + left: 75% + } + + .col-lg-push-8 { + left: 66.66666667% + } + + .col-lg-push-7 { + left: 58.33333333% + } + + .col-lg-push-6 { + left: 50% + } + + .col-lg-push-5 { + left: 41.66666667% + } + + .col-lg-push-4 { + left: 33.33333333% + } + + .col-lg-push-3 { + left: 25% + } + + .col-lg-push-2 { + left: 16.66666667% + } + + .col-lg-push-1 { + left: 8.33333333% + } + + .col-lg-push-0 { + left: auto + } + + .col-lg-offset-12 { + margin-left: 100% + } + + .col-lg-offset-11 { + margin-left: 91.66666667% + } + + .col-lg-offset-10 { + margin-left: 83.33333333% + } + + .col-lg-offset-9 { + margin-left: 75% + } + + .col-lg-offset-8 { + margin-left: 66.66666667% + } + + .col-lg-offset-7 { + margin-left: 58.33333333% + } + + .col-lg-offset-6 { + margin-left: 50% + } + + .col-lg-offset-5 { + margin-left: 41.66666667% + } + + .col-lg-offset-4 { + margin-left: 33.33333333% + } + + .col-lg-offset-3 { + margin-left: 25% + } + + .col-lg-offset-2 { + margin-left: 16.66666667% + } + + .col-lg-offset-1 { + margin-left: 8.33333333% + } + + .col-lg-offset-0 { + margin-left: 0 + } +} + +table { + background-color: transparent +} + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left +} + +th { + text-align: left +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px +} + +.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd +} + +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd +} + +.table > caption + thead > tr:first-child > td, .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > td, .table > thead:first-child > tr:first-child > th { + border-top: 0 +} + +.table > tbody + tbody { + border-top: 2px solid #ddd +} + +.table .table { + background-color: #fff +} + +.table-condensed > tbody > tr > td, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > td, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > thead > tr > th { + padding: 5px +} + +.table-bordered { + border: 1px solid #ddd +} + +.table-bordered > tbody > tr > td, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > td, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > thead > tr > th { + border: 1px solid #ddd +} + +.table-bordered > thead > tr > td, .table-bordered > thead > tr > th { + border-bottom-width: 2px +} + +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9 +} + +.table-hover > tbody > tr:hover { + background-color: #f5f5f5 +} + +table col[class*=col-] { + position: static; + display: table-column; + float: none +} + +table td[class*=col-], table th[class*=col-] { + position: static; + display: table-cell; + float: none +} + +.table > tbody > tr.active > td, .table > tbody > tr.active > th, .table > tbody > tr > td.active, .table > tbody > tr > th.active, .table > tfoot > tr.active > td, .table > tfoot > tr.active > th, .table > tfoot > tr > td.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th, .table > thead > tr > td.active, .table > thead > tr > th.active { + background-color: #f5f5f5 +} + +.table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr.active:hover > th, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover { + background-color: #e8e8e8 +} + +.table > tbody > tr.success > td, .table > tbody > tr.success > th, .table > tbody > tr > td.success, .table > tbody > tr > th.success, .table > tfoot > tr.success > td, .table > tfoot > tr.success > th, .table > tfoot > tr > td.success, .table > tfoot > tr > th.success, .table > thead > tr.success > td, .table > thead > tr.success > th, .table > thead > tr > td.success, .table > thead > tr > th.success { + background-color: #dff0d8 +} + +.table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr.success:hover > th, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover { + background-color: #d0e9c6 +} + +.table > tbody > tr.info > td, .table > tbody > tr.info > th, .table > tbody > tr > td.info, .table > tbody > tr > th.info, .table > tfoot > tr.info > td, .table > tfoot > tr.info > th, .table > tfoot > tr > td.info, .table > tfoot > tr > th.info, .table > thead > tr.info > td, .table > thead > tr.info > th, .table > thead > tr > td.info, .table > thead > tr > th.info { + background-color: #d9edf7 +} + +.table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr.info:hover > th, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover { + background-color: #c4e3f3 +} + +.table > tbody > tr.warning > td, .table > tbody > tr.warning > th, .table > tbody > tr > td.warning, .table > tbody > tr > th.warning, .table > tfoot > tr.warning > td, .table > tfoot > tr.warning > th, .table > tfoot > tr > td.warning, .table > tfoot > tr > th.warning, .table > thead > tr.warning > td, .table > thead > tr.warning > th, .table > thead > tr > td.warning, .table > thead > tr > th.warning { + background-color: #fcf8e3 +} + +.table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr.warning:hover > th, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover { + background-color: #faf2cc +} + +.table > tbody > tr.danger > td, .table > tbody > tr.danger > th, .table > tbody > tr > td.danger, .table > tbody > tr > th.danger, .table > tfoot > tr.danger > td, .table > tfoot > tr.danger > th, .table > tfoot > tr > td.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > thead > tr.danger > th, .table > thead > tr > td.danger, .table > thead > tr > th.danger { + background-color: #f2dede +} + +.table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr.danger:hover > th, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover { + background-color: #ebcccc +} + +.table-responsive { + min-height: .01%; + overflow-x: auto +} + +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd + } + + .table-responsive > .table { + margin-bottom: 0 + } + + .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > td, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > thead > tr > th { + white-space: nowrap + } + + .table-responsive > .table-bordered { + border: 0 + } + + .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0 + } + + .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0 + } + + .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0 + } +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5 +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700 +} + +input[type=search] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +input[type=checkbox], input[type=radio] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal +} + +input[type=file] { + display: block +} + +input[type=range] { + display: block; + width: 100% +} + +select[multiple], select[size] { + height: auto +} + +input[type=file]:focus, input[type=checkbox]:focus, input[type=radio]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555 +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6) +} + +.form-control::-moz-placeholder { + color: #999; + opacity: 1 +} + +.form-control:-ms-input-placeholder { + color: #999 +} + +.form-control::-webkit-input-placeholder { + color: #999 +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0 +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1 +} + +.form-control[disabled], fieldset[disabled] .form-control { + cursor: not-allowed +} + +textarea.form-control { + height: auto +} + +input[type=search] { + -webkit-appearance: none +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type=date].form-control, input[type=time].form-control, input[type=datetime-local].form-control, input[type=month].form-control { + line-height: 34px + } + + .input-group-sm input[type=date], .input-group-sm input[type=time], .input-group-sm input[type=datetime-local], .input-group-sm input[type=month], input[type=date].input-sm, input[type=time].input-sm, input[type=datetime-local].input-sm, input[type=month].input-sm { + line-height: 30px + } + + .input-group-lg input[type=date], .input-group-lg input[type=time], .input-group-lg input[type=datetime-local], .input-group-lg input[type=month], input[type=date].input-lg, input[type=time].input-lg, input[type=datetime-local].input-lg, input[type=month].input-lg { + line-height: 46px + } +} + +.form-group { + margin-bottom: 15px +} + +.checkbox, .radio { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px +} + +.checkbox label, .radio label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer +} + +.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px +} + +.checkbox + .checkbox, .radio + .radio { + margin-top: -5px +} + +.checkbox-inline, .radio-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer +} + +.checkbox-inline + .checkbox-inline, .radio-inline + .radio-inline { + margin-top: 0; + margin-left: 10px +} + +fieldset[disabled] input[type=checkbox], fieldset[disabled] input[type=radio], input[type=checkbox].disabled, input[type=checkbox][disabled], input[type=radio].disabled, input[type=radio][disabled] { + cursor: not-allowed +} + +.checkbox-inline.disabled, .radio-inline.disabled, fieldset[disabled] .checkbox-inline, fieldset[disabled] .radio-inline { + cursor: not-allowed +} + +.checkbox.disabled label, .radio.disabled label, fieldset[disabled] .checkbox label, fieldset[disabled] .radio label { + cursor: not-allowed +} + +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0 +} + +.form-control-static.input-lg, .form-control-static.input-sm { + padding-right: 0; + padding-left: 0 +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +select.input-sm { + height: 30px; + line-height: 30px +} + +select[multiple].input-sm, textarea.input-sm { + height: auto +} + +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.form-group-sm select.form-control { + height: 30px; + line-height: 30px +} + +.form-group-sm select[multiple].form-control, .form-group-sm textarea.form-control { + height: auto +} + +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5 +} + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +select.input-lg { + height: 46px; + line-height: 46px +} + +select[multiple].input-lg, textarea.input-lg { + height: auto +} + +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +.form-group-lg select.form-control { + height: 46px; + line-height: 46px +} + +.form-group-lg select[multiple].form-control, .form-group-lg textarea.form-control { + height: auto +} + +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333 +} + +.has-feedback { + position: relative +} + +.has-feedback .form-control { + padding-right: 42.5px +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none +} + +.form-group-lg .form-control + .form-control-feedback, .input-group-lg + .form-control-feedback, .input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px +} + +.form-group-sm .form-control + .form-control-feedback, .input-group-sm + .form-control-feedback, .input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px +} + +.has-success .checkbox, .has-success .checkbox-inline, .has-success .control-label, .has-success .help-block, .has-success .radio, .has-success .radio-inline, .has-success.checkbox label, .has-success.checkbox-inline label, .has-success.radio label, .has-success.radio-inline label { + color: #3c763d +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168 +} + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d +} + +.has-success .form-control-feedback { + color: #3c763d +} + +.has-warning .checkbox, .has-warning .checkbox-inline, .has-warning .control-label, .has-warning .help-block, .has-warning .radio, .has-warning .radio-inline, .has-warning.checkbox label, .has-warning.checkbox-inline label, .has-warning.radio label, .has-warning.radio-inline label { + color: #8a6d3b +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b +} + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b +} + +.has-warning .form-control-feedback { + color: #8a6d3b +} + +.has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, .has-error.radio-inline label { + color: #a94442 +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483 +} + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442 +} + +.has-error .form-control-feedback { + color: #a94442 +} + +.has-feedback label ~ .form-control-feedback { + top: 25px +} + +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0 +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373 +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + + .form-inline .form-control-static { + display: inline-block + } + + .form-inline .input-group { + display: inline-table; + vertical-align: middle + } + + .form-inline .input-group .form-control, .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn { + width: auto + } + + .form-inline .input-group > .form-control { + width: 100% + } + + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle + } + + .form-inline .checkbox, .form-inline .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle + } + + .form-inline .checkbox label, .form-inline .radio label { + padding-left: 0 + } + + .form-inline .checkbox input[type=checkbox], .form-inline .radio input[type=radio] { + position: relative; + margin-left: 0 + } + + .form-inline .has-feedback .form-control-feedback { + top: 0 + } +} + +.form-horizontal .checkbox, .form-horizontal .checkbox-inline, .form-horizontal .radio, .form-horizontal .radio-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0 +} + +.form-horizontal .checkbox, .form-horizontal .radio { + min-height: 27px +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right + } +} + +.form-horizontal .has-feedback .form-control-feedback { + right: 15px +} + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px +} + +.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn.focus, .btn:focus, .btn:hover { + color: #333; + text-decoration: none +} + +.btn.active, .btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) +} + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65 +} + +a.btn.disabled, fieldset[disabled] a.btn { + pointer-events: none +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc +} + +.btn-default.focus, .btn-default:focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c +} + +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad +} + +.btn-default.active, .btn-default:active, .open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad +} + +.btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .btn-default:active:focus, .btn-default:active:hover, .open > .dropdown-toggle.btn-default.focus, .open > .dropdown-toggle.btn-default:focus, .open > .dropdown-toggle.btn-default:hover { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c +} + +.btn-default.active, .btn-default:active, .open > .dropdown-toggle.btn-default { + background-image: none +} + +.btn-default.disabled.focus, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled].focus, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover { + background-color: #fff; + border-color: #ccc +} + +.btn-default .badge { + color: #fff; + background-color: #333 +} + +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4 +} + +.btn-primary.focus, .btn-primary:focus { + color: #fff; + background-color: #286090; + border-color: #122b40 +} + +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74 +} + +.btn-primary.active, .btn-primary:active, .open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74 +} + +.btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .btn-primary:active:focus, .btn-primary:active:hover, .open > .dropdown-toggle.btn-primary.focus, .open > .dropdown-toggle.btn-primary:focus, .open > .dropdown-toggle.btn-primary:hover { + color: #fff; + background-color: #204d74; + border-color: #122b40 +} + +.btn-primary.active, .btn-primary:active, .open > .dropdown-toggle.btn-primary { + background-image: none +} + +.btn-primary.disabled.focus, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled].focus, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover { + background-color: #337ab7; + border-color: #2e6da4 +} + +.btn-primary .badge { + color: #337ab7; + background-color: #fff +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success.focus, .btn-success:focus { + color: #fff; + background-color: #449d44; + border-color: #255625 +} + +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439 +} + +.btn-success.active, .btn-success:active, .open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439 +} + +.btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .btn-success:active:focus, .btn-success:active:hover, .open > .dropdown-toggle.btn-success.focus, .open > .dropdown-toggle.btn-success:focus, .open > .dropdown-toggle.btn-success:hover { + color: #fff; + background-color: #398439; + border-color: #255625 +} + +.btn-success.active, .btn-success:active, .open > .dropdown-toggle.btn-success { + background-image: none +} + +.btn-success.disabled.focus, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled].focus, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover { + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info.focus, .btn-info:focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85 +} + +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc +} + +.btn-info.active, .btn-info:active, .open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc +} + +.btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .btn-info:active:focus, .btn-info:active:hover, .open > .dropdown-toggle.btn-info.focus, .open > .dropdown-toggle.btn-info:focus, .open > .dropdown-toggle.btn-info:hover { + color: #fff; + background-color: #269abc; + border-color: #1b6d85 +} + +.btn-info.active, .btn-info:active, .open > .dropdown-toggle.btn-info { + background-image: none +} + +.btn-info.disabled.focus, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled].focus, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning.focus, .btn-warning:focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d +} + +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512 +} + +.btn-warning.active, .btn-warning:active, .open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512 +} + +.btn-warning.active.focus, .btn-warning.active:focus, .btn-warning.active:hover, .btn-warning:active.focus, .btn-warning:active:focus, .btn-warning:active:hover, .open > .dropdown-toggle.btn-warning.focus, .open > .dropdown-toggle.btn-warning:focus, .open > .dropdown-toggle.btn-warning:hover { + color: #fff; + background-color: #d58512; + border-color: #985f0d +} + +.btn-warning.active, .btn-warning:active, .open > .dropdown-toggle.btn-warning { + background-image: none +} + +.btn-warning.disabled.focus, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled].focus, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover { + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger.focus, .btn-danger:focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19 +} + +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925 +} + +.btn-danger.active, .btn-danger:active, .open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925 +} + +.btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .btn-danger:active:focus, .btn-danger:active:hover, .open > .dropdown-toggle.btn-danger.focus, .open > .dropdown-toggle.btn-danger:focus, .open > .dropdown-toggle.btn-danger:hover { + color: #fff; + background-color: #ac2925; + border-color: #761c19 +} + +.btn-danger.active, .btn-danger:active, .open > .dropdown-toggle.btn-danger { + background-image: none +} + +.btn-danger.disabled.focus, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled].focus, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover { + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff +} + +.btn-link { + font-weight: 400; + color: #337ab7; + border-radius: 0 +} + +.btn-link, .btn-link.active, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link, .btn-link:active, .btn-link:focus, .btn-link:hover { + border-color: transparent +} + +.btn-link:focus, .btn-link:hover { + color: #23527c; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:focus, .btn-link[disabled]:hover, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:hover { + color: #777; + text-decoration: none +} + +.btn-group-lg > .btn, .btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +.btn-group-sm > .btn, .btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-group-xs > .btn, .btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block + .btn-block { + margin-top: 5px +} + +input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].btn-block { + width: 100% +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear +} + +.fade.in { + opacity: 1 +} + +.collapse { + display: none +} + +.collapse.in { + display: block +} + +tr.collapse.in { + display: table-row +} + +tbody.collapse.in { + display: table-row-group +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent +} + +.dropdown, .dropup { + position: relative +} + +.dropdown-toggle:focus { + outline: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175) +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333; + white-space: nowrap +} + +.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover { + color: #262626; + text-decoration: none; + background-color: #f5f5f5 +} + +.dropdown-menu > .active > a, .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0 +} + +.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { + color: #777 +} + +.dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false) +} + +.open > .dropdown-menu { + display: block +} + +.open > a { + outline: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990 +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9 +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto + } + + .navbar-right .dropdown-menu-left { + right: auto; + left: 0 + } +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle +} + +.btn-group-vertical > .btn, .btn-group > .btn { + position: relative; + float: left +} + +.btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { + z-index: 2 +} + +.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { + margin-left: -1px +} + +.btn-toolbar { + margin-left: -5px +} + +.btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group { + float: left +} + +.btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { + margin-left: 5px +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0 +} + +.btn-group > .btn:first-child { + margin-left: 0 +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group > .btn-group { + float: left +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none +} + +.btn .caret { + margin-left: 0 +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0 +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px +} + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100% +} + +.btn-group-vertical > .btn-group > .btn { + float: none +} + +.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate +} + +.btn-group-justified > .btn, .btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1% +} + +.btn-group-justified > .btn-group .btn { + width: 100% +} + +.btn-group-justified > .btn-group .dropdown-menu { + left: auto +} + +[data-toggle=buttons] > .btn input[type=checkbox], [data-toggle=buttons] > .btn input[type=radio], [data-toggle=buttons] > .btn-group > .btn input[type=checkbox], [data-toggle=buttons] > .btn-group > .btn input[type=radio] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.input-group { + position: relative; + display: table; + border-collapse: separate +} + +.input-group[class*=col-] { + float: none; + padding-right: 0; + padding-left: 0 +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0 +} + +.input-group .form-control:focus { + z-index: 3 +} + +.input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px +} + +select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn, textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn { + height: auto +} + +.input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px +} + +select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn, textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn { + height: auto +} + +.input-group .form-control, .input-group-addon, .input-group-btn { + display: table-cell +} + +.input-group .form-control:not(:first-child):not(:last-child), .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.input-group-addon, .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px +} + +.input-group-addon input[type=checkbox], .input-group-addon input[type=radio] { + margin-top: 0 +} + +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn-group:not(:last-child) > .btn, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group-addon:first-child { + border-right: 0 +} + +.input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:first-child > .btn-group:not(:first-child) > .btn, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group-addon:last-child { + border-left: 0 +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap +} + +.input-group-btn > .btn { + position: relative +} + +.input-group-btn > .btn + .btn { + margin-left: -1px +} + +.input-group-btn > .btn:active, .input-group-btn > .btn:focus, .input-group-btn > .btn:hover { + z-index: 2 +} + +.input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { + margin-right: -1px +} + +.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav > li { + position: relative; + display: block +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px +} + +.nav > li > a:focus, .nav > li > a:hover { + text-decoration: none; + background-color: #eee +} + +.nav > li.disabled > a { + color: #777 +} + +.nav > li.disabled > a:focus, .nav > li.disabled > a:hover { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent +} + +.nav .open > a, .nav .open > a:focus, .nav .open > a:hover { + background-color: #eee; + border-color: #337ab7 +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.nav > li > a > img { + max-width: none +} + +.nav-tabs { + border-bottom: 1px solid #ddd +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0 +} + +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd +} + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0 +} + +.nav-tabs.nav-justified > li { + float: none +} + +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center +} + +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1% + } + + .nav-tabs.nav-justified > li > a { + margin-bottom: 0 + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px +} + +.nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:hover { + border: 1px solid #ddd +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0 + } + + .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:hover { + border-bottom-color: #fff + } +} + +.nav-pills > li { + float: left +} + +.nav-pills > li > a { + border-radius: 4px +} + +.nav-pills > li + li { + margin-left: 2px +} + +.nav-pills > li.active > a, .nav-pills > li.active > a:focus, .nav-pills > li.active > a:hover { + color: #fff; + background-color: #337ab7 +} + +.nav-stacked > li { + float: none +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0 +} + +.nav-justified { + width: 100% +} + +.nav-justified > li { + float: none +} + +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center +} + +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1% + } + + .nav-justified > li > a { + margin-bottom: 0 + } +} + +.nav-tabs-justified { + border-bottom: 0 +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px +} + +.nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:focus, .nav-tabs-justified > .active > a:hover { + border: 1px solid #ddd +} + +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0 + } + + .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:focus, .nav-tabs-justified > .active > a:hover { + border-bottom-color: #fff + } +} + +.tab-content > .tab-pane { + display: none +} + +.tab-content > .active { + display: block +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px + } +} + +@media (min-width: 768px) { + .navbar-header { + float: left + } +} + +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1) +} + +.navbar-collapse.in { + overflow-y: auto +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none + } + + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important + } + + .navbar-collapse.in { + overflow-y: visible + } + + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse { + padding-right: 0; + padding-left: 0 + } +} + +.navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse { + max-height: 340px +} + +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse { + max-height: 200px + } +} + +.container-fluid > .navbar-collapse, .container-fluid > .navbar-header, .container > .navbar-collapse, .container > .navbar-header { + margin-right: -15px; + margin-left: -15px +} + +@media (min-width: 768px) { + .container-fluid > .navbar-collapse, .container-fluid > .navbar-header, .container > .navbar-collapse, .container > .navbar-header { + margin-right: 0; + margin-left: 0 + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0 + } +} + +.navbar-fixed-bottom, .navbar-fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030 +} + +@media (min-width: 768px) { + .navbar-fixed-bottom, .navbar-fixed-top { + border-radius: 0 + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0 +} + +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px +} + +.navbar-brand:focus, .navbar-brand:hover { + text-decoration: none +} + +.navbar-brand > img { + display: block +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { + margin-left: -15px + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px +} + +.navbar-toggle:focus { + outline: 0 +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none + } +} + +.navbar-nav { + margin: 7.5px -15px +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none + } + + .navbar-nav .open .dropdown-menu .dropdown-header, .navbar-nav .open .dropdown-menu > li > a { + padding: 5px 15px 5px 25px + } + + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px + } + + .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-nav .open .dropdown-menu > li > a:hover { + background-image: none + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0 + } + + .navbar-nav > li { + float: left + } + + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1) +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle + } + + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + + .navbar-form .form-control-static { + display: inline-block + } + + .navbar-form .input-group { + display: inline-table; + vertical-align: middle + } + + .navbar-form .input-group .form-control, .navbar-form .input-group .input-group-addon, .navbar-form .input-group .input-group-btn { + width: auto + } + + .navbar-form .input-group > .form-control { + width: 100% + } + + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle + } + + .navbar-form .checkbox, .navbar-form .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle + } + + .navbar-form .checkbox label, .navbar-form .radio label { + padding-left: 0 + } + + .navbar-form .checkbox input[type=checkbox], .navbar-form .radio input[type=radio] { + position: relative; + margin-left: 0 + } + + .navbar-form .has-feedback .form-control-feedback { + top: 0 + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px + } + + .navbar-form .form-group:last-child { + margin-bottom: 0 + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important + } + + .navbar-right { + float: right !important; + margin-right: -15px + } + + .navbar-right ~ .navbar-right { + margin-right: 0 + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7 +} + +.navbar-default .navbar-brand { + color: #777 +} + +.navbar-default .navbar-brand:focus, .navbar-default .navbar-brand:hover { + color: #5e5e5e; + background-color: transparent +} + +.navbar-default .navbar-text { + color: #777 +} + +.navbar-default .navbar-nav > li > a { + color: #777 +} + +.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent +} + +.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover { + color: #555; + background-color: #e7e7e7 +} + +.navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:focus, .navbar-default .navbar-nav > .disabled > a:hover { + color: #ccc; + background-color: transparent +} + +.navbar-default .navbar-toggle { + border-color: #ddd +} + +.navbar-default .navbar-toggle:focus, .navbar-default .navbar-toggle:hover { + background-color: #ddd +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888 +} + +.navbar-default .navbar-collapse, .navbar-default .navbar-form { + border-color: #e7e7e7 +} + +.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover { + color: #555; + background-color: #e7e7e7 +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777 + } + + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { + color: #333; + background-color: transparent + } + + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #555; + background-color: #e7e7e7 + } + + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #ccc; + background-color: transparent + } +} + +.navbar-default .navbar-link { + color: #777 +} + +.navbar-default .navbar-link:hover { + color: #333 +} + +.navbar-default .btn-link { + color: #777 +} + +.navbar-default .btn-link:focus, .navbar-default .btn-link:hover { + color: #333 +} + +.navbar-default .btn-link[disabled]:focus, .navbar-default .btn-link[disabled]:hover, fieldset[disabled] .navbar-default .btn-link:focus, fieldset[disabled] .navbar-default .btn-link:hover { + color: #ccc +} + +.navbar-inverse { + background-color: #222; + border-color: #080808 +} + +.navbar-inverse .navbar-brand { + color: #9d9d9d +} + +.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover { + color: #fff; + background-color: transparent +} + +.navbar-inverse .navbar-text { + color: #9d9d9d +} + +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d +} + +.navbar-inverse .navbar-nav > li > a:focus, .navbar-inverse .navbar-nav > li > a:hover { + color: #fff; + background-color: transparent +} + +.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:focus, .navbar-inverse .navbar-nav > .active > a:hover { + color: #fff; + background-color: #080808 +} + +.navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:focus, .navbar-inverse .navbar-nav > .disabled > a:hover { + color: #444; + background-color: transparent +} + +.navbar-inverse .navbar-toggle { + border-color: #333 +} + +.navbar-inverse .navbar-toggle:focus, .navbar-inverse .navbar-toggle:hover { + background-color: #333 +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff +} + +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #101010 +} + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:focus, .navbar-inverse .navbar-nav > .open > a:hover { + color: #fff; + background-color: #080808 +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808 + } + + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808 + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover { + color: #fff; + background-color: transparent + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #fff; + background-color: #080808 + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #444; + background-color: transparent + } +} + +.navbar-inverse .navbar-link { + color: #9d9d9d +} + +.navbar-inverse .navbar-link:hover { + color: #fff +} + +.navbar-inverse .btn-link { + color: #9d9d9d +} + +.navbar-inverse .btn-link:focus, .navbar-inverse .btn-link:hover { + color: #fff +} + +.navbar-inverse .btn-link[disabled]:focus, .navbar-inverse .btn-link[disabled]:hover, fieldset[disabled] .navbar-inverse .btn-link:focus, fieldset[disabled] .navbar-inverse .btn-link:hover { + color: #444 +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px +} + +.breadcrumb > li { + display: inline-block +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0" +} + +.breadcrumb > .active { + color: #777 +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px +} + +.pagination > li { + display: inline +} + +.pagination > li > a, .pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd +} + +.pagination > li:first-child > a, .pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px +} + +.pagination > li:last-child > a, .pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px +} + +.pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover { + z-index: 2; + color: #23527c; + background-color: #eee; + border-color: #ddd +} + +.pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7 +} + +.pagination > .disabled > a, .pagination > .disabled > a:focus, .pagination > .disabled > a:hover, .pagination > .disabled > span, .pagination > .disabled > span:focus, .pagination > .disabled > span:hover { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd +} + +.pagination-lg > li > a, .pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333 +} + +.pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px +} + +.pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px +} + +.pagination-sm > li > a, .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5 +} + +.pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px +} + +.pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none +} + +.pager li { + display: inline +} + +.pager li > a, .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px +} + +.pager li > a:focus, .pager li > a:hover { + text-decoration: none; + background-color: #eee +} + +.pager .next > a, .pager .next > span { + float: right +} + +.pager .previous > a, .pager .previous > span { + float: left +} + +.pager .disabled > a, .pager .disabled > a:focus, .pager .disabled > a:hover, .pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em +} + +a.label:focus, a.label:hover { + color: #fff; + text-decoration: none; + cursor: pointer +} + +.label:empty { + display: none +} + +.btn .label { + position: relative; + top: -1px +} + +.label-default { + background-color: #777 +} + +.label-default[href]:focus, .label-default[href]:hover { + background-color: #5e5e5e +} + +.label-primary { + background-color: #337ab7 +} + +.label-primary[href]:focus, .label-primary[href]:hover { + background-color: #286090 +} + +.label-success { + background-color: #5cb85c +} + +.label-success[href]:focus, .label-success[href]:hover { + background-color: #449d44 +} + +.label-info { + background-color: #5bc0de +} + +.label-info[href]:focus, .label-info[href]:hover { + background-color: #31b0d5 +} + +.label-warning { + background-color: #f0ad4e +} + +.label-warning[href]:focus, .label-warning[href]:hover { + background-color: #ec971f +} + +.label-danger { + background-color: #d9534f +} + +.label-danger[href]:focus, .label-danger[href]:hover { + background-color: #c9302c +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.btn-group-xs > .btn .badge, .btn-xs .badge { + top: 0; + padding: 1px 5px +} + +a.badge:focus, a.badge:hover { + color: #fff; + text-decoration: none; + cursor: pointer +} + +.list-group-item.active > .badge, .nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff +} + +.list-group-item > .badge { + float: right +} + +.list-group-item > .badge + .badge { + margin-right: 5px +} + +.nav-pills > li > a > .badge { + margin-left: 3px +} + +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee +} + +.jumbotron .h1, .jumbotron h1 { + color: inherit +} + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200 +} + +.jumbotron > hr { + border-top-color: #d5d5d5 +} + +.container .jumbotron, .container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px +} + +.jumbotron .container { + max-width: 100% +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px + } + + .container .jumbotron, .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px + } + + .jumbotron .h1, .jumbotron h1 { + font-size: 63px + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out +} + +.thumbnail a > img, .thumbnail > img { + margin-right: auto; + margin-left: auto +} + +a.thumbnail.active, a.thumbnail:focus, a.thumbnail:hover { + border-color: #337ab7 +} + +.thumbnail .caption { + padding: 9px; + color: #333 +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px +} + +.alert h4 { + margin-top: 0; + color: inherit +} + +.alert .alert-link { + font-weight: 700 +} + +.alert > p, .alert > ul { + margin-bottom: 0 +} + +.alert > p + p { + margin-top: 5px +} + +.alert-dismissable, .alert-dismissible { + padding-right: 35px +} + +.alert-dismissable .close, .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +.alert-success hr { + border-top-color: #c9e2b3 +} + +.alert-success .alert-link { + color: #2b542c +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1 +} + +.alert-info hr { + border-top-color: #a6e1ec +} + +.alert-info .alert-link { + color: #245269 +} + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc +} + +.alert-warning hr { + border-top-color: #f7e1b5 +} + +.alert-warning .alert-link { + color: #66512c +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1 +} + +.alert-danger hr { + border-top-color: #e4b9c0 +} + +.alert-danger .alert-link { + color: #843534 +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0 + } + to { + background-position: 0 0 + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0 + } + to { + background-position: 0 0 + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0 + } + to { + background-position: 0 0 + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1) +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease +} + +.progress-bar-striped, .progress-striped .progress-bar { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px +} + +.progress-bar.active, .progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite +} + +.progress-bar-success { + background-color: #5cb85c +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-info { + background-color: #5bc0de +} + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-warning { + background-color: #f0ad4e +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-danger { + background-color: #d9534f +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.media { + margin-top: 15px +} + +.media:first-child { + margin-top: 0 +} + +.media, .media-body { + overflow: hidden; + zoom: 1 +} + +.media-body { + width: 10000px +} + +.media-object { + display: block +} + +.media-object.img-thumbnail { + max-width: none +} + +.media-right, .media > .pull-right { + padding-left: 10px +} + +.media-left, .media > .pull-left { + padding-right: 10px +} + +.media-body, .media-left, .media-right { + display: table-cell; + vertical-align: top +} + +.media-middle { + vertical-align: middle +} + +.media-bottom { + vertical-align: bottom +} + +.media-heading { + margin-top: 0; + margin-bottom: 5px +} + +.media-list { + padding-left: 0; + list-style: none +} + +.list-group { + padding-left: 0; + margin-bottom: 20px +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd +} + +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px +} + +a.list-group-item, button.list-group-item { + color: #555 +} + +a.list-group-item .list-group-item-heading, button.list-group-item .list-group-item-heading { + color: #333 +} + +a.list-group-item:focus, a.list-group-item:hover, button.list-group-item:focus, button.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5 +} + +button.list-group-item { + width: 100%; + text-align: left +} + +.list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover { + color: #777; + cursor: not-allowed; + background-color: #eee +} + +.list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading { + color: inherit +} + +.list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text { + color: #777 +} + +.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7 +} + +.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading > .small, .list-group-item.active .list-group-item-heading > small, .list-group-item.active:focus .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading > small, .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading > small { + color: inherit +} + +.list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text { + color: #c7ddef +} + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8 +} + +a.list-group-item-success, button.list-group-item-success { + color: #3c763d +} + +a.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading { + color: inherit +} + +a.list-group-item-success:focus, a.list-group-item-success:hover, button.list-group-item-success:focus, button.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6 +} + +a.list-group-item-success.active, a.list-group-item-success.active:focus, a.list-group-item-success.active:hover, button.list-group-item-success.active, button.list-group-item-success.active:focus, button.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d +} + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7 +} + +a.list-group-item-info, button.list-group-item-info { + color: #31708f +} + +a.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading { + color: inherit +} + +a.list-group-item-info:focus, a.list-group-item-info:hover, button.list-group-item-info:focus, button.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3 +} + +a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover, button.list-group-item-info.active, button.list-group-item-info.active:focus, button.list-group-item-info.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f +} + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3 +} + +a.list-group-item-warning, button.list-group-item-warning { + color: #8a6d3b +} + +a.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading { + color: inherit +} + +a.list-group-item-warning:focus, a.list-group-item-warning:hover, button.list-group-item-warning:focus, button.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc +} + +a.list-group-item-warning.active, a.list-group-item-warning.active:focus, a.list-group-item-warning.active:hover, button.list-group-item-warning.active, button.list-group-item-warning.active:focus, button.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b +} + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede +} + +a.list-group-item-danger, button.list-group-item-danger { + color: #a94442 +} + +a.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading { + color: inherit +} + +a.list-group-item-danger:focus, a.list-group-item-danger:hover, button.list-group-item-danger:focus, button.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc +} + +a.list-group-item-danger.active, a.list-group-item-danger.active:focus, a.list-group-item-danger.active:hover, button.list-group-item-danger.active, button.list-group-item-danger.active:focus, button.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442 +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3 +} + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05) +} + +.panel-body { + padding: 15px +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit +} + +.panel-title > .small, .panel-title > .small > a, .panel-title > a, .panel-title > small, .panel-title > small > a { + color: inherit +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel > .list-group, .panel > .panel-collapse > .list-group { + margin-bottom: 0 +} + +.panel > .list-group .list-group-item, .panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0 +} + +.panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0 +} + +.list-group + .panel-footer { + border-top-width: 0 +} + +.panel > .panel-collapse > .table, .panel > .table, .panel > .table-responsive > .table { + margin-bottom: 0 +} + +.panel > .panel-collapse > .table caption, .panel > .table caption, .panel > .table-responsive > .table caption { + padding-right: 15px; + padding-left: 15px +} + +.panel > .table-responsive:first-child > .table:first-child, .panel > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child, .panel > .table:first-child > thead:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px +} + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px +} + +.panel > .table-responsive:last-child > .table:last-child, .panel > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px +} + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px +} + +.panel > .panel-body + .table, .panel > .panel-body + .table-responsive, .panel > .table + .panel-body, .panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd +} + +.panel > .table > tbody:first-child > tr:first-child td, .panel > .table > tbody:first-child > tr:first-child th { + border-top: 0 +} + +.panel > .table-bordered, .panel > .table-responsive > .table-bordered { + border: 0 +} + +.panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0 +} + +.panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0 +} + +.panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th { + border-bottom: 0 +} + +.panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0 +} + +.panel > .table-responsive { + margin-bottom: 0; + border: 0 +} + +.panel-group { + margin-bottom: 20px +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px +} + +.panel-group .panel + .panel { + margin-top: 5px +} + +.panel-group .panel-heading { + border-bottom: 0 +} + +.panel-group .panel-heading + .panel-collapse > .list-group, .panel-group .panel-heading + .panel-collapse > .panel-body { + border-top: 1px solid #ddd +} + +.panel-group .panel-footer { + border-top: 0 +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd +} + +.panel-default { + border-color: #ddd +} + +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd +} + +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd +} + +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333 +} + +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd +} + +.panel-primary { + border-color: #337ab7 +} + +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7 +} + +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7 +} + +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff +} + +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7 +} + +.panel-success { + border-color: #d6e9c6 +} + +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6 +} + +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d +} + +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6 +} + +.panel-info { + border-color: #bce8f1 +} + +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1 +} + +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1 +} + +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f +} + +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1 +} + +.panel-warning { + border-color: #faebcc +} + +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc +} + +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc +} + +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b +} + +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc +} + +.panel-danger { + border-color: #ebccd1 +} + +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1 +} + +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1 +} + +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442 +} + +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1 +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden +} + +.embed-responsive .embed-responsive-item, .embed-responsive embed, .embed-responsive iframe, .embed-responsive object, .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0 +} + +.embed-responsive-16by9 { + padding-bottom: 56.25% +} + +.embed-responsive-4by3 { + padding-bottom: 75% +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05) +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15) +} + +.well-lg { + padding: 24px; + border-radius: 6px +} + +.well-sm { + padding: 9px; + border-radius: 3px +} + +.close { + float: right; + font-size: 21px; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2 +} + +.close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5 +} + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: 0 0; + border: 0 +} + +.modal-open { + overflow: hidden +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0 +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%) +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0) +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5) +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000 +} + +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0 +} + +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5 +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5 +} + +.modal-header .close { + margin-top: -2px +} + +.modal-title { + margin: 0; + line-height: 1.42857143 +} + +.modal-body { + position: relative; + padding: 15px +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5 +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0 +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto + } + + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5) + } + + .modal-sm { + width: 300px + } +} + +@media (min-width: 992px) { + .modal-lg { + width: 900px + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + line-break: auto +} + +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9 +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000 +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000 +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + line-break: auto +} + +.popover.top { + margin-top: -10px +} + +.popover.right { + margin-left: 10px +} + +.popover.bottom { + margin-top: 10px +} + +.popover.left { + margin-left: -10px +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0 +} + +.popover-content { + padding: 9px 14px +} + +.popover > .arrow, .popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.popover > .arrow { + border-width: 11px +} + +.popover > .arrow:after { + content: ""; + border-width: 10px +} + +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0 +} + +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0 +} + +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0 +} + +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0 +} + +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25) +} + +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff +} + +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25) +} + +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff +} + +.carousel { + position: relative +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left +} + +.carousel-inner > .item > a > img, .carousel-inner > .item > img { + line-height: 1 +} + +@media all and (transform-3d),(-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px + } + + .carousel-inner > .item.active.right, .carousel-inner > .item.next { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } + + .carousel-inner > .item.active.left, .carousel-inner > .item.prev { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } + + .carousel-inner > .item.active, .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { + display: block +} + +.carousel-inner > .active { + left: 0 +} + +.carousel-inner > .next, .carousel-inner > .prev { + position: absolute; + top: 0; + width: 100% +} + +.carousel-inner > .next { + left: 100% +} + +.carousel-inner > .prev { + left: -100% +} + +.carousel-inner > .next.left, .carousel-inner > .prev.right { + left: 0 +} + +.carousel-inner > .active.left { + left: -100% +} + +.carousel-inner > .active.right { + left: 100% +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: .5 +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x +} + +.carousel-control:focus, .carousel-control:hover { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9 +} + +.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next, .carousel-control .icon-prev { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px +} + +.carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { + left: 50%; + margin-left: -10px +} + +.carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { + right: 50%; + margin-right: -10px +} + +.carousel-control .icon-next, .carousel-control .icon-prev { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1 +} + +.carousel-control .icon-prev:before { + content: '\2039' +} + +.carousel-control .icon-next:before { + content: '\203a' +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6) +} + +.carousel-caption .btn { + text-shadow: none +} + +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next, .carousel-control .icon-prev { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px + } + + .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { + margin-left: -10px + } + + .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { + margin-right: -10px + } + + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px + } + + .carousel-indicators { + bottom: 20px + } +} + +.btn-group-vertical > .btn-group:after, .btn-group-vertical > .btn-group:before, .btn-toolbar:after, .btn-toolbar:before, .clearfix:after, .clearfix:before, .container-fluid:after, .container-fluid:before, .container:after, .container:before, .dl-horizontal dd:after, .dl-horizontal dd:before, .form-horizontal .form-group:after, .form-horizontal .form-group:before, .modal-footer:after, .modal-footer:before, .modal-header:after, .modal-header:before, .nav:after, .nav:before, .navbar-collapse:after, .navbar-collapse:before, .navbar-header:after, .navbar-header:before, .navbar:after, .navbar:before, .pager:after, .pager:before, .panel-body:after, .panel-body:before, .row:after, .row:before { + display: table; + content: " " +} + +.btn-group-vertical > .btn-group:after, .btn-toolbar:after, .clearfix:after, .container-fluid:after, .container:after, .dl-horizontal dd:after, .form-horizontal .form-group:after, .modal-footer:after, .modal-header:after, .nav:after, .navbar-collapse:after, .navbar-header:after, .navbar:after, .pager:after, .panel-body:after, .row:after { + clear: both +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto +} + +.pull-right { + float: right !important +} + +.pull-left { + float: left !important +} + +.hide { + display: none !important +} + +.show { + display: block !important +} + +.invisible { + visibility: hidden +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 +} + +.hidden { + display: none !important +} + +.affix { + position: fixed +} + +@-ms-viewport { + width: device-width +} + +.visible-lg, .visible-md, .visible-sm, .visible-xs { + display: none !important +} + +.visible-lg-block, .visible-lg-inline, .visible-lg-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block { + display: none !important +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important + } + + table.visible-xs { + display: table !important + } + + tr.visible-xs { + display: table-row !important + } + + td.visible-xs, th.visible-xs { + display: table-cell !important + } +} + +@media (max-width: 767px) { + .visible-xs-block { + display: block !important + } +} + +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important + } +} + +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important + } + + table.visible-sm { + display: table !important + } + + tr.visible-sm { + display: table-row !important + } + + td.visible-sm, th.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important + } + + table.visible-md { + display: table !important + } + + tr.visible-md { + display: table-row !important + } + + td.visible-md, th.visible-md { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important + } + + table.visible-lg { + display: table !important + } + + tr.visible-lg { + display: table-row !important + } + + td.visible-lg, th.visible-lg { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important + } +} + +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important + } +} + +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important + } +} + +.visible-print { + display: none !important +} + +@media print { + .visible-print { + display: block !important + } + + table.visible-print { + display: table !important + } + + tr.visible-print { + display: table-row !important + } + + td.visible-print, th.visible-print { + display: table-cell !important + } +} + +.visible-print-block { + display: none !important +} + +@media print { + .visible-print-block { + display: block !important + } +} + +.visible-print-inline { + display: none !important +} + +@media print { + .visible-print-inline { + display: inline !important + } +} + +.visible-print-inline-block { + display: none !important +} + +@media print { + .visible-print-inline-block { + display: inline-block !important + } +} + +@media print { + .hidden-print { + display: none !important + } +} diff --git a/static/files/visualizer/css/main.css b/static/files/visualizer/css/main.css new file mode 100644 index 0000000..4257566 --- /dev/null +++ b/static/files/visualizer/css/main.css @@ -0,0 +1,813 @@ +*, *:before, *:after { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.clearfix:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} +.clearfix { display: inline-block; } +* html .clearfix { height: 1%; } +.clearfix { display: block; } + +hr{ + background-color: #ddd; + height: 1px; + border: 0; +} + +body { + font-family: AmazonEmber, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; + font-weight: 300; + font-size: 14px; + margin:0; + padding:0; + color:#444; +} + +.scroll-box { + background: #f4f4f4; + border: 2px solid rgba(0, 0, 0, 0.1); + height: 400px; /* maximum height of the box, feel free to change this! */ + padding: 15px; + overflow-y: scroll; +} + +.main{ + padding:20px; +} + +/* Style for the table tab */ + +.tab { + overflow: hidden; + background-color: #FFFFFF; +} +#tabDiv{ + border-top:0; +} + +/* Style for the buttons that are used to open the tab content */ + +button{ + display: inline-block; + text-align: center; + max-width: 100%; + min-width: 8px; + vertical-align: middle; + outline: 0; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + line-height: 1.43; + font-size: 14px; + -webkit-tap-highlight-color: transparent; + -ms-touch-action: none; + -webkit-font-smoothing: antialiased; + border: 1px solid; + border-radius: 3px; + color: #333; + background-color: #e7e9ec; + border-color: #adb1b8 #a2a6ac #8d9096; +} + +/* Change background color of tab buttons on hover */ +.tab button.tablinks:hover { + background-color: #ddd; +} + +/* style for Cancel buttons */ +.cancel{ + border-color: #e76d0c #e15500 #e15500; + color: #fff; + text-shadow: rgba(0,0,0,.05) 0 1px 0; + background-color: #ec7211; + background-image: linear-gradient(180deg,#f67c1b 0,#e15500); + box-shadow: inset 0 1px 0 hsla(0,0%,100%,.2); +} + +/* style for OK buttons */ +.ok{ + border-color: #be952c #a68226 #9b7924; + background: #eeba37; + color: #333 !important; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiP…dpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==); + background-size: 100%; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fee6b0),color-stop(100%, #eeba37)); + background-image: -moz-linear-gradient(#fee6b0 0%,#eeba37 100%); + background-image: -webkit-linear-gradient(#fee6b0 0%,#eeba37 100%); + background-image: linear-gradient(#fee6b0 0%,#eeba37 100%); + margin-left:7px; +} + +/* Create an active/current tablink class +.tab button.active { + display: inline; + background-color: lightgrey; +}*/ + +.tab button.tablinks{ + border: 1px solid #a9a9a9; + border-bottom: 0; + border-radius: 8px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background: #FFE3C6; + outline: none; + cursor: pointer; + padding: 0 12px 7px 12px + transition: 0.3s; + float:left; +} +.tab button.tablinks.active{ + background: #ffbf70; +} + +/* Style the tab content */ +.tabcontent { + display: none; + border: 1px solid #ccc; + border-top: none; + background-color: lightgrey; + margin-top: -1px; +} + +.sidenav { + background: #ffa735; + background: -moz-radial-gradient(center, ellipse cover, #ffa735 0%, #ea8100 100%); + background: -webkit-radial-gradient(center, ellipse cover, #ffa735 0%,#ea8100 100%); + background: radial-gradient(ellipse at center, #ffa735 0%,#ea8100 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffa735', endColorstr='#ea8100',GradientType=1 ); + height: 100%; + width: 0; + position: fixed; + z-index: 1; + top: 0; + left: 0; + overflow-x: hidden; + transition: 0.5s; + padding-top: 60px; + -webkit-box-shadow: 4px 0px 8px 0px rgba(0,0,0,0.53); + -moz-box-shadow: 4px 0px 8px 0px rgba(0,0,0,0.53); + box-shadow: 4px 0px 8px 0px rgba(0,0,0,0.53); +} + +.sidenav a { + padding: 8px 8px 8px 32px; + text-decoration: none; + font-size: 25px; + color: #f1f1f1; + display: block; + transition: 0.3s; +} + +.sidenav a:hover { + color: #818181; +} + +.sidenav .closebtn { + position: absolute; + top: 0; + right: 25px; + font-size: 36px; + margin-left: 50px; +} + +@media screen and (max-height: 450px) { + .sidenav {padding-top: 15px;} + .sidenav a {font-size: 18px;} +} + + +.App { + text-align: center +} + +.App-logo { + height: 80px +} + +.App-header { + background: #ffa735; + background: -moz-radial-gradient(center, ellipse cover, #ffa735 0%, #ea8100 100%); + background: -webkit-radial-gradient(center, ellipse cover, #ffa735 0%,#ea8100 100%); + background: radial-gradient(ellipse at center, #ffa735 0%,#ea8100 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffa735', endColorstr='#ea8100',GradientType=1 ); + height: 165px; + padding: 20px; + color: #fff; + border-bottom: 1px solid #888; +} + +.App-title { + font-size: 1.5em +} + +.classprimaryKey { + display: -ms-flexbox; + display: flex; + font-size: 15px; + margin-left: 30px +} + +.grey-header{ + color: #fff; + letter-spacing: 0.5px; + background: #7d7d7d; + text-align: center; + width: 1px; + white-space: nowrap; +} + +.outer { + display: table; + align-content: center; +} + +.inner { + display: table-cell; + vertical-align: bottom; + align-content: right; +} + +.topright { + vertical-align: top; + align-content: right; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +} + +.bottomleft { + vertical-align: bottom; + align-content: left; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +} + +.bottomright { + vertical-align: bottom; + align-content: right; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +} + +table { + background-color: #EEEEEE; + table-layout:fixed; + text-align: left; + border-collapse: collapse; +} + +td, +th { + border: 1px solid #AAAAAA; + padding: 2px 4px 2px 4px; + width: 1px; + white-space: nowrap; +} + +tbody td { + font-size: 13px; + padding: 2px 4px 2px 4px; + width: 1px; + white-space: nowrap; +} + +tr:nth-child(even) { + background: #FFF; +} +thead { + background: #FFBF70; + border-bottom: 2px solid #444444; +} +thead th { + font-size: 15px; + font-weight: bold; + color: #000000; + border-left: 1px solid #AAAAAA; + text-align: center; + width: 1px; + white-space: nowrap; +} +thead th:first-child { + border-left: none; +} + +.key_cell { + text-align: center; + background: #FFBF70; + font-weight: normal; + width: 1px; + white-space: nowrap; +} + +.td_key { + background: #FFF; + width: 1px; + white-space: nowrap; +} + + +.key_input, input[type="text"], input[type="password"], input[type="date"], +input[type="datetime"], input[type="email"], input[type="number"], +input[type="search"], input[type="tel"], input[type="time"], +input[type="url"], textarea { + background-color: white; + font-family: inherit; + border: 1px solid #ddd; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + color: rgba(0,0,0,0.75); + display: block; + font-size: 14px; + margin: 6px 0 12px 0; + padding: 6px; + height: 32px; + width: 100%; + -moz-transition: all .15s linear; + -o-transition: all .15s linear; + -webkit-transition: all .15s linear; + transition: all .15s linear; +} +.key_input, input { + -webkit-appearance: textfield; + background-color: white; + -webkit-rtl-ordering: logical; + cursor: text; + padding: 1px; + border-width: 2px; + border-style: inset; + border-color: initial; + border-image: initial; +} +.key_input, input, textarea, select, button { + text-rendering: auto; + color: initial; + letter-spacing: normal; + word-spacing: normal; + text-transform: none; + text-indent: 0px; + text-shadow: none; + display: inline-block; + text-align: start; + margin: 0em; +} +textarea{ + margin: 6px 0 12px 0; +} +#query{ + min-height:200px; +} + +.key_select, select{ + width: 180px; + border: 1px solid #ddd; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); + color: rgba(0,0,0,0.75); + display: block; + font-size: 16px; + margin: 6px 0 12px 0; + padding: 6px; + height: 32px; + -moz-transition: all .15s linear; + -o-transition: all .15s linear; + -webkit-transition: all .15s linear; + transition: all .15s linear; + background: #fff; +} +/* +.key_select, .select { + width: 100px; + height: 26px; + font-size: 16px +} */ +.centered-buttons{ + position: relative; + text-align: center; + margin-top: 30px; +} + +.wizard-bar{ + width: 400px; + margin: auto; + float:none; + display:block; +} +.wizard-bar select{ + width:100%; +} +.wizard-bar .cancel{ + text-align: center; +} + +.uploadFile { + -ms-flex-pack: distribute; + justify-content: space-around; + -ms-flex-align: end; + align-items: flex-end +} + +.tablediv, +.uploadFile { + display: -ms-flexbox; + display: flex +} + +.setBut { + -ms-flex-align: end; + align-items: flex-end +} + +.overlayclass { + text-align: center; + background: #5f9ea0; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + position: fixed; + top: 40%; + left: 40%; + right: 40%; + padding: 1rem +} + +.openBtn { + height: 28px; + width: 28px +} + +.okBtnDiv { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: distribute; + justify-content: space-around; + margin-left: 3% +} + +.okBtnStyle { + margin-left: 10px; + width: 200px; + height: 50px; + font-size: 20px +} + +@-webkit-keyframes App-logo-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +@keyframes App-logo-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +/* The Modal (background) */ +.modal { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 1; /* Sit on top */ + padding-top: 100px; /* Location of the box */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + background-color: rgb(0,0,0); /* Fallback color */ + background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ +} + +/* The Close Button */ +.close { + color: #aaaaaa; + float: right; + font-size: 28px; + font-weight: bold; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; +} + +.noselect { + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Old versions of Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently + supported by Chrome, Edge, Opera and Firefox */ +} + +/* Modal Content */ + +.modal-content{ + width:30%; + margin-left:35%; + border: 1px solid #888; + border-radius: 5px; + background-color: #efefef !important; + margin: auto; + padding: 40px; + -webkit-box-shadow: 4px 2px 8px 0px rgba(0,0,0,0.53); + -moz-box-shadow: 4px 2px 8px 0px rgba(0,0,0,0.53); + box-shadow: 4px 2px 8px 0px rgba(0,0,0,0.53); +} +.modal-content h1{ + margin-top:0; +} +#cgiModal .modal-content { + width: 480px; +} + +#myModal .modal-content { + position: absolute; + width: 20%; +} + +#lsiModal .modal-content { + width: 480px; +} + + +/* +.key_row { + display: flex; + margin: 10px 5px; +} */ + +.key_label { + text-align: left; + padding: 6px 0 6px 0; + font-weight: 600; +} + + +.sort_show { + display: none; +} +#lds-ellipsis{ + text-align: center; +} +.lds-ellipsis { + display: inline-block; + position: relative; + width: 64px; + height: 64px; +} +.lds-ellipsis div { + position: absolute; + top: 27px; + width: 11px; + height: 11px; + border-radius: 50%; + background: #000; + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} +.lds-ellipsis div:nth-child(1) { + left: 6px; + animation: lds-ellipsis1 0.6s infinite; +} +.lds-ellipsis div:nth-child(2) { + left: 6px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(3) { + left: 26px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(4) { + left: 45px; + animation: lds-ellipsis3 0.6s infinite; +} +@keyframes lds-ellipsis1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes lds-ellipsis3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} +@keyframes lds-ellipsis2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(19px, 0); + } +} + +[contenteditable] { + outline: 0px solid transparent; +}ext-decoration: none; +}*/ + + +/* Controls */ +.css-fix { } + +.controls { + text-align: right; + margin-right: 25%; +} +.controls.span { + margin-bottom: 6px; +} + +/* Switch check box -- replace native in Bootstrap 5 */ + +/* The switch - the box around the slider */ +.switch { + position: relative; + display: inline-block; + width: 30px; + height: 17px; +} + +/* Hide default HTML checkbox */ +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 13px; + width: 13px; + left: 2px; + bottom: 2px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #2196F3; +} + +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} + +input:checked + .slider:before { + -webkit-transform: translateX(13px); + -ms-transform: translateX(13px); + transform: translateX(13px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 17px; +} + +.slider.round:before { + border-radius: 50%; +} + + +/* Copyright fotoer */ + +:root{ + + --MAIN-TEXT-color:#232F3E; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #161E2D; /* Color of titles h2-h3-h4-h5 */ + --MAIN-LINK-color:#95b0ff; /* Color of links */ + --MAIN-LINK-HOVER-color:#527FFF; /* Color of hovered links */ + --MAIN-ANCHOR-color: #95b0ff; /* color of anchors on titles */ + + --MENU-HEADER-BG-color:#161E2D; /* Background color of menu header */ + --MENU-HEADER-BORDER-color:#161E2D; /*Color of menu header border */ + + --MENU-SEARCH-BG-color:#202c3c; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #4d6584; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #4d6584; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color:#232F3E; /* Background color of the active section and its childs */ + --MENU-SECTIONS-BG-color:#161E2D; /* Background color of other sections */ + --MENU-SECTIONS-TEXT-color: #FF9900; /*Color of pre text */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #232F3E; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #FF9900; /* Color of background for the active category (only) */ + --MENU-SECTION-ACTIVE-CATEGORY-TEXT-color: #fff; /* Color of pre text when selected */ + + --MENU-VISITED-color: #527FFF; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #20272b; /* Color of
separator in menu */ + +} + +.footer { + position: relative; + bottom: 0; + width: 100%; + padding: 20px 0; + margin-top: 40px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; +} + +.footer .copyright { + margin: 0; + font-size: 14px; +} +#footer h5.copyright a { + display: inline; + padding-left: 0; + padding-right: 0; + } + + #sidebar #footer { + padding-top: 20px !important; + } + #sidebar #footer h3.github-title { + font-size: 14px; + margin: 10px 0px 5px; + padding: 0px; + text-transform: uppercase; + letter-spacing: .15px; + } + + #sidebar #footer h5.copyright, #sidebar #footer p.build-number { + color: var(--MENU-SECTIONS-LINK-color) !important; + font-size: 10px; + letter-spacing: .15px; + line-height: 150% !important; + } +#sidebar #footer h5.copyright, #sidebar #footer p.build-number { + color: var(--MENU-SECTIONS-LINK-color) !important; + font-size: 10px; + letter-spacing: .15px; + line-height: 150% !important; + } \ No newline at end of file diff --git a/static/files/visualizer/data/ACL.json b/static/files/visualizer/data/ACL.json new file mode 100644 index 0000000..34d2cab --- /dev/null +++ b/static/files/visualizer/data/ACL.json @@ -0,0 +1 @@ +{"ModelName":"ACL","ModelMetadata":{"Author":"","DateCreated":"2021-07-21T19:40:44.189Z","DateLastModified":"2021-07-21T19:40:44.189Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"permissions","AttributeType":"S"},{"AttributeName":"permissions","AttributeType":"S"},{"AttributeName":"permissions","AttributeType":"S"},{"AttributeName":"permissions","AttributeType":"S"},{"AttributeName":"permissions","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"U1"},"SK":{"S":"U1"},"type":{"S":"user"},"permissions":{"S":"{}"},"GSI1PK":{"S":"U1"},"GSI1SK":{"S":"U1"}},{"PK":{"S":"G1"},"SK":{"S":"G1"},"type":{"S":"group"},"permissions":{"S":"{}"}},{"PK":{"S":"R1"},"SK":{"S":"R1"},"type":{"S":"role"},"permissions":{"S":"{}"}},{"PK":{"S":"G1"},"SK":{"S":"U1"},"type":{"S":"privilege"},"permissions":{"S":"{}"},"GSI1PK":{"S":"U1"},"GSI1SK":{"S":"G1"}},{"PK":{"S":"R1"},"SK":{"S":"U1"},"type":{"S":"privilege"},"permissions":{"S":"{}"},"GSI1PK":{"S":"U1"},"GSI1SK":{"S":"R1"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"SK","sort":"PK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"user":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"permissions":{"type":"String"},"GSI1PK":{"type":"String","value":"${SK}"},"GSI1SK":{"type":"String","value":"${PK}"}},"group":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"permissions":{"type":"String"}},"groupUser":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"permissions":{"type":"String"}},"role":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"permissions":{"type":"String"}},"userGroup":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"}},"permission":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"}},"privelege":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"}},"privilege":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"permissions":{"type":"String"},"GSI1PK":{"type":"String","value":"${SK}"},"GSI1SK":{"type":"String","value":"${PK}"}}},"queries":{}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/Asset Management.json b/static/files/visualizer/data/Asset Management.json new file mode 100644 index 0000000..3a7e2b6 --- /dev/null +++ b/static/files/visualizer/data/Asset Management.json @@ -0,0 +1 @@ +{"ModelName":"Asset Management","ModelMetadata":{"Author":"","DateCreated":"2021-06-04T15:40:23.771Z","DateLastModified":"2021-06-04T15:40:23.771Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"typeCode","AttributeType":"S"},{"AttributeName":"sizeCode","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"state","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"leid","AttributeType":"S"},{"AttributeName":"fromDate","AttributeType":"S"},{"AttributeName":"toDate","AttributeType":"S"},{"AttributeName":"lid","AttributeType":"S"},{"AttributeName":"pid","AttributeType":"S"},{"AttributeName":"status","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"A1"},"SK":{"S":"A"},"type":{"S":"asset"},"typeCode":{"S":"/C1/ST1/T1"},"sizeCode":{"S":"XL"},"name":{"S":"someAsset"},"state":{"S":"offline"},"GSI1PK":{"S":"L2"},"GSI1SK":{"S":"/C1/ST1/T1"}},{"PK":{"S":"A2"},"SK":{"S":"A"},"type":{"S":"asset"},"typeCode":{"S":"/C1/ST1/T1"},"sizeCode":{"S":"XL"},"name":{"S":"someAsset1"},"state":{"S":"online"}},{"PK":{"S":"A2"},"SK":{"S":"2021-06-04T15:50:51#LCE1"},"type":{"S":"event"},"leid":{"S":"LCE1"},"fromDate":{"S":"2021-06-04T15:50:51"},"toDate":{"S":"2021-06-05T15:50:51"},"lid":{"S":"L2"},"pid":{"S":"P1"},"status":{"S":"checkedOut"},"GSI1PK":{"S":"L2"},"GSI1SK":{"S":"2021-06-04T15:50:51"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"GSI1PK","sort":"GSI1SK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"asset":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"typeCode":{"type":"String"},"sizeCode":{"type":"String"},"name":{"type":"String"},"state":{"type":"String"},"GSI1PK":{"type":"String"},"GSI1SK":{"type":"String","value":"${typeCode}"}},"event":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${fromDate}#${leid}"},"leid":{"type":"String"},"fromDate":{"type":"String"},"toDate":{"type":"String"},"lid":{"type":"String"},"pid":{"type":"String"},"status":{"type":"String"},"GSI1PK":{"type":"String","value":"${lid}"},"GSI1SK":{"type":"String","value":"${fromDate}"}}},"queries":{}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/FlightsFares.json b/static/files/visualizer/data/FlightsFares.json new file mode 100644 index 0000000..06f45bf --- /dev/null +++ b/static/files/visualizer/data/FlightsFares.json @@ -0,0 +1 @@ +{"ModelName":"Reservations","ModelMetadata":{"Author":"","DateCreated":"2021-08-12T17:03:35.304Z","DateLastModified":"2021-08-12T17:03:35.304Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"effective","AttributeType":"S"},{"AttributeName":"end","AttributeType":"S"},{"AttributeName":"start","AttributeType":"S"},{"AttributeName":"end","AttributeType":"S"},{"AttributeName":"origin","AttributeType":"S"},{"AttributeName":"dest","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"depart","AttributeType":"S"},{"AttributeName":"arrive","AttributeType":"S"},{"AttributeName":"origin","AttributeType":"S"},{"AttributeName":"dest","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"data","AttributeType":"S"},{"AttributeName":"data","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"isSegment","AttributeType":"S"},{"AttributeName":"segments","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"class","AttributeType":"S"},{"AttributeName":"segId","AttributeType":"S"},{"AttributeName":"class","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI2PK","AttributeType":"S"},{"AttributeName":"GSI2SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"passenger","AttributeType":"S"},{"AttributeName":"SSR","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"segId","AttributeType":"S"},{"AttributeName":"seat","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"flight","AttributeType":"S"},{"AttributeName":"flight","AttributeType":"S"},{"AttributeName":"segId","AttributeType":"S"},{"AttributeName":"seat","AttributeType":"S"},{"AttributeName":"depart","AttributeType":"S"},{"AttributeName":"arrive","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"flight","AttributeType":"S"},{"AttributeName":"depart","AttributeType":"S"},{"AttributeName":"arrive","AttributeType":"S"},{"AttributeName":"segments","AttributeType":"S"},{"AttributeName":"origin","AttributeType":"S"},{"AttributeName":"dest","AttributeType":"S"},{"AttributeName":"origin","AttributeType":"S"},{"AttributeName":"dest","AttributeType":"S"},{"AttributeName":"GSI2PK","AttributeType":"S"},{"AttributeName":"GSI2SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}},{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI2PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI2SK","AttributeType":"S"}},"IndexName":"GSI2","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"SFO"},"SK":{"S":"JFK#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"SFO"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"SFO#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"SFO"},"SK":{"S":"JFK#2021-08-01T00:00:00#direct"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"SFO"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"SFO#2021-08-01T00:00:00"},"class":{"S":"direct"}},{"PK":{"S":"JFK"},"SK":{"S":"SFO#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"JFK"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"JFK#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"JFK"},"SK":{"S":"SFO#2021-08-01T00:00:00#direct"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"JFK"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"JFK#2021-08-01T00:00:00"},"class":{"S":"direct"}},{"PK":{"S":"SFO"},"SK":{"S":"DEN#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"SFO"},"dest":{"S":"DEN"},"GSI1PK":{"S":"DEN"},"GSI1SK":{"S":"SFO#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"DEN"},"SK":{"S":"JFK#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"DEN"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"DEN#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"DEN"},"SK":{"S":"SFO#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"DEN"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"DEN#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"SFO"},"SK":{"S":"JFK#2021-08-01T07:25:00#250#0"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T07:25:00"},"arrive":{"S":"2021-08-01T13:25:00"},"origin":{"S":"SFO"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"SFO#2021-08-01T13:25:00"},"segId":{"S":"0"},"class":{"S":"nonstop"},"number":{"S":"250"},"GSI2PK":{"S":"250"},"GSI2SK":{"S":"0"}},{"PK":{"S":"SFO"},"SK":{"S":"JFK#2021-08-01T06:25:00#150#0"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T06:25:00"},"arrive":{"S":"2021-08-01T14:25:00"},"origin":{"S":"SFO"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"SFO#2021-08-01T14:25:00"},"segments":{"S":"{DEN, JFK}"},"segId":{"S":"0"},"class":{"S":"direct"},"number":{"S":"150"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"0"}},{"PK":{"S":"JFK"},"SK":{"S":"SFO#2021-08-01T14:25:00#260#0"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T14:25:00"},"arrive":{"S":"2021-08-01T17:25:00"},"origin":{"S":"JFK"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"JFK#2021-08-01T17:25:00"},"segId":{"S":"0"},"class":{"S":"nonstop"},"number":{"S":"260"},"GSI2PK":{"S":"260"},"GSI2SK":{"S":"0"}},{"PK":{"S":"JFK"},"SK":{"S":"SFO#2021-08-01T15:25:00#160#0"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T15:25:00"},"arrive":{"S":"2021-08-03T20:25:25:00"},"origin":{"S":"JFK"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"JFK#2021-08-03T20:25:25:00"},"segments":{"S":"{DEN, SFO}"},"segId":{"S":"0"},"class":{"S":"direct"},"number":{"S":"160"},"GSI2PK":{"S":"160"},"GSI2SK":{"S":"0"}},{"PK":{"S":"SFO"},"SK":{"S":"DEN#2021-08-01T06:25:00#150#1"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T06:25:00"},"arrive":{"S":"2021-08-01T09:25:00"},"origin":{"S":"SFO"},"dest":{"S":"DEN"},"GSI1PK":{"S":"DEN"},"GSI1SK":{"S":"SFO#2021-08-01T09:25:00"},"isSegment":{"S":"true"},"segId":{"S":"1"},"class":{"S":"nonstop"},"number":{"S":"150"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"1"}},{"PK":{"S":"DEN"},"SK":{"S":"SFO#2021-08-02T16:55:00#160#2"},"type":{"S":"flight"},"depart":{"S":"2021-08-02T16:55:00"},"arrive":{"S":"2021-08-02T18:25:00"},"origin":{"S":"DEN"},"dest":{"S":"SFO"},"GSI1PK":{"S":"SFO"},"GSI1SK":{"S":"DEN#2021-08-02T18:25:00"},"isSegment":{"S":"true"},"segId":{"S":"2"},"class":{"S":"nonstop"},"number":{"S":"160"},"GSI2PK":{"S":"160"},"GSI2SK":{"S":"2"}},{"PK":{"S":"DEN"},"SK":{"S":"JFK#2021-08-01T10:25:00#150#2"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T10:25:00"},"arrive":{"S":"2021-08-01T14:25:00"},"origin":{"S":"DEN"},"dest":{"S":"JFK"},"GSI1PK":{"S":"JFK"},"GSI1SK":{"S":"DEN#2021-08-01T14:25:00"},"isSegment":{"S":"true"},"segId":{"S":"2"},"class":{"S":"nonstop"},"number":{"S":"150"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"2"}},{"PK":{"S":"JFK"},"SK":{"S":"DEN#2021-08-01T15:25:00#160#1"},"type":{"S":"flight"},"depart":{"S":"2021-08-01T15:25:00"},"arrive":{"S":"2021-08-01T19:25:00"},"origin":{"S":"JFK"},"dest":{"S":"DEN"},"GSI1PK":{"S":"DEN"},"GSI1SK":{"S":"JFK#2021-08-01T19:25:00"},"isSegment":{"S":"true"},"segId":{"S":"1"},"class":{"S":"nonstop"},"number":{"S":"160"},"GSI2PK":{"S":"160"},"GSI2SK":{"S":"1"}},{"PK":{"S":"JFK"},"SK":{"S":"DEN#2021-08-01T00:00:00#nonstop"},"type":{"S":"fare"},"start":{"S":"2021-08-01T00:00:00"},"end":{"S":"2021-08-01T23:59:59"},"origin":{"S":"JFK"},"dest":{"S":"DEN"},"GSI1PK":{"S":"DEN"},"GSI1SK":{"S":"JFK#2021-08-01T00:00:00"},"class":{"S":"nonstop"}},{"PK":{"S":"Smith, Jon"},"SK":{"S":"2021-08-01T10:25:00#150#2#1A"},"type":{"S":"assignment"},"SSR":{"S":"[wheelchair, vegan]"},"flight":{"S":"150"},"segId":{"S":"2"},"seat":{"S":"1A"},"depart":{"S":"2021-08-01T10:25:00"},"arrive":{"S":"2021-08-01T14:25:00"},"origin":{"S":"DEN"},"dest":{"S":"JFK"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"2#1A"}},{"PK":{"S":"Smith, Jon"},"SK":{"S":"2021-08-01T06:25:00#150#1#1A"},"type":{"S":"assignment"},"SSR":{"S":"[wheelchair, vegan]"},"flight":{"S":"150"},"segId":{"S":"1"},"seat":{"S":"1A"},"depart":{"S":"2021-08-01T06:25:00"},"arrive":{"S":"2021-08-01T09:25:00"},"origin":{"S":"SFO"},"dest":{"S":"DEN"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"1#1A"}},{"PK":{"S":"Smith, Jon"},"SK":{"S":"2021-08-01T06:25:00#150"},"type":{"S":"booking"},"flight":{"S":"150"},"depart":{"S":"2021-08-01T06:25:00"},"arrive":{"S":"2021-08-01T14:25:00"},"segments":{"S":"2"},"origin":{"S":"SFO"},"dest":{"S":"JFK"}},{"PK":{"S":"Parker, Jane"},"SK":{"S":"2021-08-01T10:25:00#150#2#3D"},"type":{"S":"assignment"},"SSR":{"S":"[]"},"flight":{"S":"150"},"segId":{"S":"2"},"seat":{"S":"3D"},"depart":{"S":"2021-08-01T10:25:00"},"arrive":{"S":"2021-08-01T14:25:00"},"origin":{"S":"DEN"},"dest":{"S":"JFK"},"GSI2PK":{"S":"150"},"GSI2SK":{"S":"2#3D"}},{"PK":{"S":"Parker, Jane"},"SK":{"S":"2021-08-01T15:25:00#160#1#3D"},"type":{"S":"assignment"},"SSR":{"S":"[]"},"flight":{"S":"160"},"segId":{"S":"1"},"seat":{"S":"3D"},"depart":{"S":"2021-08-01T15:25:00"},"arrive":{"S":"2021-08-01T19:25:00"},"origin":{"S":"JFK"},"dest":{"S":"DEN"},"GSI2PK":{"S":"160"},"GSI2SK":{"S":"1#3D"}},{"PK":{"S":"Smith, Jon"},"SK":{"S":"2021-08-01T14:25:00#260#0#1A"},"type":{"S":"assignment"},"SSR":{"S":"[wheelchair, vegan]"},"flight":{"S":"260"},"segId":{"S":"0"},"seat":{"S":"1A"},"depart":{"S":"2021-08-01T14:25:00"},"arrive":{"S":"2021-08-01T17:25:00"},"origin":{"S":"~new~"},"dest":{"S":"~new~"},"GSI2PK":{"S":"260"},"GSI2SK":{"S":"0#1A"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"GSI1PK","sort":"GSI1SK","projection":"ALL"},"GSI2":{"hash":"GSI2PK","sort":"GSI2SK","projection":"ALL"},"GSI3":{"hash":"GSI3PK","sort":"GSI3SK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"fare":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${dest}#${start}#${class}"},"start":{"type":"String"},"end":{"type":"String"},"origin":{"type":"String"},"dest":{"type":"String"},"GSI1PK":{"type":"String","value":"${dest}"},"GSI1SK":{"type":"String","value":"${origin}#${start}"},"class":{"type":"String"}},"flight":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${dest}#${depart}#${number}#${segId}"},"depart":{"type":"String"},"arrive":{"type":"String"},"origin":{"type":"String"},"dest":{"type":"String"},"GSI1PK":{"type":"String","value":"${dest}"},"GSI1SK":{"type":"String","value":"${origin}#${arrive}"},"isSegment":{"type":"String"},"segments":{"type":"String"},"segId":{"type":"String"},"class":{"type":"String"},"number":{"type":"String"},"GSI2PK":{"type":"String","value":"${number}"},"GSI2SK":{"type":"String","value":"${segId}"}},"assignment":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${depart}#${flight}#${segId}#${seat}"},"SSR":{"type":"String"},"flight":{"type":"String"},"segId":{"type":"String"},"seat":{"type":"String"},"depart":{"type":"String"},"arrive":{"type":"String"},"origin":{"type":"String"},"dest":{"type":"String"},"GSI2PK":{"type":"String","value":"${flight}"},"GSI2SK":{"type":"String","value":"${segId}#${seat}"}},"booking":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${depart}#${flight}"},"flight":{"type":"String"},"depart":{"type":"String"},"arrive":{"type":"String"},"segments":{"type":"String"},"origin":{"type":"String"},"dest":{"type":"String"}}},"queries":{}},"SavedQuery":{"Get flights and fares":{"view":"data","PK":"SFO","SK":{"condition":"between","values":["JFK#2021-08-01","JFK#2021-08-02"]},"filter":[]}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/Hospital.json b/static/files/visualizer/data/Hospital.json new file mode 100644 index 0000000..7db9867 --- /dev/null +++ b/static/files/visualizer/data/Hospital.json @@ -0,0 +1,545 @@ +{ + "ModelName": "Hospital", + "ModelMetadata": { + "Author": "", + "DateCreated": "Nov 24, 2020, 08:00 PM", + "DateLastModified": "Apr 17, 2021, 01:07 PM", + "Description": "", + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }, + "DataModel": [ + { + "TableName": "data", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK", + "AttributeType": "S" + } + }, + "NonKeyAttributes": [ + { + "AttributeName": "type", + "AttributeType": "S" + }, + { + "AttributeName": "timestamp", + "AttributeType": "S" + }, + { + "AttributeName": "treatmentId", + "AttributeType": "S" + }, + { + "AttributeName": "roomId", + "AttributeType": "S" + }, + { + "AttributeName": "PK1", + "AttributeType": "S" + }, + { + "AttributeName": "SK1", + "AttributeType": "S" + }, + { + "AttributeName": "PK2", + "AttributeType": "S" + }, + { + "AttributeName": "SK2", + "AttributeType": "S" + }, + { + "AttributeName": "PK3", + "AttributeType": "S" + }, + { + "AttributeName": "SK3", + "AttributeType": "S" + }, + { + "AttributeName": "PK4", + "AttributeType": "S" + }, + { + "AttributeName": "SK4", + "AttributeType": "S" + }, + { + "AttributeName": "condition", + "AttributeType": "S" + } + ], + "GlobalSecondaryIndexes": [ + { + "IndexName": "GSI1", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK1", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK1", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI2", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK2", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK2", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI3", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK3", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK3", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI4", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK4", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK4", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + } + ], + "TableData": [ + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "patient" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#T1" + }, + "type": { + "S": "treatment" + }, + "timestamp": { + "S": "2020-11-25T12:00:00" + }, + "treatmentId": { + "S": "T11" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "hospitalId-T" + }, + "SK2": { + "S": "2020-11-25T12:00:00" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#M1" + }, + "type": { + "S": "medicine" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "hospitalId-M" + }, + "SK2": { + "S": "2020-11-25T12:00:00" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#R1" + }, + "type": { + "S": "admission" + }, + "timestamp": { + "S": "2020-11-25T12:00:00" + }, + "roomId": { + "S": "R1" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "normal" + }, + "SK2": { + "S": "2020-11-26T00:00:00" + }, + "PK3": { + "S": "R1" + }, + "SK3": { + "S": "2020-11-25T12:00:00" + }, + "PK4": { + "S": "hospitalId" + }, + "SK4": { + "S": "2020-11-25T12:00:00" + }, + "condition": { + "S": "minor trauma" + } + }, + { + "PK": { + "S": "D1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "doctor" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "A" + }, + "PK2": { + "S": "specialty" + }, + "SK2": { + "S": "hospitalId" + } + }, + { + "PK": { + "S": "N1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "nurse" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "A" + } + }, + { + "PK": { + "S": "R1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "room" + }, + "PK3": { + "S": "R1" + }, + "SK3": { + "S": "A" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#A1" + }, + "type": { + "S": "activity" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + } + } + ], + "DataAccess": { + "MySql": {} + } + } + ], + "ModelSchema": { + "indexes": { + "primary": { + "hash": "PK", + "sort": "SK" + }, + "GSI1": { + "hash": "PK1", + "sort": "SK1", + "projection": "ALL" + }, + "GSI2": { + "hash": "PK2", + "sort": "SK2", + "projection": "ALL" + }, + "GSI3": { + "hash": "PK3", + "sort": "SK3", + "projection": "ALL" + }, + "GSI4": { + "hash": "PK4", + "sort": "SK4", + "projection": "ALL" + } + }, + "models": { + "patient": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + } + }, + "treatment": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String", + "value": "${timestamp}#${treatmentId}" + }, + "timestamp": { + "type": "String" + }, + "treatmentId": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + }, + "PK2": { + "type": "String" + }, + "SK2": { + "type": "String" + } + }, + "medicine": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + }, + "PK2": { + "type": "String" + }, + "SK2": { + "type": "String" + } + }, + "admission": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String", + "value": "${timestamp}#${roomId}" + }, + "timestamp": { + "type": "String" + }, + "roomId": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + }, + "PK2": { + "type": "String" + }, + "SK2": { + "type": "String" + }, + "PK3": { + "type": "String" + }, + "SK3": { + "type": "String" + }, + "PK4": { + "type": "String" + }, + "SK4": { + "type": "String" + }, + "condition": { + "type": "String" + } + }, + "doctor": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + }, + "PK2": { + "type": "String" + }, + "SK2": { + "type": "String" + } + }, + "nurse": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + } + }, + "room": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "PK3": { + "type": "String" + }, + "SK3": { + "type": "String" + } + }, + "activity": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "PK1": { + "type": "String" + }, + "SK1": { + "type": "String" + } + } + } + } +} \ No newline at end of file diff --git a/static/files/visualizer/data/Hotel Reservations.json b/static/files/visualizer/data/Hotel Reservations.json new file mode 100644 index 0000000..909b735 --- /dev/null +++ b/static/files/visualizer/data/Hotel Reservations.json @@ -0,0 +1 @@ +{"ModelName":"Hotel Reservations","ModelMetadata":{"Author":"Rick Houlihan","DateCreated":"2021-09-15T15:47:01.312Z","DateLastModified":"2021-09-15T15:47:01.312Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"startDate","AttributeType":"S"},{"AttributeName":"endDate","AttributeType":"S"},{"AttributeName":"amount","AttributeType":"S"},{"AttributeName":"rType","AttributeType":"S"},{"AttributeName":"rateId","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"data","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"startDate","AttributeType":"S"},{"AttributeName":"endDate","AttributeType":"S"},{"AttributeName":"rType","AttributeType":"S"},{"AttributeName":"reservationId","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"date","AttributeType":"S"},{"AttributeName":"summary","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"date","AttributeType":"S"},{"AttributeName":"roomId","AttributeType":"S"},{"AttributeName":"assignment","AttributeType":"S"},{"AttributeName":"state","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"H1"},"SK":{"S":"A"},"type":{"S":"hotel"},"details":{"S":"{roomDefs: {}}"}},{"PK":{"S":"H1"},"SK":{"S":"2021-09-30T00:00:00#RATE1"},"type":{"S":"rate"},"startDate":{"S":"2021-09-01T00:00:00"},"endDate":{"S":"2021-09-30T00:00:00"},"amount":{"S":"~new~"},"rType":{"S":"standard"},"rateId":{"S":"RATE1"}},{"PK":{"S":"C1"},"SK":{"S":"A"},"type":{"S":"customert"},"data":{"S":"{}"}},{"PK":{"S":"C1"},"SK":{"S":"2021-09-15T02:00\"00"},"type":{"S":"booking"},"startDate":{"S":"2021-09-15T02:00\"00"},"endDate":{"S":"2021-09-16T12:00\"00"},"rType":{"S":"standard"},"reservationId":{"S":"RES1"},"assignment":{"S":"ROOM1"},"state":{"S":"COMPLETE"},"GSI1PK":{"S":"H1"},"GSI1SK":{"S":"2021-09-15T02:00\"00"}},{"PK":{"S":"H1"},"SK":{"S":"2021-09-15"},"type":{"S":"summary"},"date":{"S":"2021-09-15"},"summary":{"S":"{}"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"GSI1PK","sort":"GSI1SK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"hotel":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"details":{"type":"String"}},"rate":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${endDate}#${rateId}"},"startDate":{"type":"String"},"endDate":{"type":"String"},"amount":{"type":"String"},"rType":{"type":"String"},"rateId":{"type":"String"}},"customert":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"data":{"type":"String"}},"booking":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${startDate}"},"startDate":{"type":"String"},"endDate":{"type":"String"},"rType":{"type":"String"},"reservationId":{"type":"String"},"assignment":{"type":"String"},"state":{"type":"String"},"GSI1PK":{"type":"String","value":"H1"},"GSI1SK":{"type":"String","value":"${startDate}"}},"summary":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${date}"},"date":{"type":"String"},"summary":{"type":"String"}},"checkin":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${type}#${date}#${roomId}"},"date":{"type":"String"},"roomId":{"type":"String"}}},"queries":{}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/Mobile Payments Service.json b/static/files/visualizer/data/Mobile Payments Service.json new file mode 100644 index 0000000..2cac9dd --- /dev/null +++ b/static/files/visualizer/data/Mobile Payments Service.json @@ -0,0 +1 @@ +{"ModelName":"Mobile Payments Service","ModelMetadata":{"Author":"","DateCreated":"2021-06-09T16:06:13.729Z","DateLastModified":"2021-06-09T16:06:13.729Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"providerId","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"status","AttributeType":"S"},{"AttributeName":"pData","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"aType","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"acctId","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"code","AttributeType":"S"},{"AttributeName":"acctId","AttributeType":"S"},{"AttributeName":"retailId","AttributeType":"S"},{"AttributeName":"timestamp","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"transId","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"C1"},"SK":{"S":"A"},"type":{"S":"customer"},"name":{"S":"John Doe"},"details":{"S":"map"}},{"PK":{"S":"C1"},"SK":{"S":"512.333.3333"},"type":{"S":"device"},"providerId":{"S":"P1"},"GSI1PK":{"S":"online#P1#(hashCode(number) % 10)"},"GSI1SK":{"S":"512.333.3333"},"number":{"S":"512.333.3333"},"status":{"S":"online"},"pData":{"S":"map"}},{"PK":{"S":"C1"},"SK":{"S":"512.444.4444"},"type":{"S":"device"},"providerId":{"S":"P1"},"GSI1PK":{"S":"offline#P1#(hashCode(number) % 10)"},"GSI1SK":{"S":"512.444.4444"},"number":{"S":"512.444.4444"},"status":{"S":"offline"},"pData":{"S":"map"}},{"PK":{"S":"C2"},"SK":{"S":"A"},"type":{"S":"customer"},"name":{"S":"Jane Doe"},"details":{"S":"map"}},{"PK":{"S":"C2"},"SK":{"S":"512.555.5555"},"type":{"S":"device"},"providerId":{"S":"P1"},"GSI1PK":{"S":"online#P1#(hashCode(number) % 10)"},"GSI1SK":{"S":"512.555.5555"},"number":{"S":"512.555.5555"},"status":{"S":"online"},"pData":{"S":"map"}},{"PK":{"S":"C1"},"SK":{"S":"512.333.3333#A1"},"type":{"S":"account"},"number":{"S":"512.333.3333"},"aType":{"S":"credit"},"details":{"S":"map"},"name":{"S":"primary"},"acctId":{"S":"A1"}},{"PK":{"S":"C1"},"SK":{"S":"512.333.3333#2021-06-09T16:46:03#T1"},"type":{"S":"transaction"},"code":{"S":"purchase"},"acctId":{"S":"A1"},"retailId":{"S":"R1"},"timestamp":{"S":"2021-06-09T16:46:03"},"number":{"S":"512.333.3333"},"transId":{"S":"T1"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"GSI1PK","sort":"GSI1SK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"customer":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"name":{"type":"String"},"details":{"type":"String"}},"device":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${number}"},"providerId":{"type":"String"},"GSI1PK":{"type":"String","value":"${status}#${providerId}#(hashCode(number) % 10)"},"GSI1SK":{"type":"String","value":"${number}"},"number":{"type":"String"},"status":{"type":"String"},"pData":{"type":"String"}},"provider":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"name":{"type":"String"}},"account":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${number}#${acctId}"},"number":{"type":"String"},"aType":{"type":"String"},"details":{"type":"String"},"name":{"type":"String"},"acctId":{"type":"String"}},"transaction":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"${number}#${timestamp}#${transId}"},"code":{"type":"String"},"acctId":{"type":"String"},"retailId":{"type":"String"},"timestamp":{"type":"String"},"number":{"type":"String"},"transId":{"type":"String"}}},"queries":{}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/OneTable.js b/static/files/visualizer/data/OneTable.js new file mode 100644 index 0000000..f2aea9f --- /dev/null +++ b/static/files/visualizer/data/OneTable.js @@ -0,0 +1,181 @@ +{ + indexes: { + primary: { + hash: 'PK', + sort: 'SK' + }, + gsi1: { + hash: 'PK1', + sort: 'SK1', + projection: 'ALL' + }, + gsi2: { + hash: 'PK2', + sort: 'SK2', + projection: 'ALL' + }, + gsi3: { + hash: 'PK3', + sort: 'SK3', + projection: 'ALL' + }, + gsi4: { + hash: 'PK4', + sort: 'SK4', + projection: 'ALL' + } + }, + models: { + activity: { + PK: { type: String, value: 'activity#${date}' }, + SK: { type: String, value: 'activity#' }, + PK1: { type: String }, + SK1: { type: String }, + timestamp: { type: Date, required: true }, + description: { type: String }, + }, + admission: { + PK: { type: String, value: 'admission#${patientId}' }, + SK: { type: String, value: 'admission#${timestamp}#{roomId}' }, + timestamp: { type: Date }, + roomId: { type: String }, + condition: { type: String }, + patientId: { type: String }, + PK1: { type: String }, + SK1: { type: String }, + PK2: { type: String }, + SK2: { type: String } + }, + doctor: { + PK: { type: String, value: 'doctor#${name}' }, + SK: { type: String, value: 'doctor#' }, + name: { type: String, required: true }, + PK1: { type: String }, + SK1: { type: String }, + PK2: { type: String }, + SK2: { type: String } + }, + medicine: { + PK: { type: String, value: 'medicine#${name}' }, + SK: { type: String, value: 'medicine#' }, + name: { type: String }, + PK1: { type: String }, + SK1: { type: String }, + PK2: { type: String }, + SK2: { type: String } + }, + nurse: { + PK: { type: String, value: 'nurse#${name}' }, + SK: { type: String, value: 'nurse#' }, + name: { type: String, required: true }, + PK1: { type: String }, + SK1: { type: String }, + }, + patient: { + PK: { type: String, value: 'patient#${name}' }, + SK: { type: String, value: 'patient#' }, + name: { type: String, required: true }, + age: { type: Number, required: true }, + medicare: { type: String }, + }, + room: { + PK: { type: String, value: 'room#${roomId}' }, + SK: { type: String, value: 'room#' }, + PK3: { type: String }, + SK3: { type: String }, + roomId: { type: String, required: true }, + building: { type: String, required: true }, + }, + treatment: { + PK: { type: String, value: 'treatment#${treatmentId}' }, + SK: { type: String, value: 'treatment#${timestamp}#${treatmentId}' }, + timestamp: { type: Date }, + treatmentId: { type: String }, + description: { type: String }, + PK1: { type: String }, + SK1: { type: String }, + PK2: { type: String }, + SK2: { type: String } + }, + }, + data: [ + { + PK: "P1", + SK: "A", + type: "patient", + name: "John Morrison", + }, + { + PK: "P1", + SK: "2020-11-25T12:00:00#T1", + type: "treatment", + timestamp: "2020-11-25T12:00:00", + treatmentId: "T11", + description: "Covid-19 vaccination", + PK1: "D1", + SK: "2020-11-25T12:00:00", + PK2: "hospitalId-T", + SK2: "2020-11-25T12:00:00" + }, + { + PK: "P1", + SK: "2020-11-25T12:00:00#M1", + type: "medicine", + name: "Pfizer Covid-19", + PK1: "D1", + SK: "2020-11-25T12:00:00", + PK2: "hospitalId-M", + SK2: "2020-11-25T12:00:00" + }, + { + PK: "P1", + SK: "2020-11-25T12:00:00#R1", + type: "admission", + timestamp: "2020-11-25T12:00:00", + roomId: "R1", + PK1: "N1", + SK: "2020-11-25T12:00:00", + PK2: "normal", + SK2: "2020-11-26T00:00:00", + PK3: "R1", + SK3: "2020-11-25T12:00:00", + PK4: "hospitalId", + SK4: "2020-11-25T12:00:00", + "condition": "Covid-19 test" + }, + { + PK: "D1", + SK: "A", + type: "doctor", + name: "Dr. Z. Smith", + PK1: "D1", + SK: "A", + PK2: "specialty", + SK2: "hospitalId" + }, + { + PK: "N1", + SK: "A", + type: "nurse", + name: "Ms. E. Jones", + PK1: "N1", + SK: "A" + }, + { + PK: "R1", + SK: "A", + type: "room", + roomId: "R1", + building: "East Wing", + PK3: "R1", + SK3: "A" + }, + { + PK: "P1", + SK: "2020-11-25T12:00:00#A1", + type: "activity", + PK1: "N1", + SK: "2020-11-25T12:00:00" + } + ] +} diff --git a/static/files/visualizer/data/OneTable.json b/static/files/visualizer/data/OneTable.json new file mode 100644 index 0000000..56cc025 --- /dev/null +++ b/static/files/visualizer/data/OneTable.json @@ -0,0 +1 @@ +{"indexes":{"primary":{"hash":"PK","sort":"SK"},"gsi1":{"hash":"PK1","sort":"SK1","projection":"ALL"},"gsi2":{"hash":"PK2","sort":"SK2","projection":"ALL"},"gsi3":{"hash":"PK3","sort":"SK3","projection":"ALL"},"gsi4":{"hash":"PK4","sort":"SK4","projection":"ALL"}},"models":{"activity":{"PK":{"type":"String","value":"activity#${date}"},"SK":{"type":"String","value":"activity#"},"PK1":{"type":"String"},"SK1":{"type":"String"},"timestamp":{"type":"Date","required":true},"description":{"type":"String"}},"admission":{"PK":{"type":"String","value":"admission#${patientId}"},"SK":{"type":"String","value":"admission#${timestamp}#{roomId}"},"timestamp":{"type":"Date"},"roomId":{"type":"String"},"condition":{"type":"String"},"patientId":{"type":"String"},"PK1":{"type":"String"},"SK1":{"type":"String"},"PK2":{"type":"String"},"SK2":{"type":"String"}},"doctor":{"PK":{"type":"String","value":"doctor#${name}"},"SK":{"type":"String","value":"doctor#"},"name":{"type":"String","required":true},"PK1":{"type":"String"},"SK1":{"type":"String"},"PK2":{"type":"String"},"SK2":{"type":"String"}},"medicine":{"PK":{"type":"String","value":"medicine#${name}"},"SK":{"type":"String","value":"medicine#"},"name":{"type":"String"},"PK1":{"type":"String"},"SK1":{"type":"String"},"PK2":{"type":"String"},"SK2":{"type":"String"}},"nurse":{"PK":{"type":"String","value":"nurse#${name}"},"SK":{"type":"String","value":"nurse#"},"name":{"type":"String","required":true},"PK1":{"type":"String"},"SK1":{"type":"String"}},"patient":{"PK":{"type":"String","value":"patient#${name}"},"SK":{"type":"String","value":"patient#"},"name":{"type":"String","required":true},"age":{"type":"Number","required":true},"medicare":{"type":"String"}},"room":{"PK":{"type":"String","value":"room#${roomId}"},"SK":{"type":"String","value":"room#"},"PK3":{"type":"String"},"SK3":{"type":"String"},"roomId":{"type":"String","required":true},"building":{"type":"String","required":true}},"treatment":{"PK":{"type":"String","value":"treatment#${treatmentId}"},"SK":{"type":"String","value":"treatment#${timestamp}#${treatmentId}"},"timestamp":{"type":"Date"},"treatmentId":{"type":"String"},"description":{"type":"String"},"PK1":{"type":"String"},"SK1":{"type":"String"},"PK2":{"type":"String"},"SK2":{"type":"String"}}},"data":[{"PK":"P1","SK":"A","type":"patient","name":"John Morrison"},{"PK":"P1","SK":"2020-11-25T12:00:00","type":"treatment","timestamp":"2020-11-25T12:00:00","treatmentId":"T11","description":"Covid-19 vaccination","PK1":"D1","PK2":"hospitalId-T","SK2":"2020-11-25T12:00:00"},{"PK":"P1","SK":"2020-11-25T12:00:00","type":"medicine","name":"Pfizer Covid-19","PK1":"D1","PK2":"hospitalId-M","SK2":"2020-11-25T12:00:00"},{"PK":"P1","SK":"2020-11-25T12:00:00","type":"admission","timestamp":"2020-11-25T12:00:00","roomId":"R1","PK1":"N1","PK2":"normal","SK2":"2020-11-26T00:00:00","PK3":"R1","SK3":"2020-11-25T12:00:00","PK4":"hospitalId","SK4":"2020-11-25T12:00:00","condition":"Covid-19 test"},{"PK":"D1","SK":"A","type":"doctor","name":"Dr. Z. Smith","PK1":"D1","PK2":"specialty","SK2":"hospitalId"},{"PK":"N1","SK":"A","type":"nurse","name":"Ms. E. Jones","PK1":"N1"},{"PK":"R1","SK":"A","type":"room","roomId":"R1","building":"East Wing","PK3":"R1","SK3":"A"},{"PK":"P1","SK":"2020-11-25T12:00:00","type":"activity","PK1":"N1"}]} diff --git a/static/files/visualizer/data/Phone Billing.json b/static/files/visualizer/data/Phone Billing.json new file mode 100644 index 0000000..c1300af --- /dev/null +++ b/static/files/visualizer/data/Phone Billing.json @@ -0,0 +1 @@ +{"ModelName":"Phone Billing","ModelMetadata":{"Author":"","DateCreated":"2021-07-07T15:23:13.193Z","DateLastModified":"2021-07-07T15:23:13.193Z","Description":"","AWSService":"Amazon DynamoDB","Version":"2.0"},"DataModel":[{"TableName":"data","KeyAttributes":{"PartitionKey":{"AttributeName":"PK","AttributeType":"S"},"SortKey":{"AttributeName":"SK","AttributeType":"S"}},"NonKeyAttributes":[{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"email","AttributeType":"S"},{"AttributeName":"commercial","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"street","AttributeType":"S"},{"AttributeName":"city","AttributeType":"S"},{"AttributeName":"state","AttributeType":"S"},{"AttributeName":"from","AttributeType":"S"},{"AttributeName":"to","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"postal","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"numType","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"from","AttributeType":"S"},{"AttributeName":"to","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"typeCode","AttributeType":"S"},{"AttributeName":"called","AttributeType":"S"},{"AttributeName":"start","AttributeType":"S"},{"AttributeName":"end","AttributeType":"S"},{"AttributeName":"details","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"},{"AttributeName":"type","AttributeType":"S"},{"AttributeName":"headerId","AttributeType":"S"},{"AttributeName":"detailId","AttributeType":"S"},{"AttributeName":"duration","AttributeType":"S"},{"AttributeName":"cost","AttributeType":"S"},{"AttributeName":"start","AttributeType":"S"},{"AttributeName":"number","AttributeType":"S"},{"AttributeName":"end","AttributeType":"S"},{"AttributeName":"GSI1PK","AttributeType":"S"},{"AttributeName":"GSI1SK","AttributeType":"S"}],"GlobalSecondaryIndexes":[{"KeyAttributes":{"PartitionKey":{"AttributeName":"GSI1PK","AttributeType":"S"},"SortKey":{"AttributeName":"GSI1SK","AttributeType":"S"}},"IndexName":"GSI1","Projection":{"ProjectionType":"ALL"}}],"TableData":[{"PK":{"S":"C1"},"SK":{"S":"A#A"},"type":{"S":"customer"},"name":{"S":"John Doe"},"email":{"S":"jdoe@somewhere.com"},"commercial":{"S":"false"},"details":{"S":"{}"}},{"PK":{"S":"C1"},"SK":{"S":"A#2021-07-07T16:09:12"},"type":{"S":"address"},"street":{"S":"~new~"},"city":{"S":"~new~"},"state":{"S":"~new~"},"from":{"S":"2021-07-07T16:09:12"},"to":{"S":"2021-07-07T16:09:50"},"GSI1PK":{"S":"TX"},"GSI1SK":{"S":"78681#2021-07-07T16:09:12"},"postal":{"S":"78681"}},{"PK":{"S":"C1"},"SK":{"S":"A#2021-07-07T16:09:50"},"type":{"S":"address"},"street":{"S":"~new~"},"city":{"S":"~new~"},"state":{"S":"~new~"},"from":{"S":"2021-07-07T16:09:50"},"to":{"S":"A"},"GSI1PK":{"S":"WA"},"GSI1SK":{"S":"99999#2021-07-07T16:09:50"},"postal":{"S":"99999"}},{"PK":{"S":"C1"},"SK":{"S":"P#512-777-7777"},"type":{"S":"phone"},"numType":{"S":"mobile"},"number":{"S":"512-777-7777"},"from":{"S":"2021-07-07T16:27:49"},"to":{"S":"A"},"details":{"S":"{}"},"GSI1PK":{"S":"512-777-7777"},"GSI1SK":{"S":"2021-07-07T16:27:49"}},{"PK":{"S":"C1"},"SK":{"S":"P#512-777-7777#2021-07-07T16:36:42-1"},"type":{"S":"call"},"number":{"S":"512-777-7777"},"typeCode":{"S":"0900"},"called":{"S":"512-888-8888"},"start":{"S":"2021-07-07T16:36:42-1"},"end":{"S":"2021-07-07T16:36:46"},"details":{"S":"{}"},"GSI1PK":{"S":"0"},"GSI1SK":{"S":"2021-07-07T16:36:42-1"}},{"PK":{"S":"C1"},"SK":{"S":"P#512-777-7777#2021-07-07T16:36:42"},"type":{"S":"call"},"number":{"S":"512-777-7777"},"typeCode":{"S":"0900"},"called":{"S":"512-999-9999"},"start":{"S":"2021-07-07T16:36:42"},"end":{"S":"2021-07-07T16:36:46"},"details":{"S":"{}"},"GSI1PK":{"S":"0"},"GSI1SK":{"S":"2021-07-07T16:36:42"}},{"PK":{"S":"C1"},"SK":{"S":"P#512-777-7777#2021-07-07T16:36:42-D"},"type":{"S":"detail"},"headerId":{"S":"~new~"},"detailId":{"S":"~new~"},"duration":{"S":"~new~"},"cost":{"S":"~new~"},"start":{"S":"2021-07-07T16:36:42-D"},"number":{"S":"512-777-7777"},"end":{"S":"2021-07-07T16:36:46"},"GSI1PK":{"S":"T1"},"GSI1SK":{"S":"2021-07-07T16:36:46"}}],"ModelSchema":{"indexes":{"primary":{"hash":"PK","sort":"SK"},"GSI1":{"hash":"GSI1PK","sort":"GSI1SK","projection":"ALL"}},"models":{"~new~":{"PK":{"type":"String"},"SK":{"type":"String"},"type":{"type":"String"}},"customer":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String"},"name":{"type":"String"},"email":{"type":"String"},"commercial":{"type":"String"},"details":{"type":"String"}},"address":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"A#${from}"},"street":{"type":"String"},"city":{"type":"String"},"state":{"type":"String"},"from":{"type":"String"},"to":{"type":"String"},"GSI1PK":{"type":"String"},"GSI1SK":{"type":"String","value":"${postal}#${from}"},"postal":{"type":"String"}},"phone":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"P#${number}"},"numType":{"type":"String"},"number":{"type":"String"},"from":{"type":"String"},"to":{"type":"String"},"details":{"type":"String"},"GSI1PK":{"type":"String","value":"${number}"},"GSI1SK":{"type":"String","value":"${from}"}},"call":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"P#${number}#${start}"},"number":{"type":"String"},"typeCode":{"type":"String"},"called":{"type":"String"},"start":{"type":"String"},"end":{"type":"String"},"details":{"type":"String"},"GSI1PK":{"type":"String"},"GSI1SK":{"type":"String","value":"${start}"}},"detail":{"type":{"type":"String"},"PK":{"type":"String"},"SK":{"type":"String","value":"P#${number}#${start}"},"headerId":{"type":"String"},"detailId":{"type":"String"},"duration":{"type":"String"},"cost":{"type":"String"},"start":{"type":"String"},"number":{"type":"String"},"end":{"type":"String"},"GSI1PK":{"type":"String"},"GSI1SK":{"type":"String","value":"${end}"}}},"queries":{}}}]} \ No newline at end of file diff --git a/static/files/visualizer/data/banking.json b/static/files/visualizer/data/banking.json new file mode 100644 index 0000000..e27b684 --- /dev/null +++ b/static/files/visualizer/data/banking.json @@ -0,0 +1,512 @@ +{ + "ModelName": "Online Banking", + "ModelMetadata": { + "Author": "", + "DateCreated": "2021-05-20T18:39:58.705Z", + "DateLastModified": "2021-05-20T18:39:58.705Z", + "Description": "", + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }, + "DataModel": [{ + "TableName": "data", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK", + "AttributeType": "S" + } + }, + "NonKeyAttributes": [{ + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "custType", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "acctType", + "AttributeType": "S" + }, { + "AttributeName": "balance", + "AttributeType": "S" + }, { + "AttributeName": "GSI1PK", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "acctId", + "AttributeType": "S" + }, { + "AttributeName": "timestamp", + "AttributeType": "S" + }, { + "AttributeName": "transId", + "AttributeType": "S" + }, { + "AttributeName": "transType", + "AttributeType": "S" + }, { + "AttributeName": "balance", + "AttributeType": "S" + }, { + "AttributeName": "amount", + "AttributeType": "S" + }, { + "AttributeName": "GSI1PK", + "AttributeType": "S" + }, { + "AttributeName": "GSI1SK", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "GSI1SK", + "AttributeType": "S" + }, { + "AttributeName": "dailies", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "pType", + "AttributeType": "S" + }, { + "AttributeName": "timestamp", + "AttributeType": "S" + }, { + "AttributeName": "pId", + "AttributeType": "S" + }, { + "AttributeName": "aId", + "AttributeType": "S" + }, { + "AttributeName": "GSI2PK", + "AttributeType": "S" + }, { + "AttributeName": "GSI2SK", + "AttributeType": "S" + }, { + "AttributeName": "type", + "AttributeType": "S" + }, { + "AttributeName": "GSI2PK", + "AttributeType": "S" + }, { + "AttributeName": "GSI2SK", + "AttributeType": "S" + }], + "GlobalSecondaryIndexes": [{ + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "GSI1PK", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "GSI1SK", + "AttributeType": "S" + } + }, + "IndexName": "GSI1", + "Projection": { + "ProjectionType": "ALL" + } + }, { + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "GSI2PK", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "GSI2SK", + "AttributeType": "S" + } + }, + "IndexName": "GSI2", + "Projection": { + "ProjectionType": "ALL" + } + }], + "TableData": [{ + "PK": { + "S": "C1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "customer" + }, + "custType": { + "S": "individual" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A1" + }, + "type": { + "S": "account" + }, + "acctType": { + "S": "checking" + }, + "balance": { + "S": "1900" + }, + "GSI1PK": { + "S": "C1" + }, + "GSI1SK": { + "S": "A1" + }, + "dailies": { + "S": "map" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A1#2021-05-20T18:46:50" + }, + "type": { + "S": "transaction" + }, + "acctId": { + "S": "A1" + }, + "timestamp": { + "S": "2021-05-20T18:46:50" + }, + "transId": { + "S": "T1" + }, + "transType": { + "S": "atm" + }, + "balance": { + "S": "1900" + }, + "amount": { + "S": "100" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A1#2021-05-20T18:47:59" + }, + "type": { + "S": "transaction" + }, + "acctId": { + "S": "A1" + }, + "timestamp": { + "S": "2021-05-20T18:47:59" + }, + "transId": { + "S": "T2" + }, + "transType": { + "S": "wire" + }, + "balance": { + "S": "1400" + }, + "amount": { + "S": "500" + }, + "GSI1PK": { + "S": "A1" + }, + "GSI1SK": { + "S": "2021-05-20T18:47:59" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A2" + }, + "type": { + "S": "account" + }, + "acctType": { + "S": "savings" + }, + "balance": { + "S": "5000" + }, + "GSI1PK": { + "S": "C1" + }, + "GSI1SK": { + "S": "A2" + }, + "dailies": { + "S": "map" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A2#2021-05-20T18:51:46" + }, + "type": { + "S": "transaction" + }, + "acctId": { + "S": "A2" + }, + "timestamp": { + "S": "2021-05-20T18:51:46" + }, + "transId": { + "S": "T3" + }, + "transType": { + "S": "deposit" + }, + "balance": { + "S": "5000" + }, + "amount": { + "S": "1000" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "purchase#2021-05-20T18:54:28#P1" + }, + "type": { + "S": "purchase" + }, + "pType": { + "S": "checks" + }, + "timestamp": { + "S": "2021-05-20T18:54:28" + }, + "pId": { + "S": "P1" + }, + "aId": { + "S": "A1" + }, + "GSI2PK": { + "S": "P1" + }, + "GSI2SK": { + "S": "2021-05-20T18:54:28" + } + }, { + "PK": { + "S": "C1" + }, + "SK": { + "S": "A1#2021-05-20T18:54:28" + }, + "type": { + "S": "transaction" + }, + "acctId": { + "S": "A1" + }, + "timestamp": { + "S": "2021-05-20T18:54:28" + }, + "transId": { + "S": "T4" + }, + "transType": { + "S": "purchase" + }, + "balance": { + "S": "1375" + }, + "amount": { + "S": "25" + }, + "GSI2PK": { + "S": "P1" + }, + "GSI2SK": { + "S": "2021-05-20T18:54:28" + } + }], + "ModelSchema": { + "indexes": { + "primary": { + "hash": "PK", + "sort": "SK" + }, + "GSI1": { + "hash": "GSI1PK", + "sort": "GSI1SK", + "projection": "ALL" + }, + "GSI2": { + "hash": "GSI2PK", + "sort": "GSI2SK", + "projection": "ALL" + } + }, + "models": { + "~new~": { + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "type": { + "type": "String" + } + }, + "customer": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "custType": { + "type": "String" + } + }, + "account": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String" + }, + "acctType": { + "type": "String" + }, + "balance": { + "type": "String" + }, + "GSI1PK": { + "type": "String", + "value": "${PK}" + }, + "GSI1SK": { + "type": "String" + }, + "dailies": { + "type": "String" + } + }, + "transaction": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String", + "value": "${acctId}#${timestamp}" + }, + "acctId": { + "type": "String" + }, + "timestamp": { + "type": "String" + }, + "transId": { + "type": "String" + }, + "transType": { + "type": "String" + }, + "balance": { + "type": "String" + }, + "amount": { + "type": "String" + }, + "GSI1PK": { + "type": "String", + "value": "${acctId}" + }, + "GSI1SK": { + "type": "String", + "value": "${timestamp}" + }, + "GSI2PK": { + "type": "String" + }, + "GSI2SK": { + "type": "String", + "value": "${timestamp}" + } + }, + "purchase": { + "type": { + "type": "String" + }, + "PK": { + "type": "String" + }, + "SK": { + "type": "String", + "value": "${type}#${timestamp}#${pId}" + }, + "pType": { + "type": "String" + }, + "timestamp": { + "type": "String" + }, + "pId": { + "type": "String" + }, + "aId": { + "type": "String" + }, + "GSI2PK": { + "type": "String", + "value": "${pId}" + }, + "GSI2SK": { + "type": "String", + "value": "${timestamp}" + } + } + }, + "queries": {} + } + }] +} \ No newline at end of file diff --git a/static/files/visualizer/favicon.ico b/static/files/visualizer/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..818948c33ad4536e1b95b4fd9553be6d8ffa41ec GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/MappingFunction.png b/static/files/visualizer/img/MappingFunction.png new file mode 100644 index 0000000000000000000000000000000000000000..b200c882431d8e19c6cccd564eddcfe58092f140 GIT binary patch literal 16132 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 R9Owd|t7&kjM8o#g{{m*~dWZl3 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/PK.png b/static/files/visualizer/img/PK.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c7e10ea8ec768f1b0ca637b61bd4e33be4dae3 GIT binary patch literal 1795 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/add.png b/static/files/visualizer/img/add.png new file mode 100644 index 0000000000000000000000000000000000000000..8ce2551ef72f3c137f7e36942230c22b1042df25 GIT binary patch literal 9501 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 liFzw!Jea`h+&bjVdSs1YbcmY&YRIDb( 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 bzB&9CG9F$z0adgM00000NkvXXu0mjf)}t?K literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/button1.png b/static/files/visualizer/img/button1.png new file mode 100644 index 0000000000000000000000000000000000000000..63cd3a54bb72da4255d62e51d64acf6043c6febf GIT binary patch literal 2249 zcmV;)2sZbLP)(*P4pg)a2jLo@T3vAnQV)55t9+{jL^b)a*oMG zJhEKQ9hgwWJDg`+Cae&K0gFPMI=$g^XiouM`fF(^6ezsq`vwdZY%l&QUFa`q()PW+ z@Avb0pYNadN??&cWRc?s7XdB>EOG{1A+X2=;7Wq75O9USB4@xA0*hP#t}5UP0apkt zat2%>@FoQylgR>`o11k~sq~E1Y7L#7oD2Z~FG5JaKp^P%^z`hal>SkzR{sM4=$r8E zjVNHtmMv?oR_jrV#gZ{LHYTuItuQe$0h5!H3?m@~+}zy2-Q68LJv~7v6n=B%%9S4~ z6bd(mLh;{84tg9)Kyq@jh!FCL*=+uq#bO~Aiv?zbe~|!zKrlmsx3@QVdwX{ag~IpM zYV~ag;dfjgke;6Y*3i(<*JiVM-SF@*jE;`N`1m;6`PHjeLqtRb1Ox=&ZiB&KfM?I1 z!R_0(!E82zhldAKf{%|6zRVhpM)ZG0Kx%60_swRr#$+-DBOnBiGMC9@uzB-l5Q*l- zLn(!xo*uY#=@LAC{Fsr0O2GNou3dA8T6te|`}Xa=9LIGSjmGGqp&>xouUfSV8u=3z4+3HWq(cf*AX7XZTom9TW_(y`9YP9fh);GF=eR9bB? z7;=n8BaDoUz?wB{VB5BBEXnzbM39r4Ytv>`RTahj@Z`x8P^nZ*J*WadKfnIKz`!3| zym-;X7ZEm{`7Vai($Y5Q_4;m%X^i`jkPyhs%wzyog@wVpnVELmJ5^apEu*8*+uO^O z;N|6oD!{z)VM|NPk?-QytLED6kUa*Il9HPAdVLD+J|?@IoE+wORAeM%?%MU7tq)5} z>F1|Uvt_qtWWc9YRWJE+{P=M?HZ}(B?d>cwrBz*_y)}0cmMz zAqIn?Pp{XrOdcB>3+vafhv48~*tc)rOLhti3TWBKA2a`UzxN*0ojp6JFA9Z%kx*Ax z$CTvn?+-yiLBDEhYO1mY&Yp4J2tZ>SHf*3Me@uLP_UvIb{piu7bJ{pmSV)hRl`$W) zcJBsNUEQ4XFckU+2B5RE6Ykx+$HG7?7B{xFwWZqw(AFH@2uMmws^>T^b8v7FcL-8b zQz0lY5Pp-NKc|fk4jrN&9XrPSlV@c?tx7eoFNKAL6#In6#zqzfVzGE!C=~j%wzgVr z0kk#F8vzoDq(i6EC1Ctx=8uVqfgi=hK-N^b`}EW)dh_PZ8Gr8FxdZJT9qe;-bTlL; zB+QH<$P*P6GrkoR6i_UWwY9aZFA$5xuyWpkh;$o^$Dw*#&+1XHY=FGgCaq!?lil;~n0nri>hy%q?UtgaZ z78ce|2>H8H5FnGuj_P!}4^XPu>u=qX;V4Rksko(J$m`Sr<@C(i*uJ0aweQz!s$Z`5k_BfVa~ z5*@}4P$H4ctAaX}ihkA5zBEpzDrH2hSg``~=V^#u<$PXV9;^S&&CP(MqN3KWUE5Pz zTl?9R{J(k~@c3I^L*Uk}TLJs`@7L%#F3M;!v9o>_P;S-;NzSI*N*lt^&YaLdYLp7d-C@zy&F#5rmNYm=IC6 zcrwJxjdknRvEBelz-Jnir-ug&nazOZbNZ4L-*gH|0F{6*Bmt8ozGnY1f;Yj~NJU3S|GTE9CYVzCCjb}+fHFdehEMPgC18pK3;*n3%v?&hShV5EK+N93LP5RH;;kQ%e6r2uY!oo&td1 z5kh+T2JdhJrX8k~1_8iNF*o3Ufkvaz%g@hG{vsesshSY7Ws1BSlso`*5JDXGKcU@q znGg0UrQUe>Lq!0<3IGTO03-*yIRgM-{p$jNzY;>8@L|)|8gG;UTh1)RxQl>=VBMK) zx)k6{yRi_yxD>DutUHrUmjaw=Hx|MdmjV`ob!W2aQh+n<#zOewQous6?o2ipy#oFN X$FYiTy_CY%00000NkvXXu0mjfBP1+s literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/data/Hospital.json b/static/files/visualizer/img/data/Hospital.json new file mode 100644 index 0000000..a4f64fa --- /dev/null +++ b/static/files/visualizer/img/data/Hospital.json @@ -0,0 +1,331 @@ +{ + "ModelName": "Hospital", + "ModelMetadata": { + "Author": "", + "DateCreated": "Nov 24, 2020, 08:00 PM", + "DateLastModified": "Nov 25, 2020, 12:03 PM", + "Description": "", + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }, + "DataModel": [{ + "TableName": "data", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK", + "AttributeType": "S", + "MapFunction": { + "treatment": "${timestamp}#${treatmentId}", + "admission": "${timestamp}#${roomId}" + } + } + }, + "NonKeyAttributes": [{ + "AttributeName": "type", + "AttributeType": "S" + }, + { + "AttributeName": "timestamp", + "AttributeType": "S" + }, + { + "AttributeName": "treatmentId", + "AttributeType": "S" + }, + { + "AttributeName": "roomId", + "AttributeType": "S" + }, + { + "AttributeName": "PK1", + "AttributeType": "S" + }, + { + "AttributeName": "SK1", + "AttributeType": "S" + }, + { + "AttributeName": "PK2", + "AttributeType": "S" + }, + { + "AttributeName": "SK2", + "AttributeType": "S" + }, + { + "AttributeName": "PK3", + "AttributeType": "S" + }, + { + "AttributeName": "SK3", + "AttributeType": "S" + }, + { + "AttributeName": "PK4", + "AttributeType": "S" + }, + { + "AttributeName": "SK4", + "AttributeType": "S" + }, + { + "AttributeName": "condition", + "AttributeType": "S" + } + ], + "GlobalSecondaryIndexes": [{ + "IndexName": "GSI1", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK1", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK1", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI2", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK2", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK2", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI3", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK3", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK3", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "GSI4", + "KeyAttributes": { + "PartitionKey": { + "AttributeName": "PK4", + "AttributeType": "S" + }, + "SortKey": { + "AttributeName": "SK4", + "AttributeType": "S" + } + }, + "Projection": { + "ProjectionType": "ALL" + } + } + ], + "TableData": [{ + "PK": { + "S": "P1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "patient" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#T1" + }, + "type": { + "S": "treatment" + }, + "timestamp": { + "S": "2020-11-25T12:00:00" + }, + "treatmentId": { + "S": "T11" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "hospitalId-T" + }, + "SK2": { + "S": "2020-11-25T12:00:00" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#M1" + }, + "type": { + "S": "medicine" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "hospitalId-M" + }, + "SK2": { + "S": "2020-11-25T12:00:00" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#R1" + }, + "type": { + "S": "admission" + }, + "timestamp": { + "S": "2020-11-25T12:00:00" + }, + "roomId": { + "S": "R1" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + }, + "PK2": { + "S": "normal" + }, + "SK2": { + "S": "2020-11-26T00:00:00" + }, + "PK3": { + "S": "R1" + }, + "SK3": { + "S": "2020-11-25T12:00:00" + }, + "PK4": { + "S": "hospitalId" + }, + "SK4": { + "S": "2020-11-25T12:00:00" + }, + "condition": { + "S": "minor trauma" + } + }, + { + "PK": { + "S": "D1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "doctor" + }, + "PK1": { + "S": "D1" + }, + "SK1": { + "S": "A" + }, + "PK2": { + "S": "specialty" + }, + "SK2": { + "S": "hospitalId" + } + }, + { + "PK": { + "S": "N1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "nurse" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "A" + } + }, + { + "PK": { + "S": "R1" + }, + "SK": { + "S": "A" + }, + "type": { + "S": "room" + }, + "PK3": { + "S": "R1" + }, + "SK3": { + "S": "A" + } + }, + { + "PK": { + "S": "P1" + }, + "SK": { + "S": "2020-11-25T12:00:00#A1" + }, + "type": { + "S": "activity" + }, + "PK1": { + "S": "N1" + }, + "SK1": { + "S": "2020-11-25T12:00:00" + } + } + ], + "DataAccess": { + "MySql": {} + } + }] +} \ No newline at end of file diff --git a/static/files/visualizer/img/delete.png b/static/files/visualizer/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a1831ccc28b0c55ec5745f62563b381ad83e62 GIT binary patch literal 27660 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/model1.png b/static/files/visualizer/img/model1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d5aeafd3e063cf58afaa47707341de21e34c28 GIT binary patch literal 70389 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 Y)`{oj1`+(niG1!o37I?TV!F@&53wcxmH+?% literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/model2.png b/static/files/visualizer/img/model2.png new file mode 100644 index 0000000000000000000000000000000000000000..079d3d95fd020777e8f8e96d9ad9dc2c5ddc2864 GIT binary patch literal 67399 zcmce7bySqy*EUFr(x5abh@gOUN{C2_(%p^H2t&irARW@(-QCU5-Q6+7(9O&@KF0HV z-}jI2UEd$ySqo+ji~HQ??6dc^c0|W$E zmc$1k1qZGD#m71dn{`Zgzy~i7@!q|!MV3W!kK-H70 zp_)BA_0$}6K*Pc8GNReRY|#g<5Az=t-#0w@fTV_3^dU3t89|SXhm}M-BjUH`y_W(I zHMWYa__$u=Z`Uv@o;?B6raeu1w&BJ-RoTHu{{N149P?&8+`q#oNXUrl?|783Y)h=D zs8~ul7a9;So?ExzUL2u7{rZtVWEM$60!der*sHVigH3>CeIgd+dl5qvlQ&vQo1OdA zR3D!hxImJ{Ny3oldw#6+m3@lRN9iAxS2676-Sq*mvc6{&`~4d5oeOH5qyT+)@48qx z-t80L&P3t&HU0h}U=qaW>@7M4u8Yp^H*VYt_DHDMUoVQTulow9-GQ4P~S; z>WXRcoa~f02@ItU=HeBq@|#^yXos}A)8u1V9K=~)O4m&$f4t`j{xBTvXTfL<_9xlwQ(| zVW|__hTAf3)ml;OWHyB!n?xkhh6bf%)YLNn&bs>4Ao}URU=Gal)iIC_>b5<7)G5A_R@^L`lf1LUNV1ro0RVDuxHj`@dL1-`u1?JM$2xC6#2}4z*D6~a zs|r*Wce*S)G{uI^9`bJKGuy z*?K_&JRJcwSuZ9mrPP!6j5l4Nbh)Ai=@O#OE<5|?oG6Bh^V5>BibHt<2){>y*vse6 zQ``*qTOSzYN_N*HWeYCSQg@gI761gU&LF+36#@T{ixzWXr^GhGC+Om2+{iIZ+TBoB zXY0$E&algz0@81qiM-LY;oQ%@Z_a#V=8ebb%tAkO{>0IS*1 zH-%~Psoo==KI@Yo^8+k@j!}_2Bmc>hoO5C5gYZ;q)oaK7R|OMaU!tA`cPxh_ckSB5 zjE>CYzTFkHy-Q3MkO2Uzl-E|uY@B9wBm#E>tCWvMwL|ommxpyfd=q>@+pRCIXBkwN zCWuAGAG+pBYh9eZq|yG2F>-m4 zK3wcvM~Wt647ZvCgf|-b(?$MB;ZFy~Bmy^1V@PDCiF^)O%4Qso7@G5Iy&uPv==5)I z`hO1=*0yBR()De1xs`>FmbmKB>O2%^9cP3i#i)Q%g#o1>N@BV2OTrkP2bpfk=GCT6Z5uTJyUAG89 zo-}1_jAl4uZS=PUM`xa|8#9Ek{{nZkEO?jnO^kvM@XvD10R+OQE zsw&!F2Zf8mwDatA7Oa-^MtDqyos%=8ERR?gtZf#0D85gcgVZr5(ZaVPo!!gF3Q65_ z+Fdz}dt9|Or;*RZmAcXTHOch)qD+|C@$A_rG7cI0$YxF)ZAumd*L8hB>0H+r>o4ZE zSKF?%=jA71g3lqeuXyt(ocpRJ9~p{Wzq?4AaXmk_+=dXlhk36whB}XpCU1^WN&bLP(>HQla#}f0U9Li|> zl^xZ)yQD>j-Gjxe`LYV9g@S}ju%p3J736S|CuXzFSxHt_c7&J@pceckkxxC42`i;7 zF5W3=UOxLWG_SneeX z2KF>cY-_q*4vX0yIlfy?hWje~lzsj*(0RZ?+V*vI{H1e+y!Cpj_fz#pl1{-hv4=!} zdjPLyxA%`13#?8!&33NZ<(@ z9dW{hQ{d1U5UVOp3H^IiZI7SR+K?ONgnsy@$A@|e3C?tDIunL9 z^8ygjoAhJ=%}=AYnfBbio+m=j4bG(faEl9Xyj&!ieZpvAV$yvb z&wE!@h}QtMQ_JZOE8b{*McyNDG^zTDf*%K+-#J#Yc7fBbG#PRyvcBqhg3u;lqK
o0SmgLIL8>psHwHct>N^U=7c-zxh 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/model3.png b/static/files/visualizer/img/model3.png new file mode 100644 index 0000000000000000000000000000000000000000..bffe521316e26567436aa8cb038f285bcd6b5259 GIT binary patch literal 70861 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/model4.png b/static/files/visualizer/img/model4.png new file mode 100644 index 0000000000000000000000000000000000000000..44fcc072226ee5dd5afeeb89dbd0fbc79e01f6ba GIT binary patch literal 71203 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%0A9E6g-#c^F^Ou&rXJ3#`9Q1!BLI`HVtu* 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

ZN4jcW9Np) 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

U{vdBp#@Nhfa}`}S3sW0X{vsxM_gPS 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/newTable.png b/static/files/visualizer/img/newTable.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a800e0ea0df59ebae1fffb532e3d0f3c829db4 GIT binary patch literal 56879 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

!@hV@8H(U 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 z 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 literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/swap.png b/static/files/visualizer/img/swap.png new file mode 100644 index 0000000000000000000000000000000000000000..72824b5386a38313e5e42acaf40a8ef7593a3ad6 GIT binary patch literal 4464 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 b{HmV&A~)r?Pv2AMB!x~}L!VFy*hKsf_Gm~e literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/tab.png b/static/files/visualizer/img/tab.png new file mode 100644 index 0000000000000000000000000000000000000000..637de17e88e7c70e1b8bfc60e9c2483884593c83 GIT binary patch literal 3846 zcmV+h5BczkP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D4x33tK~#8N?OS

nLd7Yl{e#-t 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 + + + + + + DynamoDB Data Modeler + + + + + + + + + + + + + + + + + + + + +

+

Amazon DynamoDB Data Modeler

+
☰ menu
+
+
+
+
+
+

Introduction

+

Welcome to the DynamoDB Data Modeler. This utility creates a data model with one or more virtual Tables, allowing users to visualize how relational data might be stored and indexed in DynamoDB in order to help design efficient schema for your application. The tool is fully compatible with the NoSQL Workbench for DynamoDB, and models generated by either tool are interchangeable. Any changes made in either tool can be easily exported and loaded into the other to facilitate collaboration with users who may be working in environments that do not allow installation of desktop applications like NoSQL Workbench for DynamoDB.

+ +

The data displayed by the DynamoDB Data Modeler is stored locally in memory as a collection of virtual Tables, allowing complex data models to be easily constructed and validated without requiring resources to be created in an AWS account space. Unlike other tools for visualizing data, both the DynamoDB Data Modeler online tool and the NoSQL Workbench for DynamoDB are designed specifically to model NoSQL data and do not assume that the items being displayed are homogenous in nature. The Table will display many types of items as a single aggregated view representing a DynamoDB data model.

+ +

Getting Started

+

+

To get started with a new model, select 'Create Model' from the options menu. To import an existing model use the 'Load Model' option. When 'Create Model' is selected you will be prompted to provide a Model Name, Author and Description and then asked to define the first Table in the Data Model. When a new Table is defined, the DynamoDB Data Modeler wiill build an empty Table with a single Item that looks similar to the following image:

+
+ +
+
+

Using the Amazon DynamoDB Data Modeler

+

Certain elements in the Table view are decorated with controls that can be used for the following actions:

+

Click the swap '' control to add a new Table or select an existing Table from the current Model to view.

+

Click the binoculars '' control to define and run a query against the sample data loaded in the modeler.

+

Click the back '' control to undo a change to the currently selected Table. The modeler caches up to 50 changes for each Table in the currently loaded Model. The change cache is cleared when a new Model is loaded.

+

Click the wrench '' control to switch to 'schema view' to edit attribute types and Value Templates. See 'Editing Schema' section below for details.

+

Click the sliders '' control to switch back to 'values view' and edit attribute values.

+

Click the plus '' control:

+
    +
  1. On the Table Name tab to create a new index:


  2. +
  3. In the Primary Key header cell to add a new partition:


  4. +
  5. In a Partition Key value cell to add a new item to a partition:


  6. +
  7. In a Sort Key value cell to add a new attribute to an Item:


  8. +
+

Finally, click the minus '' control:

+
    +
  1. In a Partition Key value cell to delete a partition and all Items in it:


  2. +
  3. In a Sort Key value cell to delete an Item:


  4. +
+

The following image shows a data model for tracking patients, room assignments, and treatments for a hospital resource scheduling service originally created in NoSQL Workbench for DynamoDB (Hospital.json):

+

+

Clicking the add '' symbol in the "Primary Key" field of the Table header will add a new Item to the bottom of the Table, as shown in the following image

+

+

Clicking the add '' symbol in an existing Partition Value cell or changing the PK value of a new or existing Partition will move or create Items in the specified Partition.

+

+ +

Changing the "type" attribute value will cause the Item to be annoted with attributes from the corresponding Item template:

+

+ + +

Clicking the add '' symbol in a Sort Key value cell will add a new attribute to the Item. When new attribtes are added to an existing Item the Attribute Name becomes editable:

+

+

When the attribute name is assigned, all objects of that type will be annotated with the new attribute:

+

+

The modeler uses custom code to maintain an editable HTML Table, and there are probably a few bugs that still need to be worked out. If you edit a model and something goes wrong you can hit the back arrow in the Attributes area of the Table header to undo up to 50 changes.

+

Item Types

+

All Items created by the DynamoDB Data Modeler have a "type" attribute added automatically, and the modeler maintains an attribute template for each unique Item type detected. As new Items are added to the tool they will inherit the template attributes for the specified Item type, and adding an attribute to any object will also update the template for that object type as well as cause other Items of that type to be annotated with the new attribute.

+

Context Menus

+

Every attribute on the table has a Context Menu that can be accessed via right click on the attribute value. The options available on the context menu differ depending on whether the attribute is the Partion Key, Sort Key, or generic.

+

Partition Key Menu

+

+

The Partition Key Context Menu contains the following options:

+
    +
  1. Add Item - Adds a new Item to the partition.
  2. +
  3. Paste Item - Adds a copied Item to the partition.
  4. +
  5. Delete Partition - Deletes all Items in this partition from the table.
  6. +
  7. Edit Value Template - Define a value template to generate the Partition Key value.
  8. +
  9. Move Up/Down - Change the position of the partition on the table.
  10. +
+

Sort Key Menu

+

+

The Sort Key Context Menu contains the following options:

+
    +
  1. Add Attribute - Adds a new Attribute to the Item.
  2. +
  3. Cut Item - Removes the Item from the Table and copies it to the clipboard.
  4. +
  5. Copy Item - Copies the Item to the clipboard.
  6. +
  7. Delete Item - Removes the Item from the Table.
  8. +
  9. Edit Value Template - Define a value template to generate the Sort Key value.
  10. +
  11. Generate Value - Inserts either an ISO Date or UUID string as the Sort Key value.
  12. +
+

Attribute Menu

+

+

The Attribute Context Menu contains the following options:

+
    +
  1. Delete Attribute - Removes the Attribute from the Item.
  2. +
  3. Cut Item - Removes the Item from the Table and copies it to the clipboard.
  4. +
  5. Edit Value Template - Define a value template to generate the Attribute value.
  6. +
  7. Generate Value - Inserts either an ISO Date or UUID string as the Attribute value.
  8. +
+
+

Schema View

+

Toggling the wrench '' icon on the right of the table will display the Schema Models of the object types associated with the sample data. When displaying the "Schema" view, the attribute types and values templates are displayed instead of the table values. Click the sliders '' icon to return the Data View.

+


+

Value Templates

+

Attributes can be assigned value templates to generate values. Value templates are associated to Attributes by Item type. When an Item is created or modified the type of the Item will determine any value templates that should be used to generate Attribute values. Value Templates can be assigned directly by editing values in the "Schema" view or via dialog by selecting the "Edit Value Template" option from the context menu. Assigning a Value Template to an attribute will apply the template to all Items of the same model type.

+

Currently the only operation supported for value template is concatenation of other Attributes into a composite attribute. To combine Attribute values simply reference the attribute name using '${name}' as shown in the screenshot. Any text outside of the '${}' syntax will appear as typed in the final value. In the model defined below the Value Template for the Item attribute 'SK' of the 'treatment' Schema Model is defined as follows:
+
"${timestamp}#${treatmentId}"

+ This will cause the modeler to generate an 'SK' attribute with a value similar to "2020-11-25T12:00:00#T1" using the values of the 'timestamp' and 'treatmentId' attributes for any Item with a 'type' value of 'treatment'.

+


+ + +

OneTable Integration

+

If you use OneTable you can now import and export your schema files to/from the DynamoDB Modeler using the convenient links on the Side Panel menu. To import, simply click the import link and specify the location of your OneTable json or javascript schema file. The modeler will convert any data objects from OneTable format and load all the ValueTemplates and Shema models defined in the OneTable schema. After the schema is imported you will be able to create Items using OneTable model types. Exported schemas are saved to a file in a multi-line JSON format.

+

That should be enough to get you going. Click the '☰ menu' icon in the upper right corner to import an existing model from NoSQL Workbench for DynamoDB or use the modeler to build a data model for your DynamoDB Table from scratch.

+

Have ideas or feature requests? Create an issue on GitHub Amazon DynamoDB Labs and let us know!

+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + diff --git a/static/files/visualizer/js/aws-sdk-2.892.0.min.js b/static/files/visualizer/js/aws-sdk-2.892.0.min.js new file mode 100644 index 0000000..2f06bbc --- /dev/null +++ b/static/files/visualizer/js/aws-sdk-2.892.0.min.js @@ -0,0 +1,8 @@ +_xamzrequire=function(){function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){return i(t[s][1][e]||e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s=0||r.indexOf("fips")>=0)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"ARN endpoint is not compatible with FIPS region"});if(!t&&r!==s)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"Configured region conflicts with access point region"});if(t&&i.getEndpointSuffix(r)!==i.getEndpointSuffix(s))throw n.util.error(new Error,{code:"InvalidConfiguration",message:"Configured region and access point region not in same partition"});if(e.service.config.useAccelerateEndpoint)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"useAccelerateEndpoint config is not supported with access point ARN"});if("s3-outposts"===e._parsedArn.service&&e.service.config.useDualstack)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"useDualstack config is not supported with outposts access point ARN"})},loadUseArnRegionConfig:function(e){var t="AWS_S3_USE_ARN_REGION",i="s3_use_arn_region",o=!0,s=e.service._originalConfig||{};if(void 0!==e.service.config.s3UseArnRegion)return e.service.config.s3UseArnRegion;if(void 0!==s.s3UseArnRegion)o=!0===s.s3UseArnRegion;else if(n.util.isNode())if(r.env[t]){var a=r.env[t].trim().toLowerCase();if(["false","true"].indexOf(a)<0)throw n.util.error(new Error,{code:"InvalidConfiguration",message:t+" only accepts true or false. Got "+r.env[t],retryable:!1});o="true"===a}else{var u={},c={};try{u=n.util.getProfilesFromSharedConfig(n.util.iniLoader),c=u[r.env.AWS_PROFILE||n.util.defaultProfile]}catch(e){}if(c[i]){if(["false","true"].indexOf(c[i].trim().toLowerCase())<0)throw n.util.error(new Error,{code:"InvalidConfiguration",message:i+" only accepts true or false. Got "+c[i],retryable:!1});o="true"===c[i].trim().toLowerCase()}}return e.service.config.s3UseArnRegion=o,o},validatePopulateUriFromArn:function(e){if(e.service._originalConfig&&e.service._originalConfig.endpoint)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"Custom endpoint is not compatible with access point ARN"});if(e.service.config.s3ForcePathStyle)throw n.util.error(new Error,{code:"InvalidConfiguration",message:"Cannot construct path-style endpoint with access point"})},dnsCompatibleBucketName:function(e){var t=e,r=new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/),n=new RegExp(/(\d+\.){3}\d+/),i=new RegExp(/\.\./);return!(!t.match(r)||t.match(n)||t.match(i))}};t.exports=o}).call(this)}).call(this,e("_process"))},{"../core":39,"../region_config":82,_process:8}],106:[function(e,t,r){var n=e("../core"),i={setupRequestListeners:function(e,t,r){if(-1!==r.indexOf(t.operation)&&t.params.SourceRegion)if(t.params=n.util.copy(t.params),t.params.PreSignedUrl||t.params.SourceRegion===e.config.region)delete t.params.SourceRegion;else{var o=!!e.config.paramValidation;o&&t.removeListener("validate",n.EventListeners.Core.VALIDATE_PARAMETERS),t.onAsync("validate",i.buildCrossRegionPresignedUrl),o&&t.addListener("validate",n.EventListeners.Core.VALIDATE_PARAMETERS)}},buildCrossRegionPresignedUrl:function(e,t){var r=n.util.copy(e.service.config);r.region=e.params.SourceRegion,delete e.params.SourceRegion,delete r.endpoint,delete r.params,r.signatureVersion="v4";var i=e.service.config.region,o=new e.service.constructor(r),s=o[e.operation](n.util.copy(e.params));s.on("build",function(e){var t=e.httpRequest;t.params.DestinationRegion=i,t.body=n.util.queryParamsToString(t.params)}),s.presign(function(r,n){r?t(r):(e.params.PreSignedUrl=n,t())})}};t.exports=i},{"../core":39}],38:[function(e,t,r){(function(r){(function(){function n(e,t){if("string"==typeof e){if(["legacy","regional"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw o.util.error(new Error,t)}}function i(e,t){e=e||{};var i;if(e[t.clientConfig]&&(i=n(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return i;if(!o.util.isNode())return i;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(i=n(r.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+r.env[t.env]+'".'}))return i}var s={};try{s=o.util.getProfilesFromSharedConfig(o.util.iniLoader)[r.env.AWS_PROFILE||o.util.defaultProfile]}catch(e){}if(s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)){if(i=n(s[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+s[t.sharedConfig]+'".'}))return i}return i}var o=e("./core");t.exports=i}).call(this)}).call(this,e("_process"))},{"./core":39,_process:8}],39:[function(e,t,r){var n={util:e("./util")};({}).toString(),t.exports=n,n.util.update(n,{VERSION:"2.892.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),n.events=new n.SequentialExecutor,n.util.memoizedProperty(n,"endpointCache",function(){return new n.EndpointCache(n.config.endpointCacheSize)},!0)},{"../vendor/endpoint-cache":130,"./api_loader":27,"./config":37,"./event_listeners":60,"./http":61,"./json/builder":63,"./json/parser":64,"./model/api":65,"./model/operation":67,"./model/paginator":68,"./model/resource_waiter":69,"./model/shape":70,"./param_validator":71,"./protocol/json":74,"./protocol/query":75,"./protocol/rest":76,"./protocol/rest_json":77,"./protocol/rest_xml":78,"./request":84,"./resource_waiter":85,"./response":86,"./sequential_executor":88,"./service":89,"./signers/request_signer":115,"./util":123,"./xml/builder":125}],130:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./utils/LRU"),i=1e3,o=function(){function e(e){void 0===e&&(e=i),this.maxSize=e,this.cache=new n.LRUCache(e)}return Object.defineProperty(e.prototype,"size",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,r){var n="string"!=typeof t?e.getKeyString(t):t,i=this.populateValue(r);this.cache.put(n,i)},e.prototype.get=function(t){var r="string"!=typeof t?e.getKeyString(t):t,n=Date.now(),i=this.cache.get(r);if(i)for(var o=0;o0||n?o.toString():""},t.exports=n},{"../util":123,"./xml-node":128,"./xml-text":129}],129:[function(e,t,r){function n(e){this.value=e}var i=e("./escape-element").escapeElement;n.prototype.toString=function(){return i(""+this.value)},t.exports={XmlText:n}},{"./escape-element":127}],127:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(//g,">")}t.exports={escapeElement:n}},{}],128:[function(e,t,r){function n(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e("./escape-attribute").escapeAttribute;n.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},n.prototype.addChildNode=function(e){return this.children.push(e),this},n.prototype.removeAttribute=function(e){return delete this.attributes[e],this},n.prototype.toString=function(){for(var e=Boolean(this.children.length),t="<"+this.name,r=this.attributes,n=0,o=Object.keys(r);n"+this.children.map(function(e){return e.toString()}).join("")+"":"/>"},t.exports={XmlNode:n}},{"./escape-attribute":126}],126:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(//g,">").replace(/"/g,""")}t.exports={escapeAttribute:n}},{}],115:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),n.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return n.Signers.V2;case"v3":return n.Signers.V3;case"s3v4":case"v4":return n.Signers.V4;case"s3":return n.Signers.S3;case"v3https":return n.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":39,"./presign":114,"./s3":116,"./v2":117,"./v3":118,"./v3https":119,"./v4":120}],120:[function(e,t,r){var n=e("../core"),i=e("./v4_credentials"),o=n.util.inherit;n.Signers.V4=o(n.Signers.RequestSigner,{constructor:function(e,t,r){n.Signers.RequestSigner.call(this,e),this.serviceName=t,r=r||{},this.signatureCache="boolean"!=typeof r.signatureCache||r.signatureCache,this.operation=r.operation,this.signatureVersion=r.signatureVersion},algorithm:"AWS4-HMAC-SHA256",addAuthorization:function(e,t){var r=n.util.date.iso8601(t).replace(/[:\-]|\.\d{3}/g,"");this.isPresigned()?this.updateForPresigned(e,r):this.addHeaders(e,r),this.request.headers.Authorization=this.authorization(e,r)},addHeaders:function(e,t){this.request.headers["X-Amz-Date"]=t,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken)},updateForPresigned:function(e,t){var r=this.credentialString(t),i={"X-Amz-Date":t,"X-Amz-Algorithm":this.algorithm,"X-Amz-Credential":e.accessKeyId+"/"+r,"X-Amz-Expires":this.request.headers["presigned-expires"],"X-Amz-SignedHeaders":this.signedHeaders()};e.sessionToken&&(i["X-Amz-Security-Token"]=e.sessionToken),this.request.headers["Content-Type"]&&(i["Content-Type"]=this.request.headers["Content-Type"]),this.request.headers["Content-MD5"]&&(i["Content-MD5"]=this.request.headers["Content-MD5"]),this.request.headers["Cache-Control"]&&(i["Cache-Control"]=this.request.headers["Cache-Control"]),n.util.each.call(this,this.request.headers,function(e,t){if("presigned-expires"!==e&&this.isSignableHeader(e)){var r=e.toLowerCase();0===r.indexOf("x-amz-meta-")?i[r]=t:0===r.indexOf("x-amz-")&&(i[e]=t)}});var o=this.request.path.indexOf("?")>=0?"&":"?";this.request.path+=o+n.util.queryParamsToString(i)},authorization:function(e,t){var r=[],n=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+n),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return n.util.crypto.hmac(r,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&"s3v4"!==this.signatureVersion&&(t=n.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];n.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),f},emptyCache:function(){i={},o=[]}}},{"../core":39}],119:[function(e,t,r){var n=e("../core"),i=n.util.inherit;e("./v3"),n.Signers.V3Https=i(n.Signers.V3,{authorization:function(e){return"AWS3-HTTPS AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,Signature="+this.signature(e)},stringToSign:function(){return this.request.headers["X-Amz-Date"]}}),t.exports=n.Signers.V3Https},{"../core":39,"./v3":118}],118:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V3=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){var r=n.util.date.rfc822(t);this.request.headers["X-Amz-Date"]=r,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken),this.request.headers["X-Amzn-Authorization"]=this.authorization(e,r)},authorization:function(e){return"AWS3 AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,SignedHeaders="+this.signedHeaders()+",Signature="+this.signature(e)},signedHeaders:function(){var e=[];return n.util.arrayEach(this.headersToSign(),function(t){e.push(t.toLowerCase())}),e.sort().join(";")},canonicalHeaders:function(){var e=this.request.headers,t=[];return n.util.arrayEach(this.headersToSign(),function(r){t.push(r.toLowerCase().trim()+":"+String(e[r]).trim())}),t.sort().join("\n")+"\n"},headersToSign:function(){var e=[];return n.util.each(this.request.headers,function(t){("Host"===t||"Content-Encoding"===t||t.match(/^X-Amz/i))&&e.push(t)}),e},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push("/"),e.push(""),e.push(this.canonicalHeaders()),e.push(this.request.body),n.util.crypto.sha256(e.join("\n"))}}),t.exports=n.Signers.V3},{"../core":39}],117:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V2=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){t||(t=n.util.date.getDate());var r=this.request;r.params.Timestamp=n.util.date.iso8601(t),r.params.SignatureVersion="2",r.params.SignatureMethod="HmacSHA256",r.params.AWSAccessKeyId=e.accessKeyId,e.sessionToken&&(r.params.SecurityToken=e.sessionToken),delete r.params.Signature,r.params.Signature=this.signature(e),r.body=n.util.queryParamsToString(r.params),r.headers["Content-Length"]=r.body.length},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push(this.request.endpoint.host.toLowerCase()),e.push(this.request.pathname()),e.push(n.util.queryParamsToString(this.request.params)),e.join("\n")}}),t.exports=n.Signers.V2},{"../core":39}],116:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.S3=i(n.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=n.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];n.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()604800){throw o.util.error(new Error,{code:"InvalidExpiryTime",message:"Presigning does not support expiry time greater than a week with SigV4 signing.",retryable:!1})}e.httpRequest.headers[a]=t}else{if(r!==o.Signers.S3)throw o.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var n=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(n)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=o.util.urlParse(e.httpRequest.path),n={};r.search&&(n=o.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),n.Signature=i.pop(),n.AWSAccessKeyId=i.join(":"),o.util.each(e.httpRequest.headers,function(e,t){e===a&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete n[e],e=e.toLowerCase()),n[e]=t}),delete e.httpRequest.headers[a],delete n.Authorization,delete n.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var s=i.join(" "),u=s.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];n["X-Amz-Signature"]=u,delete n.Expires}t.pathname=r.pathname,t.search=o.util.queryParamsToString(n)}var o=e("../core"),s=o.util.inherit,a="presigned-expires";o.Signers.Presign=s({sign:function(e,t,r){if(e.httpRequest.headers[a]=t||3600,e.on("build",n),e.on("sign",i),e.removeListener("afterBuild",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",o.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,o.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=o.Signers.Presign},{"../core":39}],89:[function(e,t,r){(function(r){(function(){var n=e("./core"),i=e("./model/api"),o=e("./region_config"),s=n.util.inherit,a=0;n.Service=s({constructor:function(e){if(!this.loadServiceClass)throw n.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=n.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=n.config[this.serviceIdentifier];if(this.config=new n.Config(n.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),n.SequentialExecutor.call(this),n.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||n.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",function(e){r.nextTick(function(){i.eventHandler(e)})}),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",function(e){r.nextTick(function(){i.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(n.util.isEmpty(this.api)){if(t.apiConfig)return n.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new n.Config(n.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&n.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?n.util.isType(e,Date)&&(e=n.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if("function"!=typeof e)throw new Error("Invalid callback type '"+typeof e+"' provided in customizeRequests");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,r){if("function"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=n.util.copy(t),n.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var o=new n.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),r&&o.send(r),o},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var n=this.makeRequest(e,t).toUnauthenticated();return r?n.send(r):n},waitFor:function(e,t,r){return new n.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[n.events,n.EventListeners.Core,this.serviceInterface(),n.EventListeners.CorePost],r=0;r299?(i.code&&(r.FinalAwsException=i.code),i.message&&(r.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(r.FinalSdkException=i.code||i.name),i.message&&(r.FinalSdkExceptionMessage=i.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},n=e.response;return n.httpResponse.statusCode&&(r.HttpStatusCode=n.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),n.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(r.SessionToken=e.httpRequest.headers["x-amz-security-token"]),n.httpResponse.headers["x-amzn-requestid"]&&(r.XAmznRequestId=n.httpResponse.headers["x-amzn-requestid"]), +n.httpResponse.headers["x-amz-request-id"]&&(r.XAmzRequestId=n.httpResponse.headers["x-amz-request-id"]),n.httpResponse.headers["x-amz-id-2"]&&(r.XAmzId2=n.httpResponse.headers["x-amz-id-2"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,n=r.error;return r.httpResponse.statusCode>299?(n.code&&(t.AwsException=n.code),n.message&&(t.AwsExceptionMessage=n.message)):((n.code||n.name)&&(t.SdkException=n.code||n.name),n.message&&(t.SdkExceptionMessage=n.message)),t},attachMonitoringEmitter:function(e){var t,r,i,o,s,a,u=0,c=this;e.on("validate",function(){o=n.util.realClock.now(),a=Date.now()},!0),e.on("sign",function(){r=n.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,u++},!0),e.on("validateResponse",function(){i=Math.round(n.util.realClock.now()-r)}),e.addNamedListener("API_CALL_ATTEMPT","success",function(){var r=c.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=i>=0?i:0,r.Region=s,c.emit("apiCallAttempt",[r])}),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",function(){var o=c.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(n.util.realClock.now()-r),o.AttemptLatency=i>=0?i:0,o.Region=s,c.emit("apiCallAttempt",[o])}),e.addNamedListener("API_CALL","complete",function(){var t=c.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=a;var r=Math.round(n.util.realClock.now()-o);t.Latency=r>=0?r:0;var i=e.response;i.error&&i.error.retryable&&"number"==typeof i.retryCount&&"number"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),c.emit("apiCall",[t])}})},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){var t,r=null,i="";if(e){r=(e.service.api.operations||{})[e.operation]||null,i=r?r.authtype:""}return t=this.config.signatureVersion?this.config.signatureVersion:"v4"===i||"v4-unsigned-body"===i?"v4":this.api.signatureVersion,n.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return n.EventListeners.Query;case"json":return n.EventListeners.Json;case"rest-json":return n.EventListeners.RestJson;case"rest-xml":return n.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return n.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":case"EC2ThrottledException":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new n.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw n.util.error(i,"No pagination configuration for "+e)}return null}return r}}),n.util.update(n.Service,{defineMethods:function(e){n.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){"none"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){n.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=s(n.Service,r||{});if("string"==typeof e){n.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,n.Service.defineMethods(i);if(n.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&n.util.clientSideMonitoring){var a=n.util.clientSideMonitoring.Publisher,u=n.util.clientSideMonitoring.configProvider,c=u();this.prototype.publisher=new a(c),c.enabled&&(n.Service._clientSideMonitoring=!0)}return n.SequentialExecutor.call(i.prototype),n.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){u=!0;var c=0}var l=function(){u&&c!==a?i.emit("error",n.util.error(new Error("Stream content length mismatch. Received "+c+" of "+a+" bytes."),{code:"StreamContentLengthMismatch"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit("end")},h=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(u){var p=new e.PassThrough;p._write=function(t){return t&&t.length&&(c+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},p.on("end",l),i.on("error",function(e){u=!1,h.unpipe(p),p.emit("end"),p.end()}),h.pipe(p).pipe(i,{end:!1})}else h.pipe(i);else u&&h.on("data",function(e){e&&e.length&&(c+=e.length)}),h.on("data",function(e){i.emit("data",e)}),h.on("end",l);h.on("error",function(e){u=!1,i.emit("error",e)})}}),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",n.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent("promise"),new e(function(e,r){t.on("complete",function(t){t.error?r(t.error):e(Object.defineProperty(t.data||{},"$response",{value:t}))}),t.runTo()})}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this)}).call(this,e("_process"))},{"./core":39,"./state_machine":122,_process:8,jmespath:7}],122:[function(e,t,r){function n(e,t){this.currentState=t||null,this.states=e||{}}n.prototype.runTo=function(e,t,r,n){"function"==typeof e&&(n=r,r=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(r||i,n,function(n){if(n){if(!o.fail)return t?t.call(r,n):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(r):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(r,n):null;i.runTo(e,t,r,n)})},n.prototype.addState=function(e,t,r,n){return"function"==typeof t?(n=t,t=null,r=null):"function"==typeof r&&(n=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:n},this},t.exports=n},{}],71:[function(e,t,r){var n=e("./core");n.ParamValidator=n.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,r){if(this.errors=[],this.validateMember(e,t||{},r||"params"),this.errors.length>1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,n.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(n.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var n,i=0;e.required&&i= 1, but found "'+t+'" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+r))},validateRange:function(e,t,r,n){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+n+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var o=!1,s=0;s=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();i.util.computeSha256(o,function(r,n){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=n,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=n(e),r=i.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var o=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=o}catch(n){if(r&&r.isStreaming){if(r.requiresLength)throw n;if(t.indexOf("unsigned-body")>=0)return void(e.httpRequest.headers["Transfer-Encoding"]="chunked");throw n}throw n}}),e("SET_HTTP_HOST","afterBuild",function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host}),e("RESTART","restart",function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new i.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(e){e?t(e):s()}):s()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r,n){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=n,r.httpResponse.headers=t,r.httpResponse.body=i.util.buffer.toBuffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var o=t.date||t.Date,s=r.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(i.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],n={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[n,t])}t.httpResponse.buffers.push(i.util.buffer.toBuffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=i.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new i.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,r)):t()})}),CorePost:(new o).addNamedListeners(function(e){e("EXTRACT_REQUEST_ID","extractData",i.util.extractRequestId),e("EXTRACT_REQUEST_ID","extractError",i.util.extractRequestId),e("ENOTFOUND_ERROR","httpError",function(e){if("NetworkingError"===e.code&&function(e){return"ENOTFOUND"===e.errno||"number"==typeof e.errno&&"function"==typeof i.util.getSystemErrorName&&["EAI_NONAME","EAI_NODATA"].indexOf(i.util.getSystemErrorName(e.errno)>=0)}(e)){var t="Inaccessible host: `"+e.hostname+"'. This service may not be available in the `"+e.region+"' region.";this.response.error=i.util.error(new Error(t),{code:"UnknownEndpoint",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}})}),Logger:(new o).addNamedListeners(function(t){t("LOG_REQUEST","complete",function(t){function r(e,t){if(!t)return t;if(e.isSensitive)return"***SensitiveInformation***";switch(e.type){case"structure":var n={};return i.util.each(t,function(t,i){Object.prototype.hasOwnProperty.call(e.members,t)?n[t]=r(e.members[t],i):n[t]=i}),n;case"list":var o=[];return i.util.arrayEach(t,function(t,n){o.push(r(e.member,t))}),o;case"map":var s={};return i.util.each(t,function(t,n){s[t]=r(e.value,n)}),s;default:return t}}var n=t.request,o=n.service.config.logger;if(o){var s=function(){var s=t.request.service.getSkewCorrectedDate().getTime(),a=(s-n.startTime.getTime())/1e3,u=!!o.isTTY,c=t.httpResponse.statusCode,l=n.params;if(n.service.api.operations&&n.service.api.operations[n.operation]&&n.service.api.operations[n.operation].input){l=r(n.service.api.operations[n.operation].input,n.params)}var h=e("util").inspect(l,!0,null),p="";return u&&(p+=""),p+="[AWS "+n.service.serviceIdentifier+" "+c,p+=" "+a.toString()+"s "+t.retryCount+" retries]",u&&(p+=""),p+=" "+i.util.string.lowerFirst(n.operation),p+="("+h+")",u&&(p+=""),p}();"function"==typeof o.log?o.log(s):"function"==typeof o.write&&o.write(s+"\n")}})}),Json:(new o).addNamedListeners(function(t){var r=e("./protocol/json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Rest:(new o).addNamedListeners(function(t){var r=e("./protocol/rest");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestJson:(new o).addNamedListeners(function(t){var r=e("./protocol/rest_json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestXml:(new o).addNamedListeners(function(t){var r=e("./protocol/rest_xml");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Query:(new o).addNamedListeners(function(t){var r=e("./protocol/query");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)})}},{"./core":39,"./discover_endpoint":47,"./protocol/json":74,"./protocol/query":75,"./protocol/rest":76,"./protocol/rest_json":77,"./protocol/rest_xml":78,"./sequential_executor":88,util:20}],88:[function(e,t,r){var n=e("./core");n.SequentialExecutor=n.util.inherit({constructor:function(){this._events={}},listeners:function(e){return this._events[e]?this._events[e].slice(0):[]},on:function(e,t,r){return this._events[e]?r?this._events[e].unshift(t):this._events[e].push(t):this._events[e]=[t],this},onAsync:function(e,t,r){return t._isAsync=!0,this.on(e,t,r)},removeListener:function(e,t){var r=this._events[e];if(r){for(var n=r.length,i=-1,o=0;o-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var n=this.listeners(e),i=n.length;return this.callListeners(n,t,r),i>0},callListeners:function(e,t,r,i){function o(i){if(i&&(a=n.util.error(a||new Error,i),s._haltHandlersOnError))return r.call(s,a);s.callListeners(e,t,r,a)}for(var s=this,a=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(s,t.concat([o]));try{u.apply(s,t)}catch(e){a=n.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void r.call(s,a)}r.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),n.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),n.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,n){return this[e]=r,this.addListener(t,r,n),this},addNamedAsyncListener:function(e,t,r,n){return r._isAsync=!0,this.addNamedListener(e,t,r,n)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),n.SequentialExecutor.prototype.addListener=n.SequentialExecutor.prototype.on,t.exports=n.SequentialExecutor},{"./core":39}],78:[function(e,t,r){function n(e){var t=e.service.api.operations[e.operation].input,r=new a.XML.Builder,n=e.params,i=t.payload;if(i){var o=t.members[i];if(void 0===(n=n[i]))return;if("structure"===o.type){var s=o.name;e.httpRequest.body=r.toXML(n,o,s,!0)}else e.httpRequest.body=n}else e.httpRequest.body=r.toXML(n,t,t.name||t.shape||u.string.upperFirst(e.operation)+"Request")}function i(e){c.buildRequest(e),["GET","HEAD"].indexOf(e.httpRequest.method)<0&&n(e)}function o(e){c.extractError(e);var t;try{t=(new a.XML.Parser).parse(e.httpResponse.body.toString())}catch(r){t={Code:e.httpResponse.statusCode,Message:e.httpResponse.statusMessage}}t.Errors&&(t=t.Errors),t.Error&&(t=t.Error),t.Code?e.error=u.error(new Error,{code:t.Code,message:t.Message}):e.error=u.error(new Error,{code:e.httpResponse.statusCode,message:null})}function s(e){c.extractData(e);var t,r=e.request,n=e.httpResponse.body,i=r.service.api.operations[r.operation],o=i.output,s=(i.hasEventOutput,o.payload);if(s){var l=o.members[s];l.isEventStream?(t=new a.XML.Parser,e.data[s]=u.createEventStream(2===a.HttpClient.streamsApiVersion?e.httpResponse.stream:e.httpResponse.body,t,l)):"structure"===l.type?(t=new a.XML.Parser,e.data[s]=t.parse(n.toString(),l)):"binary"===l.type||l.isStreaming?e.data[s]=n:e.data[s]=l.toType(n)}else if(n.length>0){t=new a.XML.Parser;var h=t.parse(n.toString(),o);u.update(e.data,h)}}var a=e("../core"),u=e("../util"),c=e("./rest");t.exports={buildRequest:i,extractError:o,extractData:s}},{"../core":39,"../util":123,"./rest":76}],77:[function(e,t,r){function n(e){var t=new h,r=e.service.api.operations[e.operation].input;if(r.payload){var n={},o=r.members[r.payload];if(void 0===(n=e.params[r.payload]))return;"structure"===o.type?(e.httpRequest.body=t.build(n,o),i(e)):(e.httpRequest.body=n,("binary"===o.type||o.isStreaming)&&i(e,!0))}else{var s=t.build(e.params,r);"{}"===s&&"GET"===e.httpRequest.method||(e.httpRequest.body=s),i(e)}}function i(e,t){var r=e.service.api.operations[e.operation];r.input;if(!e.httpRequest.headers["Content-Type"]){var n=t?"binary/octet-stream":"application/json";e.httpRequest.headers["Content-Type"]=n}}function o(e){c.buildRequest(e),["HEAD","DELETE"].indexOf(e.httpRequest.method)<0&&n(e)}function s(e){l.extractError(e)}function a(e){c.extractData(e);var t,r=e.request,n=r.service.api.operations[r.operation],i=r.service.api.operations[r.operation].output||{};n.hasEventOutput;if(i.payload){var o=i.members[i.payload],s=e.httpResponse.body;if(o.isEventStream)t=new p,e.data[payload]=u.createEventStream(2===AWS.HttpClient.streamsApiVersion?e.httpResponse.stream:s,t,o);else if("structure"===o.type||"list"===o.type){var t=new p;e.data[i.payload]=t.parse(s,o)}else"binary"===o.type||o.isStreaming?e.data[i.payload]=s:e.data[i.payload]=o.toType(s)}else{var a=e.data;l.extractData(e),e.data=u.merge(a,e.data)}}var u=e("../util"),c=e("./rest"),l=e("./json"),h=e("../json/builder"),p=e("../json/parser");t.exports={buildRequest:o,extractError:s,extractData:a}},{"../json/builder":63,"../json/parser":64,"../util":123,"./json":74,"./rest":76}],76:[function(e,t,r){function n(e){e.httpRequest.method=e.service.api.operations[e.operation].httpMethod}function i(e,t,r,n){var i=[e,t].join("/");i=i.replace(/\/+/g,"/");var o={},s=!1;if(l.each(r.members,function(e,t){var r=n[e];if(null!==r&&void 0!==r)if("uri"===t.location){var a=new RegExp("\\{"+t.name+"(\\+)?\\}");i=i.replace(a,function(e,t){return(t?l.uriEscapePath:l.uriEscape)(String(r))})}else"querystring"===t.location&&(s=!0,"list"===t.type?o[t.name]=r.map(function(e){return l.uriEscape(t.member.toWireFormat(e).toString())}):"map"===t.type?l.each(r,function(e,t){Array.isArray(t)?o[e]=t.map(function(e){return l.uriEscape(String(e))}):o[e]=l.uriEscape(String(t))}):o[t.name]=l.uriEscape(t.toWireFormat(r).toString()))}),s){i+=i.indexOf("?")>=0?"&":"?";var a=[];l.arrayEach(Object.keys(o).sort(),function(e){Array.isArray(o[e])||(o[e]=[o[e]]);for(var t=0;t-1?t||"":t,this.isJsonValue?JSON.parse(t):t&&"function"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function p(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function f(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function d(){o.apply(this,arguments),this.toType=function(e){var t=y.base64.decode(e);if(this.isSensitive&&y.isNode()&&"function"==typeof y.Buffer.alloc){var r=y.Buffer.alloc(t.length,t);t.fill(0),t=r}return t},this.toWireFormat=y.base64.encode}function m(){d.apply(this,arguments)}function v(){o.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var g=e("./collection"),y=e("../util");o.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},o.types={structure:a,list:u,map:c,boolean:v,timestamp:l,float:p,integer:f,string:h,base64:m,binary:d},o.resolve=function(e,t){if(e.shape){var r=t.api.shapes[e.shape];if(!r)throw new Error("Cannot find shape reference: "+e.shape);return r}return null},o.create=function(e,t,r){if(e.isShape)return e;var n=o.resolve(e,t);if(n){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var s=function(){n.constructor.call(this,e,t,r)};return s.prototype=n,new s}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,r);throw new Error("Unrecognized shape type: "+a)},o.shapes={StructureShape:a,ListShape:u,MapShape:c,StringShape:h,BooleanShape:v,Base64Shape:m},t.exports=o},{"../util":123,"./collection":66}],66:[function(e,t,r){function n(e,t,r,n){o(this,n(e),function(){return r(e,t)})}function i(e,t,r,i,o){i=i||String;var s=this;for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n.call(s,a,e[a],r,i),o&&o(a,e[a]))}var o=e("../util").memoizedProperty;t.exports=i},{"../util":123}],74:[function(e,t,r){function n(e){var t=e.httpRequest,r=e.service.api,n=r.targetPrefix+"."+r.operations[e.operation].name,i=r.jsonVersion||"1.0",o=r.operations[e.operation].input,s=new a;1===i&&(i="1.0"),t.body=s.build(e.params||{},o),t.headers["Content-Type"]="application/x-amz-json-"+i,t.headers["X-Amz-Target"]=n,c(e)}function i(e){var t={},r=e.httpResponse;if(t.code=r.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),r.body.length>0)try{var n=JSON.parse(r.body.toString()),i=n.__type||n.code||n.Code;i&&(t.code=i.split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=n.message||n.Message||null}catch(n){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=s.error(new Error,t)}function o(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],n=r.output||{},i=new u;e.data=i.parse(t,n)}}var s=e("../util"),a=e("../json/builder"),u=e("../json/parser"),c=e("./helpers").populateHostPrefix;t.exports={buildRequest:n,extractError:i,extractData:o}},{"../json/builder":63,"../json/parser":64,"../util":123,"./helpers":73}],73:[function(e,t,r){function n(e){if(!e.service.config.hostPrefixEnabled)return e;var t=e.service.api.operations[e.operation];if(i(e))return e;if(t.endpoint&&t.endpoint.hostPrefix){var r=t.endpoint.hostPrefix,n=o(r,e.params,t.input);s(e.httpRequest.endpoint,n),a(e.httpRequest.endpoint.hostname)}return e}function i(e){var t=e.service.api,r=t.operations[e.operation],n=t.endpointOperation&&t.endpointOperation===u.string.lowerFirst(r.name);return"NULL"!==r.endpointDiscoveryRequired||!0===n}function o(e,t,r){return u.each(r.members,function(r,n){if(!0===n.hostLabel){if("string"!=typeof t[r]||""===t[r])throw u.error(new Error,{message:"Parameter "+r+" should be a non-empty string.",code:"InvalidParameter"});var i=new RegExp("\\{"+r+"\\}","g");e=e.replace(i,t[r])}}),e}function s(e,t){e.host&&(e.host=t+e.host),e.hostname&&(e.hostname=t+e.hostname)}function a(e){var t=e.split("."),r=/^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/;u.arrayEach(t,function(e){if(!e.length||e.length<1||e.length>63)throw u.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!r.test(e))throw c.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})})}var u=e("../util"),c=e("../core");t.exports={populateHostPrefix:n}},{"../core":39,"../util":123}],64:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){if(null!=e){var r={},n=t.members;return c.each(n,function(t,n){var o=n.isLocationName?n.name:t;if(Object.prototype.hasOwnProperty.call(e,o)){var s=e[o],a=i(s,n);void 0!==a&&(r[t]=a)}}),r}}function s(e,t){if(null!=e){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0===n?r.push(null):r.push(n)}),r}}function a(e,t){if(null!=e){var r={};return c.each(e,function(e,n){var o=i(n,t.value);r[e]=void 0===o?null:o}),r}}function u(e,t){return t.toType(e)}var c=e("../util");n.prototype.parse=function(e,t){return i(JSON.parse(e),t)},t.exports=n},{"../util":123}],63:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e&&null!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){var r={};return c.each(e,function(e,n){var o=t.members[e];if(o){if("body"!==o.location)return;var s=o.isLocationName?o.name:e,a=i(n,o);void 0!==a&&(r[s]=a)}}),r}function s(e,t){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0!==n&&r.push(n)}),r}function a(e,t){var r={};return c.each(e,function(e,n){var o=i(n,t.value);void 0!==o&&(r[e]=o)}),r}function u(e,t){return t.toWireFormat(e)}var c=e("../util");n.prototype.build=function(e,t){return JSON.stringify(i(e,t))},t.exports=n},{"../util":123}],47:[function(e,t,r){(function(r){(function(){function n(e){var t=e.service,r=t.api||{},n={};return t.config.region&&(n.region=t.config.region),r.serviceId&&(n.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(n.accessKeyId=t.config.credentials.accessKeyId),n}function i(e,t,r){r&&void 0!==t&&null!==t&&"structure"===r.type&&r.required&&r.required.length>0&&m.arrayEach(r.required,function(n){var o=r.members[n];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:n;e[s]=String(t[n])}else i(e,t[n],o)})}function o(e,t){var r={};return i(r,e.params,t),r}function s(e){var t=e.service,r=t.api,i=r.operations?r.operations[e.operation]:void 0,s=i?i.input:void 0,a=o(e,s),c=n(e);Object.keys(a).length>0&&(c=m.update(c,a),i&&(c.operation=i.name));var l=d.endpointCache.get(c);if(!l||1!==l.length||""!==l[0].Address)if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address);else{var h=t.makeRequest(r.endpointOperation,{Operation:i.name,Identifiers:a});u(h),h.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),h.removeListener("retry",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}]), +h.send(function(e,t){t&&t.Endpoints?d.endpointCache.put(c,t.Endpoints):e&&d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}])})}}function a(e,t){var r=e.service,i=r.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,c=o(e,a),l=n(e);Object.keys(c).length>0&&(l=m.update(l,c),s&&(l.operation=s.name));var h=d.EndpointCache.getKeyString(l),p=d.endpointCache.get(h);if(p&&1===p.length&&""===p[0].Address)return g[h]||(g[h]=[]),void g[h].push({request:e,callback:t});if(p&&p.length>0)e.httpRequest.updateEndpoint(p[0].Address),t();else{var f=r.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:c});f.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),u(f),d.endpointCache.put(h,[{Address:"",CachePeriodInMinutes:60}]),f.send(function(r,n){if(r){if(e.response.error=m.error(r,{retryable:!1}),d.endpointCache.remove(l),g[h]){var i=g[h];m.arrayEach(i,function(e){e.request.response.error=m.error(r,{retryable:!1}),e.callback()}),delete g[h]}}else if(n&&(d.endpointCache.put(h,n.Endpoints),e.httpRequest.updateEndpoint(n.Endpoints[0].Address),g[h])){var i=g[h];m.arrayEach(i,function(e){e.request.httpRequest.updateEndpoint(n.Endpoints[0].Address),e.callback()}),delete g[h]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=r)}function c(e){var t=e.error,r=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===r.statusCode)){var i=e.request,s=i.service.api.operations||{},a=s[i.operation]?s[i.operation].input:void 0,u=o(i,a),c=n(i);Object.keys(u).length>0&&(c=m.update(c,u),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw m.error(new Error,{code:"ConfigurationException",message:"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true."});var t=d.config[e.serviceIdentifier]||{};return Boolean(d.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function h(e){return["false","0"].indexOf(e)>=0}function p(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!m.isBrowser()){for(var n=0;n=e.length)return t.push(null);var i=r+n;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,n=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(n))]}return(-1^r)>>>0},hmac:function(e,t,r,n){return r||(r="binary"),"buffer"===r&&(r=void 0),n||(n="sha256"),"string"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(n,e).update(t).digest(r)},md5:function(e,t,r){return o.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return o.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,n){var i=o.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),n&&"object"==typeof t&&"function"==typeof t.on&&!a)t.on("data",function(e){i.update(e)}),t.on("error",function(e){n(e)}),t.on("end",function(){n(null,i.digest(r))});else{if(!n||!s||a||"undefined"==typeof FileReader){o.isBrowser()&&"object"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return n&&n(null,u),u}var c=0,l=new FileReader;l.onerror=function(){n(new Error("Failed to read data."))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void n(null,i.digest(r));var e=c+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var r=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t&&(r=!0),Array.isArray(e)||(e=[e]);for(var n=0;n=0)return a++,void setTimeout(c,i+(e.retryAfter||0))}r(e)},c=function(){var t="";n.handleRequest(e,s,function(e){e.on("data",function(e){t+=e.toString()}),e.on("end",function(){var n=e.statusCode;if(n<300)r(null,t);else{var i=1e3*parseInt(e.headers["retry-after"],10)||0,s=o.error(new Error,{statusCode:n,retryable:n>=500||429===n});i&&s.retryable&&(s.retryAfter=i),u(s)}})},u)};i.util.defer(c)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,n=t.service.api.operations[r].output||{};n.payload&&e.data[n.payload]&&(e.data[n.payload]=e.data[n.payload].toString())},defer:function(e){"object"==typeof r&&"function"==typeof r.nextTick?r.nextTick(e):"function"==typeof n?n(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var r=(t||{})[e.operation];if(r&&r.input&&r.input.payload)return r.input.members[r.input.payload]}},getProfilesFromSharedConfig:function(e,t){function n(e,t){for(var r=0,n=Object.keys(t);r=6},parse:function(e){var t=e.split(":");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(":")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error("Input ARN object is invalid"));return"arn:"+(e.partition||"aws")+":"+e.service+":"+e.region+":"+e.accountId+":"+e.resource}},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE",imdsDisabledEnv:"AWS_EC2_METADATA_DISABLED"};t.exports=o}).call(this)}).call(this,e("_process"),e("timers").setImmediate)},{"../apis/metadata.json":26,"./core":39,_process:8,fs:2,timers:16,uuid:21}],37:[function(e,t,r){var n=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var i;n.Config=n.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),n.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new n.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var i=this;i.credentials?"function"==typeof i.credentials.get?function(){i.credentials.get(function(e){e&&(e=r("Could not load credentials from "+i.credentials.constructor.name,e)),t(e)})}():function(){var e=null;i.credentials.accessKeyId&&i.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():i.credentialProvider?i.credentialProvider.resolve(function(e,n){e&&(e=r("Could not load credentials from any providers",e)),i.credentials=n,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),n.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||n.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(n.util.readFileSync(e)),r=new n.FileSystemCredentials(e),i=new n.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){n.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]="function"==typeof r?r.call(this):r):"httpOptions"===e&&this[e]?this[e]=n.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=n.util.copy(e),e.credentials=new n.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&"function"==typeof Promise&&(i=Promise);var t=[n.Request,n.Credentials,n.CredentialProviderChain];n.S3&&(t.push(n.S3),n.S3.ManagedUpload&&t.push(n.S3.ManagedUpload)),n.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),n.config=new n.Config},{"./core":39,"./credentials":40,"./credentials/credential_provider_chain":43}],43:[function(e,t,r){var n=e("../core");n.CredentialProviderChain=n.util.inherit(n.Credentials,{constructor:function(e){this.providers=e||n.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,s){if(!e&&s||i===o.length)return n.util.arrayEach(r.resolveCallbacks,function(t){t(e,s)}),void(r.resolveCallbacks.length=0);var a=o[i++];s="function"==typeof a?a.call():a,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}var r=this;if(0===r.providers.length)return e(new Error("No providers")),r;if(1===r.resolveCallbacks.push(e)){var i=0,o=r.providers.slice(0);t()}return r}}),n.CredentialProviderChain.defaultProviders=[],n.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=n.util.promisifyMethod("resolve",e)},n.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},n.util.addPromises(n.CredentialProviderChain)},{"../core":39}],40:[function(e,t,r){var n=e("./core");n.Credentials=n.util.inherit({constructor:function(){if(n.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=n.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){n.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):n.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),n.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=n.util.promisifyMethod("get",e),this.prototype.refreshPromise=n.util.promisifyMethod("refresh",e)},n.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},n.util.addPromises(n.Credentials)},{"./core":39}],27:[function(e,t,r){function n(e,t){if(!n.services.hasOwnProperty(e))throw new Error("InvalidService: Failed to load api for "+e);return n.services[e][t]}n.services={},t.exports=n},{}],26:[function(e,t,r){t.exports={acm:{name:"ACM",cors:!0},apigateway:{name:"APIGateway",cors:!0},applicationautoscaling:{prefix:"application-autoscaling",name:"ApplicationAutoScaling",cors:!0},appstream:{name:"AppStream"},autoscaling:{name:"AutoScaling",cors:!0},batch:{name:"Batch"},budgets:{name:"Budgets"},clouddirectory:{name:"CloudDirectory",versions:["2016-05-10*"]},cloudformation:{name:"CloudFormation",cors:!0},cloudfront:{name:"CloudFront",versions:["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","2016-08-01*","2016-08-20*","2016-09-07*","2016-09-29*","2016-11-25*","2017-03-25*","2017-10-30*","2018-06-18*","2018-11-05*","2019-03-26*"],cors:!0},cloudhsm:{name:"CloudHSM",cors:!0},cloudsearch:{name:"CloudSearch"},cloudsearchdomain:{name:"CloudSearchDomain"},cloudtrail:{name:"CloudTrail",cors:!0},cloudwatch:{prefix:"monitoring",name:"CloudWatch",cors:!0},cloudwatchevents:{prefix:"events",name:"CloudWatchEvents",versions:["2014-02-03*"],cors:!0},cloudwatchlogs:{prefix:"logs",name:"CloudWatchLogs",cors:!0},codebuild:{name:"CodeBuild",cors:!0},codecommit:{name:"CodeCommit",cors:!0},codedeploy:{name:"CodeDeploy",cors:!0},codepipeline:{name:"CodePipeline",cors:!0},cognitoidentity:{prefix:"cognito-identity",name:"CognitoIdentity",cors:!0},cognitoidentityserviceprovider:{prefix:"cognito-idp",name:"CognitoIdentityServiceProvider",cors:!0},cognitosync:{prefix:"cognito-sync",name:"CognitoSync",cors:!0},configservice:{prefix:"config",name:"ConfigService",cors:!0},cur:{name:"CUR",cors:!0},datapipeline:{name:"DataPipeline"},devicefarm:{name:"DeviceFarm",cors:!0},directconnect:{name:"DirectConnect",cors:!0},directoryservice:{prefix:"ds",name:"DirectoryService"},discovery:{name:"Discovery"},dms:{name:"DMS"},dynamodb:{name:"DynamoDB",cors:!0},dynamodbstreams:{prefix:"streams.dynamodb",name:"DynamoDBStreams",cors:!0},ec2:{name:"EC2",versions:["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],cors:!0},ecr:{name:"ECR",cors:!0},ecs:{name:"ECS",cors:!0},efs:{prefix:"elasticfilesystem",name:"EFS",cors:!0},elasticache:{name:"ElastiCache",versions:["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],cors:!0},elasticbeanstalk:{name:"ElasticBeanstalk",cors:!0},elb:{prefix:"elasticloadbalancing",name:"ELB",cors:!0},elbv2:{prefix:"elasticloadbalancingv2",name:"ELBv2",cors:!0},emr:{prefix:"elasticmapreduce",name:"EMR",cors:!0},es:{name:"ES"},elastictranscoder:{name:"ElasticTranscoder",cors:!0},firehose:{name:"Firehose",cors:!0},gamelift:{name:"GameLift",cors:!0},glacier:{name:"Glacier"},health:{name:"Health"},iam:{name:"IAM",cors:!0},importexport:{name:"ImportExport"},inspector:{name:"Inspector",versions:["2015-08-18*"],cors:!0},iot:{name:"Iot",cors:!0},iotdata:{prefix:"iot-data",name:"IotData",cors:!0},kinesis:{name:"Kinesis",cors:!0},kinesisanalytics:{name:"KinesisAnalytics"},kms:{name:"KMS",cors:!0},lambda:{name:"Lambda",cors:!0},lexruntime:{prefix:"runtime.lex",name:"LexRuntime",cors:!0},lightsail:{name:"Lightsail"},machinelearning:{name:"MachineLearning",cors:!0},marketplacecommerceanalytics:{name:"MarketplaceCommerceAnalytics",cors:!0},marketplacemetering:{prefix:"meteringmarketplace",name:"MarketplaceMetering"},mturk:{prefix:"mturk-requester",name:"MTurk",cors:!0},mobileanalytics:{name:"MobileAnalytics",cors:!0},opsworks:{name:"OpsWorks",cors:!0},opsworkscm:{name:"OpsWorksCM"},organizations:{name:"Organizations"},pinpoint:{name:"Pinpoint"},polly:{name:"Polly",cors:!0},rds:{name:"RDS",versions:["2014-09-01*"],cors:!0},redshift:{name:"Redshift",cors:!0},rekognition:{name:"Rekognition",cors:!0},resourcegroupstaggingapi:{name:"ResourceGroupsTaggingAPI"},route53:{name:"Route53",cors:!0},route53domains:{name:"Route53Domains",cors:!0},s3:{name:"S3",dualstackAvailable:!0,cors:!0},s3control:{name:"S3Control",dualstackAvailable:!0,xmlNoDefaultLists:!0},servicecatalog:{name:"ServiceCatalog",cors:!0},ses:{prefix:"email",name:"SES",cors:!0},shield:{name:"Shield"},simpledb:{prefix:"sdb",name:"SimpleDB"},sms:{name:"SMS"},snowball:{name:"Snowball"},sns:{name:"SNS",cors:!0},sqs:{name:"SQS",cors:!0},ssm:{name:"SSM",cors:!0},storagegateway:{name:"StorageGateway",cors:!0},stepfunctions:{prefix:"states",name:"StepFunctions"},sts:{name:"STS",cors:!0},support:{name:"Support"},swf:{name:"SWF"},xray:{name:"XRay",cors:!0},waf:{name:"WAF",cors:!0},wafregional:{prefix:"waf-regional",name:"WAFRegional"},workdocs:{name:"WorkDocs",cors:!0},workspaces:{name:"WorkSpaces"},codestar:{name:"CodeStar"},lexmodelbuildingservice:{prefix:"lex-models",name:"LexModelBuildingService",cors:!0},marketplaceentitlementservice:{prefix:"entitlement.marketplace",name:"MarketplaceEntitlementService"},athena:{name:"Athena"},greengrass:{name:"Greengrass"},dax:{name:"DAX"},migrationhub:{prefix:"AWSMigrationHub",name:"MigrationHub"},cloudhsmv2:{name:"CloudHSMV2"},glue:{name:"Glue"},mobile:{name:"Mobile"},pricing:{name:"Pricing",cors:!0},costexplorer:{prefix:"ce",name:"CostExplorer",cors:!0},mediaconvert:{name:"MediaConvert"},medialive:{name:"MediaLive"},mediapackage:{name:"MediaPackage"},mediastore:{name:"MediaStore"},mediastoredata:{prefix:"mediastore-data",name:"MediaStoreData",cors:!0},appsync:{name:"AppSync"},guardduty:{name:"GuardDuty"},mq:{name:"MQ"},comprehend:{name:"Comprehend",cors:!0},iotjobsdataplane:{prefix:"iot-jobs-data",name:"IoTJobsDataPlane"},kinesisvideoarchivedmedia:{prefix:"kinesis-video-archived-media",name:"KinesisVideoArchivedMedia",cors:!0},kinesisvideomedia:{prefix:"kinesis-video-media",name:"KinesisVideoMedia",cors:!0},kinesisvideo:{name:"KinesisVideo",cors:!0},sagemakerruntime:{prefix:"runtime.sagemaker",name:"SageMakerRuntime"},sagemaker:{name:"SageMaker"},translate:{name:"Translate",cors:!0},resourcegroups:{prefix:"resource-groups",name:"ResourceGroups",cors:!0},alexaforbusiness:{name:"AlexaForBusiness"},cloud9:{name:"Cloud9"},serverlessapplicationrepository:{prefix:"serverlessrepo",name:"ServerlessApplicationRepository"},servicediscovery:{name:"ServiceDiscovery"},workmail:{name:"WorkMail"},autoscalingplans:{prefix:"autoscaling-plans",name:"AutoScalingPlans"},transcribeservice:{prefix:"transcribe",name:"TranscribeService"},connect:{name:"Connect",cors:!0},acmpca:{prefix:"acm-pca",name:"ACMPCA"},fms:{name:"FMS"},secretsmanager:{name:"SecretsManager",cors:!0},iotanalytics:{name:"IoTAnalytics",cors:!0},iot1clickdevicesservice:{prefix:"iot1click-devices",name:"IoT1ClickDevicesService" +},iot1clickprojects:{prefix:"iot1click-projects",name:"IoT1ClickProjects"},pi:{name:"PI"},neptune:{name:"Neptune"},mediatailor:{name:"MediaTailor"},eks:{name:"EKS"},macie:{name:"Macie"},dlm:{name:"DLM"},signer:{name:"Signer"},chime:{name:"Chime"},pinpointemail:{prefix:"pinpoint-email",name:"PinpointEmail"},ram:{name:"RAM"},route53resolver:{name:"Route53Resolver"},pinpointsmsvoice:{prefix:"sms-voice",name:"PinpointSMSVoice"},quicksight:{name:"QuickSight"},rdsdataservice:{prefix:"rds-data",name:"RDSDataService"},amplify:{name:"Amplify"},datasync:{name:"DataSync"},robomaker:{name:"RoboMaker"},transfer:{name:"Transfer"},globalaccelerator:{name:"GlobalAccelerator"},comprehendmedical:{name:"ComprehendMedical",cors:!0},kinesisanalyticsv2:{name:"KinesisAnalyticsV2"},mediaconnect:{name:"MediaConnect"},fsx:{name:"FSx"},securityhub:{name:"SecurityHub"},appmesh:{name:"AppMesh",versions:["2018-10-01*"]},licensemanager:{prefix:"license-manager",name:"LicenseManager"},kafka:{name:"Kafka"},apigatewaymanagementapi:{name:"ApiGatewayManagementApi"},apigatewayv2:{name:"ApiGatewayV2"},docdb:{name:"DocDB"},backup:{name:"Backup"},worklink:{name:"WorkLink"},textract:{name:"Textract"},managedblockchain:{name:"ManagedBlockchain"},mediapackagevod:{prefix:"mediapackage-vod",name:"MediaPackageVod"},groundstation:{name:"GroundStation"},iotthingsgraph:{name:"IoTThingsGraph"},iotevents:{name:"IoTEvents"},ioteventsdata:{prefix:"iotevents-data",name:"IoTEventsData"},personalize:{name:"Personalize",cors:!0},personalizeevents:{prefix:"personalize-events",name:"PersonalizeEvents",cors:!0},personalizeruntime:{prefix:"personalize-runtime",name:"PersonalizeRuntime",cors:!0},applicationinsights:{prefix:"application-insights",name:"ApplicationInsights"},servicequotas:{prefix:"service-quotas",name:"ServiceQuotas"},ec2instanceconnect:{prefix:"ec2-instance-connect",name:"EC2InstanceConnect"},eventbridge:{name:"EventBridge"},lakeformation:{name:"LakeFormation"},forecastservice:{prefix:"forecast",name:"ForecastService",cors:!0},forecastqueryservice:{prefix:"forecastquery",name:"ForecastQueryService",cors:!0},qldb:{name:"QLDB"},qldbsession:{prefix:"qldb-session",name:"QLDBSession"},workmailmessageflow:{name:"WorkMailMessageFlow"},codestarnotifications:{prefix:"codestar-notifications",name:"CodeStarNotifications"},savingsplans:{name:"SavingsPlans"},sso:{name:"SSO"},ssooidc:{prefix:"sso-oidc",name:"SSOOIDC"},marketplacecatalog:{prefix:"marketplace-catalog",name:"MarketplaceCatalog"},dataexchange:{name:"DataExchange"},sesv2:{name:"SESV2"},migrationhubconfig:{prefix:"migrationhub-config",name:"MigrationHubConfig"},connectparticipant:{name:"ConnectParticipant"},appconfig:{name:"AppConfig"},iotsecuretunneling:{name:"IoTSecureTunneling"},wafv2:{name:"WAFV2"},elasticinference:{prefix:"elastic-inference",name:"ElasticInference"},imagebuilder:{name:"Imagebuilder"},schemas:{name:"Schemas"},accessanalyzer:{name:"AccessAnalyzer"},codegurureviewer:{prefix:"codeguru-reviewer",name:"CodeGuruReviewer"},codeguruprofiler:{name:"CodeGuruProfiler"},computeoptimizer:{prefix:"compute-optimizer",name:"ComputeOptimizer"},frauddetector:{name:"FraudDetector"},kendra:{name:"Kendra"},networkmanager:{name:"NetworkManager"},outposts:{name:"Outposts"},augmentedairuntime:{prefix:"sagemaker-a2i-runtime",name:"AugmentedAIRuntime"},ebs:{name:"EBS"},kinesisvideosignalingchannels:{prefix:"kinesis-video-signaling",name:"KinesisVideoSignalingChannels",cors:!0},detective:{name:"Detective"},codestarconnections:{prefix:"codestar-connections",name:"CodeStarconnections"},synthetics:{name:"Synthetics"},iotsitewise:{name:"IoTSiteWise"},macie2:{name:"Macie2"},codeartifact:{name:"CodeArtifact"},honeycode:{name:"Honeycode"},ivs:{name:"IVS"},braket:{name:"Braket"},identitystore:{name:"IdentityStore"},appflow:{name:"Appflow"},redshiftdata:{prefix:"redshift-data",name:"RedshiftData"},ssoadmin:{prefix:"sso-admin",name:"SSOAdmin"},timestreamquery:{prefix:"timestream-query",name:"TimestreamQuery"},timestreamwrite:{prefix:"timestream-write",name:"TimestreamWrite"},s3outposts:{name:"S3Outposts"},databrew:{name:"DataBrew"},servicecatalogappregistry:{prefix:"servicecatalog-appregistry",name:"ServiceCatalogAppRegistry"},networkfirewall:{prefix:"network-firewall",name:"NetworkFirewall"},mwaa:{name:"MWAA"},amplifybackend:{name:"AmplifyBackend"},appintegrations:{name:"AppIntegrations"},connectcontactlens:{prefix:"connect-contact-lens",name:"ConnectContactLens"},devopsguru:{prefix:"devops-guru",name:"DevOpsGuru"},ecrpublic:{prefix:"ecr-public",name:"ECRPUBLIC"},lookoutvision:{name:"LookoutVision"},sagemakerfeaturestoreruntime:{prefix:"sagemaker-featurestore-runtime",name:"SageMakerFeatureStoreRuntime"},customerprofiles:{prefix:"customer-profiles",name:"CustomerProfiles"},auditmanager:{name:"AuditManager"},emrcontainers:{prefix:"emr-containers",name:"EMRcontainers"},healthlake:{name:"HealthLake"},sagemakeredge:{prefix:"sagemaker-edge",name:"SagemakerEdge"},amp:{name:"Amp"},greengrassv2:{name:"GreengrassV2"},iotdeviceadvisor:{name:"IotDeviceAdvisor"},iotfleethub:{name:"IoTFleetHub"},iotwireless:{name:"IoTWireless"},location:{name:"Location"},wellarchitected:{name:"WellArchitected"},lexmodelsv2:{prefix:"models.lex.v2",name:"LexModelsV2"},lexruntimev2:{prefix:"runtime.lex.v2",name:"LexRuntimeV2",cors:!0},fis:{name:"Fis"},lookoutmetrics:{name:"LookoutMetrics"},mgn:{name:"Mgn"},lookoutequipment:{name:"LookoutEquipment"}}},{}],21:[function(e,t,r){var n=e("./v1"),i=e("./v4"),o=i;o.v1=n,o.v4=i,t.exports=o},{"./v1":24,"./v4":25}],25:[function(e,t,r){function n(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[n+a]=s[a];return t||o(s)}var i=e("./lib/rng"),o=e("./lib/bytesToUuid");t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],24:[function(e,t,r){function n(e,t,r){var n=t&&r||0,l=t||[];e=e||{};var h=e.node||i,p=void 0!==e.clockseq?e.clockseq:o;if(null==h||null==p){var f=s();null==h&&(h=i=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==p&&(p=o=16383&(f[6]<<8|f[7]))}var d=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=d-u+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(p=p+1&16383),(v<0||d>u)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=d,c=m,o=p,d+=122192928e5;var g=(1e4*(268435455&d)+m)%4294967296;l[n++]=g>>>24&255,l[n++]=g>>>16&255,l[n++]=g>>>8&255,l[n++]=255&g;var y=d/4294967296*1e4&268435455;l[n++]=y>>>8&255,l[n++]=255&y,l[n++]=y>>>24&15|16,l[n++]=y>>>16&255,l[n++]=p>>>8|128,l[n++]=255&p;for(var b=0;b<6;++b)l[n+b]=h[b];return t||a(l)}var i,o,s=e("./lib/rng"),a=e("./lib/bytesToUuid"),u=0,c=0;t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],23:[function(e,t,r){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var i=new Uint8Array(16);t.exports=function(){return n(i),i}}else{var o=new Array(16);t.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}},{}],22:[function(e,t,r){function n(e,t){var r=t||0,n=i;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}for(var i=[],o=0;o<256;++o)i[o]=(o+256).toString(16).substr(1);t.exports=n},{}],20:[function(e,t,r){(function(t,n){(function(){function i(e,t){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),u(n,e,n.depth)}function o(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function s(e,t){return e}function a(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),m=a(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),x(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return l(t);if(0===s.length){if(A(t)){var v=t.name?": "+t.name:"";return e.stylize("[Function"+v+"]","special")}if(_(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(C(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return l(t)}var g="",y=!1,w=["{","}"];if(d(t)&&(y=!0,w=["[","]"]),A(t)){g=" [Function"+(t.name?": "+t.name:"")+"]"}if(_(t)&&(g=" "+RegExp.prototype.toString.call(t)),C(t)&&(g=" "+Date.prototype.toUTCString.call(t)),x(t)&&(g=" "+l(t)),0===s.length&&(!y||0==t.length))return w[0]+g+w[1];if(n<0)return _(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return E=y?h(e,t,n,m,s):s.map(function(r){return p(e,t,n,m,r,y)}),e.seen.pop(),f(E,g,w)}function c(e,t){if(E(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,r,n,i){for(var o=[],s=0,a=t.length;s-1&&(a=o?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n"))):a=e.stylize("[Circular]","special")),E(s)){if(o&&i.match(/^\d+$/))return a;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return"number"==typeof e}function b(e){return"string"==typeof e}function w(e){return"symbol"==typeof e}function E(e){return void 0===e}function _(e){return S(e)&&"[object RegExp]"===T(e)}function S(e){return"object"==typeof e&&null!==e}function C(e){return S(e)&&"[object Date]"===T(e)}function x(e){return S(e)&&("[object Error]"===T(e)||e instanceof Error)}function A(e){return"function"==typeof e}function R(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function T(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function I(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),N[e.getMonth()],t].join(" ")}function L(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r.setImmediate="function"==typeof t?t:function(e){var t=c++,n=!(arguments.length<2)&&a.call(arguments,1);return u[t]=!0,o(function(){u[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))}),t},r.clearImmediate="function"==typeof n?n:function(e){delete u[e]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":8,timers:16}],8:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(h===setTimeout)return setTimeout(e,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(e,0);try{return h(e,0)}catch(t){try{return h.call(null,e,0)}catch(t){return h.call(this,e,0)}}}function s(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){v&&d&&(v=!1,d.length?m=d.concat(m):g=-1,m.length&&u())}function u(){if(!v){var e=o(a);v=!0;for(var t=m.length;t;){for(d=m,m=[];++g1)for(var r=1;r="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function l(){}function h(e){this.runtime=e}function p(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[g]}]},avg:{_func:this._functionAvg,_signature:[{types:[S]}]},ceil:{_func:this._functionCeil,_signature:[{types:[g]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[g]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,E]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[S,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[E],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[S]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[S,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[E]}]},values:{_func:this._functionValues,_signature:[{types:[E]}]},sort:{_func:this._functionSort,_signature:[{types:[C,S]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new l).parse(e)}function d(e){return(new c).tokenize(e)}function m(e,t){var r=new l,n=new p,i=new h(n);n._interpreter=i;var o=r.parse(t);return i.search(o,e)}var v;v="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var g=0,y=1,b=2,w=3,E=4,_=6,S=8,C=9,x={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},A={"<":!0,">":!0,"=":!0,"!":!0},R={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,n,i;this._current"===r?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===r&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={};T.EOF=0,T.UnquotedIdentifier=0,T.QuotedIdentifier=0,T.Rbracket=0,T.Rparen=0,T.Comma=0,T.Rbrace=0,T.Number=0,T.Current=0,T.Expref=0,T.Pipe=1,T.Or=2,T.And=3,T.EQ=5,T.GT=5,T.LT=5,T.GTE=5,T.LTE=5,T.NE=5,T.Flatten=9,T.Star=20,T.Filter=21,T.Dot=40,T.Not=45,T.Lbrace=50,T.Lbracket=55,T.Lparen=60,l.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,r=t.tokenize(e);r.push({type:"EOF",value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,r,n,i=[],o=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),o.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),r=this.expression(0),n={type:"KeyValuePair",name:t,value:r},i.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:i}}},h.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,u,c,l,h,p,f,d,m;switch(e.type){case"Field":return null===s?null:r(s)?(p=s[e.name],void 0===p?null:p):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=E)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(d=[], +m=0;m<_.length;m++)null!==(u=this.visit(e.children[1],_[m]))&&d.push(u);return d;case"ValueProjection":if(_=this.visit(e.children[0],s),!r(_))return null;d=[];var S=o(_);for(m=0;mh;break;case"GTE":c=l>=h;break;case"LT":c=l=e&&(t=r<0?e-1:e),t}},p.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var n;if(r[r.length-1].variadic){if(t.length=0;n--)r+=t[n];return r}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,n=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===g)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;n0){if(this._getTypeName(e[0][0])===g)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;na?1:ss&&(s=r,t=i[a]);return t},_functionMinBy:function(e){for(var t,r,n=e[1],i=e[0],o=this.createKeyFunction(n,[g,b]),s=1/0,a=0;a=this.HEADERS_RECEIVED&&!h&&(u.statusCode=l.status,u.headers=s.parseHeaders(l.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers,l.statusText),h=!0),this.readyState===this.DONE&&s.finishRequest(l,u)},!1),l.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),l.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),l.addEventListener("timeout",function(){o(n.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),l.addEventListener("error",function(){o(n.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),l.addEventListener("abort",function(){o(n.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),l.open(e.method,c,!1!==t.xhrAsync),n.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&l.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType="arraybuffer"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return n.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],n=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=n)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new n.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1&&0===++e[t];t--);}var o=e("../core").util,s=o.buffer.toBuffer;n.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),r=7,o=Math.abs(Math.round(e));r>-1&&o>0;r--,o/=256)t[r]=o;return e<0&&i(t),new n(t)},n.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString("hex"),16)*(t?-1:1)},n.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:n}},{"../core":39}],55:[function(e,t,r){function n(e){for(var t=[],r=0;ra)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;r>0;)this.buffer[this.bufferLength++]=e[t++],r--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%64>=56){for(var o=this.bufferLength;o<64;o++)r.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(var o=this.bufferLength;o<56;o++)r.setUint8(o,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var s=new i(32),o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},n.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],l=r[6],h=r[7],p=0;p<64;p++){if(p<16)this.temp[p]=(255&t[4*p])<<24|(255&t[4*p+1])<<16|(255&t[4*p+2])<<8|255&t[4*p+3];else{var f=this.temp[p-2],d=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[p-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[p]=(d+this.temp[p-7]|0)+(m+this.temp[p-16]|0)}var v=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(h+(s[p]+this.temp[p]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&i^n&o^i&o)|0;h=l,l=c,c=u,u=a+v|0,a=o,o=i,i=n,n=v+g|0}r[0]+=n,r[1]+=i,r[2]+=o,r[3]+=a,r[4]+=u,r[5]+=c,r[6]+=l,r[7]+=h}},{"./browserHashUtils":30,"buffer/":3}],33:[function(e,t,r){function n(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e("buffer/").Buffer,o=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=e.length;this.totalLength+=8*t;for(var r=0;r14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var r=new i(20),n=new DataView(r.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?r.toString(e):r},n.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var r,n,i=this.h0,o=this.h1,s=this.h2,a=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=a^o&(s^a),n=1518500249):e<40?(r=o^s^a,n=1859775393):e<60?(r=o&s|a&(o|s),n=2400959708):(r=o^s^a,n=3395469782);var c=(i<<5|i>>>27)+r+u+n+(0|this.block[e]);u=a,a=s,s=o<<30|o>>>2,o=i,i=c}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":30,"buffer/":3}],32:[function(e,t,r){function n(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(h)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,r,n,i,o){return((t=(t+e&4294967295)+(n+o&4294967295)&4294967295)<>>32-i)+r&4294967295}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function u(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}var c=e("./browserHashUtils"),l=e("buffer/").Buffer,h=64;t.exports=n,n.BLOCK_SIZE=h,n.prototype.update=function(e){if(c.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=c.convertToBuffer(e),r=0,n=t.byteLength;for(this.bytesHashed+=n;n>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),n--,this.bufferLength===h&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,n=t.bufferLength,i=t.bytesHashed,o=8*i +;if(r.setUint8(this.bufferLength++,128),n%h>=h-8){for(var s=this.bufferLength;s>>0,!0),r.setUint32(h-4,Math.floor(o/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var a=new DataView(new ArrayBuffer(16)),s=0;s<4;s++)a.setUint32(4*s,this.state[s],!0);var u=new l(a.buffer,a.byteOffset,a.byteLength);return e?u.toString(e):u},n.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],c=r[2],l=r[3];n=o(n,i,c,l,t.getUint32(0,!0),7,3614090360),l=o(l,n,i,c,t.getUint32(4,!0),12,3905402710),c=o(c,l,n,i,t.getUint32(8,!0),17,606105819),i=o(i,c,l,n,t.getUint32(12,!0),22,3250441966),n=o(n,i,c,l,t.getUint32(16,!0),7,4118548399),l=o(l,n,i,c,t.getUint32(20,!0),12,1200080426),c=o(c,l,n,i,t.getUint32(24,!0),17,2821735955),i=o(i,c,l,n,t.getUint32(28,!0),22,4249261313),n=o(n,i,c,l,t.getUint32(32,!0),7,1770035416),l=o(l,n,i,c,t.getUint32(36,!0),12,2336552879),c=o(c,l,n,i,t.getUint32(40,!0),17,4294925233),i=o(i,c,l,n,t.getUint32(44,!0),22,2304563134),n=o(n,i,c,l,t.getUint32(48,!0),7,1804603682),l=o(l,n,i,c,t.getUint32(52,!0),12,4254626195),c=o(c,l,n,i,t.getUint32(56,!0),17,2792965006),i=o(i,c,l,n,t.getUint32(60,!0),22,1236535329),n=s(n,i,c,l,t.getUint32(4,!0),5,4129170786),l=s(l,n,i,c,t.getUint32(24,!0),9,3225465664),c=s(c,l,n,i,t.getUint32(44,!0),14,643717713),i=s(i,c,l,n,t.getUint32(0,!0),20,3921069994),n=s(n,i,c,l,t.getUint32(20,!0),5,3593408605),l=s(l,n,i,c,t.getUint32(40,!0),9,38016083),c=s(c,l,n,i,t.getUint32(60,!0),14,3634488961),i=s(i,c,l,n,t.getUint32(16,!0),20,3889429448),n=s(n,i,c,l,t.getUint32(36,!0),5,568446438),l=s(l,n,i,c,t.getUint32(56,!0),9,3275163606),c=s(c,l,n,i,t.getUint32(12,!0),14,4107603335),i=s(i,c,l,n,t.getUint32(32,!0),20,1163531501),n=s(n,i,c,l,t.getUint32(52,!0),5,2850285829),l=s(l,n,i,c,t.getUint32(8,!0),9,4243563512),c=s(c,l,n,i,t.getUint32(28,!0),14,1735328473),i=s(i,c,l,n,t.getUint32(48,!0),20,2368359562),n=a(n,i,c,l,t.getUint32(20,!0),4,4294588738),l=a(l,n,i,c,t.getUint32(32,!0),11,2272392833),c=a(c,l,n,i,t.getUint32(44,!0),16,1839030562),i=a(i,c,l,n,t.getUint32(56,!0),23,4259657740),n=a(n,i,c,l,t.getUint32(4,!0),4,2763975236),l=a(l,n,i,c,t.getUint32(16,!0),11,1272893353),c=a(c,l,n,i,t.getUint32(28,!0),16,4139469664),i=a(i,c,l,n,t.getUint32(40,!0),23,3200236656),n=a(n,i,c,l,t.getUint32(52,!0),4,681279174),l=a(l,n,i,c,t.getUint32(0,!0),11,3936430074),c=a(c,l,n,i,t.getUint32(12,!0),16,3572445317),i=a(i,c,l,n,t.getUint32(24,!0),23,76029189),n=a(n,i,c,l,t.getUint32(36,!0),4,3654602809),l=a(l,n,i,c,t.getUint32(48,!0),11,3873151461),c=a(c,l,n,i,t.getUint32(60,!0),16,530742520),i=a(i,c,l,n,t.getUint32(8,!0),23,3299628645),n=u(n,i,c,l,t.getUint32(0,!0),6,4096336452),l=u(l,n,i,c,t.getUint32(28,!0),10,1126891415),c=u(c,l,n,i,t.getUint32(56,!0),15,2878612391),i=u(i,c,l,n,t.getUint32(20,!0),21,4237533241),n=u(n,i,c,l,t.getUint32(48,!0),6,1700485571),l=u(l,n,i,c,t.getUint32(12,!0),10,2399980690),c=u(c,l,n,i,t.getUint32(40,!0),15,4293915773),i=u(i,c,l,n,t.getUint32(4,!0),21,2240044497),n=u(n,i,c,l,t.getUint32(32,!0),6,1873313359),l=u(l,n,i,c,t.getUint32(60,!0),10,4264355552),c=u(c,l,n,i,t.getUint32(24,!0),15,2734768916),i=u(i,c,l,n,t.getUint32(52,!0),21,1309151649),n=u(n,i,c,l,t.getUint32(16,!0),6,4149444226),l=u(l,n,i,c,t.getUint32(44,!0),10,3174756917),c=u(c,l,n,i,t.getUint32(8,!0),15,718787259),i=u(i,c,l,n,t.getUint32(36,!0),21,3951481745),r[0]=n+r[0]&4294967295,r[1]=i+r[1]&4294967295,r[2]=c+r[2]&4294967295,r[3]=l+r[3]&4294967295}},{"./browserHashUtils":30,"buffer/":3}],31:[function(e,t,r){function n(e,t){this.hash=new e,this.outer=new e;var r=i(e,t),n=new Uint8Array(e.BLOCK_SIZE);n.set(r);for(var o=0;oe.BLOCK_SIZE){var n=new e;n.update(r),r=n.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(r),i}var o=e("./browserHashUtils");t.exports=n,n.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},n.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":30}],30:[function(e,t,r){function n(e){return"string"==typeof e?0===e.length:0===e.byteLength}function i(e){return"string"==typeof e&&(e=new o(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}var o=e("buffer/").Buffer;"undefined"!=typeof ArrayBuffer&&void 0===ArrayBuffer.isView&&(ArrayBuffer.isView=function(e){return s.indexOf(Object.prototype.toString.call(e))>-1});var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:n,convertToBuffer:i}},{"buffer/":3}],17:[function(e,t,r){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,r){if(e&&c(e)&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}function o(e){return u(e)&&(e=i(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return i(e,!1,!0).resolve(t)}function a(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return"string"==typeof e}function c(e){return"object"==typeof e&&null!==e}function l(e){return null===e}function h(e){return null==e}var p=e("punycode");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var f=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,m=["<",">",'"',"`"," ","\r","\n","\t"],v=["{","}","|","\\","^","`"].concat(m),g=["'"].concat(v),y=["%","/","?",";","#"].concat(g),b=["/","?","#"],w=/^[a-z0-9A-Z_-]{0,63}$/,E=/^([a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},S={javascript:!0,"javascript:":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},x=e("querystring");n.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var i=f.exec(n);if(i){i=i[0];var o=i.toLowerCase();this.protocol=o,n=n.substr(i.length)}if(r||i||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||i&&S[i]||(n=n.substr(2),this.slashes=!0)}if(!S[i]&&(s||i&&!C[i])){for(var a=-1,c=0;c127?T+="x":T+=R[k];if(!T.match(w)){var L=v.slice(0,c),P=v.slice(c+1),q=R.match(E);q&&(L.push(q[1]),P.unshift(q[2])),P.length&&(n="/"+P.join(".")+n),this.hostname=L.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var O=this.hostname.split("."),N=[],c=0;c0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return r.search=e.search,r.query=e.query,l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!d.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var g=d.slice(-1)[0],y=(r.host||e.host)&&("."===g||".."===g)||""===g,b=0,w=d.length;w>=0;w--)g=d[w],"."==g?d.splice(w,1):".."===g?(d.splice(w,1),b++):b&&(d.splice(w,1),b--);if(!p&&!f)for(;b--;b)d.unshift("..");!p||""===d[0]||d[0]&&"/"===d[0].charAt(0)||d.unshift(""),y&&"/"!==d.join("/").substr(-1)&&d.push("");var E=""===d[0]||d[0]&&"/"===d[0].charAt(0);if(m){r.hostname=r.host=E?"":d.length?d.shift():"";var v=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return p=p||r.host&&d.length,p&&!E&&d.unshift(""),d.length?r.pathname=d.join("/"):(r.pathname=null,r.path=null),l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:9,querystring:12}],15:[function(e,t,r){arguments[4][12][0].apply(r,arguments)},{"./decode":13,"./encode":14,dup:12}],14:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},{}],13:[function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var a=1e3;i&&"number"==typeof i.maxKeys&&(a=i.maxKeys);var u=e.length;a>0&&u>a&&(u=a);for(var c=0;c=0?(l=d.substr(0,m),h=d.substr(m+1)):(l=d,h=""),p=decodeURIComponent(l),f=decodeURIComponent(h),n(o,p)?Array.isArray(o[p])?o[p].push(f):o[p]=[o[p],f]:o[p]=f}return o}},{}],12:[function(e,t,r){"use strict";r.decode=r.parse=e("./decode"),r.encode=r.stringify=e("./encode")},{"./decode":10,"./encode":11}],11:[function(e,t,r){"use strict";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n0&&c>u&&(c=u);for(var l=0;l=0?(h=m.substr(0,v),p=m.substr(v+1)):(h=m,p=""),f=decodeURIComponent(h),d=decodeURIComponent(p),n(s,f)?i(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],9:[function(e,t,r){(function(e){(function(){!function(n){function i(e){throw RangeError(q[e])}function o(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function s(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(P,"."),n+o(e.split("."),t).join(".")}function a(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=U(e>>>10&1023|55296),e=56320|1023&e),t+=U(e)}).join("")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:_}function l(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function h(e,t,r){var n=0;for(e=r?N(e/A):e>>1,e+=N(e/t);e>O*C>>1;n+=_)e=N(e/O);return N(n+(O+1)*e/(e+x))}function p(e){var t,r,n,o,s,a,l,p,f,d,m=[],v=e.length,g=0,y=T,b=R;for(r=e.lastIndexOf(k),r<0&&(r=0),n=0;n=128&&i("not-basic"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=v&&i("invalid-input"),p=c(e.charCodeAt(o++)),(p>=_||p>N((E-g)/a))&&i("overflow"),g+=p*a,f=l<=b?S:l>=b+C?C:l-b,!(pN(E/d)&&i("overflow"),a*=d;t=m.length+1,b=h(g-s,t,0==s),N(g/t)>E-y&&i("overflow"),y+=N(g/t),g%=t,m.splice(g++,0,y)}return u(m)}function f(e){var t,r,n,o,s,u,c,p,f,d,m,v,g,y,b,w=[];for(e=a(e),v=e.length,t=T,r=0,s=R,u=0;u=t&&mN((E-r)/g)&&i("overflow"),r+=(c-t)*g,t=c,u=0;uE&&i("overflow"),m==t){for(p=r,f=_;d=f<=s?S:f>=s+C?C:f-s,!(p= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=_-S,N=Math.floor,U=String.fromCharCode;if(b={version:"1.3.2",ucs2:{decode:a,encode:u},decode:p,encode:f,toASCII:m,toUnicode:d},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return b});else if(v&&g)if(t.exports==v)g.exports=b;else for(w in b)b.hasOwnProperty(w)&&(v[w]=b[w]);else n.punycode=b}(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function o(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,r,n,o,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(r=this._events[e],a(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),r.apply(this,o)}else if(s(r))for(o=Array.prototype.slice.call(arguments,1),c=r.slice(),n=c.length,u=0;u0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(r)){for(a=o;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],3:[function(e,t,r){(function(t,n){(function(){"use strict";function n(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(e,t){if(n()=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function v(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return X(e).length;default:if(n)return V(e).length;t=(""+t).toLowerCase(),n=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return T(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return L(this,t,r);case"base64":return R(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=o.from(t,n)),o.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,i);if("number"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var l=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var h=!0,p=0;pi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,l,h;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128==(192&u)&&(h=(31&o)<<6|63&u)>127&&(s=h);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(h=(15&o)<<12|(63&u)<<6|63&c)>2047&&(h<55296||h>57343)&&(s=h);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(h=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&h<1114112&&(s=h)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return k(n)}function k(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,r,n,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function U(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||M(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,i){return i||M(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,r,n,52,8),r+8}function F(e){if(e=z(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function z(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function X(e){return J.toByteArray(F(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Y(e){return e!==e}var J=e("base64-js"),Z=e("ieee754"),$=e("isarray");r.Buffer=o,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),r.kMaxLength=n(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,r){return s(null,e,t,r)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,r){return u(null,e,t,r)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},o.prototype.compare=function(e,t,r,n,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var s=i-n,a=r-t,u=Math.min(s,a),c=this.slice(n,i),l=e.slice(t,r),h=0;hi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return E(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return C(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;o.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},o.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},o.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},o.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){N(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},o.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},o.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},o.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},o.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},o.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},o.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},o.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s>1,l=-7,h=r?i-1:0,p=r?-1:1,f=e[t+h];for(h+=p,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+h],h+=p,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+h],h+=p,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=c}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+h>=1?p/u:p*Math.pow(2,1-h),t*u>=2&&(s++,u/=2),s+h>=l?(a=0,s=l):s+h>=1?(a=(t*u-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,c-=8);e[r+f-d]|=128*m}},{}],1:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function o(e,t,r){return 3*(t+r)/4-r}function s(e){var t,r,i=n(e),s=i[0],a=i[1],u=new p(o(e,s,a)),c=0,l=a>0?s-4:s;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===a&&(t=h[e.charCodeAt(r)]<<2|h[e.charCodeAt(r+1)]>>4,u[c++]=255&t),1===a&&(t=h[e.charCodeAt(r)]<<10|h[e.charCodeAt(r+1)]<<4|h[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u}function a(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function u(e,t,r){for(var n,i=[],o=t;os?s:o+16383));return 1===n?(t=e[r-1],i.push(l[t>>2]+l[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(l[t>>10]+l[t>>4&63]+l[t<<2&63]+"=")),i.join("")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=c;for(var l=[],h=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,m=f.length;d 0 ? JSON.parse(JSON.stringify(pasteItem)) : {}; + + newItem[table.partition_key] = {"S":(cellId.hasOwnProperty(id) ? getValue(cellId[id].obj[table.partition_key]) : "~new~")}; + + if (!newItem.hasOwnProperty(table.sort_key)) { + if (sortkey_datatype == 'N') + newItem[table.sort_key] = {"N":"0"}; + else + newItem[table.sort_key] = {"S":"~new~"}; + + newItem["type"] = {"S": "~new~"}; + } else { + var dup = false; + + $.each(json_data, function(idx, obj) { + if (getValue(obj[table.partition_key]) == getValue(newItem[table.partition_key]) && getValue(obj[table.sort_key]) == getValue(newItem[table.sort_key])) { + alert("Duplicate Sort Key values not allowed in the same Partition."); + dup = true; + return false; + } + }); + + if (dup) + return; + } + + // snapshot model state + makeChange(); + + // add "type" as a non-key attribute + addNonKeyAttribute(null, 'type'); + json_data.push(newItem); + + // refresh the table view + showValues = true; + loadDataModel(); +} + +// add a non-key attribute to the model if it does not already exist +function addNonKeyAttribute(type, attribute) { + // add this attribute to the schema + if (type && !schema.models[type][attribute]) { + schema.models[type][attribute] = { type: 'String' } + } + // search the attribute list for this name + var found = false; + $.each(model.DataModel[modelIndex].NonKeyAttributes, function (idx, obj) { + if (attribute.AttributeName == obj.AttributeName) + found = true; + }); + + // if the attribute is not on the list then add it + if (!found) + model.DataModel[modelIndex].NonKeyAttributes.push({AttributeName: attribute, AttributeType: 'S'}); +} + +function findModel(id) { + let type = findType(id) + return schema.models.find(m => m.type == type) +} + +function findType(id) { + return cellId[id].type +} + +// add an attribute to an Item. Note: this does not change the schema until an attibute name is assigned. +function addAttribute(id, name) { + // find the backing object for this Item + let obj = cellId[id].obj; + + // if the object has a "type" attribute that is unset then throw an alert and bail + if (obj.hasOwnProperty("type") && obj.type.S == "~new~") { + alert("You need to assign this object a type before adding new attributes."); + + // set the selectId to focus on the type attribute for this item when the table renders and bail out + selectId.attr = "type"; + } else { + // snapshot the model state and add a new attribute to the Item + makeChange(); + obj[name] = {"S":"~new~"}; + } + + // refresh the table view + showValues = true; + loadDataModel(); +} + +// assign a name to a new attribute +function nameAttribute(id) { + var keycode = (event.keyCode ? event.keyCode : event.which); + + // process the name change if this is an enter or null key + if(keycode == '13' || keycode == '0' || selectId.hasOwnProperty("attrName")) { + // cancel keypress + event.preventDefault(); + + // find the attribute name + var attribute = selectId.hasOwnProperty("attrName") ? selectId.attrName : $(jq(id)).text(), + type = {}; + + delete selectId.attrName; + + // find the backing object for the Item + let obj = cellId[id].obj; + + // if the property already exists then bail out + if (obj.hasOwnProperty(attribute)) { + return false; + } + // add the non-key attribute defintion + addNonKeyAttribute(obj.type.S, attribute) + + // swap the value into the new attribute and delete the placeholder + obj[attribute] = obj["~new~"]; + delete obj["~new~"]; + selectId = { + PK: getValue(obj[table.partition_key]), + SK: getValue(obj[table.sort_key]), + attr: attribute + }; + + // add this attribute to other objects of this type + if (obj.hasOwnProperty("type")) { + $.each(json_data, function (idx, obj1) { + if (obj.type.S == obj1.type.S) + obj1[attribute] = { "S" : "~new~"}; + }); + } + + // if the object had a type then add attribute to other objects of this type + if (Object.keys(type).length > 0) { + $.each(json_data, function (idx, obj) { + if (obj["type"]["S"] == type.S) + obj[attribute] = { "S" : "~new~"}; + }); + } + + // refresh the table view + loadDataModel(); + } +} + +function importOneTableSchema(text) { + schema = JSON.parse(text); + if (!schema.models) { + alert('Invalid OneTable schema. Missing top level models.') + return + } + model = {}; + + for (let [indexName, index] of Object.entries(schema.indexes)) { + var def = {}; + def.KeyAttributes = {}; + def.KeyAttributes.PartitionKey = { + 'AttributeName': index.hash, + 'AttributeType': 'S' + }; + def.KeyAttributes.SortKey = { + 'AttributeName': index.sort, + 'AttributeType': 'S' + }; + def.NonKeyAttributes = []; + def.TableData = []; + + if (!model.hasOwnProperty("DataModel")) { + modelIndex = 0; + model.DataModel = []; + def.GlobalSecondaryIndexes = []; + def.TableName = indexName; + tableChanges[indexName] = []; + model.DataModel.push(def); + table = { + name: indexName, + partition_key: def.KeyAttributes.PartitionKey.AttributeName, + sort_key: def.KeyAttributes.SortKey.AttributeName, + sortkey_datatype: def.KeyAttributes.SortKey.AttributeType + }; + json_data = def.TableData; + } else { + def.IndexName = indexName; + def.Projection = { ProjectionType: "ALL" }; + model.DataModel[modelIndex].GlobalSecondaryIndexes.push(def); + } + } + modelIndex = 0; + datamodel = model.DataModel[modelIndex]; + + for (let [modelName, model] of Object.entries(schema.models)) { + for (let [name, field] of Object.entries(model)) { + if (field.value) { + if (!schema.indexes[name]) { + let item = datamodel.NonKeyAttributes.find(a => a.AttributeName == name); + if (!item) { + item = { + AttributeName: name, + AttributeType: typeToDynamo(field.type), + } + datamodel.NonKeyAttributes.push(item); + } + } + } + } + // Define type attribute (OneTable does this automatically) + if (!schema.models[modelName]) { + schema.models[modelName].type = { type: 'String', required: true, value: modelName }; + } + } + + if (schema.data) { + let item = {}; + for (let row of schema.data) { + item = {}; + for (let [key, value] of Object.entries(row)) { + item[key] = { 'S': value }; + } + json_data.push(item); + } + expandValueTemplates(); + showTable(); + } else { + addItem("~new~"); + } +} + +function exportOneTableSchema() { + let output = Object.assign({}, schema, {data: []}) + let data = output.data + for (let row of json_data) { + let item = {} + for (let [key, value] of Object.entries(row)) { + item[key] = Object.values(value)[0] + } + data.push(item) + } + save(JSON.stringify(output, null, 4), "schema.json", "json"); +} + +function setAttributeType(type, item, attr) { + + switch (type) { + case "Number": + if ( isNaN(getValue(item[attr])) ) + item[name] = { + "N": "0" + } + else + item[name] = { + "N": getValue(item[attr]) + } + break; + + case "Boolean": + item[attr] = { + "BOOL": getValue(item[attr]).toLowerCase() == "false" || getValue(item[attr]) == "0" ? false : !!getValue(item[attr]) + }; + break; + + default: + let newAttr = {}; + newAttr[types[type]] = getValue(item[attr]); + item[attr] = newAttr; + break; + } +} + +// set an attribute value +function setValue(id) { + // get the new value for the attribute and split out the key values and attribute name + var newVal = $(jq(id)).text(), + PK = cellId[id].PK, + SK = cellId[id].SK, + name = cellId[id].attr, + change = true, + obj = cellId[id].obj; + + // if the value is uninitialized + if (newVal == "~new~") + return; + + // if this is a sort key change make sure it is a unique value + var found = false; + if ( name == table.sort_key ) { + $.each(json_data, function(idx, obj) { + if ( getValue(obj[table.partition_key]) == PK && getValue(obj[table.sort_key]) == newVal) { + found = true; + $(jq(id)).html(buildButtonHtml(id)); + } + }); + } + + if (!found) { + let entity = schema.models[getValue(obj.type)] + let field = { + type: "String" + } + + if (entity) + field = entity[name]; + + if (!showValues) { + // Editing meta view, so update the type or value template where appropriate + if (name == 'type') { + if (getValue(obj.type) == newVal) + return; + + showValues = true; + setValue(id); + showValues = false; + } else { + + if (newVal == field.type || newVal == field.value) + return; + + makeChange(); + if (Object.keys(types).includes(newVal)) { + $.each(json_data, function(idx, item) { + setAttributeType(newVal, item, name); + }); + + field.type = newVal + } else { + field.value = newVal + } + } + + loadDataModel(); + } else { + // if the value has changed then process it + if (getValue(obj[name]) != newVal) { + if ( name == sort_key) { + if ( !mouseDown ) + selectId = { + PK: PK, + SK: newVal, + attr: "type", + obj: obj + }; + } + else { + if ( cellId.hasOwnProperty("cell" + (parseInt(id.substr(4)) + 1))) + selectId = cellId["cell" + (parseInt(id.substr(4)) + 1)]; + else + selectId = cellId["cell1"]; + } + + // snapshot model state and apply the change + makeChange(); + assignValue(obj[name], newVal); + setAttributeType(field.type, obj, name); + + // if this is a type change then adjust the attributes accordingly + if (name == "type") { + //remove existing attributes + $.each(Object.keys(obj), function (idx, key) { + if (key != table.partition_key && key != table.sort_key && key != "type") + delete obj[key]; + }); + + // add attributes for new type with default value + if (schema.models.hasOwnProperty(newVal)) { + $.each(schema.models[newVal], function(prop, field) { + let props = ['type', table.partition_key, table.sort_key]; + if (!props.includes(prop)) { + obj[prop] = {'S': field.default || '~new~'} + } + }); + } else { + addEntityToSchema(obj); + } + } + + // refresh the table view + loadDataModel(); + } + } + } +} + +// update an Item attribute with a new value +function updateItem(id) { + var keycode = (event.keyCode ? event.keyCode : event.which); + + // if this is an enter or null key code then process new value + if(keycode == '13' || keycode == '0') { + event.preventDefault(); + + // set keypress event flag + fired = true; + mouseDown = false; + setValue(id); + } +} + +// remove all items from a partition +function deletePartition(id) { + if (getValue(cellId[id].obj[table.partition_key]) == "~new~") { + alert("New partitions cannot be deleted."); + return; + } + + alertData = { + caller: "deletePartition", + data: getValue(cellId[id].obj[table.partition_key]) + }; + + $("#alertTitle h1").text("Delete Partition"); + $("#alertText").text(`All items in the '${alertData.data}' partition will be deleted, continue?`); + + $("#alertModal").show(); +} + +// remove an item from the model +function deleteItem(id) { + alertData = { + caller: "deleteItem", + data: id + }; + + var PK = getValue(cellId[id].obj[table.partition_key]), + SK = getValue(cellId[id].obj[table.sort_key]), + message = ""; + + if (PK == "~new~") + message = "Items cannot be deleted from new partitions."; + + if (SK == "~new~") + message = "New Items cannot be deleted."; + + if ( message != "") { + loadDataModel(); + return; + } + + $("#alertTitle h1").text("Delete Item"); + $("#alertText").text(`Item key '${PK}, ${SK}' will be deleted, continue?`); + + $("#alertModal").show(); +} + +// refresh the table view +function showTable() { + // reset the table display + $("#primary_table").html(''); + + // build the table html + makeTable(table); + + // build the HTML and add a tab for each index + $.each(datamodel.GlobalSecondaryIndexes, function(index, gsi) { + makeIndex(gsi); + }); + + $("#aboutDiv").hide(); + $("#tabDiv").show(); + $("#tabs").show(); + $("#fileDiv").hide(); + $("#tableDivButton").className += " active"; + + $(".tabable").mousedown(function(eventData) { + var id = $(this).attr("id"); + selectId = cellId[id]; + mouseDown = true; + if (eventData.which === 3) { + $(jq(id)).selectText(parseInt(id.substr(4))); + } + }); +} + +// generate the HTML for the table +function makeTable(table) { + // set the working configuration for the HTML generator + partition_key = table.partition_key; + sort_key = table.sort_key; + sortkey_datatype = table.sortkey_datatype; + + // group and sort the object list + sortObjectList(); + + // generate HTML for the table + var html = '
Primary Key
'; + + + html += generate(true); + + // add generated HTML to the primary_table element and set titles and styles + $("#primary_table").html(html); + $(".basetable_title").text(table.name); + $(".tablediv").css('display', '-webkit-box'); + $(".classprimaryKey").css('width', '400'); + + + // focus the first cell or selected object + var focusCell = selectId == null || Object.keys(selectId).length == 0 ? boundary.first : selectId; + $.each(cellId, function(prop, val) { + if (val.PK == focusCell.PK && val.SK == focusCell.SK && val.attr == focusCell.attr) { + $(jq(prop)).trigger("focus"); + return false; + } + }); + + // remove all index tab content + $.each($(".tabcontent"), function (idx, obj) { + if (obj.id != "tablediv") { + $(jq(obj.id)).remove(); + } + }); + + // remove index tab buttons + $.each($(".tablinks"), function (idx, obj) { + if (obj.id != "tableDivButton") + $(jq(obj.id)).remove(); + }); +} + +// generate the HTML and construct the tab element for an index +function makeIndex(index) { + // set the working configuration for the HTML generator + partition_key = index.KeyAttributes.PartitionKey.AttributeName; + sort_key = index.KeyAttributes.SortKey.AttributeName; + sortkey_datatype = index.KeyAttributes.SortKey.AttributeType; + + // group and sort the object list + sortObjectList(); + + // set base element name + var element = "#" + index.IndexName; + + // if this tab already exists then remove it + if ($(element + "_tab").length) + $(element + "_tab").remove(); + + // generate the HTML for this index + var html = '
'; + html += ''; + html += generate(false); + html += ""; + + // add the html to the tab control + $("#tabs").append(html); + + // if the button for this index tab exists then remove it + if ($(element + "_btn").length) + $(element + "_btn").remove(); + + // build the button for the HTML and add it to the tab control + html = '' + $("#tabDiv").append(html); +} + +// build the html for a table or index view +function generate(isTable) { + // container for sort row html + var sort_row = '', + maxLength = 0; + // column span for partition key column + var partition_colspan = 1; + + // Add sort key to table header if it exists + if (sort_key && sort_key != '') { + sort_row = ''; + } else { + sort_row = ''; + partition_colspan = 2; + } + + // find the max length of all rows to calculate cell width + $.each(json_data, function(index, object) { + // Record max width for the table + if (maxLength < Object.keys(object).length) + maxLength = Object.keys(object).length; + }); + + // set the tab index + tabIndex = 1; + // Build a row for each Item in the TableData array + var row_html = ''; + + $.each(sortObjectList(), function(index, tr_arr) { + var tbody_html = '', + PK = '', + SK = '', + dispVal = '', + id = ''; + + $.each(tr_arr, function(count, obj) { + // Check if partition key exists on this item and skip it if not + if (!obj.hasOwnProperty(partition_key)) { + return true; + } + + //Check for sort key and skip item if does not exist + if (sort_key && sort_key != '') { + if (!obj.hasOwnProperty(sort_key)) { + return true; + } + } + + tbody_html = ''; + + let type = (obj && obj.type) ? obj.type.S : null; + let entity = type ? schema.models[type] : null; + + // If its the first cell insert the partition key value and span all the rows for the objects in this partition otherwise skip + if (count == 0) { + if (!showValues && entity) { + if (entity[partition_key]) { + PK = dispVal = entity[partition_key].value || entity[partition_key].type; + } else { + PK = getValue(obj[partition_key]); + } + } else { + PK = getValue(obj[partition_key]); + // set the default display value + dispVal = PK; + } + + // if this is the table then its editable + if (isTable) { + id = "cell" + tabIndex; + + // if this is a new partition then set the focus on it when the table renders + if (PK == "~new~") + selectId = { + PK: "~new~", + attr: partition_key + }; + + if (!boundary.first.hasOwnProperty("PK")) + boundary.first = { + PK: PK, + attr: partition_key + }; + + cellId[id] = { + PK: PK, + attr: partition_key, + type: type, + obj: obj + } + + // wrap the partition key value in a contenteditable div using the cellId value as element id and hook the relevant handlers + dispVal = buildKeyCell(id); + } + + // add the cell to the row + tbody_html += ''; + } + + // Insert sort key value for the Item + if (sort_key && sort_key != '') { + id = "cell" + tabIndex; + if (!showValues && entity) { + if (entity[sort_key]) { + SK = dispVal = entity[sort_key].value || entity[sort_key].type; + } else { + SK = getValue(obj[sort_key]); + } + } else { + SK = getValue(obj[sort_key]); + // set the default display value + dispVal = SK.startsWith("~new~") ? "~new~" : SK; + } + + // if this is the table then its editable + if (isTable) { + cellId[id] = { + PK: PK, + SK: SK, + attr: sort_key, + type: type, + obj: obj + } + + // wrap the partition key value in a contenteditable div using the PK value as element id and hook the relevant handlers + dispVal = buildKeyCell(id); + } + + // add the cell to the row + tbody_html += ''; + } + + // build header and value rows for the Item + var header = ''; + var row = ''; + $.each(obj, function(name, value) { + id = "cell" + tabIndex; + if (name == partition_key || name == sort_key) + return true; + + // start building the header cell + header += ''; + + // if this is not a map attribute then add the value cell + if (Object.keys(value)[0] != 'M') { + if (!showValues && entity && entity[name]) { + if (name == 'type') { + dispVal = getValue(value); + } else { + dispVal = entity[name].value || entity[name].type || getValue(value); + } + } else { + dispVal = getValue(value); + if (dispVal == '~new~' && entity && entity[name] && entity[name].default) { + displVal = entity[name].default + } + } + if (isTable) { + id = "cell" + tabIndex; + cellId[id] = { + PK: PK, + SK: SK, + attr: name, + type: type, + obj: obj + } + + boundary.last = cellId[id]; + + dispVal = '
' + dispVal + '
'; + } + row += ''; + } else { + // this is a map attribute so push the value onto the vals array + vals.push(value); + // link the map in the value cell + // TODO - implement map editor + row += ''; + } + }); + + // finish the header/value rows and add them to the Item row + header += ''; + row += ''; + tbody_html += header; + tbody_html += row; + + //Add the Item row to the Item row collection HTML + row_html += tbody_html; + }); + }); + + // add the undo button if this is the table view + var backDiv = ""; + if (isTable) { + backDiv = ''; + + if (showValues) + backDiv += ''; + else + backDiv += ''; + } + + // build the table HTML + var html = ''; + html += ''; + html += sort_row + ''; + html += row_html; + html += ""; + + return html; +} + +// create the HTML for the controls in a key cell +function buildKeyCell(id) { + var keypress = '"updatePK(\'' + id + '\')"', + css = "PK-context-menu tab"; + + if (cellId[id].attr == sort_key) { + keypress = '"updateItem(\'' + id + '\')"'; + css = "SK-context-menu tab"; + } + + retVal = '
' + buildButtonHtml(id) + '
'; + + return retVal; +} + +// construct the button HTML for a key cell +function buildButtonHtml(id) { + var add = '"addItemClick(\'' + id + '\')"', + remove = '"deletePartition(\'' + id + '\')"', + text = cellId[id].PK, + title1 = "Add Item", + title2 = "Delete Partition"; + + if (cellId[id].attr == table.sort_key) { + add = '"addAttribute(\'' + id + '\', \'~new~\')"'; + remove = '"deleteItem(\'' + id + '\')"'; + text = cellId[id].SK; + title1 = "Add Attribute"; + title2 = "Delete Item"; + } + + text += '
' + + return text; +} + +// process value templates and generate values +function expandValueTemplates() { + for (let item of datamodel.TableData) { + for (let [name, value] of Object.entries(item)) { + if (!item.type) continue + let type = Object.values(item.type)[0] + if (type == '~new~') continue + + let entity = schema.models[type] + if (!entity) continue + + let field = entity[name] + if (!field || !field.value) continue + + let text = field.value.replace(/\${(.*?)}/g, (pattern, varName) => { + return item[varName] ? Object.values(item[varName])[0] : pattern + }) + if (text != value) { + item[name] = { 'S' : text } + } + } + } +} + +// choose a table to view from the model +function selectTable() { + $("#selectTableDiv").show(); +} + +function getCookie(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for(var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; +} + +function setCookie(cname,cvalue,exdays) { + var d = new Date(); + d.setTime(d.getTime() + (exdays*24*60*60*1000)); + var expires = "expires=" + d.toGMTString(); + document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; +} + +// parse the json file coming from the file loader +function onReaderLoad(event) { + if (alertData.caller == "loadModel") { + model = JSON.parse(event.target.result); + + // Clear out prior schema + schema = Object.assign({}, DefaultSchema) + + findDataModels(); + + if (model.hasOwnProperty("ModelSchema")) { + model.DataModel[modelIndex].ModelSchema = model.ModelSchema; + delete model.ModelSchema; + } + + loadDataModel(); + } else { + credentials = JSON.parse(event.target.result); + + initDynamoClient(); + + if ($("#saveCookie").is(":checked")) + setCookie("credentials", JSON.stringify(credentials), 365); + } + + $("#importFile").val(""); + alertData = {}; +} + +function initDynamoClient() { + AWS.config.update(credentials); + dynamodb = new AWS.DynamoDB(); + client = new AWS.DynamoDB.DocumentClient({maxRetries: 20, httpOptions: {connectTimeout: 500}}); + + var params = {}; + + dynamodb.listTables(params, function(err, data) { + if (err) + console.log(err, err.stack); + else { + accountTables = data; + + // initialize the dropdown + $("#acctTable").empty(); + // add the default selected item + $("#acctTable").append(''); + + $.each(data.TableNames, function(idx, table) { + $("#acctTable").append(``); + }); + + $("#loadFromTable").show(); + $("#saveToTable").show(); + $("#loadCreds").hide(); + } + }); +} + +function describeTable(params) { + dynamodb.describeTable(params, function (err, data) { + if (err) + console.log(err, err.stack); // an error occurred + else { + $.each(data.Table.KeySchema, function (idx, key) { + if (key.KeyType == "HASH") { + alertData.PK = key.AttributeName; + } else { + alertData.SK = key.AttributeName; + } + }); + } + }); +} + +function togglePKdiv() { + $("#customPKDiv").toggle($("#customPK").is(":checked")); +} + +function saveToTable() { + var params = { + TableName: saveTable + }; + + describeTable(params); + + let item = {}; + item[alertData.PK] = "_schema"; + item[alertData.SK] = model.ModelName; + item.Schema = model; + + params.Item = item; + + client.put(params, function (err, data) { + if (err) { + if (err.message.includes("Missing the key")) + saveToTable(); + else + console.log(err); + } else { + alertData = {}; + $("#schemaTableDiv").hide(); + } + }); +} + +function schemaTable() { + initDynamoClient(); + if (alertData.caller == "save") { + saveTable = $("#acctTable").val(); + saveToTable(); + } + else + loadFromTable(); +} + +function loadModels() { + if (alertData.caller == "save") + return; + + var params = { + TableName: $("#acctTable").val() + }; + + describeTable(params); + + params = { + TableName: $("#acctTable").val(), + KeyConditionExpression: "#pk = :val", + ExpressionAttributeNames: { + "#pk": alertData.PK + }, + ExpressionAttributeValues: { + ":val": "_schema" + } + }; + + alertData.models = {}; + + client.query(params, function(err, data) { + if (err) { + if (err.message.includes("ExpressionAttributeNames")) + loadModels(); + else + console.log(err); + } else { + // initialize the dropdown + $("#selectModel").empty(); + // add the default selected item + $("#selectModel").append(''); + + $.each(data.Items, function(idx, item) { + $("#selectModel").append(``); + alertData.models[item[alertData.SK]] = item.Schema; + }); + + $("#modelDiv").show(); + } + }); +} + +function loadFromTable() { + model = alertData.models[$("#selectModel").val()]; + alertData = {}; + $("#modelDiv").hide(); + $("#schemaTableDiv").hide(); + loadDataModel(); +} + +function scanTable() { + var params = { + TableName: $("#acctTable").val() + }; + + model = { + "ModelName": "Hospital", + "ModelMetadata": { + "Author": "", + "DateCreated": "Nov 24, 2020, 08:00 PM", + "DateLastModified": "Apr 17, 2021, 01:07 PM", + "Description": "", + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }, + DataModel: [{ + TableName: $("#acctTable").val() + }] + }; + + dynamodb.describeTable(function(err, data) { + + }); + + params.Limit = $("#txtItemCount").val(); + + client.scan(params, onScan); + //loadDataModel(); +} + +function onScan(err, data) { + if (err) { + console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2)); + } else { + + data.Items.forEach(function(item) { + alert(JSON.stringify(item)); + // TODO - load Items into tableData + }); + + if (typeof data.LastEvaluatedKey != "undefined") { + params.ExclusiveStartKey = data.LastEvaluatedKey; + docClient.scan(params, onScan); + } + } +} + +// load the table data models into the view table dropdown +function findDataModels() { + // initialize the dropdown + $("#viewTable").empty(); + + // add the default selected item + $("#viewTable").append(''); + + // add an option for each table in the model + $.each(model["DataModel"], function (idx, obj) { + $("#viewTable").append(``); + }); + + // add the create new table option + $("#viewTable").append(''); +} + +// add a new table to the model +function addTable() { + $("#title h1").text("Create Table"); + $("#idx_lbl").text("Table name:"); + $("#tbSort").show(); + $("#dropSort").show(); + $("#projection_cfg").hide(); + $('#createTableOrIndex').toggle(); +} + +/* + Create a schema from the data in a workbench model + */ +function createSchema() { + schema = Object.assign({}, DefaultSchema) + let {data, indexes, models, queries} = schema + let keys = datamodel.KeyAttributes + + /* + Extract indexes + */ + indexes.primary = { + hash: keys.PartitionKey.AttributeName, + sort: keys.SortKey.AttributeName, + } + for (let gsi of datamodel.GlobalSecondaryIndexes) { + indexes[gsi.IndexName] = { + hash: gsi.KeyAttributes.PartitionKey.AttributeName, + sort: gsi.KeyAttributes.SortKey.AttributeName, + projection: gsi.Projection.ProjectionType, + } + } + + /* + Extract the schema entity models + */ + for (let row of datamodel.TableData) { + let entity + if (row.type) { + let type = Object.values(row.type)[0] + entity = schema.models[type] = schema.models[type] || {} + } + /* + Extract the attributes, map the types and save the data to the schema.data (future) + */ + let drow = {} + for (let [fieldName, col] of Object.entries(row)) { + if (entity) { + let field = entity[fieldName] = entity[fieldName] || {} + field.type = dynamoToType(Object.keys(col)[0]) + } + drow[fieldName] = Object.values(col)[0] + } + data.push(drow) + } + /* + Apply the value templates + */ + for (let [type, fn] of Object.entries(keys.PartitionKey.MapFunction || {})) { + schema.models[type][keys.ParitionKey.AttributeName].value = fn + } + for (let [type, fn] of Object.entries(keys.SortKey.MapFunction || {})) { + schema.models[type][keys.SortKey.AttributeName].value = fn + } + for (let att of datamodel.NonKeyAttributes) { + for (let [type, fn] of Object.entries(att.MapFunction || {})) { + schema.models[type][att.AttributeName].value = fn + } + } + + datamodel.ModelSchema = schema; +} + +// load the current data model for the viewer +function loadDataModel() { + datamodel = model.DataModel[modelIndex]; + + if (!datamodel.hasOwnProperty("ModelSchema")) + createSchema(); + else + schema = datamodel.ModelSchema; + + table = { + name: datamodel.TableName, + partition_key: datamodel.KeyAttributes.PartitionKey.AttributeName, + sort_key: datamodel.KeyAttributes.SortKey.AttributeName, + sortkey_datatype: datamodel.KeyAttributes.SortKey.AttributeType + }; + + if (!tableChanges.hasOwnProperty(datamodel.TableName)) + tableChanges[datamodel.TableName] = []; + + expandValueTemplates(); + json_data = datamodel.TableData; + + if (match_data.length > 0) + json_data = match_data; + + if (!table.hasOwnProperty(("partition_key"))) { + alert("Invalid Table Specification."); + location.reload(); + } + + // render the table + showTable(); +} + +// download the model in JSON format +function saveModel() { + if (!model.hasOwnProperty("ModelName")) { + var date = new Date(); + + model.ModelName = "export"; + model.ModelMetadata = { + "Author": "unknown", + "DateCreated": date.toDateString(), + "DateLastModified": date.toDateString(), + "Description": "", + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }; + } + + if (datamodel.ModelSchema.data) + delete datamodel.ModelSchema.data; + + save(JSON.stringify(model), model.ModelName + ".json", "json"); +} + +// save the file +function save(data, filename, type) { + var file = new Blob([data], {type: type}); + if (window.navigator.msSaveOrOpenBlob) // IE10+ + window.navigator.msSaveOrOpenBlob(file, filename); + else { // Others + var a = document.createElement("a"), + url = URL.createObjectURL(file); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + setTimeout(function() { + document.body.removeChild(a); + window.URL.revokeObjectURL(url); + }, 0); + } +} + +// store a copy of the current datamodel in the history buffer +function makeChange() { + //MOB - must save schema here somehow + tableChanges[model.DataModel[modelIndex]["TableName"]].push(JSON.parse(JSON.stringify(datamodel))); + + // if the buffer is too long then trim the oldest change + if (tableChanges[model.DataModel[modelIndex]["TableName"]].length > 50) + tableChanges[model.DataModel[modelIndex]["TableName"]].shift(); +} + +// undo the last edit to the model +function undoChange() { + // if there are changes then undo the last one + if (tableChanges[model.DataModel[modelIndex]["TableName"]].length > 0) { + // pop the last change into the current datamodel and reset the config + model.DataModel[modelIndex] = tableChanges[model.DataModel[modelIndex]["TableName"]].pop(); + } + + selectId = boundary.first; + loadDataModel(); +} + +// Build a map of unique attribute values by attribute name and identify typed objects +function findValues() { + $.each(json_data, function(index, obj) { + $.each(obj, function(name, propVal) { + if (!unique_values.hasOwnProperty(name)) { + unique_values[name] = []; + } + + var value = propVal[Object.keys(propVal)[0]]; + if (!unique_values[name].includes(value)) { + unique_values[name].push(value); + } + }); + addEntityToSchema(obj); + }); +} + +// scan object templates and add new types +function addEntityToSchema(obj) { + var type = getValue(obj.type); + if (type != '~new~' && !schema.models[type]) { + // add the type template object + schema.models[type] = {type: { type: 'String', required: true, value: type }}; + + // add all the attributes from this object to the template + $.each(Object.keys(obj), function (idx, key) { + schema.models[type][key] = { type: 'String' }; + }); + } +} + +// move a partition up or down in the display order +function movePartition(moveUp) { + var index = -1; + + $.each(unique_values[table.partition_key], function (idx, unique) { + if (unique == selectId.PK) { + index = idx; + return false; + } + }); + + if (index >= 0) { + var temp = unique_values[table.partition_key][index], + swap = index + 1; + + if (moveUp) + swap = index - 1; + + unique_values[table.partition_key][index] = unique_values[table.partition_key][swap]; + unique_values[table.partition_key][swap] = temp; + } + + var newKeySort = []; + $.each(unique_values[table.partition_key], function(idx, unique) { + $.each(json_data, function(idx, obj) { + if (getValue(obj[table.partition_key]) == unique) + newKeySort.push(obj); + }); + }); + + makeChange(); + model.DataModel[modelIndex].TableData = newKeySort; + loadDataModel(); +} + +// group objects by current partion key, sorted by current sort key +function sortObjectList() { + var sortedItems = []; + unique_values = {}; + + findValues(); + + // Group the JSON Objects by partition key + $.each(unique_values[partition_key], function(index, unique) { + var newArr = []; + $.each(json_data, function(index, obj){ + if ( obj.hasOwnProperty(partition_key) && unique === getValue(obj[partition_key]) ) { + if (sort_key && sort_key != '' && obj.hasOwnProperty(sort_key)) + newArr.push(obj); + } + }); + + // If there is a sort key then sort all the JSON objects by type + if (sort_key && sort_key != '') { + if (sortkey_datatype == 'N') { + newArr.sort((a,b) => (parseInt(a[sort_key].N) > parseInt(b[sort_key].N) ? 1 : -1)); + } else { + try { + newArr.sort((a,b) => (a[sort_key].S > b[sort_key].S ? 1 : -1)); + } catch(e) { + //no sort key on these items + } + } + } + sortedItems.push(newArr); + }); + + return sortedItems; +} + +// select the text inside the focused table element +jQuery.fn.selectText = function(idx){ + idx++; + + if ( !cellId.hasOwnProperty("cell" + idx) ) + idx--; + + selectId = cellId["cell" + idx]; + + mouseDown = false; + var doc = document; + var element = this[0]; + console.log(this, element); + if (doc.body.createTextRange) { + var range = document.body.createTextRange(); + range.moveToElementText(element); + range.select(); + } else if (window.getSelection) { + var selection = window.getSelection(); + var range = document.createRange(); + range.selectNodeContents(element); + range.setEnd(element, 1); + selection.removeAllRanges(); + selection.addRange(range); + } + + buildContextMenus(); +}; + +// create a fake UUID +function fakeUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} + +// onclick event for Question dialog +function postResponse() { + $("#alertModal").hide(); + + var new_data = []; + + switch (alertData.caller) { + case "createModel": + if (response == '0') + $("#createModelDiv").show(); + break; + + case "deletePartition": + $.each(json_data, function (idx, obj) { + if (getValue(obj[datamodel.KeyAttributes.PartitionKey.AttributeName]) != alertData.data) + new_data.push(obj); + }); + break; + + case "cutItem": + case "copyItem": + case "deleteItem": + var PK = getValue(cellId[alertData.data].obj[table.partition_key]), + SK = getValue(cellId[alertData.data].obj[table.sort_key]); + + $.each(json_data, function (idx, obj) { + if (getValue(obj[table.partition_key]) == PK && getValue(obj[table.sort_key]) == SK) + pasteItem = obj; + else + new_data.push(obj); + }); + break; + + default: + alertData = ""; + break; + } + + if (alertData.caller.startsWith("delete") || alertData.caller.startsWith("cut")) { + showValues = true; + makeChange(); + model.DataModel[modelIndex].TableData = new_data; + loadDataModel(); + pasteItem = alertData.caller == "cutItem" ? pasteItem : {}; + } +} + +// delete an attribute from an entity type +function removeAttr(applyAll) { + var PK = selectId.PK, + SK = selectId.SK, + attr = selectId.attr, + type = ""; + + makeChange(); + $.each(json_data, function(idx, obj) { + if (getValue(obj[table.partition_key]) == PK && getValue(obj[table.sort_key]) == SK) { + delete obj[attr]; + type = getValue(obj.type); + return false; + } + }); + + if (applyAll) { + $.each(json_data, function(idx, obj) { + if (getValue(obj["type"]) == type) + delete obj[attr]; + }); + if (schema.models[type]) { + delete schema.models[type][attr]; + } + } + + selectId.attr = table.sort_key; + $("#removeAttributeModal").hide(); + loadDataModel(); +} + +// create a mapping for an entity attribute +function createMapping(type, name, value) { + schema.models[type][name].value = value + + /* + makeChange(); + switch (alertData.caller) { + case table.partition_key: + if (!datamodel.KeyAttributes.PartitionKey.hasOwnProperty("MapFunction")) + datamodel.KeyAttributes.PartitionKey.MapFunction = {}; + + datamodel.KeyAttributes.PartitionKey.MapFunction[alertData.data.type] = alertData.data.function; + break; + + case table.sort_key: + if (!datamodel.KeyAttributes.SortKey.hasOwnProperty("MapFunction")) + datamodel.KeyAttributes.SortKey.MapFunction = {}; + + datamodel.KeyAttributes.SortKey.MapFunction[alertData.data.type] = alertData.data.function; + break; + + default: + $.each(datamodel.NonKeyAttributes, function (idx, attr) { + if (attr.AttributeName == alertData.caller) { + if (!attr.hasOwnProperty("MapFunction")) + attr.MapFunction = {}; + attr.MapFunction[alertData.data.type] = alertData.data.function; + } + }); + break; + } + if (loadModel) { + loadDataModel(); + } + */ +} + +// get the backing Item for a table cell by cellId +function findItemByCellId(id) { + var item = null; + $.each(json_data, function(idx, obj) { + if (getValue(obj[table.partition_key]) == cellId[id].PK && getValue(obj[table.sort_key]) == cellId[id].SK) { + item = obj; + return false; + } + }); + + return item; +} + +// update the entity type in the Mapping Function modal when it is changed +function setType() { + if (datamodel.KeyAttributes.PartitionKey.hasOwnProperty("MapFunction")) + if (datamodel.KeyAttributes.PartitionKey.MapFunction.hasOwnProperty($("#selectType").val())) + $("#txtMapFunction").val(datamodel.KeyAttributes.PartitionKey.MapFunction[$("#selectType").val()]); + + $("#txtMapFunction").prop("disabled", false); + $("#btnDefineMap").prop("disabled", false); + alertData.data.type = $("#selectType").val(); + $("#lblEditMap").text("Enter Mapping Function for '" + alertData.data.type + "." + alertData.caller + "' attribute:"); + $("#txtMapFunction").focus(); +} + +// initialize and show the Value Template modal +function showValueTemplate(id) { + alertData.data = {}; + alertData.caller = cellId[id].attr; + + $('#selectType') + .find('option') + .remove() + .end() + .append(''); + + if (alertData.caller == table.partition_key) { + $("#txtMapFunction").prop("disabled", true); + $("#btnDefineMap").prop("disabled", true); + + $.each(schema.models, function(prop, val) { + $("#selectType").append($('').val(prop).html(prop)); + }); + $("#selectTypeDiv").show(); + } else { + var item = findItemByCellId(id); + alertData.data.type = getValue(item.type); + $("#lblEditMap").text("Enter Mapping Function for '" + alertData.data.type + "." + alertData.caller + "' attribute:"); + } + + switch (alertData.caller) { + case table.sort_key: + if (datamodel.KeyAttributes.SortKey.hasOwnProperty("MapFunction")) + if (datamodel.KeyAttributes.SortKey.MapFunction.hasOwnProperty(alertData.data.type)) + $("#txtMapFunction").val(datamodel.KeyAttributes.SortKey.MapFunction[alertData.data.type]); + break; + + default: + $.each(datamodel.NonKeyAttributes, function(idx, obj) { + if (obj.AttributeName == alertData.caller && obj.hasOwnProperty("MapFunction")) + if (obj.MapFunction.hasOwnProperty(alertData.data.type)) + $("#txtMapFunction").val(obj.MapFunction[alertData.data.type]); + }); + break; + } + + $("#defineValueTemplateDiv").show(); + $("#txtMapFunction").focus(); +} + +// construct the context menus for the table cells +function buildContextMenus() { + $.contextMenu( 'destroy' ); + var items = {}; + + $.each(datamodel.NonKeyAttributes, function(idx, attr) { + if (!selectId.obj.hasOwnProperty(attr.AttributeName)) + items[attr.AttributeName] = {name: attr.AttributeName}; + }) + + if (Object.keys(items).length > 0) + $.contextMenu({ + selector: '.attribute-context-menu', + callback: function(key, options) { + selectId.attrName = key; + nameAttribute($(this).attr("id")); + }, + items: items + }); + + items["new"] = {name: "New attribute..."}; + + items = { + "add": { + name: "Add Attribute", + icon: "fa-plus", + items: items + }, + "cut": {name: "Cut Item", icon: "fa-cut"}, + "copy": {name: "Copy Item", icon: "fa-copy"}, + "delete": {name: "Delete Item", icon: "fa-minus"}, + "function": { + name: "Edit Value Template", + icon: "fa-wrench" + }, + "insert": { + name: "Generate Value", + items: { + "uuid": { name: "UUID", icon: "fa-fingerprint" }, + "date": { name: "ISO8601 Date String", icon: "fa-clock" } + }, + icon: "fa-clone" + } + }; + + $.contextMenu({ + selector: '.SK-context-menu', + callback: function(key, options) { + switch (key) { + case "date": + $(this).text(new Date().toISOString().split(".")[0]); + selectId.SK = $(this).text(); + setValue($(this).attr("id")); + break; + + case "uuid": + $(this).text(fakeUUID()); + selectId.SK = $(this).text(); + setValue($(this).attr("id")); + break; + + case "cut": + alertData.caller = "cutItem"; + alertData.data = $(this).attr("id"); + postResponse(); + break; + + case "copy": + alertData.caller = "copyItem"; + alertData.data = $(this).attr("id"); + postResponse(); + break; + + case "delete": + deleteItem($(this).attr("id")); + break; + + case "function": + showValueTemplate($(this).attr("id")); + break; + + default: + addAttribute($(this).attr("id"), key == "new" ? "~new~" : key); + break; + } + }, + items: items + }); + + $.contextMenu({ + selector: '.cell-context-menu', + callback: function(key, options) { + switch (key) { + case "date": + $(this).text(new Date().toISOString().split(".")[0]); + setValue($(this).attr("id")); + break; + + case "uuid": + $(this).text(fakeUUID()); + setValue($(this).attr("id")); + break; + + case "delete": + selectId = cellId[$(this).attr("id")]; + $("#removeAttributeModal").show(); + break; + + case "function": + showValueTemplate($(this).attr("id")); + break; + } + }, + items: { + "delete": { + name: "Delete Attribute", + icon: "fa-minus", + disabled: function(key, opt) { + return cellId[$(this).attr("id")].attr == "type"; + } + }, + "function": { + name: "Edit Value Template", + icon: "fa-wrench", + disabled: function(key, opt) { + return cellId[$(this).attr("id")].attr == "type"; + } + }, + "insert": { + name: "Generate Value", + items: { + "uuid": { name: "UUID", icon: "fa-fingerprint" }, + "date": { name: "ISO8601 Date String", icon: "fa-clock" } + }, + icon: "fa-clone" + } + } + }); + + items = { + "add": {name: "Add Item", icon: "fa-plus"}, + "paste": { + name: "Paste Item", + icon: "fa-paste", + disabled: function(key, opt) { + return Object.keys(pasteItem).length == 0; + } + }, + "delete": {name: "Delete Partition", icon: "fa-minus"}, + "function": { + name: "Edit Value Template", + icon: "fa-wrench" + }, + "moveUp": { + name: "Move Up", + icon: "fa-arrow-up", + disabled: function(key, opt) { + return unique_values[table.partition_key][0] == cellId[$(this).attr("id")].PK; + } + }, + "moveDown": { + name: "Move Down", + icon: "fa-arrow-down", + disabled: function(key, opt) { + return unique_values[table.partition_key][unique_values[table.partition_key].length - 1] == cellId[$(this).attr("id")].PK; + } + } + }; + + $.contextMenu({ + selector: '.PK-context-menu', + callback: function(key, options) { + switch (key) { + case "add": + addItemClick($(this).attr("id")); + break; + + case "delete": + deletePartition($(this).attr("id")); + break; + + case "paste": + selectId.SK = pasteItem.SK; + selectId.attr = table.sort_key; + addItem($(this).attr("id")); + loadDataModel(); + break; + + case "moveUp": + case "moveDown": + selectId = cellId[$(this).attr("id")]; + movePartition(key == "moveUp"); + break; + + case "function": + showValueTemplate($(this).attr("id")); + break; + } + }, + items: items + }); + + items = { + "add": { + name: "Add Attribute", + icon: "fa-plus" + }, + "cut": {name: "Cut Item", icon: "fa-cut"}, + "copy": {name: "Copy Item", icon: "fa-copy"}, + "delete": {name: "Delete Item", icon: "fa-minus"}, + "function": { + name: "Edit Value Template", + icon: "fa-wrench" + }, + "insert": { + name: "Generate Value", + items: { + "uuid": { name: "UUID", icon: "fa-fingerprint" }, + "date": { name: "ISO8601 Date String", icon: "fa-clock" } + }, + icon: "fa-clone" + } + }; + + $.contextMenu({ + selector: '.SK-context-menu', + callback: function(key, options) { + switch (key) { + case "date": + $(this).text(new Date().toISOString().split(".")[0]); + selectId.SK = $(this).text(); + setValue($(this).attr("id")); + break; + + case "uuid": + $(this).text(fakeUUID()); + selectId.SK = $(this).text(); + setValue($(this).attr("id")); + break; + + case "cut": + alertData.caller = "cutItem"; + alertData.data = $(this).attr("id"); + postResponse(); + break; + + case "copy": + alertData.caller = "copyItem"; + alertData.data = $(this).attr("id"); + postResponse(); + break; + + case "delete": + deleteItem($(this).attr("id")); + break; + + case "function": + showValueTemplate($(this).attr("id")); + break; + } + }, + items: items + }); +} + +function toggleSchema() { + showValues = !showValues + showTable(); +} + +function getModel(type) { + return schema.models.find(m => m.type == type) +} + +function dynamoToType(dtype) { + switch (dtype) { + case 'B': + return 'Binary' + case 'BOOL': + return 'Boolean' + case 'S': + return 'String' + case 'N': + return 'Number' + case 'SS': + return 'Set' + default: + return 'String' + } +} + +function typeToDynamo(type) { + switch (type) { + case 'Binary': + return 'B' + case 'Boolean': + return 'BOOL' + case 'Date': + return 'S' + case 'Number': + return 'N' + case 'Set': + // need support for SS, NS, BS + return 'SS' + default: + return 'S' + } +} + + +// Just for debug +dump = (...args) => { + let s = [] + for (let item of args) { + s.push(JSON.stringify(item, function (key, value) { + if (this[key] instanceof Date) { + return this[key].toLocaleString() + } + return value + }, 4)) + } + print(s.join(' ')) +} +print = (...args) => { + console.log(...args) +} diff --git a/static/files/visualizer/js/globals.js b/static/files/visualizer/js/globals.js new file mode 100644 index 0000000..2db5ce0 --- /dev/null +++ b/static/files/visualizer/js/globals.js @@ -0,0 +1,112 @@ +var // container for the data model + model = {}, + // pointer to model.DataModel[modelIndex] + datamodel = {}, + // pointer to model.DataModels[0].TableData + json_data = [], + // container for change history (up to 50 revisions per table in the model) + tableChanges = {}, + // container for the current table + // properties: name, partition_key, sort_key, sortkey_datatype + table = {}, + // holders for the current keys and data types used by makeTable()/makeIndex()/generate() + partition_key, + sort_key, + sortkey_datatype, + // list of unique values by attribute name + unique_values = {}, + // gsi projection settings for new GSI + gsi_attrkey = 'all', + gsi_attrlist = [], + // list of values from attributes with Map type + vals = [], + // Attribute element counter + tabIndex = 0, + // the object to focus when table is rendered + selectId = {}, + // keypress event flag; + fired = true, + // current DataModel index + modelIndex = 0, + // container for alert data + alertData = { + caller: "", + data: "" + }, + // onClick event indicator to avoid double firing updates + mouseDown = false, + // container to hold first and last Attribute cells + boundary = { + first: {}, + last: {} + }, + // container for Attribute cell metadata + cellId = {}, + // the Item clipboard + pasteItem = {}, + // number of filters for the currently loaded query + numFilters = 0, + // collection of items matching the current query + match_data = [], + // Show values vs types/templates + showValues = true, + // AWS account credentials + credentials, + client, + dynamodb, + accountTables, + saveTable; + +const DefaultSchema = { + indexes: {}, + models: {}, + queries: {}, + data: [], +} + +const types = { + "String": "S", + "Number": "N", + "Binary": "B", + "Boolean": "BOOL", + "Null": "NULL", + "Map": "M", + "List": "L", + "StringSet": "SS", + "NumberSet": "NS", + "BinarySet": "BS" +} + +/* + Schema defining indexes, entity models. +*/ +var schema = { + indexes: { /* + primary: { hash: 'partition-key-name', sort: 'sort-key-name' } + gs1: { hash: 'partition-key-name', sort: 'sort-key-name' } + */ }, + models: { /* + map String. Either simple attribute name or "attribute.property". + default String. Default value string or function. + foreign String. Reference to another entity model (model:keys) + nulls Boolean. Allow property to be set to null. + required Boolean. Attribute is always required. + size Number. Maximum size of the data value + type String: String, Boolean, Number, Date, Set, Buffer, Binary, Set, Object, Array + validate String. Regular expression to match data (/regexp/qualifiers) + value String|Function. Value string template, function (mapping function) + unique Boolean. Attribute must have a unique value + + // Not proposed to implement + crypt Boolean + enum Array of values + filter Boolean. Prevent a property from being used in a filter + hidden Boolean Don't return the attributes to API callers. + transform Transform hook function + uuid ‘uuid | ulid | ksuid' + */ }, + + // Present on import / export + queries: {}, + data: {}, +} \ No newline at end of file diff --git a/static/files/visualizer/js/jquery-3.5.1.min.js b/static/files/visualizer/js/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/static/files/visualizer/js/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"
Primary Key' + sort_key + '
' + dispVal + '' + dispVal + '' + var tail = ""; + + // if this is a new attribute then it needs to be editable + if (isTable && name == "~new~") { + cellId[id] = { + PK: getValue(obj[partition_key]), + SK: getValue(obj[sort_key]), + attr: "new", + type: type, + obj: obj + } + + // store attribute name cell id in the focus pointer + selectId = cellId[id]; + + // wrap the attribute name in a contenteditable div and hook the relevant event handlers + header += '
'; + tail = "
"; + } + + // finish the header cell + header += name + tail + '
' + dispVal + '...
Attributes' + backDiv + '
' + partition_key + '
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0= 0) { + alert("Map Functions cannot reference the destination attribute."); + return; + } + + var valueTemplate = $("#txtMapFunction").val(); + debugger; + makeChange(); + createMapping(alertData.data.type, alertData.caller, valueTemplate); + loadDataModel(); + + $("#txtMapFunction").val(""); + $("#lblEditMap").text("Mapping Function:"); + $("#selectTypeDiv").hide(); + $("#defineValueTemplateDiv").hide(); + }); + + // generic click handler for Cancel buttons + $('.cancel').bind('click', function(evt) { + $("#createTableOrIndex").hide(); + $("#fileDiv").hide(); + $("#selectTableDiv").hide(); + $("#createModelDiv").hide(); + $("#alertModal").hide(); + $("#removeAttributeModal").hide(); + $("#oneTableModal").hide(); + $("#defineValueTemplateDiv").hide(); + $("#txtMapFunction").val(""); + $("#lblEditMap").text("Mapping Function:"); + $("#selectTypeDiv").hide(); + $("#txtMapFunction").prop("disabled", false); + $("#btnDefineMap").prop("disabled", false); + $("#schemaTableDiv").hide(); + $("#modelDiv").hide(); + + initQuery(); + }); + + // click handler for Create Model + $("#btnCreateModel").click(function (evt) { + // initialize the current model + model = {}; + + // populate metadata from the form and set created timestamp + model.ModelName = $("#txtModelName").val(); + var date = new Date(); + model.ModelMetadata = { + "Author": $("#txtModelAuthor").val(), + "DateCreated": date, + "DateLastModified": date, + "Description": $("#txtModelDesc").val(), + "AWSService": "Amazon DynamoDB", + "Version": "2.0" + }; + + // initialize Model change buffer and add a new Table + tableChanges = {}; + addTable(); + + $("#createModelDiv").hide(); + }); + + // hook the onchange event handler for the view table dropdown + $("#viewTable").change(function (event) { + $("#selectTableDiv").hide(); + + if ($("#viewTable").val() == "-1") { + // if create table was selected then fire add table dialog + $("#selectTableDiv").hide(); + addTable(); + } + else { + // set the modelIndex to load + modelIndex = parseInt($("#viewTable").val()); + + // initialize tab index and load the selected data model + loadDataModel(); + } + + findDataModels(); + + }); + + $("#createTableOrIndex").find(".input_key_select").on('change', function() { + var sel = $(this).val(); + if (sel == "include") { + $(".inputkey_group").show(); + gsi_attrkey = "include"; + } else { + $(".inputkey_group").hide(); + gsi_attrkey = "all"; + } + gsi_attrlist = []; + }); + + // click handler for Create Table + $("#createTableOrIndex").find(".btn_tablecreate").on('click', function() { + var definition = {}, + isTable = $("#title h1").text() == "Create Table"; + + if ($('.gsi_primary').val() == '') { + alert("Please provide a patition key!"); + return; + } + + if ($('.cgi_title').val() == '') { + alert("Please provide a name"); + return; + } + + definition.KeyAttributes = {}; + let indexName = $('.cgi_title').val(); + definition[isTable ? "TableName" : "IndexName"] = indexName + definition.KeyAttributes.PartitionKey = { + "AttributeName": $('.gsi_primary').val(), + "AttributeType": $('#dropPart').val() + }; + definition.KeyAttributes.SortKey = { + "AttributeName": $('.gsi_sort').val(), + "AttributeType": $('#dropSort').val() + }; + + if (!isTable) { + definition["Projection"] = { + "ProjectionType": "ALL" + }; + + makeChange(); + datamodel.GlobalSecondaryIndexes.push(definition); + schema.indexes[indexName] = { + hash: $('.gsi_primary').val(), + sort: $('.gsi_sort').val(), + projection: 'ALL', + } + } else { + datamodel = { + "TableName": definition.TableName, + "KeyAttributes": definition.KeyAttributes, + "NonKeyAttributes":[], + "GlobalSecondaryIndexes": [], + "TableData": [] + }; + + if (model.DataModel == null) + model.DataModel = [] + + model.DataModel.push(datamodel); + modelIndex = model.DataModel.length - 1; + + json_data = datamodel.TableData; + + table.name = definition.TableName; + table.partition_key = $('.gsi_primary').val(); + table.sort_key = $('.gsi_sort').val(); + table.sortkey_datatype = $('.dropSort').val(); + tableChanges[datamodel.TableName] = []; + + schema.indexes.primary = { + hash: $('.gsi_primary').val(), + sort: $('.gsi_sort').val(), + } + addItem("~new~"); + } + $("#createTableOrIndex").find('.key_input').val(''); + $('#createTableOrIndex').toggle(); + + findDataModels(); + loadDataModel(); + }); + + $("#createTableOrIndex").find(".btn_attrkey").on("click", function() { + gsi_attrkey = $("#createTableOrIndex").find(".input_key_select").val(); + var html = ''; + var atrkey = $("#createTableOrIndex").find(".attrkey_input").val(); + if (atrkey.trim() == '') { + alert("Please input key"); + return; + } + if (gsi_attrkey == 'include') { + html = '
  • ' + atrkey + '
  • '; + gsi_attrlist.push(atrkey); + } else { + + } + }); + + $("#loadModel").on('click', function() { + $("#mySidenav").css("width","0"); + $("#saveCredsDiv").hide(); + $("#fileDiv").show(); + + $("#fileType").text("Load Model"); + $("#loadType").text("Select a model:"); + + alertData.caller = "loadModel"; + }); + + $("#loadCreds").on('click', function() { + $("#mySidenav").css("width","0"); + $("#saveCredsDiv").prop('checked', false); + $("#saveCredsDiv").show(); + $("#fileDiv").show(); + + $("#fileType").text("Load Credentials"); + $("#loadType").text("Select credentials file:"); + + alertData.caller = "loadCreds"; + }); + + $("#saveToTable").on('click', function() { + alertData.caller = "save"; + $("#lblLoadSave").text("Save to Table"); + $("#mySidenav").css("width","0"); + $("#schemaTableDiv").show(); + }); + + $("#loadFromTable").on('click', function() { + alertData.caller = "load"; + $("#selectModel").val("none"); + $("#lblLoadSave").text("Load from Table"); + $("#mySidenav").css("width","0"); + $("#schemaTableDiv").show(); + }); + + $(".addGSI").on('click', function() { + $("#mySidenav").css("width","0"); + $("#title h1").text("Create Index"); + $("#idx_lbl").text("Index name:"); + $("#tbSort").show(); + $("#dropSort").show(); + $("#projection_cfg").show(); + $('#createTableOrIndex').toggle(); + }); + + $("#createModel").on('click', function() { + $("#mySidenav").css("width","0"); + if (model.ModelName != null) { + alertData = { + caller: "createModel", + data: "" + }; + + $("#alertTitle h1").text("Model Overwrite"); + $("#alertText").text("The existing model will be overwritten, continue?"); + + $("#alertModal").show(); + } + else + $("#createModelDiv").show(); + }); + + $("#saveModel").on('click', function() { + $("#mySidenav").css("width","0"); + saveModel(); + }); + + $("#clearIdx").on('click', function() { + $("#mySidenav").css("width","0"); + datamodel.GlobalSecondaryIndexes = []; + loadDataModel(); + }); + + $("#importSchema").on('click', function() { + $("#oneTableModal").show(); + }); + + $("#showValues").on('click', function(e) { + showValues = !showValues + showTable(); + $("#showValuesCheckbox").prop("checked", showValues); + e.preventDefault() + }); + + $("#showValuesCheckbox").prop("checked", true); + + $("#exportSchema").on('click', function() { + $("#mySidenav").css("width","0"); + exportOneTableSchema(); + }); + + $("#reload").on('click', function() { + location.reload(); + }); +}); \ No newline at end of file diff --git a/static/files/visualizer/js/query.js b/static/files/visualizer/js/query.js new file mode 100644 index 0000000..d40ab36 --- /dev/null +++ b/static/files/visualizer/js/query.js @@ -0,0 +1,365 @@ +// show the query modal +function showQuery(caller) { + initQuery(); + + $("#selectQuery").show(); + $("#queryDiv").show(); +} + +// reset the query modal +function initQuery() { + if (!model.DataModel) return; + var name = model.DataModel[modelIndex].TableName; + + $(".remove").remove(); + $("#selectQuery").val($("#selectQuery option:first").val()); + $("#selectTableOrIndex").val($("#selectTableOrIndex option:first").val()); + $("#selectOp").val($("#selectOp option:first").val()); + $("#filterOp").val($("#filterOp option:first").val()); + $("#selectAttrType").val($("#selectAttrType option:first").val()); + + $("#txtQueryName").val(""); + $("#txtPKval").val(""); + $("#txtSKval").val(""); + $("#txtSKendVal").val(""); + $("#txtFilterAttr").val(""); + $("#txtFilterValue").val(""); + $("#txtFilterEndValue").val(""); + $("#btnAddFilter").hide(); + $("#btnAddSort").hide(); + $("#queryConditions").css("display", "none"); + $("#skDiv").css("display", "none"); + $("#filterArea").css("display", "none"); + $("#queryDiv").hide(); + + match_data = []; + loadDataModel(); + + $("#selectTableOrIndex").append(``); + $.each(model.DataModel[modelIndex].GlobalSecondaryIndexes, function (idx, gsi) { + $("#selectTableOrIndex").append(``) + }); + + $.each(datamodel.SavedQuery, function (name, query) { + $("#selectQuery").append(``) + }); + $("#selectQuery").append(``); +} + +// show second value textbox if this is a between +function setOp(type) { + if (type == 'sort') { + if ($("#selectOp").val() == 'between') { + $("#lblSKendVal").css("visibility", "visible"); + $("#txtSKendVal").css("visibility", "visible"); + } else { + $("#lblSKendVal").css("visibility", "hidden"); + $("#txtSKendVal").css("visibility", "hidden"); + } + } else { + $.each($(".filterOp"), function (idx, select) { + if (select.value == 'between') { + $("#lblFilterEndVal" + select.id.substring(8)).css("visibility", "visible"); + $("#txtFilterEndVal" + select.id.substring(8)).css("visibility", "visible"); + } else { + $("#lblFilterEndVal" + select.id.substring(8)).css("visibility", "hidden"); + $("#txtFilterEndVal" + select.id.substring(8)).css("visibility", "hidden"); + } + }); + } +} + +// make the sort condition area visible +function addSortCondition() { + $("#btnAddSort").hide(); + $("#skDiv").show(); +} + +// add a filter to the query modal +function addFilter() { + if ($("#filterArea").is(":hidden")) { + numFilters = 0; + $("#filterArea").show(); + } + else { + var clone = $("#filterDiv").clone(true); + clone.attr("id", "filterDiv" + numFilters); + clone.attr("class", "filterDiv remove"); + $("#selectFilter").append(clone); + $("#filterDiv" + numFilters).find(">:first-child").show(); + + $.each($("#filterDiv" + numFilters).children(), function (idx, child) { + child.id = child.id + numFilters; + }); + + $("#selectFilter" + numFilters).val($("#selectFilter" + numFilters + " option:first").val()); + $("#selectAttrType" + numFilters).val($("#selectAttrType" + numFilters + " option:first").val()); + $("#txtFilterVal" + numFilters).val(""); + $("#txtFilterEndVal" + numFilters).val(""); + $("#txtFilterAttr" + numFilters).val(""); + + $("#lblFilterEndVal" + numFilters).css("visibility", "hidden"); + $("#txtFilterEndVal" + numFilters).css("visibility", "hidden"); + + numFilters++; + } + + $("#selectFilter").scrollTop($("#selectFilter")[0].scrollHeight); +} + +// create a query object +function buildQuery() { + var query = {}, + test = {}; + + query.view = $("#selectTableOrIndex").val(); + query.PK = $("#txtPKval").val(); + if ($("#selectOp").val() != null) { + query.SK = {}; + query.SK.condition = $("#selectOp").val(); + query.SK.values = []; + query.SK.values.push($("#txtSKval").val()); + + if ( query.SK.condition == "between" ) + query.SK.values.push($("#txtSKendVal").val()); + } + + query.filter = []; + + $.each($(".filterDiv"), function (count, div) { + if (!$("#filterArea").is(":visible")) + return; + + var divId = count > 0 ? count - 1 : ""; + + if (divId >= 0) + test.operator = $("#selectAndOr" + divId).val(); + + test.attribute = $("#txtFilterAttr" + divId).val(); + test.type = $("#selectAttrType" + divId).val(); + test.condition = $("#filterOp" + divId).val(); + test.values = []; + test.values.push($("#txtFilterVal" + divId).val()); + + if (test.condition == "between") + test.values.push($("#txtFilterEndVal" + divId).val()); + + query.filter.push(test); + test = {}; + }); + + if (!datamodel.hasOwnProperty("SavedQuery")) + datamodel.SavedQuery = {}; + + if ($("#txtQueryName").val() != "") + datamodel.SavedQuery[$("#txtQueryName").val()] = query; + + runQuery($("#txtQueryName").val()); +} + +// load a query object into the query modal +function setConditions() { + var query = $("#selectQuery").val(); + + $("#selectQuery").css("display", "none"); + + $("#queryConditions").show(); + $("#btnAddFilter").show(); + $("#btnAddSort").show(); + + if (query == "new") { + $("#lblQueryName").show(); + $("#txtQueryName").show(); + return; + } + + $("#txtQueryName").val(query); + query = datamodel.SavedQuery[query]; + $("#selectTableOrIndex").val(query.view); + $("#txtPKval").val(query.PK); + + if (query.hasOwnProperty("SK")) { + $("#skDiv").show(); + $("#btnAddSort").hide(); + $("#selectOp").val(query.SK.condition); + $("#txtSKval").val(query.SK.values[0]); + + $("#txtSKendVal").css("display", "none"); + + if (query.SK.condition == "between") { + $("#txtSKendVal").val(query.SK.values[1]); + $("#txtSKendVal").show(); + } + } + + $.each(query.filter, function (idx, test) { + var divId = idx > 0 ? idx - 1 : ""; + addFilter(); + + if (divId != "") + $("#selectAndOr" + divId).val(test.operator); + + $("#txtFilterAttr" + divId).val(test.attribute); + $("#selectAttrType" + divId).val(test.type); + $("#filterOp" + divId).val(test.condition); + $("#txtFilterVal" + divId).val(test.values[0]); + + if (test.condition == "between") + $("#txtFilterEndVal" + divId).val(test.values[1]); + }); +} + +// execute the query and display the result +function runQuery(name) { + var query = datamodel.SavedQuery[name], + PK = "", + SK = ""; + + match_data = []; + json_data = datamodel.TableData; + + if (query.view == datamodel.TableName) { + PK = table.partition_key; + SK = table.sort_key + } else { + $.each(datamodel.GlobalSecondaryIndexes, function (idx, gsi) { + if (gsi.IndexName == query.view) { + PK = gsi.KeyAttributes.PartitionKey.AttributeName; + SK = gsi.KeyAttributes.SortKey.AttributeName; + return false; + } + }); + } + + $.each(json_data, function (idx, item) { + if (item.hasOwnProperty(PK) && getValue(item[PK]) == query.PK) { + var test = {}, + pass = true; + + // test the sort condition if there is one + if (query.hasOwnProperty("SK")) { + test.type = table.sortkey_datatype; + test.attribute = table.sort_key; + test.values = query.SK.values; + test.condition = query.SK.condition; + pass = evaluate(item, test); + } + + if (pass) { + // test each filter condition + $.each(query.filter, function (idx, filter) { + if (filter.operator == "OR") + if (pass) + // if pass is still true on an OR operator the test is done + return false; + else + // if pass is false on OR operator then set it to true and continue testing + pass = true; + + if (pass) + pass = evaluate(item, filter); + }); + } + + // add the item if it passed all condition checks + if (pass) + match_data.push(item); + } + }); + + $("#queryDiv").hide(); + $("#runQueryDiv").hide(); + $(".remove").remove(); + $("#filterArea").hide(); + loadDataModel(); +} + +// evaluate whether an item passes a test or not +function evaluate(item, test) { + var value = "", + comparevalues = []; + + switch (test.type) { + case "Boolean": + value = getValue(item[test.attribute]) == true; + $.each(test.values, function (idx, value) { + test.values[idx].replace(value == "true"); + }); + break; + + case "N": + case "Number": + value = parseFloat(getValue(item[test.attribute])); + $.each(test.values, function (idx, value) { + test.values[idx].replace(parseFloat(value)); + }); + break; + + case "S": + case "String": + value = getValue(item[test.attribute]); + break; + } + + var testVal = false; + switch (test.condition) { + case ">": + if (value > test.values[0]) + testVal = true; + break; + + case ">=": + if (value >= test.values[0]) + testVal = true; + break; + + case "<": + if (value < test.values[0]) + testVal = true; + break; + + case "<=": + if (value <= test.values[0]) + testVal = true; + break; + + case "=": + if (value == test.values[0]) + testVal = true; + break; + + case "begins": + if (value.startsWith(test.values[0])) + testVal = true; + break; + + case "between": + var startVal = test.values[0], + endVal = test.values[1]; + + if (startVal > endVal) { + startVal = endVal; + endVal = test.values[0]; + } + + if (value > test.values[0] && value < test.values[1]) + testVal = true; + break; + + case "contains": + if (value.indexOf(test.values[0]) >= 0) + testVal = true; + break; + + case "in": + $.each(test.values, function (idx, val) { + if (value == val) { + testVal = true; + return false; + } + }); + break; + } + + return testVal; +} \ No newline at end of file From c3ea122b1bc02b129ef859d58e701002eaf08520 Mon Sep 17 00:00:00 2001 From: Sean Shriver Date: Fri, 14 Feb 2025 13:11:59 -0600 Subject: [PATCH 4/5] fixing weird merge issue --- .../relational-migration/application refactoring/index2.en.md | 2 +- content/relational-migration/data migration/index3.en.md | 1 + content/relational-migration/index.en.md | 2 +- content/relational-migration/setup/index.en.md | 2 -- content/relational-migration/setup/index2.en.md | 2 -- contentspec.yaml | 2 +- 6 files changed, 4 insertions(+), 7 deletions(-) diff --git a/content/relational-migration/application refactoring/index2.en.md b/content/relational-migration/application refactoring/index2.en.md index b2c6d09..46d7c38 100644 --- a/content/relational-migration/application refactoring/index2.en.md +++ b/content/relational-migration/application refactoring/index2.en.md @@ -29,4 +29,4 @@ open a different browser and navigate to the web app: (You can also open the same browser in Incognito Mode for this step.) 5. Click the Target API button and paste in the new Rest API URL. -6. Notice the title of the page has updated to **DynamoDB App** in a blue color. +6. Notice the title of the page has updated to **DynamoDB App** in a blue color. If it isn't blue, you can refresh the page and see the color change. diff --git a/content/relational-migration/data migration/index3.en.md b/content/relational-migration/data migration/index3.en.md index 895da9b..88a57bb 100644 --- a/content/relational-migration/data migration/index3.en.md +++ b/content/relational-migration/data migration/index3.en.md @@ -44,6 +44,7 @@ We can also check the import status within the AWS Console. 4. In the search box, type DynamoDB to visit the DyanmoDB console. 5. From the left nav, click Imports from S3. 6. Notice your import is listed along with the current status. + ![Import from S3](/static/images/relational-migration/import-from-s3.png) 7. Once the import has completed, you can click it to see a summary including item count and the size of the import. 8. On the left nav, click to Tables. 9. In the list of tables, click on the Customers table. diff --git a/content/relational-migration/index.en.md b/content/relational-migration/index.en.md index 6907880..6829dec 100644 --- a/content/relational-migration/index.en.md +++ b/content/relational-migration/index.en.md @@ -58,7 +58,7 @@ then apply them to create a new VIEW and use this to perform a custom import. Developer challenge: Write a new set of data access functions that point to DynamoDB. ### Runtime environment -This workshop is designed to run in an AWS-provided environment that includes a MySQL database on EC2. +This workshop is designed to run in an immersion day on Workshop Studio in an AWS-provided environment that includes a MySQL database on EC2. It cannot be run in your own AWS account, however the code is all open source. ### Technical Depth This workshop is a L300 level workshop. Having SQL, Python, and Bash skills will help but are not required. diff --git a/content/relational-migration/setup/index.en.md b/content/relational-migration/setup/index.en.md index ceca422..84cb29b 100644 --- a/content/relational-migration/setup/index.en.md +++ b/content/relational-migration/setup/index.en.md @@ -14,8 +14,6 @@ You likely have a developer desktop or laptop, the ability to find and clone the public Github code repository, and a running MySQL database instance. You can create a new Amazon S3 bucket quickly, which can be used as a staging area for data to be migrated. -All the steps, tools, and scripts presented in the workshop are designed to be taken home with you -so you can perform a real database migration. diff --git a/content/relational-migration/setup/index2.en.md b/content/relational-migration/setup/index2.en.md index ec842ce..033c1b7 100644 --- a/content/relational-migration/setup/index2.en.md +++ b/content/relational-migration/setup/index2.en.md @@ -26,8 +26,6 @@ The Lambda source code project has been setup as follows 1. Next, let's deploy the Chalice application stack. - The deploy may take up to three minutes, be patient. - ```bash chalice deploy --stage relational ``` diff --git a/contentspec.yaml b/contentspec.yaml index 3b7916d..cd6cdd4 100644 --- a/contentspec.yaml +++ b/contentspec.yaml @@ -13,4 +13,4 @@ params: event_driven_architecture_lab_yaml : "https://s3.amazonaws.com/amazon-dynamodb-labs.com/assets/event-driven-cfn.yaml" github_contributing_guide : "https://github.com/aws-samples/amazon-dynamodb-labs/blob/master/CONTRIBUTING.md" github_issues_link : "https://github.com/aws-samples/amazon-dynamodb-labs/issues" - lsql_git_commit : "cea34bc520512c70091aba2995de0e99a31d1078" + lsql_git_commit : "47a43bedf75bc0859e9141ad1bdd1f330f0933f1" From a3f7274efc98514da035e4ec0791b6970aed09ae Mon Sep 17 00:00:00 2001 From: Sean Shriver Date: Fri, 14 Feb 2025 13:12:45 -0600 Subject: [PATCH 5/5] cleanup --- content/relational-migration/index.en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/relational-migration/index.en.md b/content/relational-migration/index.en.md index 6829dec..7b35a2d 100644 --- a/content/relational-migration/index.en.md +++ b/content/relational-migration/index.en.md @@ -57,7 +57,7 @@ then apply them to create a new VIEW and use this to perform a custom import. Developer challenge: Write a new set of data access functions that point to DynamoDB. -### Runtime environment +### Requirements This workshop is designed to run in an immersion day on Workshop Studio in an AWS-provided environment that includes a MySQL database on EC2. It cannot be run in your own AWS account, however the code is all open source. ### Technical Depth

    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 J5z&A9e*o;8L+}6q literal 0 HcmV?d00001 diff --git a/static/files/visualizer/img/primaryKey.png b/static/files/visualizer/img/primaryKey.png new file mode 100644 index 0000000000000000000000000000000000000000..fc32cbec76473461cf1f9c3c05ee60071062ade8 GIT binary patch literal 1902 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