diff --git a/.github/workflows/actions.yaml b/.github/workflows/actions.yaml new file mode 100644 index 00000000..1d7cdbf6 --- /dev/null +++ b/.github/workflows/actions.yaml @@ -0,0 +1,108 @@ +name: CI + +on: + schedule: + - cron: "5 4 * * SUN" + push: + branches: + - "**" + tags: + - "v*" + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + # build the image + build: + runs-on: ubuntu-latest + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # set up build using both layer and buildkit caching following this guide + # https://evilmartians.com/chronicles/build-images-on-github-actions-with-docker-layer-caching + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-single-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-single-buildx + + - name: Build and export + uses: docker/build-push-action@v2 + with: + context: . + builder: ${{ steps.buildx.outputs.name }} + file: ./Dockerfile + tags: openclsim:latest + outputs: type=docker,dest=/tmp/image.tar + cache-from: type=gha, scope=${{ github.workflow }} + cache-to: type=gha, scope=${{ github.workflow }} + + - name: Upload image to github artifacts + uses: actions/upload-artifact@v2 + with: + name: image + path: /tmp/image.tar + retention-days: 5 + + # test the image in parallel + test: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v2 + + # an explicit pull step is not strictly necessary, but it pulls in parallel + # and in the background while just `running docker-compose up` pulls images one by one + - name: Run docker-compose pull + run: docker-compose pull --ignore-pull-failures -q & + continue-on-error: true + + - name: Download image from github artifacts + uses: actions/download-artifact@v2 + with: + name: image + path: /tmp + + - name: Load image into docker + run: | + docker load --input /tmp/image.tar + docker image ls -a + + - name: Run docker-compose up + run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d --remove-orphans + + - name: Install test dependecies + run: docker-compose exec -T package bash -c "pip install -e .[testing]" + + - name: List installed packages + run: docker-compose exec -T package bash -c "pip freeze" + + - name: Run tests + run: >- + docker-compose exec -T package bash -c ' + pytest \ + --cov=src \ + --cov=app \ + --durations=3 \ + --cov-config=setup.cfg \ + --cov-context=test \ + --black \ + --isort \ + -W default \ + tests src' + + - name: Extract coverage from container + run: docker-compose exec -T package bash -c "cat .coverage" > .coverage + + - name: Upload coverage + uses: actions/upload-artifact@v2 + with: + path: .coverage + retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/azure-static-web-apps-delightful-cliff-0e49c3503.yml b/.github/workflows/azure-static-web-apps-delightful-cliff-0e49c3503.yml index a21de237..3c1199be 100644 --- a/.github/workflows/azure-static-web-apps-delightful-cliff-0e49c3503.yml +++ b/.github/workflows/azure-static-web-apps-delightful-cliff-0e49c3503.yml @@ -11,7 +11,7 @@ on: jobs: build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + if: github.repository_owner == 'TUDelft-CITG' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')) runs-on: ubuntu-latest name: Build and Deploy Job steps: diff --git a/notebooks/16_Feeder.ipynb b/notebooks/16_Feeder.ipynb index 775884e4..dcc2dde7 100644 --- a/notebooks/16_Feeder.ipynb +++ b/notebooks/16_Feeder.ipynb @@ -35,6 +35,8 @@ "\n", "import shapely.geometry\n", "import pandas as pd\n", + "import sys\n", + "sys.path.append(r\"D:\\repos\\opencl_sim\\src\")\n", "\n", "import openclsim.core as core\n", "import openclsim.model as model\n", @@ -336,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -379,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "tags": [ "outputPrepend" @@ -401,7 +403,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -843,7 +845,7 @@ "39 POINT (4.25222222 52.11428333) {'Cargo_2': 0, 'Cargo_1': 0} " ] }, - "execution_count": 26, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -861,7 +863,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -874,7 +876,7 @@ " require.undef(\"plotly\");\n", " requirejs.config({\n", " paths: {\n", - " 'plotly': ['https://cdn.plot.ly/plotly-2.12.1.min']\n", + " 'plotly': ['https://cdn.plot.ly/plotly-2.8.3.min']\n", " }\n", " });\n", " require(['plotly'], function(Plotly) {\n", @@ -888,6 +890,13 @@ "metadata": {}, "output_type": "display_data" }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Not adding critical path to GANTT chart\n" + ] + }, { "data": { "application/vnd.plotly.v1+json": { @@ -901,7 +910,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(29,232,156)", + "color": "rgb(112,90,50)", "width": 10 }, "mode": "lines", @@ -976,7 +985,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(157,104,28)", + "color": "rgb(240,218,178)", "width": 10 }, "mode": "lines", @@ -1397,10 +1406,11 @@ ], "scatter": [ { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } }, "type": "scatter" } @@ -1871,9 +1881,9 @@ } }, "text/html": [ - "
\n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(174,103,55)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(197,126,78)", + "width": 10 + }, + "mode": "lines", + "name": "sailing filled", + "type": "scatter", + "x": [ + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(220,149,101)", + "width": 10 + }, + "mode": "lines", + "name": "loading Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(243,172,124)", + "width": 10 + }, + "mode": "lines", + "name": "transfer Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(10,195,147)", + "width": 10 + }, + "mode": "lines", + "name": "preparing for unloading", + "type": "scatter", + "x": [ + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321" + ], + "y": [ + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(33,218,170)", + "width": 10 + }, + "mode": "lines", + "name": "preparing for delivery", + "type": "scatter", + "x": [ + "1970-01-01T00:15:42.824591", + "1970-01-01T00:15:42.824591", + "1970-01-01T00:16:12.824591", + "1970-01-01T00:16:12.824591", + "1970-01-01T00:16:12.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:23:12.824591", + "1970-01-01T00:23:12.824591", + "1970-01-01T00:23:12.824591", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:38.473774", + "1970-01-01T00:58:38.473774", + "1970-01-01T00:58:38.473774", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:34:04.122956", + "1970-01-01T01:34:04.122956", + "1970-01-01T01:34:04.122956", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:09:29.772139", + "1970-01-01T02:09:29.772139", + "1970-01-01T02:09:29.772139" + ], + "y": [ + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(56,241,193)", + "width": 10 + }, + "mode": "lines", + "name": "transfer Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:17:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:19:42.824591", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:53:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T00:55:08.473774", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:28:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T01:30:34.122956", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:03:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:05:59.772139", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:39:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321", + "1970-01-01T02:41:25.421321" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(79,8,216)", + "width": 10 + }, + "mode": "lines", + "name": "unload Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321" + ], + "y": [ + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(102,31,239)", + "width": 10 + }, + "mode": "lines", + "name": "sailing to site", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:15:42.824591", + "1970-01-01T00:15:42.824591", + "1970-01-01T00:15:42.824591" + ], + "y": [ + "installer01", + "installer01", + "installer01", + "installer01", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(125,54,6)", + "width": 10 + }, + "mode": "lines", + "name": "loading Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:02:00", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:35:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T00:37:25.649183", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:10:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:12:51.298365", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:46:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T01:48:16.947548", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:21:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730", + "1970-01-01T02:23:42.596730" + ], + "y": [ + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "transporter01", + "transporter01", + "transporter01", + "transporter01", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(148,77,29)", + "width": 10 + }, + "mode": "lines", + "name": "unload Cargo_1", + "type": "scatter", + "x": [ + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:20:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:22:42.824591", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:56:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T00:58:08.473774", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:31:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T01:33:34.122956", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:06:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:08:59.772139", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:42:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321", + "1970-01-01T02:44:25.421321" + ], + "y": [ + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "installer01", + "installer01", + "installer01", + "installer01", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": true, + "type": "scatter", + "x": [ + "1970-01-01T00:00:00" + ], + "y": [ + "from_site" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:00:00" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:00:00" + ], + "y": [ + "transporter01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:00:00" + ], + "y": [ + "transporter01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:02:00" + ], + "y": [ + "transporter01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:15:42.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:16:12.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:17:42.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:17:42.824591" + ], + "y": [ + "transporter01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:19:42.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:20:42.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:20:42.824591" + ], + "y": [ + "to_site" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:22:42.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:23:12.824591" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:55:08.473774" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:56:08.473774" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:56:08.473774" + ], + "y": [ + "to_site" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:58:08.473774" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T00:58:38.473774" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T01:30:34.122956" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T01:31:34.122956" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T01:31:34.122956" + ], + "y": [ + "to_site" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T01:33:34.122956" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T01:34:04.122956" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:05:59.772139" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:06:59.772139" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:06:59.772139" + ], + "y": [ + "to_site" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:08:59.772139" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:09:29.772139" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:41:25.421321" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:42:25.421321" + ], + "y": [ + "installer01" + ] + }, + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "Red", + "width": 5 + }, + "mode": "markers", + "name": "critical_path", + "showlegend": false, + "type": "scatter", + "x": [ + "1970-01-01T02:42:25.421321" + ], + "y": [ + "to_site" + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T02:44:25.421321" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Activity SourceObject start_time \\\n", + "0 loading Cargo_1 from_site 1970-01-01 00:00:00.000000 \n", + "1 sailing to site installer01 1970-01-01 00:00:00.000000 \n", + "2 sailing empty transporter01 1970-01-01 00:00:00.000000 \n", + "3 loading Cargo_1 transporter01 1970-01-01 00:00:00.000000 \n", + "4 sailing filled transporter01 1970-01-01 00:02:00.000000 \n", + "5 preparing for delivery installer01 1970-01-01 00:15:42.824591 \n", + "6 preparing for unloading installer01 1970-01-01 00:16:12.824591 \n", + "7 transfer Cargo_1 installer01 1970-01-01 00:17:42.824591 \n", + "8 transfer Cargo_1 transporter01 1970-01-01 00:17:42.824591 \n", + "9 preparing for unloading installer01 1970-01-01 00:19:42.824591 \n", + "10 sailing empty transporter01 1970-01-01 00:19:42.824591 \n", + "11 unload Cargo_1 installer01 1970-01-01 00:20:42.824591 \n", + "12 unload Cargo_1 to_site 1970-01-01 00:20:42.824591 \n", + "13 preparing for delivery installer01 1970-01-01 00:22:42.824591 \n", + "14 preparing for unloading installer01 1970-01-01 00:23:12.824591 \n", + "15 loading Cargo_1 from_site 1970-01-01 00:35:25.649183 \n", + "16 loading Cargo_1 transporter01 1970-01-01 00:35:25.649183 \n", + "17 sailing filled transporter01 1970-01-01 00:37:25.649183 \n", + "18 transfer Cargo_1 installer01 1970-01-01 00:53:08.473774 \n", + "19 transfer Cargo_1 transporter01 1970-01-01 00:53:08.473774 \n", + "20 preparing for unloading installer01 1970-01-01 00:55:08.473774 \n", + "21 sailing empty transporter01 1970-01-01 00:55:08.473774 \n", + "22 unload Cargo_1 installer01 1970-01-01 00:56:08.473774 \n", + "23 unload Cargo_1 to_site 1970-01-01 00:56:08.473774 \n", + "24 preparing for delivery installer01 1970-01-01 00:58:08.473774 \n", + "25 preparing for unloading installer01 1970-01-01 00:58:38.473774 \n", + "26 loading Cargo_1 from_site 1970-01-01 01:10:51.298365 \n", + "27 loading Cargo_1 transporter01 1970-01-01 01:10:51.298365 \n", + "28 sailing filled transporter01 1970-01-01 01:12:51.298365 \n", + "29 transfer Cargo_1 installer01 1970-01-01 01:28:34.122956 \n", + "30 transfer Cargo_1 transporter01 1970-01-01 01:28:34.122956 \n", + "31 preparing for unloading installer01 1970-01-01 01:30:34.122956 \n", + "32 sailing empty transporter01 1970-01-01 01:30:34.122956 \n", + "33 unload Cargo_1 installer01 1970-01-01 01:31:34.122956 \n", + "34 unload Cargo_1 to_site 1970-01-01 01:31:34.122956 \n", + "35 preparing for delivery installer01 1970-01-01 01:33:34.122956 \n", + "36 preparing for unloading installer01 1970-01-01 01:34:04.122956 \n", + "37 loading Cargo_1 from_site 1970-01-01 01:46:16.947548 \n", + "38 loading Cargo_1 transporter01 1970-01-01 01:46:16.947548 \n", + "39 sailing filled transporter01 1970-01-01 01:48:16.947548 \n", + "40 transfer Cargo_1 installer01 1970-01-01 02:03:59.772139 \n", + "41 transfer Cargo_1 transporter01 1970-01-01 02:03:59.772139 \n", + "42 preparing for unloading installer01 1970-01-01 02:05:59.772139 \n", + "43 sailing empty transporter01 1970-01-01 02:05:59.772139 \n", + "44 unload Cargo_1 installer01 1970-01-01 02:06:59.772139 \n", + "45 unload Cargo_1 to_site 1970-01-01 02:06:59.772139 \n", + "46 preparing for delivery installer01 1970-01-01 02:08:59.772139 \n", + "47 preparing for unloading installer01 1970-01-01 02:09:29.772139 \n", + "48 loading Cargo_1 from_site 1970-01-01 02:21:42.596730 \n", + "49 loading Cargo_1 transporter01 1970-01-01 02:21:42.596730 \n", + "50 sailing filled transporter01 1970-01-01 02:23:42.596730 \n", + "51 transfer Cargo_1 installer01 1970-01-01 02:39:25.421321 \n", + "52 transfer Cargo_1 transporter01 1970-01-01 02:39:25.421321 \n", + "53 preparing for unloading installer01 1970-01-01 02:41:25.421321 \n", + "54 unload Cargo_1 installer01 1970-01-01 02:42:25.421321 \n", + "55 unload Cargo_1 to_site 1970-01-01 02:42:25.421321 \n", + "\n", + " state duration end_time cp_activity_id \\\n", + "0 ACTIVE 0 days 00:02:00 1970-01-01 00:02:00.000000 cp_activity_1 \n", + "1 ACTIVE 0 days 00:15:42.824591 1970-01-01 00:15:42.824591 cp_activity_31 \n", + "2 ACTIVE 0 days 00:00:00 1970-01-01 00:00:00.000000 cp_activity_21 \n", + "3 ACTIVE 0 days 00:02:00 1970-01-01 00:02:00.000000 cp_activity_1 \n", + "4 ACTIVE 0 days 00:15:42.824591 1970-01-01 00:17:42.824591 cp_activity_26 \n", + "5 ACTIVE 0 days 00:00:30 1970-01-01 00:16:12.824591 cp_activity_6 \n", + "6 WAITING 0 days 00:03:30 1970-01-01 00:19:42.824591 cp_activity_11 \n", + "7 ACTIVE 0 days 00:02:00 1970-01-01 00:19:42.824591 cp_activity_32 \n", + "8 ACTIVE 0 days 00:02:00 1970-01-01 00:19:42.824591 cp_activity_32 \n", + "9 ACTIVE 0 days 00:01:00 1970-01-01 00:20:42.824591 cp_activity_12 \n", + "10 ACTIVE 0 days 00:15:42.824592 1970-01-01 00:35:25.649183 cp_activity_22 \n", + "11 ACTIVE 0 days 00:02:00 1970-01-01 00:22:42.824591 cp_activity_37 \n", + "12 ACTIVE 0 days 00:02:00 1970-01-01 00:22:42.824591 cp_activity_37 \n", + "13 ACTIVE 0 days 00:00:30 1970-01-01 00:23:12.824591 cp_activity_7 \n", + "14 WAITING 0 days 00:31:55.649183 1970-01-01 00:55:08.473774 cp_activity_13 \n", + "15 ACTIVE 0 days 00:02:00 1970-01-01 00:37:25.649183 cp_activity_2 \n", + "16 ACTIVE 0 days 00:02:00 1970-01-01 00:37:25.649183 cp_activity_2 \n", + "17 ACTIVE 0 days 00:15:42.824591 1970-01-01 00:53:08.473774 cp_activity_27 \n", + "18 ACTIVE 0 days 00:02:00 1970-01-01 00:55:08.473774 cp_activity_33 \n", + "19 ACTIVE 0 days 00:02:00 1970-01-01 00:55:08.473774 cp_activity_33 \n", + "20 ACTIVE 0 days 00:01:00 1970-01-01 00:56:08.473774 cp_activity_14 \n", + "21 ACTIVE 0 days 00:15:42.824591 1970-01-01 01:10:51.298365 cp_activity_23 \n", + "22 ACTIVE 0 days 00:02:00 1970-01-01 00:58:08.473774 cp_activity_38 \n", + "23 ACTIVE 0 days 00:02:00 1970-01-01 00:58:08.473774 cp_activity_38 \n", + "24 ACTIVE 0 days 00:00:30 1970-01-01 00:58:38.473774 cp_activity_8 \n", + "25 WAITING 0 days 00:31:55.649182 1970-01-01 01:30:34.122956 cp_activity_15 \n", + "26 ACTIVE 0 days 00:02:00 1970-01-01 01:12:51.298365 cp_activity_3 \n", + "27 ACTIVE 0 days 00:02:00 1970-01-01 01:12:51.298365 cp_activity_3 \n", + "28 ACTIVE 0 days 00:15:42.824591 1970-01-01 01:28:34.122956 cp_activity_28 \n", + "29 ACTIVE 0 days 00:02:00 1970-01-01 01:30:34.122956 cp_activity_34 \n", + "30 ACTIVE 0 days 00:02:00 1970-01-01 01:30:34.122956 cp_activity_34 \n", + "31 ACTIVE 0 days 00:01:00 1970-01-01 01:31:34.122956 cp_activity_16 \n", + "32 ACTIVE 0 days 00:15:42.824592 1970-01-01 01:46:16.947548 cp_activity_24 \n", + "33 ACTIVE 0 days 00:02:00 1970-01-01 01:33:34.122956 cp_activity_39 \n", + "34 ACTIVE 0 days 00:02:00 1970-01-01 01:33:34.122956 cp_activity_39 \n", + "35 ACTIVE 0 days 00:00:30 1970-01-01 01:34:04.122956 cp_activity_9 \n", + "36 WAITING 0 days 00:31:55.649183 1970-01-01 02:05:59.772139 cp_activity_17 \n", + "37 ACTIVE 0 days 00:02:00 1970-01-01 01:48:16.947548 cp_activity_4 \n", + "38 ACTIVE 0 days 00:02:00 1970-01-01 01:48:16.947548 cp_activity_4 \n", + "39 ACTIVE 0 days 00:15:42.824591 1970-01-01 02:03:59.772139 cp_activity_29 \n", + "40 ACTIVE 0 days 00:02:00 1970-01-01 02:05:59.772139 cp_activity_35 \n", + "41 ACTIVE 0 days 00:02:00 1970-01-01 02:05:59.772139 cp_activity_35 \n", + "42 ACTIVE 0 days 00:01:00 1970-01-01 02:06:59.772139 cp_activity_18 \n", + "43 ACTIVE 0 days 00:15:42.824591 1970-01-01 02:21:42.596730 cp_activity_25 \n", + "44 ACTIVE 0 days 00:02:00 1970-01-01 02:08:59.772139 cp_activity_40 \n", + "45 ACTIVE 0 days 00:02:00 1970-01-01 02:08:59.772139 cp_activity_40 \n", + "46 ACTIVE 0 days 00:00:30 1970-01-01 02:09:29.772139 cp_activity_10 \n", + "47 WAITING 0 days 00:31:55.649182 1970-01-01 02:41:25.421321 cp_activity_19 \n", + "48 ACTIVE 0 days 00:02:00 1970-01-01 02:23:42.596730 cp_activity_5 \n", + "49 ACTIVE 0 days 00:02:00 1970-01-01 02:23:42.596730 cp_activity_5 \n", + "50 ACTIVE 0 days 00:15:42.824591 1970-01-01 02:39:25.421321 cp_activity_30 \n", + "51 ACTIVE 0 days 00:02:00 1970-01-01 02:41:25.421321 cp_activity_36 \n", + "52 ACTIVE 0 days 00:02:00 1970-01-01 02:41:25.421321 cp_activity_36 \n", + "53 ACTIVE 0 days 00:01:00 1970-01-01 02:42:25.421321 cp_activity_20 \n", + "54 ACTIVE 0 days 00:02:00 1970-01-01 02:44:25.421321 cp_activity_41 \n", + "55 ACTIVE 0 days 00:02:00 1970-01-01 02:44:25.421321 cp_activity_41 \n", + "\n", + " is_critical \n", + "0 True \n", + "1 True \n", + "2 True \n", + "3 True \n", + "4 True \n", + "5 True \n", + "6 True \n", + "7 True \n", + "8 True \n", + "9 True \n", + "10 False \n", + "11 True \n", + "12 True \n", + "13 True \n", + "14 True \n", + "15 False \n", + "16 False \n", + "17 False \n", + "18 False \n", + "19 False \n", + "20 True \n", + "21 False \n", + "22 True \n", + "23 True \n", + "24 True \n", + "25 True \n", + "26 False \n", + "27 False \n", + "28 False \n", + "29 False \n", + "30 False \n", + "31 True \n", + "32 False \n", + "33 True \n", + "34 True \n", + "35 True \n", + "36 True \n", + "37 False \n", + "38 False \n", + "39 False \n", + "40 False \n", + "41 False \n", + "42 True \n", + "43 False \n", + "44 True \n", + "45 True \n", + "46 True \n", + "47 True \n", + "48 False \n", + "49 False \n", + "50 False \n", + "51 False \n", + "52 False \n", + "53 True \n", + "54 True \n", + "55 True \n" + ] + } + ], + "source": [ + "# plot.get_gantt_chart([transporter01, installer01, from_site, to_site],id_map=[transport_activity, installer_move_sequential_activity])\n", + "# compute critical path and plot\n", + "from openclsim.plot.superlog import get_superlog_with_critical_path\n", + "df_superlog = get_superlog_with_critical_path([transporter01, installer01, from_site, to_site],\n", + " id_map=[transport_activity, installer_move_sequential_activity])\n", + "plot.get_gantt_chart([transporter01, installer01, from_site, to_site],\n", + " id_map=[transport_activity, installer_move_sequential_activity],\n", + " critical_path_superlog=df_superlog)\n", + "print(df_superlog)\n", + "\n" + ] + }, { "cell_type": "code", "execution_count": 28, diff --git a/notebooks/24_cutters and barges.ipynb b/notebooks/24_cutters and barges.ipynb index 703bbd5e..bb3326e6 100644 --- a/notebooks/24_cutters and barges.ipynb +++ b/notebooks/24_cutters and barges.ipynb @@ -5,9 +5,9 @@ "id": "384a3d39", "metadata": {}, "source": [ - "## feeder concept: cutter + barges\n", + "# Feeder concept: cutter + barges\n", "\n", - "This notebook shows how to implement a basic feeder concept for a cutter suction dredge working with multiple barges." + "This notebook shows how to implement a basic feeder concept for a cutter suction dredge working with multiple barges. We run a large number of possible configurations of he barge fleet and choose the best one considering an number of KPIs. The best simulation is further explored and exposrted to analysis with BI tools." ] }, { @@ -25,13 +25,108 @@ "\n", "import openclsim.core as core\n", "import openclsim.model as model\n", - "import openclsim.plot as plot\n", - "import numpy as np" + "from openclsim.utils import flatten, export_concepts, export_activities, export_activity_log, export_activity_resources\n", + "from openclsim.plot import get_step_chart, get_gantt_chart, get_log_dataframe, get_ranges_dataframe\n", + "import numpy as np\n", + "\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "ad0c2928", + "metadata": {}, + "source": [ + "## Define a range of barge scenarios" ] }, { "cell_type": "code", "execution_count": 2, + "id": "5d93d662", + "metadata": {}, + "outputs": [], + "source": [ + "cutter_name = 'Cutter T'\n", + "barge_names = ['Carrier A','Carrier B','Carrier C',\n", + " 'Barge I','Barge II','Barge III',\n", + " 'Extra 1', 'Extra 2', 'Extra 3']\n", + "vessel_cost = {'Carrier A':6000,'Carrier B':6000,'Carrier C':6000,\n", + " 'Barge I':5000,'Barge II':5000,'Barge III':5000,\n", + " 'Extra 1':4000, 'Extra 2':4000, 'Extra 3':4000,\n", + " 'Cutter T':25000} # EUR/day\n", + "\n", + "# In this example the model Activity.name will be predefined structure\n", + "# to enable post-processing in BI: : \n", + "# where activity_type consitutes a governed list that can be used for\n", + "# example to assign energy consumption. Here is ABS=ActivtryBreakdopwnStructure\n", + "\n", + "ABS = { 'SE':'sailing empty',\n", + " 'LO':'loading',\n", + " 'SF':'sailing full',\n", + " 'UL':'unloading',\n", + " 'WA':'while_sequential_activity_subcycle',\n", + " 'SA':'sequential_activity_subcycle'}\n", + "\n", + "barge_empty = 1000\n", + "barge_full = 2500\n", + "barge_loading = 1000\n", + "barge_unloading = 2500\n", + "barge_WAIT = 20\n", + "# does not specify as in what mode: mover, processor, origin of destination: one overall value\n", + "vessel_power = {'sailing empty':\n", + " {'Carrier A':barge_empty,'Carrier B':barge_empty,'Carrier C':barge_empty,\n", + " 'Barge I':barge_empty,'Barge II':barge_empty,'Barge III':barge_empty,\n", + " 'Extra 1':barge_empty, 'Extra 2':barge_empty, 'Extra 3':barge_empty,\n", + "# 'Trench':0,'Reclamation':0,\n", + " 'Cutter T':1000},\n", + " 'loading':\n", + " {'Carrier A':barge_loading,'Carrier B':barge_loading,'Carrier C':barge_loading,\n", + " 'Barge I':barge_loading,'Barge II':barge_loading,'Barge III':barge_loading,\n", + " 'Extra 1':barge_loading, 'Extra 2':barge_loading, 'Extra 3':barge_loading,\n", + "# 'Trench':0,'Reclamation':0,\n", + " 'Cutter T':15000},\n", + " 'sailing full':\n", + " {'Carrier A':barge_full,'Carrier B':barge_full,'Carrier C':barge_full,\n", + " 'Barge I':barge_full,'Barge II':barge_full,'Barge III':barge_full,\n", + " 'Extra 1':barge_full, 'Extra 2':barge_full, 'Extra 3':barge_full,\n", + "# 'Trench':0,'Reclamation':0,\n", + " 'Cutter T':1000},\n", + " 'unloading': # split hopper barge unloading = sailing full\n", + " {'Carrier A':barge_unloading,'Carrier B':barge_unloading,'Carrier C':barge_unloading,\n", + " 'Barge I':barge_unloading,'Barge II':barge_unloading,'Barge III':barge_unloading,\n", + " 'Extra 1':barge_unloading, 'Extra 2':barge_unloading, 'Extra 3':barge_unloading,\n", + "# 'Trench':0,'Reclamation':0,\n", + " 'Cutter T':1000}, # standby power\n", + " 'WAIT':\n", + " {'Carrier A':barge_WAIT,'Carrier B':barge_WAIT,'Carrier C':barge_WAIT,\n", + " 'Barge I':barge_WAIT,'Barge II':barge_WAIT,'Barge III':barge_WAIT,\n", + " 'Extra 1':barge_WAIT, 'Extra 2':barge_WAIT, 'Extra 3':barge_WAIT,\n", + "# 'Trench':0,'Reclamation':0,\n", + " 'Cutter T':500}, # hotel power\n", + "} # kW\n", + "pd.DataFrame.from_dict(vessel_power)\n", + "\n", + "# vessel_amount and vessel_durations are random within a range,\n", + "# to mimic respectively material density variations\n", + "# and metocean workability conditions and traffic density.\n", + "\n", + "amount_range = [4,6]\n", + "duration_range = [2000,3000]\n", + "\n", + "from_site_name = 'Trench'\n", + "to_site_name = 'Reclamation'\n", + "\n", + "nbarges = len(barge_names)\n", + "assert len(set(barge_names))==len(barge_names), 'barge_names need to be unique'\n", + "total_amount = 100\n", + "simulation_start = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "id": "102a1c18", "metadata": {}, "outputs": [], @@ -62,113 +157,111 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "cef14598", "metadata": {}, "outputs": [], "source": [ - "def run(NR_BARGES, total_amount):\n", - " simulation_start = 0\n", + "def run(barge_list, total_amount, simulation_start=0):\n", " my_env = simpy.Environment(initial_time=simulation_start)\n", " registry = {}\n", "\n", " location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", " location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + " \n", + " sites = {}\n", "\n", " data_from_site = {\"env\": my_env,\n", - " \"name\": \"from_site\",\n", + " \"name\": from_site_name,\n", " \"geometry\": location_from_site,\n", " \"capacity\": total_amount,\n", " \"level\": total_amount,\n", " \"nr_resources\":1\n", " }\n", - " from_site = Site(**data_from_site)\n", + " from_site = Site(**data_from_site)\n", + " sites[from_site_name] = from_site\n", + "\n", "\n", " location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", " data_to_site = {\"env\": my_env,\n", - " \"name\": \"to_site\",\n", + " \"name\": to_site_name,\n", " \"geometry\": location_to_site,\n", " \"capacity\": total_amount,\n", " \"level\": 0,\n", " \"nr_resources\":4\n", " }\n", " to_site = Site(**data_to_site)\n", + " sites[to_site_name] = to_site\n", "\n", " vessels = {}\n", "\n", - " for i in range(NR_BARGES):\n", - " vessels[f\"vessel{i}\"] = TransportProcessingResource(\n", + " for i in range(len(barge_list)):\n", + " vessel_name = barge_list[i]\n", + " vessels[vessel_name] = TransportProcessingResource(\n", " env=my_env,\n", - " name=f\"barge_{i}\",\n", + " name=vessel_name,\n", " geometry=location_from_site, \n", " capacity=10,\n", " compute_v=lambda x: 10\n", " )\n", " cutter = TransportProcessingResource(\n", " env=my_env,\n", - " name=f\"cutter\",\n", + " name=cutter_name,\n", " geometry=location_from_site, \n", " capacity=10,\n", " compute_v=lambda x: 10\n", " )\n", - " vessels['cutter'] = cutter\n", + " vessels[cutter_name] = cutter\n", " \n", - "\n", " activities = {}\n", - " for i in range(NR_BARGES):\n", - " amount = np.random.randint(4,6) # handle loading\n", - " duration=np.random.randint(2000,3000) # sailing and unloading\n", + " for i in range(len(barge_list)):\n", + " vessel_name = barge_list[i]\n", + " amount = np.random.randint(amount_range[0], amount_range[1]) # handle loading\n", + " duration=np.random.randint(duration_range[0], duration_range[1]) # sailing and unloading\n", "\n", " requested_resources={}\n", " activities[f\"activity{i}\"] = model.WhileActivity(\n", " env=my_env,\n", - " name=f\"while_sequential_activity_subcycle{i}\",\n", + " name=ABS['WA']+':'+f\"while_sequential_activity_subcycle {vessel_name}\",\n", " registry=registry,\n", " sub_processes=[model.SequentialActivity(\n", " env=my_env,\n", - " name=f\"sequential_activity_subcycle{i}\",\n", + " name=ABS['SA']+':'+f\"sequential_activity_subcycle {vessel_name}\",\n", " registry=registry,\n", " sub_processes=[\n", - " model.BasicActivity(\n", - " env=my_env,\n", - " name=f\"basic activity:\"+vessels[f\"vessel{i}\"].name,\n", - " registry=registry,\n", - " duration=duration,\n", - " additional_logs=[vessels[f\"vessel{i}\"]],\n", - " ),\n", " model.MoveActivity(\n", " env=my_env,\n", - " name=f\"sailing empty:\"+vessels[f\"vessel{i}\"].name,\n", + " name=ABS['SE']+': sailing empty '+vessels[vessel_name].name,\n", " registry=registry,\n", - " mover=vessels[f\"vessel{i}\"],\n", + " mover=vessels[vessel_name],\n", " destination=from_site,\n", " duration=duration,\n", " ),\n", " model.ShiftAmountActivity(\n", " env=my_env,\n", - " name=f\"loading:\"+vessels[f\"vessel{i}\"].name,\n", + " name=ABS['LO']+': loading '+vessels[vessel_name].name,\n", " registry=registry,\n", " processor=cutter,\n", " origin=from_site,\n", - " destination=vessels[f\"vessel{i}\"],\n", + " destination=vessels[vessel_name],\n", " amount=amount,\n", " duration=500*amount,\n", " requested_resources=requested_resources,\n", " ),\n", " model.MoveActivity(\n", " env=my_env,\n", - " name=f\"sailing full:\"+vessels[f\"vessel{i}\"].name,\n", + " name=ABS['SF']+': sailing full '+vessels[vessel_name].name,\n", " registry=registry,\n", - " mover=vessels[f\"vessel{i}\"],\n", + " mover=vessels[vessel_name],\n", " destination=to_site,\n", " duration=duration,\n", " ),\n", " model.ShiftAmountActivity(\n", " env=my_env,\n", - " name=f\"unloading:\"+vessels[f\"vessel{i}\"].name,\n", + " name=ABS['UL']+': unloading '+vessels[vessel_name].name,\n", " registry=registry,\n", - " processor=vessels[f\"vessel{i}\"],\n", - " origin=vessels[f\"vessel{i}\"],\n", + " processor=vessels[vessel_name],\n", + " origin=vessels[vessel_name],\n", " destination=to_site,\n", " amount=amount,\n", " duration=duration,\n", @@ -192,482 +285,6691 @@ " return {\n", " \"vessels\": vessels,\n", " \"activities\":activities,\n", - " \"from_site\":from_site,\n", - " \"to_site\":to_site,\n", + " \"sites\":sites\n", " }\n" ] }, + { + "cell_type": "markdown", + "id": "1a939e21", + "metadata": {}, + "source": [ + "## Define an extractor to get KPIs from one simulation" + ] + }, { "cell_type": "code", - "execution_count": 4, - "id": "9aa8b351", + "execution_count": 5, + "id": "4682b3bd", + "metadata": {}, + "outputs": [], + "source": [ + "def simulation_analysis(vessels, cutter_name, total_amount, vessel_cost, vessel_power, activities):\n", + " \"\"\"Model specific extraction of vessel kpis and overall kpis.\n", + " \n", + " Results\n", + " ----------\n", + " df\n", + " Dataframe of all vessels kpis: e.g. fuel, occupancy, cost\n", + " kpi\n", + " Dataframe with a row of overall simulation kpis\n", + " \n", + " Assumes\n", + " * 1 cutter servicing many barges, 1 at a time. The cutter processes same as sum of all barges.\n", + " * all vessels arrive JIT when they need to start\n", + " * al vessels leave immediately when they are done (so different demob times)\n", + " This is an overestimation of actual occupancy, a mob/demob, initial waiting, \n", + " and final waiting are considered gratis.\n", + " \n", + " \"\"\"\n", + " \n", + "# for each fleet member \n", + " \n", + " data = []\n", + " \n", + " activity_resources = export_activity_resources(activities, 'resources.csv')\n", + " activity_resources['ActivityType'] = [x['ActivityName'].split(':')[0] for _,x in activity_resources.iterrows()] \n", + " \n", + " for i, vessel_name in enumerate(vessels):\n", + " vessel = vessels[vessel_name]\n", + "\n", + " log = get_ranges_dataframe(vessel)\n", + " \n", + " duration_theory = log.TimestampDt.sum()\n", + " duration_actual = (log.TimestampStop.max() - log.TimestampStart.min()).total_seconds()\n", + " nr_trips = len(log.groupby('trip'))\n", + "\n", + " mask = activity_resources['ConceptName']==vessel.name\n", + " # ConceptMode is not dependent on mover or processor (not origin): vessel_power is combined mode\n", + " log2 = log.merge(activity_resources[mask].groupby('ConceptMode').max(), left_on='Activity', right_on='ActivityID', how='left')\n", + " log3 = log2.groupby('ActivityType').sum()\n", + " MWha = [vessel_power[ActivityType][vessel.name]*x['TimestampDt']/3600/1e3 for ActivityType, x in log3.iterrows()] # working\n", + " MWhw = (duration_actual - duration_theory)*vessel_power['WAIT'][vessel.name]/3600/1e3 # waiting\n", + " \n", + " if vessel.name==cutter_name:\n", + " amount = total_amount\n", + " else:\n", + " amount = sum(log.groupby('trip')['ContainerLevelStop'].max())\n", + " \n", + " data.append({\n", + " 'name':vessel.name, \n", + " '# trips':nr_trips, \n", + " 'start': log.TimestampStart.min(),\n", + " 'finish': log.TimestampStop.max(),\n", + " 'amount sum': amount,\n", + " 'MWh':sum(MWha) + MWhw,\n", + " 'MWh waiting':MWhw,\n", + " 'duration actual': duration_actual,\n", + " 'duration theory':duration_theory,\n", + " 'cost actual':round(duration_actual*vessel_cost[vessel_name]/3600/24,0),\n", + " 'production actual':(nr_trips * amount) / (duration_actual),\n", + " 'production theory':(nr_trips * amount / (duration_theory)),\n", + " })\n", + "\n", + " df = pd.DataFrame(data).sort_values(by=['production actual'],ascending=False)\n", + " df['occupancy [%]'] = [round(x,1) for x in 100*df['production actual']/df['production theory']]\n", + " df.set_index('name', inplace=True)\n", + "\n", + " if df['amount sum'].sum()-total_amount!=total_amount:\n", + " print('ERROR: material imbalance')\n", + " \n", + "# overall KPI for simulation\n", + "\n", + " kpi = pd.DataFrame.from_dict({\n", + " '# barges':[len(vessels)-1], # exclude cutter\n", + " 'cutter occupancy':df.loc[cutter_name]['occupancy [%]'],\n", + " 'duration':(df['finish'].max() - df['start'].min()).total_seconds()/3600/24,\n", + " 'Σ cost':round(df['cost actual'].sum()),\n", + " 'Σ MWh':round(df['MWh'].sum()),\n", + " 'Σ MWh waiting':MWhw})\n", + " \n", + " return df, kpi" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "03960acd", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_combinations(my_list, n):\n", + " \"\"\"Generate all posible ways to extract n indices from a list\"\"\"\n", + " m = len(my_list)\n", + " if n == 0:\n", + " return [[]]\n", + " if n > m:\n", + " return []\n", + " if m == n:\n", + " return [list(range(m))]\n", + " combinations = []\n", + " for i in range(m, n - 1, -1):\n", + " for c in generate_combinations(my_list[:i-1], n - 1):\n", + " combinations.append(c + [i-1])\n", + " return combinations\n", + "\n", + "def fleet_selector(fleet_list, n, debug=False):\n", + " \"\"\"Generate all fleets of length n from a fleet list\n", + " This is an implementation of the binomial coefficient.\"\"\"\n", + " import math\n", + " vs = []\n", + " m = len(fleet_list)\n", + " import math\n", + " if isinstance(n,list):\n", + " nmin, nmax = n [0], n[1]\n", + " else:\n", + " nmin, nmax = 1, n\n", + " if nmax == 0:\n", + " return [[]]\n", + " for i in range(nmin,nmax+1):\n", + " cs = generate_combinations(fleet_list,i)\n", + " if debug:\n", + " print(f'fleet lenght {i} has {len(cs)} combinations')\n", + " assert len(cs)==(math.factorial(m)/math.factorial(m-i)/math.factorial(i))\n", + " for c in cs:\n", + " vs.append([fleet_list[i] for i in c])\n", + " return vs" + ] + }, + { + "cell_type": "markdown", + "id": "76c14573", + "metadata": {}, + "source": [ + "## Simulate multiple barge scenarios, compare and select optimal one" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "eeb88b8d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Wall time: 44 ms\n" + "done \n", + "CPU times: total: 2min 30s\n", + "Wall time: 2min 48s\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waiting
0127.22.2050936191433818.540833
1130.21.9877315588332316.062917
2120.02.9840868413339427.710000
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting\n", + "0 1 27.2 2.205093 61914 338 18.540833\n", + "1 1 30.2 1.987731 55883 323 16.062917\n", + "2 1 20.0 2.984086 84133 394 27.710000" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "%%time\n", + "results, dfs, kpis = [], [], []\n", + "\n", + "fleets = fleet_selector(barge_names,7) # 7 our of 9, optimum is 4..6\n", "\n", - "res = run(3,100)\n", - "vessels = res['vessels']\n", - "activities = res['activities']\n", - "cutter = vessels['cutter']\n", - "to_site = res['to_site']\n", - "from_site = res['from_site']" + "for _, barge_fleet in enumerate(fleets):\n", + " print(_,'/',len(fleets),end='\\r')\n", + " results.append(run(barge_fleet,total_amount))\n", + " \n", + " vessels = results[-1]['vessels']\n", + " activities = results[-1]['activities']\n", + " sites = results[-1]['sites']\n", + " \n", + " df, kpi = simulation_analysis(vessels, cutter_name, total_amount, vessel_cost, vessel_power, activities)\n", + " \n", + " dfs.append(df)\n", + " kpis.append(kpi)\n", + "print('done ')\n", + " \n", + "scenarios = pd.concat(kpis).reset_index()\n", + "scenarios = scenarios.drop(columns=['index'])\n", + "scenarios.head(3)" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "8f993fc6", + "execution_count": 8, + "id": "18484020", "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", - " " + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cutter occupancydurationΣ costΣ MWhΣ MWh waiting
# barges
120.01.9877315588332316.062917
238.91.148576367552225.848750
359.20.767164269731721.388194
477.50.661910255871520.015000
594.70.648183277971490.000000
6100.00.652593303971460.000000
7100.00.652199333721480.000000
\n", + "
" + ], + "text/plain": [ + " cutter occupancy duration Σ cost Σ MWh Σ MWh waiting\n", + "# barges \n", + "1 20.0 1.987731 55883 323 16.062917\n", + "2 38.9 1.148576 36755 222 5.848750\n", + "3 59.2 0.767164 26973 172 1.388194\n", + "4 77.5 0.661910 25587 152 0.015000\n", + "5 94.7 0.648183 27797 149 0.000000\n", + "6 100.0 0.652593 30397 146 0.000000\n", + "7 100.0 0.652199 33372 148 0.000000" ] }, + "execution_count": 8, "metadata": {}, - "output_type": "display_data" - }, + "output_type": "execute_result" + } + ], + "source": [ + "# best result per # barges\n", + "scenarios.groupby('# barges').min()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4b9dc9b2", + "metadata": {}, + "outputs": [ { "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(86,175,199)", - "width": 10 - }, - "mode": "lines", - "name": "unloading:barge_0", - "type": "scatter", - "x": [ - "1970-01-01T03:58:07", - "1970-01-01T03:58:07", - "1970-01-01T04:43:42", - "1970-01-01T04:43:42", - "1970-01-01T04:43:42", - "1970-01-01T07:42:07", - "1970-01-01T07:42:07", - "1970-01-01T08:27:42", - "1970-01-01T08:27:42", - "1970-01-01T08:27:42", - "1970-01-01T11:26:07", - "1970-01-01T11:26:07", - "1970-01-01T12:11:42", - "1970-01-01T12:11:42", - "1970-01-01T12:11:42", - "1970-01-01T15:10:07", - "1970-01-01T15:10:07", - "1970-01-01T15:55:42", - "1970-01-01T15:55:42", - "1970-01-01T15:55:42", - "1970-01-01T18:54:07", - "1970-01-01T18:54:07", - "1970-01-01T19:39:42", - "1970-01-01T19:39:42", - "1970-01-01T19:39:42", - "1970-01-01T22:38:07", - "1970-01-01T22:38:07", - "1970-01-01T23:23:42", - "1970-01-01T23:23:42", - "1970-01-01T23:23:42", - "1970-01-02T02:22:07", - "1970-01-02T02:22:07", - "1970-01-02T03:07:42", - "1970-01-02T03:07:42", - "1970-01-02T03:07:42" - ], - "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(100,189,213)", - "width": 10 - }, - "mode": "lines", - "name": "basic activity:barge_0", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:45:35", - "1970-01-01T00:45:35", - "1970-01-01T00:45:35", - "1970-01-01T04:43:42", - "1970-01-01T04:43:42", - "1970-01-01T05:29:17", - "1970-01-01T05:29:17", - "1970-01-01T05:29:17", - "1970-01-01T08:27:42", - "1970-01-01T08:27:42", - "1970-01-01T09:13:17", - "1970-01-01T09:13:17", - "1970-01-01T09:13:17", - "1970-01-01T12:11:42", - "1970-01-01T12:11:42", - "1970-01-01T12:57:17", - "1970-01-01T12:57:17", - "1970-01-01T12:57:17", - "1970-01-01T15:55:42", - "1970-01-01T15:55:42", - "1970-01-01T16:41:17", - "1970-01-01T16:41:17", - "1970-01-01T16:41:17", - "1970-01-01T19:39:42", - "1970-01-01T19:39:42", - "1970-01-01T20:25:17", - "1970-01-01T20:25:17", - "1970-01-01T20:25:17", - "1970-01-01T23:23:42", - "1970-01-01T23:23:42", - "1970-01-02T00:09:17", - "1970-01-02T00:09:17", - "1970-01-02T00:09:17" - ], - "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(114,203,227)", - "width": 10 - }, - "mode": "lines", - "name": "loading:barge_0", - "type": "scatter", - "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" - ], - "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null - ] - }, - { - "connectgaps": false, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ MWhΣ MWh waiting
Σ cost
25587499.80.6619101630.015000
26655493.30.6910421620.502639
26973383.30.7671641781.388194
277975100.00.6683221580.000000
278135100.00.6714581650.000000
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ MWh Σ MWh waiting\n", + "Σ cost \n", + "25587 4 99.8 0.661910 163 0.015000\n", + "26655 4 93.3 0.691042 162 0.502639\n", + "26973 3 83.3 0.767164 178 1.388194\n", + "27797 5 100.0 0.668322 158 0.000000\n", + "27813 5 100.0 0.671458 165 0.000000" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('Σ cost').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0e5aa2a0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancyΣ costΣ MWhΣ MWh waiting
duration
0.6481835100.0293171520.0
0.6519685100.0300231560.0
0.6521997100.0336591630.0
0.6525936100.0323791720.0
0.6533335100.0285371610.0
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy Σ cost Σ MWh Σ MWh waiting\n", + "duration \n", + "0.648183 5 100.0 29317 152 0.0\n", + "0.651968 5 100.0 30023 156 0.0\n", + "0.652199 7 100.0 33659 163 0.0\n", + "0.652593 6 100.0 32379 172 0.0\n", + "0.653333 5 100.0 28537 161 0.0" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('duration').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2fe6803a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWh waiting
Σ MWh
1466100.00.658588313990.0
1476100.00.656458329010.0
1486100.00.655185327620.0
1495100.00.655741302950.0
1505100.00.655741296160.0
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh waiting\n", + "Σ MWh \n", + "146 6 100.0 0.658588 31399 0.0\n", + "147 6 100.0 0.656458 32901 0.0\n", + "148 6 100.0 0.655185 32762 0.0\n", + "149 5 100.0 0.655741 30295 0.0\n", + "150 5 100.0 0.655741 29616 0.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('Σ MWh').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "52c962d1", + "metadata": {}, + "outputs": [], + "source": [ + "def kpi_plot(fig, axs, Ds, clrs, lbls, mrkr):\n", + "\n", + " lw = 3\n", + " \n", + " for _,D in enumerate(Ds):\n", + " \n", + " clr = clrs[_]\n", + " lbl = lbls[_]\n", + " \n", + " if '# barges' in D.keys():\n", + " axs[0].plot(D.index,D['# barges'],'C7', linewidth=lw,label='# barges', marker=mrkr)\n", + " if '# fleets' in D.keys():\n", + " axs[0].plot(D.index,D['# fleets']/10,'C7'+'--', linewidth=lw,label='# fleets / 10', marker=mrkr)\n", + " axs[1].plot(D.index,D['Σ cost'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[2].plot(D.index,D['cutter occupancy'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[3].plot(D.index,D['duration'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[4].plot(D.index,D['Σ MWh'],clr, linewidth=lw, label=lbl+': activity', marker=mrkr)\n", + " axs[4].plot(D.index,D['Σ MWh']-D['Σ MWh waiting'],clr+'--', label='... - wait', linewidth=lw, marker=mrkr)\n", + "\n", + " i=0\n", + " axs[i].set_ylabel('# barges')\n", + " axs[i].grid();\n", + " axs[i].legend() \n", + " # axs[0].set_ylim(ymin=0)\n", + " i=1\n", + " axs[i].set_ylabel('Σ cost [EUR]')\n", + " axs[i].grid();\n", + " axs[i].yaxis.set_label_position(\"right\")\n", + " axs[i].yaxis.tick_right()\n", + " # axs[0].set_ylim(ymin=0)\n", + " i=2\n", + " axs[i].set_ylabel('cutter occupancy [%]')\n", + " axs[i].grid();\n", + " # axs[i].set_ylim(ymin=0)\n", + " i=3\n", + " axs[i].set_ylabel('duration [days]')\n", + " axs[i].grid();\n", + " axs[i].yaxis.set_label_position(\"right\")\n", + " axs[i].yaxis.tick_right()\n", + " # axi[i].set_ylim(ymin=0)\n", + " i=4\n", + " axs[i].set_ylabel('Σ energy [MWh]')\n", + " axs[i].grid();\n", + " axs[i].legend()\n", + " # axs[i].set_ylim(ymin=0)\n", + "\n", + " axs[-1].set_xlabel('# barges');" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "61495b74", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot min/avg/max simulation KPI per # barges\n", + "\n", + "fig = plt.figure(figsize=(10,12))\n", + "gs = fig.add_gridspec(5, hspace=0)\n", + "axs = gs.subplots(sharex=True)\n", + "\n", + "nfleet = scenarios.groupby('# barges').count()['duration']\n", + "\n", + "mins = scenarios.groupby('# barges').min()\n", + "mins['# barges'] = mins.index\n", + "mins['# fleets'] = nfleet\n", + "\n", + "avgs = scenarios.groupby('# barges').mean()\n", + "mins['# fleets'] = nfleet\n", + "\n", + "maxs = scenarios.groupby('# barges').max()\n", + "mins['# fleets'] = nfleet\n", + "\n", + "kpi_plot(fig, axs, [mins, avgs, maxs], ['C2','C1','C0'],['min','avg','max'],'o')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "9e7f3cf4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApkAAAK5CAYAAAD0AzVkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAADgwklEQVR4nOzdd3gU5doG8PsJBELvAgLSQUFQAcGCGlTsir0rioqKIpZjP/bjEY+9K1bsBRufXZGABZCiSBekd6QnlJDk+f54dtmZ3dmWLdkk9++65srMO+3dnc3myVtFVUFERERElExZZZ0BIiIiIqp4GGQSERERUdIxyCQiIiKipGOQSURERERJxyCTiIiIiJKuallnIBGNGzfWNm3apPw+BQUFqFWrVsrvQ7HjM8lMfC6Zh88kM/G5ZJ50PJOpU6f+o6pNUnqTDFKug8w2bdpgypQpKb9PXl4ecnNzU34fih2fSWbic8k8fCaZic8l86TjmYjIkpTeIMOwupyIiIiIko5BJhERERElXbmuLiciIqLyafv27SguLi7rbOxWWFiIwsJCVKtWrayzUmFUuCBz165dWL58OXbs2JG0a9arVw9z5sxJ2vUyXU5ODlq2bIns7OyyzgoREVVAX331FX777beyzkaImjVrom/fvmWdjQqjwgWZy5cvR506ddCmTRuISFKuuXXrVtSpUycp18p0qor169dj+fLlaNu2bVlnh4iIKpidO3di8uTJZZ0NSoMKF2Tu2LEjqQFmZSMiaNSoEdatW1fWWSEiogpox44dUNXd25kylFNhYSFr8JKswgWZABhgJojvHxERpUphYeHu9UaNGmHo0KFlmJuAvLw89OnTp6yzUaGwdzkRERGlzc6dO3evs5NNxcYgM4Vuv/125OXl4bPPPsPw4cM9j7nkkkswatSoNOeMiIiobDiDzOrVq5dhTijVGGSm0KRJk9CnTx+MGzcOhx12WNKvn0lDPxAREcXCWV3OksyKjUFmCtx8883o3r07Jk+ejIMPPhivvPIKrr76atx///2ex//www847LDD0KlTJ3zxxRcAgMWLF+Owww5Djx490KNHD/z6668ArM1Iv379cP7556Nbt24oKSnBkCFD0LVrV5x00kk44YQTdpeMTp06FUcccQR69uyJY489FqtWrQIAPP300+jSpQu6d++Oc889Nw3vCBERkWFJ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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot simulation KPI for all scenarios\n", + "\n", + "fig = plt.figure(figsize=(10,12))\n", + "gs = fig.add_gridspec(5, hspace=0)\n", + "axs = gs.subplots(sharex=True)\n", + "\n", + "kpi_plot(fig, axs, [scenarios],['r','g','b'],['min','avg','max'],'')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "17ed82fb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApkAAAK5CAYAAAD0AzVkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOydd5wV1fn/P88uCwtLbyuyKiBFihRBFCtojL3ErrFETYjGRI1RI/q1xfiLJsaWxK6JGo0Fe6+sioBI773DIh12F9h2n98fZ4ZzZu7MvXPvnduW5/167Wun33Pnzpz5zNMOMTMEQRAEQRAEIUwKst0AQRAEQRAEofEhIlMQBEEQBEEIHRGZgiAIgiAIQuiIyBQEQRAEQRBCR0SmIAiCIAiCEDpNst2AVOjYsSN369Yt283IOaqrq1FSUpLtZuQ1cg7DQc5j6sg5TB05h6kj5zB1qqursWDBgk3M3CnbbckUeS0yu3XrhilTpmS7GTlHeXk5Ro4cme1m5DVyDsNBzmPqyDlMHTmHqSPnMHXKy8sxatSoldluRyYRd7kgCIIgCIIQOhkVmURUSETTiegDj3U/J6JZ1t8EIhqUybYJgiAIgiAI4ZFpd/n1AOYDaO2xbjmAY5l5KxGdDOBpAIdlsnGCIAiCIAhCOGRMZBJRGYBTAdwH4Eb3emaeYMxOAlCWoaYJgiAIgmBQV1eHNWvWYPfu3QCANm3aYP78+VluVf5QXFyMsrIyFBUVZbspWYUyNXY5EY0F8BcArQDcxMynxdj2JgAHMfMvPdaNBjAaAEpLS4e++uqraWpx/lJVVYWWLVtmuxl5jZzDcJDzmDpyDlNHzmHitGzZEqWlpWjTpg2ICA0NDSgsLMx2s/ICZsb27dvx448/oqqqas/yqqoqnH766VOZeVgWm5dRMmLJJKLTAGxg5qlENDLOtqMAXAXgKK/1zPw0lCsdw4YNY8l2i0ayAFNHzmE4yHlMHTmHqSPnMHHmz5+PsrIyEBEAoLKyEq1atcpyq/KHVq1aoaqqCsOGaT1ZXl6evQZliUy5y48EcAYRnQKgGEBrIvovM19ibkREAwE8C+BkZt6cobYJgiAIguDCFphC4si5U2Qku5yZxzBzGTN3A3AhgK88BOb+AN4CcCkzL8pEuwRBEARBEIT0kNU6mUR0NRFdbc3eCaADgMeJaAYRSZV1QRAEQdjLGTNmDMrLy/HOO+/g/vvv99zmF7/4BcaOHZvhlgnxyLjIZOZyO+mHmZ9k5iet6V8ycztmHmz97TWBsYIgCIIgePP999/jsMMOw9dff42jjz469OM3NDSEfkxBISP+CIIgCIKQc9x8880YOHAgfvjhB4wYMQLPPvssrrnmGvzpT3/y3P6LL77A0Ucfjd69e+ODD9SYLytWrMDRRx+NQw45BIcccggmTFDVEq0hHnHxxRfj4IMPRiQSwW9+8xv0798fp512Gk455ZQ9ltGpU6fi2GOPxdChQ3HiiSeioqICAPDYY4+hX79+GDhwIC688MIMnJH8I6/HLhcEQRAEIb3cfffdWTn23/72N5x33nl46aWX8NBDD2HkyJH47rvvfLdfsWIFvv76ayxduhSjRo3CkiVL0LlzZ3z++ecoLi7G4sWLcdFFF2HKFBWNN3nyZMyZMwfdu3fH2LFjsWLFCsyePRsbNmxA3759ceWVV6Kurg6/+93v8O6776JTp0547bXXcPvtt+P555/H/fffj+XLl6NZs2bYtm1byGemcSAiUxAEQRCEnGT69OkYPHgwFixYgH79+sXc9vzzz0dBQQF69eqFHj16YMGCBejevTt++9vfYsaMGSgsLMSiRTqvePjw4ejevTsAYPz48TjvvPNQUFCAffbZB6NGjQIALFy4EHPmzMEJJ5wAQLnWu3TpAgAYOHAgfv7zn+Oss87CWWedlYZvn/+IyBQEQRAEIaeYMWMGfvGLX2DNmjXo2LEjdu7cCWbG4MGDMXHiRDRv3jxqH3fZICLCww8/jNLSUsycORORSATFxcV71peUlOyZ9huYhpnRv39/TJw4MWrdhx9+iG+++Qbvvfce7r33XsydOxdNmoisMpGzIQiCIAiCL3fffXfGi7EPHjwYM2bMwBFHHIHx48fjyiuvxC233BLTmvnGG2/g8ssvx/Lly7Fs2TL06dMH27dvR1lZGQoKCvDCCy/4JvkcddRReOGFF3D55Zdj48aNKC8vx8UXX4w+ffpg48aNmDhxIkaMGIG6ujosWrQIffv2xerVqzFq1CgcddRReOWVV1BVVYW2bdum6YzkJyIyBUEQBEHIOTZu3Ih27dqhoKAgkLu8T58+OPbYY/Hjjz/iySefRHFxMX7zm9/gnHPOwRtvvIFRo0Y5rJcm55xzDr788ksMGDAAvXv3xmGHHYY2bdqgadOmGDt2LK677jps374d9fX1uOGGG9C7d29ccskl2L59O5gZv//970VgeiAiUxAEQRCEnKNTp0748MMPAQCTJk2Kue1//vMfz+W9evXCrFmz9sz/5S9/AQCMHDnSMdRoQUEBHnzwQbRs2RKbN2/G8OHDcfDBBwNQVtVvvvkm6tjjx49P5OvslYjIFARBEARhr+e0007Dtm3bUFtbizvuuAP77LNPtpuU94jIFARBEARhr6e8vDzbTWh0SDF2QRAEQRCi8Mu4FuIj504hIlMQBEEQBAfFxcXYvHmziKUkYGZs3rzZUS5pb0Xc5YIgCIIgOCgrK8OaNWuwceNGAMDu3btFNCVAcXExysrKst2MrCMiUxAEQRAEB0VFRXtGwwFUvOKQIUOy2CIhHxF3uSAIgiAIghA6IjIFQRAEQRCE0BGRKQiCIAiCIISOiExBEARBEAQhdERkCoIgCIIgCKEjIlMQBEEQBEEIHRGZgiAIgiAIQuiIyBQEQRAEQRBCJ6Mik4gKiWg6EX3gse4gIppIRDVEdFMm2yUIgiAIgiCES6ZH/LkewHwArT3WbQFwHYCzMtkgQRAEQRAEIXwyZskkojIApwJ41ms9M29g5h8A1GWqTYIgCIIgCEJ6IGbOzAcRjQXwFwCtANzEzKf5bHc3gCpmftBn/WgAowGgtLR06KuvvpqeBucxVVVVaNmyZbabkdfIOQwHOY+pI+cwdeQcpo6cw9SpqqrC6aefPpWZh2W7LZkiI+5yIjoNwAZmnkpEI1M5FjM/DeBpABg2bBiPHJnS4Rol5eXlkPOSGnIOw0HOY+rIOUwdOYepI+cwdcrLy7PdhIyTKXf5kQDOIKIVAF4FcBwR/TdDny0IgiAIgiBkmIyITGYew8xlzNwNwIUAvmLmSzLx2YIgCIIgCELmyXR2uQMiuhoAmPlJItoHwBSozPMIEd0AoB8z78hiEwVBEARBEIQkyLjIZOZyAOXW9JPG8vUAyjLdHkEQBEEQBCF8ZMQfQRAEQRAEIXREZAqCIAiCIAihk7TIJKICIvIauUcQBEEQBEHYy0lIZBLRK0TUmohKAMwDsJCIbk5P0wRBEARBEIR8JVFLpp3tfRaAjwDsD+DSsBslCIIgCIIg5DeJiswiIiqCEpnvMnMdgMyMSykIgiAIgiDkDYmKzKcArABQAuAbIjoAgNSxFARBEARBEBwkVCeTmR8D8JixaCURjQq3SYIgCIIgCEK+k2jiTykRPUdEH1vz/QBcnpaWCYIgCIIgCHlLou7y/wD4FMC+1vwiADeE2B5BEARBEAShEZCoyOzIzK8DiAAAM9cDaAi9VYIgCIIgCEJek6jIrCaiDrAyyonocADbQ2+VIAiCIAiCkNcklPgD4EYA7wE4kIi+A9AJwLmht0oQBEEQBEHIaxLNLp9GRMcC6AOAACy0amUKgiAIgiAIwh4SEplEdLZrUW8i2g5gNjNvCK9ZgiAIgiAIQj6TqLv8KgAjAIyz5kcCmAQlNv/EzC+F2DZBEARBEAQhT0lUZEYA9GXmHwFVNxPAEwAOA/ANABGZgiAIgiAIQsLZ5d1sgWmxAUBvZt4CQGIzBUEQBEEQBACJWzK/JaIPALxhzZ8DNYZ5CYBtYTZMEARBEARByF8SzS7/DRGdA+AoqOzyFwG8ycwMQMYwFwRBEARBEAAkIDKJqADALGYeAODNZD6MiAoBTAGwlplPc60jAI8COAXATgC/YOZpyXyOIAiCIAiCkF0Cx2QycwTATCLaP4XPux7AfJ91JwPoZf2NhkooEgRBEARBEPKQRBN/ugCYS0RfEtF79l+QHYmoDMCpAJ712eRMAC+yYhKAtkTUJcH2CYIgCIIgCDlAook/96TwWY8AuAVAK5/1XQGsNubXWMsqUvjMlLn77ruz+fFJU15enu0m5D1yDsNBzmPqyDlMHTmHqbO3nMN8fe7nIokm/nydzIcQ0WkANjDzVCIa6beZ10d6HGs0lDsdpaWle81FLwiCIAhC+kmXrqiqqkrLcXOZRIeVPBzAPwD0BdAUQCGAamZuHWfXIwGcQUSnACgG0JqI/svMlxjbrAGwnzFfBmCd+0DM/DSApwFg2LBhPHLkyES+QsKIiBUEQRCEvYd06Yq9UU8k6i7/J4ALoepkDgNwGVSiTkyYeQyAMQBgWTJvcglMAHgPwG+J6FWoEYS2M3NWXeVAfprNy8vL03aT7C3IOQwHOY+pI+cwdeQcpo6cQyEZEhWZYOYlRFTIzA0A/k1EE5L9cCK62jrmkwA+gipftASqhNEVyR5XEARBEARByC6JisydRNQUwAwi+itUUk5JIgdg5nIA5db0k8ZyBnBtgu0RBEEQBEEQcpBESxhdau3zWwDVUDGU54TdKEEQBEEQBCG/STS7fKVlyewG4C0AC5m5Nh0NEwRBEARBEPKXRLPLTwXwJIClUCWHuhPRr5n543Q0ThAEQRAEQchPEo3J/DuAUcy8BACI6EAAHwIQkSkIgiAIgiDsIdGYzA22wLRYBmBDiO0RBEEQBEEQGgGBLJlEdLY1OZeIPgLwOtRoPOcB+CFNbRMEQRAEQRDylKDu8tON6R8BHGtNbwTQLtQWCYIgCIIgCHlPIJHJzFIYXRAEQRAEQQhMojGZgiAIgiAIghAXEZmCIAiCIAhC6IjIFARBEARBEEInIZFJRP9nTDcLvzmCIAiCIAhCYyCQyCSiW4hoBIBzjcUT09MkQRAEQRAEId8JWsJoIVRNzB5E9C2A+QA6EFEfZl6YttYJgiAIgiAIeUlQd/lWALcBWAJgJIDHrOW3EtGENLRLEARBEARByGOCWjJPAnAXgAMBPARgJoBqqZ8pCIIgCIIgeBHIksnMtzHz8QBWAPgvlDjtRETjiej9NLZPEARBEARByEOCWjJtPmXmHwD8QETXMPNRRNQxHQ0TBEEQBEEQ8peEShgx8y3G7C+sZZvCbJAgCIIgCIKQ/yRdjJ2ZZ4bZEEEQBEEQBKHxICP+CIIgCIIgCKGTEZFJRMVENJmIZhLRXCK6x2ObdkT0NhHNsrYdkIm2CYIgCIIgCOGTKUtmDYDjmHkQgMEATiKiw13b3AZgBjMPBHAZgEcz1DZBEARBEAQhZDIiMllRZc0WWX/s2qwfgC+t7RcA6EZEpZlonyAIgiAIghAuxOzWemn6IKJCAFMB9ATwL2b+o2v9/wNQzMw3EtFwABMAHMbMU13bjQYwGgBKS0uHvvrqqxlpfz5RVVWFli1bZrsZeY2cw3CQ85g6cg5TR85h6sg5TJ2qqiqcfvrpU5l5WLbbkikSrZOZNMzcAGAwEbUF8DYRDWDmOcYm9wN4lIhmAJgNYDqAeo/jPA3gaQAYNmwYjxw5Ms0tzz/Ky8sh5yU15ByGg5zH1JFzmDpyDlNHzmHqlJeXZ7sJGSdjItOGmbcRUTnUUJVzjOU7AFwBAEREAJZbf4IgCIIgCEKekans8k6WBRNE1BzATwAscG3TloiaWrO/BPCNJTwFQRAEQRCEPCNTlswuAF6w4jILALzOzB8Q0dUAwMxPAugL4EUiagAwD8BVGWqbIAiCIAiCEDIZEZnMPAvAEI/lTxrTEwH0ykR7BEEQBEEQhPQiI/4IgiAIgiAIoSMiUxAEQRAEQQgdEZmCIAiCIAhC6IjIFARBEARBEEJHRKYgCIIgCIIQOiIyBUEQBEEQhNARkSkIgiAIgiCEjohMQRAEQRAEIXREZAqCIAiCIAihIyJTEARBEARBCB0RmYIgCIIgCELoiMgUBEEQBEEQQkdEpiAIgiAIghA6IjIFQRAEQRCE0BGRKQiCIAiCIISOiExBEARBEAQhdERkCoIgCIIgCKEjIlMQBEEQBEEIHRGZgiAIgiAIQuiIyBQEQRAEQRBCR0SmIAiCIAiCEDoZEZlEVExEk4loJhHNJaJ7PLZpQ0TvG9tckYm2CYIgCIIgCOHTJEOfUwPgOGauIqIiAOOJ6GNmnmRscy2Aecx8OhF1ArCQiF5m5toMtVEQBEEQBEEIiYyITGZmAFXWbJH1x+7NALQiIgLQEsAWAPWZaJ8gCIIgCIIQLqT0XwY+iKgQwFQAPQH8i5n/6FrfCsB7AA4C0ArABcz8ocdxRgMYDQClpaVDX3311XQ3Pe+oqqpCy5Yts92MvEbOYTjIeUwdOYepI+cwdeQcpk5VVRVOP/30qcw8LNttyRSZcpeDmRsADCaitgDeJqIBzDzH2OREADMAHAfgQACfE9G3zLzDdZynATwNAMOGDeORI0dmoPX5RXl5OeS8pIacw3CQ85g6cg5TR85h6sg5TJ3y8vJsNyHjZDy7nJm3ASgHcJJr1RUA3mLFEgDLoayagiAIgiAIQp6RqezyTpYFE0TUHMBPACxwbbYKwPHWNqUA+gBYlon2CYIgCIIgCOGSKXd5FwAvWHGZBQBeZ+YPiOhqAGDmJwHcC+A/RDQbAAH4IzNvylD7BEEQBEEQhBDJVHb5LABDPJY/aUyvA/DTTLRHEARBEARBSC8Zyy5PBx07duRu3bpluxk5R3V1NUpKSrLdjLxGzmE4yHlMHTmHqSPnMHXkHKZOdXU1FixYwMy814y2mLHs8nTQrVs3TJkyJdvNyDkkCzB15ByGg5zH1JFzmDpyDlNHzmHqlJeXY9SoUdNibUNExQC+AdAMSqONZea7rHW/A/BbqBriHzLzLdbyMQCuAtAA4Dpm/tRaPhTAfwA0B/ARgOuZmYmoGYAXAQwFsBmqZOSKcL+tIq9FpiAIgiAIQiPCc4REKKF4JoCBzFxDRJ0BgIj6AbgQQH8A+wL4goh6W2Ujn4CqKz4JSmSeBOBjKEG6lZl7EtGFAB4AcEE6vsxeY7IVBEEQBEHIZawyjl4jJF4D4H5mrrG222BtcyaAV5m5hpmXA1gCYDgRdQHQmpknWqMuvgjgLGOfF6zpsQCOt0ZbDB0RmYIgCIIg5A+rVgG33w588UW2W5IWiKiQiGYA2ADgc2b+HkBvAEcT0fdE9DURHWpt3hXAamP3Ndayrta0e7ljH2auB7AdQId0fJe8dpdXV1fvlRX041FVVSXnJUXkHIaDnMfUkXOYOnIOUyeXzuGA229HxwkT0PD3v2Pia6+hvk2bbDcpEFVVVQDQkYjMZJKnrZEM9+A1QiKUXmsH4HAAhwJ4nYh6QJV8dMMxliPOulDJa5FZUlIigcgeSIB26sg5DAc5j6kj5zB15BymTk6dw7VrAQCFNTU4qnNnYMSILDcoGJZI3xR07HJm3kZE5VCxlGtgjYoIYDIRRQB0tJbvZ+xWBmCdtbzMYzmMfdYQURMAbQBsSe5bxUbc5YIgCIIg5A/btunpjRuz1ox0EGOExHcAHGct7w2gKYBNAN4DcCERNSOi7gB6AZjMzBUAKonocCve8jIA71of8x6Ay63pcwF8xWmqZ5nXlkxBEARBEPYiIhFgxw49v6nRDQzoN0JiUwDPE9EcALUALreE4Vwieh3APKjSRtda7nZAJQv9Byoz/WPrDwCeA/ASES2BsmBemK4vIyJTEARBEIT8oLISMI1ujcySGWOExFoAl/jscx+A+zyWTwEwwGP5bgDnpdzYAIi7XBAEQRCE/MB0lQON0ZLZqBCRKQiCIAhCfuAWmY3MktnYEJEpCIIgCEJ+IJbMvEJEpiAIgiAI+cH27c75ZCyZkQjw7rvA+PHhtEnwRUSmIAiCIAj5QRiWzKeeAs46Czj6aOCHH8JoleCDiExBEARBEPKDMGIyX31VT48bl1JzhNiIyBQEQRAEIT9wi8zKSqCmJvj+NTXA99/r+TVr/LcVUkZEpiAIgiAImkgEqK/Pdiu8cYtMIDGX+Q8/OEXp6tUpN0nwR0SmIAiCIAiKTZuAvn2Brl2B6dOz3Zpo3Ik/QGIi85tvnPNiyUwrIjIFQRAEQVC8/jqwaBGwYQPwz39muzXReFkyE4nLFJGZUURkCoIgCIKgMEXXwoXZa4cfqbjL6+uB775zLvvxR6C2NuVmCd6IyBQEQRAaB5s3A6NHA7fckrsxhbnO+vV6etGi7LXDj1QsmTNmAFVVzmXMwLp1qbZK8EFEpiDkO5EIcO+9wNVXZ3eItS1bVIctCNniiSeAZ54B/vY35fYVEscUmRs3Alu3Zq8tXqRiyXS7ym3EZZ42RGQKQr7z5ZfAnXeqAsN/+Ut22nDnnUCHDsDPfpadzxcEAFiyRE9PnZq9duQzpsgEgMWLs9MOP0u0V+JP0JdrU2QWGPJHRGbaEJEpCPmOGTc1cWLmP58ZeOwxNf3uu+J6ErKHaeUyBacQHLfIzIbL/P/+D2jWTHlnTJiTd5dHIs5hJH/yEz2dQyKTiIqJaDIRzSSiuUR0j2v9TUTERNTRWDaGiJYQ0UIiOtFYPpSIZlvrHiMispY3I6LXrOXfE1G3dH0fEZmCkO9s2aKn583LvMt6yxandSGZYd5SZfdu4MorgfPOU1mxwt6J6drNlgUun2loiL5/0iEya2uBWbO8rZVz5gD33adE4VNPOfuW6mrVRjdB+pz581XMLgB07JizIhNADYDjmHkQgMEATiKiwwGAiPYDcAKAVfbGRNQPwIUA+gM4CcDjRFRorX4CwGgAvay/k6zlVwHYysw9ATwM4IF0fRkRmYKQ75gP1h07gLVrM/v5S5c6503Rmyleew3497+BsWNVXJ6wd2JauZYu9RYkgj+bN0efs7BFJrMSeIMGAeefH/1SfO+9znnTsuplxQSCWTJNV/kxxwD77afnc6ggOyvs7KQi688+SQ8DuMWYB4AzAbzKzDXMvBzAEgDDiagLgNbMPJGZGcCLAM4y9nnBmh4L4Hjbyhk2IjIFId9xi7q5czP7+cuWOeezkShgWq3colfYezBFSG1tTomHjLF2LXDOOcDvf68s/IngdpUD4YvMdeuAb79V02+/Dbzwgl43bx7wxhvO7U3Lqvn7tm6tp4NYMt0is6xMz+eWJRNEVEhEMwBsAPA5M39PRGcAWMvMM12bdwVgXuhrrGVdrWn3csc+zFwPYDuADmF/DwBoko6DZorq6mqUl5dnuxk5R1VVlZyXFMmnczhgyRJ0NOaXvPsu1jRrlrHP3/+LL9DDmF8wYQLWt2sHIHPnsffMmdjXmt68cCFm58lvF4R8uhazzVGbNzseajPffBNbhw7dq87hwbfeig7W2NxrVq/Gkt/+NvC+7X74AYNcyxrmz8e348ahKqTnbeu5c3GIMV933XWY3Lo16tq3R99770Wpy7I596uvsNGyrraePXvPvpWlpWi1YwcAgDduxNdffeVM5jFhxogvvoDdK05p0QL1a9bgcGu+ZtkyTMzA9VGlyid1JKIpxuKnmflpZ3O5AcBgImoL4G0iGgjgdgA/9TislwWSYyyPtU/o5LXILCkpwciRI7PdjJyjvLxczkuK5NU5dHk5etbUoGcm2/7SS47Zgzp3xkHW52fsPNqJRwA6RCL589sFIKeuxWeeAT75BLjtNmDo0Gy3xklDg4rZMxjUogUwcmRuncN0MmsWYAlMACh7802UXXklcMopwfZftSpqUeHu3RjZpw/KFy0K5xy6rKVFlZU48rXXgLvuAsaNi9q8f6dOgP25xu/bqmdPdazKSlAkgpFDhgDWy20US5dqa2fr1hh25ZXqeiECmNFs82aMPPJIoKgo9e8XA0ukb2LmYUG2Z+ZtRFQO5d7uDmCm5dUuAzCNiIZDWSgN3z/KAKyzlpd5LIexzxoiagKgDYC0xDmJu1wQ8h23e3revMx+vttdno2YTDMmKxuJR3sDX3+tCp2/9Rbw619nrx11dd4JI5ZVy8Helvzz4IPRy664Qo1qEwQvdzkQrst85croZa+/rpL2vJIWzbab7vI2bVQCj02suEzTVX7UUUBhIdC0KVBaqpYxAxUVgZqfboiok2XBBBE1B/ATANOZuTMzd2PmblAi8RBmXg/gPQAXWhnj3aESfCYzcwWASiI63Iq3vAzAu9bHvAfgcmv6XABfWXGboSMiU0idtWtVxy9kB7eoy3SGeS7EZJoPmGwWpG+sNDSoGD+bqVOz8zu/9RbQooVKGnFZLT2TQrIhMu+7DxgwQLU1k6xaBfzvf3q+bVv1f8MG4Be/UNna8ciEyDStpW3a6Gnz5fiyy/S0X0xm27ZAp056PtbLpR0DCqh4TJvcjMvsAmAcEc0C8ANUTOYHfhsz81wArwOYB+ATANda7nYAuAbAs1DJQEsBfGwtfw5AByJaAuBGALem44sAIjKFVHn8cXWj9u+feJB5vsIMTJ8O1NRkuyUK98N+x47MdZg1NdHJFdm2ZFZXA7t2Zb4NjZmXXlLXvEmma7JWVQHXXKOsmPPmAV984VzvJTIzXSuzogK44w6VfHfzzZn97Ece0RbeY491JtB88gnwj3/EP4YpMnv10tPpsmQ++KBTKALAyScDp52m501LplnOqG3b4JbMKUYI5IgRejoHRSYzz2LmIcw8kJkHMPOfPLbpxsybjPn7mPlAZu7DzB8by6dYxziQmX9rWyuZeTczn8fMPZl5ODMvc39GWIjIFFLjxRfV/8WLPeNpGiXXXAMccojqrLJdImXXLm+xm6kM85Uro62mmRaZ9fXRnyku8/CoqlIxmG6++y6z7XjoIadVy13P0UtkLluW2Xt08WJ9PyxfnjkPz9atwNNG7sgtt6gyQabQveUWYMGC2McxRaZp8TMHfEgV05I5ZIgjnhqAis203dhA6pbMXbu0lZRIfaaNWcYoR0RmY0NEppAa5o29t8Q/vfmm+j99evxOO934CbpMxWW6XeVA5kWmXWDZRERmePz1rzpezUwyy6TI3LhRjUdu4v7dvURmba1nMkvaWL5cTzNnbvSrJ57Q4QP9+ytrIAD8+c/qhRhQ5+KZZ2Ifx09kpsuSuf/+wAUXANdeq66t668HDjsM6NxZb+MXk+kWmX6WzFmz9ItG795Aq1Z6nWnJ3BvLXWUAEZlCapgdfTaGH8s0kYhTRGVbWPvFxaVqyfz6a+Cee7xFpIlXTcowYvVqapQr7YUX4seXej1cJC4zHFavdiaT/PnPenry5MxZ6v78Z2VRNXGLTL/rLpP3qCkygcwIl927ndbAm2/WLwNNm6oYUZs33ogdm2mKzKOO0tPLloH8xhJPhG3bdIJW8+bK3U0E/POfSgg+8ohaF8SS6U788XuxNMewtwW3TQ66yxsbIjKF5GlocN70e4PIrKx0dtLJPsA2bVKWhaBUVXk/RE3BW1iop5MVmVu2qCSBkSOBu+8GLrww9vbpsmRec416WP7iF8BXX8Xe1ktQiiUzHG67Tce3DhkC3Hor0K2bmt+1KzpOMx4vvQT07OkUPvFYvtx7FKcglkwgs3GZK1Y45zMhMl96SVv7unYFLrrIuf7444H27XV7Jk3yPk5Nje5jCguBAw5QxwOA+noU+yUFJYJpVT7gAKdl3Jxu2xZoYlVY3LFDx/snY8mcNk1Pu8tuichMOyIyheRxi569QWS6BVQyD7D33gO6dFEP6yCCbM4c1ZmWlUU/1M3fYPBgPZ1MhvlbbwH9+jlH4PjhB2DnTv99vETmjh3eJWaCUl6uhoi0McuPeCEiMz0sXw789796/uGHVbHrI4/UyxJ1mY8Zo6zfd9wRfIz5O+7QFtPiYr08lshs3lxPh23J/NvfgDPPBGbPjl6XDUummcV+ww3KemlSVAScfbaef+017+OYbunOnZXQ7N17z6LmYXwXt6vcDyKny9y+VmIl/gSxZLpFpsRkxoSIZgX4+zLWMURkCsnjFkirVjX+DHP3d07mAfbvfysRVlGhBGc8nn1WndedO50lStzt6ddPly2prEys0xw9Wg1F51VPL9bLg98Qjn5WpXjU1ABXX+1cFi++VNzl6cEo6o2RI1XGMpC8yKyvV+XOAPUCNGNG/H0mTABeeUXP3367no4lMk23aJgic9o0lUDz3nve2ePZsGSaSTl2LKabCy7Q034uc9NSuc8+6r8hMluEIcLclsxYmC5zu19K1JJZU6Ne0m3MpB8A2HdfPV1RkdrLceOkEMDpMf7OANDJd2+IyBRSwd3JMzf+caPd3zmZB5j54HE/lLyYPFlPu11WpiWzfXsV9G8T1GW+cqUzIWCffYCDDtLzfslNzE5Lpi1wgeRd5g88EJ3JmozIFEtm6piWusMO09NukRnUYu6+Jma6h2C2iESADz4ATjxRfZZ9/NNOUxZEm1gi89BD9XSY7nJz6EHTQgYoa6tbiKXbOlZbq62DRMCBB3pvN3KkFmQVFcD48dHbxBGZzcP4LkEtmYC3JdMtMuNZMmfP1sKxZ09nXU4AaNZMf05Dg3+d0L2XXzPzyhh/KwD8JtYBRGQKyeMlJMJwmU+dquKGMllQPCju77xmTWx3she2NQeILzLr6pwxRW5Lo9meZEWmKRQPOkiJujPO0Mv8RObGjTqjtXVr1Yl7tSsoixZ5x+otWhQ7ftXr4ZIPlszycmVxu+mmbLfEG1NkHnywnu7fX/3egHoox0sOs3H/Jl4ic8IEJWxOPx347DO9vHlz4C9/ATp00MtiiUzTLbpsGSisMkZmbdBNm5zX3qpV0RbCdFsyly3Tn7nffs5wApMmTZSnwub116O3iWfJDNtdnqglkzk68SeeJTNW0o+NxGX6wswebyMKIjoy3jaAiEwhFbxKx6QqMsvLgWHDVA3KDz9M7VjpwEs8JWK9ratzCkWvIdZMZs921sF0i0zTktmunVNkBi1jZHasgwap4wSxZJriokcPpwBIVGQyq2QfW0weeqiOl6qvj22NyldL5o03qhjbv//d6dLLFfxEZmEhcMQRej6oy9z9m3iJzBtucN5PREpwfvONGkXHfY2ZL6KmANlvPy2U6urQLOiwirFgViLYxLw3vF4Ygwizzz4DTjoJePnlxNtkelLM4ulemC7zsWOj64dmwpKZiLvcbcncvVv3D02bKkHdpo1OEKqqig7XipX0YyNxmb4QUSERXURENxHRAGvZaUQ0AcA/gxxDRKaQPOmwZJpB7O+/n9qx0oHXd07EZV5R4XwwxrNkmq5yID2WTPNBaHe4psicP997P1MM9OihxKlNomWMXnlFZ5EXFABPPaVEhU2s75KrMZmLFqkkEa8EkW3bnDGJuZY0V1mpr80mTZzXA5BcXKb7N1mwwPkCVVWlLU9EwB/+oF4u3ntPvXgCyr1ZUqKmGxqc45W7XamG6ApFIK1eHV330hSZ7qQfQImjeCODjR4NfPop8Mtfeo+/HotERObRR2vx+OOPqkyZiZfI7N59T9WKYtNzkSyJuMvdlkx30g+R+ovlMo+V9GMjlsxYPAfglwA6AHiMiP4N4EEAf2XmITH3tBCRKSRPOiyZs2aFd6x0kKrI9IrZihVs7haZGzc6XXJuS2a/fno+aIa5KTLtDrdPH71s0SLvUVNMS+aBB+oyKUDilsxHH9XTN9ygAvSDWmVzzZK5ezdw551KJN9yiyoh4w6pcIeDxLNoZxrTstqnT3TGcjIi0/2b2MND2kyerK/tgw9W9Tl79Ig+jp/LPJbINENUksVrGE3zBcxLZAKxhcuOHfq3373b/4XOj0REZmEhcO65et7tMvcSmUVFzt8glfjWmhpd1L+gQJdH8sNtyXT/vjZ+Q0vW1jpf8NxJPzZSkD0WwwCcwMxjAJwC4DwAI5n5naAHEJEpJE/Ylkxmp8jMdqFzL1IVme6HXX197FFB3CKzocH5YHUn/uyzj7YoVlYG6zS9LJnt2+tOfvdu71FT3O7yZEXm4sWqVBKgHmp2BrFbMPvhJTI3b45ddDpdfPGFEkj33qvL7mzcGF2GyS3Mck1k+rnKbYYP13VZ584NZrn2+p1Ml7npijbd8W6CikwjRrhFukRmPHc5EPsedO+TqMg0RV88kQk4XeZvvul8wfUSmYDDZZ5S/26K7X33Vfd6LNyWTHc8po3f0JJz52r3evfuzv7JRCyZsahl5gigxjsHsIiZE8qOEpEpJI+XJdP9xpkIa9Y4H1Zr16bungmbsC2ZgP/DqbLSW1yZLnOzPe3aKfdRonGZXiITiB+XGZa73CzLdPLJ+mFgikw/d3kk4nyw2PUR3QMFZII77gBOOMHb2vP55855d3ZvvonMkhKnZchLgLmJJzLNY4wY4X8cL5FZX6/uF0DdA61ahe8uT8SSaVrhYolMt/UznZZMQIl324K4aZNzoAM/ken2aiRLIkk/QOqWzCCuckBEZmwOMuphzjbmZxPRrLh7Q0SmkAp+1qpkLZCzPK7ZTI7WEQQvYe3+vjU1wEcfeT9cvCwqfgJj6lRvd7cpMt3uciDxuMxkRWYY7nJmZx3Eiy/W06bIXLTIewjDbdu0K791a1Xk3iaTLvPdu1X5JZs2bYArr9TzX3yhp+vqnDUogfwTmUDiLnOv38MWmZGIU8Qlask04/XatFHu2DDd5bt2OZNI7NFpVqzQIyKZL4vmuN/pEpmmh6GgQFnr4lFQ4HSZf/yx+s8czJKZqAg2SSTpB4gfk2njZ8k0fy+/zHJAEn9i0xe6JuZpxvxp1v+4iMgUkscUXGZ8TbJvu14iM9fiMr3EU0WFc1zlP/4ROPVU9XB2W/QSsWS6hYiNLTIjkfgiM17WcnW1PkZRkdN6EEtk7t6tBXNBgQriT0Zkzpih62KWlKhMYptWrfQDoK7OO4vftFx06hRsmLl0MGuWFsFlZep8PfqodgnOmqV/txkztDCx8QpHyBbM6RGZfpZMZnUN2Ndhp07+9R4Bb5HpZeUy3OXFqRbanjpV79+nj45TZFZ91K5dOt6wsBA4/HC9byIiM2hFCEC95Nkvofvvr5KigvDTn+ppO/mnslJfk82bq3vPZuBAPW2HtSRDIkk/QLR4NJ83YVoyzWfXunXe8ecZhIiKiWgyEc0korlEdI+1/G9EtMCyJL5NRG2NfcYQ0RIiWkhEJxrLh1pWxyVE9BiRejsiomZE9Jq1/Hsi6ubVljg1MgO9GYvIFJysWQM89lgwcWcKCbNTDdOSmcsi04wLsi2u9fXAf/6jprdvj374JmLJNOMxzU7fFivmOOotW2pBM2iQ3tZdcsWNKXrLypRgtIklMs2H4/77q89ORmSaVsyzzgJatHCuj+cyd4vMIMPMpYMpU/S0ncXbsqXT7fulNfqaVyHszZvjh4bMm6deIE44IfHarIlQUaF/v1at/K1OprVx6tT4MbBev8eWLeqecMdjmuNYuzGvMy+Rab9slZTssWwXNDSo+6y+XlnjEn0Bcbvy+/bV8wsWOO/h/fZzWhUTiclcvjz4qGmJusptjjpK3+czZihx77Zimud/yBDdtyxalHjlCJtELZlmnxKJOF8y41ky6+qcoRixLJnFxbrfqK/3HvUss9QAOI6ZBwEYDOAkIjocwOcABjDzQACLAIwBACLqB+BCAP0BnATgcSKyAqbxBIDRAHpZfydZy68CsJWZewJ4GIDhhtEQUSUR7TD+thPRUiJ6log6eO3jRkRmLlFXB/z2t8BFF2WvBMsFFwDXX6/eduO9+ZtvlubDNExLZi4l/zA7xdPw4XrabufEiU63jvtcJGLJNEXmSSfpafuB4C5fZLbLtmosWhQ7scgrs9zG/SA1cbvKgcRjMiMR4NVX9bzpKreJF1+aK5ZMU2Ta5XYA4Cc/0dN2XKaf1S+ey/z229U5+OIL5/jyYWNaMQcM8Bd8++6rH85VVfHbb/4epiVr5szgST9AcEsm4BRfJ52khH+/fkpIJTIkpltkukt8mfdw9+5OF2wilsxIJHj/mazIbN1aiy5m9dLj5yoHlAgzX1zdyYhBSdSSCTg9K+Z5MV/wvSyZ8+fr0lH77+/cxoscistkhe0aK7L+mJk/Y2b7oTwJgN3oMwG8ysw1zLwcwBIAw4moC4DWzDyRmRnAiwDOMvaxO5GxAI63rZyutrRi5tbGXxuojPO5AJ4M8n1EZOYS//sf8K9/qQfvdddl/vOrq3Vnv3JlbHFSV6cD7QsKnMO4JSMyd++OHk4w2WOli6oqLbxLSpwCyO7w7Rgn93JAPUC8zqnXw3ndOt3ZtWgBHHecXme/aXu5ygH1UDAf1OPGeX8fwD8eE1Cdsz2CyIYNTlHrziwHErdkjh+vv2OHDspC5yZehnkuWjJNkWl+p88/Vw91U9yYcWexRFp1NfDJJ3reTNgImyCuckCJT7OWqVc9UBtm5+9him+3yIyV9AMkLzKXLNHCIxIBHn889ufYMEfHi7pfwEyxGFRkMnuXPQoa95isyATUMJM25eWxRSbgHFbUL4wnHokm/gDO+8N8FsSzZAZ1ldvkWFymVQR9BoANAD5nZvdJvxKA/bDpCsC8yNZYy7pa0+7ljn0s4bodqhZmXJh5KzM/DCBGTIumSZCNcpXq6mqUm2PJ5jl9/vc/2GkL/PrrmHzqqdjlti7FoXj9erSaORPf7NqFiJ1pG5CSJUtgSEVM/eADVJoPeYOirVthR2TVtWyJyZs375mvnz8f48eNi+3yctFy0SIMs2Jh6lu0QBPLHVg7bx4mZOE3rqqqirq2mq1fD/vxt7ukBKuYYYfEV3z7LRaWl2PoG2/AcGxj6+TJmGkdp2jrVhxpldRoaNYMhdYDL7JiBb756iuHq7rD+PGwH+/bevbE6s2b98xvnj8fs8vL0W7qVNj2ha0FBXs+BwAO6NYNtsOu4pVXsNCnJt0B33yzZ7tVzFjm+s7DunZFS8tNNe1//8MOS1j3/PrrPa/RywCsKi9HQW0t7HSHyObN+GbcOFTFuEd7P/QQ9rWm1x55JBZ7WJZa19TAdnRVTZ6MKa5j7T95Muwqfqt27ULdjh17er7V06djaQaunYLdu3H03LkgAEyE8VVVaLA+lxoacGRJCZpUVwNr12LW/fdjoPVAry8pwaZBg7CPNXziws8/R4XHPVtVVYU5f/87Bhhu1NrPP8cE1zUTFgd9/jlsmbG4uBhrY5zDnu3a6evgvfewyh5u0kXhzp042rreG5o1w5L27WHnLG956y20tyzlkcJCjN+5E5EYn9l+7VrYUYJblizBrPJy7DNpEmzbYsWuXVho7b9Phw44yOsgAHZ//jkmBeiniisqcLjxm43fsAGtd+7U1+UPP2ALANs2t5wZK+fNwzFNmqCgvh7YuhXffPxxVH9ctH07jjRjuS1WfPwxVpjiyodBP/wA+9Vy1q5d2JLAtd6hffs9/UnlBx9gfW0tbJm6tqEBi13HKm3dGras3vzRR5htJjYFIRLBMStX7rFqfbtyJRoCeBr6AbBtmZGlS/fsP2/dOmyw2liyfPme51b1ihX4obwcB7366p5reHm7dlgZ59z0ItqjvhaPG4e1fuWOUqRK/d4dich4K8XTzPy0uR0zNwAYbMVdvk1EA5h5DgAQ0e0A6gHYQ0R5XcAcY3msfQJBREUIqh+ZOW//hg4dyo2Kgw5iVu+36u+qqxLbv6qKuWNHte+VVyb++a+/7vz8d97x33bePL1dr17MkQhzmzZ6WUVFYp/973/rfX/2M+biYj2/ZUvi3yVFxo0bF71w6lTdpkGDmD/7TM8feSTz2rXO8wcw77+/3n/aNL18wADmDh30/Jo1zs+67Ta97g9/YJ40Sc8PGaK2MX+vs8927v/tt3pdjx7+X/RXv9Lb/fOf0esvuECvf/55vfz00/Xy11/Xy5s318srK73PIzNzTQ1z+/Z622++8d5u2za9TdOmzHV1zvXXX6/X/+1vzM89p+cvu8z/e4fJd9/pz+zbN3r9WWfp9YceqqdPOon5rrv0/JgxnocfN24c8yWXRF9bs2al5/sMGaI/o7w89rZPP623vfBC/+2WLdPb7bcf8+TJ0d8HYB4+PH77zHvhkEPUsgcf1Mt+/3u9bUMD8wsv8OJrrmH+/HPm9euZW7bU2y5fHn38adNU31dTo+Zffllvf8IJatnmzXpZcbG6/+z5l15S23TvrpfNnx/9OT/84H0Ozj8//jlgZi4r0/ssXBhsH5utW5kLCtS+BQXMv/mNPtY990Rvv3ChXt+hg+rvE6GiQu/frl3w/a691vscffCB3sbsdzt3Vv2Aue3nn8f/nPvu09vfdFNi3y0Bxo0bxwCmcAI6B8BdAG6ypi8HMBFAC2P9GABjjPlPAYwA0AXAAmP5RQCeMrexppsA2ASAPD77bI+/qwB8BuDOIO0Xd3musGVLdNzbiy9Gu1oiEf8EgZkztbvg008Tb4PbNW1nS3phukM7dFDWgFSK9prxmIMHOzJDcyYu0x0DabqoFi92ujNtVq/WgfymG6ZrV6BbNz3vdpWacU/Dh0eX8wCiC7GbDB+uk2iWLfPPXo7lLgf8k3+83OXudsRymX/2mV6/337OTGWTNm109mdtbXSGeS64y/1c5Tamy9zMzj3ySKfb0MddTnV1wAcfRK+IFQaRLO5ReGK5y93rY7nL3b/TgAHeVth48ZhA9PjlgL+7vKAAuOwyrDn/fOWiLy11foa7SP7s2ereOess5bafO9e7fqd7sIJvv9Xb2Ek/8VzmpqvcvL+DuMt37tT9SWFhsPJFJm3bqn4WUM8UczhfL3d5r16os5MPN2923v9BSDTpx8bPouuXXb5hA3DzzXr+pz91hhr5cfLJwJNPqvvs2muDty8NEFEnO3OciJoD+AmABUR0EoA/AjiDmc3Mv/cAXGhljHeHSvCZzMwVACqJ6HAr3vIyAO8a+1xuTZ8L4Cu2VKWL011/pwE4CMCjzPynIN9HRGau4BVMXVcH/P3vet7OLu3YEXjnnejtTVHoV7Jj8WKVPe4Vd+KOiYwlMs2kH1tYmKIrFZE5cGBqx0oXbpG53356uL0NG4DXXoveh1kLIzOzvKzM2dmaiQORiFOMuEXmhg1qG3chdpOmTZ3CzU+QJCMyV692XivJiMw33tDTF10U2+0bK/knFxJ/4olMM/7Q5KijAonMtjNmeBeWT4fINOMWu3b1HyXFxvxtFi7UI6y4MQV/x46qTI75UmoTLx4TSCwm0wvT1WuKQ0AlVNn95rRpKp7PTE4z22fGZZrXmv3ymIjINBP7Fi2Kn3Rpvmx16xZ/9BwvzLjMeDGZRKg0+4JE4zKTSfoBnIk/JmbiT9OmKpnJzTHHAG+/HSykZMgQ4Ne/VqXnzJf/7NAFwDir2PkPUDGZHwD4J4BWAD4nohlE9CQAMPNcAK8DmAfgEwDXsnK3A8A1AJ6FSgZaCh3H+RyADkS0BMCNAG71aggzX+H6u5KZb2bmD4N+GRGZuYL5tmwG0z/9tOrApk0Djj1WPeh37/YOWjdFYSQSLRLr69Wb3fXXOwvy2rjFnNnxuHFbMoHkLZnMznITAwc6j5WrlszCQmc9Pyu2DoCzI7XbH9SSuXixzlDv1EkJkebNdUdqxXn5Jv7YjBqlp4OITK/4Xy+R+cAD+iF41FHOzw4qMs3A/DPP9N8OiJ38kwuWTPOFwEtk9uoV/WBt0kS9PJjLfURmR7Pk0Ykn6umvvw5/6MygST82rVrp67i+3rtoPxD9OwHOjGWbIJZMu9g6oJIPa2ud90IiItO0ZDJHv7zX1DivIzMB5iCPaM+mTfWAAImIzMGD9X41Nf7joNukkvRjc+yx3su9RCaAHaaoTkVkhm3JBJwvl4B6Gfjgg+iSaHkAM89i5iHMPJCZB9gWQ2buycz7MfNg6+9qY5/7mPlAZu7DzB8by6dYxziQmX9rWyuZeTczn2cdczgze5qmieh1Y/oB17rPoveIRkRmrmCKzDFj9JBtu3apN6xRo5ydnZcl0i0q3R3bqlXaYvb9905rJHPqlsxkReb69fq72Q+tXLdk2sLaq4MvK3MWFbcfCEEtmW5XuZ2Y4HaZ+5UwsnGLTLc3ZMcO9Qc4a8WZmL/p0qWqnc88o5fdcYdz+yBljBoanA9J0xrmRaxambFEZiYsmTt26PumoEC7IE2Ioq2ZQ4aoB6ApRNatix7VKBJBRzMh6rbbtAjYutX5chYGiYpM93Z+xf/NvstPZO63n/eLjpuCguiXmUQsmYceqj0Qixbpl+m5c7WFsGXL6NqK/fo5r29TdNkccIAWwPFEpnnPd+vmPF48l3kYIvPoo72TnoKIzEmTEvss010ehiXT/RubiY3DhqkqH2ZtYSFZzIvLXf7Dpey9EZGZC0QizjfDI45QDxObt9/WYsDGq6i3uzyOu2NzW0pmzNDTmzdHu+QyZck0XeUHH6w66XywZALeHfzJJ3ufi6CWTNO6YpaGcovMeJbMoUPVwxJQnbzbOuK2Yno9cFq00GK4oUG98Ngu0cMOiy47FMSSuWKFPkaXLk7Xlxd+7nLmaJHZtq2yMAOq5FTQwtbJMn26Fu/9+/tbTtzn6aij1P9mzbQFKxKJvq+//x7N7Be6Tp1UCITp5gzbZZ6qyPSLyzR/J/tFwC0yg1gxbdwu80REZnGx0yJpu8xNK+Yppyghdeed+nq68ELncbwsmWZsZCKWzO7dMy8y27Xztib7WA8rzfbNmKHDKoIQpiWzsFCVkDO5+WYlSE89VeUjxOtThKB4xWkGWbcHEZmp4hkrmyDz5mkRWVqqbsKf/UwNX2bSubOOvdmxwzmUIRDfkuku+j19up72EoWpxGQuXRp8eC53PKb7WIsWhXOeUyURkelOCgKCWTIjEeBDI9zFFCeJWjKLirSYAaIFiSl6veIxbcyHqRkScOed0cI0iMg0Xarua9wLd01C+7qyXaWACicoKVHtMa2ZXmPNh0m8eEyb4493zpvxsrHiMs2EjDPPVA/YIGEQyZIJkelnycyUyAS84zJNkXnWWer+uecedf9+9ZXzxR+ILzJNq6xXAqe7gHumRSbgfGEBlPD0GZ6yrk0bHR5UW+s0UsQj2cQfL0tm27bR/c5ppymjyAcfxI8jFhKhBRENIaKhAJpb04fY80EOICIzFcaPV53DySenNi6uO3uRSD1MxozRy8vKVGdodlxuq0fYInP9ev+YLy9LZuvW2tVSWxt8PGYvkVlaqt0dlZUq2SXbxBPWgHowHX+8t8h0WzLd4oJZ/Sb279ihg9PikqglE4gtSOIl/dh4PUyHDlXXvZsg7nJTZHod2+uYZryandnqJVzc0+l2mQcVmZ06KfckoKydpsjxE5nMyoth87Ofqf/mb/rNN6n1PSbV1frcFhZ6u4O9CFKQ3Z34AzhHDAKCJf3YxBKZfveCiTsuc/VqHSdcVKQsmTbdu6tzbls0bfbbL9pybXon3JZM80V5/XptCWzfXvWd2RCZ7rhMH1f5HoIWZX/pJSXUr7gCuOsuZ6JSIu7yli3VC6SJn5UygbrMQmDWA3gIwIPG9N+N+biIyEyFhx9WD4VPPkmuZJCNGd9idrSXXQbcfz9w9dVqlJDevVXHbOMWmYm6y02R6TXaTn29vzXKS3ABTjexX3yWGy+RSZR7cZlBLJlHHaUeGN26qeQOQP0u69frEZKKi9X+bdtqq8vu3UpIm1bMk092PtgStWQCseMy4yX92HgJQS8rprsdQSyZQUQm4O0y9xOZmUz+MUWmGdrgxYsvKmvYBx842+uX/DNnjn44t2qlraE9e+oYtB07nPdxKvzwg74+evf2tWhF0aeP9rCsWhUd2gN4/1ZEwO9/r6aPPz7YyCw2qVoyR4zQsZOzZjmH6Rw1Kpi7taAg2hJvWjI7dNAjZlVVOYebdcdjAtEi0897U1WlX0SbNEnMMujmmGOc93EYInPFCiUu330X+M9/gD/9Sfd9zZr5x1l6QRS9fZDfVwgFZh7JzKP8/oIcQ0RmKpgiL142YCy86rAB6gb74x+BJ57QDyIzwNkUlbW10Q/UeJbMhQtVvTXAX8T5ucy9LJmA80Hx9dfe+5rU1jrf2k3XW67FZXqJuq5d9YME0Na9Jk2cDxzzXHTtqjt2t8vcrId42mnOzzdF5vr1wSyZQ4borPR165znMVlL5qBBzsQmk0yITDsxKtuWzK1bVckfQIks+wXJj27dgPvucwp/wHkNmNZ/04p56qla9BGlx2X+gJE8mojruqjI+Tt6vVx6WTIBJbq3bFFDbiYyepHZ5/z4o64dXFCg45Bj0aqVc/zuv/5VrzvrrODtcFt7zXueyD8u0x2PCSiBZwuoykr/YX3taw5Q5cPsl9lkaN/eed3aHgM/gojMSZP8Q6WGDEl8lCp3XKaIzIxBRIekuo2IzFQwO06vRJwgbN2qRVaTJvHf5k2RaX6mXaDbJJ4lMxLRVkRTZJpZeX7JP36WTLPwbZCH34IFOqO2e3dnvbNUirunAy+R6c4oNoWhaeU0z4VpNTTda99/r8vhFBY6y9UAzs527Vrn2PE+w/mhSROna9BsR7Ii08+KCaRPZNquZkAJEiD7lsxp0/T0wQcHt/y58XOXmzGCtqvcxhSZYYxjPmGCHkygoAC46abE9o8Xl+n3WwHqBSlRV6d5nZmuWK94PT/M+8K+lwDgjDOCt8N9/bprLCYiMomCuczDcpXbmC7zeJbMwYN1Zv7Spd73l1nx4OSTgdtvV165K64Annoq8faJJTOb/JuI2hFRe78/qJqbvojITIV4JYW8qK93xlCZb4ODBsWv6+UnMr3een/8Ucf91Nd7ZzhOn67EptlxmckiiVoyjzlGu3inT49dKxHwdpXbeMU1Zgtmf/f0o48qS9M//+l8SJjtN8fONX9DU2A88YSePvro6M7UFJlmeEPbtrGtA6Yg+fJLPR008ae0FDj8cDV95JGxLT3xYjI3b9b3TfPmsT/X5Pjj9XecMkUdI4jITKclM2g8Zjy8RObKlXvc4JGiouj4V/M3HT8+uvRRopilqH7+8+Di3yZWXGZdnXZnEwWLmYyH2ee4RWZQvMbfHj7ceX/Gw7zfW7SIFtB+ItPLXe4+XqZE5tVXq7a3aKEGRohFs2bOl2qvQURMkXn55cCf/6zCEZ5/Pr613wuxZGaTNgCmxvmL2fmIyEyWujpnjE0QS+aCBSqmcv/9dQynn6vcDz+R6ScG7W3WrfN2YUyfrjo/W4x27ux8wHgdt6ZGu6eaNHFaPlu31tZY5vguczND0Z3NmkuWzJ07nZnMZjD68OHew5GZDwBTFPpZMk0Ln9tVDjitDKbFK95D28xQ//BD9dsxB7dkEgFffKEsiJ98ElvQxrNkmuehT5/grrO2bbWrjlmJZa/ai+7pdFoy0yEyV61S3+/dd/cs2nrIIdE1/7p31/tVVzsLwidKebm2hhYWKkt1osSqlWl6PTp0iE6gSYYwRKb5Mm2TiKsccGbI9+0bbUVNxJJpH8PGPfCATdgis29fFQ++Zk2w69h+4QS8XeamyPQqkZQobkumlCfKGMzcjZl7MHP3GH/DYx1DRGayuB9eQSyZjz6qLCsVFUpEvPBC4iLTL/HHT2TaHZv55mzG8Eyf7hRwvXs743K83OVui567Y03EZW6O/OIufmx2oEuWJD+6ySOPKEvYFVcADz2kyvB4hRfEwi88IBZ+DwA/S6aJl8j0G/0iXnsGDNAPr507gfffV5Yl+0WhpCT+w7mkRBUUjxfvFk9kJuMqtzHDBz79NPvu8rBEZuvW+sFpJ4AZrvJNfuO6m9bMxx6LXl9VpaxUl17qfx6YnaLy8stVYlGiuN3lZtKKXzxmKpgi0+wHExGZHTpEDwQQb/QpN716qTJHw4c74zptUhGZQSyZyfxWXpSUBLcwm3GZ5vMLUL+17VVr3jwcESyWzLxGRGayuDvttWvj13I0i2zX1wO/+IVThJlviH74Jf7EE5mm5cuMwZk92zmKSu/eTouZ13HjCS5TZMaKF4tEnHFt7gd1u3b6obR7d/CQBJNvv1UZrF99pTId//AHJVa6dFGZ+0EJksntxq+D9bNk2vTs6T2uc4sW3iIv3sOBCLj4Yj3/yivBCrEnQ6tW2jpZVQVyl9dJRWT+9Kd6+rPPspv4s2mTfnFr2jT+qEXxMF82pk/XfQURNvuJzF/+Uk+/9pqzfwGA3/xGxcD997/ew9ACykJt14ksKooewSko+++vra1btjj7jVjxmMliikyTRAWI6TLv1St42SaTO+9UFj2z37PxEpn19c4Er0Td5aZRIEid2bAxk8ImTnSGf5lWzAEDwrFaS0xmXiMiM1ncInPnTqf73M3Gjd7uD/sG7dzZ+Ubrh2nJrKjQ1j1DcNabrlwvS+bQobrzq6lxuOYStmR6dfZHHqlLmsyd6281XLJElzvp1Mm7jE6qcZkPPui9nFnFCu3aFew4yYjM/ffXQfIm5ouCl8g87TR/0edlzQzSHnO0ko8/dj4MgsZFBqGgwCF6m5gJFUBqIvPQQ/UDZu1apxUl05ZM0z1tJkMkiykyH39ch7Ycdhhq/X7fI48ELrhAz193nd7vjTdUrUIbr2QcZqeovOoq7+sxCET+cZnptmSaJCpAzCoJP/95+LUWzXvLFpZr1+rfqbTUGXpzwAG6WsWGDdHegK1btWgvLg733g3KAQfoPqyqyhlXb4Y/heEqB8SSmeeIyEwWr4dXLEubbS0AVBkH91uvXYQ9Hs2ba1FRX6+LlBuWg0rz7dZLZB5wgB4bHXDGTYZhyWzRwmmV9XOZm67yoUO9v79p0ZswIbGRfxYuBN57T8//+c/Ar36lH1DV1TpTOR7JiMzCQj1Chokpptu1i7ZOernKbbxEZhA3V8+eyqUHqOvmkUf0urAfVMb5KQpTZDZp4hw5x0wsynTijyky49XHDIIpMs0yVvFiBP/2Ny1SZs4EnntOiZhf/9q5nVeJtQkTdExd06YqCzgV/OIyc9mSedJJqn7p3/8O3Hprys2KwhzLfOlS9ULv5yoHVJ9h3hdua6ZpxezVK/FyQGFA5Kz2MH68ng47HhMQS2YOQERfBlnmhYjMZPESmbGSf0xX1kknKWuS6cJMJODcK/nHFJmmy8XLXd6tm1NkmsKtTx+nJdNLZMazZALB4jKDxLSZlsw771RuyUceiZ+1Dqj4S5vTTlMP0aefVkLT5s034x8HSE5kAtEu88JCp4gnclqPWrVyduBukrVkAs7rzQxTSKPIbGIW5jZH63EX2w+Ku6yTTSxLZjqGJE2nyDTbG69f2G8/pzi6/XbgkkuiM/vt825iXgPnnx+7IH8Q/MoYpUNkFhd7V+JIVIAQqZjVG29MvgRVLFq1Ur+HzejRzmvHy3vVr5+eNkOZgOj4+WxhJk1lWmRK4k/GIKJiq0xRR1cpo24A9o2zOwARmcmTqCXTtBYec4yyHLz0kiq4/Oqrqo5YULySfwx3+Q7zTdjLkukWmTZEyvLWvr12d1dW6gQRG3e2qBdB4jLdlkwvTjlFtwVQb/a//71yRZsWHzcbNigLhY1Z9++cc/T0e+8FK/8SRFh74RZS++wTHadkCoyf/jS26zVZSyaghISX5SNskennLjfHs99///jlurww4zJtioqcdUKLi7V1uKHBORpMGDCHLzK9hto76KBgMXc336yvoU2bdLkse3haQIlO93kww0+CjlMeCz+RmQ53OeB9H4ZRHilsHnlE99kbNjhDFOKJTHeIlbs6Q7YwX4S//VbdE+6BNZIpV+RFhw7OfquRWzItYTeZiGYS0Vwiusda3p6IPieixdb/dsY+Y4hoCREtJKITjeVDiWi2te4xIuUuJKJmRPSatfx7SzR68WuoMkUHwVm26F0A/wryfURkJksilsxt2/QbXkGBDpwuKFCWigsuSMzt4U7+Md3m8HCXRyLOQHO3u9ymWzf1Nk/ktLa54zKDWPUOO0zHFi1ZEl2jM17Sj82QIWq7X//a6VaurlZxhu43fZvHH1fJQvaxzQD/oUP1Q33btmBF48OyZHpZi8yselMAe5GKJbNLl/jJCWHg5y43H5CJusptDjgg+uHaqVN0qEU6yxitWaPjjFu2DOdh71VlIGimc/Pm3rHHt9zitHa5XebmyDFhZCmbInPuXF0WLR2WTMBbZOaiAGnXDnj2WT1vnxfAOwbWawhVm1yxZPbvry2K69crS/n8+c6BNcKyOBYWOvu9RF7y85MaAMcx8yAAgwGcRESHA7gVwJfM3AvAl9Y8iKgfgAsB9AdwEoDHici2ZDwBYDSAXtbfSdbyqwBsZeaeAB4GYAz3pWHmR5m5O4CbXKWMBjHzP4N8GRGZyZKIJfO777QL7JBD/EdnCYrbXb5hgz5+p06o6dRJW/+2bFEWJPvm79hRlavYb79ocWJ2WrGSf4JYMps1c7pU3EJu8WI9ykbnzrELIA8YADz5pBLUTz+tRVF1tRLpbtfgzp3Av4yXrJtucooQIuDss/V8EJd5MiWMgGiR6fU9f/974IYb1JCDZoKOF6lYMgGny9wmVTepGz93eSrxmCZua6aXcEln8o8Z5jF0aDgZtF4iM5EQmnPOAUaO1PODB6sxo3v00MvcLnNTZIZRaqZ9e32cmhpdqDuTlsxcFJmAKqZ/1VXRy/PVkllY6MwyHz8+Pa5ym+uvV4aYc84Jv7/KMVhRZc0WWX8M4EwAL1jLXwBwljV9JoBXmbmGmZcDWAJgOBF1AdCamScyMwN40bWPfayxAI63rZw+rCeiVgBARP9HRG8FGXISEJEZm9pa9fb/7bfRhcwTsWS6XeWp4haZZimjLl3UzWhuY8bM2A8zomhrpikyYyX/BLXqxXKZB0n6cdOqlYqn/PBDJZQB9aC8+GLn7/Pii/r3OeAAb+ugueydd/zH2rVJpyWzXTvg4YfVOM7xzkOqIvPss6Njz9LoLi+qqtLLMyky01nGKGxXOaBetMzfZZ99dKJWEIiAZ55RFqYBA1RJo6ZN/UVmfb3Tsmlulwpm/2bHoe/tlkybhx6KDovwEpk9euiQmbVrddUS98hs2bRkAtEu83SKzD/+UZ2HsWPDPW6OQkSFRDQDwAYAnzPz9wBKmbkCAKz/drBqVwCmq3CNtayrNe1e7tiHmesBbAcQy0R8BzNXEtFRAE6EEqhPxNh+D03ib5K7VFdXo9wcri9kjjj7bDS1rGQT3ngDtcZb+NDly+EagwNVCxZgikd7DvngA9i2y9nt2mFzim3usGULbMfUltmzsfazz/R8s2aoqqrCttat0dZaVvHGG7DtkhtLSjDX+vweHTvC7PIWE2Gtta43856o3sXffIO1xncfvHTpnmPPWL0a23y+T6s2bWBHWu7++GNMGjduj4g68O23YUubFR07YkWC56TTzTej/913q5lPPsHqiy7CtsGD0WrhQnT56CPYj+vFp52GtabItolEMKJ9ezTbsgXYsAHT//lPbDc6xqqqKse1NXjZMv2dV63y/c5en3N006YotEYLWrp7N1an8Pu3XrcO7tfHH5YuRXUCyS39hw9HJ6vaQX1JCcabYQshULZlC2znK2/evOc8HjJ58p77YMbu3cHPoYvCwkIc2aQJCqzyXz9GIpjvOtZB9fWwX5MWjB+P9al6DwwGfvYZ7NeMuS1aYGNIfdDwTp3QwvKGrDv0UCyyRJr7WozJPy0P1rp1wLp1KGto2PNbrB0/HostUVy8di0Ot85fTceOmJjKiEEGpZ07w0473PLOO5h15JEYsW7dnvtx4uLFqDGt2ynQa/duuP0CPyxejGp3bVYkeA7TSNvrr8fgP/wBANDQtCnGL1sG9hjud1hZGVpaLwXTXn4ZO/r1Q7Mff8QIq+RabZs2mGCWDsoA7nPYpqQEtpli52efoaZjR9ivl3MKC7EpB853rlGlXro7EpHhDsHTzPy0uR0zNwAYTERtAbxNRAPgj5dlgmMsj7WPH7YV5lQATzDzu0R0d4ztjaMy5+3f0KFDOa0MGcKsHNHM33/vXLf//nqd/dehQ/QxKiuZCwv1Nps3p96uqVP18fr3Z37qKT1/xRU8btw45osv1st699bTN96oj/Pyy872f/qpXnfXXXr5bbc5P//gg/W66dP921lXx9yqld528WK97phj9PJ33knuPIwZE/0bmH9t2zLv2OG//9VX622vu86xaty4cc5tBwzQ286YkVg7zX1ffjmxfd0sWRL9PVevTuwYb7yh9z344NTa48ULL+w5/vqf/EQti0SYW7fWn1tRkdpnjBzp+9sxs7rO7fX335/aZ5lEIuq6so+9bFl4xz7jDH3cTz7ZszjqWkyEd97RxzzxRL38k0/08mOOSf74blas0MctKWGurWUuKtLLqqvD+6zbbw98L6R0DsPm0UdVn/zPf/pvc8EF+js995xa9vnnetkRR2SmrQZR53DXLuamTZ2/tz29dGnG25cPjBs3jgFM4QR0DoC7ANwEYCGALtayLgAWWtNjAIwxtv8UwAhrmwXG8osAPGVuY003AbAJAMVowwcAngKwFEBbAM0AzAzSfnGXx8J0bbrjLb1ccJs362QTm4kTtSv24IMTc7X64U78Md3Zdiyl2XYzWNwMNI/lLo9VxihITCag6hqa7rMXrBCQoEk/8bj3XhXr5Medd0aP+Wxiuszfekt1jzt2AGPGYOjo0WqEIJtks8sBPcISUWrDDwKpJf7YnHGG+l2aNFEFvMPGjMm0427Xr9eF99u08R8iMyhmvKLXaDvpSvxZskRnaXfokHzxci/+9Cc1dOett3pn0SeDn7s87HhMmwMOcI6pXl6u48FbtEiuooAf+eYut7nuOhVbee21/tt4xWXmSjymTXGxM1zErkLSqlW498VeBhF1siyYIKLmAH4CYAGA9wBcbm12OVSGN6zlF1oZ492hEnwms3KpVxLR4Va85WWufexjnQvgK7bUpA/nQwnTk5h5G4D2AG4O8n3y2l2edkyhZro0du7UI8U0bariqWwRunatswC3WR8zjHhMQD1Ai4pU5711q0rssbHFoV+cnZlgYBdeX79e/TfjhWIl/iQSn3jppSqGElDjK994o8rMtWP1SkudJZkSobBQDZF4zjlqKL7+/ZWIGzZMFbePF2d27LGq/Vu2qN9vzBjg3/8GNmxQoRDXXAOce67KIE42JhNQYrisTL1kpBpH1bKlelDv3KnmmzZ1jhgShKZNVZzwzp3hPvRtvEoYueMxUx1Z5Te/Ub9JJKKuMTemyPRwRyaN6VYeNizcEWIGDQo+OEBQzJi/FSvUC29hYfiZ5SbHHKNHGzKT6sKMxwSiRWZhoY7Vzne8RGauZJabHHWUSmw1GTgwO0XiGw9dALxgZYgXAHidmT8gookAXieiqwCsAnAeADDzXCJ6HcA8APUArmXlbgeAawD8B0BzAB9bfwDwHICXiGgJgC1Q2em+MPNOIloK4ESrRNK3zPxZkC8jIjMWfpZMd7ZkWZm/yDSTfswxw1OhoECJQLsskZlEYws2P5FpvmEWFqpA6v/8B7j8cmfH4Jf4s3OnttY2axZfpJx7rnrrXrhQWbIee8z5UAua9ONH27bAl4EGHoimqEhZ9WyL5QOuKg67d6uxnU880fmdExV17dqFO5pIaalO2mjfPvnzlw6BCXiXMAor6WfPgYuAe+7xX2+W0zGzwRPh0UeB998H7rpLJzmkI+knnbRsqcTdxo3qpXTdOtU3mAkkYYvMY4/VIvPtt/XyMDPLgWiR2bZt+MNCZgvTOm+Xacs1Syag7gt3vxl20s9eBjPPAjDEY/lmAMdH7wEw830A7vNYPgVAVDwnM++GJVKDQETXA/gVgLesRf8loqeZ+R/x9pXXjVgkIjK9ttu9Ww/bBsQeySVRTJe5WQA3EUsmoMY/fuYZZ7kh8ziAU2S6LXrxOvXCQuD//k/PP/KIM9M8VfdxqnhlnpslaT78MLp8UbYfZKarOReLT3uVMAqjRmYiDBqkM3SXLnX+hkGYNUuVlfryS/UiYlvz801kAt4u83S5ywGnx8ao35t2S2Y+uMqD0rOnCmcBlDGhsjI3LZlmGSMbEZmNkasAHMbMdzLznQAOhxKdcRGRGQtTqMUSmV7DPAKqTpyVVRw1JniqmC5mM5Qilshs2zZ4gVxTyGzcqONKg8Zjmlx4obbubtumXNI2fiP9ZIoTTtAvCcXFKo7z44/1ei+RmW3M3yYX2uPGLGFUWanE2tNG8mQmRGazZqpWpE2i2dOvvqqnt21T36G+XoVl2OSLyDRd5suWqXvZjM80PS9h0LOn8yXVJhOWzMZCUZFTSM6YoUdtIwrf+pws7dqpklkm5n0nNBYIOsMc1nQga4uIzFj4xWSaIrNTJ6fINMVoOlzlNn7Fy+3OvWNHPeKOjVfBZz+aNtWdeCSiLRLJxCY2aaLGVLYxRXG2LZnNmqnf6amnlLXtnnuA445DnV3ypqLC6Y7PBVGX65bMpk33xMZRJKLcznYMc2Fh5sSZWWfSLgweBGanyARU3cm//13Hwnbt6i2kchHTkrl8uerL7GScffZxjqQVBkTe8ediyUwMMy7z/fd1v2mPzJYrmB66goJo0Sk0Bv4N4HsiutsqXTQJKq4zLiIyY+G2UEYiajqWu9y0ZIZdhN2vbTbt2+vOhyi68HeiGX9eyT/JWDIB4JJLoj9/n32ST/oJkx49gNGjdeJTYSG2mALFji8DRGQGxes8DRmirMSxRncKk2RF5g8/RA/BCKjEMJt8sWIC0e7ydMZj2ni9VIctMtu2dcaR5+q9kCymyDRjW3MlHtPGDLXq1St9sd5C1mDmhwBcAZUktBXAFcz8SJB9RWTGokUL/bA0xwcP4i6vqQEmTNDLM2HJdFtW3C7zRCyZgHfyT7JZ1kVFzoc0kH1XeQw2H364npkxQ0/nwri5prs5V9xmbkyBd+SRwEcfqQS1E07IThsmT3Za0GPx2mt6+vTT9W9u7p9PItPtLk9nPKaN10t12O7yggKnsGzMlkzzN8uVeEybU07RL75ew9YKeY81dvpiZn6MmR8FsISIDguyr4jMeHgl9QRJ/PnhB+0iPPDA8Ifu8xKZbqug+zNTsWTaIjNZSyagMtjNc5VtV3kMthx6qHcZjlywZJ57LvDb36rSPddck+3WePP888DTT2PaY4+pIedOPjnzCVO9eukY5I0bdUxbLCIRp8i89lo15KebfBKZbnd5OssX2fTtG90/hG3JBJyf0ZhFpkmuWTLbtlXJp1OnAnfcke3WCOnhCQDGGMGoRsBhJUVkxsMr+cctMk1xV1GhAuvNIbXCtmIC3m7meJbMREWmacm03eWp1Its1kyXu2jSBDgvcAWFjFPfurV35mQuiMymTYF//EON0Z6OB3cYtG4N/OpX2HHwwdnLxi8ocIrBIC7z777T3oiOHYHjjlOhHj/5iXO7HH5BiqKsTGcqr1+vMudt0iUyCwqirZlhWzKBxi0ye/d2Vrowl+ca7doBhxyS/cobQrogs1g7M0cQsASmiMx4eCX/uEVmcbHuQBsaVLFxMx5z5Mjw25UJd3nYlkxAuVPmzVNlZbxGasklTj01elkuiEwhOIcZHp0gItNM+Dn3XBXmQQQ8+aSujzpsWH7F/zVp4hxowRq3HkD63OVAtMgUS2ZiNGvm/RKQa5ZMYW9gGRFdR0RF1t/1AJbF3QsiMuPj5Qo3h5S0xaUp+pYvd46CkA5LZklJdDmiXLdk2vTt63zo5SqnnRa9TERmfpFI8k99vRqcwOaCC/T0gQeqF8e77wZefz3UJmYE02VeU6Onwy5fZOLu99JhyTRFWLwRvvIRt8u8efPMJc4JguZqAEcAWAtgDYDDAIwOsqOM+BOPIDGZgLrxZ85U02+/reMxe/RIn6Dq2hXYvl3Px4rJbNkyceuL25K5c6cznisXkmDSSf/+6rezR1YCRGTmG6a7fOpUJSSb+HR75eU6ua9Ll+jBEw49NL9iMU28BFjnziqsIV0MHKhHQ+vaNT3W3z/8QY1iVFamRuZqbPTr58ws791bhmwUMg4zb0CcoSf9kKs1Hm6RyewUmbbQMrf73//0dDpc5TbuN1q3JbNPH+0iP+mkxONlzOMtXKhK0NhDnAHhFpfPRYiiXeYiMvOLLl30y9auXc7r143pKj//fO94uHzFS2SmuzJBYaESSL/7nbIQp0MclZXpGqaNUXy5LZm5GI8pCDEQS2Y83Ik/O3YoawigXNZ2nJYp+Nat09PpcJXbuC2XbpHZtCkwcaIqpZTMW74pIjdvdsZjXnTR3tHhnXoq8ISRRNfYrbeNkeHDdTz15Mnew97V1gJvvaXnL0zqpT13McsY2aQzHtNm2LD8SpLKNdwiU+IxhTyjEb76hYx7NB+/sXjdhc9t0iky41ky7WXnnJPcqB6tW2sRbdOqlSpP8/LLe0cm4XHH6eLCTZumJ65MSC9B4jJnzAC2blXT++/vTBhqDGTDkimkTp8+Tgvt3vBiLzQqRGTGo2VLnbVYWwssWKDXmYLDKxi7e/fEM7oTwfzMNm3CH2mByDlE2LHHqvInV1yxdwhMQInsf/1LFUD/y19kNIt8xBSM33/vvY05wk9jLMUiIjM/ad7cmZxlDsQgCGmGiP4vxrpHghxDRGYQTCulOfqLKTK9LJnpjMcEnCIzXeMoP/UUcNll6v9XXyWeod4Y+MUvVLHhG2/MdkuEZBg6VFuD5s4FqqqitzELtTfGa7xdu+gkn0y4y4XUuflm5UU58cScHiVNCAci2o+IxhHRfCKaa5ULAhENJqJJRDSDiKYQ0XBjnzFEtISIFhLRicbyoUQ021r3GJF6eyaiZkT0mrX8eyLq5tOcs41jHUlEpks00FjZIjKDEERkelky0+kqB4DBg3VyQro6nyFDgBdeUGN7N8bAeqHx07Kljm2LRIBp06K3WblST6fT+5AtiKKtmeksXySEx69+paqIfPKJ9MF7B/UA/sDMfQEcDuBaIuoH4K8A7mHmwQDutOZhrbsQQH8AJwF4nIjsrMUnoEoN9bL+TrKWXwVgKzP3BPAwgAdiNciyaD4PYDoRHW8vDvJl5IoNgpn8M326njZFppe7Ot0i84ADgDffVGOC//Wv6f0sQchn4sVlNnZLJuAUmR07Nr7i5Y2Z4uJst0DIEMxcwczTrOlKAPMBdAXAAGx3RBsAdobxmQBeZeYaZl4OYAmA4UTUBUBrZp5ojdbzIoCzjH1esKbHAjjetnK6KCGiNwH0ATAIwAUAHiKiJwEEuihFZAbBtGSasVumyCRybtetW2YeVmeeCfy//+c9zKQgCApTZE6ZEr2+sVsyAWeGucRjCkLOY7mxhwD4HsANAP5GRKsBPAhgjLVZVwCrjd3WWMu6WtPu5Y59mLkewHYAXqVTegAYz8yXMvNuS/weam0fKN4mr0sYVVdXo9wcIzxN7FNVBa9w64WbN6PC+PxBJSWwyw1XHHQQFmagbV5UVVVl5Lw0ZuQchkOunMfW9fU4xJqunDoVU802MePoZctg+5fGr1mDenOQgywT1jncNxKBnZu8vnVrLMiB3yVT5Mp1mM/IOUydKhUP3pGIzDfdp5n5afe2VvzjmwBuYOYdRPRnAL9n5jeJ6HwAzwH4Cbzd1hxjOeKs0wuYizyW1QL4o/UXH2bO27+hQ4dyRvj0U2ZVht35N3asc7urr9brXnopM23zYNy4cVn77MaCnMNwyJnzuHGjvjdLSpgjEe91rVo51+UAoZ3DrVuZ+/Rh7tiRefLkcI6ZJ+TMdZjHyDlMnXHjxjGAKRxH2wAoAvApgBuNZdsBkDVNAHZY02MAjDG2+xTACABdACwwll8E4ClzG2u6CYBN9rHD/hN3eRD8amC6aybefLMaWedXv2p8xZwFIZ/p0EHHIFZXq2FSbdzxmI2tfJFN27aqSkJFRf4OjykIjRwrNvI5APOZ+SFj1ToAdqLHcQAWW9PvAbjQyhjvDuXGnszMFQAqiehw65iXAXjX2Odya/pcAF+xpTjDJq/d5RnDTPwxcYvMHj2Ajz9Of3sEQUgMIlXI2k76WbxYxzHvDfGYNkT+Y7cLgpALHAngUgCziWiGtew2AL8C8CgRNQGwGyprHMw8l4heBzAPKjP9WmZusPa7BsB/ADQH8LH1BygR+xIRLQGwBUmOSx4E6W2C0KqVqjG3Y4dzuTnijyAIuU2vXlpkLlqkqz/sDZnlgiDkBcw8Hv7lgTxrFTLzfQDu81g+BcAAj+W7AZyXQjMDI+7yoHi5zNu3z3w7BEFIDnNIvsWL9bQpMhu7JVMQBCGDiMgMiltktmsnbidByCfMEW4WLdLTprtcLJmCIAihISIzKG6R6Y7HFAQhtzFFplgyBUEQ0o6IzKC4k39EZApCfmGKzKVLgYYGVbhILJmCIAhpQURmUMSSKQj5TZs2QOfOarqmBli9Gti2TSf0NW8u97UgCEKIiMgMiohMQch/3Mk/bitmY62RKQiCkAVEZAZFRKYg5D/u5B+JxxQEQUgbkh4dFBGZgpD/uC2Z9fV6XuIxBUEQQkVEZlDatAFatgTUAPciMgUhH3FnmJvucbFkCoIghIq4y4NC5LRmymg/gpB/uN3lklkuCIKQNkRkJsJQa0QnIqBfv+y2RRCExOnZU08vX+6slymWTEEQhFARd3ki3H+/smAOHw4ceGC2WyMIQqK0aKE8EmvWqDqZc+bodWLJFARBCBURmYlQVgY8/HC2WyEIQir07q1EpknTpkBpaXbaIwiC0EgRd7kgCHsXZlymzQEHAAXSHQqCIISJ9KqCIOxdmGWMbCQeUxCEHICI9iOicUQ0n4jmEtH1xrrfEdFCa/lfjeVjiGiJte5EY/lQIpptrXuMSJXTIKJmRPSatfx7IuqWru8j7nJBEPYuvCyZEo8pCEJuUA/gD8w8jYhaAZhKRJ8DKAVwJoCBzFxDRJ0BgIj6AbgQQH8A+wL4goh6M3MDgCcAjAYwCcBHAE4C8DGAqwBsZeaeRHQhgAcAXJCOLyOWTEEQ9i783OWCIAhZhpkrmHmaNV0JYD6ArgCuAXA/M9dY6zZYu5wJ4FVmrmHm5QCWABhORF0AtGbmiczMAF4EcJaxzwvW9FgAx9tWzrARkSkIwt5Fjx7R8ZdiyRQEIcew3NhDAHwPoDeAoy339tdEdKi1WVcAq43d1ljLulrT7uWOfZi5HsB2AB3S8R3y2l1eXV2N8vLybDcj56iqqpLzkiJyDsMhV8/jYfvsg+br1u2Zn75lC7bnYDuB3D2H+YScw9SRc5g6VWrEwI5ENMVY/DQzP+3elohaAngTwA3MvIOImgBoB+BwAIcCeJ2IegDwskByjOWIsy5U8lpklpSUYOTIkdluRs5RXl4u5yVF5ByGQ86ex4EDAUNkDvnZz4D99stig/zJ2XOYR8g5TB05h6ljifRNzDws1nZEVAQlMF9m5resxWsAvGW5vicTUQRAR2u52XmVAVhnLS/zWA5jnzWWeG0DYEvy38wfcZcLgrD3YcZlNmkC7Ltv9toiCIJgYcVGPgdgPjM/ZKx6B8Bx1ja9ATQFsAnAewAutDLGuwPoBWAyM1cAqCSiw61jXgbgXetY7wG43Jo+F8BXlngNnby2ZAqCICSFKTL32w8oLMxeWwRBEDRHArgUwGwimmEtuw3A8wCeJ6I5AGoBXG4Jw7lE9DqAeVCZ6ddameWAShb6D4DmUFnlH1vLnwPwEhEtgbJgXpiuLyMiUxCEvY/+/fW0V7a5IAhCFmDm8fCOmQSAS3z2uQ/AfR7LpwAY4LF8N4DzUmhmYMRdLgjC3sfIkcAFFwA9ewK33Zbt1giCIDRKxJIpCMLeR0EB8Oqr2W6FIAhCo0YsmYIgCIIgCELoiMgUBEEQBEEQQkdEpiAIgiAIghA6lKbSSBmhY8eO3E2Gg4uiuroaJSUl2W5GXiPnMBzkPKaOnMPUkXOYOnIOU6e6uhoLFixgZt5rDHx5nfjTrVs3TJkyJf6GexkyMkPqyDkMBzmPqSPnMHXkHKaOnMPUKS8vx6hRo6Zlux2ZJG1qmoieJ6INVuFQe1l7IvqciBZb/9sZ68YQ0RIiWkhEJ6arXYIgCIIgCEL6SafJ9j8ATnItuxXAl8zcC8CX1jyIqB9Uxfn+1j6PE5EMwSEIgiAIgpCnpE1kMvM3iB5w/UwAL1jTLwA4y1j+KjPXMPNyAEsADE9X2wRBEBCJAFu3ZrsVgiAIjZZMx2SWWoO2g5kriKiztbwrgEnGdmusZVEQ0WgAowGgtLQU5eXl6WttnlJVVSXnJUXkHIZDrp7HgtpaDB09Gs3XrMGCP/4RG044IdtN8iVXz2E+IecwdeQcpk5VVVW2m5BxciXxx2ucTs+0d2Z+GsDTADBs2DCWQORoJEA7deQchkPOnsd33wVWrgQA9Bs/Hv3uixr2N2fI2XOYR8g5TB05h6mzN4r0TKfR/0hEXQDA+r/BWr4GwH7GdmUA1mW4bYIg7C0sWKCn10lXIwiCkA4yLTLfA3C5NX05gHeN5RcSUTMi6g6gF4DJGW6bIAh7C6bIrKjIXjsEQRAaMWlzlxPR/wCMBNCRiNYAuAvA/QBeJ6KrAKwCcB4AMPNcInodwDwA9QCuZeaGdLVNEIS9HFNkVlcDlZVAq1bZa48gCEIjJG0ik5kv8ll1vM/29wHI3cAoQRAaB8xOkQkA69eLyBQEQQiZvWZoI0EQBADAhg3Atm3OZeIyFwRBCB0RmYIg7F0sXBi9TESmIAhC6IjIFARh78LtKgeUu1wQBEEIFd+YTCJqH2D/CDNvC685giAIacZLZIolUxAEIXRiJf6ss/68CqXbFALYP9QWCYIgpBMRmYIgCBkhlsicz8xDYu1MRNNDbo8gCEJ6EZEpCIKQEWLFZI4IsH+QbQRBEHKDXbuAFSuil0tMpiAIQuj4ikxm3m3OE1ExEf2SiH5HRB28thEEQchpFi9WdTIBZ11MsWQKgiCETiLZ5Y9CxWDuBvBOWlojCIKQTszyRUccARRYXeCmTUBtbXbaJAiC0EjxFZlE9AoRHWgsag/gZQD/A9Au3Q0TBEEIHTMes39/oHNnPb9hQ+bbIwiC0IiJZcn8PwD3EtGDRNQGwIMA3gPwGYC7M9A2QRCEcDFF5kEHAV266HlxmQuCIISKb3Y5My8DcDERHQXgNQAfAjiBmRsy1ThBEIRQcYvMffbR8yIyBUEQQiWWu7wdEV0LoB+A8wFsB/ApEZ2WqcYJgiCERiQilkxBEIQMEstd/g6AGgDFAF5i5hcBnA5gKBG9l4G2CYIghMfatcDOnWq6fXugY0enyJQyRoIgCKESqxh7BwCvAGgO4DIAYOZdAO4hoi4x9hMEQcg9TCtmnz4AkbjLBUEQ0kgskXkXgM8BNAC41VzBzNIbC4KQX5jliw46SP0Xd7kgCELaiFWM/U1mPpKZj2HmLzLZKEEQhNBxx2MCIjIFIR8oLwdOPBF49tlst0RIkFiJP3fH2znINoIgCDlBPJHZ2GMyGxqAMWOAq65SxecFIV+44Qbgs8+Aa68Ftm3LdmuEBIjlLv8lEe2IsZ4AXIgkamYS0fUAfmUd4xlmfsQSrL8CsNHa7DZm/ijRYwuCIHjiJTLNmMz169WQk0SZbVem+OAD4P771XS7dsCDD2a3PYIQlBUr1P/aWnWftm2bzdYICRBLZD4DoFWM9fY2CUFEA6DE5HAAtQA+IaIPrdUPM7P0fIIghEtlpcouB4CiIqB7dzXdvDnQpg2wfTtQVwds3qyyzhsj8+fr6e++y147wmTHDuCxx4CyMuAXv8h2a4R0wKzuXxtzWsh5YhVjvydNn9kXwCRm3gkARPQ1gJ+l6bMEQRCcST89eyqhadOlixKZgLKSNFaRaYYDzJql3OeFhdlrTxg88ghw111quk8fYMSIrDZHSAM7d6oatzY7YjlYhVwjliUzXcwBcB8RdQCwC8ApAKYA2Azgt0R0mTX/B2be6t6ZiEYDGA0ApaWlKC8vz1S784aqqio5Lyki5zAccuU8dv7qK/Szpje1b485RpsGNW+Odtb0zE8+wdYci1cM6xz2mzkTe0Zq37kT37/yCnbtt1/Kx80m/b/4Ap2s6UVvvIF1NTWe2+XKdZjPZOscNt2yBUcY83MmTsSmPH05qqqqynYTMk7GRSYzzyeiB6DKI1UBmAmgHsATAO4FwNb/vwO40mP/pwE8DQDDhg3jkSNHZqbheUR5eTnkvKSGnMNwyJnzOGXKnsmOQ4c623TQQcD06QCAQZ07A7nQXoPQzqFt8bM4rFmznPuuCWNYpHuXlqK3z/fJmeswj8naOVy0yDE74IAD8va63RtfdGKN+AMAIKL2YX8oMz/HzIcw8zEAtgBYzMw/MnMDM0egYj2Hh/25giDspaxerafLypzr9pYyRu7s+RkzstKMUDEzje2QB6Fx4Y7BFHd5XhFXZAL4nojeIKJTiMJJuySiztb//QGcDeB/rlGEfgblVhcEQUidNWv0dCyR2ZjLGLm/28yZ2WlHmJgiU0rbNE7colISf/KKICKzN5R7+lIAS4jo/xFR7xQ/900imgfgfQDXWrGXfyWi2UQ0C8AoAL9P8TMEQcgmixaB6uqy3QqFKTLdcYh7w9CSO3dGP6zFkimEATPw178CZ58NzJ0b/vHFkpnXxI3JZGaGip/8nIhGAfgvgN8Q0UwAtzLzxEQ/lJmP9lh2aaLHEQQhR/m//wPuuw+Hd+wIvPMOcOSR2W3P3u4u//HH6GXr1gEbNwKdOkWvyweY9w6ROX8+8MADwE9+AlxySbZbE83nnwN//KOa3rUL+PjjcI8vlsy8JkhMZgciup6IpgC4CcDvAHQE8AcAr6S5fYIg5COvvgoAaLZpkwrS/8c/lCjIBnV12lVMBOy7r3P93uAu9/te+ewyr6pylrZprCLzV78CXngBuPxyYNmybLcmmn/8Q09PmOD8TcLALSpFZOYVQdzlEwG0BnAWM5/KzG8xcz0zTwHwZHqbl2Ns2gT85S9qeCtBEPzZalQfq68HrrsOuOwy5bbNNBUVWuCWlgJNmzrX7w2WTD+Rmc8uc3cMZmOMydyyRQk3QIm3b77JbnvcLFsGfPihnt+xA1i+PNzPcFsyxV2eVwQRmX2Y+V5mXuNewcwPpKFNucttt6m/U091xngJQiZhBt5/H/jvf5WVLtdg9rYq/fe/wCmnZN6iGSvpB1BD1DVrpqYrK4Hq6ow0K6OYItMU2Y1JZDZGS+a4cc775fvvs9cWLx5/PPp+njYt3M8QS2ZeE0RkfkZEbe0ZImpHRJ+mr0k5zOTJ6n99PTAnT5Lfb75ZuQdfeinbLRHC4ttvgTPOAC69FHjxxWy3JprqajWaDICGpk2Bq67S677+OvMPyljxmIByoedC8s9XXwHdugHnnRe+y9EUmUcdpafz2V2+N4jML75wzk+alJ12eFFdDTz3XPTyqVPD/RxJ/MlrgojMTsy8zZ6xMsE7+2/eiNmwQU/ng2tm/XrgwQfVQ/Puu8M5Zl0d8NFHjTd2LR+w3WdA7lk2AMe9Ud+qFfDss8r6b5PpuLJYmeU2uRCX+be/AStXAmPHAuPHh3tsUzj/9Kd6ev58YPfucD8rU7j74MrK8MV5GGzZArz1VnIi+MsvnfOzZuWOpf2VV/RvYFY3DNuSKYk/eU0Qkdlg1bMEABDRAVCj8uxdRCIqE9Nma9SIl9lhyxb1duvlgly3Tk+vXp26m7KyEjj2WCUYhgzJ34dTvrNli57OxWHKjIdpfUmJmujTR69fuTKz7YnnLgdyIy7TvF9XrAj32KZw7tVLjd8OKIvzvHnhfpbJ7t3Kep2OvsItMplzz8rFDBx9NHDOOcBJJyUmgletAhYvdi6LRByjV2UNZmfCz7XX6ulp08INiRF3eV4TRGTeDmA8Eb1ERC8B+AbAmPQ2KwfZtk25yc35bFNVpR7eI0YA99wTvX7zZj1dV5eaMN61S7loJ1oVq9avz5+QgcaGKTJzscM1LZktW6qJAw7Q6zMtMuO5y4HccJebv6spOMPAFJn77AMMGqTn0xmXedZZqrrASSeFf2yvPjjXXOabNmkRP2kS8Oabwfd1WzFtcsFl/u23wOzZarpFC+BPfwLatFHzmzc777lUkcSfvCauyGTmTwAcAuA1AK8DGMrMe19MpukqB3JDZE6apDoxQCWCuDFFJpC8G7C2Vr2Ju8ddzbUOfW8h10WmacnMBZGZqLs8WyLTvF/Xrg332Oa936ULMHiwnk+XyNyxA/jUelR8/XX412o+iEz3i/1dd+2JV46LKTJ7G+Of5EKIjGnFvOwyoF075d2yCdNl7mXJzFY5NCFhglgyAaAZ1Bjj2wH0I6Jj0tekHMVdzDgXRKYpfG2xaeIWmV4FmeNRXw9cfLF3gd1c69BTIZ++S66LTOPeaLDd5bkiMoO4y7MRk7lrl/qzCdOSyez8TqWlTpGZruSfhQud82a4URh4eWZyoV82cbdx/nzgtdfi78fsFJljDOfhxInZFVlr1wJvv63nbVf5IYfoZWGKTLflkjl34lKFuAQpxv4AgO+g3OY3W383pblduUcuWjLNNrkFpdeyZETmnXc6XTxt2+rpfBJmsbjoIvW9xuRJFEhYMZnpKn8UxF2eqYdkfb3TMukuxG6TbXe5+ZsC4YrMrVv1b926tXJvut3l6fg90i0y89GSCajQJjP0yot58/SLQbt2wM9/Dtj30vr14bqjE+Xrr7U19uijgQED1HS6RKbXi3QuvlwLngSxZJ4FVSvzVGY+3fo7I83tyj2CiMxdu1TdMC/XdTowRWN1tdMSAoTjLjdLH/3+96psjk2udejJsHbtntFp8MgjwV1Z2cT8XZPpbCMRVa+ybdv0lLbySvxp2xZo1UpN79zpbXlPBxUVOtmic2ddD9ONaeGcPz/97XKTTpHpjscE1Pdt315N79gRfqIRICIT8BaZixapzOxYmFbMUaOAoiJg+HC9LJtxmWaimDlcbKYsmYCIzDwiiMhcBqAo3Q3JeYKIzIcfVq6DM85QgdGZbpNbVKZqyWR27vPnP+vgbiD3OvRkMDvM3btVRmeuk6q7fPx4Ff6wc6cS1mHjZckkyo7LPEg8JgD07w/YgnjVqsy79N33qimOU8VLZBKl32UuItMpMouL9fSf/hTbk2DWx/zJT9T/ww/Xy7IpMs2XsH799HTv3spKDqjrNwyPALN3HyfJP3lDEJG5E8AMInqKiB6z/9LdsJwjiMj84Qc9/b//pbU5AKLb5LYOpSoyKyt1R9iihfrLdZEZiagxfnv3VsWt4+G2Wi1YEL3N1q3AG29kzvoWi127nOVg3OM3B8EeVABIj2vYS2QC2ReZfvGYgLIUmVaZr79OX5u8cFsy6+q8Q2CSwUtkAunPMM+GyMyFMCYTU2ReeaVyfQPA0qX+AynU1zuvv+OPV/9NkRlm8s/Wrao03YgRwRLOzBfzvn31dGGh88UlDGvmzp3e/ZtYMvOGICLzPQD3ApgAYKrxt3cRJPHHfCh8+GH6487SLTLN43XsqP7nusj84APVeS9eDNx+e/zt3aLSS2Sedx5w/vmqFEu2iz27xQiQeBC8+TK0aVP416mXuxzIjsgMUr7I5thj9XS2RSYQnsvcfJEwRaYpCKZPD+ezbCKR6BqPe7sl84AD1AhsNvff733vTZmiLXVlZaquKQAcdpjeZupUVfUjDJ59Vo2JPmmSmo5Fba3zdz3oIOf6oUP1dBgi009MisjMG4KUMHrB6y8TjcspvCyZ7g7CfFCsWgXMnZvZNrlFpvvBlWhMZj6KzLfe0tNTp8YvAh3Pkrl9u46Pmjs3+9ZMLzGSaPKPWcy5ri783zFXLZmx3OVAdkWml9UyLJHpZ8lMZxmj1aujY8T3dpHZrh3wu9/puOAlS7zFkukqP/54PZpO585A9+5quqYmvBAHsw+MFy60ZImOW99/f52MZBN2XKafW1zc5XlDkOzyXkQ0lojmEdEy+y8Tjcsp3IKutjZawLgfFB9+mL72uOMlgfAtmeb+XiIziGtq/XrgkkuUVTHdVsD6emfSVV1d/IdnPJFpFxy2yUWRmchb/ebN0cM6pvHhn1MiM54l89BDgebN1fTSpeHXqoxFspbMior4gyz4icy+fbXgWbUqPPc84O0RCPM6i0S8BWWui8yWLZ0VDrxe/M2kHzse0yYdcZlLl+rpeL+R6So34zFtwhaZYsnMe4K4y/8N4AkA9QBGAXgRQBpSUnMct8gEnCKLOfpBkU6R6ZVNbgqg+vpoEbhhQ2Ku0TAsmTfeCLz8MvD//p8a8zydfPNN9G8QqyPeujVaeLsfjm5rQbIic+vWcDLXUxWZXkPShS0y89Vd3rSpikuzyaQ1MxlL5ldfKWtSWVns0bf8RGZRkS4/A4RrzXTHYwLhXmd+sci5HJNpx2Oav4GXyDR/y6OPdq7Ltsg0X8rNeExzmfnikupLuV/fJpbMvCGIyGzOzF8CIGZeycx3AzgulQ8louuJaA4RzSWiG6xl7YnocyJabP1vl8pnhEpNjbegMju06uroGJnvvvMWBWHgJXrNG9rLupHo0JKpiszt253u6+++C/7ZyWB+lk2sjtjL2rJhg/MczZrlXJ9Mp/naa8rV1bdv9ItBoqQqMs14TJu9xZIZz10OxHaZT5oE3HabchmGTTKWzP/9T71M7twJPPig/3bu0X5MzFFawozLDCoyly4FbrklWJKeiZ+YzHVLJhC7Jmttre5jCgqArl2d68MWmbt2OS32qVoyi4qAgQP1fKrXlJ+YFEtm3hBEZO4mogIAi4not0T0MwCdk/1AIhoA4FcAhgMYBOA0IuoF4FYAXzJzLwBfWvO5gZegA5wdnZclIhLRw6qFTTyR6ef6SiQuM1WROXasEug2YdZOcxOJAO+8E708VkfsVw/RfECGYcl8/HElBhYvBsaNS3x/k3yzZJois7RUWQsB9fBN94MiaCF2E1NkmsOorlql6hX+5S/AmWeGnyyVjCXTrG35xhv+D2Q/SyaQvrjMoCJz9Gjgb39T5zSRF2Cz7y0s1NPZEJkTJwIPPODdt3qJzFijS5nznTsDTZo41w8erC2Fy5alfu8uX+6c93vW2fiVLzIJ02Uu7vK8J4jIvAFACwDXARgK4FIAl6fwmX0BTGLmncxcD+BrAD8DcCYAO6HoBagi8LlBEJHpZ7FMl8vcK74yiMh077dqFfCvf3kHfKcqMt0lOqZNS1/G/ZQp+o28fXtdk27lSv8yPX4i07ZwRiLhxGSalq94nXg8Uk38Sbcls6ZGW2sLCxExawMWFCj3rk26rZk//qhDFDp1ctYp9OOww/RDfNEife3cd5+OwZ43L/zxo5OxZJoic+dO4PXXo7epq3Naxjp1cq7PpCXTK8THvh6rqmK7/N2Yfa8ZBpFpkbl1K/DTnwK33gr89rfe622CWDLN39zrpahpU+eLgdvTkiimqxxQ4s00DJg0NDi9P17ucsApMl98UcXJxxvhyA/zxamoyHu5kNM0ibcBM/8AAJY18zpmTvUVYg6A+4ioA4BdAE4BMAVAKTNXWJ9ZQUSe1lIiGg1gNACUlpai3LQ2pIn233+PgR7L502YgA1WokC7qVNhV52rbdMGTa3Oru799/Hdl18637ZDoMu336KPa1nVihWYUl6OqqoqzJ45Ewd7tXncOGywsxWZMeyXv0TLZctQ9dBDmPLsszqTEUD/+fNhP5Lm/vgjNpaXA8w4tqAAFIkANTX4+rPPwLZ1yqB4/Xoc/s03zoWbNmHiG2+gpnPShnBfejz9NGz5UjF8OJqvXYu2lkCc89xz2HTUUVH7DPjuO1jSGTv32w8trPi9VZ99hqqLL8b3r7yCw3budOyzevp0LE3gmiuoqcExxoNjyeTJWNOtW+D93fSePRvuR8/CKVNQ4XaDetB00yYc4SFcVk+bFvc7FW3ZgvaTJ2PLYYehrp1/JEvR1q2wq03WlZSgqrracY8Oat0a9t6z3n8fW9KYSNV63jzYj7vKtm0xNeDvNrhPH7S1Ht5zn3gClX37YvhzzzneyNf87W9Y8rvfhdbWEevXwz0WUc2KFZho3c9R/VwkgmNWrHC0afsjj2B6z56OzZpu3IgjrOnaNm0wwTVIROGuXTiKCMQMXrAA337yifPFIAkKdu3CMVaYQqSwEPWtWqGpJQonvvceakpL1WdXV+NowyK14MMPsT5g3HKH777b079ta9MGba3phi1b8K3H7+x5DkOg9Zw5OMR6ydv9zTeYZHwGNTTgWOv7MRG+njYNKChAlx079vTd62fMwAJjn47ffAM7SnZTs2aY49Hmvi1botSaXvDpp1ifwrOl7NNP0dO1bOJ776HG/TICILJs2R4BWtO+PSb6ZLe3BDDMnpk3DzjjDNR07IiKk0/G6vPPR4M7Iz0G+82YgQOt6d3t26PYMpJsXLYMc41z027yZPR++GHs6N8f88eMCf15GxZVqQwDnK8wc8w/qOtlNoAV1t9MAEPj7RfnmFcBmAbgGwBPAngYwDbXNlvjHWfo0KGcEf7zH2Zlg3P+Pf643ua11/Tys89m7tJFz3/3Xfht+vOfo9vTtSszM48bN475+ee92/zII/oY69c7123b5vyMY47R6776Si9v314v//HH4O0DmN9+O9TTwMzMkQhzr176M959l/mmm/T8rbd673fggXqbP/5RT595pjqHY8dGt//SSxNr25w5zv392hKUc86JbtODDwbb9513vH+TSy6JvV8kwtyvn9q2Vy/mqir/bRct0sc98EB1Hk2uvFKv/9e/grU7Wd54Q3/WGWcE3++OO/R+11zjbLP9t88+zPX14bQzEmFu1iz6MwoKmOvro88hM/OaNd6/5fz5zu2mTNHrBg3y/vw+ffQ2kyal/n2mTdPH691bfa49P2WK3m7ePGfbb789+Ge88ILe7+KL1bmy52trozb3PIdh8Pbb+nObNlW/pc3GjXpdu3Z6+fvv6+Unnug83j/+odeNHu39mWPG6G3uuiu19v/ud9HX0LRpnpvOuu8+vc2oUf7HjERUP+l1fZ5ySmLtu/12ve+IEXr6hBOc2x17rF43dmxin5FBxo0bxwCmcBxt05j+grjLnwfwG2buxszdAFwLlXGeirB9jpkPYeZjAGwBsBjAj0TUBQCs/yn6FUMk0ZjMjh3V2NA26XCZ+8VkMke3x8SM+XEnMLhdN17uciC+y5zZOSa2mfCRjrjMefN0geCSEuCEE5yFi73iMnfv1vFIRGooUBvb1ef1pp6o5c1dLijVMjGpxGSa8Zh9DDt4PHf5tm064H/xYuCee2Jva2NeJzaZTP5JpHyRiRmX+c47wAtGWWC7xNH69eFln+/apV2UzZoBHTqo6UjEv+/xG2v8366uOVY8pk3YLnPTVd6nj9NFb15r7hJRbtdtLMzrrF0757WWSVeq+fvU1jo/28tVDjhjMt19rjnv550IM+TE65z7XHMtzM/yi8cEVH/64osq3OSWW1Rsqc233yYWMmX2bWYSlLvPM6tIuO8BIasEEZmVzLzHx8LM4wGk5DK3XeFEtD+AswH8D2pkocutTS4H8G4qnxEqZhyjX51IUzy0bw+ceqqez5TIrKnRo7+Y7TE7JfO7uEfkiCUy7QcfEF9kTpmiHzQlJSoj1yYdIvPtt/X0yScrIWBmYf7wQ3RM0KJFugRK9+7OjMglS0D19d7xTomKTHcnnqp7OJWYTDMe03wJiicy3ckJDz3kL0bMe6Jt2+j1mRSZiZQvMhkxQsd/VVTouM7jjgN++Uu9XVhDx5r3aocOzoepX1ymKTLNF8AXXnCOie032o9JtkSm+RIAJJa1777OsjVIhLsfNuf9RGasEkbxYjIB5z0Ur3h6PLxEpk9/UGLer37xmCa9eqmEqNWr9ZjmlZWJlZkyRXsskWme948/Dm8gAyFlgojMyda45SOJ6FgiehxAOREdQkSHxN3bmzeJaB6A9wFcy8xbAdwP4AQiWgzgBGs+NzAv4N699bRf4k+HDqqIrv2gmjkzukNNFb/C6raIMR9c5ltnUJEZiUQ//GzideimFfOcc5y13tItMn/2M/W/rEx3StXV0aMvuQPYW7bUJW7q61G8bl04lsxMiMwglkxmp8g8+WQ9HU9kuq+1hgYltryC+c3rIZcsmUHKF9m0aKEKs7v505+Aiy7S82++Gc7QfuZv2r69U1wEEZmXXKKtXj/+CHzyiV4XxJIZdoZ5pi2ZbpGZyVqZyYjMzp117PvGjc77KIjIDMuS2dAQnV1ut8mDwJZMN02bAmYcup8V3gs/S6YpPnfudL5oRyL+48L78eqrakjM889XJeeE0AgiMgcD6A3gLgB3Q2WHHwHg7wBiFGfzh5mPZuZ+zDyIVQ1OMPNmZj6emXtZ/9NUYDIJgohMtyWzVSun283s+MNuk5l15yUy+/fX00FF5vbt2oLTqpXOuAVii8y6OnXD2lx6qTpn9ptsRYV/trcftbX+D/OVK7VwLSpyWpBj1ZTzKipsjMPbev583RkayVApi8xsucuXL9f7tm3rPDcbN8Z2YXm90EybBjz6aPTyXLJkJusuB5z3LgCceCJw5JHqvNkPzK1bwylR5n6ZS1Rk9uwJXHaZnjfdhYm6y2fNSj4T2CZZS+bWrcHrCueKJdMtyIKIzKIibX1mdu4TxF1u3kOrVyc/ktratd79qpfIZE5eZALJ3/dBLJleXr1//zsxt/ycOapPe+ONxKocCHEJMnb5qBh/KRVlzxvMi9iMZYtlyQRUaQub8ePT1yZT+MazZJoPnVgi0y8eE4jdoX/6qe6k9t1X1RYsLHRaSxJxyVVUAD16qE7aK7bSHEbyuOOcbTOFlLvkTByR2cmMt+vfX5V/AVTnloj1KkxLphkOYRJEZJpWzGHDlOXWziLevdv7uDZ+4SJ33hltCYknMsvK9LmsqPAvlxIGYYpMOw6VCLjwQr08UZe5V/Z0qpbMbt2AK67Q8++/r/uHWIXYbTp10g/w3bu9yw8FhTl5SyYQ3JqZKyLTLXDM7+cnMgF/l3kQS2bLluo6AVRflOhwwTZ+59pLtK1ZgyZ2+al27ZxxlkEIw5Jpno8dO7SI9GrvokXAhAnBP8cM1TjwQP/thIQJMnb5nV5/mWhczhBEZHq5lo88Ui8Lc7SbhganWDHE0Z52mO0x42fsoSWZo0Wm2cElKzLfeENP//znupREsgV6x45VD6OdO1WtQjdmvOvppzvXxUr+Md3l9vkzzmN7U5QNGeIMF3BbIzdtAh57DJg61bncyx21eXNib9gmfsWqg4hMM+nn0EOVWDIf/rHqd5oPwd/9Tsev7twJXHedc9t47vKiIufDwoybDJOGBqeISVRkHnOMdkteeKHzWjJF5rvvxhboJs89p87JJZc4l6dqyezWTfVLR1jFiurrVe1bIJglEwgvLnPtWn0+2rVT11hQSyYQPC7TLTLNF5pcj8kEvJN/amr0tVBQEFvImS7zZOMyTZFpDv/qZcl0F2E3vTtBCMOS2aGD9qhFIrrmql/f9fzzwT/HPBc93UWdhFQI4i6vNv4aAJwMoFsa25RbuN0ZvXrp6VjuckDFeNg3xZIlyb9xujGFSvv2zg7Ly5JZVga0bq2m7aEl16+PfjiGYck0s6lPOklPJysyzQfRZ585BVV1tXMEHdNVDqjzb4vc+fP179XQ4LS22CLceIEoMF2GAwc6z4HbGnnNNcD11wPHH+8872vWOJMw7M9O9iHo50oMkvhjimY73tDv4e/GvG7LyoBnntEPmQ8+cP4m8SyZQGZc5mYh9o4dgxViN2neXF2nX3wB/Oc/znUDB+prZudOdQ6C8Ne/qmv25Zed11+ilsxIxHne7PP56187P2vlysyLTLcV0/0ykwlLZq7HZALelkz3bxWr1mMY95B5rocP19NefYE5nGSQpB83YVgyW7dWoVvudeY5Nw0ur78ePClSLJlpI4i7/O/G330ARgLoGme3xsO2bVootGrlFHTx3OXNmjkTCMKyZpoP/c6dowUQc7R1pLTUub/bigmEIzLNG97sSIcO1dOJiEzzIVtbqzIHbb76Srtb+/d3dmSAigMdNEjPT56s/q9cqUdvKS3VDwCzgzIZNCi2yLRDIbZvd4ZF+D0w3ZZQZiVm3JZQN+Y1Zj604lkyGxqcx05FZJaWqgdSjx56mfkiYF4P2RSZqbjKbTp0UC8OZjwyoISTmQAU1GVuiirz2oglMr2EWEWF7pM6dlTuU0B5DmyxuHs3cNNN2ReZgPd1VlPjbYFK1pKZDXe526MEpCYyzb4u3uAKYVgyTYOAO0bbTZDhJGOR7D1v9m2tWjlFpm3lNM/5aadpEVxVpTxh8diyRV9PLVrEvk+EhAliyXTTAkCPuFs1FswLuHNn54Nz2zYlECIRfwGQDpe5u00uAVS4e7eOGywuVjeOKTLXr09NZMZyTbnbZtO3r35Yr1wZPAHGnSRkZpKbFiS3FdPGK/nH7DBNYbnvvvqBbRLLkumOibKFLOAvMt0PpmefVbU9hw9X7lc//MpSxRKZO3cCN96o3+j32UfH3yUrMgFnEL4phOLVyQTCE5kLFzrDHkxMN3wimeVBMUXmZ5/FD4GornZ6DkxrTqLucrer3KawEPjHP/T82LH6M4uLtTfDC3eGebIhHUFFpl/yXz7FZG7ZEp10k4q7PEg8pk3Ylkyzn/QS/9mwZDI73eWtWjmvYbvfc/dPV16p54O4zN1WzERDAYSYBInJnE1Es6y/uQAWAvBIK22kuEVTcbEWS7W1ymKwY4fubFq1UiUbbNItMktLowRQE7OTta2qbkuml8Vgxw4lSqzj7CGoJbO2Vnf+BQU6bABQsXhmLcqg1kz3w+jDD5UVhBn46CO9PIjIHDtWtc9v/F2iaGtm586e59jRPvOBbCYYuQux27gF9ldfqf+RiCoN5BdWYb7ImA8ZP5E5bhxw8MEqXtTmlFN0JxpUZHpZw4KIzHRaMr/9Vv1WffsC7uFLAec5DDDkZsL07Knvg1274id0uR/c5oPWbcksLXWUuCF3yIUZ5+u23h95ZHTMJ6B+t1gPz27d9O+1dWvy1jEvkdmunXb9bt+u+gnT0my+jAaxZEYi0bG/7pf/TOAlxsKyZMYTmWHHZA4bpn+jHTucCXnMTpGZjCWzc2f93Ny6NVjB/F279HO1uFg9Q+K5yzt3Vte//V2+/Tb+NSXxmGkliCXzNACnW38/BbAvM/8zra3KJdyCDoju0PzqSQI6GB9QwsoOVg6rTR6WzCJ3sDQQzF0OaFGXjMg0hUqnTjqL2CaZuEy3JaeyEvjyS1VqxX5QtW3rPM8mxx6rO5zZs9W8mTnufit3i0zb3e4nMt3uzB9+0B2j2Xl5lZmycSdc/fKX3pYkU4yYD5nqaqdFJRIBbrhBZdubQvenPwX+9jc9H0RkumOS41kyM+UuN13U5suGjVf4StiYFtJ4dXDdLw6xLJlNmjju16buWFw/S6bNAw84EzmA+C5AouQrQJh4icyCAudvsGmT85o5/HD1nQHvWHE3VVX6ei8pUfdWNiyZqYhML0tmkPJFNqneQ24XcZcu/n3cxo36fjLrCSdCQUHibTafY7YF07RkernLS0vVtW7WAY43GIrEY6aVICKzC4AtzLySmdcCKCaiw+Lt1Gjwcv/GEpmm9Q5QnastZOrqnAkYyRInJtNTZJoPGbfINC2vqYhMP1e5TaIic9cub6vE2287O44TT9QPKTf7769GqLGZNctZ9sgtKt3ztvXVrwN2i4sdO1T5DMApMs3YULfIdFtrP/hAZSK7McVGp0669iiztkADyrJn1rBs00a5jT75xHl9BhGZ27bp0IuWLfVnmnGO5jnIlLvcHI3JK/Qi1j0ZFn7nwItELJmAw5LVzP394onMffcF7rjDuSxInFmqcZnbt+vfs6DAaRVyX2vm+TrgADXqlk08l7mXtTxZkRmJqP7httuc91AQ/Ib2tRPOctmSaZ7jHj1iJ2i5w4uSdScnet+74zHN/+Z6r+eO6dn67LPYnyOWzLQSRGQ+AcBM0dppLds7cAs6IFpkxrOamC7zMOplpmrJrKhwvr2Z5VlsweMei90kUyLTdNOaVtF33wXee0/P+7nKba67TmUIe2VrpmrJ9BIX33+vhJ9f9qZ5bpm94+5uuCH6Yeu+zsz4UbNDNkXIkCHK1XXFFdEPhyAi0yseE0jNXW4+IFev9q4dGYtIJDGRmS5Lpiky45ViCmrJtEWmcX6bul9K4olMQF0/ZiWMREWmu65sED75RFvgBw92Jky5rzV3eSnTgpRJkfnYY8Af/gD85S+qPFcieIlMM+nSFJnue8G0VK5fH90PxBOZbvdzkDJmJuY5ts+92Web/YFXubdkSDQu08uSGS/xx/4OZo3q8vLY9XjFkplWgohMYta+O2aOAPAxGzVCUrVkAuHHZbrb5HJFxY3JnDFDv7W3a+ccESidlswBA7TFccmS+A8Ds9M95BD9oNy4UT8EiZyuET8uv1xZQM1SNi1bRmcep2rJBFTyz5Yt+vuVlDjjmMz9KyudyRn251dXq1FcTAHmtnh5vdW7j3/ssf4PrCAi0y872UtkRiLRJUe8KCnR57O+PvERoFaudH6Ol8jMNXe5V9Hu6molLsK2ZAJKgDz+uA7TiPciBgBHHaWnv/oq8dhG88XvjDOc62JZMrt2dVqQ4sXQeYnMZGIyt20D7r1Xz7/wgn8YkRd+9Rk3bFD3rSmS3Fb9Vq1UmSxA9cWVlYm5ywsKnNdfotZML5HpVzfXPCfmwB+JEoYl0534E4lEh2kByjprf6+dO4GJE/0/RyyZaSWIyFxGRNcRUZH1dz0An4yGRkgQkRnvgWZ23hMmJD8MmFebSkuVOLFjsOrr0dwUBl4i0xyTu1cv7/igdIjM4mKnoI03TrLZ6XbtCpx1VvQ2hx8e3T4/Tj8d+Pxz3f6zzoq27vXsqTv/5s21pTNRkel2R5kduCkazO+4775q3HdbiE+Y4Cxun4zIND/XTdiWTHMUjlatgtf5C1q2xsY9pnw+uMu9krlWrlRC007sad5cX3uGyHRYMhsanILCPI9ufvITYO5cFYt82mmx2wcol7Vdaqyuzika41FX54yNPfNM5/pYIjNblswHHnDeUw0Nanz6oMQSme6wEfe9QBTtMk/EkgmkFnYST2Sa/YEpMk3reKKEbcmsrFS/n/0i3ratM/TLtGb6ucyrqvSLdFFReipR7OUEEZlXQ41VvhbAGgCHARidzkblFKkm/gDqJrZF17ZtzhiXSZOUOT+RkiFeYs4QQc1N151XTKb5WV4is6HB27pi06KF7jTNcknxRCbgdJl7DRNp4u50f/az6G2CWGhMjjpKdbAffQQ8/XT0+mbNgEceQVX37qocjN1pJSIyZ850ZmP26BGd+GDj/o7DhjlH0TGHRoslMs2iw7FeEExSEZldumiB/uOPSmQEcZXbmEkmb70Ve1s3pqscyA93uZcgWbHCv51+lky/Gpl+9OqlPAhBOfdcPR2kxqDN+PH6999vP2cMMhDbXR6GJTNRkbl6NfDII9HLX3nF2T/HwvxNzZjwDRtix2PamP3uihX6/i4sjP1yaJNKXKaZEGjXvE23yAzbkrljR+xnjikyP//c+zPM89C9e+wXYyEpghRj38DMFzJzZ2YuZeaLmTnGGHSNjDDc5UTeLvN77wVGjFDje7/zTvA2ecWJGmKihZfINAWCSa9ezrfmigrVQdpCtG3b6KQaIu9OPYjINK265mg9XrjdRyNHRouXREUmoM7JySdrq5Gb0aMx5fnngauu0suCiEzbmlxXB7z5pl5+4IHO/c3rxct6ccwxepkpVt0i0y8mM6jIbNNGu1Orq70rH/iJzKIi/RszK2tAvCElTcw6k6++Gj0y0tKl6lo5+2xdON/Gy5LpfkmL9ZIUFqlklwNOYQE422laMs3rJYirPBXOO09Pf/ppcKug21UeK/73xx+d133XrqlbMps31/1UTU30NePmzjv1NkOHquRBQHmZglozTSFmhtkEFZnmi7+ZaBVvtB+bTFgyGxqc2+aaJdPLCGQzapQ+j1OnepcZk3jMtBOkTuYLRNTWmG9HRAkMCprnhJH4A0Qn/zz0kOrobIJac6qrdTxl06b65jMtmWYHbreneXPnDWrTs2e0JTOISElWZI4apafHj48WFyZukdm0qdPt17VrtMUkXbRqpQXZzp3qr6HB+bA0Y0M/+URPH3igvyXTKw7LjN+MJTL93OXmwy+WyCRyrveyZsYaMcbtMk/EkjlypN5/40YlaEx+8xv1Mvb229HDOrotmXV1TktuJOJ8yGfKXR7LG5GKJdO8XtItMg88UCcA1dY6KzH4wewcRMAdjwk4BczcuSoWF1C/TfPmyopkC9NVq2InanhdZ0TBxy+fPVvFX9r89a/O2MzXXgPmzNHzK1d6Jyqav6lpLU7GkmkeP2hd12Qtmbt3a0uyWVrI7LPt77ZmzR5PVW27drEL+sejSxf9IrBxY/xs/njZ5fEsmW3a6KRWZlX6zo3EY6adIO7ygcy8zZ5h5q0Ahvhv3ojwKy6eqCUTcIrMN99UGY0m7genH+6byu6YDbFAZsyn+eDysmZ6ucvTKTK7d9edWnV17JJOXla+iy/Wy849N3OjM7gF2ebNzvGxO3VyWiDNsc/dItO0vHl9xx49dOaobVmuq9Nv9rYlOUhMZrx41Xgucz9LJhAtMoPUyLQpLFTDINq89JKenjLFGUNlCtCqKm9Ll3kPbtum455bt3bWKA0TcwSS3btjj2KVL5ZMwGnNNGOC/Zg7VxeIb9VKJZu5Ma8z0xJtC/XiYj0dicS2dPm9zAR1mf/xj/r+O/lkVU/20ENVzDag1t1xh6rFetxx6jwPHQr8/e/O4/iJzI0bE7dkmsO+BonHBJK3ZC5frr///vvrkCCvvsBwle8y7/dkKCx0CuN4bY5XJ9NtyfR65sSLyxRLZtoJIjILiGjPXUJE7bG3ZJf7FRdPxpJ5yCE6s9nrDW7+fB3bGAs/94CfmDDb41XGpFcvdXPa323TJqfwCVtkAqrjtonlMvey8p18soqlvP124J57/PdNB26XuTuuzCxTZHLggcpaY7rTbVHoJTILC53ut3nzoh9aBQWpx2QCqYlMtyUvSI1Mk0sv1dPvvquvo7/8xbndV19pi/fs2d4WQ1OIZcJVbhMk+ae+3luAui2ZZls7dtxj9SmqrNShDJkWmZ9+Gn90FtNVftJJ0WO9A87rzCy2bgoX05IUy2WeisgcNw74+GM1TQTcf79eZ/Yn77yjXmjN/skU3DU1+jMKC51Z18m4y83vG1RkJmvJ9HKVA+kXmUBiwjhInUwvT6OJOy7T3XeIJTPtBBGZfwcwgYjuJaJ7AUwA8Nf0NitH8BNNiSb+AOpt0S1CDj1UP6Tq6vzHYQ7SpiAi0y0SOnTQQ76Zx5o7N/5x3R26e2SYWCLTdJknKjIB4Fe/Av7852BCJkzcItOdITtoULTVrLBQd6xeLnN3drmN6TKfO9dbOHlZMuvrE3MVh2nJTMRdDijrj50AVFOjEk3mzYsOHdmxQ48J72fxN+/BTCT92ASJyzRFvxlr57Zkmm0tKPCu+mCKTLOAeZj07On8XeK5zGOVLrLxS2QxRbopeGIl/5jXmSng4onMSAS4+WY9f9llzqFuhwzxTi60WbhQixS3AcK8N5JxlwdZ7sa89taujR16ZJKkyNzpLveWDInEZabqLgfUM9a+Llavdo5IBYglMwMESfx5EcA5AH60/s5m5pdi79VI8LMamg/QrVuDl0sxxdXBB6u4vWHD9DJ3QoMXfm9uXmLQHafkFglmELfZsc2eHfu4QHSHXlWlA+lNq50X5nn47jvv+KuaGn1eg2Zbphu3y9stMouLnVnTgLI22MLTK/nHtGSav4FZ6mnePG+R6ZX4YyZttWvnPxKSTSyRyZw+d7mNac186SVVVsYL29Xld4/4WTLTLTKDZJib57B3b309bNzo3Mfdd5gvHbalKhOWTCC4y3z9el2ztrAQOOUU7+38focwLZnxamW+/rp2SxcXO+Mwbe67T4vCAw5QSUC2sNm2TT8T3OLGHc+YqCXTJKgls1kzfYxIxHtQBy/M0nHmM6B9e+3Rskf6SqclM57ITNRd7hUO1qSJ03NmusxravT9R5S+l7a9nCCWTAAoAkDGdEoQ0e+JaC4RzSGi/xFRMRHdTURriWiG9efTW2UQP0FndmabNumHq1vUubnxRpVVe+mlynTfvr3zTTpIXGYilsy2bZ2Wk3SKTL9YUS/KyvQDZfdu79FFzIST0tLcKC0Rz5IJRFurzbdjtyUz1igfsSyZ9nG8LJlBa2R6beMWme4hJd0vDrEsmUGtzBddpB9sX38NvPyyXnfjjXraLkFi3iPmA8vPkpkL7nLz3ujSxenmNBM+3ELMLi0DqPCQ3buD18hMFbOU0Sef+LvMP/hATx99tP/5btLEe12qlsyA7nKqrVVDR9pcf713TcS+fdX9NnOmErp33OEMXbG9TWGITD+LZVCRCSQXl/nNN3p6xAg9XVAQ3ceZIjNsS2aq7vIglkzAv5TRihU6dnu//bzDPISUCZJdfj2AlwF0BNAZwH+JKMHxtxzH6wrgOgDDmHkAgEIAF1qrH2bmwdbfR74HyRRB3OWmJcIt6ty0bq3qsL34ohZ8ZnZ0EEtmIjGZ7odWUJFpWhGSFZnxiOcy97PwZZNURabbkllZqeNzW7RwvqUHsWTGE5lBitTHEpmxrJhA6u5yQP22J5yg5+1EquOOU6LAfln5/nv14DZFpnkN5bK73P2yaj5oze/jFmG/+53uTyZMUEOD2i7RTp1iewtSpXdv/QJcUwN8+KH3dkFc5TZeLz2mcHHXyvzhB2D0aHWNnHWWTqZLQmTu+957OjmpfXvg1lv929mli/ru9rkPIjLNUm87djhfkv1Ept/LeCL9nSkyg8Rlrlmja0M2b67cySbmb7R+vaOOZE5aMuPFZAJOkTlunH5xNl9kJB4zbQSxZF4F4DBmvouZ7wRwOIBfpfi5TQA0J6ImAFoACGjnzzBBRKaZRZzMA820ZCYqMuNZMt3tcbtnzBvL7NjM4OhsiUy/WMVsEkRkmuPAA7EtmW4hbT5wevTQWZ/r1jmLBnuJTDvxJ1dEZiLxsqbL3Oa229T5ssNJIhHg+ee1mHZ7AXIh8cfPXe6+N0yRaYaKuNs6YgTw//6fnn/1VT2dTle5jeky/+9/o9dv3eq0DCUjMs1ryLxXFi1SL2zPPKPEzrvv6jJJiYrM7dvRzaxe8H//F/wlCAgmMgsKnN/PjP3zE5lNmnifk0T6u0SytQHlLbAZMcI5Qg7gbM+UKfqlZp990NCiRfB2+ZGqJbNZMx1uUl/v7IP9njs9emivQHW1ft74xaYKoRIkS5wANBjzDdCu84Rh5rVE9CCAVQB2AfiMmT8joiMA/JaILgMwBcAfrHJJzsYQjYY14lBpaSnKy8uTbUpcDpo1C7YsW7BlC9Ybn3VMUREKXIHWO4qKMC3R9kQiOLq4GIW7dwMbNuC7t95CXYwH46CFC2F3WTMrKrDV+rymmzfjCNe2mwHMNtrTeu1aGOPtYOqOHai01u9bWQmvUWmnrVqFHR7fqcv69ehjTVcsWIAdRHq+oQEL45yHps2a7WlvZMIEjP/0U0QMd8W+X3+9pz3rmLEojb+zF1VVVVHXVucNG2A7sTfMm4dWS5bALuf+/dq12FVeDkQiOKqkBE2sDNo5O3dik3WcA6qqYEf9rJg2DdsiEQy25reVlGCG6/OGlZWhpSUut77//p7ffcWOHVhRXo62S5bs2X/r6tWYWV6OLuPH69+hri7u79BmzZo99ci2L12K6cb2nb76CrY9dWNhIea6j8Wsr91du1A5ezZs2Ttz5UpsLS/3PI9uCtq3x5H2cQDsOOggTCsoAMrL0b1PHxxglbna/de/wh55fusBB2D9hg2wBv3Ej/PmYb71Ob1mzYItXRZv2YK1abx2WqxbB9t2vXPxYkz2+KweP/wAWwosq64GMe+5DkwmL12Kne4hZ4cNw0HDh2MfO/HJYkOLFpiX5nuiebdu2PPK9NFHmPLUU6jq02fP+m7PP49u1m9W1aMHpqxeHXPko/5EcEuq8StWoN54MTqiXTs03RrV7QMANvzrX5jXrh2O3b59zwPo6xkzwJbFsWzTJtivzWvmzMES6/x0f/ZZHGBZxXbtsw8m9+8PTuDcdayrg12gaPOECZhdXo4eU6bo37SqCqvKyzGsRQvYUdK8dOmeNk5dtmxPP+tmWMuWaGkIVi4owNdz5wYedahrbS1sf9S6SZPi9pO9//c/2BJ2+f77Y6Vr+35Q7koAWP/WW3uef9s6dQp0L8eD6utxTEGBKrNXUYFvPvsMEbfQtTh848Y99/vEuXNRY71IHtm8OYrsZ6/1khZp0gTfzJjhG6bVc9AglFl96bZbbsGMpk3Rs7wc9iviUiKszsAzpsqsArK3wMwx/wDcCGAmgLutvxkAboi3X4zjtQPwFYBOUPGd7wC4BEAplOu8AMB9AJ6Pd6yhQ4dyWjn5ZGZl12N+/33nutJSvc7+O/nk5D7n8MP1MT79NPa2AwbobadN08traqLbc+mlzn2XLXOu37ZNr3vrrej9AeYFC7zb8eqreptzz2X+85/1/B//GOx79+2r9/niC+e6227T6+6+O9jxQmTcuHHRCz/5RLfpuOOYmzbV85WVervzz1fLmjRhXrlSL//HP/T2V1/N/N//6vkLLoj+vAsv1OtbtNDTjz6q1n//vV5m3wv33aeX3XJL/C86b57evmdP57pHH9XrrrnGe//evfU2zZvr6e+/9z+PXlx9tfe9Vl7ufV3ecAPzBx/o+RNP9D5vL70U7POTZft25/ePRKK3+cUv9DbPPKPa5PWd1q3z/Ihv33uPuVs357Y335ze72Vz3nn6M089VS/ftIm5ZUu97pVX4h9r9Gjnd2jRIvp8nX6683yefbaeLylhrqjQ8y1bOvd97jm97vLL1bI1a5zX5csvJ34O5szR+3frppZdfrle9uyzatkJJ3j/rosX+x/7pz91bltWlljb3n3X+x7ww7xfy8uj1197rV7fq5eevuKK4PdyPPbfXx930SL/7dq21dtt3qyXu+8FgLlr19ifuWyZ6o/N580pp+j5sWPD+W5xGDduHAOYwpycfsrHvyDZ5Q8BuALAFgBbAVzBzI+koGt/AmA5M29k5joAbwE4gpl/ZOYGZo4AeAbA8JhHyQSx4j283C3Jxn+ZcZnxkn/83NLm6D9+7dl3X73soIOc7iW/OKB0ucuB2C5zv/JF2cQ8FwsW6NieNm2cmd6PPKISBt591+nOcsdk+iX92JhxmWZt1VyJyQSc7k5zWMpEy0s99JCqj/nGG85RnUaM8I49HDgwOtvfJpPu8tat9e+wa5fzs23c59HP1e3T1vpWrdR5MS0+mXCXA8Bdd2nr0Icf6iS9Bx/UIRr9+gHnnx//WG7XcFlZtOXp8cdVvOSTT6o+YOxYXYOyutoZMuDug73c5f/8p74uDzkEuPBCJEzPnjo5beVKdTyv/s6v3/NzlwPRfVuifV0iMZkVFSoMAVBuZ3doD+D8jcIas9xNkLhMZmdMptnXeY1cF++Z0707cOWVev7OOyUmM0MEyi5n5mnM/BgzP8rM01P8zFUADieiFkREAI4HMJ+IzLvrZwDmeO6dSWIJJy+RmewDLWhcZkND7Oxht6hwi8xmzVSnfc01zixewLtzi5UtH0tkBi03FEtk5nrij9k+d9Zlly6q9Im7nEu8mEw3Zoa5SZgxmWbZku3bnQMCmOLIr9yKX8ZpIjFvgEpCuPVWZ1YzoISVeZ3YDBrkLzIzmfgDxM8wjxWTaVNSEju7ddgw4Kmn1Dbt20efp3TRv79znPm77lLf5x//0MvuuSdY9Qd3v+CVSFJWpl42fv1r1ccQOWNDn3lGT8cTmcyqbJHNHXfoaz0RmjXTMX3MSnwlIjJj3Qvu+yrR+HN3TCaz/7ZmVvlhh+nBQUz8+u4wRaZfXKYZg7lrl878Li521h/2GtoyiGHj9tv1i9qECVpwA85KDkKoJHHHpQYzfw9gLIBpAGZbbXgawF+JaDYRzQIwCsDvM922KCZOVMHPH30UffNnw5K5ZYu+8dq1iw7ajicyATVm9OOPq7d6Ey8R0b69/8MjDEvmyJF6evJk56g1uZ74YxK0tIc7cSjedzQtmSax6mQmWsKooMB/XHV3GSkv/DJOwyyUb2aHAuqa7NcvNyyZQHyR6bZkdukSXbQ/SN/xi18oa9W6dcHvsTC4804tzj79VIlOe9SegQOBs88OdhwvS2YQTJE5b56edvfB7jqZ06fvSZirLylRo4Ulizv5x7T6xxKZrVvHFuDul8tE+7q2bfXL5s6d3pZ0GzPpx2voTyAzItNtyVy4ULWndWvg6qvVcq/McptkLJmAEuS/8shZLi31PqYQChkXmQDAKlP9IGYewMyXMnON9f9gZh7IzGcwc0X8I6WZsjI1Zu3JJ0cLujBF5sEH62mv4SXtDtN8K/e6qYKITD9sC0ms45m4RaZXpxuPjh31d6+vV4XZbXLRXd6ihffbf9CHpVsUxXOXH3hg9HUHeIvMqiplxUjUkgn4u8wTdZfbNGvmfZ6SxSxxBAB9+qjjt22rxc+OHToTNtOWTLOMkTvxhTnayu8ewxkILoY7d858Pb8+fYBLLtHzX32lp++5J7h1MIgl04uBA71FTjxLplFEftMRR6R23kyROX9+cEtmLFc5EP1yn2hfRxQ8wzyIyPTru8N0J5uWzFdeUUYW28r61FPq3HpllvvNA8GfOWPGRF8HklmeVmL2DkRUSERfZKoxeUWY7vLWrfVoA+bwklu2AIcfrjqqQw4BfvtbvU/YIhOI7uASEZnJWDIB52gMX1iXWm2tFjtEmbXaxILI+5wka8mM5y5v0kQ94N3Y11mTJsrNDCgxU12dGyIzUVd5PPr0cQo5O7ykoMD5EN+yRd0/thUk3uAIYRHLkrljh35pLCnR8aVul3kmLK6pcMcd0Ra5Qw4Bzjwz+DGStWS6XeY2CYjMjX6iKiimyJwyRY9u1qKF/k3DEJnJeG3Ma8k9bKLNxo3aClxU5CzCbvL/2TvvMKuK849/ZyssLL03KYIKCoioKKJYYou9967RxNjys0SNscdEYzcxmhh71Bh7RwUFFQURlKKAgLA0qcsWts/vj7nDvDN3zrnn3Htu2d35PM8+e26fe+45c77zVpsls3fvaGuyUkvm0qXxHd8+/tjfkmlzl3vNTyZ9+yprqcTFY6YVX5HJOW8EUM0Yi9D31UKI0pIJ2OMyb7jB3g0HAPbZJ/6+VEWmOcH5iZR27dRFZ+vW+F6+QTnoILUta+6Z4iZRa8RMkorILClRorCuTrc6eF1cbHGZ9Ngzk3+iEpmc547IZEx3me+6q9o2rcNmp5VkYvDC4icyvfahKTIzYXFNhe23F+56yq23+nf2MknWkgmEF5kbNqg6iKWl2GQWHQ8LFZnTpqltKiyTEZmpussBPfTJ63pB4zH32EPMRTZsc3eUrnLAOyZZ8tFH6bNkAiL2W87DgLNkppkgM3ANgO8YY/9ijD0o/9I9sJwnSksmEB+X+c03wnUg2XFH4Je/FF1A/v1v4Oab498jk5ZMxvQVpYwV7dTJ7uL1YuJEFZ82Z464KOeiq1ySisgE9N9EFvJv1847JsiMy6SdRQDdZS67CAFiARA0LtImMhO1lJTYhEKU8ZiS668X58CYMcD556v76f7cuDHzrnLA313uZeFvbpZMQBQxl8fBPvt49yn3wjx3wpw3o0bFW5zMOdgrTOOoozxrMQaGehRoMfhURWYUlsxx49T29On25wRxlQPiODQXDlGLzO22U799UZFI9HrzTfX4hx/qIjOqmExJr17AFVeo2xMmBH+tIzRBTERvx/4clHRaMmfPFpOFzBQ85BDg3XcTWw0yKTIBISbMwslhXdvt2wvXjVxpf/ihLmhamsjs1i3e2mV2+6GYlkxTjNAJV7bNk58T1MpkE5lBrJjysbw8tcgA0uOiHjzYXqDaK/nHfCydtAZLJiDGPG0aMHUqcNZZ4ayYgBCBnTurOcPWO9wL6TL/05/UfbbjrGNH5cqWRJGJ362b+I3MY4zOdzYrYCKRWVoq/qSoSqZ1Iy1F9M03wv1sxh0GFZn5+eK7Us9U1CKzsFB4rd59VxhOhg0TC9p27UTIz7Jl4hooMUVlstnllNtuEyFqXbvqCaiOyAlSJ/MpAC8BmM45f0r+pX9oOU7UIpNaMj/6SLlkCgpE3cUgEzoVQG3aeLtEvEhGZJokEz9JXaEffJCbmeUS2z4Jc2GwHSN+39G0ZIYRmUFJRWQWFMRbYzIRBykxRWamM8uBeJFJy8i0JEsmAIweLbwpyVqrr7hCLErOPDN4HJ3EdJl7iUxK+/ZikR4F1GUuoedOu3bxc24ikckYcOWVYp+cc06481bStauy8tbV6QINEOfEd9+J7fx8YG+zN5yBKZajFpmA2JdXXqlqoBYVAfvuqx5/9VW1HbUlExD74cILRWWEsIslRygSikzG2JEQXX7ei90ezRh7I83jyn3MCa6gILUyCIMHKwsevUhdcYV9crNBL7jJCN5cEZkrV3qPKduY+6SkJJyosu1TP5E5ZIhe7iYbItOrRqbEtOSmw13uhSkys+Eup8X4q6t1d2pQS2ZzEZmpctNNIqnj6afDv3b0aD1+LojIPPJIPf4uFWzzsDnfmbcTiUxAZOhv2SLCoJLFz2U+daq6powdq4fY2MiEyLRx4IFq+xtSjjuIJTNMHoAjowSJybwZovvOZgDgnM8GrK13WxfmBGeLZQlDXp5eyggQF6U//CH4ewwZohId5AoxDNkSmWPGqIvsmjUqyxzIfUumrWuJH2EtmYWFejyYKUboBYN2zwgz6dpEZpAamRLTktvaLJmM6UKbxmV6WTLNWpnNwV0eFclmKjMmkjYAsb9oZQqJOSfZEoaSJV0iE0g9e9tPZH70kdoOkmVvzh2ZSoyhSaCURIk/HTtGWzLNESlBRGYD57zcuM+nrUArwSYyU4XGZQLAn/9sX7V50bcv8OijWDdhgmj7FpZsicz8fH0VSzMkc82SaYqBMPGYgH2fJvqONC4z3ZbM778XVpWg7nIgXmS2Nksm4B2X6bUfzVqZrcWSmSrnny+yxn/80S7g6Lzcvj1w6KHRfXY6RWaqeInMpibglVfUbbPmrA06H/TtGz7sKll22cU+byVyl+dKiTuHlSAicy5j7DQA+YyxoYyxhwB8nuZx5T6myIzigjZ2rNoeN07ELYXlwgsx79Zb4zv6BCFbIhOI7+riNaZsk0qGLBDekgnoJXvMZIkoROawYer569YBl1+emsjMpiUzWyKT/i5UZPrVjz3qKPG/W7fkztfWCGMitMhrIUPvP+KI6FzlQG6LzJEjlTVv2TLliZg+XYUfBU1yod8hU65yQHjhqLFBkshd7kRmThNEZP4WwAgAtQCeB1AO4PJ0DqpZkA6RedppoizIXnuJmKVM1PijtGunVrEFBYlP3ihFptcKuzm4y1N5PZD4O158sbDI/OIXwHnn6Y/RCZgWMA4jMouLgYcfVreffFIvKZIoJjOXRGY23OWAt7ucinXz3Pjzn0UM8ty5mbMWtXRo/eCLLor2vQcOjG8Hmisis7BQN1JIbxApSI9jjw1Wc5gumGx1etOJTWQ6S2azJoiK+SXn/AbO+e6xvxsBHJXugeU8bdroZSKiuKC1awe8/Tbw+eeZXUFS7rxTuPH++MfErvooReZ228XHkTIWPgM13aTDkpnIWtupkyj38cEH8fvXK4g/bJbqySeLRY6EWuCcuzwxXu5yv/1YWCgWDrl2jDdnzj5bzKHTpgH77x/texcUxM/LuSIyAb2U0fTpwlX+8svqvqDxqSedJGI3R47U60lmAmfJbHEEEZm/D3hf64NabFpK4P4FF4hONDfemPi5UYpMIN5l3q1bvOUg26QjJjMVa61XRYNkSqE8/LC9HFNzdZdny5IpRWZNjWhvCIgYzEwKjtYKY8IbNH58et7fdJmb51k2RSaNy/zyS/Enj8UuXYKL7tJSYMoU0Rwj08aOwYNVi2VJIkumW6TlNJ4ikzF2WCz+si/t9MMYexJAQ8ZGmMu0RJEZhnSLzFxzlQMixotmgoYtnmweJ+3bp1b6KkqR2bmzcJWb5LLIpEIyV2IypbucFrTu0SPz4S+O6KEis3Pn+O5m5vyXyXOBisyvvgJeeEHdPvbY3Fuwe2FaM805rk0b1dIYcJbMHMdv1lsFYCZEW8mvyd8bACKqbtvMoRNIa8wONUVmqtaaiRP1mKFcS/qR7Lyz+N++fXyru0SY4i9VIe0lMpOtG3fQQcBll6nbfi0l6XPosZDJC2vbtiq5o75eL+SfLXf5ihVAY6N/0o+jeUJFpu03pfeVlgaLgYyKfv3Ugq+qCnj8cfVYlKWc0o0pMk1LptnS2J1bOY2nyOScz4l19nmEdvrhnL8C4KzMDTGHoYLKWTKFsEnFWlNaKpKeJLkqMh97TCQVvPhiuBJTgBBsNJY31e8YVUwm5a67gD32ENunnhrsNeecI/5PnJhca7xUoOeebG9ZUJC46HSUdOqkxlFdDTz3XLgMfUfzgCbX2LLNt9tOZXknU6s4Vag1c+tW8b9LF3tN0VzFHKttjqWLaycyc5ogiuAUy33nRDyO5smxx4r/HTvaA5ZbOqbIjOJkP/xwtU2LkOcSI0cC//iHPtagMKaLonRYMtu2TS1buW1b0Ut+wQLxPYNw//3AkiWi8HOm27TZFnhdu2Z2HIwBv/61un3jjcDy5eq2uxC2DHbaScQun3qq3kdd0qmTCDk56STgkUcyPTo9+UdyzDHNx1UOiHNF9pufMMHuHZMds2RJK0fO4mnLZ4ydCuA0AIOMNpKlADbYX9XKuOgiUTKjT5/MughzhXSIzMsuE+Kmrk70lm2JdOsGrFolttMhMlOxYkqKi4O3M5WYAfuZwiYysxG+cvXVwKOPiljMFSuERVjiRGbL4Te/EX9enHyy+MsG1JIpkYKtOfHcc8C118Y3KJH8+c/AzTcDhx0WXzvYkVP4BYx8DmA1gG4A/krurwDwbSofyhi7EsAFEJ2DvgNwLoASAC8CGAhgGYCTOOebUvmcjJDpOmK5RDpEZkkJ8NRTqb9PLkNFUaru8nSJzOaElyUz05SWitJfl14qbv/0k3rMucsdmWC33URsfGOjuN2pU/P0shUV6aEJJuPGAe+9l7nxOJLGLybzJ875FM75XpzzT8jfLM550tnljLG+AC4DMJZzvjOAfAiX/HUAPuKcDwXwUey2I5dp316PwXTWmmBQ6+V226X2Xra4QycysxcjfdFF9mQwd244MkFJCTBqlLp9zDHxGfAORwZJGJPJGKtgjG2J/dUwxhoZY1sSvS4BBQDaMsYKICyYqwAcDUCasJ4CcEyKn+FIN4zp1kx3IQ3GZZcJcTlxInDkkam9l7Nk5o67HBCxb7ZYPWfJdGSKX/5SbcuEPIcjSySsr8A5165ijLFjAOyR7Adyzlcyxu4BsBzAVgAfcM4/YIz15Jyvjj1nNWPMKZbmQMeOwKZYVEOyZXNaG3vsIfqMR5GYUlAgsllratR9re13yCVLJgAcf7xIwJCt/QC3AHNkjuuuE8fbgAGic4/DkUVCF/HinL/GGEvalc0Y6wxhtRwEYDOA/zLGzgjx+osAXAQAPXv2xJQpU5IdSoulsrIyY/tlbH4+pMP2u7VrsaGF/B6Z3IepsnebNigiInNpRQV+ypGxZ2I/9vz5Z+xk3LekvBzLs7gPOp52GnYlIvOLJUtQW1GR1Hs1p2MxV2l1+1DW8o3wO7e6fZgGKisrsz2EjJNQZDLGjiM38wCMhUjYSZaDACzlnK+Lvf8rAPYGsJYx1jtmxewN4GfbiznnjwF4DADGjh3LJ06cmMJQWiZTpkxBxvbLmDHAjz8CAHY56aTs9VyPmIzuw1Tp0gXYvHnbzUG7745BOTL2jOzHqqq4uwaPHYvB2dwHEycC330H/POfwP77Y68TTkjact2sjsUcxe3D1HH7MHVao0gPYsmkQWMNEJnfR6fwmcsBjGOMlUC4yw+E6CxUBeBsAHfF/r+ewmc4MsWdd4oC43vt1WIEZrPDTP5xMZm50RzhH/8Arr9euC0zXTvU4XA4coAgMZnnRvmBnPMvGWMvA5gFIVq/gbBMtgfwEmPsfAgh2oz6YLVitt8e+Pe/sz2K1o2Z/ONEZm60ec3Ly17tUIfD4cgBgmSXP8UY60Rud2aMPZHKh3LO/8g535FzvjPn/EzOeS3nfAPn/EDO+dDY/42pfIbD0WpwIjPYfQ6Hw+HIKEHaSo7knG+WN2IF0ndN24gcDkc4WrvI7NRJr9cKOJHpcDgcOUAQkZkXywgHADDGuiCJrHSHw5EmzJjM1iaw8vLi+xvngrvc4XA4WjlBxOJfAXwei6PkAE4CcEdaR+VwOIJDLZkdO7bODh9duwIbNojttm3Fn8PhcDiySpDEn6cZYzMBHACAATiOcz4/7SNzOBzBoCKztbnKJdR666yYDofDkRMEcnvHRKUTlg5HLuJEpi4yW1u4gMPhcOQoQWIyHQ5HLkNjMp3IdCLT4XA4cgQnMh2O5s5226ntIUOyN45s4tzlDofDkXO4LHGHo7lz6KHAxRcDK1cCV12V7dFkB2fJdDgcjpzDiUyHo7lTUAD8/e/ZHkV2OeAAtb3//tkbh8PhcDi24USmw+Fo/owbB3z+OVBZCRx4YLZH43A4HA44kelwOFoKe+2V7RE4HA6Hg+ASfxwOh8PhcDgckeNEpsPhcDgcDocjcpzIdDgcDofD4XBEDuOcZ3sMSdOtWzc+cODAbA8j56iqqkK7du2yPYxmjduH0eD2Y+q4fZg6bh+mjtuHqVNVVYXvv/+ec85bjYGvWSf+DBw4EDNnzsz2MHKOKVOmYOLEidkeRrPG7cNocPsxddw+TB23D1PH7cPUmTJlCvbff/9Z2R5HJmk1atrhcDgcDofDkTmcyHQ4HA6Hw+FwRI4TmQ6Ho/nT2AjceSfw+98DFRXZHo3D4XA40MxjMh0OhwMA8NprwA03iO3u3VtvD3eHw+HIIZwl0+FwNH/mzVPbCxZkbxwOh8Ph2IYTmQ6Ho/mzcaPaLi/P3jgcDofDsQ0nMh0OR/Nn0ya17USmw+Fw5AROZDocjuYPtWRu2ZK9cTgcDkeKMMYOZYz9wBhbzBi7zvJ4R8bYm4yxOYyxeYyxc8ljyxhj3zHGZjPGsl5I3CX+OByO5o9zlzscjhYAYywfwCMAfgGgDMAMxtgbnPP55Gm/ATCfc34kY6w7gB8YY89xzutij+/POV+f2ZHbcZZMh8PR/HEi0+FwtAz2ALCYc74kJhpfAHC08RwOoJQxxgC0B7ARQENmhxmMZm3JrKqqwpQpU7I9jJyjsrLS7ZcUcfswGjK1H/deuxZFse2GTZswrQX9du5YTB23D1PH7cPUqaysBIBuhhv7Mc75Y+R2XwAryO0yAHsab/UwgDcArAJQCuBkznlT7DEO4APGGAfwD+O9M06zFpnt2rVzvVQtuB6zqeP2YTRkZD9yrhVgL9i6FRMnTADy89P7uRnCHYup4/Zh6rh9mDoxkb6ecz7W52nMch83bh8CYDaAAwAMATCJMTaVc74FwHjO+SrGWI/Y/d9zzj9NefBJ4tzlDoejeVNVBTQYniKX/ONwOJonZQD6k9v9ICyWlHMBvMIFiwEsBbAjAHDOV8X+/wzgVQj3e9ZwItPhcDRvaDymxMVlOhyO5skMAEMZY4MYY0UAToFwjVOWAzgQABhjPQHsAGAJY6wdY6w0dn87AAcDmJuxkVto1u5yh8PhsIpMZ8l0OBzNEM55A2PsUgDvA8gH8ATnfB5j7OLY448CuA3Ak4yx7yDc69dyztczxgYDeFXkA6EAwPOc8/ey8kViOJHpcDiaN86S6XA4WhCc83cAvGPc9yjZXgVhpTRftwTAqLQPMATOXe5wOJo3TmQ6HA5HTuJEpsPhaN7QlpIS5y53OByOrONEpsPhaN44S6bD4XDkJE5kOhzNnYYG4IILgMMPB5Yty/ZoMo8TmQ6Hw5GTOJHpcDR33nkH+Ne/gHffBe65J9ujyTwuu9zhcDhyEicyHY7mzk8/qe0FC7I3jmzhLJkOh8ORkziRmWtwDjQ1JX6ewyGhVrsVK7yf11KxJf44kelwtFwaG4EpU+znviOncCIzl9i8Gdh1V2DgQODbb7M9GkdzgQqqFSvEQqU14dzlDkfr4qqrgP33B0aOBGprsz0ahw9OZOYSzz8PzJkjhMLf/57t0WSHpibgwQdFbKGbPIJBBVVNDbB+ffbGkg2cu9zhaF28E6tTXlYGfPdddsfi8MV1/MklfvhBbbfGLGEAeOYZ4PLLxXaHDsBFF2V3PM0BU1AtXw50756dsWQDJzIdjtYFPb83bMjeOBwJcZbMXOLHH9X2ypXJvcf992Pk1VcD06dHM6ZM8+abanvWrOyNozlhuoZTjcvkHLjySqBXL+Cxx1J7r3RTVwdUVcXf79zlDkfLhZ7frc1z08xwIjOXWLxYbZeVhX99WRlw1VXoMnMmcO210Y0rU3AOTJ2qbq9alb2x+PHCC8DgwcCNN2Z7JALTapeqyPz3v4H77wfWrgVuuinYa956Cxg3ToQ6ZBIa+J+fr7adJdPhaJnU1uqhVE5khoYxtiXBXwVjbGEUn+VEZq7Q2AgsXapub9oEVFeHe49ly1TSB32v5sKiRcDPP6vbq1dnbyx+3Hij2L933pkbY7S5y5Plp5+AK65Qt9euDRYbe+WVwJdfAv/3f5kVeNRV3r+/2i4vz04CVFWV+GvJyVeNjdkegaM1Y3opnLs8GX7knHfw+SsFYHERhceJzFyhrEy4/ihhXebUqrN5c8pDyjiffqrfzkVLJufKysy5HuKQLaJylzc1AeeeC1RU6PevWeP/uoYGtR/q6/WFQrqhIrNnT6BNG7Hd2Bh+kZYqN98MdOoEtG8vrKodOohKEfffn9lxpIvGRuD444HSUlH83+HIBuYi1lkyk+H4iJ6TECcycwWbWElFZFZUiIt/uikrA66+Gnj55dTfi7rKAWFFyzWrSVWVbtlLxWoYFVG5yx95BJg8Of7+RCJzzRrdcpfJeEgqMrt0ATp2zM44GhqAP/1JnXOci3Pwp5+EdbclWFvefx945RVg61bgrruyPRpHa8VZMlOGc74EABhj7RhjebHtYYyxoxhjhfQ5qeJEZq5A4zElqYhMIDNuy+uuE+WGTj4ZWJLiMWmKzMZGYN261N4zaswJjXbbyQacx0+6yQjfhQv1OF4a35goJMA8TrMpMjt0ULcz6ba3eSIkjY1i/zZ3nnhCbS9dmplFrMNh4iyZUfIpgDaMsb4APgJwLoAno/wAJzJzBZslM2zyjykyM9ENQdYoa2pKLRu8rMweR5oLMY+UbInMykq7aKqsjI//W7UqnADgHDjvPGGhAkSB41NPVY8nsmSaYQ2muz2d0GPctGRmUmTSY3evvUTYwDHHqPtyIawiFdatA954Q91ubMzN7lI//wyccQbw29+K36A18vXXIjFx330Tn7s2tmwB9tkH2GknvaxermAuYp3ITAXGOa8GcByAhzjnxwIYHuUHOJGZK0TtLgcyE5dJRVcqtT1NK6Yk1+IyTZGZCXf5ggWinFDfvsDs2fpjNqthU1M4cf7TT8Bnn4ntggLg6aeB7bZTjzcnS2a23OXUij9okNiPw4ap+5q7yHz22XjRlqrnIh38/e/Ac88BDz8swj9aG5wDl1wiFj1Tp4qFTk1NuPd48UUxH3z/fW7GE5uLx2Tc5atXA8ceC1xwgbcHonXAGGN7ATgdwNux+yKtn+5EZq5gc5eHtWSaRamTsWQuWgTccgvwzTfhPzMdItNZMsVFU2Ytv/ii/piXtS6M+KWJOiNHAqNGAb17q/vCWjKzJTI7d86eu5xaMgcPFv+HDFH3NWeRybk90ScXvxP9HZ55JnvjyBaffw7MmKFuf/klcP754aod0Llj3rzoxhYVNktm2GoOd98NvPaaOK5ffTWyoTVDLgfwewCvcs7nMcYGA7AE5iePE5m5gFeWcjYsmaedJrJkjzgisbtp61blYgVSE5k0s3yPPdR2c7BkprtcDRWy5ud7Cakwrkx63HTuLP736qXua66WzGyJzEGDxH8qMm2LyObCzJl2sZGLlkw6582aBcyfn7WhZIV7742/7/nnRbm1oKxdq7a//z71MUWNeV7X1oavJPH112o7FxdLmWMj5/wozvmfAZHswzm/LMoPcCIzF/j5ZxFbZ5JqTGZYkVlbKy4ogBB3iZJuzM9LVmRu2KAuYgUFwo0hyTVLphn/U1mZ/thXKhhNa7WXoAtjybSJzDCWzFwVmZkcRyKR2ZwvZDThRx4fQHZEZn29sEB59as257xnn033iHKHJUvEvpH88pdq+8Ybgf/9L9j70PN93brcy962nddh4zIXLFDbuZZcmlkeZYx9xRj7NWOsUzo+wInMXIBegEaMUNtr1oRL4Eg18ccUC4lebwoeWgw+DNOmqe3ddgO2317dznVLJpB+lzkVjOY+zwVLZjbd5WbiTy64y6XI7N8fKCwU2z//nNmEqKiorhaWMMk116jtbIjM228Xi9Bdd7UvpMzf/LnnRIxya+DBB9V3Pfhg4QY+4AD1+JlnBlvsUEsmkHvJP7bzOowQ3rBBF5aZrOsbEMbYoYyxHxhjixlj11ke78gYe5MxNocxNo8xdm7Q11I45/sAOANAfwAzGWPPM8YOjvK7OJGZCkuXCvfy7ben5jKlrrSddgJ69BDbTU3xJ7wfqVoyTWESVmRWVSWX6UfjMffdF+jTR93ONUumbTJLZ/JPY6Nu0fazZJaWqu1kRWanTuI/FZlr1/pfqHPVkpkpkVldraw/+flAv35qe+BA9bxcdC8n4tVX1e+5/fbA2WerxzJtnW1qAh5/XGw3NgJffBH/HHPOW75cX8S2VMrL9bjZq64SC5z//lct2rduDWbZNa85ueYyt53XYa475vfJMUsmYywfwCMADoPI9D6VMWZmfP8GwHzO+SgAEwH8lTFWFPC1GpzzhQBuBHAtgP0APMAY+54xdlwU38eJzFS4807gP/8B/vAHEWCdLHSy3n57kUUsCeMyT9WSaYqlRK+3Ca5kXOZUZE6YoLtqm4PITKclc+1aPTbWz5JJreCpustLSpRVsL4+/nMllZXxojKTFrtccJfTY37AABHyIWnuLnMqXM47Tyw+2rYVtzdvzkyZNMnMmfp8YFtE2wRIrrvMv/pK7NsPPkj+Pf75TxVyNXy4sGQC4py49Vb1vClT/N+H8/jwmFwTmam6y6mrHMg5kQlgDwCLY/GRdQBeAHC08RwOoJQxxgC0B7ARQEPA126DMTaSMXYfgAUADgBwJOd8p9j2fVF8mUhT1TNNVVUVpiQ6adLIqJkzISOUFrz+OtaGLRURY6fPP0fP2PYPDQ3o2rYtusVuz33/faynyTUe5NXWYl+jx/TahQuxIMT+GfDJJxhMbi/44guspdYxg16ff44djfvmvf021lUFb3mav3Ur9pk5EwwAZwyfAWhatAj7xh5vWr0an378MZCX2fVQZWWl9dgas2wZOhj3rfjsM/w4cmRaxtFh/nyMIbcb163DVDKugd9+i4Gx7VVdu0LagOuWLMHnAX/7YQsWbHvdwnXrsCr2uj06dkRJbEKf8eabqJJuYELbFSuwp3Hfpp9+wpzYe3jtx9Bwjq5ffIHG4mJs3m03cV9TE/bbtAks9pRP5sxBtxUrIKX2usWLMS8D80OXL76A/PU3de687bsDwNA2bSCXjD9+8AFWdOkS+v0j24chKV63DnvFOkDxvDx8sf32qPvkE+zesyfaxYT1zJdeQuUOO2RkPIP++U+QwlpY8vXXWE73S1MT9isv33Y8SBqefx7Vhx6a1WuFH7ufcw7a/fQT6v/7X3zx8stoKi4O9XrW2Ig9774bsYaq+OHww7H6k0+2PV5UWIi9Y9uNn3+Ozz74AE1FRdb3yq+sxATjOrL+s88wd8qUrB2HJrsuX46Oxn2Lpk/HSuoB82HIBx+gP7ldW1aGLzL0vSrFQqAbY2wmufsxzvlj5HZfANQVVQbETbMPA3gDwCoApQBO5pw3xYqqJ3qt+T6PA7iec75NaHDOVzHGbgz2rRLAOW+2f7vtthvPKqNHcy7Wfpzfe2/y77Pnnup9Jk/m/OKL1e0HHgj2HitXqtfIv0MOCTcO+rlBPvsvf4n/zL/8JdxnTpqkXrvLLur+zp3V/WvXhnvPCJg8ebL9gUGD4r/zCSeEe/PaWs5feIHzzz9P/NwXX4z/vJoa9fjll+v7vqBA3a6uDjae449Xr3nhBXX/fvup+z/4wP7ajz+OH9/Ysdse9tyPYXn8cfX+H34o7tu4Ud1XWirue+89dd9BB0Xz2Yl46CH1mRdcoD92773qsV/9Kqm3j2wfhuXdd9XY99lH3X/UUer+F18M956vv875Xntx/ve/hx/P8OH6cXbNNfrj5eXqsZISzgcP3nb7u1tuCf95XqxcKebpxsbU36u2Vv9OCxaEfw86R3Tvbj/vhw5Vz/nkE+/3+uGH+PN56FDOeRaPQ5Nddokf4003BX/9YYfpry0q4rypKX3jJUyePJkDmMl9dA2AEwH8k9w+E6JQOn3OCRCWRgZgewBLAXQI8tpM/zl3eSpQd00qGXjUjTZkiIrpAuLj3crL4839gN2dmemYTCC8u1wWAQdEPKaErkpzKfnH5pYJ6y6/917glFOA8eMTu6Jsbm/6u1D3YOfO+rETNC7T5i4HgmWY236bdLip//Y3tS07z5iuciA77nJb0o+kObvLaajO4MH27bBxpldcIWIpL788XMzs4sXx5YjM+c08F04/fdvNnpMmhRunF+vWAaNHA/vvD1x/fervZ55XyXRReuEFtX3JJSqcgTJxotr2s9rZzvMlS0TlkVwh1cQfc86tq8u1pLwyQDO29oOwWFLOBfBKTLsuhhCZOwZ87TYYY0MZYy8zxuYzxpbIv0i+RQwnMlMhCpFZXq6ES3GxiMf0islcv15ctIYPF50tKDZBaLuPW2JuJNkQmbRe2bhxajsX4zK9JqOwiT/vvy/+c67XB7Vhe2+636mQ6thRZDRLUhWZQTLMbbVcoxZ3CxbozQFkmS0zsxzITuKPn8iklRKas8iki5dkRWZTk1qQ1dWF2x+vvx5/n1+iY8eOor1kjK7Tp0eTRfzyyyqGzzamsJiLtGREJv0NaNkiSlCRaUs0bWzMrWM3lZjMrVvt16jcyjCfAWAoY2wQY6wIwCkQrnHKcgAHAgBjrCeAHQAsCfhayr8B/B0innN/AE8DiLSLgROZydLUpF/EvBIjEkFP3sGDRewhFZn0Iv7aa0rMvvSS/j42QWizZJ5wghBwl1nqrZoTXCJLaBQik/Y733VXtZ2Llkyzu0x+vtheuzZc67ZFi9R2ooL7iUQmPQY7dNBFZlDxm+uWzP/8R789e7Yo7WWzZGajhJGfyKS3ly9vXv206XxAj6tkReaWLXqVgjBzBa3/KDHnPPp7d+ok2nrGGjvkNTQAO+4I3HBDcv28beP48cdwJeZsmOdPMpUq6O80YID9Ofvtp7a/+MLbMulVzSRXkn84T01k/vCDvRJMDiX/cM4bAFwK4H2IhJyXuOjGczFj7OLY024DsDdj7DsAHwG4lnO+3uu1Ph/XlnP+EUQP85845zdDJP1EhhOZidi6VQiBxkb9/ooK/WBN1pJJyxdJ15qXu5yW7DAnAy+RSce4fj3wyiti+9FH9QnSVlQ8WUum7SS2sW6d+n5t2wI0gSAXLZn0N+7RQ/+d6MXh229Fx6Q//zn+Paqr9d80VZFpWjLpRSZblszq6vjzJVk41+s0yvf//vvE7vJMiEzO4/uWU9q2VYvGxsbMtCGNCi9LZrIhAOYcGVRkrlsn2iWamItg05IJiN7Ukk2bREWQ7bYTbuUQCYoAxPEUS4QCIBYMtt9zxgzgjjuCCcZULZlVVeo8KCxU5e9M+vZVVvWaGpHRbiNXROZPPwF//Wt8jc6qKns5taDXX1uoGZBTIhMAOOfvcM6Hcc6HcM7viN33KOf80dj2Ks75wZzzXTjnO3POn/V7rQ81jLE8AIsYY5cyxo4F4HEQJYcTmX4MHSpKufTrF19KyJzgkhWZZvkiIN5dLkUbnWjN1bhNENbV6W0f6Wvq63ULjG1yS6aEUXV18BOWukBHjtRLv+SiJZN+365ddUFHLyi//S3w9tvAddfFdyYx2wum05IZ5ILV2BhvAZIka8kEootxmjHDLmRmzoy3LANAu3aqEsHWrem3HG7apIR+SYn9Ih9VXObcucBBBwFnnZW6BS0IXiKT1v4MY521NW+wYX63t95SwoIek37ucnkcn38+8Pjj2Ernk7o6sch+5JFg45a89178dzVFUGUlcNhhosPOueciIamKTNPa7FeFI4jLnJ7ntGJGJguyNzUBhx8O/N//ieOdHg9eC8eglsxmIjIzyBUASgBcBmA3iEShs6P8ACcy/SgpUdvmBJkOkSkvRh06qMLaNTViMt24UV9Nbtqkuzy8BCEdp1+RXdvkFsZdTi1IQS0UXq5yIPctmV27CouIRFo0Kir0ZCYacwqEE5nV1fbjKmhMZhBLiilSZQgAEN6SyUjxmKhc5tSKScuufP213ZLJmO4yT3fyj+kqp/tA4iUyGxvFQiuIIP/pJ+AXvwA++gh45hlRZDvdeLnL27RRC+GmpuAu3iAi8+mnxe+3555qEUpd1GeeqbYTucsBIbouuABfPv20iKccQwqCmedmImwu+4UL9dtz5qhzdvr0xF4d87wK6y6nz6e/kY0gIpNeI6iLPZOWzI8+UkleZWX6mOj5TBcOyVgyu3dX261UZHLOZ3DOKznnZZzzcznnx3HOp0f5GU5k+kFr2qVLZFLRQZMETGvmdMvvToOVvUQmvd+vXVgylky6T6hIDCoyqSWTTv5A87VkTp2qu4rNjFgajwn4i0wvq4aXJTMZd7mXqxxIbMlsatJ/Gyq6w4q7xYtFAemLL1aiq6FBz5y99FK1PXOmPfEHyKzL3C8eU+IlMm+8URz3w4frHgeDgspKYdmhvwFdoKWDLVvU79Cmjb5/geTiMs05lO47yZ//LPbFV1+JeMo//AGgmeG045AZDmRzl0vy84Hjj9etl2GEU10d8M478febIpN6LqqrE58HNktm0HAj+XyJVzymJEhcpp/IDDOuVPjnP/XbVADS87lvX7Xw3LpV7O9E0N98wgT7Z7QCYi0p3/D6i/KznMj0I4zIrK4Ol/whsVkygfi4TFsLNTohBLFkmhl0iSyZfiKztlbFNOXn666VZERmc7BkUpdMt252S+bHH+uvmWfEXJsic+NG7+PGy6ohj8X6eiVO8vKEq9h0lye6MNhaSkq6dFEhDOXl8UJowwblPuzUSbd8hhWZ118vxMQ//iHE5ubNIv5NHuM9ewr3mWT2bP149hKZmbZk2rCJzMpK0WsaEItIr45hdXUYcdNN8YsV87iKGtNVblpokwkBsFky6fHZ0KCfHw0NomWvPO6GDxd/7dqJ201NuhXYK+yDQuO+Fy4MHjs8ZYr9WDJF5ty5+u1EC2Tz8erqcF2Uwlgy+/VTv9vWrSIUxYQuZEaNUufSli0oSja51cY774iwD/O4X79etDKl0PPc9Nx07apuJzL0NDTovxctmZdb2eWZ4B4Af4UofbQVoiD74wAqAcz1eV1onMj0gx7AiUQmkPggX7cOOOoo8ffJJ+JEl5N5Xp4uWkxLpi3wnU4IZHycXhD8LJmJRGZVlXe8lWkBo5aNICJzyxZ1QcnPB3beWX/cFJl+vbMzhZ8l00tkJrJkAt4XInoBoV1A5G9NJ9wOHYQQ6NxZhXlUViYOefCzZObl6cLRtGZSK2yfPsm7qTnX99v06SIWi5bpOuUUcUzIfV5To/ekpiIzkxnmyYrMV17RLS+2BBLOgQsuQGe6GJOYx1XUeLnKJVFYMisr9fuWLvWP7zz6aPGfHqf0+PWzZEo6d1ZxszU1wd3TtFzRoYeq7ahFJhDOZR7Gkgn4u8w5168RvXqJjPwYJclkvtuoqRHn8zPPiH1JP/OZZ+KPAS9LZocOYrEvSRSXuXSpsEgDYr6i52Urs2Ryzj/hnH8CYFfO+cmc8zdjf6cB2CfKz3Ii048wlkwgsch8+GHgzTfF38SJoqCvZLvt9Jgzasn86Sd7NqCHJbOWnnh+MZmJ3OXm6yl0f3TtqicDBBGZc+ao7eHDhUuO0ratskY0NKRW7D4q/GIyly8X+2T2bP01y5bpWaxmTCbg7TKnkzoV4XLfmxMuIIRmGJe5n8gE/OMy6QWyb18VRwyEE5kLFsT/vl9/rVs0TjtN/JctJQH9OKNjz6S73C+zXGKKTM6Bp57Sn2MTmY8/Li66kj/+UVmWf/pJ9apOB15JP5JkRKbtHKa/IZ2PJk4U2cV0cXXiieI//a3p/BTEkglowilQQgvnusi88koVu7xihVoscB5OZNbU2Ct0hEn+SbQYMKEik7SeBCDOWelCLykB2rdPj8hctkxZoDdvBn73O7HNebyrHNAFoJ8lM5HIpPGYO+7oYjIF3Rlj205mxtggAN19nh8aJzL9oCLTnCCTEZk0IQTQXQX0QgTolsz337dfUKhliYiFGq8MTFNkrl+vTkyvCcTLdUO/a5cuusi0xVqZ+MVjSnLNZe5nyVyxQrh3be5pOblVVdkvOkFE5ujRattmyaTCKkyGOT2ObSLTLy6TjrtvX92CGCa7nBak79/f7prdfXexPXas/T1ywV1OhRelSxclemS8IS2FA9hF5ssvq+3zzxcic+hQdV86rZnpEJmJ6upSz8pOOwFXXSUWbVdcATz3nAqpoQIyrCUT0EVmkLjMr79Wx3qXLsABB+jfXy4c16yJvwb4iUyvOS2MyAzjLgf0OMvPPlOWPUC/PvTsKf6nQ2Sax/pzzwEffig8GLZjmrqy/SyZia6/VGTutJMTmYIrAUxhjE1hjE0BMBnA5VF+gBOZfvhZMsO2tmpqUp1KAP8YJ0Cf2OnrKB4iUyvX4ReTCajitHRio2PxEplmZi+16gWplekXjynJteQfU2S2a6dW0vX18fUcJXLitFkxgeRFppn0I/EqrWQjFUtmVO5yKjKvvBL497/1UiynnabOF2rJpGQj8aepSRdJXpZMQD+nbrkl/vywiUwa63jllWIfjBih7kunyKTzgU1k2qyzibCJTCrSqVVRipsddwTuu09ZsoFg7nI/SyaNy7SJzFmzRPa+nHNoVvkRRwhr8rBh6j7pMjetmID/vBUkTMYPc94O4i7v318JZDMuk15P5HmfDpFpe59f/1p4+iTt26ttP0tmGHe5uYih5cbWrctcYlMOwTl/D8BQCGF5OYAdOOcfRPkZTmT6EaW7fPFidcHr1k0E7h9/vLjNmOjEQ6GWTAq15MiVJ+felkw/dzkgJvZNm5TLp107/WIZVGR26qQm9pqaxIHUfuWLJLluyQR0cf3mm2p7r73UthQDtnhMILzIlOMwYzIlYSyZiUSmnyXTdJcnIzLN1pr77isyiP/zH3FcDRumZ5UHEZmZislcvVpZgrp21cMFTKgoe/fd+MdNkdnQoN8nz0kqMtOZ/EMtmTYLWffuKgFny5ZgHc8SWTKpyKRC0CSd7vJ588Qce9JJ4pgeORL417/U4zIuNJ0iM6glc8MGlRRVWupvvaVQlzmNa05kyUym5aUNm8hctEhfpF9yidr2iskMm/hjusvbtVNhWjU14YvzN2MYY9vch5zzWs75nNhfre05qeBEph9RikwaU7n77mIl9fLLwtW0cKFIdKB4icxjj1Xb8qK/dau62BUXo46eeFJEmEHdku+/j4/r8ZrEKbYahUHjMmtrdSsMFVCUXLNkmtnlgG49kAHrhYXAhReq+22WTLoCt4nMpib9d9llF2XN27JFfJaXJTNMrcxsWzKXLVPv0769yGgFxEV+zRpxfFKLQ7du+nEGiLi9tm3V7Uy5y4Mk/UhMTwWg1+FdvlxPbluxYlvmc23Xruq5w4er52RKZNosmYyFd5lHJTLT6S5//XXdovXdd2qebdMGOOQQsR21yKTvF1TMhbViSmToCaCXXLKJzCFDtsUBt1m7NhohRuekPfeMf3znnYXFWOKVXR4m8YfzeHc5Y63ZZf5vxlhnxlgXrz8A/0r4LgFwItOPKEUmdUvE+ukCEBcnWh9T0r27ECuUoiI9s1FOCoZQaKCuBjnO8nI9/kbyww/xk5WXO4qSisicO1d1cdh+e12cUHLJktnUZP/O1JIp2Wsv3eIsxQC1ZFJrgk1krlungvA7dRIXTVP82xJ/AP3inyixIduWTGrFHD9e7/pUWGgvbm5aM7t00Z+XKXd5qiLzpJPUcVRXp+9f4irXPBO54i4HohWZmzYpMdGmjb9o8pqfgloyt9tOJRStWaPP5bYqHpIjjlDW26hF5rhxajuoWzpsPKaEJhHSMdPjT4rMwkL92DWz6ZOBWuhvvjleaF5wQbwrW+JnyfQTmatXqzmpQwc1r1GR2brKGHUE8HWCv0japTmR6UdYkennMqIik64kvcjL0y15gBAudPKVk4LRXq+eikw5CdNVKr0g2yyZXpYCSioiM4irHMgtS2Z5ubI0lZaqSgC2i+EBB4iLkIwrXLpUhCNQkUkD8G0ik15A5GeYx6NX4g+9iMyb518LMIzI9LNkJptdbrrKg2Am/5jjzpS7PEhmucQmMs86y15r1XhvLcZ66ND0Z5hv2aJ+v+Ji3VpECVMrk3Nvkcm5vhgaOtS/PaLN01JTo+rNFhTolm2T/Hw9gUp+dlOTXo/4669FCMxll4mYQVrI3RSZTU12y/KqVd6xfnROo4aHlSuD1e8Mm1kuofPDggVqwW+WL5KETZRKBJ3bBg4ULT5ltn5xMXDGGd4WxmQTf2xWTKDVWjI55wM554M554N8/vZI/E6JcSLTD/Oi7tVdQuJ1kNfX64kuQUQmEG9B2GsvvUD2li3CVR7EkklXabvsorZ//FG/QJju8iAiU64mg2aYB0n6AXLLkmmLxwTslswDDhCTpbRQy4soFZlUUNkuREFEppe7vFs3dZHYutXfyhTGXU4tHbW1alLOyxOWh2Syy5MRmTZLJiUb7nKvzHKJ6a3o318sNOg5E0RkFhXpAsmrF3Mq0MWDrRC7JIwlc8sWJZxKStSxUlUlLFC2pB8vbItg04rpNWbbZ8jPXrhQzWtdu4q56YgjgAceEAKTWtf69FEhDBs2CEEqXcndu6vvV1fnbXygInP77dW80tBgD20ysc0RQejUSV1b6upUGI/NXQ5EKzIbG+PjfUePFvGYBxwgMs27dhVzkRSe5eXKq5Ns4g8dN/0+rVRkZhInMv1o21a5VWpr9Y4nYUTm3Llqlb3ddvpk5YcZl7nXXuKCTieAtWvj2us1UIuSzZI5aJCalBob9aK8QWMyzRJGQHBLZpDyRUBuWTKDisy2bZX7h8bPffmlEmmFheIxeiEyJ0hbvJWfJdMMOaALCRp3ZRJGZK5dq4SCmYlaUBDeXb56tbrAFRcHX3yFEZm54i7v00ev+XjmmfENGDxEpuYuB9Kf/BPEVQ6EE5mJ6uoGjccE7IvgoK5yiU04UVf53nv7C9W8PF3s05quO+8cbO6i9/fpE64qBJC8JVOOUSLnB5u7HND3lS0kIAxr16rY9W7dVPjBSSeJnuUyGTYvzy4gTUtm0MQf05Ip8XLLOyLDiUw/GLO7zJuawpUwCusql9gsmYA+AaxZE8ySaa5S6cRB3depuMvphdZLZDY26oXYw1gys1liwktkmhaEffZRrnQqBt54Q20PHixEGV1EmBeiVCyZgHfclYlfW0lACCN5UW9sVPvBTPoBwovMqVPV9rhxugjzo0sXXeCYIjNT7vIwIjMvTyW4MSZc5YC3yCTeha2myEx38k+izHIJ/Q1mzfJvh2jOF1GJTDm/BU36kQQRmYmgLvP//U9tBxWZ1DvTp0+4qhBA8pZMOUaJnB+83OXUEGBrRRkGeownGrPNypisJZPONXQB7iyZaceJzETYRGZlpb3NYdQik4qQ7bZTE5dpXTJFplwdAuKkbGrSJ5AePfSJnIq3VBJ/zAumTRT+8IOyCPfp42/VLSlRF4z6+ux2/aGfTSe27t31bkUHHKC2qRj46CO1LV2n9Pc14zLDisxkLJlNTYmLsQP2sAUz6cccQxCRSV3lEyYkfj6FWjOzYcmsrVVizOyy5MXf/gacfLLo9iPPvyCWTNOjke7kn0SZ5ZLtt1disbxcJHF4kciSSd2ZiURmEHd5Imy1MmmzjPHjE7+HLfkHEOceFZm2mOuqKjXmoiJxDIcVmalYMun8MHdufPURasgYPlyFBqxYkVroUhhhbEvKMee80lKVIFtdrXsbJWvXAt9+K7YLCvS5xolMMMb6Msb2ZoztK/+ifH8nMhNhE5n0wkwP0o0b7eLTK7M8EdSsT7ORE1gykZ+vLvicixPTz5JJSaWEEc2ArqmxxxUFdZVLgsRlVlf7W1GigK6SqSWTMT3ezktk0sx+6WZLVWR6Jf4AwUTmli1qIdCuXXw1A4ktLtNM+gFSE5lB4zElBx6otqnoAjITk7lokdp3AwcGs8KOGQO88IJwlUvMJgaAOJblede2LepM8Z8r7vL8fOCee9TtRx7xtpr7WTJ//FEv75WMuzysJZN+xuLFQsRIsVlQ4N1ZikJFJmXnnf29FEC8FTNsO9iGBv19/X4nrzFK5s61t5SUFBToi7pUrJlhRKbpym5oUPWcGRNjZCyxy/zDD9X2XnvpCYqtN7scAMAY+zOAzwDcCODq2N//RfkZTmQmIpHI7NFDHbQ2N3p1tZp4GfMuJm3jkEOAyy8XBYBvvVXdn8CSCUBfzW/erJ9AXiKzSxcxwSSyZNbXq8QOxvRJPVHyT9CkH0kit9OqVaJgcpcu3h13wrJmDXpMmqTvMy93OSAsOAMGABdfrFuqd9jBniUbVmRKK0UYS+bw4SqmbNEi+wo/iBUTsAt9m7vczC73C2/YuFGJ3/x8vXh9EM4/H7j9duC22/RuMEC82E1HmAW1INLFRFhs1n+aiDd4cHxsYLozzIO6ywHguOPUwqqxUcxXtv3tJzKnTFGLsN69vUuaSRKJzCCWzNJSdf6Z3brGjPHPTpd4icwRI4LNWxL53DD1bVevVvHRPXro3pQg0AzrxYv1uZoaMSTUOEJrPoeFfi9b0iTFtDKaMehy/Ilc5pMmqe1f/ML/M1ofx0B0+Tmcc35k7O+oKD/AicxEJBKZnTr5r6S++UZNBjvu6N8VxCQvD7j/ftHWjK76TMuSTWSaE7FpybRZC+Qklygm0/w8KqRobJqtrAl1i1FrmxeJLJk336w+59prVTmOZGlqAg4+GMPvvBM47DB1wfQTmccfLy72f/+7LgjatrVnHScSmdQKTEtZhbFklpSoEjNNTfas0ERJPxKbJdPmLi8qUha9xka7sJXQTiO77aZbToJQUADccANw443xF9iCAuXea2pKT5kfKjKpxyEsXbqo715VJX5XmkRjO37SnWEe1F0OiOP9gQdUJvDHH+tJMBIzUZCKzDDxmIA4r6TVvbZWnC9+8cle0IX2E0+o7SDxmIBdZA4YIARQqiIzkSUzFVc5IPah9MA0NenJn/R8l0QlMpONyfz5Z+/5zu/6y7m/yHSJP0sAeLiwosGJzETYRKYZ/+N3kCfrKvfDzC436mRuG5dk8+Z4kdmnT/yF3SYyaX1Iia18kYROvLZC4GEvKHSyNkXmwoX6xaGszN6yLwxz5igL26xZyoXpJzL9sFm5EsVk0ot8377KahUm8QdI7DIPKjKDWjKB4GWMUnGVByHdLnMq7FKxZDIWb82kItNWX9P8zKhd5kHd5ZKddxZ1JCVXXRW/wDAtmV6JUkHmBMbiF9FhLZnmZ9HzI6jI7NIlfi6Q51wYkSnPrzDu8lSSfiR0fqAx44ksmTNm2MPCgpCKu9zLc+NnyVywQO3rTp3iwyCcJbMawGzG2D8YYw/Kvyg/wInMRKRqyTTbSUaBnyVTjtfPktmjh5iozQldisyCAmVx5Tz+Im0rXySxBdRL6up0t4yt05EJnaxffFG/eN10U3zR4sceS/yefrz3nn5bJgNEJTKLitTk6iUyvSZiuq83bPAvYQREJzLN423rVv13pN8jaFwmrWiwzz7ez0uWdCf/ROUuB+JFpukut5Gu5J+KCj0hhV6E/bjlFnVe/PQTcPfd+uOmyJRdrEyCiEwgfn4Lm/gDeMelhwndMK2ZMtYxGUtmnz7KK7RmjYqRtJGqJZOOFdAtmTaRud12qJP7dfNmPYY2DMkm/pjucrMusMS8/lIr5gEH6B3FAL2xRnW1ivnMMoyxQxljPzDGFjPGrrM8fjVjbHbsby5jrDHWChKMsWWMse9ij81M8FFvALgNwOfQu/1EhhOZiQgiMs2LPyXZzHI//Opk2iyZK1eqQsFFReoxc5KlJ71fXKYt6UdiK3IsWbJEicIBA/TezV4ccYSaBObMETFfgAhDePHF+Oe/807w3r82gohMrw4oNsyklMGDlWsxFZFZVqb2ZZs2ah9REpUxSsaS+fnn4sJK3V5elkw/kUl/I+r6jYp0ljFqaAhXPDwRfpbMICIzSktm0ELsJp07A3feqW4/9JAem5moeYMkqMg0PTVhE38A++82YEC4JBovkWm2YzUXwzaRWVCgv86WlS6JwpJJ5wcaUmJzlzOGCrq/knGZV1SoOae4OHG9aNNd7mXJ9Gst6ecqB3KyfzljLB/AIwAOAzAcwKmMMW0lyzm/m3M+mnM+GsDvAXzCOadV//ePPe6bwcY5fwrAf6DE5fOx+yLDicxE2KyUQS2ZmzapFV9hITBqVDRjChuTSS+I0ooJeFsyAf+4TD+RSd9z0SLdrRLWVQ4Ia+d996nbjz8OPP20iMeTHHMMcNBBYrupCfjnP/X3+OwzcQF8+WXVxs7Gli3xvYulyPTKLk+EaeWigqpHDyU4N2xQBftpjVEvkUlDB7wSJdJhySwr0935v/yl/togIpPzcHF/yZBOd/mPP6qC0n37Bhc1XuSSuzysq5xy/vmquPb69frxlagNrSSoYE+XJTNI6SKKl8gsLlbzRGNjvHixiUwguMs8aksmxWbJBLAlVZFpJjP6tQ4F4t3lQSyZdJ6uq9MttDaRCeRihvkeABZzzpdwzusAvADgaJ/nnwohFEPDGJsIYBGEqP0bgIWuhFGmCesup5PpTGKpHjUqeLHpRHTsqCxXVVX6BGazZFJx59XJAdAnq2QtmZ07q5O2pkafWOg4vDIzbVxyCXDKKer2hReq2EvGRJbxr36lHv/nP1UC0BtviPZ9N9wAnHiiiAXr1k0k9ZilOD7+OD5xaO5c8Xsn6y7fcUfdGkRDBPLzdQEnLzy05Ab9jbyEoJfI2X57dcytXBn/OyZjyZT06CESnV57Tb8/SP/yjRuVoC4tTZxNnAzpdJdHFY8poSJz0aL43s42hg1LT4Z5mMxyk/x8PdaShlQEEZnFxYkzjiV+MZlBRX/fvvHelKDxmBI6j+Xn6+ern8vcS2QGzTCPwpI5dKjdA+IhMitogluqIjPImE0LY5CYTDpPT5+uPHiDBnkv2HLMkgmgLwC6wiiL3RcHY6wEwKEASDcAcAAfMMa+ZoxdlOCz/grgYM75fpzzfQEcAuC+BK8JRUHip+QuVVVVmEJXKmmg/ZIlkPbmyuXLMXPKFOywYAHkZfeHtWuRV1MDaZ9a+e23WBQb04AXX4R0dq3s02fb/VEwrnNntJFxljHLXGNREaZOn47KykosWr9+25hqvv0WMv92Q0EBvouNo11FBagDf/rKlaiJPTaisRHy1Js7bRrWS4sbgIHffIOBse1lW7ZgmfG9RvfqhU6xk3XOSy9hUyxofIdPPtm23xbl5WFliP2Rf+aZGPP552i3fLlWc3LNL36B79etA+vUCXt17oyiTZuAVavw3V13oaG0FKOuvhp5pqtq40bgvfdQ8803+PLZZ8FjF+thTzyBPjDgHHMfegg7x0RRU2EhPp0xI7gbEcCevXqhbczyuJBzrCLfe0xpKeR0+c1bb2Fr377Y6/PPwQDwvDx83qkT6snz92nXDgVy4oyxJS8Pszz25W4DBqA01jP9m6efRjmxpg+dN2/bzLVo/Xrv34Nz7DZ0KEoXLUJjmzZYceKJWHHKKWgsKdGzxAHstHUr5CVqwZdfonLvvePO0XaLF2877qq6dMGMNJzDO1RVqXP0q6+wOmgr1wAMeOutbed1WWkpFqc4/g4bN0JWjK3/5BMUxqz/td264YvY+Wyb53bv2xftYmELXz/7rO7OTJLtpk6FlInLm5qwJOR327m0FPKSP/ett7A+lvy195o1kHLm8++/R9369ejX0AAalV3Vuzdm0M4sPgytqlLH7owZ6L1yJWQa48zFi2FKbq99uFvfvtvODwCYWVSEyhDfuaS6GjIlpnLAAMycPn3bYyPbtIFcgn/3/vvYIBddnGPCihWQM+q0JUvQELOgDQEgZeaSTz7Bcg+hv/eSJWp/rliBOrloC8nY/v3R3qgCMmvVKmyx7IPafv0wMrbdNGsWpk6aBO5VW9dC70mTIP1Xq4uK8EOi/dzUhP3y8sBipQGXfvWVOjbLy7cdm11Wrtw2ro0LF+Lb2P0Dn3hi23Vq1YgRWOjxeTtxruasTz/F2iBhXElSKRaD3YxYycc45zSZwHZx8arDdiSAzwxX+XjO+SrGWA8Akxhj33POP/V4fSHnfJv1h3O+kDEWbbY557zZ/u2222487SxbxrmQcZz36yfuO+44dd9//8v5s8+q2yefrF574onq/n/+M9px7bGHem/517s355zzyZMnc/700/GPA5yfc456j61bOS8oEPcXFnJeW6seO/dc9ZrHH9c/+9e/Vo89+GD82M4/Xz3+wAPq/n32Ufe/91747zx3LuclJeo9Cgs5X7pUPf7736vHdt2V8w4d1O3ttuP8wAM579RJ3x9PPy1e29QknhO7v2LIEH2fGfs4FKecol4/fbr+2LHHqsdeeIHzRx5RtydOjH+vgQPjf9MDDvD+7DPPVM975BH9sZNPVo8984z/d9i4kfOXX+Z89Wr/5118sfZ5kydPjn/OW2+p5/ziF/7vlyxXXqk+4557on3v009X7/3oo6m/36pV9nN1wgTOObfvQ845P/549dwLLxTHcKpceKF6z4ceCv/6Sy+N3+9NTWqeATivrhb3v/qq/n2POy7451x/vXrdrbdyPmCAuk3nhBie+/DUU9XrSko4r68P820F//d/nO+4oziuKXQO/cc/1P3l5er+tm313+2BB9RjF19s/7yqKvWcggLOGxrCj1lCj2X5t3ix9amTJ0/mfPBg9bwZM8J9Fp2f//jHYK/p2VO95uyz1fZtt6nnfPmlup9qgj331K/TXlxxhXre3XeH+04hmTx5Mgcwk/voGgB7AXif3P49gN97PPdVAKf5vNfNAP7P5/EnAPwLwMTY3+MA/u03vrB/zl2eiFSyy2myxciRiBSbS4O6kLzikujr2rQRdSY7dRKZ2tR14heT6ZddDujxltRFTluvBY3JpIwYATz6qLp92WW6y+3CC5WF8ZtvlLu2Vy/hCv/wQ/Eb3nSTes1f/iKml4ULVTJLaSlWnHSSes7bb6vtMK5yyR13AKeeCtx1F7DnnvpjZvLPK6+o28cfH/9etv3t5x70i8sM6i6Xjx9/vD0pgBIkJjOVuL+gNCd3ec+edrell3tPQmPMHn9cNAOgMdAbNogs77vu8q9ZSknFXQ7Y3eWVlSoMpW1bVejcLGMUZk6Iwl0O6O7tPfeMzz4Owt13i2Pil7/U7/dyl5uucuoVCeIuN0ucES9TaGy1ij3c5QBSq5eZjIufurJpRrtXnUwZk7lpkwqHYkzvxOb3GbnhLp8BYChjbBBjrAjAKRBZ4BqMsY4A9gPwOrmvHWOsVG4DOBiARxsuAMAlAOYBuAzA5QDmA7g4ou8BwMVkJqZ9ezXxVFeLWDJzQrOJzNpaJaoYi+ZiRLFd7OnE6yUazAnkhhuE8LrxRu/3ChOTCdhFJu06VFycfBzRmWeKmm5PPw38+c/6Y4MGAQcfrN/XqRPw/vsqS5cxkaEuExTmzhXxnTSr/MADsXn0aHWbTjxhMsslgweLjiLXXhv/GBWZ336rB6ofe2z882372y+mMSqRGZQgIjNVIRN2HFGKzKYmXWSmUohdkpdnPx+8Mssl550n4owljz0m7lu/HvjDH8QC7JprgN//XojQIKSakGX2JAe85wsz/jKMyKSL4I0b9ZqsYWJ8DzlEbZ9wQvDXBSGoyKQEKcgeRdKPxEz+MVtKmuSiyLTFZH78sVpw7b67fd60fUYOiEzOeQOASwG8D2ABgJc45/MYYxczxqgAPBbAB5xzGj/VE8A0xtgcAF8BeJtzbpRM0T6rlnN+L+f8OM75sZzz+zjnPrWzwtOsYzIzAmPiAJUCyVb4l64k5UH+/feqbMXgwUrURIVttUlPpCCWTIktvtCvf3kyIpNaNIcOTZxZ6IffqvRXvxKiEhAWk7feircid+kCXHSRylr/y1/0NnKHHoraHj3EBG5O9MlYMv2gIvPFF9UxM26c/hgdu0lQS+bcucJqK3/vXBCZ6bJk0u8T5YXjp5+UVbB79+QWHTa22y6+9mAikVlYKBYvxcXAs8+K+556CnjuufgENtrOVcK5eP6PPwInnywER6pW5kQik54/nTqJPzm/hIkppb+vbMcJiESyMJa9PfcEPvlECPOjjw7+uiB4iUyzbzklSHZ5FEk/ElNkJvJURCUygyZ40VhqWuuZzjMdOghDUEODsJo/+qiw3ku8ssoluZddDs75OwDeMe571Lj9JIAnjfuWABiV6P0ZYy9xzk9ijH0HS7wn5zwy16uzZAbBdJkHcZdTV7lXqYhUiMqS6UWyJYwAcXGU1t+yMpHhl6qrPChHHy0slXvuKQSmV0mSK69UY/zkE72emrRu2DJN0ykyafC+zVUOhBeZffqo37K8XBd4QXuXhyFXRCZ1NdNjL1WidpVLbBfdRCITEMfwk0+K8kESW2tVW0Hwr74Czj1XVGfYZRdxMZbHRJhC7BTTXc65/3xx6KHif79+4Uq80eOVlvwKWr6Isu++ogd7Km5nG8lYMrt3VxUhNm+2d82K0pI5YIBeESLR9WHXXdV++v774F6ChobkznuvY5DOeYzp8/Ill+h1fM0wBpPW2Vry8tj/IyCSh8y/yHAiMwhmsXWznZ9cSQFCUNXWpl9kJhuTGTTLNhV3eWGhfoFcuDC5GpnJIPu9T5/ub/Hs3x847TR1W1oQd9hBWWNsAjWdIpNy3HH2+8O6yxmzu8w5T48lM0gJo0yITGoV+/57ZelKlah6lpvYShUlismU5OcLVzlt7bjDDnrssU1k0q5LgF46q2/f5LwNnTqp47G6WlgI/WK4//lPUb/2iy/ie9An+hwJFV2p1iyNEiogaWF1P5HJmH4s2Lo5RWnJZEy/PiUSmSUlaj7hHPg6YHOY1avVHNujh+458sNLZJpzns2j0KUL8MADiTs45Zi7PBNwzqU5/dec85/oH4Bf+702LE5kBoFOjCtWqJOlpESs+KVLXbJhQ/YtmSUlQuyZBLVkernLGxqUyGbMW8yaLvNka2Smk6uvjr9PWlaA7InM0aO9rVi2z090YbWJzMpKdRy3bRtdDddElkzOMyMyu3VT52RVlX/3FC9+8xvx+zz3nLovynaSFNOS2a5dOEtiXh7w8MMiVOTtt8X8Q0WnTWTS38Ek2d/FFEnLlvkvStu1E1b7sJ9H5ydaoiwZS2a66NlThab8/LMq4G/rW06h/bVJSaRtUCtdFDHN9PqUyF0OJOcyT1YYexlFzDmPnotdu4rmG8uWieTQRLRCkUmwxRIcFuUHOJEZBDox0m4cdELLNZFpE4B5ecFFkpcl0y8elWK2l8yUuzwMO+8c70qhInPkyPhY2qhFZvv28atyL1c5EN6SCejHnxSZ6bBimmOxufrKy1WB5JKS9IkCxuKtmWGYNw/429+EILjkEiWUMuUuHzw4VC1WAOL5Bx8MHH648Kx07648LBs3xmeYU+F9/fXigty+vXifc84J/RW2QV3miURmsngds7kkMgsLdZG0Zo3472fJBEQ8tsQUmU1NepOPKObS/fdX27vtlvj5VGSaDS28oMI4aDwmENySeffdwG9/C9x7rwjT+P3vda+KHx07KoNMZaUettRCYYxdEovH3IEx9i35Wwrg2yg/y4nMIAQRmVR8LFum4oQKC9NjuUvkLrfd7t49eNyRV0xmovJFEjr5LVggOplIcsWSCegZ38XFIj5LUlAQX3IoqkQPimnN9HKVA+FjMgE91k1etDIhMm2WTDOxJKyQCgMVmVQcBoFe3CsqRJIY5+lzl5sX3qCucj/y8nRLGU04AXRL5j77CNfi2rVCfJ53XvKfSy2ZS5emR2R26GA/dnLJXQ7Y4zJTEZmyAxkgBCxtU5ssJ58MPPKIOMbPOivx82nlDa/z6rrrxPNefVXcTtaSGSQmExDnz4MPilj7oOJSwpg+r7cOa+bzELGXb0CPxdyNc35GlB/kRGYQworMT0lx/R12sNfAS5X27eNbopliwVzVh+l6YloyZUxb0AsGFZmTJysrCnVj5gL77CMy0ktKgFtvjd+npss8aksmoF9odtzR30KWjCVz7Fj1vX78UVgVsiUyM1G+SEJFYFhL5pdf6rcfeEBYN+V36tjR7upMFjMGMkjSTxD8WhtSS6Z0V5eUpP69/NzlUZ0/eXl2QZlLlkxAX0CuWiXOPbrQsonMkSNVfOqyZXpWNe2INGFCNIu0vDwRWnHFFcGuVXRuX7xYhQFI5s0T5eXmzBEltt59N1p3eVFRdOE9khzMME8nnPNyzvkyzvmpsTjMrRBZ5u0ZYykG+uo4kRmEVERmOlzlgJhcTGumKUDMCTdoPCYgJjk50TU0iCB+IDmRSU/aXHGVSxgTJS8qKkRNQZNMiEw66fpZMYHkLJlFReKCJPn449wQmemKx5Sk4i43Y80qKkSxc8nw4dFaYQsLdUGSCZFpFvWOiky4ywH7cZvLlsyyMhGGIEXZ6NF2q1tRETBmjLpNFzxUZFKvSyZp316du/X1+jUR0MtlNTYKofnxx+q+VC2Z6fiNW2eGORhjRzLGFgFYCuATAMsAvBvlZziRGQQ6MdLVv5fIpBl36RKZQHxcZiJ3eRiRab5eipKgF4xu3ewXgVxylVO8MmnHjdPFRDrc5eedJy42ffuKZBM/khGZgJ5pb4rMKK0/7dqp/VVdDWb2jW8OIrOqSo+plnz2mdqO0lUuoS7yKNyggLfI3LJFxJ8BIvEryoVGJtzlgP24zTVLJt3/99yjmi3k5QF//7v362wuc851AwZdOGYaPy/BvHn67aoqPfEzTExm587xIV5hiu0HpfUm/9wOYByAhZzzQQAOBPCZ/0vC4URmEOjESEuheIlMemHNpshMxZJpvj6syGTMbrXMNUtmIjp2VKWODjooPa7+ffYRAaUgHgAAdipJREFUSQHLl9vdZxSbGAgy6fqJzCgFBmOadSZfWsAlmRSZAwcq99+qVd4llUxmzdJLWtmKhEfdwQsAfvc7cc4dcIB/+a0weIlM04oZpVXWdJfLVn9A+i2ZuSwyqcv4uut0IWliE5lLlqi42g4dom9VHAa/BZwpMk3CWDLz8uIX9umwZLZekVnPOd8AII8xlsc5nwxgdJQf4ERmELwmRi+RSbH1ho0KUzTmkiUTsAvKXLVk+vH002LipK0no6akJFhdwuJiPeOdMf82cJJdd1XH66pVekJBlCIT0ERvVkVmQYFuEaTWFD+oq3yvvfR6k5J0iMwjjhCC7KOPkuuhbYO6wakXJp2/Q8eO6piqqRFxwJLW7C6XjBoF/PGP/q+jCYczZohFD3WVjx8fffH4MPgl1VEvwKOP6vVP27YN7w0yXebOkhklmxlj7QF8CuA5xtgDACzdHJLHicwgeE2MdEKzicySEnuR5aiglkxbrcNUEn8Ae61Mml2eKD6xJVgyASH+hg/P7qROocdjaWkwcZqfD0ycqG6/QzqWpVFkFmRTZALJucypyNxzT+Ckk+KtmelwlwOZ6zpDBWeU8ZgSOu/V1ant1uwuB0Ts7dNPJ06w6d9fJWBVVoqqBrniKge83eVVVSJEAhDH8jnnAC+8oOYoM/woCKbITMdC4uSTRY3ZWbOA//u/6N8/dzkaQDWAKwG8B+BHuI4/WcBLTCWyZI4YkVqP7kRQy6RNKKRqyUzFXQ7EC8q8vGhKs7R26H4PM+FSFywVf+m0ZMqamJJUe2OHJZkyRjTRYo89xMXyD39Q95WUpN5pJVMEcZen43ewLa7btImv3pAKzdGSeeutwdzcjMW7zHMh6Ufi1VGLnmNDhwrDx9FHC4F8ww2iw1NYTONIOiyZQ4eKGrO77pqe5M4chDGWD+B1znkT57yBc/4U5/zBmPs8MpzIDEKHDnaxmEhkpjMeE9AtmUHik7LtLh84MPrSE62RZEXmgQfa78+UJXPLFlWgvU2bzEzmYS2Za9eqwtFt2qhwl5NPVkWrL7kkvYvHKMmWJZNmmEuijmduDjGZPXoosXjggfYuY15Qkfn666JcECDmUNoVKBv06qXO8/JyVWaJuspHjFDb48cDt9+eXNWETFgyWyGc80YA1YyxtO7QiAJ/Wjh5eWJC22AI/GyLTBrfaLMQRhmTKd3ltGZboovG9tuLfdfUJG43R1d5LkL3e5hV/U47iWOA/oZA9CKTJv5QS6ZpPUtnIXZJWJFJO5iMGaM6geTnA5MmiXitIK33coVOnYRYrqkRbteKCvH7ZMOSGbXItAnKXBMgjIlEu9mzRTedMOEQNC7z7bf1+7O9WJcdtWRoyYIF4rygST9UZKZCJmIyWy81AL5jjE0CsG2y5pwH6McZjGayHM8BbBOkV1tJSbpF5vDhwF13iYSB226Lf9ychMP0QgbiLZlz54rJEhCTjM1aQSku1p/jRGY0JGvJZMyetZwpS2am4zGBxIWjTWg8Jm2fBwiB0JwEJiB+c5s1M5MxmZLWaMkERLz8XnuFb8oxdqzdYp5tV7nEFpeZjnbKprs81xYSzZu3AfwBIvHna/IXGU5kBiWRyDSzfoH0ZpZLrr0WePNNe5wPHV/nzuEnOTMm85571O1jjw12waUX+eaYWZ6LJGvJBOwu80zFZGZDZMr6o4AQmDIpwQszHrMlQEWmFJfp/i2y4S4vLtYzmZs77drZ5/VsJ/1IbF4CZ8lsVsTiMOP+ovwMJzKDkkhkArrLvEuX7Fs9Bg8WLmsAOPzw8K+nk/i8ecDzz6vbQTPwzoi1QW3fXgSAO1InWUsmkHFLZr5sJwpkR2QCwV3mnPtbMpsrZmvDmhpVuzI/P3wYTRBsBbfT7S5viRYu6jIHhGVzr72yMxYTM6luyxaV2FdYGF1DAReTmTYYY0sZY0vMvyg/w4nMoATptEJF5s47ZybmzI/8fHHRfO894F//Cv96Kj5mzVKuxvHjg090p54q3JQrViQuNO4IxkEHqe2wRbsHDdJdmcXFwp0XJdRdnm1LJhC8h/nixSr2uGvX6Fo7ZhvTXU4TgHr3Tk9prtLS+Dj1dFsyc9FVnipmwfYxY+ytKLOBuXijVswddlDxzKni3OXpZCyA3WN/EwA8CODZKD/AicygmBOkrS6lKTJzgc6dgUMOSS5Q3MvCFSZDEhBJSS3xApAtxowRsbGffCJqOIaFuszT8bt4FWPPdPkiSdAyRqarPNuLxKgwRSaNx0zn72C6zKOuJmDOTy1RfJgiM1dc5YCY12XTgBUrdC9AVK5ywLnL0wjnfAP5W8k5vx9ARO3GBE5kBsUUmbaLM11x5YrITAXbdxw2DDgy0lqtjmQYNUokACQjhKj1M2pXOaBZWjwtmf37R/+5XgR1l7dEVzkQLzLNlpLpwkz+Sbe7vCUuZIcN079XriT9AMJSKcOxAOCVV9R2lCLT7F/eEhcTWYIxNob8jWWMXQwgUlO5E5lBCSIyzz1XFBvu31/U1Wvu2ATI737XfGoEOuwceqiyDsjaj1HiZcnMlZhMWTjaxOz001IwE38y9TukW2QWFenF3VuiyMzLU9eSXr2i62kfFfTcosXiozSy5OXpccNRH0etm7+Svz8B2A1AEu4xb5xaCEoQkXnQQcCaNSKDtSWcCO3b6yvIHj2As87K3ngc0dClixBUr70G3H9/9O9vi8msrFTxjkVF4fsXp0KfPqq/++bNwM8/xz+nthb45ht1e/fdMzK0jODnLk+nJdN0l6djTqQL4ZZq4XrwQeDdd4Gvv849VzEVmXTxFqUlEwAuv1xci044Ib3HbI7AGDuUMfYDY2wxY+w6y+NXM8Zmx/7mMsYaGWNdgryWwjnfn/z9gnN+Ief8hyi/iyvGHpQgIhPInaDsKGBMTOIyE/W3v21ZJUJaMwMH2msZRoHNkmkKm0xaw2Xh6Jkzxe3vv4/PqJ47V/XYHjw4syI43ZgiM1Oxsem2ZAJiHpbHVku0ZAJiUXboodkehR2aVCcpLo6+ffA11wC//rVaLLZgYu0eHwHwCwBlAGYwxt7gnM+Xz+Gc3w3g7tjzjwRwJed8Y5DXxl5zld8YOOf3RvV9nCUzKOYE2VJXzSYy8LxbN9FOz+FIhK0Ye7Zc5ZJEcZnzyRw8enTah5NR2rdXv0ldHfDdd+qx5hyTCbQOS2YuQ88ryU47padiQSsQmDH2ALCYc76Ec14H4AUAfvX/TgXwn5CvLY39jQVwCYC+sb+LAQyP5FvEcJbMoAS1ZLY0nn0W+N//gH32yUyvaUfzx2bJzFZmuSSMyBwe6RybG/TpI+oYAsCiRer+5m7JpCKztczJuYSti1vUrvLWR18AZMJEGQBrkDhjrATAoQAuDfNazvktsdd/AGAM57widvtmAP9Nbfg6zVpkVlVVYcqUKRn5rMLycownt3/asgVLM/TZYamsrIx2vwweHF9fr4UT+T5sRbD6euwX286vqsKUyZOx3dSpkBF6y5uasCTD+7ZbQwNkKsLGqVPxrfH5O3/6KaSDfD6An3Pot4/iWBzVti1sdQQ+XbwYTcuXp/Tefuyy557o+uWX2LTrrpgjwxUiZGheHqQtdu7mzVjvsZ/c+Zw6Xvtwr27dUCxDqgAsadsWy92+tlJZWQkA3Rhj9GR4jHP+GLltKxnika2IIwF8xjnfmMRrAWAAgDpyuw7AQJ/nh6ZZi8x27dph4sSJmfmwhgbt5nYjR2K7TH12SKZMmZK5/dJCcfswRYqLgdpa5DU1YeIee2jdogaMH48Bmd63ffsCN98MAOiyfDkm7refXv6JJAMNP+EEDB81KrPj8yGSY3HECD2xCQC6dcO+Bx+c2vsm4pNPgBkz0Hn33TExmVq9iejbVyRz9euHna+91rMAuDufU8dzH44cCXz88babg486CoPdvrYSE+nrOedjfZ5WBoDWeOsHwMvCcwqUqzzsawHgGQBfMcZehRCjxwKItK1ksxaZGaWgQMT8lJeL284143B406EDsG6d2O7YEWhsVI9lw10+ZIjoBV1VJca1Zo3odgMAW7cCS2Kd1PLyRG3Cloat21YmfofiYhFqky6GDgWc1Sy77LijJjKduzxlZgAYyhgbBGAlhJA8zXwSY6wjgP0AnBH2tRLO+R2MsXchuv0AwLmc82+8np8MTmSGoUsXJzIdjiB06qREJhWYQHZEXF6esLh88YW4PWeOEpkLFwJNTWJ78ODo22zmArYEn1ZQCsaRAWi8c0lJ+qpWtBI45w2MsUsBvA8gH8ATnPN5sULp4Jw/GnvqsQA+4JxXJXptgs+bBWBWGr4KAJddHg6a+OJEpsPhzRln6LfbtRMXn5tuyp6lg7rA58xR2y096QfIniXT0fKh5/OIEa5ZRwRwzt/hnA/jnA/hnN8Ru+9RIjDBOX+Sc35KkNdmE3c0hGF8LPWnuBjYddfsjsXhyGX+8AegrAyfv/SScEdXVoomBbfckr0xOZGp4yyZjijYbz/gkENEWMz112d7NI4cw7nLw3D77eJCNWqU3qfc4XDoMAb07Yu67t1zp4C/E5k6zpLpiIL8fOC990RYTDrqYzqaNU5khqF9e9Gf3OFwND922UWIX85FrcytW0X8ZWsQmTL+lOIsmY4ocQLTYcG5yx0OR+ugfXvV7q6pCZg3T3TAocXJbR1MWgLFxfHNFJwl0+FwpBknMh0OR+uBtoycM0cITJn9PnCgSFBqqZiWS2fJdDgcacaJTIfD0Xow4zJbg6tcQuMyaT9zh8PhSBMuJtPhcLQeTJFJXcitSWT266d3PHI4HI404ESmw+FoPZgis2dPdbs1iUznKnc4HBnAucsdDkfroX9/1UihvBz46CP1WEsXmQMG2LcdDocjTTiR6XA4Wg+M6dbMjRvVdkvNLJeceKL4jt27A5dcku3ROByOVoBzlzscjtbF6NHAJ5/o9/XtKzqWtGQ6dRKJTo2NQIGb+h0OR/pxlkyHw9G6oJZMSUt3lUsYcwLT4XBkDCcyHQ5H66I1i0yHw+HIIE5kOhyO1sXw4fEt8JzIdDgcjshxItPhcLQu2rSJT/JxItPhcDgix4lMh8PR+jBd5jvtlJ1xOBwORwvGiUyHw9H6oD3Me/bUO/84HA6HIxKcyHQ4HK2PsWPVNhWcDofD4YgMV8vC4XC0PiZOFAXJZ84Ebr0126NxOByOFokTmQ6Ho/XBGPC3v2V7FA6Hw9Gice5yh8PhcDgcDkfkpE1kMsb6M8YmM8YWMMbmMcYuj91/N2Pse8bYt4yxVxljnchrfs8YW8wY+4Exdki6xuZwOBwOh8PhSC/ptGQ2APgd53wnAOMA/IYxNhzAJAA7c85HAlgI4PcAEHvsFAAjABwK4G+MsXzrOzscDofD4XA4cpq0xWRyzlcDWB3brmCMLQDQl3P+AXnadAAnxLaPBvAC57wWwFLG2GIAewD4wuszli1bhrE0S9QBAKiqqkK7du2yPYxmjduH0eD2Y+q4fZg6bh+mjtuHqVNVVQUAY7I9jkySkcQfxthAALsC+NJ46DwAL8a2+0KITklZ7D7zvS4CcBEA9OzZE/fcc0/Uw232VFZWon379tkeRrPG7cNocPsxddw+TB23D1PH7cPUqaysxJFHHjkr2+PIJGkXmYyx9gD+B+AKzvkWcv8NEC715+RdlpfzuDs4fwzAYwAwduxYPnHixKiH3OyZMmUK3H5JDbcPo8Htx9Rx+zB13D5MHbcPU2fKlCnZHkLGSavIZIwVQgjM5zjnr5D7zwZwBIADOedSSJYB6E9e3g/AqnSOz+FwOBwOh8ORHtKZXc4A/AvAAs75veT+QwFcC+Aoznk1eckbAE5hjBUzxgYBGArgq3SNz+FoUVRVAatXZ3sUDofD4XBsI52WzPEAzgTwHWNsduy+6wE8CKAYwCShQzGdc34x53weY+wlAPMh3Oi/4Zw3pnF8DkfLYO1aYMcdgS1bgNdeA448MtsjcjgcWaS+vh5lZWWoqamJ7D07duyIBQsWRPZ+LZ02bdqgX79+KCwszPZQsko6s8unwR5n+Y7Pa+4AcEe6xuRwtEjeeQfYvFlsv/CCE5kORyunrKwMpaWlGDhwIGLGnJSpqKhAaWlpJO/V0uGcY8OGDSgrK8OgQYOyPZys4jr+OBzNnfJytb1pU/bG4XA4coKamhp07do1MoHpCAdjDF27do3UktxccSLT4WjuVFSo7fXrszcOh8ORMziBmV3c/hc4kelwNHfmzVPbP/6YvXE4HA6Hw0FwItPhaO5Mm6a2N27M3jgcDocjBG+88QbuuuuujHzWsmXL8Pzzz2+7PXPmTFx22WW+r3n00Ufx9NNPAwCefPJJrFrlqiqGJSMdfxwORxqhrd7y3LrR4XA0D4466igcddRRGfksKTJPO+00AMDYsWMTtqW++OKLt20/+eST2HnnndGnT5+0jrOl4a5IDkdLoqkJqK3N9igcDkcrZtmyZdhxxx1xwQUXYOedd8bpp5+ODz/8EOPHj8fQoUPx1VeiBPaTTz6JSy+9FABwzjnn4LLLLsPee++NwYMH4+WXX074Obfeeit233137Lzzzrjooosge7ssXrwYBx10EEaNGoUxY8bgxx9/xHXXXYepU6di9OjRuO+++zBlyhQcccQRaGpqwsCBA7FZVugAsP3222Pt2rW4+eabcc899+Dll1/GzJkzcfrpp2P06NF4++23ceyxx257/qRJk3DcccdFuAdbDk5kOhzNna1b9ds029zhcLRuGIvkr7RDh/j7fVi8eDEuv/xyfPvtt/j+++/x/PPPY9q0abjnnntw5513Wl+zevVqTJs2DW+99Rauu+66bfePHj3a+vxLL70UM2bMwNy5c7F161a89dZbAIDTTz8dv/nNbzBnzhx8/vnn6N27N+666y5MmDABs2fPxpVXXrntPfLy8nD00Ufj1VdfBQB8+eWXGDhwIHr27LntOSeccALGjh2L5557DrNnz8bhhx+OBQsWYN26dQCAf//73zj33HMT/xatECcyHY7mjikyyYrc4XA4ssGgQYOwyy67IC8vDyNGjMCBBx4Ixhh22WUXLFu2zPqaY445Bnl5eRg+fDjWrl277f7Zs2dbnz958mTsueee2GWXXfDxxx9j3rx5qKiowMqVK7dZGtu0aYOSkhLfsZ588sl48cUXAQAvvPACTj75ZN/nM8Zw5pln4tlnn8XmzZvxxRdf4LDDDvN9TWvFxWQ6HM0d0z3uRKbD4cgyxcXF27bz8vK23c7Ly0NDQ0PC10jXtxc1NTX49a9/jZkzZ6J///64+eabUVNTk/B1Nvbaay8sXrwY69atw2uvvYYbb7wx4WvOPfdcHHnkkWjTpg1OPPFEFBQ4OWXDWTIdjuZOXZ1+u6wsO+NwOBy5B+eR/FVs2RJ/fxaRhc67deuGysrKbTGcHTp0QL9+/fDaa68BAGpra1FdXY3S0lJU0JrCBMYYjj32WFx11VXYaaed0LVr17jnmK/v06cP+vTpg9tvvx3nnHNOtF+uBeFEpsMRNWvXArfdBnzwQWY+z7QKuDIbDoejBWGLyezUqRMuvPBC7LLLLjjmmGOw++67b3vsmWeewYMPPoiRI0di7733xpo1azBy5EgUFBRg1KhRuO++++Le7+STT8azzz7r6So/55xzcPHFF2P06NHYGgtROv3009G/f38MHz48mi/aAmHJmJZzhbFjx/KZM2dmexg5x5QpUzBx4sRsD6NZk9I+POss4JlngMJCYMkSoF+/SMemwXl82aIbbgBuvz19nxkCdyymjtuHqdPa9uGCBQuw0047Rfqernd5PJdeeil23XVXnH/++dbHzd9hypQp2H///b/mnPvXTmpBOEtmLtHQAFx+OXD66cDPP2d7NI5k+fJL8b++HpgzJ72fZeuNG8t4dDgcDkd62G233fDtt9/ijDPOyPZQchoXqZpLvPIK8OCDYrt/fyBDnRAcEbN6tdpOt+vaFmPk+pc7HA5HWvn666+zPYRmgbNk5hJz56rtb79Nz2fccgvQpw/w6KPpef/WTlWVLvxWrkzv59lEZmtsLblpEzBuHDBihOvf7nA4HDmCE5m5xNKlanvBgujfv6JCJKSsXg1cd13WswNbJNSKCQCffprez6usjL+vNRZjf/ppEaYwfz7w0EPZHo3D4XA44ERmbvHZZ2r7p59Ei8AoWbcOaGwU2+XlLu4zHZgiMxvu8i1b0vuZucgPP6jt+fOzNw6Hw+FwbMOJzFyCChLOoxcoGzbot5csifb9HWJxQDH3edRQ67ekqir19123Dnj7baC6OvX3ygT0WKaC09GyaGwEpkwBPDrGOByO3MKJzFyBc5GNTIlaBJqxeulwybd2zGBwj+K/kbFmTfx9ZpvJsNTXA/vuCxxxBHDKKam9V6b4/nu1vXx56vvAkZvcfz+w//7Ajjvaj32Hg7Bq1SqccMIJAERrynfeeSfLI2p9OJGZK2zaFO8eX7gw2s8wrWouOy56TEtmbW384iFKbEk+trJGYfjiCyXa3n03vqNQrtHYKIQlZfHi7IzFkV7eflv8r60Fpk7N7lgcOU+fPn22dQJyIjM7eIpMxthVAf5+lcnBtmhsrQCjrrFoikxnyYweWzb52rXp+zybyDSLs4flvffUdkND7gu2Vavik9icy7xlQkOIWmOCWytll112webNm8E5R9euXfH0008DAM4880x8+OGHWLZsGSZMmIAxY8ZgzJgx+PzzzwEAy5Ytw84774y6ujrcdNNNePHFFzF69Gi8+OKL2fw6rQq/q9HVANoDKPX5+126B9hqWLEi/r6oExhMAWRa3ZJhwQLg5JOFG8thL4QexX72YvPm+Pu2bk3N+miu9nN9MWILK3Eis2VCRWZrTHBLlptvBhgL9nfRRfGvv+gilHbooJ5z880ZHf748ePx2WefYd68eRg8eDCmTp4M/Pgjpn/2GcaNG4cePXpg0qRJmDVrFl588UVcdtll2uuLiopw66234uSTT8bs2bM9W0c6osevGPsznPNb/V7MGGsX8XhaLzaRGXXSiOxEI4nCwnbNNcBbbwEvvQQcfDDQ2nu42kTfggXA+PHp+TyvC215OdC9e/j3W7Mm3oL+7bfA8ceHf69M4URm66CiQo9xdpbMVsOECRPw6aefYrvttsMll1yCxx58ECt/+AFdSkrQvrAQ5TU1uPTSSzF79mzk5+djYdShZo6k8bRkcs6vSfTiIM9xBMQmMqN2s5qu1aoqEduUCjSuc9681N6rJWCrW5nOCc9LZNrEbhA++CD+vq++Su69MoXN4r9oUebH4UgvZnmwbCT+cA6cey4wZAgwaVLmP78Fc8MNN2D06NEYPXp03GP77rsvpk6diqlTp2LixIno3rEjXv7oI0wYPRrYuhX33XcfevbsiTlz5mDmzJmoy/U48lZEwuAtxlgxY+w0xtj1jLGb5F8mBteqsInMNWuiLSFjW/mn4sqtqNAnftt3aE3U1dmTfNJZKsqrXFGyXX9oPKYkV9zlFRX2RRHtlCVxloyWhxm3no3yWtOnA08+Kc7pG2/M/Ocny803C4Ec5O+xx+Jf/9hjqNiyRT0nDe7yO+64A7Nnz8bs2bPjHuvfvz/Wr1+PRYsWYfDAgdhn5Ejc8+yzmLDrrkBtLcrLy9G7d2/k5eXhmWeeQaOsB00oLS1FRbqrfTjiCJIh8DqAowE0AKgif44o8RJotjqIyWKzsqVi8TEv5K29CLaXZcWW1BUVXiIzmcVDY6PIJjdZuTL6xgBhmTED6N0b6NUr/pywtZHcuNH1cG9p0DJVADBzZubHQL01c+aIxDiHlcMPPxyrYjG0N910E9544w0AwBtvvIGbbgpvp9pzzz0xbNgwoL4eE0aPxsp167DPqFFAdTV+/etf46mnnsK4ceOwcOFCtGsXH8m3//77Y/78+S7xJ8P4xWRK+nHOD037SFo733yjtrt0UZaoJUtEP+YosNUOnDkT+OUvk3s/U2RmY9LPJbwWCiUl6ftMr3qQpmsxCF9/bXezNzQI0TpoUPj3jIonnlCC+l//Am6/XT1GxX2bNqqE08KFQLdumRtj1HAOfPop2toqFrRGzAVxNqxS1KpfWytif6Oan1sYtFzQrbeq9I6jjjoKRx11VOj3e+aZZ8RGZSX2HjUKTTKMp7oaQ0eMwLfffrvtuX/6058AAAMHDsTcmKejS5cumDFjRujPdaRGEEvm54yxXcK+MWOsP2NsMmNsAWNsHmPs8tj9XRhjkxhji2L/O5PX/J4xtpgx9gNj7JCwn9ls4VyfMGkJmu++i+5zgroag2KObdOm5N+rJUAtLfQ3TGf7Ti+RmUy8GnWVDxmiP5Ztlzndt3QxU1Wlzp38fKCArJube/LPvfcCEydi7Hnn6S1nWyumBTsbBffN38Hi2nWkGfM6ls46xI6U8auT+R1j7FsA+wCYFRN+35L7E9EA4Hec850AjAPwG8bYcADXAfiIcz4UwEex24g9dgqAEQAOBfA3xlh+Kl+u2bB+ve6OpG6+b4Ps6gA0Nqq+5ZRUaiCabsp0t1DMdaiLun17tZ3O/uUdO6rttm3Vtq2UUiKoyLz9duBXpAxutkUmzXj/7DNVF5MKj4ED9QsQ9Q40Rz78EACQX1cnOi9lw/3/2WdC7ObCuW2GndiaDtTVCUv3VVdpfz0/+CCakA8zvtpZxjKP+bs3NGQ/nMfhiZ+7/IhU3phzvhrA6th2BWNsAYC+EPGdE2NPewrAFADXxu5/gXNeC2ApY2wxgD0AfJHKOJoFppt1yBAl4KLKkvWyMqZiDTBFZlWVWFUWFib/ni2F888HHnpITICbNon9TEVgVNCYMBqvGFaQbNyoSlwxBvziF3p1g2yKzNpa/fitrBSCfuBA/aI/ZIi42Mh90NytTDQcpawMOPts4M03Uy+2H5S1a4EDDxT7f/ZsIFYAO2uYHgGbBeuJJ4BLLom7eycAGDMGiLUYTIqGhnixHSv6nYtwzsEYy/YwosfmkaurE6EyOQQ3G0S0UvxE5pUAPgPwOec8paAgxthAALsC+BJAz5gABed8NWOsR+xpfQFMJy8ri91nvtdFAC4CgJ49e2LKlCmpDC2j5G/dikGPPw6en48lF14IXlQEAOg2ZQp2jj2HA/h5u+3QMybg6pYswechv2NlZWXcfmm7bBn2tDy3oawM0yZPFsIiDJxjn/nz4w6gL/73P9T26hXuvXIQ2z5MxLBZs9Antr2wqQkDunRBm9iFcfqrr6Kmj3i0aP16DPrXv1DTuzd+OvPM8PueMH7TJkhJv6WwEB1i25uXLsXsEOPvPnkyRsSsAVt23BGzvvsOnevrMSr2ePn06fgmiXMtmf1oUrJ8OfYw7pv31FNYt99+6PfBB9g+dt+q4mIU9+iBrjGRWTtvHr5oRvODyYSVK6G5ct55Bz9ecglWnHpqRj6/88yZGBW7oNe+807W9+U+69dr8w1vaMAnxph2eP119PZ4/cpnn8WiFGJ0265ciT0Ni1nDd98lN3+mmfbt26OsrAwdO3aMTGg2NjbmRHZ2261b46471Zs3o9GS7JMtOOcoLy9HVVWVNv9V2pJvWzh+InMxgGMB3B07SD9HTHQCmMM5D2SfZoy1B/A/AFdwzrf4HPC2B+KWApzzxwA8BgBjx47lEydODDKM3ODee4FXXwUA9N9vP+DSS8X95CBk7dqh52GHAR9/DAAoqqjAxP32CzWJTZkyBXH7hXZxyc8HiouB6moUVFVh4qhRItkoDKtXW62ge/Xvn77C4xnEug8Tcc892zaH7bsv8I9/bLs9rnt3QL7fRRdtc00POuEE4PDDkxsk59pv0GHw4G3Wr06MhRs/sVJ1OOkk8drttweuvhoA0HHVqtDHIZDkfjR58824u0Zs3iz257PPbruvz+67C2tTzCJbXF6OiRMmiOO9OWIJbxnyr39hyFlnZeYcI/3gizdswMRddgG6dk3/59rgPM6CxTjHxL33BmKLdQB657FzzxWPxc7DvlVV6JvKsWjpe11QU4OJw4YBfePsIVmlvr4eZWVlWBlh0lhNTQ3a5IK1cPXq+Kz+piagtDQ74/GgTZs2GDVqFAqJZ685GcWiwlNkcs4fBvAwADDGegMYD2BvCAtnD2Cb0cQTxlghhMB8jnP+SuzutYyx3jErZm8A0gdSBqA/eXk/AGkMZssCs2ap7Y8+UiKTJih07QrsvLO63dgo3FapWgdptnFxMTB4sEr6WbIkvMj0qkO4ZEmLEJlJQfdxnz66W3PePOGCBoBPPlH3f/xx8iKzpkYJkaIioEcP9VgYiwPnomuT5KWXgJtuEu9dWCjckps2CXdlz57JjTUVbLGV0rVPH3vtNTFuSWOjCEUZODCdo0sP9fX28jiNjSI+c86c8OdsWOhxCoj5Yr/90vuZXmzaZI+7Mztb0fqwZ54JdOigFntmJ6uweCWSzZ6dcyKzsLAQg5KtBrF5s+jwtWkT8NRTwC4i73fKlCnYddddoxtksuy9d3wVjCuuAO67LxujcSTAN7iHCUZCxEseDWA/CAvnXxO9MRMmy38BWMA5v5c89AaAs2PbZ0PU4ZT3nxIr/j4IwFAAOd5qJCQ0yeaLL1TywrJl6v5eveIze6Mo5k3jJH/5SyEyU3l/r6z3KLr+1NdnJ3M0Vejv2LmznpQjf/vycl2gpxLTRV0vjY36St6rfqaNpUv1RKH+/YVArqnR494S1UFNVy9pW2zl/PlCdNBkkB13BHbaSX9ec80wJ2KpybTElpUBpCRM2jDjD7OZSOWVPGc2HaDz0uzZevWMdeuCFXCvr7c/z2thbXbE4jz7LS8rK5Ov4fnyy2Lx+803wDHHZO67BO1SZktgdd3mcha/7PJJEDGSvwFQC+BOzvlunPNDOee3BHjv8QDOBHAAY2x27O9wAHcB+AVjbBGAX8Rug3M+D8BLAOYDeA/AbzjnlqOpGUNF5tq1KkGBWsAGDgS2205/XRQXSjoZ9+qln9DJmPC9Wg0m285Q8uOPYnx9+kRbvindNDbq+3jtWr1Go/ytqTUbENmpybb2pPu6sREYMEDdDtMNxUw8k5bVIUN0ayxtIWpy661Ap07AsceqxVNU2JLfysvF+USF0OjRYvFEx5yq9SpbkO9V07OnbqUGgIcfTn9XI1PATZuW3s/zw0tkmvVg6eK0Y0dg+HD98UTVNMrLgR12EItEs/sVLZ1VXKy2p05V242N4vzp1Am47Tb/z0oX770nPGKDBydXkYAulpcsAS64IPpz2uTCC8U+P/dc/+dVVtq9NM29kkQLxs+SuQQiJnJo7G97xljgqGnO+TTOOeOcj+Scj479vcM538A5P5BzPjT2fyN5zR2c8yGc8x0455bWI82YTZu8MxPpZD5smHB9diDRCFGcQPSzu3bVrU7JZA5TC0FvEmqfak3Iv/9d7I/Nm0WmaHPBLBk0cKC+X+RF0ix50tAQLzyDQrO/8/KEMJeE6d1LLyoAcNhh4n9Bge4e/8Kj0APnwlXFuXBZR903nF4o6Xnx1lu6VWPkSDFmKsiy2Xe9rg749NNwVmUJOV/rO3eOz+xubASuuSbFASbAjL+LqpxaMgQVmdTy3r+/EIyURHPd22+LBWFdHXD33fpjdLFPF4b0eP/4YyVOH3rI/7PSxe23i/GvWKHFLAfGFOIvvwz87W/RjM3G5s3AP/8ptp980r+pB/29aaLPxo12C6cj63iKTM75rzjn4wAcA1FmaDcAzzLGvmaMPZWZ4bUgbK3vJk0SLj/q9pTxmFSgRFE+horMLl1EUockmRaE9DW7kFr9qfYvp0ImlRqemcas4derl25ZlCLUVlTbS7wlgorMggLgENK/IEyZG2rtKy0Fhg5Vt4cNU9teLqlNm3SrapSlg+rrdQF/4YVq+6WX9OfKY5qGm2Sz9NJZZ4kYxr33Dl/Hj1opm5rEb3vVVfpzXn8dmDw59XF6YS5Uli9Pv0XLC68EFhoGVFur7+e+fcWihHbcSrTooPPXtGlKTJoWtPvuUwllZWXqsafIpXHdusyH/axerYfgJOOlsp2/V12F9ukKPTG9DX/1icajiw0aa22GzjhyhiBXoloA1QC2xrb7ARiTzkG1SGxWgE8/FZY/OXG3by/q0gF6Cz/T0pQMNO6ybVs9uShs4W6ZCCLZf3+1nYrIrK3VLX2pdCPKNLQjTWGhsEZTgSbjmmTCCiXZuExq4SsoEO55eeHbujW4NZMugHr21DPIx45V216TuBnTG6Xr6qeflIWib19dANN9yZgKMxk1St2fzkL4ftTWAv/7n9j+9tvw5zC5oLeV1ps77oi3zF11VfosOOa8UFsbfwzMnSsyupNpYxoGr9+RWonNWsAyE54m5SQKn6DJTnV1SpSa1vndd9fjf7/9Vpzj8jeXZLol6Ouv6wuBTz4Jv8Cxudjr6jDi1lvTE59phuG89JJW2UCDGjfMhL4wHpTGRmE9feWV7C2cWgl+MZn3Mca+hCiofiuAUgD/ALAD5zx0m8lWj60zxLJluqVl8GAVx3f88er+KGprUcE2Z46YJOn7hwkSX7pUPzEnTlSWs7Vrk48x/OYb3d1FBUauQy1P0o1D48Gqq8XkTa2PEpoEFgZqnS4uFkKrUyd1X9ALAl0YUJc7AOyzj9quqrK/pykyP/002OcGgVqzt9/eWyR07KhaSl5xhRLK5eXZSSKbP18/p8Iuvohoa5SWuDZtRDebffdVMYGzZwOyp3PU2MQGnUcqKsSi+MorgTPOSM8YJFR00GxyGvZjjrdzrGMxXewl8o6YXp2PPhL/6SISEGJ/9Gh1e/Zs4L//je9Gk6pnJyymyN28OXyYg0c8d9tVq/ytjMlizhdNTcADD9ifSxeW8+bpbWTDLG6vu054RY4/Pr6KgiNS/CyZSyGSfrpzzg/gnN8Yi6ncnJmhNQPKykTNQ1qbzQuvzNxXXlHb/UkFp7PO0oWbrYVaGOiKv3dvYMQI/fEwk6HpNu3SRXdbJbt6Ny16nDcfFwhtb2i7uDU1xbuuZMzbqlXeK3c/aCyvfC8qMoMmYdE4WjPpjFoFAbv72UzQijLT0xSZBxxgfx61Vg0dqqoncJ6dsAvT5RhWbBArYgNtUTp+vLgoXneduu/665OL+/SjqcneSpJ+r48/VsfOtGnptQhRa5fXQorOO3l5qn4mLbuzerX/OE3r/9tvx39+mzbCGGCKzCefjH+/qOOT/di4cVt9ZY0wLvOaGrUoy8uLL5Nl88Skis09/9hj9gUt9Qi0a6cvOGhs++rVQkTef3+8JXfRIv2anc247VaAn8icBqAJwCjG2BjzL0Pjy21uuw14/HGxkred3BQvd9l//6u2qcgsKlK3OU8ubpJCrTn9+wP9+ulu0TDCgMYQlpaKRAtqvUx29W6LTWwucZlUDMuJr18//TmxQvzboK7oZFzmNpFJg+GDZpZSN6Ppjt1uO72Yue0is2aNfru8PPUEMAk9JvLygD3M3j8xaIwxoAv8dGdh2zCTucJak8hvV0+TnSRXX63itlev1ueRKNi82e5FoBY9Wpy8ri4+Gz1KqOCg1nZ6jNOFGs3+pl6bujr/PuxmGa7Zs8XcRq1kckFDq0f873/2eOtMltZ58027azxM3K5Z6/ftt/V9GXXFD5mgZFJZqZKBKHQh0aeP7jKnMaMXXSRef+WVogkK5dprdS9DpkMaWhl+InMmRG/xe2J/fyV/9/i8rvVAD+rXX/d+HuB90aXuUyoygdRrWVKoG1oKB2ohsbnzvTAnXOqqBJJLtuDcLrRMN1Uu8PLLwhJ8C6nkRX9HefFv21bfL7RzTZcuIhtaQsugmKxZI9yS++2nx6bRC68Ul/SYDHLMNDTo7jEaqwsIYUczzG2/kW0BFVXpIOqenT9fnCP0uJXQfQnoIjMbtTLNBVNYixaxQtdRy52kXTtRWkYS9Xf0mq+kyOA8fs5Ll9ehsVE/RumCmwo7em7QzPgdd9Tfz29fmaFJDQ1ibqSLXbkQo9/XjAeVBFkkP/+8mE9MMRQW6hWjTJ4cPC7TFHHjxgE33qjuizom8/vvvcd2//3x/elpnPDAgbpHTorVlSv1BdB116l565NP4hf72YrbbiX4iczfASiHSPj5N4AjOef7x/48fFYtjK1bxUQyZ078wQ7oK3ezphqlokJ3d5txbxLTrUFFZioWvbo6/USWLlEqHugKNVEMKB3LTjsJiygtPJ6oaLeNFSvsJ3uy5X3SyTXXiO94881KTFHrCF1dH3SQ2qbZqbvvrotOGftl47LLhKX8009FTJ6EWl2kyKRWB9PCaMMsg0SPOQlNtrFZZmxi1q8MSRjohVwea6YQBnRrFaCPOcwCKgo4j19ohfVEkGOlzquVI73gvv9+uPdPBLUKUo/H/PlC9C1cGB9fnC6LkJmAREMj6DnlVd5m0CBw+h38rMq2sKTJk/VzabfdxH+vFpW0ukGiMBjOxfk9f76wsCUr4ioqvK9BFRXBLZB0Dpb7mXoPUg3bMjHjKOfNUyXIysriLfR0/wwbpp/3GzeK69yzz+rXO9kla/36+AoNgBOZacavhNF9nPN9AFwK0e7xI8bYS4yx0ZkaXNbZYQdhORk92r5KpyJz4UJvy5FZvuj88+3Po2WLAN2K52fpSoTpHpJuHhp/t2gR8MILYkIpLRUnpVfsEr24yJOcxsYkI4i93MW51smhtlaPv5QlS+jFjrpuzQ40gLAin3qqLkAXLbLH1X32mT7R0mOMfqbs9tO2rboviMikwmDkSL0cleTMM9W2mRTQ0GAXUFH06G1s1C1EMryAVjMAhKg/8kj9Pnq+RFlSKQjLlsXvpyC/BYUcC7X03KLQMIaw758IOme1aaPmptpa8ZhN0KRLZJoigIo4es5QMUpDDAoLUUPnVi9LZk2N3ar20kt6rKYUmTQmU9K1q0jMkiQKG1m+XM3PDQ3Je6zefVeNceRIsQCmBD0f6XwrcwLGjFHbTU3JJ3baoJbooiJhdZbtlgHdusu5fl6NGKHH2zY1iWPFFhu7YoW4VtmMFs21K1gzIWEJI875UojWjx8A2APAMP9XtCCoBcEWx2PGIHlZE6jrMC8POPlk+/NMtw6NiXr99eRr/lGBzJiqG0cF0Ny5QvhIq8+LL9pdfBUVKr4zPx84/XSxTV39ycRk2uKZgNRjUW1s3iwSFZLJXDctE888IyZ3OvFSF47Naj1uHHD22aqXOSAmUNP619QUv/KmVmJah1MKVmrBCVKaigoDM4ZUcvrp6iKzbJl+YS8rs+/HKAp3r1ihL3SkADaTf2zWV2rtTKbrSSrYRG3YeEVyPNV49Yun52+qnbZM6DlcUqJbhr/7DnjjjfjXpMtdTheteXl6eTcaa07307HHam+x9Jxz1A0v6yI9X6iAN0upyf1uJp4AwgpH58JEv4v53smKTOoqP/54cc7S7xBUZNLxyOO4Wze9wUHYknd+0Plszz3F73vJJSrc4euv1e+1ebM+HwwbpofFACL0QBpnZOKXxCsvYuNGV8YojfiVMBrMGLs+VsboFgBzAOzIOX/J6zUtDj+RuXVrfGkUGgdCoeKhUycxSVGLk8SMK9trL7VdVweceGK4doESenIVFCj31wkn+L/OZq2gwnPYMCV0qHUhmaQPr+D0devC13nzY+1asfqdMEH05Q373uZEtX69mNjk+7Rvr1vabCJTWn8nTNDvN0t5vPhifOYjveDSEA4pAmj/cr8EBwkVBtQNSWnTRsWhca5fiLwuimvWpF46yFzkyO9IE6aA+FhmQLcyVVdn9iJiE5m1tcHP3aYmLTGhxvRwSOh84WWFSxa6+GjfXl8Efvqp3bOSLksm9ei0a6cLHuq+peEjhvjYShdkXolgVDyNGKHPaZKOHXWRa7at3LxZLCIldXX+mf+mZS0Zq3tNjcqCB4DjjhNjp3NH0HqZdD7o1Utt030eVVIf57rIlKW4unUTDQwkMr7ZNF7IfIBjjlH3/fnPavu44+IXAV7jSGfSWivHz5K5GMBJEH3EvwAwAMCvGWNXMcYsgQ0tEFqWxxQXtkDvSZPsBbDpRblfP7Fas7UcMyc1c5U2bx7w29/6DtkKPTlpQPyECfpEIkvvSN61dPakrgU6vlSsKtXVupWWjrGxMbpCz42Nop6f/C3fegv405/CvYfNtUInNlMQ2KxQUiT166dPgtQSvnWrXqZGQi+k1F0uk2Fokgg9RqdPF2VBzL6/VBh4iUwgvlyLxC/+NtVi+vQCXFiowjw6ddL3q9nXG9C9Ak1N3okZ6cBLKAQVYUZcnmdMJq0EwHlyFqZPPxUhH2asHXW/d+2qW7mfesoeo55s56pEUNe9+dvT+Zb+xsZcVk3Hv3ix3fpO91+XLvZF0pVX6tcF06p+5ZXxlQ78LLzmOZJMPPuHH6o4+qFDhUBmTCym5bmxaVOwuEwaCkWFOZ2norJkrlihfrNOndTnffutfg7JBQ7dN4WF6jpBQ3yoWFyxQsx5NszSbC7DPG34icxbAbwKUcaoPUQxdvrX8qEHuhkbaLMS1dba3b5UoEprzKmn6u4MIN4ic8AB8e0Bn3givo9xImhME3Wn5uWJeL/zzhMJJWYQ9scfx0+01ApAL3L0RK+rC2fFmjlTX2Wfe67+eFRljP70JzEhU/7wh3DFeG1uYGppMS2XtpADaomjxc6/+UZZ3O6/3+7Wa2hQQpMmaEkLJr24SrGydKlIUvjVr4Df/15/P7PbhhdUZNL4WXrMdOyoJwmkGgtJX9+9u56AQoUGXShJzHOJxtGmG6+6e0HDSKh7v21bNJR6TLfduun7JGypph9+EBULzjkHuMcoGELH0K2bbrHzSk6JOi5UQkNmevTQF3JULFKBYYjMxnbt1HFSW2s/t6iFrndvu8HAXPjTuGpAZPz3768vlP2Sf8xFazLu8tdeU9u9e6tFPmN6clIQlzkV6tTokQ6RSc/v0aPVsTxokH79kF4uaoigFSZMUS85/HBh5TzrLP3+ggLhfaLnTqrVWxye+CX+3Mw5v8XrL5ODzBo0Y9q0pnmtfGzWP3rCyE4+JSV67F5hoS4AATGh3Xpr/Ptdckm4+EzqrjGtlfvsIwTmeefFX5jr6uLdYvQCSidc6kICwsVnmUk/p5+ux9NEUedwyhTgppvi7+dcCP6gLqBEQeKmJdN0p9GSRgDwy1+q7epq0aP6iCOA22/3/gx57NGLvRQi1OolRehbb6kYPzOWjopgv3JRVCDRmrD0NQMH6rFwqYpMuq/NIvE0scFsLweILHt6DEVVUikRmzZ5iy0zvnjxYiH8n3tOv5+KpeHDwc3FqCQvTw+7Cfsdac1Ts84vFRu9eunuSy9MK3lU0P3Zp49ucW9qUkKTnsNGEXHW2Kj3MLedx1Q8de9uzx4368iOGyeex5gQ6p07C4F53HHqOV5zYUND/DyeTKYznaPNuTSsyKTXCuqdonNwFEl9QLzIlJSW6iFH8+eLaygV6/Q6ZhOZjInFEyC6B9Fr229/K+Zlejwkm+/gSIhfTOZFiV4c5DnNGnogm6s3r9WpWausulq5IAoKRFylhE5YtoLLgHCZmqvl6mrRxzgo1IUqE3Vs5OXFJy9R0cy5PqFRN5bpag2zMqTxmIWFImaRuopTXWWuXSuEpBmXJxcRq1cLN3qQmCX6u9titkxMy0dDg/5bmxeySZNEfBWN36PuOToGul+kpY5aHOQF4+WX1X0rVugXEipozLFSaOLH6tXqwk73x/bbe7vVk4EKWzNL/5hjxH568824JI9t0P2cqSoFptA77DC1bS5ML7tMuPPOPlsXoNRL4uUql9CFcNgLJQ1rMStg0LCMvn1FhrENuqiqr08uZjwR9BgdPDi+C40Ut/RYNBamPC9PP55sZa2oF2rJEn0BKKHnASDmzI8/Fvvrd79T91P3vJfIXLw43lq6aVO4+OGaGn2heMAB+nWLGi4++sh/jquo0C3DZscySVQlf+jCxjxuDjlE/+yZM/XvQiteULe+ZP/9lVepUydRLH/kSOCoo1R9Y3ruNJemH80QP3f5dYyx43z+jgdweaYGmhVoRwczMNjLkvnjj/pJSIXAwIG6JctW3sYkP1/U/TJj+8LU/qMXLXOCNpk4UT+ZqSvm3Xd1awUt1VFYqLt+g7rOONdjuUaPFhYoOpmnMgFwLtwl5ngeeUQk1kgmTRIWmz59gD59sMcZZ9hLYdDFhm2yNd3jZrxgSYl+YR48ON66LMnLE7FD116rxxjKixbtWiF/V+o63rpVTNBmlx4pRjjXBafZapRCf+vGRvWb0P0xapQuMufMST4ZpalJP+fMZB/GhDvsiCN0txeFCm5TRKULU1jTMBIqcjhXoqaxUQ/DCCMy6fEVdjFG98ny5frxRC/6AwbYa5MC8eXY0hHbRn/fc8+NL8a/fr3Yn3T8pleGMf3csJWyoWKwqip+AVhaqn8GfW9zTEGqbdhiJOvrw8W0z5uni9LTTtMfp6FAFRX+4THmfEa/Qzrc5TQe1TTamLGu06bp46PXTlv4hpm7sPvuYj56/XXl9aHnTjqqmDgA+IvMTwAc6fN3BIBJ6R5gVqGTknkg+yWjUGug2XuZQusfmu5ASs+ewqVGJ9tFi+wxQwCYeT+9WCe6aBUVidWeZNkydQLecIO63xSVgJ5VGdRd/uOPunCVVlu6r1IRmZ9+CnzwgX7fqaeKkINDDhF9nyXr1onfdfVqlKxcKeq10QSH2lpdlNksmaa73IypNWM2GQMOPVRsDxwoRP2bb4q/H34QMY833aTXgVyzRlxYqICTEyZ9/8ZGcREy69rJyX3zZv09TFcgZfhw/fj7/HNhvaHvveuu4pyRY6mqQtswVo/aWnXBXL1aja24OP5YCwK1rifTGz4ZaDhJfr6qqQjo50RZmW4tpHHbZjykH0EsZl6YyTteAnG//YTgMEvClJbGx7tFHdtWX6/c4IyppBZ6Xq1cGd9AwpaRT89XW2gInSd79RLnI50vKyqCWxmDiMxp0+z3e5XasWHG0ZvC+MAD9dvHHeedkEcXHYzpwpLuzygysTdv1hdTZqWNESP0ShkffKCLTDrPmdfVkhK7FdqEvkdUyaWOOPxiMs8N8HdFBseaeeiJZU5iNP7HLEn0n/+obTqZmSfDU0+pyZJmKNs48EDRr1jCebz4amoCfvlLTDjiCD2rLowlE4gvbfT++8JCQ600Z5yR3OrdxIwhkmLCFJnJlqChHXIA8Vs99pgSTLfcEh+OIKmq0t1uplD585/jYyxtrhvK+PHx9113nXhdv37A0UcL69wRR4h9wJgQ9FQwrVwZLxzlxVAKVkC8dpJlHSgtKOZvZCsFJCkq0i86H30Un0wzdKg4BsmCrGPQOMH33hPHZq9e4jehx8WoUfYi8Ymg9TPN7jTpgorMwYP1MdD9bVqxqLCgXopENT7p+4e1MJnJefK3ouXZCguFFZ2x+IXwl1+K35zOfVGHJdCLf8+e6nyjFvP8/HjhY/MO0JJPNkFNDQnyfDOt+0HmTxOvmrFeCWJhioPTsmdt28bPP2bjgrIyMcfakh1p9nbbtrqQp/OP2d89Gcx9YvNU0IXljBnelTBolzNAhKiYIUY2aCx3pmvptiISFmNv1dCLrhkzYrq06Ipx6lQV20Kzmc1V/u67i/t++MFb6FBuvVUv4G3GYM2YAbzzDvLq64HbbrN/rimKbBxyiH6S/ve/Igtbwpjez1YShciUtUELC9XFq7IyudpslZWiW4ekTRsRn0jFcUFBfMIVhbrVTFG11156jC1gD4G49lrxv7jYnnw0cqQQGTZBKKGTqmkFA9Sqv317VbWgulqPx5RISwa9mOXn6zFKNqjLftas+IvhwIHiwkQuxJ2Dtpf861/FeH/+WST1nHSSeswrezQR9LeIuh2ejbo6/RjZfXddyNFQClN8U5FJz9dE4vjoo9V2kAsrxTz3pFWMXnBpVj8Vdp07q+OBHjepdk9pbBQuXend8LJeUVdneXl8wwlbHeI991TbtKmEhHoppKCmiza/ecKEJk55zV1e/ezDxDLTBYlcDFB6945v8lFeDhx8sD43muMx5wIqyPzqfgbFDFcwSwoBuketqkr/jc3wsfPOE/+Li4OXpaOemyiEs8OKE5l+0IxpW4C2pGtXdZAD4oImxSW96NCyFpLttvNPuKAUF+uxUabIpJNTWZkSetQaEKReYLt2egzeJ5/oxX7339/eZYWKzKBuM+q6Oe44ZYHYskW/CCTjMv/f/3SL37XXxmd7A0KIvfeesEyecYbuFqQrfrr6LioSYzVjf2yT5R//KAoNT5tm32+AuDjYjg8JdYuuXKlfuKS1U27TRC+btUR+D7rv27f3jm2U0AzjZcv0+K7SUmVRIFbHUq8LKaWx0butKJC8yKTnZFVV+guyz5+vhx/suacubmtqlEfELHVGRSY9R201QCn0N1mzJlwXK3MukPMJtYhSdz21wu+xhzpeqIU7jKvXxnXXCavWoEHimKDzJxUWVASVl+teBi+xbVolzWOT/lbStX7ppcJaW1gI/POfwb8Htbw3NMRn3m/d6t0sIajrtqlJn2e9KgDQJBpJXZ1oHTx9urqPGlLMxTI9B6NoK0kTSDt0sNcT9jO8mLHe994rak9PnhyfnOUF3V+1tcl1gHMkJKHIZIx51M9oBVD3kNmzla58evYUJzK1Ep5zjphEqCXCJkDCQk9+myWTIhNqaLC6rdyLDZq9V1+vX6CplZRCg6eDiMKmJl240QL1ffvqdUSTyVT++9/VNmOihp2NggLx+11zjRCD9HeiK27q4pTu6XHjVCxqmzZ2Edu2rRCvpksoDNS6NH++flyZcZ9UZNomzjVrhHuRXmS9ko8oNBh/61Y9YYteJIiLrjiIBXrePP+sZK/M5kR06KAyzGtrE7vE5s4VyV7JWjXMY3T06PjzTVpjTHc5tQBSQeLVUlLStq06FhsawoUFmJY8KVjMUj6S0aPFuXH66XqVCnMBlCzl5cDDD4vtDRuEd+jRR9XjVBDRygHl5frnei3WTPFBXftmxyRpYCgtFSFPP/8sRFlQzNACM9TGnLvvukttB038WbpUN35QwwDlxhvt8xLnevksen0zE7ro4jiK/uV0XjUtrZIhQ+zelbw8PV4TEM+79FK9S14ixo5ViyjOo+tk5NAIYslczBi7mzFmOUpbOGbQPV150gm6d28RbHzwweq+NWuEsKCuBVqoOln8RKZZ03LqVDFOKhD94u4oRx1lP2GHDvU+kanlt6EhsVtl6VJ1Qe3eXY+BzcvTg+6Dul3pe9Os6gMP9O7NbUKTNailgMblyvAIxkQ4wQ03CGtvosSqZKGuupoa3Y1ohkAEcZvOnq1f+LxaF1JMsUd/kyuvVNtHHLFtM7++PrHw8epbDwiXlplwEoagIRybNgnLxrnnCjd3MsXbzczdUaPij7lly8S5YYqxqip7kf0gxyz9jmGSf0zvjDym6O9Kxe9++4nj5tln9UUoFdKpZB6/9FK85ZfGHNJ4SOoOX7VKt/7R+oeUkhJdnND5wRw3Ffd5efrCLQhdu+qLPz+DAGO6lTioNdhM+qHzFqVbN+HRMJtcAHoZIXpMmgmKpkU9FUFWV6fPPV4WWMbswtkWCpEs9HtGVZrJoRFEZI4EsBDAPxlj0xljFzHGPIo6tjA6dtQv2HQiohf9k08W///8Z+Bvf1P3m72//UrEBIWKgblz1eq7sTH+wvjxx/EX+CAWK/m8a66Jv/+WW7zdqqbVJlFGr1fHBwkNYg9bA5B2RTr8cJGtHRSaoVlersQyLYNEXbH9+oni6WbZjSgx9y1NKDNFmO0i1a2bPjlPmaJ/n0QJS4C4cNLjni60aJD+8OH6BdYrwUFCY1ELCvTF3Q8/pNYDPajInDVLLXgWLhQLKVuZG8rUqWIhedxx4o8m/PXqJeaPtm11y9rcuSKL12Zhlp4AaiXyqzohod8xTKkmsxyPdJ9ToRokxIAsKlKClgwzrfOALnSoQJw+XRc9ZkIihcY207hYU5yHFZUmZlkjM6ObhuF0766HTC1bFmy/0xCT4mLvUBxAnLdPPCGSTek1bcECNb95xb8CQEkJeJgOOf/7H/Cb39g9WjNmxIeVePHcc/HHQqLY8TA4kZl2EopMznkF5/xxzvneAK4B8EcAqxljTzHGkgyWaibk5eknAI1hotmM8kDdeWdRGucqS2v3vDz/3tBBoRfK+np1YVq8OL4kyfff6+IsPz++laUfBxygP79Ll/hEF0rnzv6rdxNqMaFJBRLqRglTgqapSUymknPO8Y93NDHd2jLrkoq3oGEHUWEeO1RkmtmVtu86YYIuRr78Uhc6Qa3sXhcyasXOy9PdmV7ZtRJ6sdxtN2FR+d//hEv2mmv0BICwUKuWn9g1LzBr1woriln+SlJfL6owPPcc8Oqr4o96OmhWLxUsCxZ4l5CRF2R6HpudtGzQYyFoi9Smpvi4tupqITypVTCI2KKxc+vX22tJJmLhQnUc5OXZ66vS45cKjS1bdAOAnwihyR5UKFFxXlSUOD45CNSrYSZEUYE7bJgQmnIRuGVLMJc5DXe5+upgYz7rLGExloKdcyH6ONfPAYtno4mKU7/FzOrVwvDyt7/pi3GJ2THINvdLSkvjK0vQEI5UoSLT9S9PC4FiMhljRzHGXgXwAIC/AhgM4E0A76R5fNmHWlVkTFd9vbJ65OfHd+v505/iV2edOtlX52ExraEyrsgWs9jUpHfsCet27NBB1JQExKRkK9lDMVfvidpB0snGVpiYun9kweUgTJ2qrLqdO+s1JoMwaBCa6G/19dfCuiQn4by84K73qCgq0sUkFfCmqLS5k44+Wp+sFyzQYw/NIs5e0NgxSbdu8TFS1GLul/yzbp1ubf/FL8R3Pe444ZZNdMwlggoJP8uk7QJTVSWs4G+9Ff/Y0qXeLsPx4/VYN1pvd8kSPZaV8s03QuiFDW+h1uWgbn6vFpCrVunfK0j4R1GREi1NTcn1MKeLwjFj7HMVXQjR46uiQv8+fmWGpNcJEF4Kua/pfvNyt4eFChjTu0Dj18eNEws+eh0J4jKnc76cp4NwzDH6wu2LL4TRRIZPeIjscpp06nctmzVLLWCnTo0PRaALN7Pxhg3TnW5aWVOBzj1+yYeOpAmiehYBOBrA3ZzzXTnn93LO13LOXwbwXoLXNn/oJCstFdSi2blz/AlZVCS6yVBRENWJQVe8gDoxvAr70hJKYax5kieeEHFR33/vnThDoRNloi4KVCjZyoPsvrvarq/3LwK8aZN4fONG4MEH1f2nnhr+e+floUz2mAeEWKYW5H79wpeLiQJqoaH7gpa1AuLdhccdJy6utODxqlXqPQoKEmcxSyZOjL/A2Fy6NKbN7zgwBdd++wUbR1CCFiv3ssw0NtrDRmz1P++4QyzqJk3S5wQairBqVXwHJsn8+fHCNYjIS6Ygu5drcP58/dgKelyYdVzD0Nioi8wbbxTzlhnaQ63oVEhWVemf7ye4TjlFzTXl5WpOpx4bWy3bZKBWaGod3rxZj1eXHiOamOZl7ZasX69+6+Li4BVKJFS4ff65Pr/V1VkXdtXUe+M3F9M2wYBu6Kir0+NRr78+sXfNzAGI0otEv0fUjQQcAALGZHLOz+ecx8l8zvllaRhTbmETmXQy8Ir/qajQY6uimrgA/aIiT1iyCqungo0KOb9YJS8KC4U4CRrLSYWQX3D4+vV68WObuDA70NgsYjU1whLQpYv4rbp21fvHJ2lx3EJX7XPn6lZZ09qUKaibiK7AqaUMiLesH3CAENp0H1NXeZ8+wa3sJSXxFzTbBZHud7+SLNR6MG6cf3xWMtDSK35JKfTCaGZ0L1gQX2fTFMfduokSWYceGm9Jppaadeu8a0kuWaJf6PLygllx6XcMWlTaS4z+/LN+XgZdHKfSXenjj5UwLS0Vx+uECeLYkIKisFAPY6EepupqfeHvN2bG9ONXntfUEko7l6UCnb+omDHDR8aMEeOic2eiahp0kbPLLuGt/VS4TZ+uZ9oXFloX5vU0dMLvXDIXMM8/r7ZnzFAx1kOGiPJuiTBDdIKWKAoCnaeSscA7EhLkynInY+xB4+82xtjRiV/aAqAXF+nSpZOoVzLBiBHC1SYx232lAi1HISdJcuEq9+qOYoqPdEDFqFcdOCDeEmQr79O1q24xtGWYv/aat2UI8A+G96GKvm7uXN3VunVrNDFbYfGK6bWV86DIY89WKN7vfb0wY6hsrQ/phcCMFaZQsXb11fHfJVXouWLrcSyhIuVXvxJWSYq5wKHHb48ewtrpZZGhIS5m/CC9cK9apbtJzVhbL4J+R4qXtXHZMt3KFrQaBU3w8AoH8ILWn6yoUKWKdtxRiJJ77xUuVjoWamGtqdFFXKIFMRWZct6kC+KoYv5oKTRap5V21tl9d7WooYsbW9tLCq3IQDsZBWXYMGUNXr9eT77zMEbU0XnFT2SaoQ7TpqkYWxoiFfSaaIrKZL6vF3SeD1JD2hGaICKzDYDREG7zRRDZ5l0AnM8Yu9/rRYyxJxhjPzPG5pL7Rscy1GczxmYyxvYgj/2eMbaYMfYDY8xSPTZL0IuLPPGpyPSKc2RMxGX99rfC/UPdr6lCV6Fr1og/eWEoKsLy006zB78HtUamAnVj+Z20ZhKGbeJgTBcwNpHp1yWnY0cRf5QEW3v3Vqv51av1C2eiftLpwisJxBRmZqkXKUKKi+3HQNiad6ZwtwkRWuLGy0paX6+7zsLUuAsKFcRmLUQKLRu0446iKDgVjeZChrrXJ0zQW76aUJFpZpXTeOFNm/THaa9tP+i5U1sbLPHGy2qzbJmezR8k8QjQLfthMtzLy3XPQ//+eve0bt1EeSxTkFBBVlenzzWJWj9SC6OtAH3QEIFEjBmjjiHabpVa/ul1gbqBE8Vk0tJDfiXAvDA9be+/r7Y9rhOaJdMvLMMMj6mqUosyKjKDhsb06KGakLRr513yKBlocqlXnLIjJYKIzO0BHMA5f4hz/hCAgwDsBOBYAAf7vO5JAIca9/0FwC2c89EAbordRqwG5ykARsRe87ecKQJPJzOZ8UetAH41uzp1EvGBt90WbQwfLRdTV6cHUu+2G7aMGGHvkhL0gpEKdIL2K2pNs2B79fJu2UbDDGxuV79s2ttuC24NMsnP1/cXdesGte5EjVfRYvMYpONratIFgO0Y8LM42zDdfWZYAxDfBtMWXjBnjhI0AwcGq9UZFnNstpqdTU16zchddhHCmC4mzAs5fR+v+oSS7bf3XuDR9pmmWAp6MTXFKD1PPv5YlO8yxTVdhNJFyo8/6iI16JyRbJbuSy/pn3f55cFCN+jnNTQEL2EE6FZXKdbSYcns21f/baTXi4pMGpZDj9VEtWWpNTSZJh8dO+oudrro8GgAUELFo1/dYlu4xMsvi+Ob1j0NE389aRJw//1isRdlnUzq3amvj6abkUMjiMjsC4AqgHYA+nDOGwF4/iKc808BmNHBHID02XYEIIM3jgbwAue8lnO+FMBiABFULo8AOplJawedxJOJc0wVM8P82WfVtqw3aYtfTNKqFwoaH+jXxYUKFS/3PiD6WEvmzNHFSmOjvmo+6igR/zN5spjQzZaPYaHWBFpSJMqYoDDQCxLF7PRELQ61tbpr39Y9J1FXGRPz4mC7yHXooMRLTY3dqk2bB0RpnTDHQUWLrZyS6fqTwoAKLFr9YMsWPYwmkQW2Sxdg113j77/ggniBSgu6By3s37Wr/htLj8vbbwur4FFH6dnugB7CQBPszILyQWMyqRUuaNehH34A/vAHdbugQJQbCwJdxDQ16S7+RH3qqfdJzh/09021NSbFrNO6fr1eRJ2e0/QY8Qt7qKnRj1m/9ot+0N+d4hHHXkctxF5ze1OTPYTsf/8T85RczDFmryjiRa9eYgESRa1pipm06OIyIydItPBfAMxmjE0BwADsCxGn2Q7Ah34vtHAFgPcZY/dACFx5ZekLgPQMQ1nsvjgYYxcBuAgAevbsiSlmza2I6VNdDRnB01hRgalTpmDE/PmQa93K/HzMTPMYbEwoLkZ+bNXFP/wQ8hLzQ9u2qKyqwsbtt0cXo2TL7OXLsTnNYy3t2xfyslnVti1mWD4vr64OE1av3jbmJf37Y7nXuJqasE+7diioqgLWrsX0//wHNbELX8myZdiDWEG+OeAAlEtr2OLFyfU7j1FZWYnqbt1QYpkwF5WUYGUWfvOCmhqMKy5GgbHa/mnLFiwl4ynp33/bCq3s2GOxmFh72+29N3Y3ejD/3KYN5of4PqUlJaDSaFZBAbZYXr97585oF3NBzXj1VVQZFrddnn8eUkZVTp+etvNonzZtUBC7KC5+9VWUGdbtjl9/DXl553l5+CTmGh/avfu2Sahu0SJ8Hhtf+++/B40g/mzTJtQnGPuOhYUw0rMwr08frPv+e4xv3x6FsQXs1qlTIe00izdvRtmUKaisrEw4z+1TXIyCmLha/MorKCssxMg//hFSFqz+z3/wAxE8233zDaSEXss5ti0zjC5dn8ydC54oPhDAgPx8yCCKhg0bMC3BeDvMm4ddrr8ehcTb8fP48ZgfUHjkbd0KjyaK+PT779FkCEW6D3t37gxpM+QbNuCTjz7CfjU12+ajOStXYlNEx+IOhYWQ9vmFH36IrjffjK6x71zTowemL1myrXxSu/p6bJN9DQ2Y9tZbaLAYMdr/8IN2/H1VVITqJMbbd4cdMPTD+Ev4TwUF2nwiKSIik9fU4BPbc9atw96xBUxTfj7yYuEffOFCrLj/fmyrs8A5pldUoCYL86hGUxP2A7b99t+88grKbQvCiKikYTmtBc655x+UEOwNYW08BsKK6fs68vqBAOaS2w8COD62fRKAD2PbjwA4gzzvX/J5fn+77bYbTztvv825sJ9xnp8v7ttnH3XfhAnpH4ONYcPUGOjfl1/yyZMnc/7QQ/GPfftt+se1cqX6vJ497c+ZOVMf14cf+r/nIYeo5z77rLr/8cf199myJbKvMXnyZM5POMG+j6dOjexzQjNiRPx47r47/nmvvML5nXdyvnlz/GO9eumvv/bacGOoqtJfv3at/Xljx6rn/Pvf8Y937qweP/jgcGMIw4AB6nPOOy/+8QceUI+3b6/uf+YZdT9jnDc0iPvpuVVYyHlTU+Ix3HBD/O82b5547KKL7MdZbJ9Nnjw58fv37ated+GFnK9Yob/XLrvoz7/ySvXYjTfaP3/EiMSfK3n9dX1f+e2TV1/lvE2b+M/77LPgn9fUZB8zYP1sbR9On64/f8EC/fYPPwQfRyLovu3fX/+cIUP0sVZU6I9//bX9Pe+5R78myeMyLHPn+h53Jp+98IL+vJqa+Ce9957371JcrLZ79EhuzOmAHosPP5zWj5o8eTIHMJMn0DYt6c/XXc45bwLwV875as7565zz1zjnqfReOhuAjPL+L5RLvAwADXTrB+VKzy40yaGxUfxR11+6elUnwtbTFVBu3UPNcFgkDoiPAhp7tnGj7t6WmPE8iVaO1B1JXaw0w/fYY6PPTKZ1JSlha9JFic2VZUtEOvZY4Pe/tyeAmW53mp0chJIS1Qf5qKO8EyVoWInphl25Uj+PDjss3BjCQEM4bK5QGlpCKzDQ4t+cq9fSci/dugWrNGDG8RYWqrALr7p/YVx3NORhxQrgmWf0x82yMjT8o39/+3cImngE6PGEnHvXUXzhBZHsYrq0jz8+XOIXY/awlcLCxL+HGadL5xQgusQfQN/Pplfkssv0sbZvr8fuezUPoNa/vn3DdXGj7LSTPWbdI3yp3rx+2MIiaOml9u31wvbUA3OwXzpHhqHnvF/jCEdSBInJ/IAxdjxjkdRsWQVgv9j2ARDZ6gDwBoBTGGPFjLFBAIYCSNDwOEOY8WqbN+sJLWHj2aLCK5tVXhiGDIlPpokyYNqLtm3V59TXx7nfAKgSJYCIH0wkfqlQfftttU3F6oUXhh5qQmyB6Xl50bY1C4ut3FDY8ZgiM5nEgX/9S7j5XnvN+zlU/JqdaMwyN16LpiigF01bdjkdG92Xgwfr4lBmIlPh4JdVTjEzbrffXiVeeIlM2wLNC9q+r6RE7wMOxPd/p9nJixbZE+/CVFEwj0uv7OOrr47/DXbdVRRjD3uJsS2ggnQ169RJrwP5DmlcZ9arTBWvagYnnmiPGaeLdFvBf0CPwU6lnE9enn2B6ZHsxQsL9fhmWzgSTUjq2tX7/Dj22BADTTP0OHcF2SMniMi8CsLqWMcY28IYq2CM+aQNCxhj/wHwBYAdGGNljLHzAVwI4K+MsTkA7kQstpJzPg/ASwDmQ3QR+g0XiUXZx5xwVq3ShZNZCDtTDB4cP6EWFirLK2PxE1AmRCagrwxt9dTo5PSXvyR+PzrusjKRgFVfr6+aE2X4JsNOO8Vf+Dp0yE6NTIlNZIZd6JgXlmRqiTImxJHfvvDrAvMeaRZWWBht7TuT009X2zSLXOLVs7mgQC8xJEUmLczvlTxhYlqMFi5UAsRLZNJOQYmgC4VJk+JbupqWQzqHtW1r98iEWby0b69nK1OxIdmwQYlPedz06SOy372qS/hhE4NB5zj6O9PKAVH1LZfYRNzQoaKTmu1zqDXXlsA0e7ZuQaS1mJPhEKNaYNeu/qXu6HFsK1VFF2y9ewM33BBfn5kxYP/9w481XdDEqWSrkTg8SSgyOeelnPM8znkh57xD7HbCqt6c81M5571jr+vHOf8X53wa53w3zvkozvmenPOvyfPv4JwP4ZzvwDl/1++9M4rZdWPJEt0qELaQdVQUFMS7bbfbTp+4zBM5UyKTCkvTgtPUpK/Qf/nLxO9n1sj76ivhspST8IAB0bq4JEVF8RNuOj4nDLaLd9iFjum6jjrMQEItIuZig7ZBHT48tf7kiTAzfE2oZdLMNqUlThYsENZFKuCChk6YIrpXL+Xm9CpvFqZ9Hv2Otnp/TU26aKHbPXva57Gw9WBpkortOKWuyOHDhYv8jTeSn0NtIjOoWPXqBBX1HGkuftu2Fd/ZqyrJaafZxyX5+9/127SmaDLQRRQgmmL4iWy6f22hJ3QxOWiQOLbN7PdBgzJTszkoNFTHFWSPnIQikwnOYIz9IXa7Py2i3iqgq5vly/WCyba+zZnC7OBilqehE1a6hIQNamE1a6YtXaougt26BauNuOuuetzRpEl63cqg1qRkMF1HJ56Yvs8Kgm1yDhsXHETYRwEVYLQkC+e6xSPdVg0ax7pqVXxBdBquccIJ+mP0HJs/X8SZygzRTp2CW/vMc5VauLxcvGHq2vbpk9gCRy1g1KLbp489/pIuBIJA96PNlUrbaQ4fLmonpuKBsNXTDNrVzOxaJUlHxyk6zmee8a53C/gXZK+r08vV7bRT6vHhY8fqc2si8Uf3ry0kgtbcld/TzA9IZ/x1MtAyXWbssiNlgrjL/wZgLwBSsVRCZIO3HqiVoLparzF3wAGZH4/EvFiawdQjRoiC5DvvLGKeMgWNdzLdpNTFLWt6JqKoSL/gTpqkF6BP1Oc3FcyLYKqWg1SxXVQsfYZ9+eUvhZutpAR4+uloxmWDxn7SunqrVukix3TZRU2bNsoq19gYn1BDLyzm/jVFJi2xM2BAcNeq6fqmdUG9whXCuKsLChJb2amwpwXQ+/a1u3XDWjJPPllt04QPSTIWYD9oApaE1oj1w6s/edQWtg4dgLvuEiL+4YcTd37zE5nvvqvOo4IC4He/S318RUX68ZdoYUMXErbENFqiR4ZwmCLTXMhlGycy00oQkbkn5/w3AGoAgHO+CUCA6OoWBL0IbtmiAvLNrgmZxmwfZyvKe+ON4sKYyUBr6lIxu/TQjg9hiprTTO9583SXbxi3YlhMV306PysIZuZnXl74GLK8PJFAtXmz3v4xasyEGxlmYi4KbAXio4YKcXrsNDToFj5b6IG09FRUAK+/ru4P0z7RFF3Ufd6+fbw1My8vfJcwv37SgHJXNzXpCSn9+9srPHgU5faECjfbxZpaMqMQmTarY1Crvldjg3S0jL36amHZ/c1vEj+3e3flsi8v14U5Teb6v/8Dzj47mvHNmAFccQVwySWinaofdCFjVhCoqNANH9JabB6X6Wgfmwpdu6pzrbzcnqzqSJogIrM+1uKRAwBjrDsAj5S5FgqduOhJn4mSQH6YWcFhEgXSCXWpmGUu6AXeLB3iB10N19Torpp0WhcnTFCiuUuX7LWUlJgXx2TLlwDRtjq10a0btPxoKTLoQqNt28zEudILB+24snatElw9esSLva5d9QsnrW4Qtg3mKaeI/716xXsdTAtc2N+GsXghO368PcPfbPfarZvdhRs2FMhsJWpCKwr4dQMLii0mM2h88qBBeomqsK9PJzRe88QTRemfdeuAt95S959zTnQGjo4dgfvuA/72t8ThBrQNqnn8m8lmcpEyapRqD3zNNbmXXFNfry/Uw7RFdSQkiMh8EMCrAHowxu4AMA0iM7z1QCdqGryebZF5wQVqojnxxOxmPVPo5L9+vf4YvfiEqc/o13bQq55lFPTrJ1oR/ulPQhxl03INxE/sXrFluQBjaKKiTbZ0pB1kMhXTTM9VejGk1jWb2C0u1i+8NMY4bHvRxx4T7R0/+yw+8cP8XZNJQDGF6q9/rZ+LMumJnoOMCUFrq7cYtuoAtXyuWKGXYGpq0t2rUXQ+sbnGqQjyo7BQCR/KccelNKSUYUy3un/7rXCL/+c/ynO1117xtT4zBY3dNS2U1IDQpo06nvLzxdxZVgb8+c/pH2NYior0haSsIuGIhCDZ5c8BuAbAnwCsBnAM5/y/6R5YTkEtmVRk2gLPM8mAAcD774uYn7/9LbtjodD9ZWbr0dthytb062dfZTOWfqE1eLBwI0XdNzcZ8vN1S0CQuoBZpJGKJTl5U5Hz0EOZGQiNu6IVD2gCmZcFw8ttHPa4Ky0VyXg28WbGwiVT0sesq3nssfq5KENX6P6XQqCgIF5ghV0AdO+uXNjl5bogX7FCd9FHUXLM5hoPE1Npc9l7udEzyc0367cfeQS46SZ1O2h/93RA44RNkUlDJMywg7y87FViCQL1AjiRGSlBVdIiCGvmGwCqGGM54pfNELQkCHXz5ELh1gMOAK69Nj2xRMlCJyKaVQzobku/LEsbtrixHj28y4G0VGgsWrYXOgnYSsVdTY2wGNDyNmnsE6xBY2mpmKRZ0F5JI2ZmuMTPuh4W06qfTEHwiy5S2wcfLKyh9HvLhEUqBugixYw3DhvGUFGhWyhjPeAB6BZjIPy5byMdIjObjRYk550n4iMpch7NxKLaD7p/fv5Zf4wmxJ5/fmbGExX03LdVRnAkTZASRr8FsBbAJABvAXg79r/14BUI3NrETVBocXB60dm6VXdLhHX52LKQc9ldnC7oxTVMV5gssI4mTjU2ioWZrNHYu3fm2rKOHau2V65U+43WzfQSVV6ZyFEee2byUzLJEeedJyyEu++ukkTOOks9Lt2w1G1NreI0HjEvz54h7keHDvpraAUI2qWmqCia2Efb7xUmhMmcfwoKgmenp5sHHrCHAeXlRSPQk6VjRz0RjraKpJbrXMkPCAoVz2ZtZ0dKBDGDXA5gB875CM75SM75LpzzNLbnyEG83EZBa7K1Nqj1ilp+zZIXYd0nZ54Zf2HIZgmpbEFdqVHEtqWRWmphX7kSmDtX3c6ka5JWV6ivV2EvtPqB1/Fou9jn50fr/jPdx7aklET06ydarX71lYrxpEJMWp6owKNill5ok0nOYEy3+tJQBNoCtlevaOLHzU5XYYWxKSa6ds0dz0BhIfDqq/GhGgcemN3rDue6oYCeP3R/NjeRecstwL33ioXRiy9mezQtiiBn1AoA5Qmf1ZLxCoDPpa4FuQTNwKYTEnVDMBbeatCvH/CLX+j37bNP6OE1e2if77AZzhmmjgqXsjJR41SSye5J/fvryTT/+Y/4T8uweNUItMXidu4cbaKdWbUgrBXRCyrEpMiknhn6nal4MXudB4Varn/8UVmMabKXrfB7MtDFLCBiPsOIRHMc69bllmega1fRfpUet3/8Y/bGAwhrL00QozkKzdmSecQRwJVXiutLthN6WxhBzsglAKYwxn7PGLtK/qV7YDmFV9maTLn6mhumEJTQgOq2bZO7SFPLS7bjk7LFHXcARx0lxKbZZi7HqKUic+VKPU4vTJ3JKKAxeNKVS8v5eLkh27ePF31Rl7LKz9fFbFQuUTOGjnO9jSZd6NE40GTLgtGQlro69RvTONio4nBNS3J+frg5xVzkcJ47FTokI0YAH34ouuTce2+0ccDJQq3cMi+hsVEXmbkQ2+rICYLUY1ke+ytCayvCLvEKwjfdNQ5Bu3bC3VNfLywiW7cKUUktmcm6fCZOFBPvihXiIhOVxac5UVKiFwXPYeqpa3/lSt29T+MkM8F++wFz5oht2S2GxpT5ue9799ZFsVcyUCq88grwhz+I/RLVviksFLGYNTWiBM7mzd4ic+JEsYCZNQu4M8kqdWaL188+Ex4ImjxpKx2UDGZcZzK1RRlT1stcsmJS9t4beOedbI9C0a6dCoOSXYmWL9f3X9Q94B3NloQik3N+CwAwxtpxzltnKXzGhJvA7LCT467KrMGYcDnIQuybNolJh8bsJOuS6NNHxfXRbEZHTtJkXmxotYFMt+g89VTgwQfVONat08vq+InMHXfURWY6arMOGxZ9PFh+vkq0AoQYoA0SzJCV669P7fM6dhSVLmR93HffjY83NbtWJUtJiai0IAVs2PaqgHi9WZze4U/Hjqp8kSyHRRscFBQk91s4WiRBssv3YozNB7AgdnsUYyyHijJmCFsgfC7X/co2VETKuDfarzpsIWsb6e5Y40gZXlDgXcA+meSWVNhjD73U1/PPq23G/KtFXHqp2i4sBC68MPrxpQPG9DJFP/ygd9qSlt0oofVvZ8zQBQhjiftjh4EuYpKpLRqV4G1N2PqX0+PI1u7T0WoJEpN5P4BDAGwAAM75HAD7+r2gRWIz/ze34OZMQgWgdKlQd0pzq6PmSB7bxb+oKPOegLw8Pcv85ZfVdiLLy0EHqZjOI45IrZ1npqFz148/6hUf0hFXftBBanv5ctXOEhAW4Ci7ZtHFfzIl5R55RMVh0t7gDm9ovKW0WNPErlyq2ezIOoFS8TjnK4y7Gq1PbMnYVmeZaonXHJHCElAJP7TchQs1aD3YqjD06ZOdJAuaOEF7aScqfl5QIOIL33wTeOaZ9IwtXZhtMan7PB29umlf9oYGPZ7w5JOj/Sy6mE2mxuWoUcLSOnmyXlPU4Q314C1eLGJ86XzvPHwOQqASRoyxvQFwxlgRY+z/EHOdtyrMCSwvL76EhkNBrVdSXDqR2TqxlSpKR+JMEGh1AlpeK0jP6m7dhBUzGbdsNqEif+VKPWwlHefhyJG6pZdWFLB12UkFmsRE42vDMGqUSHrKtczyXIWeQ5WVQpzTuT2qElWOFkEQkXkxgN8A6AugDMDo2O3WhVkqp29f1/HHD2r5XbtWJOnIYHHGXGZ+a8JW7ieZjjZRMGyYPemsJS8YqXtz7Vo9gdGrL3sqFBZ6JxBFLTJpnVMaBuBIH4ceqluQ33xT75xltkh1tGoSikzO+XrO+emc856c8x6c8zM45xsyMbicYv/99duuYKs/1P24bp2e0dquXe6WC3FEj62ZgVct1XTDmL18VksWmfS7bdigW/yirvcpsbXibNs2elF79tlq+y9/ifa9HXZ69QL+8Q9vy29UdVAdLYIII7BbOGaAvBOZ/tD9s2mTKtoLiI4jUQb/O3IbW2HxUaMyPw7JgAF6DBnQskUmFXYyUUOSroYSXnU+w3blScT99wuh3K+fKFjuyAznniuqNZx9NvD11/pjrbFBhsOTHGnU2gxwIjMcNMOwvFzv9lNc7OKfWhOmoNx+++wWaz700Pj7WnKLWFoyiNaEZCx9WfI9esRX35D1hqOkUyfgttuAX/3KzSmZZsQIUdeVho3l5SWXgOVosTiRGRSzLIOL//GHxlxWVOg9bl0dtdbFDjvot6mLMxucfnr8fS35mKQ1aWmYSrq9CWb1DZfs1/IYMgR46CF1e/BgJ/YdGp4ikzF2o89j96dlNM0J2ovXEQ91P1ZX6+5JZwVuXbRvr//mtEd3NhgwQC9QDkSfkJJLeO3vdDcz+Pln/XYUDRgcucc55wCvvgrccAMwbVq2R+PIMfwsmdtqejDGxjPGaCp16yvGbgqjluxeiwKaUFBbC6xapW67zPLWxxlniP9duohyMdmGZlwDzau4eli6d7efc+lu/bfnnvptF6vXcjnmGOD2293c7ogjSFvJGwE8AeAbxphsNtz67OFmnImLO/GHxmPV1+tWjXSUTXHkNn/5C/D668DMmbmxQLNlP7dkbLVKzYoZUXPEEfrtfVufbcLhaO34BeW0Y4z9D0A1gFEAhgP4N2PsCwBpXgLnIGacSbqtAM2dgQPVdlOTXs+OPuZoHRQXA0cdle1RKO67D3jtNVGQ/bTTsj2a9GMTmeno9kM58ED9dqZ71TscjqzjZ8kcDGAa5/xMznkN53wWgN0BlANwwTWuELs/vXrpGfnl5Wq7Jce/OZoH/fuLmpHTpgHPPZft0aQfm8hMtzemSxfgpJPE9lFHpa9cksPhyFk8RSbnvJBzfp9xXx3n/FrOecK0RMbYE4yxnxljc437f8sY+4ExNo8x9hdy/+8ZY4tjjx2SzJdJO9R6efzx2RtHc4HGsdIC0K4jhCMX6NgRGD8+26PIDLR0kSQTIT8vvAAsXCgSQxwOR6sjnTUsngTwMICn5R2Msf0BHA1gJOe8ljHWI3b/cACnABgBoA+ADxljwzjnjXHvmk0+/BC49FIRz2WrtefQ8coid+5yhyOzbNoUf18mapUy5rLKHY5WTNpEJuf8U8bYQOPuSwDcxTmvjT1HZoMcDeCF2P1LGWOLAewB4It0jS8pxo8Hvvkm26NoPthEZseOzm3mcGQaW/wlbZDgcDgcaSDTvf2GAZjAGLsDQA2A/+OczwDQF8B08ryy2H1xMMYuAnARAPTs2RNTpkxJ64CbI5WVlTmxX0atWQMzj3jTkCGY8+mnWRlPGHJlHzZ33H5MnSj24facw6zpsLSqCj+1kt/GHYep4/Zh6lRWVmZ7CBkn0yKzAEBnAOMgkoheYowNhr0kErfcB875YwAeA4CxY8fyiblQcy/HmDJlCnJiv1RUxN3Vefjw3BhbAnJmHzZz3H5MnUj24axZcXGRg8aNw6BW8tu44zB13D5MndYo0jPdVrIMwCtc8BWAJgDdYveT6t3oB2CV5fWO5kSHDvH3udZyDkfmGTIk/j7alcvhcDjSQKZF5msADgAAxtgwAEUA1gN4A8ApjLFixtggiBJJX2V4bI6oscVkOpHpcGQes3884JoiOByOtJM2dzlj7D8AJgLoxhgrA/BHiM5BT8TKGtUBOJtzzgHMY4y9BGA+gAYAv/n/9u49xo6yDuP496HcRVq0LRAuoYBIgMSCgFYUKhJQJGBQUKOEBC/RGC8YgyAR/zBELkaUGE1MIJCIEEwVjGIUY0EMAkFSLrUCalWQghDvKJDCzz9mmp4ucxaWPWdPd8/3k5x09p2Z7btPzp757bwz8252d5Zr6rpu8Hn88ZnvhzTuup7o0Dv1qyQNwTDvLn9vn1Xv77P9+cD5w+qPRqBrHtv162e+H9K423bb5nFC1XOpe79HjEnSgMz0cLnGSdfQuM/Mk0Zj3rxNv97Cj39Jw+WnjIZnt46nUDnbjzQaW870w0QkjTuLTA3Pnns+v23ffWe+H5Jg7703Lm+11ej6IWlsWGRqeJYseX7bokUz3w9JcOihG5fnzx9dPySNDYtMDc/EgnLrrb0OTBqVgw/euHzssaPrh6Sx4RFfw7PddpvebLD99qPrizTuemdrOfLIkXVD0vjwSnAN1557wtq1zfJOE2cylzRjli6FW29tnlV7/PGj7o2kMWCRqeHqvcFg8eLR9UMSLFs26h5IGiMOl2u4eovMrkcaSZKkOckiU8N13nmw447NFHZnnjnq3kiSpBnicLmG69RT4eSTmxuAklH3RpIkzRCLTA2fM41IkjR2HC6XJEnSwFlkSpIkaeAsMiVJkjRwFpmSJEkauFTVqPvwkiV5HPjTqPuxGVoIPDHqTsxyZjgY5jh9Zjh9Zjh9Zjh9C4GXVdWiUXdkpszqIlPdktxZVYeOuh+zmRkOhjlOnxlOnxlOnxlO3zhm6HC5JEmSBs4iU5IkSQNnkTk3fWvUHZgDzHAwzHH6zHD6zHD6zHD6xi5Dr8mUJEnSwHkmU5IkSQNnkSlJkqSBs8ichZJcnuSvSe7rWPeZJJVkYU/bOUl+l+T+JMfNbG83T/0yTPLxNqfVSS7qaTfDCboyTLI0yW1JViW5M8nhPevMcIIkeyRZmWRN+577ZNv+iiQ3Jnmw/Xennn3MscckGV6c5LdJ7kny/SQLevYxwx79MuxZ73HlBUyW4VgfV6rK1yx7AUcChwD3TWjfA/gJzQPqF7ZtBwB3A9sAS4DfA/NG/TOM+tWVIfBm4GfANu3Xi81wyhn+FHhbu3w8cJMZTprhrsAh7fLLgQfarC4Czm7bzwYuNMcpZ3gssGXbfqEZTj3D9muPK9PIcNyPK57JnIWq6hfA3zpWXQKcBfTezXUScE1VPV1Va4HfAYd37DtW+mT4UeCCqnq63eavbbsZduiTYQE7tsvzgUfaZTPsUFXrququdvnfwBpgN5q8rmw3uxJ4R7tsjhP0y7CqflpV69vNbgN2b5fNcIJJ3ofgceVFmSTDsT6uWGTOEUlOBP5SVXdPWLUb8FDP1w+z8cNDm9oPeFOS25PcnOSwtt0MX7xPARcneQj4MnBO226GLyDJXsDBwO3AzlW1DpqDF7C43cwcJzEhw15nAD9ul81wEr0Zelx5aSa8D8f6uLLlqDug6UuyPXAuzfDQ81Z3tPncqm5bAjsBrwcOA65NsjdmOBUfBc6sqhVJTgUuA47BDCeVZAdgBfCpqvpX0hVXs2lHmzny/Ax72s8F1gNXbWjq2N0M2TRDmsw8rkxRx+/yWB9XPJM5N+xDc03H3Un+SDMsdFeSXWj+OtqjZ9vd2TiEqU09DHyvGncAzwELMcOpOB34Xrv8XTYO/5hhH0m2ojkoXVVVG7J7LMmu7fpdgQ1DbObYoU+GJDkdOAF4X7UXwmGGnToy9LgyRX3eh2N9XLHInAOq6t6qWlxVe1XVXjRv3kOq6lHgB8B7kmyTZAnwKuCOEXZ3c3YdcDRAkv2ArYEnMMOpeAQ4ql0+GniwXTbDDmlOWV4GrKmqr/Ss+gFNwU777/U97ebYo1+GSd4KfBY4sar+27OLGU7QlaHHlamZ5Hf5Osb4uOJw+SyU5GpgObAwycPAF6rqsq5tq2p1kmuB39AMf3ysqp6dsc5uproyBC4HLk/zSJ5ngNPbsx9m2KFPhh8CvtYOET0FfBh8H07iCOA04N4kq9q2zwEX0AyrfQD4M3AKmGMf/TK8lObO3Rvbyw9uq6qPmGGnzgyr6oaujc2wU7/34VgfV5xWUpIkSQPncLkkSZIGziJTkiRJA2eRKUmSpIGzyJQkSdLAWWRKkiRp4CwyJc0JSb6UZHmSdyQ5u882VyR510z3TZLGkUWmpLnidTRzBR8F3DLob55k3qC/pyTNZRaZkma1JBcnuYdmXuBfAR8EvpnkvD67HJPkliQPJDmh/R57tW13ta83tO3Lk6xM8h2ahyxvkeQbSVYn+WGSGzacGU3y2iQ3J/l1kp/0TAv5iSS/SXJPkmuGnYckbS58GLukWS/J4TSzbXwauKmqjuiz3RXALsDxNHMzrwT2pfmD+7mqeirJq4Crq+rQJMuBHwEHVdXatqA8g2Y+7MXAGppZjq4HbgZOqqrHk7wbOK6qzkjyCLCkqp5OsqCq/jGUECRpM+O0kpLmgoOBVcD+NNO0TebaqnoOeDDJH9p91gJfT7IUeBbYr2f7O6pqbbv8RuC77f6PJlnZtr8aOIiNUxjOA9a16+4BrkpyHc08xpI0FiwyJc1abVF4BbA78ASwfdOcVcCyqvpfx24Th28KOBN4DHgNzVnNp3rWP9n7X/brCrC6qpZ1rHs7cCRwIvD5JAdW1fr+P5UkzQ1ekylp1qqqVVW1FHgAOAD4Oc0w9dI+BSbAKe21lfsAewP3A/OBde0ZytNozkR2+SXwznb/nYHlbfv9wKIkywCSbJXkwCRbAHtU1UrgLGABsMO0fmhJmiU8kylpVkuyCPh7VT2XZP+qeqHh8vtprp/cGfhIex3mN4AVSU6huU7zyT77rgDeAtxHU9jeDvyzqp5pr9e8NMl8ms/Wr7bbfLttC3CJ12RKGhfe+CNJU5Bkh6r6T5JXAncAR1TVo6PulyRtbjyTKUlT88MkC4CtgS9aYEpSN89kSpIkaeC88UeSJEkDZ5EpSZKkgbPIlCRJ0sBZZEqSJGngLDIlSZI0cP8HsaZ/nU+XpNMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot 3 optimization criteria for 1 chosen # barges\n", + "\n", + "fig = plt.figure(figsize=(10,12))\n", + "gs = fig.add_gridspec(5, hspace=0)\n", + "axs = gs.subplots(sharex=True)\n", + "\n", + "kpi_plot(fig, axs, [scenarios[scenarios['# barges']==4]],['r','g','b'],['min','avg','max'],'')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "fedf01a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 29851, + 26655, + 31142, + 27855, + 29269, + 30716, + 30403, + 31991, + 31253, + 31587, + 28221, + 31787, + 28674, + 31534, + 29692, + 32055, + 28387, + 28629, + 33504, + 31124, + 29751, + 29032, + 30786, + 32738, + 30333, + 30192, + 29753, + 29824, + 30603, + 30542, + 29451, + 29655, + 28456, + 33424, + 30985, + 32217, + 29788, + 33068, + 30212, + 31401, + 33069, + 29162, + 34331, + 32221, + 30833, + 29829, + 32959, + 33189, + 30938, + 31654, + 34281, + 29189, + 29358, + 31619, + 32624, + 33189, + 31059, + 29779, + 34079, + 29663, + 27997, + 25587, + 28451, + 29478, + 28921, + 30626, + 32358, + 32577, + 31262, + 32783, + 29853, + 30983, + 32093, + 30705, + 30099, + 30602, + 27922, + 30408, + 31098, + 33102, + 33725, + 32199, + 30183, + 28740, + 33134, + 31215, + 32775, + 32925, + 33582, + 28814, + 34420, + 31964, + 32031, + 30570, + 31699, + 31457, + 33034, + 30804, + 33566, + 30453, + 29933, + 32688, + 30494, + 28354, + 30697, + 33138, + 33903, + 33412, + 32371, + 30951, + 34708, + 32337, + 30699, + 29205, + 31119, + 31079, + 34028, + 33478, + 34187, + 30175, + 35884, + 31486, + 31849, + 33630, + 35088, + 31893 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 192, + 162, + 194, + 186, + 183, + 199, + 189, + 209, + 192, + 189, + 175, + 187, + 177, + 208, + 191, + 192, + 184, + 189, + 204, + 184, + 152, + 175, + 187, + 197, + 181, + 171, + 182, + 182, + 188, + 191, + 188, + 188, + 175, + 193, + 187, + 210, + 188, + 199, + 189, + 189, + 193, + 172, + 217, + 181, + 190, + 177, + 198, + 206, + 192, + 180, + 197, + 185, + 164, + 177, + 187, + 186, + 202, + 191, + 208, + 193, + 173, + 163, + 185, + 183, + 169, + 184, + 184, + 196, + 176, + 189, + 171, + 201, + 198, + 194, + 174, + 180, + 154, + 190, + 172, + 200, + 187, + 195, + 174, + 163, + 178, + 180, + 186, + 184, + 206, + 167, + 200, + 200, + 185, + 170, + 197, + 188, + 203, + 191, + 197, + 177, + 180, + 193, + 175, + 172, + 178, + 190, + 197, + 188, + 186, + 176, + 198, + 195, + 168, + 165, + 184, + 176, + 185, + 197, + 192, + 182, + 204, + 188, + 194, + 191, + 195, + 173 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.7873611111111112, + 0.6910416666666667, + 0.8003125, + 0.7083680555555555, + 0.7477199074074075, + 0.7803472222222222, + 0.7767592592592593, + 0.8258564814814814, + 0.7624768518518518, + 0.7927777777777778, + 0.7189699074074074, + 0.820474537037037, + 0.7146759259259259, + 0.790949074074074, + 0.7470717592592592, + 0.8066898148148148, + 0.7028009259259259, + 0.7176967592592592, + 0.8134953703703703, + 0.759363425925926, + 0.7148611111111111, + 0.7599074074074075, + 0.795162037037037, + 0.8234837962962963, + 0.7551967592592592, + 0.7462847222222222, + 0.7591550925925926, + 0.7422800925925926, + 0.7496759259259259, + 0.7483217592592593, + 0.7336574074074074, + 0.7578935185185185, + 0.728275462962963, + 0.8190277777777778, + 0.7622106481481481, + 0.7886342592592593, + 0.7475, + 0.7947800925925925, + 0.730162037037037, + 0.7512152777777777, + 0.8093750000000001, + 0.7129513888888889, + 0.8322453703703704, + 0.7730092592592593, + 0.7341435185185184, + 0.7079282407407407, + 0.8107638888888888, + 0.8207291666666667, + 0.7497800925925926, + 0.7535185185185185, + 0.8188888888888889, + 0.6932754629629629, + 0.6937962962962962, + 0.7555671296296297, + 0.7836921296296296, + 0.7771064814814815, + 0.796412037037037, + 0.7627314814814815, + 0.8604282407407408, + 0.7421296296296296, + 0.6987847222222222, + 0.6619097222222222, + 0.7033217592592593, + 0.7353587962962963, + 0.721712962962963, + 0.7634143518518518, + 0.8158796296296296, + 0.8155555555555556, + 0.7659490740740741, + 0.7844212962962963, + 0.7285995370370371, + 0.7793055555555556, + 0.7870949074074075, + 0.746273148148148, + 0.7396875, + 0.743136574074074, + 0.6766782407407407, + 0.7397800925925927, + 0.7367476851851852, + 0.7981250000000001, + 0.8158449074074073, + 0.7650810185185185, + 0.7534722222222222, + 0.6996990740740742, + 0.7954398148148148, + 0.7413888888888889, + 0.7857407407407407, + 0.7811689814814815, + 0.8030787037037036, + 0.6987384259259258, + 0.8103703703703703, + 0.7915046296296296, + 0.7884027777777778, + 0.7446643518518519, + 0.7745833333333333, + 0.7726967592592593, + 0.7945717592592593, + 0.7488888888888888, + 0.7882523148148147, + 0.7215162037037036, + 0.7314467592592592, + 0.7985185185185185, + 0.739201388888889, + 0.7079861111111111, + 0.7363194444444444, + 0.7954050925925925, + 0.8107175925925926, + 0.8025925925925925, + 0.7753125000000001, + 0.7360416666666666, + 0.8107060185185185, + 0.7671643518518518, + 0.7349537037037037, + 0.6917824074074074, + 0.7319212962962963, + 0.7243171296296297, + 0.7817708333333333, + 0.7708217592592592, + 0.7881828703703704, + 0.706724537037037, + 0.8263773148148149, + 0.7376157407407408, + 0.7409953703703703, + 0.7661574074074075, + 0.808773148148148, + 0.7266435185185185 + ] + } + ], + "hovertemplate": "nr barges=4
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "4", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "name": "4", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 27813, + 27797, + 28755, + 28983, + 28740, + 27916, + 28662, + 28767, + 28626, + 28537, + 28710, + 28265, + 29302, + 29896, + 30258, + 28776, + 29626, + 29291, + 30539, + 29807, + 30299, + 29758, + 29972, + 30075, + 29616, + 29453, + 29366, + 29713, + 30189, + 29317, + 30193, + 29670, + 30213, + 29550, + 31746, + 28651, + 29691, + 29644, + 29135, + 29099, + 29219, + 29325, + 30219, + 30306, + 29996, + 29485, + 29067, + 29908, + 29981, + 30050, + 29936, + 30245, + 29908, + 31217, + 30879, + 30324, + 30090, + 30168, + 30094, + 31364, + 30295, + 31078, + 31020, + 30696, + 31292, + 30531, + 30795, + 30434, + 31452, + 31160, + 28836, + 29099, + 29434, + 29420, + 29337, + 29418, + 30207, + 29742, + 31669, + 30103, + 30377, + 29494, + 29163, + 31103, + 30308, + 29790, + 30192, + 30262, + 30590, + 30566, + 30271, + 31191, + 30235, + 31039, + 30668, + 31448, + 30636, + 30206, + 30413, + 31045, + 30631, + 31479, + 30646, + 31525, + 31066, + 30196, + 30510, + 29649, + 31332, + 30306, + 30913, + 30602, + 30600, + 30852, + 31281, + 30023, + 30957, + 30642, + 31991, + 31190, + 31395, + 31409, + 31035, + 32437, + 31866, + 31695 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 165, + 158, + 176, + 155, + 168, + 173, + 160, + 157, + 170, + 161, + 164, + 161, + 169, + 188, + 182, + 167, + 170, + 162, + 185, + 172, + 177, + 167, + 167, + 159, + 150, + 174, + 161, + 195, + 174, + 152, + 178, + 163, + 160, + 166, + 198, + 168, + 188, + 183, + 167, + 163, + 168, + 180, + 179, + 180, + 175, + 169, + 158, + 186, + 184, + 181, + 160, + 183, + 183, + 177, + 190, + 184, + 184, + 186, + 164, + 174, + 149, + 181, + 187, + 187, + 185, + 168, + 184, + 157, + 159, + 162, + 151, + 174, + 169, + 170, + 163, + 169, + 197, + 169, + 192, + 168, + 182, + 175, + 169, + 193, + 170, + 165, + 189, + 189, + 183, + 166, + 184, + 189, + 167, + 182, + 184, + 190, + 181, + 168, + 165, + 173, + 176, + 191, + 171, + 188, + 153, + 163, + 189, + 164, + 177, + 170, + 187, + 152, + 174, + 181, + 179, + 156, + 190, + 179, + 175, + 152, + 171, + 181, + 162, + 178, + 176, + 158 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6714583333333333, + 0.6683217592592593, + 0.667662037037037, + 0.6819212962962963, + 0.6621296296296296, + 0.6612847222222222, + 0.6753009259259258, + 0.6623726851851852, + 0.6656365740740741, + 0.6533333333333333, + 0.6608449074074074, + 0.6709027777777777, + 0.6749537037037037, + 0.6839351851851853, + 0.6948263888888889, + 0.6651041666666667, + 0.6753703703703704, + 0.6694444444444444, + 0.6770601851851853, + 0.6795138888888889, + 0.690300925925926, + 0.6759027777777779, + 0.6641550925925926, + 0.6639004629629629, + 0.6557407407407407, + 0.6684375, + 0.6613888888888889, + 0.6831481481481482, + 0.6720023148148148, + 0.6481828703703704, + 0.6764583333333333, + 0.6744328703703704, + 0.6660300925925926, + 0.6694212962962963, + 0.6954050925925926, + 0.661261574074074, + 0.6751851851851852, + 0.6714351851851852, + 0.6621296296296296, + 0.6707638888888888, + 0.6641087962962963, + 0.6699999999999999, + 0.6716087962962963, + 0.6620138888888889, + 0.6667013888888889, + 0.6704050925925925, + 0.6658796296296297, + 0.6805787037037038, + 0.6649768518518518, + 0.6703935185185186, + 0.6628125, + 0.6758564814814815, + 0.6624305555555555, + 0.6820601851851852, + 0.6722569444444444, + 0.6757175925925926, + 0.6695949074074075, + 0.6718287037037037, + 0.6730324074074074, + 0.6882523148148149, + 0.6557407407407407, + 0.6773379629629629, + 0.6753819444444445, + 0.6643865740740741, + 0.6695717592592593, + 0.6630555555555556, + 0.6675, + 0.6553703703703704, + 0.6635300925925925, + 0.6644212962962963, + 0.6612962962962963, + 0.6597685185185186, + 0.6612962962962963, + 0.6630671296296297, + 0.6553587962962962, + 0.667962962962963, + 0.6906481481481482, + 0.653425925925926, + 0.7044097222222222, + 0.6625694444444444, + 0.6801851851851852, + 0.6681365740740741, + 0.6641666666666667, + 0.7006018518518519, + 0.6731597222222222, + 0.6606365740740741, + 0.6727314814814815, + 0.676087962962963, + 0.6815856481481481, + 0.6591435185185185, + 0.6763425925925927, + 0.7007523148148148, + 0.6749537037037037, + 0.6803240740740741, + 0.6644791666666666, + 0.6859953703703704, + 0.6652777777777777, + 0.6549074074074074, + 0.675462962962963, + 0.6644907407407408, + 0.6595717592592593, + 0.6832291666666667, + 0.6628009259259259, + 0.6743402777777777, + 0.659988425925926, + 0.6671990740740741, + 0.6764004629629629, + 0.655636574074074, + 0.6796296296296296, + 0.6597106481481482, + 0.6751736111111111, + 0.6605902777777778, + 0.6673842592592593, + 0.6747685185185185, + 0.668599537037037, + 0.6519675925925926, + 0.6755439814814815, + 0.6655092592592592, + 0.6889236111111111, + 0.6669097222222221, + 0.6709490740740741, + 0.670775462962963, + 0.6628356481481482, + 0.6815972222222223, + 0.6690393518518518, + 0.6630787037037037 + ] + } + ], + "hovertemplate": "nr barges=5
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "5", + "marker": { + "color": "#EF553B", + "symbol": "circle" + }, + "name": "5", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 30397, + 31297, + 31765, + 32212, + 31269, + 31201, + 31726, + 32802, + 31892, + 33098, + 32268, + 31049, + 31193, + 33099, + 32684, + 32591, + 31709, + 31399, + 33099, + 32988, + 32861, + 32866, + 32749, + 33341, + 33762, + 33602, + 33264, + 33348, + 33434, + 34023, + 33323, + 32379, + 32228, + 33981, + 32990, + 31783, + 32431, + 32455, + 32829, + 33430, + 33515, + 33812, + 33214, + 33673, + 32901, + 32258, + 32974, + 32220, + 32762, + 34401, + 33131, + 34161, + 33110, + 34454, + 33779, + 33993, + 32965, + 32905, + 31745, + 33337, + 33108, + 32682, + 32836, + 33226, + 32291, + 34293, + 33158, + 32781, + 32701, + 33972, + 33064, + 34119, + 33589, + 33433, + 33690, + 34625, + 34793, + 33415, + 33603, + 32964, + 34619, + 34131, + 34495, + 35071 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 173, + 160, + 154, + 166, + 175, + 156, + 166, + 171, + 180, + 175, + 175, + 156, + 152, + 166, + 162, + 167, + 174, + 146, + 176, + 164, + 173, + 167, + 176, + 169, + 188, + 168, + 172, + 166, + 167, + 167, + 175, + 172, + 168, + 170, + 157, + 170, + 189, + 167, + 167, + 167, + 169, + 193, + 157, + 171, + 147, + 159, + 159, + 171, + 148, + 175, + 153, + 171, + 160, + 176, + 172, + 159, + 175, + 171, + 163, + 158, + 161, + 152, + 167, + 157, + 158, + 181, + 169, + 151, + 184, + 175, + 168, + 172, + 158, + 166, + 163, + 165, + 172, + 155, + 162, + 171, + 169, + 164, + 171, + 162 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6628472222222223, + 0.6705092592592593, + 0.6726967592592592, + 0.6787731481481482, + 0.6697685185185186, + 0.6560763888888889, + 0.6712384259259259, + 0.6819212962962963, + 0.6722106481481481, + 0.6940277777777778, + 0.6830555555555556, + 0.6637731481481481, + 0.6606712962962963, + 0.6921296296296297, + 0.6868402777777778, + 0.6814351851851851, + 0.6655671296296296, + 0.658587962962963, + 0.6923611111111111, + 0.6810300925925926, + 0.6683912037037038, + 0.6811689814814814, + 0.6887962962962964, + 0.6795833333333333, + 0.6924421296296296, + 0.6861689814814814, + 0.6820833333333334, + 0.6785300925925926, + 0.6846180555555555, + 0.683275462962963, + 0.6855787037037038, + 0.6525925925925926, + 0.661087962962963, + 0.6885069444444444, + 0.6644328703703704, + 0.6672800925925926, + 0.6786342592592592, + 0.6815046296296297, + 0.6737500000000001, + 0.6818749999999999, + 0.682511574074074, + 0.7017129629629629, + 0.6765740740740741, + 0.6851388888888889, + 0.6564583333333334, + 0.6582291666666666, + 0.6658564814814815, + 0.6642708333333334, + 0.6551851851851852, + 0.6867361111111111, + 0.6634722222222222, + 0.6881365740740741, + 0.6692824074074074, + 0.6658217592592592, + 0.6680092592592594, + 0.6733333333333333, + 0.6712731481481482, + 0.6840046296296296, + 0.6644907407407408, + 0.6756481481481482, + 0.6769212962962964, + 0.664513888888889, + 0.6722685185185185, + 0.67625, + 0.6678240740740741, + 0.6917939814814815, + 0.6842824074074074, + 0.666724537037037, + 0.6720254629629631, + 0.6810879629629629, + 0.6743865740740741, + 0.6873263888888889, + 0.677800925925926, + 0.6759837962962963, + 0.6639467592592593, + 0.6921643518518518, + 0.6860532407407408, + 0.6719328703703704, + 0.6621527777777778, + 0.6654398148148148, + 0.6882060185185185, + 0.6758333333333333, + 0.677349537037037, + 0.6829976851851852 + ] + } + ], + "hovertemplate": "nr barges=6
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "6", + "marker": { + "color": "#00cc96", + "symbol": "circle" + }, + "name": "6", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 33659, + 34024, + 33372, + 35183, + 34619, + 35564, + 34846, + 35570, + 34540, + 35036, + 35487, + 34903, + 35455, + 35863, + 35316, + 34941, + 35665, + 36285, + 37055, + 36259, + 36221, + 35490, + 35537, + 35787, + 35416, + 36376, + 36223, + 36906, + 35126, + 35525, + 34793, + 35661, + 35667, + 35782, + 36108, + 36739 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 163, + 166, + 152, + 171, + 148, + 156, + 166, + 158, + 157, + 148, + 159, + 158, + 170, + 172, + 177, + 153, + 165, + 176, + 177, + 171, + 159, + 181, + 152, + 168, + 157, + 167, + 163, + 162, + 152, + 152, + 154, + 155, + 150, + 165, + 162, + 158 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6521990740740741, + 0.6734722222222222, + 0.667789351851852, + 0.6820717592592592, + 0.6758449074074074, + 0.6748032407407408, + 0.6662384259259259, + 0.6942824074074073, + 0.6566782407407408, + 0.6599305555555556, + 0.6712152777777778, + 0.668912037037037, + 0.6726504629629629, + 0.6764930555555555, + 0.6690856481481481, + 0.6712037037037036, + 0.6719560185185185, + 0.6815856481481481, + 0.6831018518518519, + 0.6752777777777778, + 0.6641782407407407, + 0.6722222222222222, + 0.6852083333333333, + 0.6661111111111111, + 0.6724305555555555, + 0.6738310185185186, + 0.6801967592592592, + 0.6649421296296296, + 0.6562962962962963, + 0.6654745370370371, + 0.6540740740740741, + 0.6571643518518518, + 0.6668518518518519, + 0.6744675925925926, + 0.6549884259259259, + 0.6639583333333333 + ] + } + ], + "hovertemplate": "nr barges=7
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "7", + "marker": { + "color": "#ab63fa", + "symbol": "circle" + }, + "name": "7", + "showlegend": true, + "type": "splom" + } + ], + "layout": { + "dragmode": "select", + "legend": { + "title": { + "text": "nr barges" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.express as px\n", + "scenarios['nr barges'] = [str(x) for x in scenarios['# barges']]\n", + "fig = px.scatter_matrix(scenarios[scenarios['# barges'].isin([4,5,6,7])],\n", + " dimensions=['Σ cost','Σ MWh','duration'],\n", + " color=\"nr barges\")\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "a2125fd6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waitingnr bargescriterionfleet
scenario
46383.30.767164269731781.3881943Σ cost['Barge III', 'Extra 2', 'Extra 3']
46383.30.767164269731781.3881943duration['Barge III', 'Extra 2', 'Extra 3']
92381.60.799988305941721.6133333Σ MWh['Carrier A', 'Carrier C', 'Extra 2']
190499.80.661910255871630.0150004Σ cost['Barge I', 'Barge II', 'Extra 1', 'Extra 2']
190499.80.661910255871630.0150004duration['Barge I', 'Barge II', 'Extra 1', 'Extra 2']
149490.70.714861297511520.7194444Σ MWh['Carrier A', 'Carrier B', 'Extra 2', 'Extra 3']
2565100.00.668322277971580.0000005Σ cost['Barge I', 'Barge III', 'Extra 1', 'Extra 2',...
2845100.00.648183293171520.0000005duration['Carrier A', 'Carrier C', 'Barge II', 'Extra ...
3155100.00.655741302951490.0000005Σ MWh['Carrier A', 'Carrier B', 'Barge II', 'Barge ...
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting \\\n", + "scenario \n", + "46 3 83.3 0.767164 26973 178 1.388194 \n", + "46 3 83.3 0.767164 26973 178 1.388194 \n", + "92 3 81.6 0.799988 30594 172 1.613333 \n", + "190 4 99.8 0.661910 25587 163 0.015000 \n", + "190 4 99.8 0.661910 25587 163 0.015000 \n", + "149 4 90.7 0.714861 29751 152 0.719444 \n", + "256 5 100.0 0.668322 27797 158 0.000000 \n", + "284 5 100.0 0.648183 29317 152 0.000000 \n", + "315 5 100.0 0.655741 30295 149 0.000000 \n", + "\n", + " nr barges criterion \\\n", + "scenario \n", + "46 3 Σ cost \n", + "46 3 duration \n", + "92 3 Σ MWh \n", + "190 4 Σ cost \n", + "190 4 duration \n", + "149 4 Σ MWh \n", + "256 5 Σ cost \n", + "284 5 duration \n", + "315 5 Σ MWh \n", + "\n", + " fleet \n", + "scenario \n", + "46 ['Barge III', 'Extra 2', 'Extra 3'] \n", + "46 ['Barge III', 'Extra 2', 'Extra 3'] \n", + "92 ['Carrier A', 'Carrier C', 'Extra 2'] \n", + "190 ['Barge I', 'Barge II', 'Extra 1', 'Extra 2'] \n", + "190 ['Barge I', 'Barge II', 'Extra 1', 'Extra 2'] \n", + "149 ['Carrier A', 'Carrier B', 'Extra 2', 'Extra 3'] \n", + "256 ['Barge I', 'Barge III', 'Extra 1', 'Extra 2',... \n", + "284 ['Carrier A', 'Carrier C', 'Barge II', 'Extra ... \n", + "315 ['Carrier A', 'Carrier B', 'Barge II', 'Barge ... " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# list top options for all # barges x KPI\n", + "li = []\n", + "criterion = []\n", + "fleet = []\n", + "for nb in range(3,6):\n", + " tmp = scenarios[scenarios['# barges']==nb]\n", + " for key in ['Σ cost','duration','Σ MWh']:\n", + " idx = tmp[[key]].idxmin().values[0]\n", + " criterion.append(key)\n", + " fleet.append(str(fleets[idx]))\n", + " li.append(tmp[tmp.index==idx])\n", + "opt = pd.concat(li)\n", + "opt['criterion']=criterion\n", + "opt['fleet'] = fleet\n", + "opt.index.name='scenario'\n", + "opt.sort_values('# barges')\n", + "opt.to_csv('best.csv')\n", + "opt" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9449fab9", + "metadata": {}, + "outputs": [], + "source": [ + "scenario_index = 153" + ] + }, + { + "cell_type": "markdown", + "id": "a81e634c", + "metadata": {}, + "source": [ + "## Example plots for 1 chosen scenario" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "9aa8b351", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waitingnr barges
153488.70.755197303331810.9088894
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting \\\n", + "153 4 88.7 0.755197 30333 181 0.908889 \n", + "\n", + " nr barges \n", + "153 4 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vessels = results[scenario_index]['vessels']\n", + "sites = results[scenario_index]['sites']\n", + "activities = results[scenario_index]['activities']\n", + "\n", + "cutter = vessels[cutter_name]\n", + "to_site = sites[to_site_name]\n", + "from_site = sites[from_site_name]\n", + "scenarios[scenarios.index==scenario_index]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "78603c28", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# tripsstartfinishamount sumMWhMWh waitingduration actualduration theorycost actualproduction actualproduction theoryoccupancy [%]
name
Barge III51970-01-01 00:00:001970-01-01 16:24:3525.031.7549720.03275059075.053180.03419.00.0021160.00235190.0
Carrier B61970-01-01 00:00:001970-01-01 16:46:0530.030.5454940.04132860365.052926.04192.00.0029820.00340187.7
Cutter T61970-01-01 00:35:071970-01-01 16:42:31100.050.9088890.90888958044.051500.016795.00.0103370.01165088.7
Extra 161970-01-01 00:00:001970-01-01 18:07:2921.035.2367610.04092865249.057882.03021.00.0019310.00217788.7
Extra 361970-01-01 00:00:001970-01-01 17:26:1724.032.2966280.05079462777.053634.02906.00.0022940.00268585.4
\n", + "
" + ], + "text/plain": [ + " # trips start finish amount sum \\\n", + "name \n", + "Barge III 5 1970-01-01 00:00:00 1970-01-01 16:24:35 25.0 \n", + "Carrier B 6 1970-01-01 00:00:00 1970-01-01 16:46:05 30.0 \n", + "Cutter T 6 1970-01-01 00:35:07 1970-01-01 16:42:31 100.0 \n", + "Extra 1 6 1970-01-01 00:00:00 1970-01-01 18:07:29 21.0 \n", + "Extra 3 6 1970-01-01 00:00:00 1970-01-01 17:26:17 24.0 \n", + "\n", + " MWh MWh waiting duration actual duration theory \\\n", + "name \n", + "Barge III 31.754972 0.032750 59075.0 53180.0 \n", + "Carrier B 30.545494 0.041328 60365.0 52926.0 \n", + "Cutter T 50.908889 0.908889 58044.0 51500.0 \n", + "Extra 1 35.236761 0.040928 65249.0 57882.0 \n", + "Extra 3 32.296628 0.050794 62777.0 53634.0 \n", + "\n", + " cost actual production actual production theory occupancy [%] \n", + "name \n", + "Barge III 3419.0 0.002116 0.002351 90.0 \n", + "Carrier B 4192.0 0.002982 0.003401 87.7 \n", + "Cutter T 16795.0 0.010337 0.011650 88.7 \n", + "Extra 1 3021.0 0.001931 0.002177 88.7 \n", + "Extra 3 2906.0 0.002294 0.002685 85.4 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# determine occupancy per vessel\n", + "\n", + "fleet, project = simulation_analysis(vessels, cutter_name, total_amount, vessel_cost, vessel_power, activities)\n", + "fleet.sort_values(by=[\"name\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "8f993fc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(0,41,210)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(12,53,222)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(24,65,234)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(36,77,246)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(48,89,2)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge III", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(60,101,14)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(72,113,26)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(84,125,38)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(96,137,50)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(108,149,62)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(120,161,74)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(132,173,86)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(144,185,98)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(156,197,110)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(168,209,122)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(180,221,134)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(192,233,146)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(204,245,158)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(216,1,170)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(228,13,182)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T18:07:29" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# activities per vessel\n", + "\n", + "fig = get_gantt_chart(vessels, id_map=activities)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "b7331bd0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(158,135,101)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(128,217,241)", + "color": "rgb(179,156,122)", "width": 10 }, "mode": "lines", - "name": "sailing empty:barge_0", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T00:45:35", - "1970-01-01T00:45:35", - "1970-01-01T01:31:10", - "1970-01-01T01:31:10", - "1970-01-01T01:31:10", - "1970-01-01T05:29:17", - "1970-01-01T05:29:17", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T09:13:17", - "1970-01-01T09:13:17", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T12:57:17", - "1970-01-01T12:57:17", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T16:41:17", - "1970-01-01T16:41:17", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T20:25:17", - "1970-01-01T20:25:17", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-02T00:09:17", - "1970-01-02T00:09:17", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -675,84 +6977,114 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(142,231,255)", + "color": "rgb(200,177,143)", "width": 10 }, "mode": "lines", - "name": "sailing full:barge_0", + "name": "loading: loading Barge III", "type": "scatter", "x": [ - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:58:07", - "1970-01-01T03:58:07", - "1970-01-01T03:58:07", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T07:42:07", - "1970-01-01T07:42:07", - "1970-01-01T07:42:07", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:26:07", - "1970-01-01T11:26:07", - "1970-01-01T11:26:07", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T15:10:07", - "1970-01-01T15:10:07", - "1970-01-01T15:10:07", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:54:07", - "1970-01-01T18:54:07", - "1970-01-01T18:54:07", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:38:07", - "1970-01-01T22:38:07", - "1970-01-01T22:38:07", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:22:07", - "1970-01-02T02:22:07", - "1970-01-02T02:22:07" + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" ], "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -760,94 +7092,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(156,245,13)", + "color": "rgb(221,198,164)", "width": 10 }, "mode": "lines", - "name": "sailing empty:barge_1", + "name": "loading: loading Extra 1", "type": "scatter", "x": [ - "1970-01-01T00:37:56", - "1970-01-01T00:37:56", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T03:43:00", - "1970-01-01T03:43:00", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T06:48:04", - "1970-01-01T06:48:04", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T09:53:08", - "1970-01-01T09:53:08", - "1970-01-01T10:31:04", - "1970-01-01T10:31:04", - "1970-01-01T10:31:04", - "1970-01-01T13:07:40", - "1970-01-01T13:07:40", - "1970-01-01T13:45:36", - "1970-01-01T13:45:36", - "1970-01-01T13:45:36", - "1970-01-01T16:51:40", - "1970-01-01T16:51:40", - "1970-01-01T17:29:36", - "1970-01-01T17:29:36", - "1970-01-01T17:29:36", - "1970-01-01T20:35:40", - "1970-01-01T20:35:40", - "1970-01-01T21:13:36", - "1970-01-01T21:13:36", - "1970-01-01T21:13:36", - "1970-01-02T00:19:40", - "1970-01-02T00:19:40", - "1970-01-02T00:57:36", - "1970-01-02T00:57:36", - "1970-01-02T00:57:36" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -855,94 +7227,74 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(170,3,27)", + "color": "rgb(242,219,185)", "width": 10 }, "mode": "lines", - "name": "unloading:barge_1", + "name": "unloading: unloading Carrier B", "type": "scatter", "x": [ - "1970-01-01T02:27:08", - "1970-01-01T02:27:08", - "1970-01-01T03:05:04", - "1970-01-01T03:05:04", - "1970-01-01T03:05:04", - "1970-01-01T05:32:12", - "1970-01-01T05:32:12", - "1970-01-01T06:10:08", - "1970-01-01T06:10:08", - "1970-01-01T06:10:08", - "1970-01-01T08:37:16", - "1970-01-01T08:37:16", - "1970-01-01T09:15:12", - "1970-01-01T09:15:12", - "1970-01-01T09:15:12", - "1970-01-01T11:51:48", - "1970-01-01T11:51:48", - "1970-01-01T12:29:44", - "1970-01-01T12:29:44", - "1970-01-01T12:29:44", - "1970-01-01T15:35:48", - "1970-01-01T15:35:48", - "1970-01-01T16:13:44", - "1970-01-01T16:13:44", - "1970-01-01T16:13:44", - "1970-01-01T19:19:48", - "1970-01-01T19:19:48", - "1970-01-01T19:57:44", - "1970-01-01T19:57:44", - "1970-01-01T19:57:44", - "1970-01-01T23:03:48", - "1970-01-01T23:03:48", - "1970-01-01T23:41:44", - "1970-01-01T23:41:44", - "1970-01-01T23:41:44", - "1970-01-02T02:47:48", - "1970-01-02T02:47:48", - "1970-01-02T03:25:44", - "1970-01-02T03:25:44", - "1970-01-02T03:25:44" + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] }, @@ -950,174 +7302,74 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(184,17,41)", + "color": "rgb(7,240,206)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "unloading: unloading Extra 3", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] }, @@ -1125,94 +7377,274 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(198,31,55)", + "color": "rgb(28,5,227)", "width": 10 }, "mode": "lines", - "name": "basic activity:barge_1", + "name": "unloading: unloading Barge III", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:37:56", - "1970-01-01T00:37:56", - "1970-01-01T00:37:56", - "1970-01-01T03:05:04", - "1970-01-01T03:05:04", - "1970-01-01T03:43:00", - "1970-01-01T03:43:00", - "1970-01-01T03:43:00", - "1970-01-01T06:10:08", - "1970-01-01T06:10:08", - "1970-01-01T06:48:04", - "1970-01-01T06:48:04", - "1970-01-01T06:48:04", - "1970-01-01T09:15:12", - "1970-01-01T09:15:12", - "1970-01-01T09:53:08", - "1970-01-01T09:53:08", - "1970-01-01T09:53:08", - "1970-01-01T12:29:44", - "1970-01-01T12:29:44", - "1970-01-01T13:07:40", - "1970-01-01T13:07:40", - "1970-01-01T13:07:40", - "1970-01-01T16:13:44", - "1970-01-01T16:13:44", - "1970-01-01T16:51:40", - "1970-01-01T16:51:40", - "1970-01-01T16:51:40", - "1970-01-01T19:57:44", - "1970-01-01T19:57:44", - "1970-01-01T20:35:40", - "1970-01-01T20:35:40", - "1970-01-01T20:35:40", - "1970-01-01T23:41:44", - "1970-01-01T23:41:44", - "1970-01-02T00:19:40", - "1970-01-02T00:19:40", - "1970-01-02T00:19:40" + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(49,26,248)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(70,47,13)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -1220,94 +7652,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(212,45,69)", + "color": "rgb(91,68,34)", "width": 10 }, "mode": "lines", - "name": "sailing full:barge_1", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:27:08", - "1970-01-01T02:27:08", - "1970-01-01T02:27:08", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T05:32:12", - "1970-01-01T05:32:12", - "1970-01-01T05:32:12", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T08:37:16", - "1970-01-01T08:37:16", - "1970-01-01T08:37:16", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:51:48", - "1970-01-01T11:51:48", - "1970-01-01T11:51:48", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:35:48", - "1970-01-01T15:35:48", - "1970-01-01T15:35:48", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:19:48", - "1970-01-01T19:19:48", - "1970-01-01T19:19:48", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:03:48", - "1970-01-01T23:03:48", - "1970-01-01T23:03:48", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:47:48", - "1970-01-02T02:47:48", - "1970-01-02T02:47:48" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -1315,84 +7787,114 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(226,59,83)", + "color": "rgb(112,89,55)", "width": 10 }, "mode": "lines", - "name": "sailing full:barge_2", + "name": "loading: loading Barge III", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:09:44", - "1970-01-01T03:09:44", - "1970-01-01T03:09:44", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T06:26:52", - "1970-01-01T06:26:52", - "1970-01-01T06:26:52", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:44:00", - "1970-01-01T09:44:00", - "1970-01-01T09:44:00", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T13:01:08", - "1970-01-01T13:01:08", - "1970-01-01T13:01:08", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T16:18:24", - "1970-01-01T16:18:24", - "1970-01-01T16:18:24", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T20:02:24", - "1970-01-01T20:02:24", - "1970-01-01T20:02:24", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:46:24", - "1970-01-01T23:46:24", - "1970-01-01T23:46:24" + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" ], "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -1400,409 +7902,1139 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(240,73,97)", + "color": "rgb(133,110,76)", "width": 10 }, - "mode": "lines", - "name": "loading:barge_2", - "type": "scatter", - "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" - ], - "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null - ] + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(254,87,111)", - "width": 10 - }, - "mode": "lines", - "name": "sailing empty:barge_2", - "type": "scatter", - "x": [ - "1970-01-01T00:38:52", - "1970-01-01T00:38:52", - "1970-01-01T01:17:44", - "1970-01-01T01:17:44", - "1970-01-01T01:17:44", - "1970-01-01T04:27:28", - "1970-01-01T04:27:28", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T07:44:36", - "1970-01-01T07:44:36", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T11:01:44", - "1970-01-01T11:01:44", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T14:18:52", - "1970-01-01T14:18:52", - "1970-01-01T14:57:44", - "1970-01-01T14:57:44", - "1970-01-01T14:57:44", - "1970-01-01T17:36:08", - "1970-01-01T17:36:08", - "1970-01-01T18:15:00", - "1970-01-01T18:15:00", - "1970-01-01T18:15:00", - "1970-01-01T21:20:08", - "1970-01-01T21:20:08", - "1970-01-01T21:59:00", - "1970-01-01T21:59:00", - "1970-01-01T21:59:00" - ], - "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null - ] + "title": { + "text": "GANTT Chart" }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(12,101,125)", - "width": 10 - }, - "mode": "lines", - "name": "unloading:barge_2", - "type": "scatter", - "x": [ - "1970-01-01T03:09:44", - "1970-01-01T03:09:44", - "1970-01-01T03:48:36", - "1970-01-01T03:48:36", - "1970-01-01T03:48:36", - "1970-01-01T06:26:52", - "1970-01-01T06:26:52", - "1970-01-01T07:05:44", - "1970-01-01T07:05:44", - "1970-01-01T07:05:44", - "1970-01-01T09:44:00", - "1970-01-01T09:44:00", - "1970-01-01T10:22:52", - "1970-01-01T10:22:52", - "1970-01-01T10:22:52", - "1970-01-01T13:01:08", - "1970-01-01T13:01:08", - "1970-01-01T13:40:00", - "1970-01-01T13:40:00", - "1970-01-01T13:40:00", - "1970-01-01T16:18:24", - "1970-01-01T16:18:24", - "1970-01-01T16:57:16", - "1970-01-01T16:57:16", - "1970-01-01T16:57:16", - "1970-01-01T20:02:24", - "1970-01-01T20:02:24", - "1970-01-01T20:41:16", - "1970-01-01T20:41:16", - "1970-01-01T20:41:16", - "1970-01-01T23:46:24", - "1970-01-01T23:46:24", - "1970-01-02T00:25:16", - "1970-01-02T00:25:16", - "1970-01-02T00:25:16" + "xaxis": { + "range": [ + "1970-01-01T00:35:07", + "1970-01-01T18:07:29" ], - "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null - ] + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# activities per site and cutter\n", + "\n", + "fig = get_gantt_chart([from_site, to_site, cutter], id_map=activities)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "6141ac61", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ { "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(26,115,139)", + "color": "rgb(186,249,61)", "width": 10 }, "mode": "lines", - "name": "basic activity:barge_2", + "name": "loading: loading Carrier B", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:38:52", - "1970-01-01T00:38:52", - "1970-01-01T00:38:52", - "1970-01-01T03:48:36", - "1970-01-01T03:48:36", - "1970-01-01T04:27:28", - "1970-01-01T04:27:28", - "1970-01-01T04:27:28", - "1970-01-01T07:05:44", - "1970-01-01T07:05:44", - "1970-01-01T07:44:36", - "1970-01-01T07:44:36", - "1970-01-01T07:44:36", - "1970-01-01T10:22:52", - "1970-01-01T10:22:52", - "1970-01-01T11:01:44", - "1970-01-01T11:01:44", - "1970-01-01T11:01:44", - "1970-01-01T13:40:00", - "1970-01-01T13:40:00", - "1970-01-01T14:18:52", - "1970-01-01T14:18:52", - "1970-01-01T14:18:52", - "1970-01-01T16:57:16", - "1970-01-01T16:57:16", - "1970-01-01T17:36:08", - "1970-01-01T17:36:08", - "1970-01-01T17:36:08", - "1970-01-01T20:41:16", - "1970-01-01T20:41:16", - "1970-01-01T21:20:08", - "1970-01-01T21:20:08", - "1970-01-01T21:20:08" + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" ], "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", null ] }, @@ -1810,154 +9042,64 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(40,129,153)", + "color": "rgb(250,57,125)", "width": 10 }, "mode": "lines", - "name": "loading:barge_2", + "name": "loading: loading Barge III", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" ], "y": [ - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "barge_2", - "barge_2", - "barge_2", - "barge_2", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", null ] }, @@ -1965,174 +9107,74 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(54,143,167)", + "color": "rgb(58,121,189)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "loading: loading Extra 1", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" ], "y": [ - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "barge_1", - "barge_1", - "barge_1", - "barge_1", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", null ] }, @@ -2140,154 +9182,74 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(68,157,181)", + "color": "rgb(122,185,253)", "width": 10 }, "mode": "lines", - "name": "loading:barge_0", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "barge_0", - "barge_0", - "barge_0", - "barge_0", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + null, + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + null, + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + null, + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + null, + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + null, + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", + "loading: loading Extra 3", null ] } @@ -2671,11 +9633,10 @@ ], "scatter": [ { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -3103,275 +10064,3818 @@ "zerolinecolor": "white", "zerolinewidth": 2 }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:35:07", + "1970-01-01T16:42:31" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot only activities whose namespace (first letters) matches load*: 1 activty_type\n", + "\n", + "flat = pd.DataFrame(flatten(activities))\n", + "loading = list(flat[flat['ActivityName'].str.startswith('loading')]['activity'].values)\n", + "fig = get_gantt_chart(loading)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "406b5d85", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot overall amount s-curve\n", + "\n", + "fig = get_step_chart([from_site, to_site, *vessels.values()])" + ] + }, + { + "cell_type": "markdown", + "id": "3e81de2b", + "metadata": {}, + "source": [ + "## Export data to BI for interactive a posteriori analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "87cd1b2f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SiteNameSiteIDSiteClass
0Trench1892dff0-f0a6-468d-a068-3908f10dcf13Site
1Reclamationb6bde0b5-d67a-4662-9f84-aa3279bdfc40Site
\n", + "
" + ], + "text/plain": [ + " SiteName SiteID SiteClass\n", + "0 Trench 1892dff0-f0a6-468d-a068-3908f10dcf13 Site\n", + "1 Reclamation b6bde0b5-d67a-4662-9f84-aa3279bdfc40 Site" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "export_concepts(sites, 'Site', 'concepts_sites.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "5e5459b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VesselNameVesselIDVesselClass
0Carrier Be61f2465-e014-42d0-890a-adaa4bb5f97eTransportProcessingResource
1Barge III81c9fd23-a988-47ff-a5f8-5ebcd859d1d3TransportProcessingResource
2Extra 13b5a39e9-72f6-4d6a-a953-1a366cb5e421TransportProcessingResource
3Extra 3720c1381-84d7-473b-89a4-f071c77192fdTransportProcessingResource
4Cutter Tfc40b43a-3519-47e7-b445-b948a67019aaTransportProcessingResource
\n", + "
" + ], + "text/plain": [ + " VesselName VesselID \\\n", + "0 Carrier B e61f2465-e014-42d0-890a-adaa4bb5f97e \n", + "1 Barge III 81c9fd23-a988-47ff-a5f8-5ebcd859d1d3 \n", + "2 Extra 1 3b5a39e9-72f6-4d6a-a953-1a366cb5e421 \n", + "3 Extra 3 720c1381-84d7-473b-89a4-f071c77192fd \n", + "4 Cutter T fc40b43a-3519-47e7-b445-b948a67019aa \n", + "\n", + " VesselClass \n", + "0 TransportProcessingResource \n", + "1 TransportProcessingResource \n", + "2 TransportProcessingResource \n", + "3 TransportProcessingResource \n", + "4 TransportProcessingResource " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "export_concepts(vessels, 'Vessel', 'concepts_vessels.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "7e17551f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ConceptNameConceptIDConceptClass
0Trench1892dff0-f0a6-468d-a068-3908f10dcf13Site
1Reclamationb6bde0b5-d67a-4662-9f84-aa3279bdfc40Site
2Carrier Be61f2465-e014-42d0-890a-adaa4bb5f97eTransportProcessingResource
\n", + "
" + ], + "text/plain": [ + " ConceptName ConceptID \\\n", + "0 Trench 1892dff0-f0a6-468d-a068-3908f10dcf13 \n", + "1 Reclamation b6bde0b5-d67a-4662-9f84-aa3279bdfc40 \n", + "2 Carrier B e61f2465-e014-42d0-890a-adaa4bb5f97e \n", + "\n", + " ConceptClass \n", + "0 Site \n", + "1 Site \n", + "2 TransportProcessingResource " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "concepts = export_concepts({**sites,**vessels}, 'Concept', 'concepts.csv')\n", + "concepts.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "f2d89e84", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityIDActivityNameActivityClassConceptIDConceptNameConceptMode
07301e2e1-22e5-4315-a939-365f5a579186loading: loading Carrier BShiftAmountActivityfc40b43a-3519-47e7-b445-b948a67019aaCutter Tprocessor
18a34a25b-b424-401a-b5b9-7a4c71bc595dunloading: unloading Carrier BShiftAmountActivitye61f2465-e014-42d0-890a-adaa4bb5f97eCarrier Bprocessor
25e3dc15f-2bcb-44d4-9729-75d6debfdcd6loading: loading Barge IIIShiftAmountActivityfc40b43a-3519-47e7-b445-b948a67019aaCutter Tprocessor
\n", + "
" + ], + "text/plain": [ + " ActivityID ActivityName \\\n", + "0 7301e2e1-22e5-4315-a939-365f5a579186 loading: loading Carrier B \n", + "1 8a34a25b-b424-401a-b5b9-7a4c71bc595d unloading: unloading Carrier B \n", + "2 5e3dc15f-2bcb-44d4-9729-75d6debfdcd6 loading: loading Barge III \n", + "\n", + " ActivityClass ConceptID ConceptName \\\n", + "0 ShiftAmountActivity fc40b43a-3519-47e7-b445-b948a67019aa Cutter T \n", + "1 ShiftAmountActivity e61f2465-e014-42d0-890a-adaa4bb5f97e Carrier B \n", + "2 ShiftAmountActivity fc40b43a-3519-47e7-b445-b948a67019aa Cutter T \n", + "\n", + " ConceptMode \n", + "0 processor \n", + "1 processor \n", + "2 processor " + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "activity_resources = export_activity_resources(activities, 'resources.csv')\n", + "activity_resources.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "51c8b4d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityIDActivityNameActivityClassParentIdParentNameParentLevelactivityProcessorIDMoverIDOriginIDDestinationIDProcessorNameMoverNameOriginNameDestinationName
00f9d7666-a6c9-4b05-933d-1614eb909208while_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
1ec479225-5707-4e0d-8398-7903cb35637awhile_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
2c10945b0-ca59-4a90-a0ea-5db35e1df273while_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
\n", + "
" + ], + "text/plain": [ + " ActivityID \\\n", + "0 0f9d7666-a6c9-4b05-933d-1614eb909208 \n", + "1 ec479225-5707-4e0d-8398-7903cb35637a \n", + "2 c10945b0-ca59-4a90-a0ea-5db35e1df273 \n", + "\n", + " ActivityName ActivityClass ParentId \\\n", + "0 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "1 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "2 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "\n", + " ParentName ParentLevel activity \\\n", + "0 0 \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampStarttripTimestampStopActivityIDTimestampDtActivityNameActivityClass
01970-01-0111970-01-01 02:27:010f9d7666-a6c9-4b05-933d-1614eb9092088821.0while_sequential_activity_subcycle:while_seque...WhileActivity
811970-01-0111970-01-01 00:45:1247674781-c2d9-4ee2-8615-64c29fdd5ff02712.0sequential_activity_subcycle:sequential_activi...SequentialActivity
821970-01-0121970-01-01 03:05:0747674781-c2d9-4ee2-8615-64c29fdd5ff011107.0sequential_activity_subcycle:sequential_activi...SequentialActivity
\n", + "
" + ], + "text/plain": [ + " TimestampStart trip TimestampStop \\\n", + "0 1970-01-01 1 1970-01-01 02:27:01 \n", + "81 1970-01-01 1 1970-01-01 00:45:12 \n", + "82 1970-01-01 2 1970-01-01 03:05:07 \n", + "\n", + " ActivityID TimestampDt \\\n", + "0 0f9d7666-a6c9-4b05-933d-1614eb909208 8821.0 \n", + "81 47674781-c2d9-4ee2-8615-64c29fdd5ff0 2712.0 \n", + "82 47674781-c2d9-4ee2-8615-64c29fdd5ff0 11107.0 \n", + "\n", + " ActivityName ActivityClass \n", + "0 while_sequential_activity_subcycle:while_seque... WhileActivity \n", + "81 sequential_activity_subcycle:sequential_activi... SequentialActivity \n", + "82 sequential_activity_subcycle:sequential_activi... SequentialActivity " + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "activities_log = export_activity_log(activities, 'activity_logs.csv')\n", + "activities_log.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "bc385376", + "metadata": {}, + "source": [ + "## Verification/sanity checks" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "a3e8f617", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'', 'Barge III', 'Carrier B', 'Extra 1', 'Extra 3'}" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['MoverName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "acfbb1ef", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'', 'Barge III', 'Carrier B', 'Cutter T', 'Extra 1', 'Extra 3'}" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['ProcessorName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b680fb2a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'', 'Barge III', 'Carrier B', 'Extra 1', 'Extra 3', 'Trench'}" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['OriginName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "1ce51171", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'', 'Barge III', 'Carrier B', 'Extra 1', 'Extra 3', 'Reclamation', 'Trench'}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['DestinationName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "49d35cd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'MoveActivity', 'SequentialActivity', 'ShiftAmountActivity', 'WhileActivity'}" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['ActivityClass'])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "70998a10", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'', 'Barge III', 'Carrier B', 'Extra 1', 'Extra 3', 'Trench'}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['OriginName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "3cc47034", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'destination', 'mover', 'origin', 'processor'}" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activity_resources['ConceptMode'])" + ] + }, + { + "cell_type": "markdown", + "id": "9d132a51", + "metadata": {}, + "source": [ + "# Visualize critical path of chosen optimal scenario" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "63db1761", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "red", + "width": 14 + }, + "mode": "lines", + "name": "critical_path", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 3", + "Extra 3", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 1", + "Extra 1", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 3", + "Extra 3", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 1", + "Extra 1", + null, + "Trench", + "Trench", + null, + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + null, + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(18,114,138)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(27,123,147)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(36,132,156)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(45,141,165)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(54,150,174)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge III", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(63,159,183)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(72,168,192)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(81,177,201)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(90,186,210)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(99,195,219)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(108,204,228)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] }, - "title": { - "text": "GANTT Chart" + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(117,213,237)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] }, - "xaxis": { - "range": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(126,222,246)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 3", + "type": "scatter", + "x": [ "1970-01-01T00:00:00", - "1970-01-02T03:25:44" + "1970-01-01T00:00:00", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34" ], - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Time" - } + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(135,231,255)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(144,240,8)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(153,249,17)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(162,2,26)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(171,11,35)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(180,20,44)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null + ] }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Activities" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plot.get_gantt_chart([*vessels.values()], id_map=[activities[x] for x in activities])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "b7331bd0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ { "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(12,219,23)", + "color": "rgb(189,29,53)", "width": 10 }, "mode": "lines", - "name": "loading:barge_2", + "name": "loading: loading Extra 1", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", null ] }, @@ -3379,174 +13883,194 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(40,247,51)", + "color": "rgb(198,38,62)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "loading: loading Carrier B", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", null ] }, @@ -3554,154 +14078,194 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(68,19,79)", + "color": "rgb(207,47,71)", "width": 10 }, "mode": "lines", - "name": "loading:barge_0", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", null ] }, @@ -3709,84 +14273,164 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(96,47,107)", + "color": "rgb(216,56,80)", "width": 10 }, "mode": "lines", - "name": "unloading:barge_2", + "name": "loading: loading Barge III", "type": "scatter", "x": [ - "1970-01-01T03:09:44", - "1970-01-01T03:09:44", - "1970-01-01T03:48:36", - "1970-01-01T03:48:36", - "1970-01-01T03:48:36", - "1970-01-01T06:26:52", - "1970-01-01T06:26:52", - "1970-01-01T07:05:44", - "1970-01-01T07:05:44", - "1970-01-01T07:05:44", - "1970-01-01T09:44:00", - "1970-01-01T09:44:00", - "1970-01-01T10:22:52", - "1970-01-01T10:22:52", - "1970-01-01T10:22:52", - "1970-01-01T13:01:08", - "1970-01-01T13:01:08", - "1970-01-01T13:40:00", - "1970-01-01T13:40:00", - "1970-01-01T13:40:00", - "1970-01-01T16:18:24", - "1970-01-01T16:18:24", - "1970-01-01T16:57:16", - "1970-01-01T16:57:16", - "1970-01-01T16:57:16", - "1970-01-01T20:02:24", - "1970-01-01T20:02:24", - "1970-01-01T20:41:16", - "1970-01-01T20:41:16", - "1970-01-01T20:41:16", - "1970-01-01T23:46:24", - "1970-01-01T23:46:24", - "1970-01-02T00:25:16", - "1970-01-02T00:25:16", - "1970-01-02T00:25:16" + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" ], "y": [ - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", null ] }, @@ -3794,94 +14438,194 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(124,75,135)", + "color": "rgb(225,65,89)", "width": 10 }, "mode": "lines", - "name": "unloading:barge_1", + "name": "loading: loading Extra 1", "type": "scatter", "x": [ - "1970-01-01T02:27:08", - "1970-01-01T02:27:08", - "1970-01-01T03:05:04", - "1970-01-01T03:05:04", - "1970-01-01T03:05:04", - "1970-01-01T05:32:12", - "1970-01-01T05:32:12", - "1970-01-01T06:10:08", - "1970-01-01T06:10:08", - "1970-01-01T06:10:08", - "1970-01-01T08:37:16", - "1970-01-01T08:37:16", - "1970-01-01T09:15:12", - "1970-01-01T09:15:12", - "1970-01-01T09:15:12", - "1970-01-01T11:51:48", - "1970-01-01T11:51:48", - "1970-01-01T12:29:44", - "1970-01-01T12:29:44", - "1970-01-01T12:29:44", - "1970-01-01T15:35:48", - "1970-01-01T15:35:48", - "1970-01-01T16:13:44", - "1970-01-01T16:13:44", - "1970-01-01T16:13:44", - "1970-01-01T19:19:48", - "1970-01-01T19:19:48", - "1970-01-01T19:57:44", - "1970-01-01T19:57:44", - "1970-01-01T19:57:44", - "1970-01-01T23:03:48", - "1970-01-01T23:03:48", - "1970-01-01T23:41:44", - "1970-01-01T23:41:44", - "1970-01-01T23:41:44", - "1970-01-02T02:47:48", - "1970-01-02T02:47:48", - "1970-01-02T03:25:44", - "1970-01-02T03:25:44", - "1970-01-02T03:25:44" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" ], "y": [ - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", null ] }, @@ -3889,84 +14633,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(152,103,163)", + "color": "rgb(234,74,98)", "width": 10 }, "mode": "lines", - "name": "unloading:barge_0", + "name": "unloading: unloading Carrier B", "type": "scatter", "x": [ - "1970-01-01T03:58:07", - "1970-01-01T03:58:07", - "1970-01-01T04:43:42", - "1970-01-01T04:43:42", - "1970-01-01T04:43:42", - "1970-01-01T07:42:07", - "1970-01-01T07:42:07", - "1970-01-01T08:27:42", - "1970-01-01T08:27:42", - "1970-01-01T08:27:42", - "1970-01-01T11:26:07", - "1970-01-01T11:26:07", - "1970-01-01T12:11:42", - "1970-01-01T12:11:42", - "1970-01-01T12:11:42", - "1970-01-01T15:10:07", - "1970-01-01T15:10:07", - "1970-01-01T15:55:42", - "1970-01-01T15:55:42", - "1970-01-01T15:55:42", - "1970-01-01T18:54:07", - "1970-01-01T18:54:07", - "1970-01-01T19:39:42", - "1970-01-01T19:39:42", - "1970-01-01T19:39:42", - "1970-01-01T22:38:07", - "1970-01-01T22:38:07", - "1970-01-01T23:23:42", - "1970-01-01T23:23:42", - "1970-01-01T23:23:42", - "1970-01-02T02:22:07", - "1970-01-02T02:22:07", - "1970-01-02T03:07:42", - "1970-01-02T03:07:42", - "1970-01-02T03:07:42" + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05" ], "y": [ - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", - null, - "to_site", - "to_site", - "to_site", - "to_site", + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] }, @@ -3974,154 +14768,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(180,131,191)", + "color": "rgb(243,83,107)", "width": 10 }, "mode": "lines", - "name": "loading:barge_2", + "name": "unloading: unloading Extra 3", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] }, @@ -4129,174 +14903,114 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(208,159,219)", + "color": "rgb(252,92,116)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "unloading: unloading Barge III", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] }, @@ -4304,154 +15018,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(236,187,247)", + "color": "rgb(5,101,125)", "width": 10 }, "mode": "lines", - "name": "loading:barge_0", + "name": "unloading: unloading Extra 1", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" ], "y": [ - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "from_site", - "from_site", - "from_site", - "from_site", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", - null, - "cutter", - "cutter", - "cutter", - "cutter", + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", null ] } @@ -4463,6 +15157,7 @@ "x": 0, "y": -0.2 }, + "showlegend": false, "template": { "data": { "bar": [ @@ -4835,11 +15530,10 @@ ], "scatter": [ { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -5280,270 +15974,1767 @@ } } }, - "title": { - "text": "GANTT Chart" + "title": { + "text": "Cutter T occupancy: 88.7duration actual: 58044.0" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T18:07:29" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "vesels" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# For explanation of Critical Path see notebook 30\n", + "from openclsim.plot.critical_path import CpLog\n", + "my_objects = list(vessels.values()) + list(sites.values())\n", + "my_activities = list(activities.values())\n", + "my_log = CpLog(list_objects=my_objects, list_activities=my_activities)\n", + "dependencies = my_log.get_dependencies_model_based()\n", + "# dependencies = my_log.get_dependencies_log_based()\n", + "cp = my_log.mark_critical_activities(dependencies)\n", + "fleet, project = simulation_analysis(vessels, cutter_name, total_amount, vessel_cost, vessel_power, activities)\n", + "\n", + "t = f'{cutter_name} occupancy: ' + str(fleet.loc[cutter_name]['occupancy [%]']) + f'duration actual: ' +\\\n", + " str(fleet.loc[cutter_name]['duration actual'])\n", + "fig = get_gantt_chart(concepts=my_objects, critical_path=cp, id_map=activities, title=t, legend=False, ylabel='vesels')" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "75e2b372", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "red", + "width": 14 + }, + "mode": "lines", + "name": "critical_path", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 3", + "Extra 3", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 1", + "Extra 1", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Reclamation", + "Reclamation", + null, + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 3", + "Extra 3", + null, + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + null, + "Extra 1", + "Extra 1", + null, + "Trench", + "Trench", + null, + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + null, + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(181,252,82)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(193,8,94)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(205,20,106)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T01:51:54", + "1970-01-01T01:51:54", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T04:21:54", + "1970-01-01T04:21:54", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T07:19:10", + "1970-01-01T07:19:10", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T10:16:26", + "1970-01-01T10:16:26", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T13:13:42", + "1970-01-01T13:13:42", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T16:10:58", + "1970-01-01T16:10:58", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05", + "1970-01-01T16:46:05" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(217,32,118)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T02:27:01", + "1970-01-01T02:27:01", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T03:02:08", + "1970-01-01T04:57:01", + "1970-01-01T04:57:01", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T05:32:08", + "1970-01-01T07:54:17", + "1970-01-01T07:54:17", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T08:29:24", + "1970-01-01T10:51:33", + "1970-01-01T10:51:33", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T11:26:40", + "1970-01-01T13:48:49", + "1970-01-01T13:48:49", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56", + "1970-01-01T14:23:56" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(229,44,130)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge III", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T00:45:12", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(241,56,142)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(253,68,154)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T04:35:31", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T07:32:47", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T10:30:03", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T13:27:19", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35", + "1970-01-01T16:24:35" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(9,80,166)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge III", + "type": "scatter", + "x": [ + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T03:50:19", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T06:47:35", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T09:44:51", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T12:42:07", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23", + "1970-01-01T15:39:23" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(21,92,178)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(33,104,190)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29", + "1970-01-01T18:07:29" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(45,116,202)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T00:42:29", + "1970-01-01T03:48:25", + "1970-01-01T03:48:25", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T06:29:12", + "1970-01-01T06:29:12", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T07:11:41", + "1970-01-01T09:15:41", + "1970-01-01T09:15:41", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T09:58:10", + "1970-01-01T12:12:57", + "1970-01-01T12:12:57", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T12:55:26", + "1970-01-01T15:10:13", + "1970-01-01T15:10:13", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42", + "1970-01-01T15:52:42" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] }, - "xaxis": { - "range": [ - "1970-01-01T01:15:52", - "1970-01-02T03:25:44" + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(57,128,214)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T03:05:56", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T05:46:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T08:33:12", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T11:30:28", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T14:27:44", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00", + "1970-01-01T17:25:00" ], - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Time" - } + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(69,140,226)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T00:38:33", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T03:45:46", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T06:15:46", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T09:13:02", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T12:10:18", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34", + "1970-01-01T15:07:34" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(81,152,238)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 3", + "type": "scatter", + "x": [ + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T03:07:13", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T05:37:13", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T08:34:29", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T11:31:45", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T14:29:01", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17", + "1970-01-01T17:26:17" + ], + "y": [ + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null + ] }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Activities" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plot.get_gantt_chart([from_site, to_site, cutter], id_map=[activities[x] for x in activities])" - ] - }, - { - "cell_type": "markdown", - "id": "9d68aee1", - "metadata": {}, - "source": [ - "Plot only activities whose namespace (firt letters) matches load*" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "6141ac61", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ { "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(90,248,48)", + "color": "rgb(93,164,250)", "width": 10 }, "mode": "lines", - "name": "loading:barge_0", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -5551,154 +17742,74 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(132,34,90)", + "color": "rgb(105,176,6)", "width": 10 }, "mode": "lines", - "name": "loading:barge_0", + "name": "sailing full: sailing full Extra 3", "type": "scatter", "x": [ - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T03:12:32", - "1970-01-01T06:14:52", - "1970-01-01T06:14:52", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T06:56:32", - "1970-01-01T09:58:52", - "1970-01-01T09:58:52", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T13:42:52", - "1970-01-01T13:42:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T17:26:52", - "1970-01-01T17:26:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T21:10:52", - "1970-01-01T21:10:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-02T00:54:52", - "1970-01-02T00:54:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T02:28:40", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T04:58:40", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T07:55:56", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T10:53:12", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T13:50:28", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44", + "1970-01-01T16:47:44" ], "y": [ - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - null, - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", - "loading:barge_0", + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", null ] }, @@ -5706,174 +17817,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(174,76,132)", + "color": "rgb(117,188,18)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "loading: loading Carrier B", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T00:35:07", + "1970-01-01T00:35:07", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51" ], "y": [ - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -5881,174 +17952,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(216,118,174)", + "color": "rgb(129,200,30)", "width": 10 }, "mode": "lines", - "name": "loading:barge_1", + "name": "loading: loading Extra 3", "type": "scatter", "x": [ - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-01T01:15:52", - "1970-01-01T01:15:52", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T04:20:56", - "1970-01-01T04:20:56", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T04:54:16", - "1970-01-01T07:26:00", - "1970-01-01T07:26:00", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T07:59:20", - "1970-01-01T10:40:32", - "1970-01-01T10:40:32", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T11:13:52", - "1970-01-01T14:24:32", - "1970-01-01T14:24:32", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T18:08:32", - "1970-01-01T18:08:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T21:52:32", - "1970-01-01T21:52:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-02T01:36:32", - "1970-01-02T01:36:32", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52", - "1970-01-02T02:09:52" + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T01:16:47", + "1970-01-01T01:16:47", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T03:46:47", + "1970-01-01T03:46:47", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T04:20:07", + "1970-01-01T06:44:03", + "1970-01-01T06:44:03", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T09:41:19", + "1970-01-01T09:41:19", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T12:38:35", + "1970-01-01T12:38:35", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T15:35:51", + "1970-01-01T15:35:51", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11" ], "y": [ - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - null, - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", - "loading:barge_1", + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Extra 3", + "Extra 3", + "Extra 3", + "Extra 3", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -6056,154 +18087,114 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(2,160,216)", + "color": "rgb(141,212,42)", "width": 10 }, "mode": "lines", - "name": "loading:barge_2", + "name": "loading: loading Barge III", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T03:05:07", + "1970-01-01T05:20:43", + "1970-01-01T05:20:43", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T06:02:23", + "1970-01-01T08:17:59", + "1970-01-01T08:17:59", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T08:59:39", + "1970-01-01T11:15:15", + "1970-01-01T11:15:15", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T11:56:55", + "1970-01-01T14:12:31", + "1970-01-01T14:12:31", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11", + "1970-01-01T14:54:11" ], "y": [ - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] }, @@ -6211,154 +18202,134 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(44,202,2)", + "color": "rgb(153,224,54)", "width": 10 }, "mode": "lines", - "name": "loading:barge_2", + "name": "loading: loading Extra 1", "type": "scatter", "x": [ - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T01:49:12", - "1970-01-01T01:49:12", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T02:30:52", - "1970-01-01T05:06:20", - "1970-01-01T05:06:20", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T05:48:00", - "1970-01-01T08:23:28", - "1970-01-01T08:23:28", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T09:05:08", - "1970-01-01T11:40:36", - "1970-01-01T11:40:36", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T12:22:16", - "1970-01-01T14:57:52", - "1970-01-01T14:57:52", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T15:39:32", - "1970-01-01T18:41:52", - "1970-01-01T18:41:52", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T19:23:32", - "1970-01-01T22:25:52", - "1970-01-01T22:25:52", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32", - "1970-01-01T23:07:32" + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T01:50:07", + "1970-01-01T01:50:07", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T02:23:27", + "1970-01-01T04:30:54", + "1970-01-01T04:30:54", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T05:04:14", + "1970-01-01T07:17:23", + "1970-01-01T07:17:23", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T07:50:43", + "1970-01-01T10:14:39", + "1970-01-01T10:14:39", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T10:47:59", + "1970-01-01T13:11:55", + "1970-01-01T13:11:55", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T13:45:15", + "1970-01-01T16:09:11", + "1970-01-01T16:09:11", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31", + "1970-01-01T16:42:31" ], "y": [ - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - null, - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", - "loading:barge_2", + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", null ] } @@ -6370,6 +18341,7 @@ "x": 0, "y": -0.2 }, + "showlegend": false, "template": { "data": { "bar": [ @@ -6742,11 +18714,10 @@ ], "scatter": [ { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -7188,12 +19159,12 @@ } }, "title": { - "text": "GANTT Chart" + "text": "Cutter T occupancy: 88.7duration actual: 58044.0" }, "xaxis": { "range": [ - "1970-01-01T01:15:52", - "1970-01-02T02:09:52" + "1970-01-01T00:00:00", + "1970-01-01T18:07:29" ], "title": { "font": { @@ -7211,15 +19182,15 @@ "family": "Courier New, monospace", "size": 18 }, - "text": "Activities" + "text": "vesels" } } } }, "text/html": [ - "
\n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(79,69,152)", + "width": 10 + }, + "mode": "lines", + "name": "basic activity:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(91,81,164)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(103,93,176)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(115,105,188)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(127,117,200)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(139,129,212)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(151,141,224)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(163,153,236)", + "width": 10 + }, + "mode": "lines", + "name": "basic activity:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(175,165,248)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(187,177,4)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(199,189,16)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(211,201,28)", + "width": 10 + }, + "mode": "lines", + "name": "basic activity:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,213,40)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(235,225,52)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(247,237,64)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(3,249,76)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(15,5,88)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(27,17,100)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(39,29,112)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(51,41,124)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(63,53,136)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-02T00:46:44" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart([*vessels.values(), to_site], id_map=[activities[x] for x in activities])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b6ae6f9a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(214,187,109)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(242,215,137)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(14,243,165)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(42,15,193)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(70,43,221)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(98,71,249)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(126,99,21)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_0", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(154,127,49)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_1", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(182,155,77)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge_2", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T01:19:36", + "1970-01-02T00:46:44" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart([from_site, to_site, cutter], id_map=[activities[x] for x in activities])" + ] + }, + { + "cell_type": "markdown", + "id": "185ba776", + "metadata": { + "collapsed": true + }, + "source": [ + "#### 2. Critical path\n", + "\n", + "Functionalities for the analysis of the critical path through activities of a simulation are stored in ``openclsim.plot.critical_path``. The main object ``CpLog`` (read as *C*ritical *p*ath *log*) can be used to evaluate the simulated activities from logging and model setup.\n", + "\n", + "The ``CpLog`` is basically a modification of the regular OpenCLSim ``HasLog`` mix-in, for convenience of further analysis.\n", + "\n", + "\n", + "##### 2a. Initiate a ``CpLog``\n", + "\n", + "The ``CpLog`` is initiated with a list of objects (e.g. vessels and sites), and a list of activities (top level model activities) which are relevant for the critical path:\n", + "\n", + "* In this case we will take as objects the list of vessel objects, and the from and to site.\n", + "* The top level activities of the simulation concerns the while activities.\n", + "\n", + "The ``CpLog`` creates an underlying Dataframe with the activities logged. Each activity will be represented in a single row, with a start and end time. An additional ``uuid`` is added which identifies an activity in time." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bc260b0c", + "metadata": {}, + "outputs": [], + "source": [ + "# define the objects and the activities\n", + "my_objects = list(vessels.values()) + [from_site, to_site]\n", + "my_activities = list(activities.values())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "5570cdee", + "metadata": {}, + "outputs": [], + "source": [ + "# create a CpLog object\n", + "my_log = CpLog(list_objects=my_objects, list_activities=my_activities)" + ] + }, + { + "cell_type": "markdown", + "id": "17960410", + "metadata": {}, + "source": [ + "#### 2b. Examine dependencies between activities\n", + "\n", + "Dependencies between activities are crucial for finding the critical path. For example consider the simple sequential activity of subactivities ``A --> B --> C``, where finishing ``A``, triggers the start of ``B``, and finishing ``B`` triggers the start of ``C``.\n", + "\n", + "This means that we have dependencies between activities. These dependencies are essential when examining the critical path through a sequence of activities. Two separate methods are implemented for assessing these dependencies:\n", + "\n", + "* *log based* Dependencies are 'guessed' based on the log only.\n", + "* *model based* Dependencies are investigated based on the model setup.\n", + "\n", + "Please check out the documentation for details on either method. Due to the current logging of OpenCLSim, it is impossible to determine what triggered an activity with 100% certainty. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7927da51", + "metadata": {}, + "outputs": [], + "source": [ + "dependencies_log = my_log.get_dependencies_log_based()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f1906f05", + "metadata": {}, + "outputs": [], + "source": [ + "dependencies_model = my_log.get_dependencies_model_based()" + ] + }, + { + "cell_type": "markdown", + "id": "1a36a087", + "metadata": {}, + "source": [ + "#### 2b. Find the critical path through activities\n", + "\n", + "The critical path can be examined from the ``CpLog`` object with a given list of dependencies derived from it.\n", + "\n", + "This method will return the reshaped log of activities, with their unique idendifyer in time in the column named ``cp_activity_id``. An additional boolean column ``is_critical`` is added indicating whether this particular instance of the activity was found to be on the critical path.\n", + "\n", + "The usage of this method is shown below." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f0356853", + "metadata": {}, + "outputs": [], + "source": [ + "cp_log_based = my_log.mark_critical_activities(dependencies_log)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4775b328", + "metadata": {}, + "outputs": [], + "source": [ + "cp_model_based = my_log.mark_critical_activities(dependencies_model)" + ] + }, + { + "cell_type": "markdown", + "id": "e6537611", + "metadata": {}, + "source": [ + "#### 2c. Visualize the critical path\n", + "\n", + "Once extracted, the critical path can be visualized in a Gantt chart. The ``plot.get_gantt_chart()`` supports the argument ``critical_path``. This argument takes the output of the method ``CpLog.mark_critical_activities()``. The activities on the critical path are marked with a red line.\n", + "\n", + "The results based on the log-based and model-based methods are shown below." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7cd8ec17", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "red", + "width": 14 + }, + "mode": "lines", + "name": "critical_path", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(13,194,110)", + "width": 10 + }, + "mode": "lines", + "name": "8741d7d8-fac8-428c-9246-bddbb2eb41c1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(23,204,120)", + "width": 10 + }, + "mode": "lines", + "name": "e451b591-0729-489b-828a-1f9ed41a5f41", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(33,214,130)", + "width": 10 + }, + "mode": "lines", + "name": "b47dbc37-3315-45f3-adae-69809c6da603", + "type": "scatter", + "x": [ + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(43,224,140)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(53,234,150)", + "width": 10 + }, + "mode": "lines", + "name": "fd1d1050-9bb9-4813-88e5-4fd3e35b2d23", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(63,244,160)", + "width": 10 + }, + "mode": "lines", + "name": "b3711b1d-5f3c-4ba7-8be7-2516d1bb5f60", + "type": "scatter", + "x": [ + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(73,254,170)", + "width": 10 + }, + "mode": "lines", + "name": "13b69164-9abc-4bb3-a5c8-d4730dd73b8c", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(83,8,180)", + "width": 10 + }, + "mode": "lines", + "name": "bd08fc86-0679-4e7b-8479-4fbaa62aea3d", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(93,18,190)", + "width": 10 + }, + "mode": "lines", + "name": "ee5340e3-7d5d-48cd-b723-21f0e1db7518", + "type": "scatter", + "x": [ + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(103,28,200)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(113,38,210)", + "width": 10 + }, + "mode": "lines", + "name": "af07ada9-e94a-47d5-bf88-0a9c3dbb357d", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(123,48,220)", + "width": 10 + }, + "mode": "lines", + "name": "61d01f0a-dc89-4bf0-96fb-3e3d8764b9da", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(133,58,230)", + "width": 10 + }, + "mode": "lines", + "name": "f9876e12-2b0a-427c-b6c3-7da9c9a4c939", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(143,68,240)", + "width": 10 + }, + "mode": "lines", + "name": "8b9f5d8b-fe6f-42e4-8bb3-ec3c2fece7bd", + "type": "scatter", + "x": [ + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(153,78,250)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(163,88,4)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(173,98,14)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(183,108,24)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(193,118,34)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(203,128,44)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(213,138,54)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,148,64)", + "width": 10 + }, + "mode": "lines", + "name": "13b69164-9abc-4bb3-a5c8-d4730dd73b8c", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(233,158,74)", + "width": 10 + }, + "mode": "lines", + "name": "af07ada9-e94a-47d5-bf88-0a9c3dbb357d", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(243,168,84)", + "width": 10 + }, + "mode": "lines", + "name": "fd1d1050-9bb9-4813-88e5-4fd3e35b2d23", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-02T00:46:44" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart(concepts=my_objects, critical_path=cp_log_based)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a5a857a6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "name", + "line": { + "color": "red", + "width": 14 + }, + "mode": "lines", + "name": "critical_path", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + null, + "from_site", + "from_site", + null, + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(80,3,235)", + "width": 10 + }, + "mode": "lines", + "name": "8741d7d8-fac8-428c-9246-bddbb2eb41c1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(90,13,245)", + "width": 10 + }, + "mode": "lines", + "name": "e451b591-0729-489b-828a-1f9ed41a5f41", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(100,23,255)", + "width": 10 + }, + "mode": "lines", + "name": "b47dbc37-3315-45f3-adae-69809c6da603", + "type": "scatter", + "x": [ + "1970-01-01T00:39:48", + "1970-01-01T00:39:48", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T04:00:40", + "1970-01-01T04:00:40", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T07:21:32", + "1970-01-01T07:21:32", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T10:42:24", + "1970-01-01T10:42:24", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T14:03:16", + "1970-01-01T14:03:16", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T17:24:08", + "1970-01-01T17:24:08", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T20:45:00", + "1970-01-01T20:45:00", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48", + "1970-01-01T21:24:48" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(110,33,9)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(120,43,19)", + "width": 10 + }, + "mode": "lines", + "name": "fd1d1050-9bb9-4813-88e5-4fd3e35b2d23", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(130,53,29)", + "width": 10 + }, + "mode": "lines", + "name": "b3711b1d-5f3c-4ba7-8be7-2516d1bb5f60", + "type": "scatter", + "x": [ + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T01:27:38", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(140,63,39)", + "width": 10 + }, + "mode": "lines", + "name": "13b69164-9abc-4bb3-a5c8-d4730dd73b8c", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(150,73,49)", + "width": 10 + }, + "mode": "lines", + "name": "bd08fc86-0679-4e7b-8479-4fbaa62aea3d", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T00:43:49", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T05:36:03", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T09:12:59", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T12:49:55", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T16:26:51", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47", + "1970-01-01T20:03:47" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(160,83,59)", + "width": 10 + }, + "mode": "lines", + "name": "ee5340e3-7d5d-48cd-b723-21f0e1db7518", + "type": "scatter", + "x": [ + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(170,93,69)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(180,103,79)", + "width": 10 + }, + "mode": "lines", + "name": "af07ada9-e94a-47d5-bf88-0a9c3dbb357d", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(190,113,89)", + "width": 10 + }, + "mode": "lines", + "name": "61d01f0a-dc89-4bf0-96fb-3e3d8764b9da", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(200,123,99)", + "width": 10 + }, + "mode": "lines", + "name": "f9876e12-2b0a-427c-b6c3-7da9c9a4c939", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(210,133,109)", + "width": 10 + }, + "mode": "lines", + "name": "8b9f5d8b-fe6f-42e4-8bb3-ec3c2fece7bd", + "type": "scatter", + "x": [ + "1970-01-01T00:41:18", + "1970-01-01T00:41:18", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T01:22:36", + "1970-01-01T04:46:50", + "1970-01-01T04:46:50", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T08:13:42", + "1970-01-01T08:13:42", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T11:40:34", + "1970-01-01T11:40:34", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T15:07:26", + "1970-01-01T15:07:26", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T18:34:18", + "1970-01-01T18:34:18", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T22:01:10", + "1970-01-01T22:01:10", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(220,143,119)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(230,153,129)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(240,163,139)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(250,173,149)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(4,183,159)", + "width": 10 + }, + "mode": "lines", + "name": "75b1b6a5-d8ff-45a5-a2af-573b0628594b", + "type": "scatter", + "x": [ + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T01:19:36", + "1970-01-01T01:19:36", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T04:40:28", + "1970-01-01T04:40:28", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T05:22:08", + "1970-01-01T08:01:20", + "1970-01-01T08:01:20", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T08:43:00", + "1970-01-01T11:22:12", + "1970-01-01T11:22:12", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T12:03:52", + "1970-01-01T14:43:04", + "1970-01-01T14:43:04", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T15:24:44", + "1970-01-01T18:03:56", + "1970-01-01T18:03:56", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T18:45:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56", + "1970-01-01T22:10:56" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(14,193,169)", + "width": 10 + }, + "mode": "lines", + "name": "991d3cad-5292-4a17-b9db-3a97ff230c35", + "type": "scatter", + "x": [ + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T03:24:36", + "1970-01-01T06:19:52", + "1970-01-01T06:19:52", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T07:01:32", + "1970-01-01T09:56:48", + "1970-01-01T09:56:48", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T10:38:28", + "1970-01-01T13:33:44", + "1970-01-01T13:33:44", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T14:15:24", + "1970-01-01T17:10:40", + "1970-01-01T17:10:40", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T17:52:20", + "1970-01-01T20:47:36", + "1970-01-01T20:47:36", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16", + "1970-01-01T21:29:16" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(24,203,179)", + "width": 10 + }, + "mode": "lines", + "name": "99a43dab-d5e8-41d9-817a-d0bfb838f750", + "type": "scatter", + "x": [ + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T02:01:16", + "1970-01-01T02:01:16", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T02:42:56", + "1970-01-01T05:28:08", + "1970-01-01T05:28:08", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T06:09:48", + "1970-01-01T08:55:00", + "1970-01-01T08:55:00", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T09:36:40", + "1970-01-01T12:21:52", + "1970-01-01T12:21:52", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T13:03:32", + "1970-01-01T15:48:44", + "1970-01-01T15:48:44", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T16:30:24", + "1970-01-01T19:15:36", + "1970-01-01T19:15:36", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T19:57:16", + "1970-01-01T22:42:28", + "1970-01-01T22:42:28", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08", + "1970-01-01T23:24:08" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "cutter", + "cutter", + "cutter", + "cutter", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null, + "from_site", + "from_site", + "from_site", + "from_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(34,213,189)", + "width": 10 + }, + "mode": "lines", + "name": "13b69164-9abc-4bb3-a5c8-d4730dd73b8c", + "type": "scatter", + "x": [ + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T04:08:25", + "1970-01-01T04:08:25", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T04:52:14", + "1970-01-01T07:45:21", + "1970-01-01T07:45:21", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T08:29:10", + "1970-01-01T11:22:17", + "1970-01-01T11:22:17", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T12:06:06", + "1970-01-01T14:59:13", + "1970-01-01T14:59:13", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T15:43:02", + "1970-01-01T18:36:09", + "1970-01-01T18:36:09", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T19:19:58", + "1970-01-01T22:13:05", + "1970-01-01T22:13:05", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54", + "1970-01-01T22:56:54" + ], + "y": [ + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "barge_1", + "barge_1", + "barge_1", + "barge_1", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(44,223,199)", + "width": 10 + }, + "mode": "lines", + "name": "af07ada9-e94a-47d5-bf88-0a9c3dbb357d", + "type": "scatter", + "x": [ + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-01T03:24:14", + "1970-01-01T03:24:14", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T04:05:32", + "1970-01-01T06:51:06", + "1970-01-01T06:51:06", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T07:32:24", + "1970-01-01T10:17:58", + "1970-01-01T10:17:58", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T10:59:16", + "1970-01-01T13:44:50", + "1970-01-01T13:44:50", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T14:26:08", + "1970-01-01T17:11:42", + "1970-01-01T17:11:42", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T17:53:00", + "1970-01-01T20:38:34", + "1970-01-01T20:38:34", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-01T21:19:52", + "1970-01-02T00:05:26", + "1970-01-02T00:05:26", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44", + "1970-01-02T00:46:44" + ], + "y": [ + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "barge_2", + "barge_2", + "barge_2", + "barge_2", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(54,233,209)", + "width": 10 + }, + "mode": "lines", + "name": "fd1d1050-9bb9-4813-88e5-4fd3e35b2d23", + "type": "scatter", + "x": [ + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T02:41:04", + "1970-01-01T02:41:04", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T03:20:52", + "1970-01-01T06:01:56", + "1970-01-01T06:01:56", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T06:41:44", + "1970-01-01T09:22:48", + "1970-01-01T09:22:48", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T10:02:36", + "1970-01-01T12:43:40", + "1970-01-01T12:43:40", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T13:23:28", + "1970-01-01T16:04:32", + "1970-01-01T16:04:32", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T16:44:20", + "1970-01-01T19:25:24", + "1970-01-01T19:25:24", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T20:05:12", + "1970-01-01T22:50:44", + "1970-01-01T22:50:44", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32", + "1970-01-01T23:30:32" + ], + "y": [ + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "barge_0", + "barge_0", + "barge_0", + "barge_0", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null, + "to_site", + "to_site", + "to_site", + "to_site", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-02T00:46:44" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart(concepts=my_objects, critical_path=cp_model_based)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17bc7429", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/setup.cfg b/setup.cfg index 3c237c78..bca09741 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,6 +34,7 @@ install_requires = nose plotly matplotlib + networkx [options.packages.find] where = src @@ -47,11 +48,13 @@ exclude = # Add here test requirements (semicolon/line-separated) testing = - coverage-badge + flake8==4.0.0 + coverage-badge faker lxml mock mypy + openpyxl plotly pylama pylama_pylint diff --git a/src/openclsim/plot/__init__.py b/src/openclsim/plot/__init__.py index 8d2497ca..a29afbf4 100644 --- a/src/openclsim/plot/__init__.py +++ b/src/openclsim/plot/__init__.py @@ -1,6 +1,6 @@ """Directory for the simulation plots.""" -from .log_dataframe import get_log_dataframe +from .log_dataframe import get_log_dataframe, get_ranges_dataframe from .step_chart import get_step_chart from .vessel_planning import get_gantt_chart diff --git a/src/openclsim/plot/critical_path.py b/src/openclsim/plot/critical_path.py new file mode 100644 index 00000000..6b1a334e --- /dev/null +++ b/src/openclsim/plot/critical_path.py @@ -0,0 +1,1670 @@ +""" +This module provides tools to extract the critical path of activities from the +output of a simulation. +""" + +# generic modules +import copy +import datetime as dt +import itertools +import logging +import time +import uuid + +import networkx as nx +import pandas as pd + +# internal modules +from .. import core, model +from ..model.shift_amount_activity import ShiftAmountActivity +from .log_dataframe import get_log_dataframe, get_subprocesses + +# %% FIXED PARAMETERS +DEPENDENCY_TYPES = { + 1: "ActivityDependency", + 2: "StartEventDependency", + 3: "ResourceDependency", +} + +DEPENDENCY_TYPES_REVERSED = {v: k for k, v in DEPENDENCY_TYPES.items()} + + +# %% MAIN CLASS DependencyGraph TO DETECT MODEL-BASED ACTIVITY DEPENDENCIES +class DependencyGraph: + """ + Object used to capture top level dependencies in the model structure. + + This class can be used to generate a graph-based approach in detecting + logical dependencies between OpenCLSim activities as extracted from the + list of mail model activities. A directed graph is created where basic + activities are represented by nodes, and their logical dependencies are + the connecting directed graphs. + + For example, if a model setup contains a sequential activity + ``A -> B -> C``, then the graph would show nodes ``A``, ``B`` and ``C`` for + the activities, and the connecting edges ``(A, B)`` and ``(B, C)``. + + Parameters + ---------- + main_activities : list + The list of top level activities from the model setup. That is, if the + model is set up with a WHILE activity on top level, then the list + should only contain this WHILE activity, no matter the activities that + are contained in it. + """ + + def __init__(self, main_activities): + """Init.""" + # initiate + self._main_activities = main_activities + self.G = nx.DiGraph() + + # construct the graph + self._constructGraph() + + def _constructGraph(self): + """ + Construct the graph by drilling down from the top level activity all + the way to the underlying base activities. Every time a node is created + for an activity, and if it is not a basic activity, it is replaces by + a sub-graph. + + For example, if we have a WHILE activity ``W``, containing a SEQUENTIAL + activity ``S`` of the base activities ``A``, then ``B``, then ``C``, + the graph would be built up in the following steps: + + 1. Create single node ``W``, without edges. + 2. The ``W`` activity contains the sub-activity ``S``, hence replace + node ``W`` by ``S``, and due to ``W`` being a while activity, add + the edge ``(S, S)`` to the graph. + 3. Now, ``S`` contains the sequence ``A -> B -> C``, and must hence be + replaced by the corresponding subgraph with nodes ``A``, ``B`` and + ``C``, and the edges ``(A, B)`` and ``(B, C)``. By replacing ``S``, + the resulting graph will have nodes ``A``, ``B`` and ``C``, edges + ``(A, B)`` and ``(B, C)``, and also the edge ``(C, A)`` providing + the recurrency from the while loop. + 4. Now all activities are base activities, hence this is the final + form of the graph. + + """ + # set up graph from initial base activities + for activity in self._main_activities: + add_act_node(activity, self.G) + + # replace non-basic nodes by drilling down + nodesTODO = [x for x, y in self.G.nodes(data=True) if y["is_basic"] is False] + while nodesTODO != []: + # select a node and activity + cur_node = nodesTODO[0] + cur_act = self.G.nodes[cur_node]["activity"] + + # replace with sub graph + sub_G, start_nodes, end_nodes = activity_subgraph(cur_act) + self.G = replace_node_with_subgraph( + node=cur_node, + main_G=self.G, + sub_G=sub_G, + start_nodes=start_nodes, + end_nodes=end_nodes, + ) + + # finally re-evaluate the situation + nodesTODO = [ + x for x, y in self.G.nodes(data=True) if y["is_basic"] is False + ] + + def getListDependencies(self): + """Return the list of dependencies based on the graph.""" + return list(self.G.edges) + + def getListBaseActivities(self): + """Return a list of the IDs of all base activities.""" + return list(self.G.nodes) + + +# Aux functions + + +def get_activity_params(activity): + """ + Returns a simple dictionary with the activity and the boolean indicating + whether it is a basic activity. + """ + return { + "activity": activity, + "is_basic": is_basic_activity(activity), + } + + +def add_act_node(activity, G): + """ + Adds an activity as node to a networkx graph G. + """ + node_kwargs = get_activity_params(activity) + name = node_kwargs["activity"].id + G.add_node(name, **node_kwargs) + + +def add_dep_edge(G, src_node, dst_node, dep_type=None): + """ + Adds a dependency between two activity nodes in a graph as a directed edge. + """ + assert src_node in G.nodes, "src_node is not in G!" + assert dst_node in G.nodes, "dst_node is not in G!" + + G.add_edge(*(src_node, dst_node), dependency_type=dep_type) + + +def _parallel_activity_subgraph(activity): + """ + Generates a subgraph replacing a single parallel activity. The subgraph + itself, and the start and end nodes are returned. + """ + parent_id = activity.id + sub_G = nx.DiGraph() + + start_nodes = [] + end_nodes = [] + + for sub_act in activity.sub_processes: + add_act_node(sub_act, sub_G) + + # add the parent + sub_G.nodes[sub_act.id]["parent"] = parent_id + + # all are start end end nodes + start_nodes.append(sub_act.id) + end_nodes.append(sub_act.id) + + # note: no edges required! + + return sub_G, start_nodes, end_nodes + + +def _while_activity_subgraph(activity): + """ + Generates a subgraph replacing a single while activity. The subgraph + itself, and the start and end nodes are returned. + """ + # OpenCLSim treats subprocesses in while activity as sequential + sub_G, start_nodes, end_nodes = _sequential_activity_subgraph(activity) + + # simply need to add the loop from end to start + # first get combinations of ends to starts + end_to_start_combinations = list(itertools.product(end_nodes, start_nodes)) + + # then add these edges + for edge in end_to_start_combinations: + add_dep_edge(sub_G, edge[0], edge[1], dep_type=DEPENDENCY_TYPES[1]) + + return sub_G, start_nodes, end_nodes + + +def _sequential_activity_subgraph(activity): + """ + Generates a subgraph replacing a single sequential activity. The subgraph + itself, and the start and end nodes are returned. + """ + parent_id = activity.id + sub_G = nx.DiGraph() + + start_nodes = [activity.sub_processes[0].id] + end_nodes = [activity.sub_processes[-1].id] + all_nodes = [] + + for sub_act in activity.sub_processes: + add_act_node(sub_act, sub_G) + + # add the parent + sub_G.nodes[sub_act.id]["parent"] = parent_id + all_nodes.append(sub_act.id) + + # handle the edges + edges = [uv for uv in zip(all_nodes[:-1], all_nodes[1:])] + for edge in edges: + add_dep_edge(sub_G, edge[0], edge[1], dep_type=DEPENDENCY_TYPES[1]) + + return sub_G, start_nodes, end_nodes + + +def activity_subgraph(activity): + """ + Generates a (sub)graph representation of a non-basic activity. + """ + if issubclass(type(activity), model.parallel_activity.ParallelActivity): + return _parallel_activity_subgraph(activity) + elif issubclass(type(activity), model.while_activity.WhileActivity): + return _while_activity_subgraph(activity) + elif issubclass(type(activity), model.sequential_activity.SequentialActivity): + return _sequential_activity_subgraph(activity) + elif issubclass(type(activity), model.basic_activity.BasicActivity): + sub_G = nx.DiGraph() + add_act_node(activity, sub_G) + node_name = activity.id + return sub_G, [node_name], [node_name] + else: + raise TypeError(f"Activity type {type(activity)} not supported!") + + +def replace_node_with_subgraph(node, main_G, sub_G, start_nodes, end_nodes): + """ + Replace a node-activity in a graph by a relevant sub-graph. The original + connections are kept in tact. + """ + # all links into the node to be replaced, except the loop with itself + # should it exist + existing_edges_in = list(main_G.in_edges(node)) + existing_nodes_in = [u for (u, v) in existing_edges_in if (u, v) != (node, node)] + + # all links out of the node to be replaced, except the loop with itself + # should it exist + existing_edges_out = list(main_G.out_edges(node)) + existing_nodes_out = [v for (u, v) in existing_edges_out if (u, v) != (node, node)] + + # determine all new edges in and out + new_edges_in = list(itertools.product(existing_nodes_in, start_nodes)) + new_edges_out = list(itertools.product(end_nodes, existing_nodes_out)) + + # if the loop (node, node) existed, we must add all combinations + # (end, start) also + if (node, node) in main_G.edges: + loop_edges = list(itertools.product(end_nodes, start_nodes)) + else: + loop_edges = [] + + # compose the combined graph + new_G = nx.compose(main_G, sub_G) + + # remove the node and all edges connected to it + new_G.remove_node(node) # KeyError if node does not exist + new_G.remove_edges_from(existing_edges_in + existing_edges_out) + + # add last connecting edges + new_G.add_edges_from(new_edges_in + new_edges_out + loop_edges) + + return new_G + + +# %% CLASS ActivityGraph FOR INSPECTING PATH OF LONGEST DURATION IN A DIGRAPH + + +class ActivityGraph: + """ + Graph representation of simulated activities and their dependencies. + + Class to construct a ``networkx.DiGraph`` from simulation activity logs + captured in a CpLog-object, and corresponding dependencies between those + activities. Simulated activities appear in the graph as sets of _node-edge- + node_, with a staet time, end time and a duration. Dependencies between + activities are added through connecting edges, from the end-node of one + activity, to the starting-node of the next activity. + + Durations linked to activity-edges make up the basis for finding the + critical path of the simulated process. In essence, the critical path + is the path through the activities of longest duration. Hence, it are those + edges in the graph which are on a path of longest duration. + + Correct identification of dependencies between activities ensure proper + path definitions in the graph. Note that finding the critical path(s) + relies strongly on finding the correct dependencies between activities. + + Parameters + ---------- + cp_log : CpLog + The CpLog object generated from the logs of all activities and object + which are relevant for the critical path analysis. + list_dependencies : list + A key part of the cp_log is the ``cp_activity_id`` column. This column + contains unique identifyers for simulated activities in time. This list + is to contain tuples of those IDs defining dependencies between the + corresponding activities. E.g. if the completion of activity with + ``id==1`` triggers the start of activity with ``id==2``, then this + should appear in the list as tuple ``(1, 2)``. + """ + + # name of added columns to the cp_log + __COLNAME_CRITICAL = "is_critical" + __COLNAME_GRAPH_EDGE = "graph_edge" + + # mapping from column name to attribute + __SUPERLOG_COLUMNS = { + "Activity": "activity", + "SimulationObject": "source_object", + "start_time": "start_time", + "state": "state", + "duration": "duration", + "end_time": "end_time", + "cp_activity_id": "cp_activity_id", + } + + # fixed edge types + __EDGE_TYPES = {0: "activity", 1: "dependency"} + + # criticality + __CRITICAL = {0: False, 1: True} + + # prefixes to use for node start and end + __NODE_START_PREFIX = "start" + __NODE_END_PREFIX = "end" + + def __init__(self, cp_log, list_dependencies): + """Initiate the object.""" + # initiate by storing the inputs + self.cp_log = self.__check_log(cp_log) + self.list_dependencies = self.__check_dep(list_dependencies) + + # store a copy of log to work with + self._critical_log = self.__prepare_log(cp_log) + + # construct the graph based on the log and dependencies + self.G = nx.DiGraph() + self.__construct_graph() + self.n_activities = len( + [e for e in self.G.edges if self.G.edges[e]["edge_type"] == "activity"] + ) + + # get the duration of longest path + self.max_duration = nx.dag_longest_path_length(self.G, weight="duration") + + def __check_log(self, cp_log): + """ + Check the correct format for the ``cp_log``. + + Standardize the cp_log for further use renaming the columns and + converting the duration column into seconds. + """ + # check expected columns + missing_columns = [ + c for c in self.__SUPERLOG_COLUMNS.keys() if c not in cp_log.columns + ] + assert missing_columns == [], f"cp_log is missing columns {missing_columns}" + + return cp_log + + def __check_dep(self, list_dependencies): + """ + Check the list_dependencies. + + Asserts that indeed a list is parsed that contains 2-tuples of + cp-activities. The tuples are paired as + ``(end cp-activity, start cp-activity)``, which will be prepended to + comply with the nodes in the graph to be created. + """ + assert isinstance(list_dependencies, list), "list_dependencies must be a list" + + list_dependencies = [ + ( + f"{self.__NODE_END_PREFIX} {end}", + f"{self.__NODE_START_PREFIX} {start}", + ) + for end, start in list_dependencies + ] + + return list_dependencies + + def __prepare_log(self, cp_log): + """ + Prepare the cp_log to a workable format. + + Makes sure that column names are standardized, and that durations of + activities are presented in seconds. + """ + # rename columns to class defaults + cp_log = cp_log.rename(columns=self.__SUPERLOG_COLUMNS) + + # make sure the duration is numeric + cp_log["duration"] = cp_log["end_time"] - cp_log["start_time"] + if isinstance(cp_log["duration"][0], dt.timedelta): + logging.debug("Converting duration to seconds (float)") + cp_log["duration"] = round(cp_log["duration"].dt.total_seconds(), 3) + elif isinstance(cp_log["duration"][0], (float, int)): + pass + else: + raise Exception( + f"Duration computed as type {type(cp_log['duration'][0])} " + "is not supported!" + ) + + # make sure all durations are positive + assert all( + cp_log["duration"] >= 0 + ), "Negative durations encountered in activities." + + return cp_log + + def __construct_graph(self): + """ + Construct the graph. + + Construct the graph based of the activities in ``self._critical_log`` + and the list of dependencies in ``self.list_dependencies``. Alters + underlying graph ``self.G`` in place. + + First, all activities are added as node-edge-node sets. Then connecting + edges are added to link activities. A final check is performed to + assert that the resulting graph is directed and acyclic. + """ + self.__create_activity_edges() + self.__link_activity_edges() + + # check if the resulting graph is acyclic + assert nx.is_directed_acyclic_graph( + self.G + ), "The resulting graph appears to be cyclic!" + + def __create_activity_edges(self): + """ + Create nodes and edges for each individual activity. + + Converts all lines of ``self._critical_log`` into start and end nodes + connected through an edge. All relevant attributes, such as the + duration of an activity, are added to these nodes and edges. + """ + for ix, params in self._critical_log.iterrows(): + # names of the nodes by start/end of + name_start = f"{self.__NODE_START_PREFIX} " f"{params['cp_activity_id']}" + name_end = f"{self.__NODE_END_PREFIX} " f"{params['cp_activity_id']}" + + # add the start node + if name_start not in self.G.nodes: + self.G.add_node( + name_start, + pos=(params["start_time"], ix), + time=params["start_time"], + cp_activity_id=params["cp_activity_id"], + ) + + # add the end node + if name_end not in self.G.nodes: + self.G.add_node( + name_end, + pos=(params["end_time"], ix), + time=params["end_time"], + cp_activity_id=params["cp_activity_id"], + ) + + # add an edge + if (name_start, name_end) in self.G.edges: + # edge is there, only add source object + self.G.edges[(name_start, name_end)]["source_object"] += [ + params["source_object"] + ] + else: + # add the edge + kwargs = { + "node_start": name_start, + "node_end": name_end, + "activity": params["activity"], + "source_object": [params["source_object"]], + "start_time": params["start_time"], + "state": params["state"], + "duration": params["duration"], + "end_time": params["end_time"], + "cp_activity_id": params["cp_activity_id"], + "edge_type": self.__EDGE_TYPES[0], + self.__COLNAME_CRITICAL: self.__CRITICAL[0], + } + self.G.add_edge(name_start, name_end, **kwargs) + + def __link_activity_edges(self): + """ + Add connecting edges between linked activities. + + Note: this method is to be called after + ``self.__create_activity_edges()``. + + Uses the ``self.list_dependencies`` to link all loose nodes and edges + together within the graph. Note that edges are added from the END of + the first activity to the START of the second. + """ + for name_start, name_end in self.list_dependencies: + # extract some information on the times + start_time = self.G.nodes[name_start]["time"] + end_time = self.G.nodes[name_end]["time"] + duration = end_time - start_time + + if isinstance(duration, dt.timedelta): + duration = int(duration.total_seconds()) + elif isinstance(duration, (float, int)): + pass + else: + raise Exception( + f"Duration computed as type {duration} " "is not supported!" + ) + if duration > 0: + logging.debug(f"dependency with duration {duration}") + # add the edge from END to START + kwargs = { + "node_start": name_start, + "node_end": name_end, + "activity": None, + "source_object": [None], + "start_time": start_time, + "state": None, + "duration": duration, + "end_time": end_time, + "cp_activity_id": None, + "edge_type": self.__EDGE_TYPES[1], + self.__COLNAME_CRITICAL: self.__CRITICAL[0], + } + self.G.add_edge(name_start, name_end, **kwargs) + + def __get_list_critical_edges( + self, + discount_graph=None, + list_critical=None, + list_noncritical=None, + to_discount=None, + max_duration=None, + t_max_end=None, + duration_discounted_prev=None, + ): + """ + Create a list of edges on a longest path in the graph. + + This method recursively builds a list of edges in the activity graph + which are on the longest path. In a nutshell the process is as follows: + + 0. Create a shadow-copy of the activity graph. + 1. Find an initial longest path, mark all edges on it as such, and set + their 'duration' to 10**-3 on a shadow-graph (i.e. discount all + edges which have already been marked). + 2. Find a new longest path in the shadow-graph, and check if the + duration in the original graph equals the maximum length. If so, + good! Mark all edges as critical and set duration in the shadow + graph to 10**-3. If not a feasible longest path, then mark the last + edge as noncritical, and set its weight in the shadow graph to + 10**-6. + 3. Repeat until all edges are marked as critical or non-critical. + """ + feasible_longest = False # all edges on path can be discounted at once + + # the initial iteration + if discount_graph is None: + # make a copy of the graph to change weights + discount_graph = copy.deepcopy(self.G) + + # get an initial longest path + longest_path = nx.dag_longest_path(self.G, weight="duration") + list_critical = [ + i + for i in zip(longest_path[:-1], longest_path[1:]) + if self.G.edges[i]["edge_type"] == "activity" + ] + logging.debug(f"Found initial longest path {list_critical}.") + + # get the end time of the initial longest path + t_start = self.G.nodes[longest_path[0]]["time"] + t_max_end = self.G.nodes[longest_path[-1]]["time"] + + logging.debug( + f"Max duration {round(self.max_duration, 2)}, " + f"t_start {t_start} and t_max end {t_max_end}." + ) + + # ready to continue + list_noncritical = [] + to_discount = [] + feasible_longest = True + + # any following iteration + else: + # get the current longest path in the discount graph + longest_path = nx.dag_longest_path(discount_graph, weight="duration") + lp_edges = [ + i + for i in zip(longest_path[:-1], longest_path[1:]) + if self.G.edges[i]["edge_type"] == "activity" + ] + + # get the original duration + lp_duration_discounted = nx.path_weight( + discount_graph, longest_path, weight="duration" + ) + lp_duration = round( + nx.path_weight(self.G, longest_path, weight="duration"), 2 + ) + t_start = self.G.nodes[longest_path[0]]["time"] + t_end = self.G.nodes[longest_path[-1]]["time"] + logging.debug( + f"longest path found: duration {lp_duration}, t_start " + f"{t_start} and t_end {t_end}. (discounted duration " + f"{lp_duration_discounted})" + ) + + # see if this path is a feasible longest path in the original + # i.e. must be max duration and same end time + if (lp_duration == round(self.max_duration, 2)) and (t_end == t_max_end): + # create list of not-yet-marked-as-critical critical edges + to_add_critical = [ + edge for edge in lp_edges if edge not in list_critical + ] + if len(to_add_critical) > 0: + logging.debug( + "New elements on critical path path, " + f"adding {to_add_critical}." + ) + list_critical += to_add_critical + feasible_longest = True + else: + to_add_discount = [edge for edge in lp_edges if edge not in to_discount] + if len(to_add_discount) > 0: + logging.debug("adding to discount") + to_discount += to_add_discount + + # discount the edges, all at once, or only the last one + if feasible_longest: + logging.debug("discounting all") + # in one go discount all activity edges in critical path + list_edges = [ + i + for i in zip(longest_path[:-1], longest_path[1:]) + if self.G.edges[i]["edge_type"] == "activity" + ] + for edge in list_edges: + discount_graph.edges[edge]["duration"] = 10**-4 + self.G.edges[edge][self.__COLNAME_CRITICAL] = self.__CRITICAL[1] + yet_to_discount = [] + else: + yet_to_discount = [ + edge for edge in to_discount if edge not in list_noncritical + ] + if len(yet_to_discount) > 0: + logging.debug(f"Discounting {yet_to_discount[-1]}") + discount_graph.edges[yet_to_discount[-1]]["duration"] = 10**-8 + list_noncritical.append(yet_to_discount[-1]) + yet_to_discount = yet_to_discount[:-1] + + # iterate if we have yet to discount or if we have marked all edges + if len(list_critical) + len(list_noncritical) == self.n_activities: + return list_critical + return self.__get_list_critical_edges( + discount_graph=discount_graph, + list_critical=list_critical, + list_noncritical=list_noncritical, + to_discount=yet_to_discount, + max_duration=max_duration, + t_max_end=t_max_end, + duration_discounted_prev=duration_discounted_prev, + ) + + def mark_critical_activities(self): + """ + Return the list of critical activities. + + This method uses the underlying activity graph to mark all simulated + actvities (i.e. edges in the graph) which are on a path of longest + duration. + + The process of finding _a_ longest path in a directed non-cyclic graph + is rather quick, however finding _all_ longest paths in such a graph + was found out to be computationally expensive. Since we do not need to + know all longest paths, but rather all activities that are on a longest + path, the solution is found in a recursive function that marks edges + in the graph as belonging to a longest path. This process has better + computational performance. + + For more information, please check out class method + ``self.__get_list_critical_edges()``. + + """ + logging.info("Start finding activities on the critical path.") + process_start = time.time() + + # get all edges on all critical paths + edges_critical = self.__get_list_critical_edges() + + # convert to activities and return + list_activities = [ + self.G.edges[edge]["cp_activity_id"] for edge in edges_critical + ] + logging.info(f"-- total elapsed time {time.time() - process_start} seconds.") + + return list_activities + + +# %% MAIN CLASS CpLog FOR DETECTING THE CRITICAL PATH FROM A SIMULATION + + +class CpLog: + """ + This class creates a CpLog (read as: 'critical path log') from the combined + logbooks of (all) simulated objects and activities in an OpenCLSim + simulation. Hence, the resulting logbooks from the HasLog mix-in. + + The class is initialized from a list of OpenCLSim simulation objects (e.g. + vessels and sites) and a list of top level activities. Please ensure that + the input contains all simulation objects and (top level) activities from + your simulation which are relevant for extracting the critical path from + the logs. + + The CpLog is to be called _after_ executing the OpenCLSim simulation. + + Parameters + --------------- + list_objects : list + list of _all_ simulation objects (after simulation) + list_activities : list + list of _all_ top-node activity objects (after simulation) + """ + + COLUMNS_LOG = [ + "Activity", + "SimulationObject", + "start_time", + "state", + "duration", + "end_time", + "cp_activity_id", + "is_critical", + ] + + def __init__(self, list_objects, list_activities): + """Process off initialization a CpLog object.""" + # extract logs from all objects + cp_log = self._make_critical_path_log(list_objects, list_activities) + + # init set all activities on being non-critical + cp_log.loc[:, "is_critical"] = False + self.cp_log = cp_log + self.list_objects = list_objects + self.list_activities = list_activities + + # attributes created with get_dependencies + self.dependencies_act = None + self.all_cp_dependencies = None + + def mark_critical_activities(self, dependencies): + """ + Mark activities on the critical path. + + Use the ActivityGraph object to mark activities in the CpLog as + belonging to a critical path. + + Parameters + ---------- + dependencies : list of tuples, optional + List of tuples of critical path ids of dependencies that were + found. + sparse : boolean, optional + If True, a sparse dictionary is returned with activity id, the + start and end time of the occurance, and a boolean indicating + whether this activity is on the critical path. If False, a full + DataFrame will be returned. The default is True. + + Returns + ------- + log_out : list or DataFrame + All activities with indication of being on critical path. + """ + # initiate the ActivityGraph object + my_graph = ActivityGraph(self.cp_log, dependencies) + + # get the list of critical activities + list_actvities_critical = my_graph.mark_critical_activities() + + # mark them in the CpLog + log_out = copy.deepcopy(self.cp_log) + log_out.loc[:, "is_critical"] = log_out.loc[:, "cp_activity_id"].isin( + list_actvities_critical + ) + + return log_out + + def get_dependencies_log_based(self): + """ + Use the logbook of the simulated activities to determine dependency + links between activities. + + This method determines dependencies between activities 'blindly' based + on the simulation logs only. That is, purely based on timestamp and + simulation object. + + The procedure of determining dependencies is as follows: + + 1. Standard dependencies are those that have matching end and start + times, and share at least one object. + 2. If a WAITING activity is logged, then it is assumed that the object + is purposefully waiting for something. Hence, this should be + included in the dependencies. + + .. warning:: + This method has a few known limitations which are listed below: + - It is a rather grand assumption to conclude dependency from the + log, i.e. matching time and location, only. As a result cases + where 'being at the same place at the same time' may be wrongly + interpreted as a dependency between activities. + - It is assumed that there is always a common object for a + dependency to occur. There are situations in which this may not + be the case, for instance some level dependencies. + - No explicit logic from the simulation model setup and objects can + be extracted from the logbooks (after simulation) + + Returns + ------------ + dependencies : list + list of tuplese e.g. ``[(A, C), (B, C), (C, F)]`` when activity + ``C`` depends on ``A`` and ``B`` and ``F`` on ``C``. + + """ + list_dependencies = [] + + # loop over each unique cp_activity + for cp_act in self.cp_log.loc[:, "cp_activity_id"].unique(): + # and find cp_activities that END when this one STARTS + bool_this_activity = self.cp_log.loc[:, "cp_activity_id"] == cp_act + bool_end_when_start = ( + self.cp_log.loc[:, "end_time"] + == self.cp_log.loc[bool_this_activity, "start_time"].iloc[0] + ) + bool_shared_source = self.cp_log.loc[:, "SimulationObject"].isin( + list(self.cp_log.loc[bool_this_activity, "SimulationObject"]) + ) + + # so standard dependencies requires identical time and (at least 1) + # shared Source Object + bool_dependencies = ( + bool_shared_source & bool_end_when_start & ~bool_this_activity + ) + if sum(bool_dependencies) > 0: + dependencies = self.cp_log.loc[bool_dependencies, :] + if "WAITING" in dependencies.loc[:, "state"].tolist(): + # This activity depends on waiting meaning: current + # activity might have been waiting on activity of other + # source object! We ASSUME that every activity of every + # source object with identical end time of this WAITING is + # a dependency for current activity + dependencies = self.cp_log.loc[ + bool_end_when_start & ~bool_this_activity, : + ] + + # get all unique activities on which current cp_act depends + activities_depending = dependencies.loc[:, "cp_activity_id"].unique() + + for act_dep in activities_depending: + list_dependencies.append((act_dep, cp_act)) + + self.all_cp_dependencies = list_dependencies + + return self.all_cp_dependencies + + def get_dependencies_model_based(self): + """ + Use the pre-defined model setup as well as the logbooks to determine + dependency links between activities. + + This method uses the simulation objects, the activity hierarchy as well + as the logged simulation to extract dependencies. + + The procedure of determining dependencies is as follows: + + 1. Inspect the model setup of activities to extract logical + dependencies between the conceptual activities. For instance, if the + setup contains a WHILE activity, containing a SEQUENTIAL activity of + sub activities ``A`` followed by ``B`` followed by ``C``, then we + must find the logical dependencies ``(A, B)``, ``(B, C)`` and + ``(C, A)``. + 2. Get activities based on start events. + 3. Get time related dependencies. + 4. Get resource limitation dependencies. + 5. Get wait dependencies. + + + .. warning:: + The model based dependency detection is limited by the information + in the current OpenCLSim logging. Known limitations are: + - From the model setup the logical dependencies due to the activity + definition and hierarchy can be extracted. + - For resource limitations dependencies it is assumed that any + activity at a ``HasResource`` object also requests a resource. + The current logging does not explicity log the resource requests. + - Start events are not explicitly logged, only level-based start + events are supported as a preliminary function. + - Waiting is ambiguous for detection of the critical path. + + """ + # method that only creates dependencies when explicitly programmed + # get dependencies from DependencyGraph + my_graph = DependencyGraph(self.list_activities) + self.dependencies_act = my_graph.getListDependencies() + + # also get dependencies from start events + dependencies_start = get_act_dependencies_start(self.list_activities) + cp_dependencies = get_dependencies_time( + self.cp_log, self.dependencies_act + dependencies_start + ) + + # get cp dependencies based on resource utilisation vs capacity + cp_depencies_res_limitation = get_resource_capacity_dependencies( + self.cp_log, self.list_objects + ) + + # get cp dependencies 'WAIT' + cp_dependencies_wait = get_wait_dependencies_cp(self.cp_log) + self.all_cp_dependencies = list( + set(cp_dependencies + cp_depencies_res_limitation + cp_dependencies_wait) + ) + + return self.all_cp_dependencies + + def _make_critical_path_log(self, list_objects, list_activities): + """ + Creates one single uniform log containing all activities from the + logbooks of provided lists of object and activities. The format is + such that any activity (in time) will get a single row in the log with + a start and end time. A unique ID will also be added, i.e. unique in + activity _and_ time. + """ + log_sim_objects = combine_logs(list_objects, list_activities) + log_act = combine_logs_activities(list_activities) + + # combine these two, but first check which to ignore + bool_keep = [] + for idx, row in log_act.iterrows(): + bool_within_sim_log = ( + (row.loc["ActivityID"] == log_sim_objects.loc[:, "ActivityID"]) + & (row.loc["Timestamp"] == log_sim_objects.loc[:, "Timestamp"]) + & (row.loc["ActivityState"] == log_sim_objects.loc[:, "ActivityState"]) + ) + if sum(bool_within_sim_log) == 0: + # no hit, add + bool_keep.append(idx) + + log_all = ( + pd.concat([log_sim_objects, log_act.loc[bool_keep, :]]) + .sort_values("Timestamp") + .reset_index(drop=True) + ) + + # reshape into set of activities with start, duration and end + log_cp = reshape_log(log_all) + # add unique identifier for activities (may be shared by multiple objects) + log_cp = add_unique_activity(log_cp) + + return log_cp + + +# %% AUXILIARY FUNCTIONS FOR THE CpLog CLASS + + +def get_dependencies_time(df_log_cp, dependencies_act): + """ + Based on the model-based top level activity dependencies, e.g. resulting + from the ``ActivityGraph``, check these dependencies as they appear in the + logbook after simulation. + + Parameters + ----------------- + df_log_cp : pd.DataFrame + log of all activities + dependencies_act : list + list of tuples of all (activity ID) dependencies + """ + list_cp_dependencies = [] + + for dep in dependencies_act: + # B depends on A + A, B = dep + # find every A with a directly following B + all_a = df_log_cp.loc[df_log_cp.loc[:, "ActivityID"] == A, :] + for idx, row in all_a.iterrows(): + all_time_diffs = df_log_cp.loc[:, "start_time"] - row.loc["end_time"] + bool_eligible_b = (df_log_cp.loc[:, "ActivityID"] == B) & ( + abs(all_time_diffs) < dt.timedelta(seconds=0.01) + ) + cp_activities_b = list( + set(df_log_cp.loc[bool_eligible_b, "cp_activity_id"]) + ) + if len(cp_activities_b) == 1: + list_cp_dependencies.append( + (row.loc["cp_activity_id"], cp_activities_b[0]) + ) + else: + logging.info( + f"No dependency found based on {row.loc['cp_activity_id']}" + ) + # make unique - some duplicates are possible due to doubling of + # simulation objects + list_cp_dependencies = list(set(list_cp_dependencies)) + + return list_cp_dependencies + + +def reshape_log(df_log): + """ + Reshape OpenCLSim log to a workable format for extracting critical path. + + This function reshapes a log DataFrame as output from OpenCLSim such that + an activity appears with a single log-line. The start and end times of the + activity is added in new columns. + + Note: the function starts off with a start event of an activity, and then + selects the stop event which is closest after this start event. It assumes + that activities with duration zero can be discarded. + + Parameters + ---------- + df_log : pd.DataFrame() + format like return from combine_logs() or plot.get_log_dataframe() + function definitions of OpenCLSim. + + Returns + ------- + df_new : pd.DataFrame() + The reformated and reshaped log. + """ + # keep the df chronological + df_log = df_log.sort_values(by=["Timestamp", "ActivityState"]) + df_log = df_log.reset_index() + + # make a list of indexes to handle + to_handle = list(range(0, len(df_log))) + + # dummy for the output + df_new = pd.DataFrame() + + # loop exit + safety_valve = 0 + while (len(to_handle) > 0) and (safety_valve < len(df_log)): + # update the safety valve + safety_valve += 1 + + # select a log-row to inspect + idx_start = to_handle[0] + row_current = df_log.loc[idx_start, :] + + # check for a start event + if row_current.loc["ActivityState"] not in ["START", "WAIT_START"]: + raise ValueError( + f"Unexpected starting state {row_current.loc['ActivityState']}" + f" for idx {idx_start}, so skipping this." + ) + + # see what stop events could belong to this start event + bool_candidates = ( + (df_log.loc[:, "ActivityID"] == row_current.loc["ActivityID"]) + & (df_log.loc[:, "SimulationObject"] == row_current.loc["SimulationObject"]) + & (df_log.loc[:, "ActivityState"].isin(["STOP", "WAIT_STOP"])) + ) + idx_candidates = list(bool_candidates.index[bool_candidates]) + # select the first end event after the start event + idx_end = [ + idx_end + for idx_end in idx_candidates + if idx_end > idx_start and idx_end in to_handle + ][0] + + # now remove idx start and end from handle + to_handle.remove(idx_start) + to_handle.remove(idx_end) + + # and place in new dataframe + df_new = pd.concat( + [ + df_new, + pd.DataFrame( + { + "Activity": row_current.loc["Activity"], + "ActivityID": row_current.loc["ActivityID"], + "SimulationObject": row_current.loc["SimulationObject"], + "start_time": row_current.loc["Timestamp"], + "state": "WAITING" + if "WAIT" in row_current.loc["ActivityState"] + else "ACTIVE", + "duration": df_log.loc[idx_end, "Timestamp"] + - row_current.loc["Timestamp"], + "end_time": df_log.loc[idx_end, "Timestamp"], + }, + index=[0], + ), + ], + ignore_index=True, + sort=False, + ) + + # ASSUME that activities with duration zero can be discarded + if isinstance(df_new.loc[:, "duration"][0], dt.timedelta): + df_new = df_new.loc[df_new.loc[:, "duration"] > dt.timedelta(seconds=0), :] + else: + df_new = df_new.loc[df_new.loc[:, "duration"] > 0, :] + + assert len(to_handle) == 0, f"These have not been handled {to_handle}" + df_new = df_new.sort_values(by=["start_time", "SimulationObject"]) + df_new = df_new.reset_index(drop=True) + + return df_new + + +def add_unique_activity(df_new): + """ + Add a unique activity ID in time. + + OpenCLSim activities have their unique UUID. However, if the same activity + is executed serveral times in through time, the same ID will appear in the + log. For the analysis of the critical path of executed activities, it is + desired to make the distinction between _activity A_ starting at time _t1_, + and the same _activity A_ starting at time _t2_. This new ID is added as + an additional column in the provided log as ``cp_activity_id``. + + Parameters + ----------- + df_new : pd.DataFrame() + like return from reshape_superlog() + + Returns + ---------- + df_new : pd.DataFrame() + has proper columns for input/init SuperLog + """ + unique_combis = ( + df_new.groupby(["Activity", "start_time", "end_time"]) + .size() + .reset_index() + .rename(columns={0: "count"}) + ) + # now add unique ID to df_new + for idx, row in unique_combis.iterrows(): + bool_match = ( + (df_new.loc[:, "Activity"] == row.loc["Activity"]) + & (df_new.loc[:, "start_time"] == row.loc["start_time"]) + & (df_new.loc[:, "end_time"] == row.loc["end_time"]) + ) + df_new.loc[bool_match, "cp_activity_id"] = str(uuid.uuid4()) + + return df_new + + +def combine_logs(objects, list_activities): + """ + Combines the logs of given objects into a single dataframe. + + Parameters + ------------ + objects : list + a list of vessels, sites for which to plot all activities. These need + to have had OpenCLSim logging! + list_activities : list + a list of top-activities of which also all sub-activities will be + resolved, e.g.: the top-level while activity as ``[while_activity]``. + """ + # check unique names + names = [obj.name for obj in objects] + assert len(names) == len(set(names)), "Names of your objects must be unique!" + + # concat + log_all = pd.DataFrame() + for obj in objects: + log = get_log_dataframe(obj) + log["SimulationObject"] = obj.name + log_all = pd.concat([log_all, log]) + + # now drop some columns not directly needed + log_all = log_all.loc[ + :, ["Activity", "Timestamp", "ActivityState", "SimulationObject"] + ] + + # keep ID and add name for us humans + log_all.loc[:, "ActivityID"] = log_all.loc[:, "Activity"] + + # get mapping + list_all_activities = get_subprocesses(list_activities) + id_map = {act.id: act.name for act in list_all_activities} + log_all.loc[:, "Activity"] = log_all.loc[:, "Activity"].replace(id_map) + + return log_all.sort_values("Timestamp").reset_index(drop=True) + + +def combine_logs_activities(activities): + """ + Create single log of activities. + + Provided a list of OpenCLSim activities, this function creates a single + log DataFrame with all activities combined. + + Parameters + ------------ + activities : list + A list of activities (after simulation). Note that these activities + need to have OpenCLSim logging! + """ + # check unique names + names = [act.name for act in activities] + assert len(names) == len(set(names)), "Names of your activities must be unique!" + + # concat + log_all = pd.DataFrame() + for act in activities: + log = get_log_dataframe_activity(act) + log["SimulationObject"] = "Activity" + log_all = pd.concat([log_all, log]) + + return log_all.sort_values("Timestamp").reset_index(drop=True) + + +# %% AUXILIARY FUNCTIONS FOR MODEL BASED DEPENDENCY DETECTION + +# Definition of the base activities + + +def is_basic_activity(activity): + """ + Auxiliary function to define an activity as a basic activity. + + An OpenCLSim activity is regarded as being a 'basic activity' if it is a + ``BasicActivity``, ``MoveActivity`` or a ``ShiftAmountActivity``. + + Parameters + ---------- + activity : OpenCLSim activity + The activity to be inspected for being a basic activity. + + Returns + ------- + bool + Whether it has been found to be a basic activity. + + .. warning:: + This function is fixed only to OpenCLSim's activities + ``BasicActivity``, ``MoveActivity`` and ``ShiftAmountActivity``. This + function currently cannot cope with new additional activities that + should be regarded as a basic activity too. + + """ + if issubclass(type(activity), model.basic_activity.BasicActivity): + return True + elif issubclass(type(activity), model.move_activity.MoveActivity): + return True + elif issubclass(type(activity), model.shift_amount_activity.ShiftAmountActivity): + return True + else: + return False + + +# Resource capacity related dependencies + + +def get_resource_capacity_dependencies(cp_log, list_objects): + """ + Given a ``CpLog`` instance, and a list of OpenCLSim model objects this + function inspects dependencies between activities which seen to be due to + resource limitations. + + For all objects it checks the number of resources that are available. Then + in the log it keeps track of the number of activities that occur at this + object, assuming that these activities request a resource from the object. + Hence, assumptions can be made on how many resources have been in use at a + particular moment in the simulation. As a result, resource limitation + dependencies between activities can be registered. + + Parameters + ------------ + cp_log : pd.DataFrame + ``pd.DataFrame`` as within ``CpLog`` + list_objects : list + list of all simulation objects (after simulation, e.g. + [vessel, site, etc]) + + .. warning:: + This function has some known limitations: + - This function utilizes the logging and simulation objects after + simulation. From this information it turns out that the actual + resource request cannot be tracked down. Hence, it is assumed that + if an activity takes place at an object, that also a resource is + requested. This is not by default the case, examples can be created + where an activity takes place at a simulation object without needing + a resource request. + """ + + # step 1: get all objects for which a resource limitation is applicable + objs_with_resource = [ + obj for obj in list_objects if check_resource(obj) is not None + ] + + # init output + list_dependencies_cp_all = [] + + # step 2: see what is going on at one of the resource sites + for obj_resource in objs_with_resource: + nr_resources = check_resource(obj_resource) + resource_log = get_timebased_overview_resource(cp_log, obj_resource.name) + + # now simply mark activies where utility > capacity and doublecheck + # that at this (start) time others end + bool_greater_than_cap = (resource_log.loc[:, "utility"] > nr_resources) & ( + resource_log.loc[:, "event"] == "START" + ) + + list_dependencies_cp = [] + for idx in bool_greater_than_cap.loc[bool_greater_than_cap].index.values: + list_dependencies_cp = [] + # is this one really waiting, i.e. is there a gap looking at + # other simulation object (vessel) + shared_simulation_objects = list( + set( + cp_log.loc[ + cp_log.loc[:, "cp_activity_id"] + == resource_log.loc[idx, "cp_activity_id"], + "SimulationObject", + ] + ) + - {obj_resource.name} + ) + if len(shared_simulation_objects) == 0: + # no new dependencies to make, no shared simulation objects for + # this activity: dependencies solely defined by activities + continue + else: + for shared_simulation_object in shared_simulation_objects: + # so at this point we learn whether the shared object has + # a gap or not. If gap (no identical end times), then + # continue + bool_any_endings_now = ( + cp_log.loc[:, "SimulationObject"] == shared_simulation_object + ) & (cp_log.loc[:, "end_time"] == resource_log.loc[idx, "datetime"]) + + # noinspection PyUnresolvedReferences + if sum(bool_any_endings_now) == 0: + # what is stopping now (so that this one can start) + bool_stopping_now = (resource_log.loc[:, "event"] == "STOP") & ( + resource_log.loc[:, "datetime"] + == resource_log.loc[idx, "datetime"] + ) + activities_stopping_now = resource_log.loc[ + bool_stopping_now, "cp_activity_id" + ].tolist() + for act in activities_stopping_now: + list_dependencies_cp.append( + (act, resource_log.loc[idx, "cp_activity_id"]) + ) + + # add the dependencies to the list + list_dependencies_cp_all = ( + list_dependencies_cp_all + list_dependencies_cp + ) + + # we may have found duplicates, return the unique connections + return list(set(list_dependencies_cp_all)) + + +# Check if an object had resource +def check_resource(obj): + """ + Simple check if an object has resources. + + Parameters + ---------- + obj : OpenCLSim simulation object + The object to be inspected. + + Returns + ------- + int, None + If the object has resources, then the number of resources is returned. + If not, then this function returns None. + + """ + if issubclass(type(obj), core.HasResource): + return obj.resource.capacity + else: + return None + + +# Convenience function to keep track of resources + + +def get_timebased_overview_resource(df_log, name_simulation_object): + """ + Get a DataFrame with all activities as START/STOP for a certain resource + (simulation) object. + + Parameters + ---------- + df_log : DataFrame + The logging DataFrame. + name_simulation_object : str + The name of the simulation object. + + Returns + ------- + resource_log : DataFrame + DataFrame with the assumed resources taken at the simulation object. + + .. warning:: + From the current logging of activities the actual resource request + cannot be derived. Hence, this function assumes that any activity at + the object also uses a resource. Examples can be created where this is + not the case, leading to mistakes. Fixes should be sought in updating + the logging module. + """ + bool_corresponding_to_object = df_log["SimulationObject"] == name_simulation_object + + # include WAIT as well + activity_ids = df_log.loc[bool_corresponding_to_object, "ActivityID"].tolist() + keep = (df_log.loc[:, "ActivityID"].isin(activity_ids)) & ( + df_log.loc[:, "SimulationObject"].isin([name_simulation_object, "Activity"]) + ) + resource_log_cp = df_log.loc[keep, :] + + # make a log of how many resources are used + # START ==> take one resource + # STOP ==> release one resource + all_starts = pd.DataFrame( + { + "datetime": resource_log_cp["start_time"], + "event": "START", + "cp_activity_id": resource_log_cp["cp_activity_id"], + } + ) + all_stops = pd.DataFrame( + { + "datetime": resource_log_cp["end_time"], + "event": "STOP", + "cp_activity_id": resource_log_cp["cp_activity_id"], + } + ) + resource_log = pd.concat([all_starts, all_stops]) + + # START always before stop (sedcondary ordering when same time) + resource_log = resource_log.sort_values(["datetime", "event"]).reset_index( + drop=True + ) + + # first add resource utility level + resource_log.loc[:, "utility"] = None + ut_current = 0 + for idx, row in resource_log.iterrows(): + if row.loc["event"] == "START": + ut_current += 1 + if row.loc["event"] == "STOP": + ut_current -= 1 + resource_log.loc[idx, "utility"] = ut_current + return resource_log + + +# Detect start-event triggered activities +def get_start_events(acts): + """ + This function gets all base activities with a single start event + condition. + + Parameters + ------------ + acts : list + Main activity or list of main activities (after simulation). + + Returns + ---------- + list_start_dependencies : list + list of start_event dictionairies, enriched with activity id which has + this start event as attribute. + """ + list_all_base_activities = [ + a for a in get_subprocesses(acts) if is_basic_activity(a) + ] + + list_start_dependencies = [] + for ba in list_all_base_activities: + if ba.start_event is not None and len(ba.start_event) == 1: + dict_start_event = ba.start_event[0] + dict_start_event["activity_id"] = ba.id + list_start_dependencies.append(dict_start_event) + + return list_start_dependencies + + +# Get dependencies based on start events +def get_act_dependencies_start(acts): + """ + Get activity dependencies based on start event conditions. + For now only 'container' type supported for base activities. + + Parameters + ------------ + acts : list + main activity or list of main activities (after simulation) + + Returns + ---------- + list_act_dependencies_start : list + list of dependencies (tuples with activity ids) + + .. warning:: + Start events are currently only detected based on level-related start + events. Hence, this function does not capture all start events! + + """ + list_start_dependencies = get_start_events(acts) + + # now see which base activities deal with container level + list_all_base_activities = [ + a for a in get_subprocesses(acts) if is_basic_activity(a) + ] + list_act_dependencies_start = [] + for start_dependency in list_start_dependencies: + if start_dependency["type"] == "container": + # dependency on all ShiftAmount Activities with destination as in + # start_dependency + dependent_on = [ + a + for a in list_all_base_activities + if issubclass(type(a), ShiftAmountActivity) + and a.destination == start_dependency["concept"] + ] + for dep in dependent_on: + list_act_dependencies_start.append( + (dep.id, start_dependency["activity_id"]) + ) + else: + logging.warning( + f"Finding dependencies for start condition type" + f" {start_dependency['type']} not (yet) supported" + ) + return list_act_dependencies_start + + +# Waiting related start events +def get_wait_dependencies_cp(df_log_cp): + """ + Get/assume dependencies between activities related to waiting. Waiting + activities must explicitly be marked in the CpLog object as ``WAITING``. + + Parameters + ----------- + df_log_cp : pd.DataFrame + the dataframe within object of class CpLog + + Returns + -------- + list_wait_dependencies : list + a list of dependencies (tuples with cp_Aativity_id values) + + .. warning:: + The definition of ``WAITING`` is up for discussion, as well as when and + whether waiting is part of the critical path in the first place. + + .. warning:: + This function is preliminary, and hence has its limitations. Mostly due + to critical information for dependencies in the way OpenCLSim now logs + its information. For proper dependency checks for extracting the + critical path, the logging module of OpenCLSim must be extended. + + """ + list_wait_dependencies = [] + bool_is_wait = df_log_cp.loc[:, "state"] == "WAITING" + if bool_is_wait.any(): + for idx, row in df_log_cp.loc[bool_is_wait, :].iterrows(): + list_ids_before = df_log_cp.loc[ + (df_log_cp.loc[:, "ActivityID"] == row.loc["ActivityID"]) + & (df_log_cp.loc[:, "end_time"] == row.loc["start_time"]), + "cp_activity_id", + ].tolist() + list_ids_after = df_log_cp.loc[ + (df_log_cp.loc[:, "ActivityID"] == row.loc["ActivityID"]) + & (df_log_cp.loc[:, "start_time"] == row.loc["end_time"]), + "cp_activity_id", + ].tolist() + + # by default only 1 activity with same activity ID before/after + # wait, so no explicit check - grab element 0 + if len(list_ids_before) > 0: + list_wait_dependencies.append( + (list_ids_before[0], row.loc["cp_activity_id"]) + ) + if len(list_ids_after) > 0: + list_wait_dependencies.append( + (row.loc["cp_activity_id"], list_ids_after[0]) + ) + else: + logging.info("No waiting activity in this critical path log") + + return list_wait_dependencies + + +# %% +def get_log_dataframe_activity(activity, keep_only_base=True): + """ + Get the log of the activity object in a pandas dataframe. + + Parameters + ---------- + activity : object + object from which the log is returned as a dataframe sorted by + "Timestamp" + keep_only_base : boolean + if True (default) only the base (containing no sub_processes) + activities are kept in pd.DataFrame output + """ + + list_all_activities = get_subprocesses(activity) + id_map = {act.id: act.name for act in list_all_activities} + + df_all = pd.DataFrame() + for sub_activity in list_all_activities: + + df = ( + pd.DataFrame(sub_activity.log) + .sort_values(by=["Timestamp"]) + .sort_values(by=["Timestamp"]) + ) + + df_concat = pd.concat( + [ + df.filter(items=["ActivityID"]), + pd.DataFrame(sub_activity.log).filter(["Timestamp", "ActivityState"]), + pd.DataFrame(sub_activity.log["ObjectState"]), + ], + axis=1, + ) + + df_all = pd.concat([df_all, df_concat], axis=0) + df_all.loc[:, "Activity"] = df_all.loc[:, "ActivityID"].replace(id_map) + + if keep_only_base: + # filter out all non-base activities + my_graph = DependencyGraph([activity]) + df_all = df_all.loc[ + df_all.loc[:, "ActivityID"].isin(my_graph.getListBaseActivities()), + :, + ] + + return df_all diff --git a/src/openclsim/plot/log_dataframe.py b/src/openclsim/plot/log_dataframe.py index 3626b37d..4e503591 100644 --- a/src/openclsim/plot/log_dataframe.py +++ b/src/openclsim/plot/log_dataframe.py @@ -6,7 +6,9 @@ def get_log_dataframe(simulation_object, id_map=None): - """Get the log of the simulation objects in a pandas dataframe. + """Get the chronological log of the simulation objects in a pandas dataframe. + + result is sorted by Timestamp Parameters ---------- @@ -21,8 +23,10 @@ def get_log_dataframe(simulation_object, id_map=None): if id_map is None: id_map = [] + if isinstance(id_map, dict): + id_map = [*id_map.values()] if isinstance(id_map, list): - id_map = {act.id: act.name for act in get_subprocesses(id_map)} + id_map = {act.id: act.name for act in get_subprocesses(id_map)} # needs to be recursive: flatten else: id_map = id_map if id_map else {} @@ -44,3 +48,70 @@ def get_log_dataframe(simulation_object, id_map=None): ], axis=1, ) + +def get_ranges_dataframe(simulation_object, id_map=None): + """Get the chronological ranges of the simulation objects in a pandas dataframe. + + Turns a log of length (2*n) of START, STOP events at t=Timestamp into + a log of length (n) of ranges between t=[TimestampStart, TimestampStop] + + result is sorted by Timestamp + + Parameters + ---------- + simulation_object + object from which the log is returned as a dataframe sorted by "Timestamp" + id_map + by default uuids are not resolved. id_map solves this at request: + * a list or dict of concepts + * a manual id_map to resolve concept uuids to labels, e.g. {'uuid1':'vessel A'} + """ + + log = get_log_dataframe(simulation_object, id_map=id_map) + + idkey='Activity' # ActivityID + + li = [] + + # do this analysis per ActivityID + # each intervals has START STOP + # at most 1 interval may be without STOP, the last one + + for ActivityID in set(log[idkey]): + + log1 = log[log[idkey]==ActivityID] + + t0 = log1[log1['ActivityState']=='START'].rename(columns={'Timestamp':'TimestampStart'}) + t1 = log1[log1['ActivityState']=='STOP'].rename(columns={'Timestamp':'TimestampStop'}) + + # add geometry? + if 'container level' in log1.keys(): + t0 = t0[['TimestampStart','container level']].rename(columns={'container level':'ContainerLevelStart'}) + t1 = t1[['TimestampStop','container level']].rename(columns={'container level':'ContainerLevelStop'}) + else: + t0 = t0[['TimestampStart']] + t1 = t1[['TimestampStop']] + + t0['trip'] = range(1,len(t0)+1) + t1['trip'] = range(1,len(t1)+1) + + if len(t0)==len(t1): + pass + elif len(t0)==len(t1)+1: + print('END missing') + dt1 = pd.DataFrame.from_dict({'trip':[len(t0)],'TimestampStop':[None]}) # will give NaT + t1 = pd.concat([t1, dt1], ignore_index=True) + else: + raise Exception('At most 1 range may be without STOP') + s = t0.merge(t1, on='trip') + + s[idkey] = ActivityID + dt = s['TimestampStop'] - s['TimestampStart'] + # powerbi gannt can only handle integer durations. so use a small unit:sec + s['TimestampDt'] = [x.total_seconds() for x in dt] + li.append(s) + + R = pd.concat(li) + R = R.sort_values(by=["TimestampStart"]) + + return R diff --git a/src/openclsim/plot/vessel_planning.py b/src/openclsim/plot/vessel_planning.py index 8ce2767d..fbdf12c8 100644 --- a/src/openclsim/plot/vessel_planning.py +++ b/src/openclsim/plot/vessel_planning.py @@ -50,22 +50,42 @@ def get_gantt_chart( web=False, static=False, y_scale="text", + critical_path=None, + legend=True, + ylabel="Activities", + title="GANTT Chart" ): """Create a plotly GANTT chart of the planning of vessels. Parameters ---------- concepts - a list of vessels, sites or activities for which to plot all activities + a list or dict of vessels, sites or activities for which to plot all + activities, e.g.: [while_actifvity1, while_activity2] or + {'w1':while_activity1, 'w2:while_activity2'}. Combinations of list + and dicts need to be merged first into 1 overall list or dict, e.g. + concepts = [from_site, to_site, *vessels.values()] activities - additional activities to be plotted, if not yet in concepts + a list or dict of additional activities to be plotted, if not yet in concepts id_map - by default only activity in concepts are resolved. Activities - associated with vessels and sites are not resolved. id_map solves this: - * a list of top-activities of which also all sub-activities - will be resolved, e.g.: [while_activity] + by default only the legend labels of activities in concepts are resolved. + Activities associated with vessels and sites are not resolved. id_map + resolves the legend labels using extra metadata: + * a list or dict of vessels * a manual id_map to resolve uuids to labels, e.g. {'uuid1':'name1'} """ + default_blockwidth = 10 + + # unpack dict to list + if type(concepts) == dict: + concepts = [*concepts.values()] + + if type(activities) == dict: + activities = [*activities.values()] + + if type(id_map) == dict: + id_map = [*id_map.values()] + if type(id_map) == list: id_map = {act.id: act.name for act in get_subprocesses(id_map)} else: @@ -103,9 +123,37 @@ def get_gantt_chart( dataframes.append(df) names.append(vessel.name) + # extract the tracts for the cp to be plotted in the background + traces = [] + if critical_path is not None: + x_critical = critical_path.loc[ + critical_path.loc[:, "is_critical"], "start_time" + ].tolist() + + x_critical_end = critical_path.loc[ + critical_path.loc[:, "is_critical"], "end_time" + ].tolist() + + ylist = critical_path.loc[ + critical_path.loc[:, "is_critical"], "SimulationObject" + ].tolist() + + x_nest = [[x1, x2, x2] for (x1, x2) in zip(x_critical, x_critical_end)] + y_nest = [[y, y, None] for y in ylist] + traces.append( + go.Scatter( + name="critical_path", + x=[item for sublist in x_nest for item in sublist], + y=[item for sublist in y_nest for item in sublist], + mode="lines", + hoverinfo="name", + line=dict(color="red", width=default_blockwidth + 4), + connectgaps=False, + ) + ) + df = dataframes[0] # prepare traces for each of the activities - traces = [] for i, activity in enumerate(activities): activity = act_map.get(activity, activity) x_combined = [] @@ -122,7 +170,7 @@ def get_gantt_chart( y=y_combined, mode="lines", hoverinfo="y+name", - line=dict(color=colors[i], width=10), + line=dict(color=colors[i], width=default_blockwidth), connectgaps=False, ) ) @@ -133,7 +181,7 @@ def get_gantt_chart( timestamps.extend(log) layout = go.Layout( - title="GANTT Chart", + title=title, hovermode="closest", legend=dict(x=0, y=-0.2, orientation="h"), xaxis=dict( @@ -142,7 +190,7 @@ def get_gantt_chart( range=[min(timestamps), max(timestamps)], ), yaxis=dict( - title="Activities", + title=ylabel, titlefont=dict(family="Courier New, monospace", size=18, color="#7f7f7f"), ), ) @@ -150,6 +198,8 @@ def get_gantt_chart( if static is False: init_notebook_mode(connected=True) fig = go.Figure(data=traces, layout=layout) + if not(legend): + fig.update_layout(showlegend=False) return iplot(fig, filename="news-source") else: diff --git a/src/openclsim/plugins/weather.py b/src/openclsim/plugins/weather.py index 7d48f07c..28c171ff 100644 --- a/src/openclsim/plugins/weather.py +++ b/src/openclsim/plugins/weather.py @@ -86,6 +86,8 @@ def __init__(self, weather_criteria=None, metocean_df=None): self.weather_criteria = weather_criteria self.metocean_df = metocean_df + self.res = self.process_data(self.weather_criteria) + def pre_process(self, env, activity_log, activity, *args, **kwargs): if self.weather_criteria is not None: t = float(env.now) @@ -106,10 +108,9 @@ def pre_process(self, env, activity_log, activity, *args, **kwargs): return {} def check_constraint(self, start_time): - res = self.process_data(self.weather_criteria) - windows = np.array(res["windows"]) - ts_start = res["dataset_start"] - ts_stop = res["dataset_stop"] + windows = np.array(self.res["windows"]) + ts_start = self.res["dataset_start"] + ts_stop = self.res["dataset_stop"] filter_windows = windows[windows[:, 1] >= start_time] i = 0 diff --git a/src/openclsim/utils.py b/src/openclsim/utils.py index 33a2dab7..b0c671ba 100644 --- a/src/openclsim/utils.py +++ b/src/openclsim/utils.py @@ -1,7 +1,9 @@ import pathlib -import openclsim +import pandas as pd +import openclsim +from openclsim.plot import get_ranges_dataframe def find_src_path(): """Lookup the path where the package are located. Returns a pathlib.Path object.""" @@ -20,3 +22,231 @@ def find_notebook_path(): src_path = find_src_path() notebook_path = src_path / "notebooks" return notebook_path + + +def flatten(treelist, depth=0) -> dict: + """Flatten a tree of activities into a flat list. + + Returns a dict with fields: + ActivityID, ActivityName, activity, + ParentId, ParentName, ParentLevel + + Parameters + ---------- + treelist + activity, or list or dict with activities + depth + depth level of top of hierarchy (default 0) + """ + + if isinstance(treelist,list): + treelist = treelist + elif isinstance(treelist,dict): + treelist = [*treelist.values()] + else: + treelist = [treelist] + + activity = [x for x in treelist] + ActivityID = [x.id for x in treelist] + ActivityName = [x.name for x in treelist] + ActivityClass = [type(x).__name__ for x in treelist] + ParentId = [None,]*len(ActivityID) + ParentName = ['',]*len(ActivityID) + ParentLevel = [depth,]*len(ActivityID) + + for i, act in enumerate(treelist): + if hasattr(act, "sub_processes"): + d = flatten(act.sub_processes, depth+1) + ActivityID += d['ActivityID'] + activity+=d['activity'] + ParentId +=[act.id]*len(d['activity']) + ParentName +=[act.name]*len(d['ParentName']) + ActivityClass +=d['ActivityClass'] + ActivityName +=d['ActivityName'] + ParentLevel +=d['ParentLevel'] + + return {'ActivityID':ActivityID, + 'ActivityName':ActivityName, + 'ActivityClass':ActivityClass, + 'ParentId':ParentId, + 'ParentName':ParentName, + 'ParentLevel':ParentLevel, + 'activity':activity} + +def export_concepts(concepts, namespace='', ofile=None,): + """Save the concepts vities to a resolved csv file + + Concepts can be stored in 1 file (Sites and Vessels) + or they can be stored mixed together. + + Parameters + ---------- + concepts + concepts to be resolved and stored + namespace + str that will prepad the column names 'Name', 'ID', "Class". + e.g. Vessel, Site or Concept + ofile + name of csv file to be exported + id_map + by default uuids are not resolved. id_map solves this at request: + * a list or dict of concepts + * a manual id_map to resolve concept uuids to labels, e.g. {'uuid1':'vessel A'} + """ + + if isinstance(concepts,dict): + concepts = [*concepts.values()] + + df= {f'{namespace}Name':[x.name for x in concepts], + f'{namespace}ID':[x.id for x in concepts], + f'{namespace}Class':[type(x).__name__ for x in concepts]} + + df = pd.DataFrame(df) + if ofile: + df.to_csv(ofile, index=False) + + return df + +def export_activities(activities, ofile=None): + """Save the activities tree to a resolved list in a csv file + + Note these are just the model-defined activities and the + mover, processor, origin and destination relations + without the log. + + returned keys are + 'ActivityID','ActivityName','ActivityClass', + 'ParentId','ParentName','ParentLevel', + 'OriginID','OriginName', + 'DestinationID','DestinationName', + 'ProcessorID','ProcessorName', + 'MoverID', 'MoverName' + + Parameters + ---------- + activities + hierarchical activities to be resolved and stored + ofile + name of csv file to be exported + """ + + df = pd.DataFrame(flatten(activities)) + + processor = [x.processor if hasattr(x,'processor') else None for x in df['activity']] + mover = [x.mover if hasattr(x,'mover') else None for x in df['activity']] + origin = [x.origin if hasattr(x,'origin') else None for x in df['activity']] + destination = [x.destination if hasattr(x,'destination') else None for x in df['activity']] + + df['ProcessorID'] = [x.id if x else None for x in processor] + df['MoverID'] = [x.id if x else None for x in mover] + df['OriginID'] = [x.id if x else None for x in origin] + df['DestinationID'] = [x.id if x else None for x in destination] + + df['ProcessorName'] = [x.name if x else '' for x in processor] + df['MoverName'] = [x.name if x else '' for x in mover] + df['OriginName'] = [x.name if x else '' for x in origin] + df['DestinationName'] = [x.name if x else '' for x in destination] + + # manually set column order + exclude actual 'activity' object ! + + keys = ['ActivityID','ActivityName','ActivityClass', + 'ParentId','ParentName','ParentLevel', + 'OriginID','OriginName', + 'DestinationID','DestinationName', + 'ProcessorID','ProcessorName', + 'MoverID', 'MoverName' + ] + + df = pd.DataFrame(df) + + if ofile: + df.to_csv(ofile, columns = keys, index=False) + + return df + +def export_activity_log(activities, ofile = None): + """Save log of activities to a resolved start-stop list in a csv file + + This export of the logged time ranges can be used to plot Gannt + charts in for instance Qlik and PowerBI. Load the coupled export_activities() + file to resolve the Activty properties and relations to (Sites and Vessels). + + + Parameters + ---------- + activities + hierarchical activities to be resolved and stored + ofile + name of csv file to be exported + """ + + df = pd.DataFrame(flatten(activities)) + + li = [] + for i, rowi in df.iterrows(): + log = get_ranges_dataframe(rowi['activity']) + log.rename(columns={'Activity':'ActivityID'}, inplace=True) + li.append(log) + ActivityRanges = pd.concat(li) + + ActivityRanges = ActivityRanges.merge(df[['ActivityID', 'ActivityName', 'ActivityClass']], on='ActivityID', how='left') + + keys = ['trip', + 'ActivityID','ActivityName','ActivityClass', + 'TimestampStart','TimestampStop','TimestampDt'] + + if ofile: + ActivityRanges.to_csv(ofile, columns = keys, index=False) + + return ActivityRanges.sort_values(by=["TimestampStart"]) + +def export_activity_resources(activities, ofile=None): + """Save the resources assigned to an activity to a resolved list in a csv file + + Note these are just the model-defined activities and the + mover, processor, origin and destination relations + without the log. activities thasty have no concept assigned + to it, are not exported. Use export_activities() for that. + + Note that 1 acticvity can have multiple concepts assigned + to it simultaneously. + + returned keys are + 'ActivityID','ActivityName','ActivityClass', + 'ConceptID','ConceptName','ConceptMode' + + Parameters + ---------- + activities + hierarchical activities to be resolved and stored + concept_name + optional filter the flattened list for one + concept_name (Sites and Vessels). Default: None + ofile + name of csv file to be exported + """ + + df = pd.DataFrame(flatten(activities)) + + li = [] + for attr_name in ['processor','mover', 'origin', 'destination']: + mask = [hasattr(x,attr_name) for x in df['activity']] + li+=[(x.id, + x.name, + type(x).__name__, + getattr(getattr(x,attr_name),'id'), + getattr(getattr(x,attr_name),'name'), + attr_name) for x in df[mask]['activity']] + tmp = list(zip(*li)) + res = pd.DataFrame.from_dict({'ActivityID':tmp[0], + 'ActivityName':tmp[1], + 'ActivityClass':tmp[2], + 'ConceptID':tmp[3], + 'ConceptName':tmp[4], + 'ConceptMode':tmp[5]}) + + if ofile: + res.to_csv(ofile, index=False) + + return res + diff --git a/tests/data/cp_log.xlsx b/tests/data/cp_log.xlsx new file mode 100644 index 00000000..0c78aba1 Binary files /dev/null and b/tests/data/cp_log.xlsx differ diff --git a/tests/data/demo_simulation.py b/tests/data/demo_simulation.py new file mode 100644 index 00000000..5360ec0f --- /dev/null +++ b/tests/data/demo_simulation.py @@ -0,0 +1,240 @@ +import shapely.geometry +import simpy + +import openclsim.core as core +import openclsim.model as model + +Site = type( + "Site", + ( + core.Identifiable, + core.Log, + core.Locatable, + core.HasContainer, + core.HasResource, + ), + {}, +) +TransportProcessingResource = type( + "TransportProcessingResource", + ( + core.Identifiable, + core.Log, + core.ContainerDependentMovable, + core.Processor, + core.HasResource, + ), + {}, +) + + +def run_simulation(nt_barges, total_amount): + simulation_start = 0 + my_env = simpy.Environment(initial_time=simulation_start) + registry = {} + + location_from_site = shapely.geometry.Point(4.18055556, 52.18664444) + + data_from_site = { + "env": my_env, + "name": "from_site", + "geometry": location_from_site, + "capacity": 2 * total_amount, + "level": 2 * total_amount, + "nr_resources": 1, + } + from_site = Site(**data_from_site) + + location_to_site = shapely.geometry.Point(4.25222222, 52.11428333) + data_to_site = { + "env": my_env, + "name": "to_site", + "geometry": location_to_site, + "capacity": total_amount, + "level": 0, + "nr_resources": 4, + } + to_site = Site(**data_to_site) + + location_to_site2 = shapely.geometry.Point(4.35222222, 52.11428333) + data_to_site2 = { + "env": my_env, + "name": "to_site2", + "geometry": location_to_site2, + "capacity": total_amount, + "level": 0, + "nr_resources": 4, + } + to_site2 = Site(**data_to_site2) + + vessels = {} + + for i in range(nt_barges): + vessels[f"vessel{i}"] = TransportProcessingResource( + env=my_env, + name=f"barge_{i}", + geometry=location_from_site, + capacity=10, + compute_v=lambda x: 10, + ) + + # vessel_last wait till whiletask done + vessel_last = TransportProcessingResource( + env=my_env, + name="vessel_last", + geometry=location_from_site, + capacity=10, + compute_v=lambda x: 10, + ) + vessels["vessel_last"] = vessel_last + + activities = {} + for i in range(nt_barges): + amount = 5 # handle loading + duration = 2000 # sailing and unloading + + requested_resources = {} + activities[f"activity{i}"] = model.WhileActivity( + env=my_env, + name=f"while_sequential_activity_subcycle{i}", + registry=registry, + sub_processes=[ + model.SequentialActivity( + env=my_env, + name=f"sequential_activity_subcycle{i}", + registry=registry, + sub_processes=[ + model.BasicActivity( + env=my_env, + name="basic activity:" + vessels[f"vessel{i}"].name, + registry=registry, + duration=duration, + additional_logs=[ + vessels[f"vessel{i}"] + ], # TODO add stop event for vessel 1 if... + ), + model.MoveActivity( + env=my_env, + name="sailing empty:" + vessels[f"vessel{i}"].name, + registry=registry, + mover=vessels[f"vessel{i}"], + destination=from_site, + duration=duration, + ), + model.ShiftAmountActivity( + env=my_env, + name="loading:" + vessels[f"vessel{i}"].name, + registry=registry, + processor=vessels[f"vessel{i}"], + origin=from_site, + destination=vessels[f"vessel{i}"], + amount=amount, + duration=500 * amount, + requested_resources=requested_resources, + ), + model.MoveActivity( + env=my_env, + name="sailing full:" + vessels[f"vessel{i}"].name, + registry=registry, + mover=vessels[f"vessel{i}"], + destination=to_site, + duration=duration, + ), + model.ShiftAmountActivity( + env=my_env, + name="unloading:" + vessels[f"vessel{i}"].name, + registry=registry, + processor=vessels[f"vessel{i}"], + origin=vessels[f"vessel{i}"], + destination=to_site, + amount=amount, + duration=duration, + requested_resources=requested_resources, + ), + ], + ) + ], + condition_event=[ + { + "type": "container", + "concept": to_site, + "state": "full", + "id_": "default_reservations", + } + ], + ) + + # now add activity for vessel last, once v1 and v2 are done + requested_resources = {} + amount = 5 + duration = 100 + activities["activity_vessel0"] = model.SequentialActivity( + env=my_env, + name="sequential_v0", + registry=registry, + sub_processes=[ + model.BasicActivity( + env=my_env, + name="basic activity vessel_last", + registry=registry, + duration=duration, + additional_logs=[vessel_last], + start_event=[ + { + "name": "while_sequential_activity_subcycle1", + "type": "activity", + "state": "done", + } + ], + ), + model.MoveActivity( + env=my_env, + name="sailing empty: vessel_last", + registry=registry, + mover=vessel_last, + destination=from_site, + duration=duration, + ), + model.ShiftAmountActivity( + env=my_env, + name="loading vessel_last", + registry=registry, + processor=vessel_last, + origin=from_site, + destination=vessel_last, + amount=amount, + duration=500 * amount, + requested_resources=requested_resources, + ), + model.MoveActivity( + env=my_env, + name="sailing full vessel_last", + registry=registry, + mover=vessel_last, + destination=to_site2, + duration=duration, + ), + model.ShiftAmountActivity( + env=my_env, + name="unloading vessel_last", + registry=registry, + processor=vessel_last, + origin=vessel_last, + destination=to_site2, + amount=amount, + duration=duration, + requested_resources=requested_resources, + ), + ], + ) + + model.register_processes(list(activities.values())) + my_env.run() + + return { + "vessels": vessels, + "activities": activities, + "from_site": from_site, + "to_site": to_site, + "to_site2": to_site2, + } diff --git a/tests/test_critical_path.py b/tests/test_critical_path.py new file mode 100644 index 00000000..3d7962f2 --- /dev/null +++ b/tests/test_critical_path.py @@ -0,0 +1,99 @@ +"""Testing plot/critical_path.py""" +import os + +import pandas as pd +import pytest + +# module to be tested +from openclsim.plot.critical_path import CpLog +from openclsim.plot.vessel_planning import get_gantt_chart + +from .data.demo_simulation import run_simulation + +# %% data + + +data_path = os.path.join(os.path.dirname(__file__), "data") + + +# %% fixtures + + +@pytest.fixture() +def demo_simulation(): + """Generate a simulation.""" + return run_simulation(nt_barges=3, total_amount=1000) + + +@pytest.fixture() +def objs_and_acts(demo_simulation): + """CpLog for testing.""" + sim_dict = demo_simulation + my_objects = list(sim_dict["vessels"].values()) + [ + sim_dict["from_site"], + sim_dict["to_site"], + sim_dict["to_site2"], + ] + my_activities = list(sim_dict["activities"].values()) + + return my_objects, my_activities + + +# %% testing + + +def test_init_cplog(objs_and_acts): + """Testing init of a CpLog""" + my_objects, my_activities = objs_and_acts + + my_log = CpLog(list_objects=my_objects, list_activities=my_activities) + + assert isinstance(my_log, CpLog) + + +def test_dependencies_log(objs_and_acts): + """Testing dependencies""" + my_objects, my_activities = objs_and_acts + + my_log = CpLog(list_objects=my_objects, list_activities=my_activities) + + dep_log = my_log.get_dependencies_log_based() + assert isinstance(dep_log, list) + assert len(dep_log) == 1134 + + +def test_dependencies_model(objs_and_acts): + """Testing dependencies""" + my_objects, my_activities = objs_and_acts + + my_log = CpLog(list_objects=my_objects, list_activities=my_activities) + + dep_model = my_log.get_dependencies_model_based() + assert isinstance(dep_model, list) + assert len(dep_model) == 1002 + + +def test_critical(objs_and_acts): + """Testing the marking of critical activities""" + my_objects, my_activities = objs_and_acts + + my_log = CpLog(list_objects=my_objects, list_activities=my_activities) + + dep_log = my_log.get_dependencies_log_based() + + df = my_log.mark_critical_activities(dep_log) + + assert isinstance(df, pd.DataFrame) + + +def test_plot(objs_and_acts): + """Testing the plotting of critical activities""" + my_objects = objs_and_acts[0] + my_activities = objs_and_acts[1] + + my_log = CpLog(list_objects=my_objects, list_activities=my_activities) + + dep_log = my_log.get_dependencies_log_based() + df = my_log.mark_critical_activities(dep_log) + + _ = get_gantt_chart(my_objects, critical_path=df) diff --git a/tests/test_delay_plugin.py b/tests/test_delay_plugin.py index 2c45833e..9c3d00e3 100644 --- a/tests/test_delay_plugin.py +++ b/tests/test_delay_plugin.py @@ -1,5 +1,6 @@ """Test package.""" +import pytest import shapely.geometry import simpy @@ -166,7 +167,7 @@ def test_delay_plugin(): model.register_processes([while_activity]) my_env.run() - assert my_env.now == 6354.357654924601 + assert my_env.now == pytest.approx(6354.357654924601) assert_log(while_activity) assert_log(hopper) assert_log(from_site) diff --git a/tests/test_move_activity.py b/tests/test_move_activity.py index 39e6fc10..d1fcc138 100644 --- a/tests/test_move_activity.py +++ b/tests/test_move_activity.py @@ -1,5 +1,6 @@ """Test package.""" +import pytest import shapely.geometry import simpy @@ -74,7 +75,7 @@ def test_move_activity(): model.register_processes([activity]) my_env.run() - assert my_env.now == 942.8245912734186 + assert my_env.now == pytest.approx(942.8245912734186) assert_log(activity) assert_log(hopper) assert_log(to_site) diff --git a/tests/test_wraped_single_run.py b/tests/test_wraped_single_run.py index 0daf572d..42ad4fe5 100644 --- a/tests/test_wraped_single_run.py +++ b/tests/test_wraped_single_run.py @@ -1,4 +1,5 @@ """Test package.""" +import pytest import shapely.geometry import simpy @@ -88,7 +89,7 @@ def test_wraped_single_run(): model.register_processes([while_activity]) my_env.run() - assert my_env.now == 13699.734162066252 + assert my_env.now == pytest.approx(13699.734162066252) assert_log(hopper) assert_log(from_site)