From 22e8f65ae398e460b8a2f661bb5b185c9fa830c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B5=D0=B2=D1=80=D0=B8=D0=B7=D0=BC=D0=B0?= Date: Sun, 20 Jan 2019 15:52:55 +0300 Subject: [PATCH] feat(Landing): use mapDispatchToProps --- build/client/static/bundle.js | 55 ++-- .../05b9729b4da0d622bcb4.hot-update.json | 1 + .../0b6654c94f65a2bfa530.hot-update.json | 1 + .../1c6f1fc0df78c8b16a2d.hot-update.json | 1 + .../2337e88cf47b25ec1e5c.hot-update.json | 1 + .../306b891647c456735194.hot-update.json | 1 + .../3c7ef8cbba8f1dc3d0ec.hot-update.json | 1 + .../3e4604344bb77aebb049.hot-update.json | 1 + .../5189f06c5547af5a0ded.hot-update.json | 1 + .../56cbb99e6ca7757be61a.hot-update.json | 1 + .../5824cf574b29cc287e40.hot-update.json | 1 - .../66124e16405da64c41cc.hot-update.json | 1 - .../6726424c38b7c05c211b.hot-update.json | 1 + .../6bf94db3798eaf4528db.hot-update.json | 1 + .../70278edb4fc19a571d0c.hot-update.json | 1 + .../73780d0c374ef4c81c6e.hot-update.json | 1 + .../78dac4be9c5eeb8effdd.hot-update.json | 1 + .../7b6bc80f97de635267f4.hot-update.json | 1 + .../879fa40534e348a2882c.hot-update.json | 1 + .../88b1357c7468481f0dcb.hot-update.json | 1 - .../98fc08bd0ee2a17e6b5a.hot-update.json | 1 + .../a3c8adc66b9f3cfcadf5.hot-update.json | 1 + .../a779eab72386cc7fa4fe.hot-update.json | 1 + .../a97a0536125d7d3e0348.hot-update.json | 1 + .../ae3c799b16f94ebf17d6.hot-update.json | 1 + .../b7032dc26aaac7c21ff7.hot-update.json | 1 + .../bc978d3d2d3350464949.hot-update.json | 1 + .../bfc3ec303013b93297ef.hot-update.json | 1 + .../bundle.05b9729b4da0d622bcb4.hot-update.js | 141 +++++++++++ .../bundle.0b6654c94f65a2bfa530.hot-update.js | 143 +++++++++++ .../bundle.1c6f1fc0df78c8b16a2d.hot-update.js | 136 ++++++++++ .../bundle.2337e88cf47b25ec1e5c.hot-update.js | 136 ++++++++++ .../bundle.306b891647c456735194.hot-update.js | 138 ++++++++++ .../bundle.3c7ef8cbba8f1dc3d0ec.hot-update.js | 141 +++++++++++ .../bundle.3e4604344bb77aebb049.hot-update.js | 138 ++++++++++ .../bundle.5189f06c5547af5a0ded.hot-update.js | 134 ++++++++++ .../bundle.56cbb99e6ca7757be61a.hot-update.js | 145 +++++++++++ .../bundle.66124e16405da64c41cc.hot-update.js | 75 ------ .../bundle.6726424c38b7c05c211b.hot-update.js | 134 ++++++++++ ...bundle.6bf94db3798eaf4528db.hot-update.js} | 4 +- .../bundle.70278edb4fc19a571d0c.hot-update.js | 50 ++++ .../bundle.73780d0c374ef4c81c6e.hot-update.js | 143 +++++++++++ .../bundle.78dac4be9c5eeb8effdd.hot-update.js | 142 +++++++++++ .../bundle.7b6bc80f97de635267f4.hot-update.js | 143 +++++++++++ .../bundle.879fa40534e348a2882c.hot-update.js | 140 ++++++++++ .../bundle.88b1357c7468481f0dcb.hot-update.js | 193 -------------- .../bundle.98fc08bd0ee2a17e6b5a.hot-update.js | 50 ++++ .../bundle.a3c8adc66b9f3cfcadf5.hot-update.js | 140 ++++++++++ .../bundle.a779eab72386cc7fa4fe.hot-update.js | 143 +++++++++++ .../bundle.ae3c799b16f94ebf17d6.hot-update.js | 50 ++++ .../bundle.b7032dc26aaac7c21ff7.hot-update.js | 140 ++++++++++ .../bundle.bc978d3d2d3350464949.hot-update.js | 145 +++++++++++ .../bundle.bfc3ec303013b93297ef.hot-update.js | 239 ++++++++++++++++++ .../bundle.c86cf49b4185dae76b18.hot-update.js | 144 +++++++++++ .../bundle.cae5fffc14ee37fed640.hot-update.js | 140 ++++++++++ .../bundle.db781727b7c46e9a2a7e.hot-update.js | 141 +++++++++++ .../bundle.e167dffa12a04e2e430b.hot-update.js | 140 ++++++++++ .../bundle.ee5e5a11b5e90b9a86b2.hot-update.js | 50 ++++ .../c86cf49b4185dae76b18.hot-update.json | 1 + .../cae5fffc14ee37fed640.hot-update.json | 1 + .../d0f4d389de2f336b525b.hot-update.json | 1 + .../db781727b7c46e9a2a7e.hot-update.json | 1 + .../e167dffa12a04e2e430b.hot-update.json | 1 + .../ee5e5a11b5e90b9a86b2.hot-update.json | 1 + .../081322e4d2f61cec561a.hot-update.json | 1 + .../0948062ae1b87cbcbc27.hot-update.json | 1 + .../0a3358a4d0eac6ebc3b2.hot-update.json | 1 + .../0acc8a9ccc555706048e.hot-update.json | 1 - .../13b3d07960cdfdccd263.hot-update.json | 1 + .../1c33234cdeff813d8c74.hot-update.json | 1 - .../2677b2bf2f1d713ae259.hot-update.json | 1 + .../2af0e740145b282586bd.hot-update.json | 1 + .../2d1db1f0d003a7255355.hot-update.json | 1 + .../2e42172a48b3126eec13.hot-update.json | 1 + .../36e454ac82e78591c3be.hot-update.json | 1 + .../4319e60e20967ee9306e.hot-update.json | 1 + .../44ac901e193852be1a5c.hot-update.json | 1 + .../4957889460ecdee5df30.hot-update.json | 1 + .../4aa9cecc000cb9ed2dd0.hot-update.json | 1 + .../4e43c857b96efd2c10ed.hot-update.json | 1 + .../5c57b2dee6104780b906.hot-update.json | 1 + .../6867769d16ecddeb84e2.hot-update.json | 1 + .../6a29d178dbdd776ee6c8.hot-update.json | 1 + .../7792656af2f5c6d8be15.hot-update.json | 1 + .../78f950b88a5f941b8ed2.hot-update.json | 1 + .../7cc1fc99eda6306b3fa2.hot-update.json | 1 + .../84a53b2da9b7d1266e8a.hot-update.json | 1 + .../8948ef959f485e2458f6.hot-update.json | 1 - .../920c891c4b34c06bc559.hot-update.json | 1 + .../98b3d40157b766fa7792.hot-update.json | 1 + .../9959e0067a62f246592c.hot-update.json | 1 + .../9d02fda0ab85da68c30f.hot-update.json | 1 - .../9e5546701add6d5409fa.hot-update.json | 1 + .../a1933c29e6217461b490.hot-update.json | 1 + .../a6515f44ae654f88cf69.hot-update.json | 1 + .../a81124648213f1076765.hot-update.json | 1 + .../b021b9739e9afabc2561.hot-update.json | 1 + .../b1fdf44d5a4f144811cb.hot-update.json | 1 + .../bceaa890bff4f16bd258.hot-update.json | 1 + .../d124a565de1c2638b548.hot-update.json | 1 - .../eb49b7b3424ec497ba76.hot-update.json | 1 - .../edac8c81a05bbc4c08a3.hot-update.json | 1 + .../f8108cd34d400cf3513e.hot-update.json | 1 + .../f8cb34021973887f2813.hot-update.json | 1 + .../fd459c694dd1d251bc6d.hot-update.json | 1 + .../ff7e2c1c70a32f1ed9c5.hot-update.json | 1 + ...server.081322e4d2f61cec561a.hot-update.js} | 13 +- .../server.0948062ae1b87cbcbc27.hot-update.js | 21 ++ .../server.0a3358a4d0eac6ebc3b2.hot-update.js | 21 ++ .../server.0acc8a9ccc555706048e.hot-update.js | 18 -- .../server.13b3d07960cdfdccd263.hot-update.js | 16 ++ .../server.1c33234cdeff813d8c74.hot-update.js | 15 -- .../server.2677b2bf2f1d713ae259.hot-update.js | 16 ++ .../server.2af0e740145b282586bd.hot-update.js | 16 ++ .../server.2d1db1f0d003a7255355.hot-update.js | 39 +++ .../server.2e42172a48b3126eec13.hot-update.js | 39 +++ .../server.36e454ac82e78591c3be.hot-update.js | 16 ++ .../server.4319e60e20967ee9306e.hot-update.js | 16 ++ .../server.44ac901e193852be1a5c.hot-update.js | 16 ++ .../server.4957889460ecdee5df30.hot-update.js | 16 ++ .../server.4aa9cecc000cb9ed2dd0.hot-update.js | 16 ++ .../server.4e43c857b96efd2c10ed.hot-update.js | 15 ++ .../server.5c57b2dee6104780b906.hot-update.js | 15 ++ .../server.6867769d16ecddeb84e2.hot-update.js | 16 ++ .../server.6a29d178dbdd776ee6c8.hot-update.js | 16 ++ .../server.7792656af2f5c6d8be15.hot-update.js | 16 ++ .../server.78f950b88a5f941b8ed2.hot-update.js | 16 ++ .../server.7cc1fc99eda6306b3fa2.hot-update.js | 16 ++ .../server.84a53b2da9b7d1266e8a.hot-update.js | 16 ++ .../server.920c891c4b34c06bc559.hot-update.js | 16 ++ .../server.98b3d40157b766fa7792.hot-update.js | 39 +++ .../server.9959e0067a62f246592c.hot-update.js | 16 ++ .../server.9d02fda0ab85da68c30f.hot-update.js | 15 -- .../server.9e5546701add6d5409fa.hot-update.js | 15 ++ .../server.a1933c29e6217461b490.hot-update.js | 16 ++ .../server.a6515f44ae654f88cf69.hot-update.js | 16 ++ .../server.a81124648213f1076765.hot-update.js | 16 ++ .../server.b021b9739e9afabc2561.hot-update.js | 16 ++ .../server.b1fdf44d5a4f144811cb.hot-update.js | 21 ++ .../server.bceaa890bff4f16bd258.hot-update.js | 16 ++ .../server.d124a565de1c2638b548.hot-update.js | 15 -- .../server.eb49b7b3424ec497ba76.hot-update.js | 16 -- .../server.edac8c81a05bbc4c08a3.hot-update.js | 16 ++ .../server.f8108cd34d400cf3513e.hot-update.js | 16 ++ .../server.f8cb34021973887f2813.hot-update.js | 16 ++ .../server.fd459c694dd1d251bc6d.hot-update.js | 16 ++ .../server.ff7e2c1c70a32f1ed9c5.hot-update.js | 16 ++ build/server/server.js | 6 +- src/shared/components/Footer/Footer.js | 2 +- src/shared/pages/Landing/Landing.js | 21 +- 150 files changed, 4291 insertions(+), 399 deletions(-) create mode 100644 build/client/static/updates/05b9729b4da0d622bcb4.hot-update.json create mode 100644 build/client/static/updates/0b6654c94f65a2bfa530.hot-update.json create mode 100644 build/client/static/updates/1c6f1fc0df78c8b16a2d.hot-update.json create mode 100644 build/client/static/updates/2337e88cf47b25ec1e5c.hot-update.json create mode 100644 build/client/static/updates/306b891647c456735194.hot-update.json create mode 100644 build/client/static/updates/3c7ef8cbba8f1dc3d0ec.hot-update.json create mode 100644 build/client/static/updates/3e4604344bb77aebb049.hot-update.json create mode 100644 build/client/static/updates/5189f06c5547af5a0ded.hot-update.json create mode 100644 build/client/static/updates/56cbb99e6ca7757be61a.hot-update.json delete mode 100644 build/client/static/updates/5824cf574b29cc287e40.hot-update.json delete mode 100644 build/client/static/updates/66124e16405da64c41cc.hot-update.json create mode 100644 build/client/static/updates/6726424c38b7c05c211b.hot-update.json create mode 100644 build/client/static/updates/6bf94db3798eaf4528db.hot-update.json create mode 100644 build/client/static/updates/70278edb4fc19a571d0c.hot-update.json create mode 100644 build/client/static/updates/73780d0c374ef4c81c6e.hot-update.json create mode 100644 build/client/static/updates/78dac4be9c5eeb8effdd.hot-update.json create mode 100644 build/client/static/updates/7b6bc80f97de635267f4.hot-update.json create mode 100644 build/client/static/updates/879fa40534e348a2882c.hot-update.json delete mode 100644 build/client/static/updates/88b1357c7468481f0dcb.hot-update.json create mode 100644 build/client/static/updates/98fc08bd0ee2a17e6b5a.hot-update.json create mode 100644 build/client/static/updates/a3c8adc66b9f3cfcadf5.hot-update.json create mode 100644 build/client/static/updates/a779eab72386cc7fa4fe.hot-update.json create mode 100644 build/client/static/updates/a97a0536125d7d3e0348.hot-update.json create mode 100644 build/client/static/updates/ae3c799b16f94ebf17d6.hot-update.json create mode 100644 build/client/static/updates/b7032dc26aaac7c21ff7.hot-update.json create mode 100644 build/client/static/updates/bc978d3d2d3350464949.hot-update.json create mode 100644 build/client/static/updates/bfc3ec303013b93297ef.hot-update.json create mode 100644 build/client/static/updates/bundle.05b9729b4da0d622bcb4.hot-update.js create mode 100644 build/client/static/updates/bundle.0b6654c94f65a2bfa530.hot-update.js create mode 100644 build/client/static/updates/bundle.1c6f1fc0df78c8b16a2d.hot-update.js create mode 100644 build/client/static/updates/bundle.2337e88cf47b25ec1e5c.hot-update.js create mode 100644 build/client/static/updates/bundle.306b891647c456735194.hot-update.js create mode 100644 build/client/static/updates/bundle.3c7ef8cbba8f1dc3d0ec.hot-update.js create mode 100644 build/client/static/updates/bundle.3e4604344bb77aebb049.hot-update.js create mode 100644 build/client/static/updates/bundle.5189f06c5547af5a0ded.hot-update.js create mode 100644 build/client/static/updates/bundle.56cbb99e6ca7757be61a.hot-update.js delete mode 100644 build/client/static/updates/bundle.66124e16405da64c41cc.hot-update.js create mode 100644 build/client/static/updates/bundle.6726424c38b7c05c211b.hot-update.js rename build/client/static/updates/{bundle.5824cf574b29cc287e40.hot-update.js => bundle.6bf94db3798eaf4528db.hot-update.js} (56%) create mode 100644 build/client/static/updates/bundle.70278edb4fc19a571d0c.hot-update.js create mode 100644 build/client/static/updates/bundle.73780d0c374ef4c81c6e.hot-update.js create mode 100644 build/client/static/updates/bundle.78dac4be9c5eeb8effdd.hot-update.js create mode 100644 build/client/static/updates/bundle.7b6bc80f97de635267f4.hot-update.js create mode 100644 build/client/static/updates/bundle.879fa40534e348a2882c.hot-update.js delete mode 100644 build/client/static/updates/bundle.88b1357c7468481f0dcb.hot-update.js create mode 100644 build/client/static/updates/bundle.98fc08bd0ee2a17e6b5a.hot-update.js create mode 100644 build/client/static/updates/bundle.a3c8adc66b9f3cfcadf5.hot-update.js create mode 100644 build/client/static/updates/bundle.a779eab72386cc7fa4fe.hot-update.js create mode 100644 build/client/static/updates/bundle.ae3c799b16f94ebf17d6.hot-update.js create mode 100644 build/client/static/updates/bundle.b7032dc26aaac7c21ff7.hot-update.js create mode 100644 build/client/static/updates/bundle.bc978d3d2d3350464949.hot-update.js create mode 100644 build/client/static/updates/bundle.bfc3ec303013b93297ef.hot-update.js create mode 100644 build/client/static/updates/bundle.c86cf49b4185dae76b18.hot-update.js create mode 100644 build/client/static/updates/bundle.cae5fffc14ee37fed640.hot-update.js create mode 100644 build/client/static/updates/bundle.db781727b7c46e9a2a7e.hot-update.js create mode 100644 build/client/static/updates/bundle.e167dffa12a04e2e430b.hot-update.js create mode 100644 build/client/static/updates/bundle.ee5e5a11b5e90b9a86b2.hot-update.js create mode 100644 build/client/static/updates/c86cf49b4185dae76b18.hot-update.json create mode 100644 build/client/static/updates/cae5fffc14ee37fed640.hot-update.json create mode 100644 build/client/static/updates/d0f4d389de2f336b525b.hot-update.json create mode 100644 build/client/static/updates/db781727b7c46e9a2a7e.hot-update.json create mode 100644 build/client/static/updates/e167dffa12a04e2e430b.hot-update.json create mode 100644 build/client/static/updates/ee5e5a11b5e90b9a86b2.hot-update.json create mode 100644 build/server/081322e4d2f61cec561a.hot-update.json create mode 100644 build/server/0948062ae1b87cbcbc27.hot-update.json create mode 100644 build/server/0a3358a4d0eac6ebc3b2.hot-update.json delete mode 100644 build/server/0acc8a9ccc555706048e.hot-update.json create mode 100644 build/server/13b3d07960cdfdccd263.hot-update.json delete mode 100644 build/server/1c33234cdeff813d8c74.hot-update.json create mode 100644 build/server/2677b2bf2f1d713ae259.hot-update.json create mode 100644 build/server/2af0e740145b282586bd.hot-update.json create mode 100644 build/server/2d1db1f0d003a7255355.hot-update.json create mode 100644 build/server/2e42172a48b3126eec13.hot-update.json create mode 100644 build/server/36e454ac82e78591c3be.hot-update.json create mode 100644 build/server/4319e60e20967ee9306e.hot-update.json create mode 100644 build/server/44ac901e193852be1a5c.hot-update.json create mode 100644 build/server/4957889460ecdee5df30.hot-update.json create mode 100644 build/server/4aa9cecc000cb9ed2dd0.hot-update.json create mode 100644 build/server/4e43c857b96efd2c10ed.hot-update.json create mode 100644 build/server/5c57b2dee6104780b906.hot-update.json create mode 100644 build/server/6867769d16ecddeb84e2.hot-update.json create mode 100644 build/server/6a29d178dbdd776ee6c8.hot-update.json create mode 100644 build/server/7792656af2f5c6d8be15.hot-update.json create mode 100644 build/server/78f950b88a5f941b8ed2.hot-update.json create mode 100644 build/server/7cc1fc99eda6306b3fa2.hot-update.json create mode 100644 build/server/84a53b2da9b7d1266e8a.hot-update.json delete mode 100644 build/server/8948ef959f485e2458f6.hot-update.json create mode 100644 build/server/920c891c4b34c06bc559.hot-update.json create mode 100644 build/server/98b3d40157b766fa7792.hot-update.json create mode 100644 build/server/9959e0067a62f246592c.hot-update.json delete mode 100644 build/server/9d02fda0ab85da68c30f.hot-update.json create mode 100644 build/server/9e5546701add6d5409fa.hot-update.json create mode 100644 build/server/a1933c29e6217461b490.hot-update.json create mode 100644 build/server/a6515f44ae654f88cf69.hot-update.json create mode 100644 build/server/a81124648213f1076765.hot-update.json create mode 100644 build/server/b021b9739e9afabc2561.hot-update.json create mode 100644 build/server/b1fdf44d5a4f144811cb.hot-update.json create mode 100644 build/server/bceaa890bff4f16bd258.hot-update.json delete mode 100644 build/server/d124a565de1c2638b548.hot-update.json delete mode 100644 build/server/eb49b7b3424ec497ba76.hot-update.json create mode 100644 build/server/edac8c81a05bbc4c08a3.hot-update.json create mode 100644 build/server/f8108cd34d400cf3513e.hot-update.json create mode 100644 build/server/f8cb34021973887f2813.hot-update.json create mode 100644 build/server/fd459c694dd1d251bc6d.hot-update.json create mode 100644 build/server/ff7e2c1c70a32f1ed9c5.hot-update.json rename build/server/{server.8948ef959f485e2458f6.hot-update.js => server.081322e4d2f61cec561a.hot-update.js} (59%) create mode 100644 build/server/server.0948062ae1b87cbcbc27.hot-update.js create mode 100644 build/server/server.0a3358a4d0eac6ebc3b2.hot-update.js delete mode 100644 build/server/server.0acc8a9ccc555706048e.hot-update.js create mode 100644 build/server/server.13b3d07960cdfdccd263.hot-update.js delete mode 100644 build/server/server.1c33234cdeff813d8c74.hot-update.js create mode 100644 build/server/server.2677b2bf2f1d713ae259.hot-update.js create mode 100644 build/server/server.2af0e740145b282586bd.hot-update.js create mode 100644 build/server/server.2d1db1f0d003a7255355.hot-update.js create mode 100644 build/server/server.2e42172a48b3126eec13.hot-update.js create mode 100644 build/server/server.36e454ac82e78591c3be.hot-update.js create mode 100644 build/server/server.4319e60e20967ee9306e.hot-update.js create mode 100644 build/server/server.44ac901e193852be1a5c.hot-update.js create mode 100644 build/server/server.4957889460ecdee5df30.hot-update.js create mode 100644 build/server/server.4aa9cecc000cb9ed2dd0.hot-update.js create mode 100644 build/server/server.4e43c857b96efd2c10ed.hot-update.js create mode 100644 build/server/server.5c57b2dee6104780b906.hot-update.js create mode 100644 build/server/server.6867769d16ecddeb84e2.hot-update.js create mode 100644 build/server/server.6a29d178dbdd776ee6c8.hot-update.js create mode 100644 build/server/server.7792656af2f5c6d8be15.hot-update.js create mode 100644 build/server/server.78f950b88a5f941b8ed2.hot-update.js create mode 100644 build/server/server.7cc1fc99eda6306b3fa2.hot-update.js create mode 100644 build/server/server.84a53b2da9b7d1266e8a.hot-update.js create mode 100644 build/server/server.920c891c4b34c06bc559.hot-update.js create mode 100644 build/server/server.98b3d40157b766fa7792.hot-update.js create mode 100644 build/server/server.9959e0067a62f246592c.hot-update.js delete mode 100644 build/server/server.9d02fda0ab85da68c30f.hot-update.js create mode 100644 build/server/server.9e5546701add6d5409fa.hot-update.js create mode 100644 build/server/server.a1933c29e6217461b490.hot-update.js create mode 100644 build/server/server.a6515f44ae654f88cf69.hot-update.js create mode 100644 build/server/server.a81124648213f1076765.hot-update.js create mode 100644 build/server/server.b021b9739e9afabc2561.hot-update.js create mode 100644 build/server/server.b1fdf44d5a4f144811cb.hot-update.js create mode 100644 build/server/server.bceaa890bff4f16bd258.hot-update.js delete mode 100644 build/server/server.d124a565de1c2638b548.hot-update.js delete mode 100644 build/server/server.eb49b7b3424ec497ba76.hot-update.js create mode 100644 build/server/server.edac8c81a05bbc4c08a3.hot-update.js create mode 100644 build/server/server.f8108cd34d400cf3513e.hot-update.js create mode 100644 build/server/server.f8cb34021973887f2813.hot-update.js create mode 100644 build/server/server.fd459c694dd1d251bc6d.hot-update.js create mode 100644 build/server/server.ff7e2c1c70a32f1ed9c5.hot-update.js diff --git a/build/client/static/bundle.js b/build/client/static/bundle.js index 8f40b040..98469594 100644 --- a/build/client/static/bundle.js +++ b/build/client/static/bundle.js @@ -112,7 +112,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "d293908d76be8194649d"; +/******/ var hotCurrentHash = "5b3329fc10532914bd64"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; @@ -1249,7 +1249,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915620030 + // 1547985745581 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -1296,7 +1296,7 @@ var Footer = function Footer() { alt: "react logo" })), _react.default.createElement("div", { className: "footer__copyright" - }, _react.default.createElement("p", null, "Copyright \xA9 2018. All Rights Reserved")))))); + }, _react.default.createElement("p", null, "Copyright \xA9 ", new Date().getFullYear(), ". All Rights Reserved")))))); }; var _default = Footer; @@ -1313,7 +1313,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618393 + // 1547985743907 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -1382,7 +1382,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618633 + // 1547985743986 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -1452,7 +1452,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618588 + // 1547985743999 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -1551,7 +1551,7 @@ exports.default = MovieCard; // extracted by mini-css-extract-plugin if(true) { - // 1547915618470 + // 1547985744240 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -2247,7 +2247,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618511 + // 1547985743913 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -2319,9 +2319,9 @@ function (_Component) { _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var setSelectedCountry = _this.props.setSelectedCountry; var selectedCountry = evt.target.value; - - _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + setSelectedCountry(selectedCountry); }); return _this; } @@ -2329,16 +2329,20 @@ function (_Component) { (0, _createClass2.default)(Landing, [{ key: "componentDidMount", value: function componentDidMount() { - if (!this.props.countries.length) { - this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + var _this$props = this.props, + countries = _this$props.countries, + getCountries = _this$props.getCountries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); } } }, { key: "render", value: function render() { - var _this$props = this.props, - selectedCountry = _this$props.selectedCountry, - countries = _this$props.countries; + var _this$props2 = this.props, + selectedCountry = _this$props2.selectedCountry, + countries = _this$props2.countries; return _react.default.createElement("div", { className: "Landing d-flex flex-column align-items-center justify-content-center" }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { @@ -2376,7 +2380,18 @@ var mapStateToProps = function mapStateToProps(state) { }; }; -var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Landing); exports.default = _default; @@ -2391,7 +2406,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618399 + // 1547985743916 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -2487,7 +2502,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618521 + // 1547985743922 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -2625,7 +2640,7 @@ exports.default = _default; // extracted by mini-css-extract-plugin if(true) { - // 1547915618479 + // 1547985743971 var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); module.hot.dispose(cssReload); module.hot.accept(undefined, cssReload);; @@ -3231,4 +3246,4 @@ module.exports = __webpack_require__(/*! /Users/jero/WebstormProjects/react-movi /***/ }) /******/ }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovLy8uL3NyYy9jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9BcHAuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9hY3Rpb25zL2dldENvdW50cmllcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2FjdGlvbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9hY3Rpb25zL21ha2VBY3Rpb25DcmVhdG9yLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvYXBpL2FwaS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2Fzc2V0cy9zY3NzL3N0eWxlcy5zY3NzPzZlMjUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXIuc2Nzcz80NzQ2Iiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9IZWFkZXIvSGVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9IZWFkZXIvSGVhZGVyLnNjc3M/NDYxZiIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvTW92aWUvTW92aWUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllL01vdmllLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllQ2FyZC9Nb3ZpZUNhcmQuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllQ2FyZC9Nb3ZpZUNhcmQuc2Nzcz9hYTQyIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9OYXYvTmF2LmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9OYXYvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL1NlYXJjaGVyL1NlYXJjaGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29uc3RhbnRzL0FjdGlvblR5cGVzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29uc3RhbnRzL1VybHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9sb2NhbFN0b3JhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9taWRkbGV3YXJlcy9hcGlNaWRkbGV3YXJlLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvbWlkZGxld2FyZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9taWRkbGV3YXJlcy9sb2dnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9BYm91dC9BYm91dC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0Fib3V0L0Fib3V0LnNjc3M/MTA1MCIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0xhbmRpbmcvTGFuZGluZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0xhbmRpbmcvTGFuZGluZy5zY3NzPzU0ZmUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9Nb3ZpZURldGFpbHMvTW92aWVEZXRhaWxzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTW92aWVEZXRhaWxzL01vdmllRGV0YWlscy5zY3NzPzE3M2YiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9Nb3ZpZXMvTW92aWVzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTW92aWVzL01vdmllcy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvUHJvZmlsZS9Qcm9maWxlLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvY291bnRyaWVzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvY3JlYXRlUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JlZHVjZXJzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvbW92aWUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9yZWR1Y2Vycy9tb3ZpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9yZWR1Y2Vycy9zZWFyY2hUZXJtLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvc2VsZWN0ZWRDb3VudHJ5LmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcm91dGluZy9Sb3V0aW5nLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcm91dGluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3N0b3JlLmpzIiwid2VicGFjazovLy91dGlsIChpZ25vcmVkKSIsIndlYnBhY2s6Ly8vYnVmZmVyIChpZ25vcmVkKSIsIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKSJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBpbnN0YWxsIGEgSlNPTlAgY2FsbGJhY2sgZm9yIGNodW5rIGxvYWRpbmdcbiBcdGZ1bmN0aW9uIHdlYnBhY2tKc29ucENhbGxiYWNrKGRhdGEpIHtcbiBcdFx0dmFyIGNodW5rSWRzID0gZGF0YVswXTtcbiBcdFx0dmFyIG1vcmVNb2R1bGVzID0gZGF0YVsxXTtcbiBcdFx0dmFyIGV4ZWN1dGVNb2R1bGVzID0gZGF0YVsyXTtcblxuIFx0XHQvLyBhZGQgXCJtb3JlTW9kdWxlc1wiIHRvIHRoZSBtb2R1bGVzIG9iamVjdCxcbiBcdFx0Ly8gdGhlbiBmbGFnIGFsbCBcImNodW5rSWRzXCIgYXMgbG9hZGVkIGFuZCBmaXJlIGNhbGxiYWNrXG4gXHRcdHZhciBtb2R1bGVJZCwgY2h1bmtJZCwgaSA9IDAsIHJlc29sdmVzID0gW107XG4gXHRcdGZvcig7aSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0Y2h1bmtJZCA9IGNodW5rSWRzW2ldO1xuIFx0XHRcdGlmKGluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuIFx0XHRcdFx0cmVzb2x2ZXMucHVzaChpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0pO1xuIFx0XHRcdH1cbiBcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuIFx0XHR9XG4gXHRcdGZvcihtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuIFx0XHRcdGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG4gXHRcdFx0XHRtb2R1bGVzW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHR9XG4gXHRcdH1cbiBcdFx0aWYocGFyZW50SnNvbnBGdW5jdGlvbikgcGFyZW50SnNvbnBGdW5jdGlvbihkYXRhKTtcblxuIFx0XHR3aGlsZShyZXNvbHZlcy5sZW5ndGgpIHtcbiBcdFx0XHRyZXNvbHZlcy5zaGlmdCgpKCk7XG4gXHRcdH1cblxuIFx0XHQvLyBhZGQgZW50cnkgbW9kdWxlcyBmcm9tIGxvYWRlZCBjaHVuayB0byBkZWZlcnJlZCBsaXN0XG4gXHRcdGRlZmVycmVkTW9kdWxlcy5wdXNoLmFwcGx5KGRlZmVycmVkTW9kdWxlcywgZXhlY3V0ZU1vZHVsZXMgfHwgW10pO1xuXG4gXHRcdC8vIHJ1biBkZWZlcnJlZCBtb2R1bGVzIHdoZW4gYWxsIGNodW5rcyByZWFkeVxuIFx0XHRyZXR1cm4gY2hlY2tEZWZlcnJlZE1vZHVsZXMoKTtcbiBcdH07XG4gXHRmdW5jdGlvbiBjaGVja0RlZmVycmVkTW9kdWxlcygpIHtcbiBcdFx0dmFyIHJlc3VsdDtcbiBcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGRlZmVycmVkTW9kdWxlcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdHZhciBkZWZlcnJlZE1vZHVsZSA9IGRlZmVycmVkTW9kdWxlc1tpXTtcbiBcdFx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcbiBcdFx0XHRmb3IodmFyIGogPSAxOyBqIDwgZGVmZXJyZWRNb2R1bGUubGVuZ3RoOyBqKyspIHtcbiBcdFx0XHRcdHZhciBkZXBJZCA9IGRlZmVycmVkTW9kdWxlW2pdO1xuIFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtzW2RlcElkXSAhPT0gMCkgZnVsZmlsbGVkID0gZmFsc2U7XG4gXHRcdFx0fVxuIFx0XHRcdGlmKGZ1bGZpbGxlZCkge1xuIFx0XHRcdFx0ZGVmZXJyZWRNb2R1bGVzLnNwbGljZShpLS0sIDEpO1xuIFx0XHRcdFx0cmVzdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBkZWZlcnJlZE1vZHVsZVswXSk7XG4gXHRcdFx0fVxuIFx0XHR9XG4gXHRcdHJldHVybiByZXN1bHQ7XG4gXHR9XG4gXHRmdW5jdGlvbiBob3REaXNwb3NlQ2h1bmsoY2h1bmtJZCkge1xuIFx0XHRkZWxldGUgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdO1xuIFx0fVxuIFx0dmFyIHBhcmVudEhvdFVwZGF0ZUNhbGxiYWNrID0gd2luZG93W1wid2VicGFja0hvdFVwZGF0ZVwiXTtcbiBcdHdpbmRvd1tcIndlYnBhY2tIb3RVcGRhdGVcIl0gPSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIHdlYnBhY2tIb3RVcGRhdGVDYWxsYmFjayhjaHVua0lkLCBtb3JlTW9kdWxlcykge1xuIFx0XHRob3RBZGRVcGRhdGVDaHVuayhjaHVua0lkLCBtb3JlTW9kdWxlcyk7XG4gXHRcdGlmIChwYXJlbnRIb3RVcGRhdGVDYWxsYmFjaykgcGFyZW50SG90VXBkYXRlQ2FsbGJhY2soY2h1bmtJZCwgbW9yZU1vZHVsZXMpO1xuIFx0fSA7XG5cbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90RG93bmxvYWRVcGRhdGVDaHVuayhjaHVua0lkKSB7XG4gXHRcdHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuIFx0XHRzY3JpcHQuY2hhcnNldCA9IFwidXRmLThcIjtcbiBcdFx0c2NyaXB0LnNyYyA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIFwidXBkYXRlcy9cIiArIGNodW5rSWQgKyBcIi5cIiArIGhvdEN1cnJlbnRIYXNoICsgXCIuaG90LXVwZGF0ZS5qc1wiO1xuIFx0XHRpZiAobnVsbCkgc2NyaXB0LmNyb3NzT3JpZ2luID0gbnVsbDtcbiBcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuIFx0fVxuXG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdERvd25sb2FkTWFuaWZlc3QocmVxdWVzdFRpbWVvdXQpIHtcbiBcdFx0cmVxdWVzdFRpbWVvdXQgPSByZXF1ZXN0VGltZW91dCB8fCAxMDAwMDtcbiBcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuIFx0XHRcdGlmICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgPT09IFwidW5kZWZpbmVkXCIpIHtcbiBcdFx0XHRcdHJldHVybiByZWplY3QobmV3IEVycm9yKFwiTm8gYnJvd3NlciBzdXBwb3J0XCIpKTtcbiBcdFx0XHR9XG4gXHRcdFx0dHJ5IHtcbiBcdFx0XHRcdHZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gXHRcdFx0XHR2YXIgcmVxdWVzdFBhdGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBcInVwZGF0ZXMvXCIgKyBob3RDdXJyZW50SGFzaCArIFwiLmhvdC11cGRhdGUuanNvblwiO1xuIFx0XHRcdFx0cmVxdWVzdC5vcGVuKFwiR0VUXCIsIHJlcXVlc3RQYXRoLCB0cnVlKTtcbiBcdFx0XHRcdHJlcXVlc3QudGltZW91dCA9IHJlcXVlc3RUaW1lb3V0O1xuIFx0XHRcdFx0cmVxdWVzdC5zZW5kKG51bGwpO1xuIFx0XHRcdH0gY2F0Y2ggKGVycikge1xuIFx0XHRcdFx0cmV0dXJuIHJlamVjdChlcnIpO1xuIFx0XHRcdH1cbiBcdFx0XHRyZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuIFx0XHRcdFx0aWYgKHJlcXVlc3QucmVhZHlTdGF0ZSAhPT0gNCkgcmV0dXJuO1xuIFx0XHRcdFx0aWYgKHJlcXVlc3Quc3RhdHVzID09PSAwKSB7XG4gXHRcdFx0XHRcdC8vIHRpbWVvdXRcbiBcdFx0XHRcdFx0cmVqZWN0KFxuIFx0XHRcdFx0XHRcdG5ldyBFcnJvcihcIk1hbmlmZXN0IHJlcXVlc3QgdG8gXCIgKyByZXF1ZXN0UGF0aCArIFwiIHRpbWVkIG91dC5cIilcbiBcdFx0XHRcdFx0KTtcbiBcdFx0XHRcdH0gZWxzZSBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDQwNCkge1xuIFx0XHRcdFx0XHQvLyBubyB1cGRhdGUgYXZhaWxhYmxlXG4gXHRcdFx0XHRcdHJlc29sdmUoKTtcbiBcdFx0XHRcdH0gZWxzZSBpZiAocmVxdWVzdC5zdGF0dXMgIT09IDIwMCAmJiByZXF1ZXN0LnN0YXR1cyAhPT0gMzA0KSB7XG4gXHRcdFx0XHRcdC8vIG90aGVyIGZhaWx1cmVcbiBcdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihcIk1hbmlmZXN0IHJlcXVlc3QgdG8gXCIgKyByZXF1ZXN0UGF0aCArIFwiIGZhaWxlZC5cIikpO1xuIFx0XHRcdFx0fSBlbHNlIHtcbiBcdFx0XHRcdFx0Ly8gc3VjY2Vzc1xuIFx0XHRcdFx0XHR0cnkge1xuIFx0XHRcdFx0XHRcdHZhciB1cGRhdGUgPSBKU09OLnBhcnNlKHJlcXVlc3QucmVzcG9uc2VUZXh0KTtcbiBcdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuIFx0XHRcdFx0XHRcdHJlamVjdChlKTtcbiBcdFx0XHRcdFx0XHRyZXR1cm47XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0cmVzb2x2ZSh1cGRhdGUpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH07XG4gXHRcdH0pO1xuIFx0fVxuXG4gXHR2YXIgaG90QXBwbHlPblVwZGF0ZSA9IHRydWU7XG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdHZhciBob3RDdXJyZW50SGFzaCA9IFwiZDI5MzkwOGQ3NmJlODE5NDY0OWRcIjtcbiBcdHZhciBob3RSZXF1ZXN0VGltZW91dCA9IDEwMDAwO1xuIFx0dmFyIGhvdEN1cnJlbnRNb2R1bGVEYXRhID0ge307XG4gXHR2YXIgaG90Q3VycmVudENoaWxkTW9kdWxlO1xuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHR2YXIgaG90Q3VycmVudFBhcmVudHMgPSBbXTtcbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0dmFyIGhvdEN1cnJlbnRQYXJlbnRzVGVtcCA9IFtdO1xuXG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdENyZWF0ZVJlcXVpcmUobW9kdWxlSWQpIHtcbiBcdFx0dmFyIG1lID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdGlmICghbWUpIHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fO1xuIFx0XHR2YXIgZm4gPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gXHRcdFx0aWYgKG1lLmhvdC5hY3RpdmUpIHtcbiBcdFx0XHRcdGlmIChpbnN0YWxsZWRNb2R1bGVzW3JlcXVlc3RdKSB7XG4gXHRcdFx0XHRcdGlmIChpbnN0YWxsZWRNb2R1bGVzW3JlcXVlc3RdLnBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCkgPT09IC0xKSB7XG4gXHRcdFx0XHRcdFx0aW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzLnB1c2gobW9kdWxlSWQpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHR9IGVsc2Uge1xuIFx0XHRcdFx0XHRob3RDdXJyZW50UGFyZW50cyA9IFttb2R1bGVJZF07XG4gXHRcdFx0XHRcdGhvdEN1cnJlbnRDaGlsZE1vZHVsZSA9IHJlcXVlc3Q7XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRpZiAobWUuY2hpbGRyZW4uaW5kZXhPZihyZXF1ZXN0KSA9PT0gLTEpIHtcbiBcdFx0XHRcdFx0bWUuY2hpbGRyZW4ucHVzaChyZXF1ZXN0KTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9IGVsc2Uge1xuIFx0XHRcdFx0Y29uc29sZS53YXJuKFxuIFx0XHRcdFx0XHRcIltITVJdIHVuZXhwZWN0ZWQgcmVxdWlyZShcIiArXG4gXHRcdFx0XHRcdFx0cmVxdWVzdCArXG4gXHRcdFx0XHRcdFx0XCIpIGZyb20gZGlzcG9zZWQgbW9kdWxlIFwiICtcbiBcdFx0XHRcdFx0XHRtb2R1bGVJZFxuIFx0XHRcdFx0KTtcbiBcdFx0XHRcdGhvdEN1cnJlbnRQYXJlbnRzID0gW107XG4gXHRcdFx0fVxuIFx0XHRcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKHJlcXVlc3QpO1xuIFx0XHR9O1xuIFx0XHR2YXIgT2JqZWN0RmFjdG9yeSA9IGZ1bmN0aW9uIE9iamVjdEZhY3RvcnkobmFtZSkge1xuIFx0XHRcdHJldHVybiB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcbiBcdFx0XHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX19bbmFtZV07XG4gXHRcdFx0XHR9LFxuIFx0XHRcdFx0c2V0OiBmdW5jdGlvbih2YWx1ZSkge1xuIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fW25hbWVdID0gdmFsdWU7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fTtcbiBcdFx0fTtcbiBcdFx0Zm9yICh2YXIgbmFtZSBpbiBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG4gXHRcdFx0aWYgKFxuIFx0XHRcdFx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9fd2VicGFja19yZXF1aXJlX18sIG5hbWUpICYmXG4gXHRcdFx0XHRuYW1lICE9PSBcImVcIiAmJlxuIFx0XHRcdFx0bmFtZSAhPT0gXCJ0XCJcbiBcdFx0XHQpIHtcbiBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmbiwgbmFtZSwgT2JqZWN0RmFjdG9yeShuYW1lKSk7XG4gXHRcdFx0fVxuIFx0XHR9XG4gXHRcdGZuLmUgPSBmdW5jdGlvbihjaHVua0lkKSB7XG4gXHRcdFx0aWYgKGhvdFN0YXR1cyA9PT0gXCJyZWFkeVwiKSBob3RTZXRTdGF0dXMoXCJwcmVwYXJlXCIpO1xuIFx0XHRcdGhvdENodW5rc0xvYWRpbmcrKztcbiBcdFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5lKGNodW5rSWQpLnRoZW4oZmluaXNoQ2h1bmtMb2FkaW5nLCBmdW5jdGlvbihlcnIpIHtcbiBcdFx0XHRcdGZpbmlzaENodW5rTG9hZGluZygpO1xuIFx0XHRcdFx0dGhyb3cgZXJyO1xuIFx0XHRcdH0pO1xuXG4gXHRcdFx0ZnVuY3Rpb24gZmluaXNoQ2h1bmtMb2FkaW5nKCkge1xuIFx0XHRcdFx0aG90Q2h1bmtzTG9hZGluZy0tO1xuIFx0XHRcdFx0aWYgKGhvdFN0YXR1cyA9PT0gXCJwcmVwYXJlXCIpIHtcbiBcdFx0XHRcdFx0aWYgKCFob3RXYWl0aW5nRmlsZXNNYXBbY2h1bmtJZF0pIHtcbiBcdFx0XHRcdFx0XHRob3RFbnN1cmVVcGRhdGVDaHVuayhjaHVua0lkKTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRpZiAoaG90Q2h1bmtzTG9hZGluZyA9PT0gMCAmJiBob3RXYWl0aW5nRmlsZXMgPT09IDApIHtcbiBcdFx0XHRcdFx0XHRob3RVcGRhdGVEb3dubG9hZGVkKCk7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH07XG4gXHRcdGZuLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRcdGlmIChtb2RlICYgMSkgdmFsdWUgPSBmbih2YWx1ZSk7XG4gXHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18udCh2YWx1ZSwgbW9kZSAmIH4xKTtcbiBcdFx0fTtcbiBcdFx0cmV0dXJuIGZuO1xuIFx0fVxuXG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdENyZWF0ZU1vZHVsZShtb2R1bGVJZCkge1xuIFx0XHR2YXIgaG90ID0ge1xuIFx0XHRcdC8vIHByaXZhdGUgc3R1ZmZcbiBcdFx0XHRfYWNjZXB0ZWREZXBlbmRlbmNpZXM6IHt9LFxuIFx0XHRcdF9kZWNsaW5lZERlcGVuZGVuY2llczoge30sXG4gXHRcdFx0X3NlbGZBY2NlcHRlZDogZmFsc2UsXG4gXHRcdFx0X3NlbGZEZWNsaW5lZDogZmFsc2UsXG4gXHRcdFx0X2Rpc3Bvc2VIYW5kbGVyczogW10sXG4gXHRcdFx0X21haW46IGhvdEN1cnJlbnRDaGlsZE1vZHVsZSAhPT0gbW9kdWxlSWQsXG5cbiBcdFx0XHQvLyBNb2R1bGUgQVBJXG4gXHRcdFx0YWN0aXZlOiB0cnVlLFxuIFx0XHRcdGFjY2VwdDogZnVuY3Rpb24oZGVwLCBjYWxsYmFjaykge1xuIFx0XHRcdFx0aWYgKGRlcCA9PT0gdW5kZWZpbmVkKSBob3QuX3NlbGZBY2NlcHRlZCA9IHRydWU7XG4gXHRcdFx0XHRlbHNlIGlmICh0eXBlb2YgZGVwID09PSBcImZ1bmN0aW9uXCIpIGhvdC5fc2VsZkFjY2VwdGVkID0gZGVwO1xuIFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIilcbiBcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZXAubGVuZ3RoOyBpKyspXG4gXHRcdFx0XHRcdFx0aG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBbaV1dID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24oKSB7fTtcbiBcdFx0XHRcdGVsc2UgaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBdID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24oKSB7fTtcbiBcdFx0XHR9LFxuIFx0XHRcdGRlY2xpbmU6IGZ1bmN0aW9uKGRlcCkge1xuIFx0XHRcdFx0aWYgKGRlcCA9PT0gdW5kZWZpbmVkKSBob3QuX3NlbGZEZWNsaW5lZCA9IHRydWU7XG4gXHRcdFx0XHRlbHNlIGlmICh0eXBlb2YgZGVwID09PSBcIm9iamVjdFwiKVxuIFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcbiBcdFx0XHRcdFx0XHRob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW2RlcFtpXV0gPSB0cnVlO1xuIFx0XHRcdFx0ZWxzZSBob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW2RlcF0gPSB0cnVlO1xuIFx0XHRcdH0sXG4gXHRcdFx0ZGlzcG9zZTogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiBcdFx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuIFx0XHRcdH0sXG4gXHRcdFx0YWRkRGlzcG9zZUhhbmRsZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gXHRcdFx0XHRob3QuX2Rpc3Bvc2VIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTtcbiBcdFx0XHR9LFxuIFx0XHRcdHJlbW92ZURpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuIFx0XHRcdFx0dmFyIGlkeCA9IGhvdC5fZGlzcG9zZUhhbmRsZXJzLmluZGV4T2YoY2FsbGJhY2spO1xuIFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbiBcdFx0XHR9LFxuXG4gXHRcdFx0Ly8gTWFuYWdlbWVudCBBUElcbiBcdFx0XHRjaGVjazogaG90Q2hlY2ssXG4gXHRcdFx0YXBwbHk6IGhvdEFwcGx5LFxuIFx0XHRcdHN0YXR1czogZnVuY3Rpb24obCkge1xuIFx0XHRcdFx0aWYgKCFsKSByZXR1cm4gaG90U3RhdHVzO1xuIFx0XHRcdFx0aG90U3RhdHVzSGFuZGxlcnMucHVzaChsKTtcbiBcdFx0XHR9LFxuIFx0XHRcdGFkZFN0YXR1c0hhbmRsZXI6IGZ1bmN0aW9uKGwpIHtcbiBcdFx0XHRcdGhvdFN0YXR1c0hhbmRsZXJzLnB1c2gobCk7XG4gXHRcdFx0fSxcbiBcdFx0XHRyZW1vdmVTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbihsKSB7XG4gXHRcdFx0XHR2YXIgaWR4ID0gaG90U3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcbiBcdFx0XHRcdGlmIChpZHggPj0gMCkgaG90U3RhdHVzSGFuZGxlcnMuc3BsaWNlKGlkeCwgMSk7XG4gXHRcdFx0fSxcblxuIFx0XHRcdC8vaW5oZXJpdCBmcm9tIHByZXZpb3VzIGRpc3Bvc2UgY2FsbFxuIFx0XHRcdGRhdGE6IGhvdEN1cnJlbnRNb2R1bGVEYXRhW21vZHVsZUlkXVxuIFx0XHR9O1xuIFx0XHRob3RDdXJyZW50Q2hpbGRNb2R1bGUgPSB1bmRlZmluZWQ7XG4gXHRcdHJldHVybiBob3Q7XG4gXHR9XG5cbiBcdHZhciBob3RTdGF0dXNIYW5kbGVycyA9IFtdO1xuIFx0dmFyIGhvdFN0YXR1cyA9IFwiaWRsZVwiO1xuXG4gXHRmdW5jdGlvbiBob3RTZXRTdGF0dXMobmV3U3RhdHVzKSB7XG4gXHRcdGhvdFN0YXR1cyA9IG5ld1N0YXR1cztcbiBcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBob3RTdGF0dXNIYW5kbGVycy5sZW5ndGg7IGkrKylcbiBcdFx0XHRob3RTdGF0dXNIYW5kbGVyc1tpXS5jYWxsKG51bGwsIG5ld1N0YXR1cyk7XG4gXHR9XG5cbiBcdC8vIHdoaWxlIGRvd25sb2FkaW5nXG4gXHR2YXIgaG90V2FpdGluZ0ZpbGVzID0gMDtcbiBcdHZhciBob3RDaHVua3NMb2FkaW5nID0gMDtcbiBcdHZhciBob3RXYWl0aW5nRmlsZXNNYXAgPSB7fTtcbiBcdHZhciBob3RSZXF1ZXN0ZWRGaWxlc01hcCA9IHt9O1xuIFx0dmFyIGhvdEF2YWlsYWJsZUZpbGVzTWFwID0ge307XG4gXHR2YXIgaG90RGVmZXJyZWQ7XG5cbiBcdC8vIFRoZSB1cGRhdGUgaW5mb1xuIFx0dmFyIGhvdFVwZGF0ZSwgaG90VXBkYXRlTmV3SGFzaDtcblxuIFx0ZnVuY3Rpb24gdG9Nb2R1bGVJZChpZCkge1xuIFx0XHR2YXIgaXNOdW1iZXIgPSAraWQgKyBcIlwiID09PSBpZDtcbiBcdFx0cmV0dXJuIGlzTnVtYmVyID8gK2lkIDogaWQ7XG4gXHR9XG5cbiBcdGZ1bmN0aW9uIGhvdENoZWNrKGFwcGx5KSB7XG4gXHRcdGlmIChob3RTdGF0dXMgIT09IFwiaWRsZVwiKSB7XG4gXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiY2hlY2soKSBpcyBvbmx5IGFsbG93ZWQgaW4gaWRsZSBzdGF0dXNcIik7XG4gXHRcdH1cbiBcdFx0aG90QXBwbHlPblVwZGF0ZSA9IGFwcGx5O1xuIFx0XHRob3RTZXRTdGF0dXMoXCJjaGVja1wiKTtcbiBcdFx0cmV0dXJuIGhvdERvd25sb2FkTWFuaWZlc3QoaG90UmVxdWVzdFRpbWVvdXQpLnRoZW4oZnVuY3Rpb24odXBkYXRlKSB7XG4gXHRcdFx0aWYgKCF1cGRhdGUpIHtcbiBcdFx0XHRcdGhvdFNldFN0YXR1cyhcImlkbGVcIik7XG4gXHRcdFx0XHRyZXR1cm4gbnVsbDtcbiBcdFx0XHR9XG4gXHRcdFx0aG90UmVxdWVzdGVkRmlsZXNNYXAgPSB7fTtcbiBcdFx0XHRob3RXYWl0aW5nRmlsZXNNYXAgPSB7fTtcbiBcdFx0XHRob3RBdmFpbGFibGVGaWxlc01hcCA9IHVwZGF0ZS5jO1xuIFx0XHRcdGhvdFVwZGF0ZU5ld0hhc2ggPSB1cGRhdGUuaDtcblxuIFx0XHRcdGhvdFNldFN0YXR1cyhcInByZXBhcmVcIik7XG4gXHRcdFx0dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiBcdFx0XHRcdGhvdERlZmVycmVkID0ge1xuIFx0XHRcdFx0XHRyZXNvbHZlOiByZXNvbHZlLFxuIFx0XHRcdFx0XHRyZWplY3Q6IHJlamVjdFxuIFx0XHRcdFx0fTtcbiBcdFx0XHR9KTtcbiBcdFx0XHRob3RVcGRhdGUgPSB7fTtcbiBcdFx0XHRmb3IodmFyIGNodW5rSWQgaW4gaW5zdGFsbGVkQ2h1bmtzKVxuIFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1sb25lLWJsb2Nrc1xuIFx0XHRcdHtcbiBcdFx0XHRcdC8qZ2xvYmFscyBjaHVua0lkICovXG4gXHRcdFx0XHRob3RFbnN1cmVVcGRhdGVDaHVuayhjaHVua0lkKTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKFxuIFx0XHRcdFx0aG90U3RhdHVzID09PSBcInByZXBhcmVcIiAmJlxuIFx0XHRcdFx0aG90Q2h1bmtzTG9hZGluZyA9PT0gMCAmJlxuIFx0XHRcdFx0aG90V2FpdGluZ0ZpbGVzID09PSAwXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRob3RVcGRhdGVEb3dubG9hZGVkKCk7XG4gXHRcdFx0fVxuIFx0XHRcdHJldHVybiBwcm9taXNlO1xuIFx0XHR9KTtcbiBcdH1cblxuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHRmdW5jdGlvbiBob3RBZGRVcGRhdGVDaHVuayhjaHVua0lkLCBtb3JlTW9kdWxlcykge1xuIFx0XHRpZiAoIWhvdEF2YWlsYWJsZUZpbGVzTWFwW2NodW5rSWRdIHx8ICFob3RSZXF1ZXN0ZWRGaWxlc01hcFtjaHVua0lkXSlcbiBcdFx0XHRyZXR1cm47XG4gXHRcdGhvdFJlcXVlc3RlZEZpbGVzTWFwW2NodW5rSWRdID0gZmFsc2U7XG4gXHRcdGZvciAodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4gXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG4gXHRcdFx0XHRob3RVcGRhdGVbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRpZiAoLS1ob3RXYWl0aW5nRmlsZXMgPT09IDAgJiYgaG90Q2h1bmtzTG9hZGluZyA9PT0gMCkge1xuIFx0XHRcdGhvdFVwZGF0ZURvd25sb2FkZWQoKTtcbiBcdFx0fVxuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RFbnN1cmVVcGRhdGVDaHVuayhjaHVua0lkKSB7XG4gXHRcdGlmICghaG90QXZhaWxhYmxlRmlsZXNNYXBbY2h1bmtJZF0pIHtcbiBcdFx0XHRob3RXYWl0aW5nRmlsZXNNYXBbY2h1bmtJZF0gPSB0cnVlO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGhvdFJlcXVlc3RlZEZpbGVzTWFwW2NodW5rSWRdID0gdHJ1ZTtcbiBcdFx0XHRob3RXYWl0aW5nRmlsZXMrKztcbiBcdFx0XHRob3REb3dubG9hZFVwZGF0ZUNodW5rKGNodW5rSWQpO1xuIFx0XHR9XG4gXHR9XG5cbiBcdGZ1bmN0aW9uIGhvdFVwZGF0ZURvd25sb2FkZWQoKSB7XG4gXHRcdGhvdFNldFN0YXR1cyhcInJlYWR5XCIpO1xuIFx0XHR2YXIgZGVmZXJyZWQgPSBob3REZWZlcnJlZDtcbiBcdFx0aG90RGVmZXJyZWQgPSBudWxsO1xuIFx0XHRpZiAoIWRlZmVycmVkKSByZXR1cm47XG4gXHRcdGlmIChob3RBcHBseU9uVXBkYXRlKSB7XG4gXHRcdFx0Ly8gV3JhcCBkZWZlcnJlZCBvYmplY3QgaW4gUHJvbWlzZSB0byBtYXJrIGl0IGFzIGEgd2VsbC1oYW5kbGVkIFByb21pc2UgdG9cbiBcdFx0XHQvLyBhdm9pZCB0cmlnZ2VyaW5nIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3YXJuaW5nIGluIENocm9tZS5cbiBcdFx0XHQvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDY1NjY2XG4gXHRcdFx0UHJvbWlzZS5yZXNvbHZlKClcbiBcdFx0XHRcdC50aGVuKGZ1bmN0aW9uKCkge1xuIFx0XHRcdFx0XHRyZXR1cm4gaG90QXBwbHkoaG90QXBwbHlPblVwZGF0ZSk7XG4gXHRcdFx0XHR9KVxuIFx0XHRcdFx0LnRoZW4oXG4gXHRcdFx0XHRcdGZ1bmN0aW9uKHJlc3VsdCkge1xuIFx0XHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcbiBcdFx0XHRcdFx0fSxcbiBcdFx0XHRcdFx0ZnVuY3Rpb24oZXJyKSB7XG4gXHRcdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0KGVycik7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdCk7XG4gXHRcdH0gZWxzZSB7XG4gXHRcdFx0dmFyIG91dGRhdGVkTW9kdWxlcyA9IFtdO1xuIFx0XHRcdGZvciAodmFyIGlkIGluIGhvdFVwZGF0ZSkge1xuIFx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChob3RVcGRhdGUsIGlkKSkge1xuIFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMucHVzaCh0b01vZHVsZUlkKGlkKSk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHRcdGRlZmVycmVkLnJlc29sdmUob3V0ZGF0ZWRNb2R1bGVzKTtcbiBcdFx0fVxuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RBcHBseShvcHRpb25zKSB7XG4gXHRcdGlmIChob3RTdGF0dXMgIT09IFwicmVhZHlcIilcbiBcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJhcHBseSgpIGlzIG9ubHkgYWxsb3dlZCBpbiByZWFkeSBzdGF0dXNcIik7XG4gXHRcdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gXHRcdHZhciBjYjtcbiBcdFx0dmFyIGk7XG4gXHRcdHZhciBqO1xuIFx0XHR2YXIgbW9kdWxlO1xuIFx0XHR2YXIgbW9kdWxlSWQ7XG5cbiBcdFx0ZnVuY3Rpb24gZ2V0QWZmZWN0ZWRTdHVmZih1cGRhdGVNb2R1bGVJZCkge1xuIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbdXBkYXRlTW9kdWxlSWRdO1xuIFx0XHRcdHZhciBvdXRkYXRlZERlcGVuZGVuY2llcyA9IHt9O1xuXG4gXHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLnNsaWNlKCkubWFwKGZ1bmN0aW9uKGlkKSB7XG4gXHRcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0XHRjaGFpbjogW2lkXSxcbiBcdFx0XHRcdFx0aWQ6IGlkXG4gXHRcdFx0XHR9O1xuIFx0XHRcdH0pO1xuIFx0XHRcdHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gXHRcdFx0XHR2YXIgcXVldWVJdGVtID0gcXVldWUucG9wKCk7XG4gXHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZUl0ZW0uaWQ7XG4gXHRcdFx0XHR2YXIgY2hhaW4gPSBxdWV1ZUl0ZW0uY2hhaW47XG4gXHRcdFx0XHRtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdGlmICghbW9kdWxlIHx8IG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZCkgY29udGludWU7XG4gXHRcdFx0XHRpZiAobW9kdWxlLmhvdC5fc2VsZkRlY2xpbmVkKSB7XG4gXHRcdFx0XHRcdHJldHVybiB7XG4gXHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWRlY2xpbmVkXCIsXG4gXHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLFxuIFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZFxuIFx0XHRcdFx0XHR9O1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0aWYgKG1vZHVsZS5ob3QuX21haW4pIHtcbiBcdFx0XHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdFx0XHR0eXBlOiBcInVuYWNjZXB0ZWRcIixcbiBcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4sXG4gXHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4gXHRcdFx0XHRcdH07XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG1vZHVsZS5wYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0XHRcdHZhciBwYXJlbnRJZCA9IG1vZHVsZS5wYXJlbnRzW2ldO1xuIFx0XHRcdFx0XHR2YXIgcGFyZW50ID0gaW5zdGFsbGVkTW9kdWxlc1twYXJlbnRJZF07XG4gXHRcdFx0XHRcdGlmICghcGFyZW50KSBjb250aW51ZTtcbiBcdFx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuIFx0XHRcdFx0XHRcdHJldHVybiB7XG4gXHRcdFx0XHRcdFx0XHR0eXBlOiBcImRlY2xpbmVkXCIsXG4gXHRcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0cGFyZW50SWQ6IHBhcmVudElkXG4gXHRcdFx0XHRcdFx0fTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRpZiAob3V0ZGF0ZWRNb2R1bGVzLmluZGV4T2YocGFyZW50SWQpICE9PSAtMSkgY29udGludWU7XG4gXHRcdFx0XHRcdGlmIChwYXJlbnQuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRcdFx0XHRpZiAoIW91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSlcbiBcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSA9IFtdO1xuIFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSwgW21vZHVsZUlkXSk7XG4gXHRcdFx0XHRcdFx0Y29udGludWU7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXTtcbiBcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2gocGFyZW50SWQpO1xuIFx0XHRcdFx0XHRxdWV1ZS5wdXNoKHtcbiBcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuIFx0XHRcdFx0XHRcdGlkOiBwYXJlbnRJZFxuIFx0XHRcdFx0XHR9KTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG5cbiBcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0dHlwZTogXCJhY2NlcHRlZFwiLFxuIFx0XHRcdFx0bW9kdWxlSWQ6IHVwZGF0ZU1vZHVsZUlkLFxuIFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzOiBvdXRkYXRlZE1vZHVsZXMsXG4gXHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llczogb3V0ZGF0ZWREZXBlbmRlbmNpZXNcbiBcdFx0XHR9O1xuIFx0XHR9XG5cbiBcdFx0ZnVuY3Rpb24gYWRkQWxsVG9TZXQoYSwgYikge1xuIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuIFx0XHRcdFx0dmFyIGl0ZW0gPSBiW2ldO1xuIFx0XHRcdFx0aWYgKGEuaW5kZXhPZihpdGVtKSA9PT0gLTEpIGEucHVzaChpdGVtKTtcbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBhdCBiZWdpbiBhbGwgdXBkYXRlcyBtb2R1bGVzIGFyZSBvdXRkYXRlZFxuIFx0XHQvLyB0aGUgXCJvdXRkYXRlZFwiIHN0YXR1cyBjYW4gcHJvcGFnYXRlIHRvIHBhcmVudHMgaWYgdGhleSBkb24ndCBhY2NlcHQgdGhlIGNoaWxkcmVuXG4gXHRcdHZhciBvdXRkYXRlZERlcGVuZGVuY2llcyA9IHt9O1xuIFx0XHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW107XG4gXHRcdHZhciBhcHBsaWVkVXBkYXRlID0ge307XG5cbiBcdFx0dmFyIHdhcm5VbmV4cGVjdGVkUmVxdWlyZSA9IGZ1bmN0aW9uIHdhcm5VbmV4cGVjdGVkUmVxdWlyZSgpIHtcbiBcdFx0XHRjb25zb2xlLndhcm4oXG4gXHRcdFx0XHRcIltITVJdIHVuZXhwZWN0ZWQgcmVxdWlyZShcIiArIHJlc3VsdC5tb2R1bGVJZCArIFwiKSB0byBkaXNwb3NlZCBtb2R1bGVcIlxuIFx0XHRcdCk7XG4gXHRcdH07XG5cbiBcdFx0Zm9yICh2YXIgaWQgaW4gaG90VXBkYXRlKSB7XG4gXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChob3RVcGRhdGUsIGlkKSkge1xuIFx0XHRcdFx0bW9kdWxlSWQgPSB0b01vZHVsZUlkKGlkKTtcbiBcdFx0XHRcdC8qKiBAdHlwZSB7VE9ET30gKi9cbiBcdFx0XHRcdHZhciByZXN1bHQ7XG4gXHRcdFx0XHRpZiAoaG90VXBkYXRlW2lkXSkge1xuIFx0XHRcdFx0XHRyZXN1bHQgPSBnZXRBZmZlY3RlZFN0dWZmKG1vZHVsZUlkKTtcbiBcdFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRcdHJlc3VsdCA9IHtcbiBcdFx0XHRcdFx0XHR0eXBlOiBcImRpc3Bvc2VkXCIsXG4gXHRcdFx0XHRcdFx0bW9kdWxlSWQ6IGlkXG4gXHRcdFx0XHRcdH07XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHQvKiogQHR5cGUge0Vycm9yfGZhbHNlfSAqL1xuIFx0XHRcdFx0dmFyIGFib3J0RXJyb3IgPSBmYWxzZTtcbiBcdFx0XHRcdHZhciBkb0FwcGx5ID0gZmFsc2U7XG4gXHRcdFx0XHR2YXIgZG9EaXNwb3NlID0gZmFsc2U7XG4gXHRcdFx0XHR2YXIgY2hhaW5JbmZvID0gXCJcIjtcbiBcdFx0XHRcdGlmIChyZXN1bHQuY2hhaW4pIHtcbiBcdFx0XHRcdFx0Y2hhaW5JbmZvID0gXCJcXG5VcGRhdGUgcHJvcGFnYXRpb246IFwiICsgcmVzdWx0LmNoYWluLmpvaW4oXCIgLT4gXCIpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0c3dpdGNoIChyZXN1bHQudHlwZSkge1xuIFx0XHRcdFx0XHRjYXNlIFwic2VsZi1kZWNsaW5lZFwiOlxuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGVjbGluZWQpIG9wdGlvbnMub25EZWNsaW5lZChyZXN1bHQpO1xuIFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVEZWNsaW5lZClcbiBcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4gXHRcdFx0XHRcdFx0XHRcdFwiQWJvcnRlZCBiZWNhdXNlIG9mIHNlbGYgZGVjbGluZTogXCIgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5tb2R1bGVJZCArXG4gXHRcdFx0XHRcdFx0XHRcdFx0Y2hhaW5JbmZvXG4gXHRcdFx0XHRcdFx0XHQpO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRjYXNlIFwiZGVjbGluZWRcIjpcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRlY2xpbmVkKSBvcHRpb25zLm9uRGVjbGluZWQocmVzdWx0KTtcbiBcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRGVjbGluZWQpXG4gXHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuIFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBvZiBkZWNsaW5lZCBkZXBlbmRlbmN5OiBcIiArXG4gXHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm1vZHVsZUlkICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRcIiBpbiBcIiArXG4gXHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0LnBhcmVudElkICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRjaGFpbkluZm9cbiBcdFx0XHRcdFx0XHRcdCk7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGNhc2UgXCJ1bmFjY2VwdGVkXCI6XG4gXHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25VbmFjY2VwdGVkKSBvcHRpb25zLm9uVW5hY2NlcHRlZChyZXN1bHQpO1xuIFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVVbmFjY2VwdGVkKVxuIFx0XHRcdFx0XHRcdFx0YWJvcnRFcnJvciA9IG5ldyBFcnJvcihcbiBcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2UgXCIgKyBtb2R1bGVJZCArIFwiIGlzIG5vdCBhY2NlcHRlZFwiICsgY2hhaW5JbmZvXG4gXHRcdFx0XHRcdFx0XHQpO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRjYXNlIFwiYWNjZXB0ZWRcIjpcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkFjY2VwdGVkKSBvcHRpb25zLm9uQWNjZXB0ZWQocmVzdWx0KTtcbiBcdFx0XHRcdFx0XHRkb0FwcGx5ID0gdHJ1ZTtcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdFx0Y2FzZSBcImRpc3Bvc2VkXCI6XG4gXHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EaXNwb3NlZCkgb3B0aW9ucy5vbkRpc3Bvc2VkKHJlc3VsdCk7XG4gXHRcdFx0XHRcdFx0ZG9EaXNwb3NlID0gdHJ1ZTtcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdFx0ZGVmYXVsdDpcbiBcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJVbmV4Y2VwdGlvbiB0eXBlIFwiICsgcmVzdWx0LnR5cGUpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0aWYgKGFib3J0RXJyb3IpIHtcbiBcdFx0XHRcdFx0aG90U2V0U3RhdHVzKFwiYWJvcnRcIik7XG4gXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGlmIChkb0FwcGx5KSB7XG4gXHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gaG90VXBkYXRlW21vZHVsZUlkXTtcbiBcdFx0XHRcdFx0YWRkQWxsVG9TZXQob3V0ZGF0ZWRNb2R1bGVzLCByZXN1bHQub3V0ZGF0ZWRNb2R1bGVzKTtcbiBcdFx0XHRcdFx0Zm9yIChtb2R1bGVJZCBpbiByZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbiBcdFx0XHRcdFx0XHRpZiAoXG4gXHRcdFx0XHRcdFx0XHRPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gXHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llcyxcbiBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbiBcdFx0XHRcdFx0XHRcdClcbiBcdFx0XHRcdFx0XHQpIHtcbiBcdFx0XHRcdFx0XHRcdGlmICghb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKVxuIFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0gPSBbXTtcbiBcdFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KFxuIFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0sXG4gXHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF1cbiBcdFx0XHRcdFx0XHRcdCk7XG4gXHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRpZiAoZG9EaXNwb3NlKSB7XG4gXHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkTW9kdWxlcywgW3Jlc3VsdC5tb2R1bGVJZF0pO1xuIFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSA9IHdhcm5VbmV4cGVjdGVkUmVxdWlyZTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBTdG9yZSBzZWxmIGFjY2VwdGVkIG91dGRhdGVkIG1vZHVsZXMgdG8gcmVxdWlyZSB0aGVtIGxhdGVyIGJ5IHRoZSBtb2R1bGUgc3lzdGVtXG4gXHRcdHZhciBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMgPSBbXTtcbiBcdFx0Zm9yIChpID0gMDsgaSA8IG91dGRhdGVkTW9kdWxlcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdG1vZHVsZUlkID0gb3V0ZGF0ZWRNb2R1bGVzW2ldO1xuIFx0XHRcdGlmIChcbiBcdFx0XHRcdGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdICYmXG4gXHRcdFx0XHRpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5ob3QuX3NlbGZBY2NlcHRlZFxuIFx0XHRcdClcbiBcdFx0XHRcdG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcy5wdXNoKHtcbiBcdFx0XHRcdFx0bW9kdWxlOiBtb2R1bGVJZCxcbiBcdFx0XHRcdFx0ZXJyb3JIYW5kbGVyOiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5ob3QuX3NlbGZBY2NlcHRlZFxuIFx0XHRcdFx0fSk7XG4gXHRcdH1cblxuIFx0XHQvLyBOb3cgaW4gXCJkaXNwb3NlXCIgcGhhc2VcbiBcdFx0aG90U2V0U3RhdHVzKFwiZGlzcG9zZVwiKTtcbiBcdFx0T2JqZWN0LmtleXMoaG90QXZhaWxhYmxlRmlsZXNNYXApLmZvckVhY2goZnVuY3Rpb24oY2h1bmtJZCkge1xuIFx0XHRcdGlmIChob3RBdmFpbGFibGVGaWxlc01hcFtjaHVua0lkXSA9PT0gZmFsc2UpIHtcbiBcdFx0XHRcdGhvdERpc3Bvc2VDaHVuayhjaHVua0lkKTtcbiBcdFx0XHR9XG4gXHRcdH0pO1xuXG4gXHRcdHZhciBpZHg7XG4gXHRcdHZhciBxdWV1ZSA9IG91dGRhdGVkTW9kdWxlcy5zbGljZSgpO1xuIFx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuIFx0XHRcdG1vZHVsZUlkID0gcXVldWUucG9wKCk7XG4gXHRcdFx0bW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0aWYgKCFtb2R1bGUpIGNvbnRpbnVlO1xuXG4gXHRcdFx0dmFyIGRhdGEgPSB7fTtcblxuIFx0XHRcdC8vIENhbGwgZGlzcG9zZSBoYW5kbGVyc1xuIFx0XHRcdHZhciBkaXNwb3NlSGFuZGxlcnMgPSBtb2R1bGUuaG90Ll9kaXNwb3NlSGFuZGxlcnM7XG4gXHRcdFx0Zm9yIChqID0gMDsgaiA8IGRpc3Bvc2VIYW5kbGVycy5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0Y2IgPSBkaXNwb3NlSGFuZGxlcnNbal07XG4gXHRcdFx0XHRjYihkYXRhKTtcbiBcdFx0XHR9XG4gXHRcdFx0aG90Q3VycmVudE1vZHVsZURhdGFbbW9kdWxlSWRdID0gZGF0YTtcblxuIFx0XHRcdC8vIGRpc2FibGUgbW9kdWxlICh0aGlzIGRpc2FibGVzIHJlcXVpcmVzIGZyb20gdGhpcyBtb2R1bGUpXG4gXHRcdFx0bW9kdWxlLmhvdC5hY3RpdmUgPSBmYWxzZTtcblxuIFx0XHRcdC8vIHJlbW92ZSBtb2R1bGUgZnJvbSBjYWNoZVxuIFx0XHRcdGRlbGV0ZSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcblxuIFx0XHRcdC8vIHdoZW4gZGlzcG9zaW5nIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCBkaXNwb3NlIGhhbmRsZXJcbiBcdFx0XHRkZWxldGUgb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdO1xuXG4gXHRcdFx0Ly8gcmVtb3ZlIFwicGFyZW50c1wiIHJlZmVyZW5jZXMgZnJvbSBhbGwgY2hpbGRyZW5cbiBcdFx0XHRmb3IgKGogPSAwOyBqIDwgbW9kdWxlLmNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gXHRcdFx0XHR2YXIgY2hpbGQgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZS5jaGlsZHJlbltqXV07XG4gXHRcdFx0XHRpZiAoIWNoaWxkKSBjb250aW51ZTtcbiBcdFx0XHRcdGlkeCA9IGNoaWxkLnBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCk7XG4gXHRcdFx0XHRpZiAoaWR4ID49IDApIHtcbiBcdFx0XHRcdFx0Y2hpbGQucGFyZW50cy5zcGxpY2UoaWR4LCAxKTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyByZW1vdmUgb3V0ZGF0ZWQgZGVwZW5kZW5jeSBmcm9tIG1vZHVsZSBjaGlsZHJlblxuIFx0XHR2YXIgZGVwZW5kZW5jeTtcbiBcdFx0dmFyIG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzO1xuIFx0XHRmb3IgKG1vZHVsZUlkIGluIG91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG4gXHRcdFx0aWYgKFxuIFx0XHRcdFx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG91dGRhdGVkRGVwZW5kZW5jaWVzLCBtb2R1bGVJZClcbiBcdFx0XHQpIHtcbiBcdFx0XHRcdG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdFx0aWYgKG1vZHVsZSkge1xuIFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9IG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzLmxlbmd0aDsgaisrKSB7XG4gXHRcdFx0XHRcdFx0ZGVwZW5kZW5jeSA9IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzW2pdO1xuIFx0XHRcdFx0XHRcdGlkeCA9IG1vZHVsZS5jaGlsZHJlbi5pbmRleE9mKGRlcGVuZGVuY3kpO1xuIFx0XHRcdFx0XHRcdGlmIChpZHggPj0gMCkgbW9kdWxlLmNoaWxkcmVuLnNwbGljZShpZHgsIDEpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gTm90IGluIFwiYXBwbHlcIiBwaGFzZVxuIFx0XHRob3RTZXRTdGF0dXMoXCJhcHBseVwiKTtcblxuIFx0XHRob3RDdXJyZW50SGFzaCA9IGhvdFVwZGF0ZU5ld0hhc2g7XG5cbiBcdFx0Ly8gaW5zZXJ0IG5ldyBjb2RlXG4gXHRcdGZvciAobW9kdWxlSWQgaW4gYXBwbGllZFVwZGF0ZSkge1xuIFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXBwbGllZFVwZGF0ZSwgbW9kdWxlSWQpKSB7XG4gXHRcdFx0XHRtb2R1bGVzW21vZHVsZUlkXSA9IGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdO1xuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIGNhbGwgYWNjZXB0IGhhbmRsZXJzXG4gXHRcdHZhciBlcnJvciA9IG51bGw7XG4gXHRcdGZvciAobW9kdWxlSWQgaW4gb3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbiBcdFx0XHRpZiAoXG4gXHRcdFx0XHRPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG1vZHVsZUlkKVxuIFx0XHRcdCkge1xuIFx0XHRcdFx0bW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRpZiAobW9kdWxlKSB7XG4gXHRcdFx0XHRcdG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzID0gb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdO1xuIFx0XHRcdFx0XHR2YXIgY2FsbGJhY2tzID0gW107XG4gXHRcdFx0XHRcdGZvciAoaSA9IDA7IGkgPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tpXTtcbiBcdFx0XHRcdFx0XHRjYiA9IG1vZHVsZS5ob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuIFx0XHRcdFx0XHRcdGlmIChjYikge1xuIFx0XHRcdFx0XHRcdFx0aWYgKGNhbGxiYWNrcy5pbmRleE9mKGNiKSAhPT0gLTEpIGNvbnRpbnVlO1xuIFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2tzLnB1c2goY2IpO1xuIFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0XHRcdFx0Y2IgPSBjYWxsYmFja3NbaV07XG4gXHRcdFx0XHRcdFx0dHJ5IHtcbiBcdFx0XHRcdFx0XHRcdGNiKG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzKTtcbiBcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcbiBcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4gXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJhY2NlcHQtZXJyb3JlZFwiLFxuIFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZCxcbiBcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzW2ldLFxuIFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnJcbiBcdFx0XHRcdFx0XHRcdFx0fSk7XG4gXHRcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdFx0XHRpZiAoIWVycm9yKSBlcnJvciA9IGVycjtcbiBcdFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBMb2FkIHNlbGYgYWNjZXB0ZWQgbW9kdWxlc1xuIFx0XHRmb3IgKGkgPSAwOyBpIDwgb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0dmFyIGl0ZW0gPSBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXNbaV07XG4gXHRcdFx0bW9kdWxlSWQgPSBpdGVtLm1vZHVsZTtcbiBcdFx0XHRob3RDdXJyZW50UGFyZW50cyA9IFttb2R1bGVJZF07XG4gXHRcdFx0dHJ5IHtcbiBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpO1xuIFx0XHRcdH0gY2F0Y2ggKGVycikge1xuIFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmVycm9ySGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gXHRcdFx0XHRcdHRyeSB7XG4gXHRcdFx0XHRcdFx0aXRlbS5lcnJvckhhbmRsZXIoZXJyKTtcbiBcdFx0XHRcdFx0fSBjYXRjaCAoZXJyMikge1xuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuIFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtYWNjZXB0LWVycm9yLWhhbmRsZXItZXJyb3JlZFwiLFxuIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnIyLFxuIFx0XHRcdFx0XHRcdFx0XHRvcmlnaW5hbEVycm9yOiBlcnJcbiBcdFx0XHRcdFx0XHRcdH0pO1xuIFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnIyO1xuIFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0XHRpZiAoIWVycm9yKSBlcnJvciA9IGVycjtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fSBlbHNlIHtcbiBcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4gXHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvcmVkXCIsXG4gXHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4gXHRcdFx0XHRcdFx0fSk7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRpZiAoIWVycm9yKSBlcnJvciA9IGVycjtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIGhhbmRsZSBlcnJvcnMgaW4gYWNjZXB0IGhhbmRsZXJzIGFuZCBzZWxmIGFjY2VwdGVkIG1vZHVsZSBsb2FkXG4gXHRcdGlmIChlcnJvcikge1xuIFx0XHRcdGhvdFNldFN0YXR1cyhcImZhaWxcIik7XG4gXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiBcdFx0fVxuXG4gXHRcdGhvdFNldFN0YXR1cyhcImlkbGVcIik7XG4gXHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7XG4gXHRcdFx0cmVzb2x2ZShvdXRkYXRlZE1vZHVsZXMpO1xuIFx0XHR9KTtcbiBcdH1cblxuIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3NcbiBcdC8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuIFx0Ly8gUHJvbWlzZSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbiBcdHZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG4gXHRcdFwiYnVuZGxlXCI6IDBcbiBcdH07XG5cbiBcdHZhciBkZWZlcnJlZE1vZHVsZXMgPSBbXTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aG90OiBob3RDcmVhdGVNb2R1bGUobW9kdWxlSWQpLFxuIFx0XHRcdHBhcmVudHM6IChob3RDdXJyZW50UGFyZW50c1RlbXAgPSBob3RDdXJyZW50UGFyZW50cywgaG90Q3VycmVudFBhcmVudHMgPSBbXSwgaG90Q3VycmVudFBhcmVudHNUZW1wKSxcbiBcdFx0XHRjaGlsZHJlbjogW11cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgaG90Q3JlYXRlUmVxdWlyZShtb2R1bGVJZCkpO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiaHR0cDovL2xvY2FsaG9zdDo4NTAxL3N0YXRpYy9cIjtcblxuIFx0Ly8gX193ZWJwYWNrX2hhc2hfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5oID0gZnVuY3Rpb24oKSB7IHJldHVybiBob3RDdXJyZW50SGFzaDsgfTtcblxuIFx0dmFyIGpzb25wQXJyYXkgPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gfHwgW107XG4gXHR2YXIgb2xkSnNvbnBGdW5jdGlvbiA9IGpzb25wQXJyYXkucHVzaC5iaW5kKGpzb25wQXJyYXkpO1xuIFx0anNvbnBBcnJheS5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2s7XG4gXHRqc29ucEFycmF5ID0ganNvbnBBcnJheS5zbGljZSgpO1xuIFx0Zm9yKHZhciBpID0gMDsgaSA8IGpzb25wQXJyYXkubGVuZ3RoOyBpKyspIHdlYnBhY2tKc29ucENhbGxiYWNrKGpzb25wQXJyYXlbaV0pO1xuIFx0dmFyIHBhcmVudEpzb25wRnVuY3Rpb24gPSBvbGRKc29ucEZ1bmN0aW9uO1xuXG5cbiBcdC8vIGFkZCBlbnRyeSBtb2R1bGUgdG8gZGVmZXJyZWQgbGlzdFxuIFx0ZGVmZXJyZWRNb2R1bGVzLnB1c2goWzAsXCJ2ZW5kb3JcIl0pO1xuIFx0Ly8gcnVuIGRlZmVycmVkIG1vZHVsZXMgd2hlbiByZWFkeVxuIFx0cmV0dXJuIGNoZWNrRGVmZXJyZWRNb2R1bGVzKCk7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNyZWF0ZUhpc3RvcnkgZnJvbSAnaGlzdG9yeS9jcmVhdGVCcm93c2VySGlzdG9yeSc7XG5pbXBvcnQgeyBoeWRyYXRlIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgQnJvd3NlclJvdXRlciBhcyBSb3V0ZXIsXG59IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuXG5pbXBvcnQgQXBwIGZyb20gJy4uL3NoYXJlZC9BcHAnO1xuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XG5cbmNvbnN0IGJyb3dzZXJIaXN0b3J5ID0gd2luZG93LmJyb3dzZXJIaXN0b3J5IHx8IGNyZWF0ZUhpc3RvcnkoKTtcblxuaHlkcmF0ZShcbiAgPFByb3ZpZGVyIHN0b3JlPXtzdG9yZX0+XG4gICAgPFJvdXRlcj5cbiAgICAgIDxBcHAgLz5cbiAgICA8L1JvdXRlcj5cbiAgPC9Qcm92aWRlcj4sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHAnKVxuKTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gIGlmIChtb2R1bGUuaG90KSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKTtcbiAgfVxuXG4gIGlmICghd2luZG93LmJyb3dzZXJIaXN0b3J5KSB7XG4gICAgd2luZG93LmJyb3dzZXJIaXN0b3J5ID0gYnJvd3Nlckhpc3Rvcnk7XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IFJvdXRpbmcgfSBmcm9tICdyb3V0aW5nJztcblxuaW1wb3J0ICcuL2Fzc2V0cy9zY3NzL3N0eWxlcy5zY3NzJztcblxuY2xhc3MgQXBwIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSb3V0aW5nIHN0b3JlPXtzdG9yZX0gLz5cbiAgICApO1xuICB9XG4gXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcDtcbiIsImltcG9ydCBhcGkgZnJvbSAnYXBpJztcblxuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5ID0gJydcbiAqIEByZXR1cm4ge3t9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q291bnRyaWVzKHF1ZXJ5ID0gJycpIHtcblxuICByZXR1cm4ge1xuICAgIHR5cGVzOiBbXG4gICAgICB0eXBlcy5HRVRfQ09VTlRSSUVTX1JFUVVFU1QsXG4gICAgICB0eXBlcy5HRVRfQ09VTlRSSUVTX1NVQ0NFU1MsXG4gICAgICB0eXBlcy5HRVRfQ09VTlRSSUVTX0ZBSUxVUkVcbiAgICBdLFxuICAgIGNhbGxBUEk6ICgpID0+IGFwaS5nZXQocXVlcnkpLFxuICB9O1xuXG59IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzXG4gKi9cblxuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJztcbmltcG9ydCBtYWtlQWN0aW9uQ3JlYXRvciBmcm9tICcuL21ha2VBY3Rpb25DcmVhdG9yJztcbmltcG9ydCBhcGkgZnJvbSAnYXBpJztcblxuaW1wb3J0IHsgZ2V0Q291bnRyaWVzIGFzIGdldENvdW50cmllc0FjdGlvbiB9IGZyb20gJy4vZ2V0Q291bnRyaWVzJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlYXJjaFRlcm1cbiAqIEByZXR1cm4ge09iamVjdC48QWN0aW9uPn0gYWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRTZWFyY2hUZXJtID0gbWFrZUFjdGlvbkNyZWF0b3IodHlwZXMuU0VUX1NFQVJDSF9URVJNLCAnc2VhcmNoVGVybScpO1xuXG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RlZENvdW50cnlcbiAqIEByZXR1cm4ge09iamVjdC48QWN0aW9uPn0gYWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRTZWxlY3RlZENvdW50cnkgPSBtYWtlQWN0aW9uQ3JlYXRvcih0eXBlcy5TRVRfU0VMRUNURURfQ09VTlRSWSwgJ3NlbGVjdGVkQ291bnRyeScpO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge0FycmF5LjxPYmplY3Q+fSBtb3ZpZXNcbiAqIEByZXR1cm4ge09iamVjdC48QWN0aW9uPn1cbiAqL1xuZXhwb3J0IGNvbnN0IHNldE1vdmllcyA9IG1ha2VBY3Rpb25DcmVhdG9yKHR5cGVzLlNFVF9NT1ZJRVMsICdtb3ZpZXMnKTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHJldHVybiB7RnVuY3Rpb259IGFzeW5jIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZpZXModXJsKSB7XG4gIC8qKlxuICAgKiAnZGlzcGF0Y2gnIGlzIHRoZSBzYW1lIG9uZSB0aGF0IHdlIHVzZSB0byBkaXNwYXRjaCBhY3Rpb25zIHRvIFJlZHV4XG4gICAqXG4gICAqICdnZXRTdGF0ZScgaXMgYSBmdW5jdGlvbiB0aGF0IGlmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBiYXNlZCBvblxuICAgKiB0aGUgUmVkdXggc3RvcmUncyBkYXRhLCB5b3UgY2FuIGNhbGwgaXQgdG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChkaXNwYXRjaCwgZ2V0U3RhdGUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhcGkuZ2V0KHVybCk7XG4gICAgICBkaXNwYXRjaChzZXRNb3ZpZXMoZGF0YSkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWFjdE1vdmllczogJywgZXJyKTtcbiAgICB9XG4gIH07XG5cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG1vdmllXG4gKiBAcmV0dXJuIHtPYmplY3QuPEFjdGlvbj59XG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNb3ZpZSA9IG1ha2VBY3Rpb25DcmVhdG9yKHR5cGVzLlNFVF9NT1ZJRSwgJ21vdmllJyk7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZFxuICogQHJldHVybiB7RnVuY3Rpb259IGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZpZShpZCkge1xuXG4gIHJldHVybiBmdW5jdGlvbiAoZGlzcGF0Y2gsIGdldFN0YXRlKSB7XG5cbiAgICBjb25zdCBtb3ZpZXMgPSBnZXRTdGF0ZSgpLm1vdmllcztcblxuICAgIGNvbnN0IG1vdmllID0gbW92aWVzLmZpbHRlcihtID0+IG0uaWQgPT09ICtpZClbMF07XG5cbiAgICBkaXNwYXRjaChzZXRNb3ZpZShtb3ZpZSkpO1xuXG4gIH07XG5cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gY291bnRyaWVzXG4gKiBAcmV0dXJuIHtPYmplY3QuPEFjdGlvbj59XG4gKi9cbmV4cG9ydCBjb25zdCBzZXRDb3VudHJpZXMgPSBtYWtlQWN0aW9uQ3JlYXRvcih0eXBlcy5TRVRfQ09VTlRSSUVTLCAnY291bnRyaWVzJyk7XG5cbi8qKlxuICogQHR5cGUge0Z1bmN0aW9ufSBnZXRDb3VudHJpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvdW50cmllcyA9IGdldENvdW50cmllc0FjdGlvbjsiLCIvKipcbiAqIEBtb2R1bGUgYWN0aW9ucy9tYWtlQWN0aW9uQ3JlYXRvclxuICovXG5cbi8qKlxuICogTWFrZXMgYW4gYWN0aW9uIGNyZWF0b3IgZnVuY3Rpb24gdG8gcmVkdWNlIGJvaWxlcnBsYXRlXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSBhcmdOYW1lc1xuICogQHJldHVybiB7RnVuY3Rpb259IHRoZSBhY3Rpb24gY3JlYXRvciBpdHNlbGZcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUFjdGlvbkNyZWF0b3IodHlwZSwgLi4uYXJnTmFtZXMpIHtcblxuICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICBsZXQgYWN0aW9uID0geyB0eXBlIH07XG4gICAgYXJnTmFtZXMuZm9yRWFjaCgoYXJnLCBpbmRleCkgPT4ge1xuICAgICAgYWN0aW9uW2FyZ05hbWVzW2luZGV4XV0gPSBhcmdzW2luZGV4XTtcbiAgICB9KTtcblxuICAgIHJldHVybiBhY3Rpb247XG5cbiAgfTtcblxufSIsIi8qKlxuICogQG1vZHVsZSBhcGkvYXBpXG4gKi9cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGF4aW9zOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5MTU2MjAwMzBcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0ICcuL0Zvb3Rlci5zY3NzJztcblxuY29uc3QgRm9vdGVyID0gKCkgPT4gKFxuICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19sb2dvXCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgICAgIHNyYz1cIi4uLy4uL2Fzc2V0cy9pbWcvcmVhY3QtbG9nby5wbmdcIlxuICAgICAgICAgICAgICAgICAgYWx0PVwicmVhY3QgbG9nb1wiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlcl9fY29weXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHA+Q29weXJpZ2h0IMKpIDIwMTguIEFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb290ZXI+XG4gICAgKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODM5M1xuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgJy4vSGVhZGVyLnNjc3MnO1xuXG5jb25zdCBIZWFkZXIgPSAoeyBoZWFkaW5nLCBzdWJIZWFkaW5nLCBpbWdVcmwgPSAnJyB9KSA9PiAoXG4gIDxoZWFkZXIgY2xhc3NOYW1lPVwiSGVhZGVyX19tYXN0aGVhZFwiIHN0eWxlPXt7J2JhY2tncm91bmQnOiBpbWdVcmx9fT5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cIkhlYWRlcl9fb3ZlcmxheVwiIC8+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwIG14LWF1dG9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIkhlYWRlcl9fcGFnZS1oZWFkaW5nXCI+XG4gICAgICAgICAgICA8aDE+eyBoZWFkaW5nIH08L2gxPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiSGVhZGVyX19zdWJoZWFkaW5nXCI+e3N1YkhlYWRpbmd9PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRlcjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4NjMzXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0ICcuL01vdmllLnNjc3MnO1xuXG5jb25zdCBNb3ZpZSA9ICh7IG1vdmllVGl0bGUsIGRlc2NyaXB0aW9uIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCIgc3R5bGU9eyB7d2lkdGg6ICcyMHJlbSd9IH0+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgIDxoNCBjbGFzc05hbWU9XCJjYXJkLXRpdGxlXCI+eyBtb3ZpZVRpdGxlIH08L2g0PlxuICAgICAgPHAgY2xhc3NOYW1lPVwiY2FyZC10ZXh0XCI+eyBkZXNjcmlwdGlvbiB9PC9wPlxuICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5XYXRjaCBUcmFpbGVyPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbik7XG5cbk1vdmllLnByb3BUeXBlcyA9IHtcbiAgbW92aWVUaXRsZTogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTW92aWU7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODU4OFxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuXG5pbXBvcnQgJy4vTW92aWVDYXJkLnNjc3MnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb3ZpZUNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuXG4gICAgLy8gRGVzdHJ1Y3R1cmUgdGhlIGluZGl2aWR1YWwgcHJvcHNcbiAgICBsZXQgeyBtb3ZpZVRpdGxlLCBtb3ZpZUdlbnJlLCBjb3VudHJ5LCBkZXNjcmlwdGlvbiwgaWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGFydGljbGUgY2xhc3NOYW1lPVwibW92aWVDYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2FyZC10aXRsZVwiPnttb3ZpZVRpdGxlfTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJjYXJkLXRleHQgdGV4dC1jbGFtcFwiPlxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImxpc3QtZ3JvdXAgbGlzdC1ncm91cC1mbHVzaFwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImxpc3QtZ3JvdXAtaXRlbVwiPntjb3VudHJ5fTwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibGlzdC1ncm91cC1pdGVtXCI+e21vdmllR2VucmV9PC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8TmF2TGluayB0bz17YGRldGFpbHMvJHtpZH1gfT5cbiAgICAgICAgICBTZWUgRGV0YWlsc1xuICAgICAgICA8L05hdkxpbms+XG4gICAgICA8L2FydGljbGU+XG5cbiAgICApO1xuXG4gIH1cbiAgXG59IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODQ3MFxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgZnVuYywgc3RyaW5nLCBib29sIH0gZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICdub2RlLXV1aWQnO1xuXG5pbXBvcnQgU2VhcmNoZXIgZnJvbSAnY29tcG9uZW50cy9TZWFyY2hlci9TZWFyY2hlcic7XG5cbmNsYXNzIE5hdiBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFNldHMgc3RhdGUncyBzZWFyY2hUZXJtIGFuZCBmaWx0ZXIgdGhlIG1vdmllcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm1cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHNlYXJjaFRlcm1IYW5kbGVyID0gKHNlYXJjaFRlcm0pID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtzZWFyY2hUZXJtfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3RbXX1cbiAgICovXG4gIGxpbmtzID0gW1xuICAgIHtcbiAgICAgIGlkOiB2NCgpLFxuICAgICAgcGF0aDogJ2Fib3V0JyxcbiAgICAgIG5hbWU6ICdBYm91dCdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiB2NCgpLFxuICAgICAgcGF0aDogJ21vdmllcycsXG4gICAgICBuYW1lOiAnTW92aWVzJ1xuICAgIH1cbiAgXTtcblxuICByZW5kZXIoKSB7XG5cbiAgICBjb25zdCB7XG4gICAgICBzZWFyY2hUZXJtLFxuICAgICAgc2hvd1NlYXJjaCxcbiAgICAgIHNob3dQcm9maWxlLFxuICAgICAgb25TZWFyY2hcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGxldCBzcGFjZTtcblxuICAgIGlmIChzaG93U2VhcmNoKSB7XG4gICAgICBzcGFjZSA9IDxTZWFyY2hlciBzZWFyY2hUZXJtPXtzZWFyY2hUZXJtfSBvblNlYXJjaD17b25TZWFyY2h9IC8+O1xuICAgIH0gZWxzZSBpZiAoc2hvd1Byb2ZpbGUpIHtcbiAgICAgIHNwYWNlID0gKFxuICAgICAgICA8TmF2TGlua1xuICAgICAgICAgIHRvPScvcHJvZmlsZSdcbiAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgUHJvZmlsZVxuICAgICAgICA8L05hdkxpbms+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFjZSA9IChcbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICB0bz0nL21vdmllcydcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItYnJhbmRcIj5cbiAgICAgICAgICBCYWNrXG4gICAgICAgIDwvTmF2TGluaz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxuYXYgY2xhc3NOYW1lPVwibmF2YmFyIG5hdmJhci1kYXJrIG5hdmJhci1leHBhbmQtbGcgYmctZGFya1wiPlxuICAgICAgICA8TmF2TGlua1xuICAgICAgICAgIHRvPVwiL1wiXG4gICAgICAgICAgY2xhc3NOYW1lPVwibmF2YmFyLWJyYW5kXCI+XG4gICAgICAgICAgUmVhY3QgTW92aWVzXG4gICAgICAgIDwvTmF2TGluaz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdmJhci10b2dnbGVyIG5hdmJhci10b2dnbGVyLXJpZ2h0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiPlxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJuYXZiYXItbmF2IG1yLWF1dG9cIj5cbiAgICAgICAgICAgIHt0aGlzLmxpbmtzLm1hcCgoeyBwYXRoLCBuYW1lLCBpZH0pID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17aWR9IGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICAgICAgICAgIHRvPXtgLyR7cGF0aH1gfVxuICAgICAgICAgICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuYXYtbGlua1wiPlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0taW5saW5lXCI+XG4gICAgICAgICAgICB7c3BhY2V9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uYXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbk5hdi5wcm9wVHlwZXMgPSB7XG4gIHNob3dTZWFyY2g6IGJvb2wsXG4gIHNlYXJjaFRlcm06IHN0cmluZyxcbiAgb25TZWFyY2g6IGZ1bmNcbn07XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnlcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTmF2KTtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTmF2IH0gZnJvbSAnLi9OYXYnO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VhcmNoZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgLy8gVGhpcyBiaW5kaW5nIGlzIG5lY2Vzc2FyeSB0byBtYWtlIGB0aGlzYCB3b3JrIGluIHRoZSBjYWxsYmFja1xuICAgIHRoaXMuc2VhcmNoID0gdGhpcy5zZWFyY2guYmluZCh0aGlzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTEyJz5cbiAgICAgICAgICA8Zm9ybSBuYW1lPSdzZWFyY2hlcicgb25TdWJtaXQ9e3RoaXMuc2VhcmNofT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmb3JtLWdyb3VwJz5cbiAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9J3NlYXJjaGVyJyBjbGFzc05hbWU9J3NyLW9ubHknPkp1c3QgdHlwZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgaWQ9J3NlYXJjaGVyJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nZm9ybS1jb250cm9sJ1xuICAgICAgICAgICAgICAgIG5hbWU9J3NlYXJjaGVyJ1xuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSdUeXBlLi4uJ1xuICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnByb3BzLnNlYXJjaFRlcm19XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuc2VhcmNofSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogcGFzcyBkYXRhIHRvIHBhcmVudCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZ0IC0gdGhlIGV2ZW50IHRoYXQgY29tZXMgZnJvbSB0aGUgaW5wdXRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHNlYXJjaChldnQpIHtcbiAgICB0aGlzLnByb3BzLm9uU2VhcmNoKGV2dC50YXJnZXQudmFsdWUpO1xuICB9XG4gIFxufSIsIi8qKlxuICogQG1vZHVsZSBjb25zdGFudHMvQWN0aW9uVHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFNFVF9TRUFSQ0hfVEVSTSA9ICdTRVRfU0VBUkNIX1RFUk0nO1xuZXhwb3J0IGNvbnN0IFNFVF9TRUxFQ1RFRF9DT1VOVFJZID0gJ1NFVF9TRUxFQ1RFRF9DT1VOVFJZJztcbmV4cG9ydCBjb25zdCBTRVRfTU9WSUUgPSAnU0VUX01PVklFJztcbmV4cG9ydCBjb25zdCBTRVRfTU9WSUVTID0gJ1NFVF9NT1ZJRVMnO1xuXG5leHBvcnQgY29uc3QgR0VUX0NPVU5UUklFU19SRVFVRVNUID0gJ0dFVF9DT1VOVFJJRVNfUkVRVUVTVCc7XG5leHBvcnQgY29uc3QgR0VUX0NPVU5UUklFU19TVUNDRVNTID0gJ0dFVF9DT1VOVFJJRVNfU1VDQ0VTUyc7XG5leHBvcnQgY29uc3QgR0VUX0NPVU5UUklFU19GQUlMVVJFID0gJ0dFVF9DT1VOVFJJRVNfRkFJTFVSRSc7IiwiZXhwb3J0IGNvbnN0IENPVU5UUklFUyA9ICdodHRwczovL3Jlc3Rjb3VudHJpZXMuZXUvcmVzdC92Mic7IiwiLyoqXG4gKiBAbW9kdWxlIGxvY2FsU3RvcmFnZVxuICogcGVyc2lzdCB0aGUgc3RhdGUgb2YgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBsb2NhbFN0b3JhZ2UgdXNpbmcgYnJvd3NlciBsb2NhbFN0b3JhZ2UgQVBJLlxuICovXG5cbi8qKlxuICogQGRlc2MgTG9vayBpbnRvIGxvY2FsU3RvcmFnZSBieSBrZXksIHJldHJpZXZlIGEgc3RyaW5nLCBhbmQgdHJ5IHRvIHBhcnNlIGl0IGFzIEpTT04uXG4gKlxuICogQHJldHVybiB7SlNPTn1cbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRTdGF0ZSA9ICgpID0+IHtcbiAgLyoqXG4gICAqIEl0J3MgaW1wb3J0YW50IHRoYXQgd2Ugd3JhcCB0aGlzIGNvZGUgaW50byB0cnkvY2F0Y2ggYmVjYXVzZSBjYWxscyB0byBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSBjYW4gZmFpbFxuICAgKiBpZiB0aGUgdXNlciBwcml2YWN5IG1vZGUgZG9lcyBub3QgYWxsb3cgdGhlIHVzZSBvZiBsb2NhbFN0b3JhZ2UuXG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRTdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdGF0ZScpO1xuICAgIC8vIElmIHNlcmlhbGl6ZWRTdGF0ZSBpcyBudWxsIGl0IG1lYW5zIHRoYXQgdGhlIGtleSBkb2Vzbid0IGV4aXN0IHNvIEknbGwgcmV0dXJuIHVuZGVmaW5lZCB0byBsZXQgdGhlIHJlZHVjZXJzIGluaXRpYWxpemUgdGhlIHN0YXRlIGluc3RlYWQuXG4gICAgaWYgKHNlcmlhbGl6ZWRTdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHNlcmlhbGl6ZWRTdGF0ZSBzdHJpbmcgZXhpc3RzIEknbSBnb2luZyB0byB1c2UgSlNPTi5wYXJzZSBpbiBvcmRlciB0byB0dXJuIGl0IGludG8gdGhlIHN0YXRlIG9iamVjdC5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShzZXJpYWxpemVkU3RhdGUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBJbiBjYXNlIG9mIGFueSBlcnJvcnMgcmV0dXJuIHVuZGVmaW5lZCB0byBsZXQgcmVkdWNlcnMgaW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24uXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG59O1xuXG4vKipcbiAqIFNldHMgYW4gaXRlbSBvbiBsb2NhbFN0b3JhZ2VcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZVxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVTdGF0ZSA9IChzdGF0ZSkgPT4ge1xuICAvKipcbiAgICogU2VyaWFsaXplcyBpdCB0byBzdHJpbmcgYnkgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgdGhlIHN0YXRlIGlzIHNlcmlhbGl6YWJsZSxcbiAgICogYnV0IHRoaXMgaXMgdGhlIGdlbmVyYWwgcmVjb21tZW5kYXRpb24gaW4gUmVkdXguIFRoZSBzdGF0ZSBTSE9VTEQgYmUgc2VyaWFsaXphYmxlLlxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCBzZXJpYWxpemVkU3RhdGUgPSBKU09OLnN0cmluZ2lmeShzdGF0ZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N0YXRlJywgc2VyaWFsaXplZFN0YXRlKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcignbG9jYWxTdG9yYWdlIHNoaXQ6ICcsIGVycik7XG4gIH1cblxufTsiLCIvKipcbiAqIEBkZXNjIGhhbmRsZXMgYWxsIEFQSSdzIGFzeW5jIGFjdGlvbnNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGRpc3BhdGNoXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRTdGF0ZVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFwaU1pZGRsZXdhcmUoeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfSkge1xuICByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHR5cGVzLFxuICAgICAgY2FsbEFQSSxcbiAgICAgIHNob3VsZENhbGxBUEkgPSAoKSA9PiB0cnVlLFxuICAgICAgcGF5bG9hZCA9IHt9XG4gICAgfSA9IGFjdGlvbjtcblxuICAgIGlmICghdHlwZXMpIHtcbiAgICAgIC8vIE5vcm1hbCBhY3Rpb246IHBhc3MgaXQgb25cbiAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIUFycmF5LmlzQXJyYXkodHlwZXMpIHx8XG4gICAgICB0eXBlcy5sZW5ndGggIT09IDMgfHxcbiAgICAgICF0eXBlcy5ldmVyeSh0eXBlID0+IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJylcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYW4gYXJyYXkgb2YgdGhyZWUgc3RyaW5nIHR5cGVzLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbEFQSSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBjYWxsQVBJIHRvIGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgaWYgKCFzaG91bGRDYWxsQVBJKGdldFN0YXRlKCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgW3JlcXVlc3RUeXBlLCBzdWNjZXNzVHlwZSwgZmFpbHVyZVR5cGVdID0gdHlwZXM7XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICAuLi5wYXlsb2FkLFxuICAgICAgdHlwZTogcmVxdWVzdFR5cGVcbiAgICB9KTtcblxuICAgIChhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNhbGxBUEkoKTtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKHtcbiAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIHR5cGU6IHN1Y2Nlc3NUeXBlXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKHtcbiAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICAgIHR5cGU6IGZhaWx1cmVUeXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH07XG59IiwiLyoqXG4gKiBAbW9kdWxlIG1pZGRsZXdhcmVcbiAqL1xuaW1wb3J0IHRodW5rIGZyb20gJ3JlZHV4LXRodW5rJztcblxuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgYXBpTWlkZGxld2FyZSBmcm9tICcuL2FwaU1pZGRsZXdhcmUnO1xuXG4vKipcbiAqIEB0eXBlIHttaWRkbGV3YXJlW119XG4gKi9cbmxldCBtaWRkbGV3YXJlcyA9IFtcbiAgdGh1bmssXG4gIGFwaU1pZGRsZXdhcmVcbl07XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1pZGRsZXdhcmVzID0gWy4uLm1pZGRsZXdhcmVzLCBsb2dnZXJdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtaWRkbGV3YXJlcztcbiIsIi8qKlxuICogVGFrZW4gZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL2dhZWFyb24vdG9kb3MvYmxvYi8xNy10aGUtbWlkZGxld2FyZS1jaGFpbi9zcmMvY29uZmlndXJlU3RvcmUuanNcbiAqXG4gKiBMb2dzIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdG9yZSAtIFJlZHV4J3Mgc3RvcmVcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsb2dnZXIoc3RvcmUpIHtcbiAgLyoqXG4gICAqIFJhdGhlciB0aGFuIHRha2UgdGhlIG5leHQgbWlkZGxld2FyZSBmcm9tIHRoZSBzdG9yZSwgd2UnbGxcbiAgICogbWFrZSBpdCBpbmplY3RhYmxlIGFzIGFuIGFyZ3VtZW50LCBzbyB0aGUgZnVuY3Rpb24gdGhhdCBjYWxsc1xuICAgKiB0aGUgbWlkZGxld2FyZXMgY2FuIGNob3NlIHdoaWNoIG1pZGRsZSB3YXJlIHRvIHBhc3NcbiAgICovXG4gIHJldHVybiAobmV4dCkgPT4ge1xuICAgIGlmICghY29uc29sZS5ncm91cCkge1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuXG4gICAgLy8gVGhlIGFjdHVhbCBkaXNwYXRjaCBmdW5jdGlvblxuICAgIHJldHVybiAoYWN0aW9uKSA9PiB7XG4gICAgICBjb25zb2xlLmdyb3VwKGFjdGlvbi50eXBlKTtcbiAgICAgIGNvbnNvbGUubG9nKCclYyBwcmV2IHN0YXRlJywgJ2NvbG9yOiBncmF5Jywgc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICBjb25zb2xlLmxvZygnJWMgYWN0aW9uJywgJ2NvbG9yOiBibHVlJywgYWN0aW9uKTtcbiAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gbmV4dChhY3Rpb24pO1xuICAgICAgY29uc29sZS5sb2coJyVjIG5leHQgc3RhdGUnLCAnY29sb3I6IGdyZWVuJywgc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICBjb25zb2xlLmdyb3VwRW5kKGFjdGlvbi50eXBlKTtcbiAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9O1xuXG4gIH07XG5cbn0iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBIZWFkZXIgZnJvbSAnY29tcG9uZW50cy9IZWFkZXIvSGVhZGVyJztcblxuaW1wb3J0ICcuL0Fib3V0LnNjc3MnO1xuXG5jbGFzcyBBYm91dCBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJybUFib3V0XCI+XG4gICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm1BYm91dF9fd3JhcHBlclwiPlxuICAgICAgICAgIDxIZWFkZXJcbiAgICAgICAgICAgIGhlYWRpbmc9XCJBYm91dFwiXG4gICAgICAgICAgICBzdWJIZWFkaW5nPVwiUmVhY3QgTW92aWVzXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIHBiLTVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwIG14LWF1dG9cIj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgIFRoaXMgaXMganVzdCBhbiBhcHAgdG8gc2F2ZSBhbmQgc2hhcmUgeW91ciBmYXZvcml0ZSBtb3ZpZXMsIGJlY2F1c2Ugc29tZXRpbWVzIHdlIG5lZWQgYSByZWNvbW1lbmRhdGlvblxuICAgICAgICAgICAgICAgICAgd2hlbiB3ZSBkb2Vzbid0IGhhdmUgYW55dGhpbmcgdG8gc2VlLCBzbyB0aGlzIGlzIHRoZSBwZXJmZWN0IHBsYWNlLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbiAgfVxuICBcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWJvdXQ7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4NTExXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4Mzk5XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBnZXRNb3ZpZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgTW92aWUgZnJvbSAnY29tcG9uZW50cy9Nb3ZpZS9Nb3ZpZSc7XG5cbmltcG9ydCAnLi9Nb3ZpZURldGFpbHMuc2Nzcyc7XG5cbmNsYXNzIE1vdmllRGV0YWlscyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goZ2V0TW92aWUoJzEnKSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG5cbiAgICBjb25zdCB7IG1vdmllIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW92aWVEZXRhaWxzIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgIDxNb3ZpZSB7Li4ubW92aWV9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcblxuICB9XG4gIFxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIG1vdmllOiBzdGF0ZS5tb3ZpZVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShNb3ZpZURldGFpbHMpOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5MTU2MTg1MjFcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBhcnJheU9mLCBzaGFwZSwgc3RyaW5nLCBudW1iZXIgfSBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgc2V0U2VhcmNoVGVybSwgZ2V0TW92aWVzIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XG5pbXBvcnQgTW92aWVDYXJkIGZyb20gJ2NvbXBvbmVudHMvTW92aWVDYXJkL01vdmllQ2FyZCc7XG5cbmltcG9ydCAnLi9Nb3ZpZXMuc2Nzcyc7XG5cbmNsYXNzIE1vdmllcyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFNldHMgc3RhdGUncyBzZWFyY2hUZXJtIGFuZCBmaWx0ZXIgdGhlIG1vdmllcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm1cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHNlYXJjaFRlcm1IYW5kbGVyID0gKHNlYXJjaFRlcm0pID0+IHtcbiAgICB0aGlzLnByb3BzLnNldFNlYXJjaFRlcm0oc2VhcmNoVGVybSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG5cbiAgICBjb25zb2xlLmxvZygndGhpcy5wcm9wcycsIHRoaXMucHJvcHMpO1xuICAgIGlmICh0aGlzLnByb3BzLm1vdmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIFxuICAgIH1cblxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuXG4gIH1cblxuICByZW5kZXIoKSB7XG5cbiAgICBjb25zdCB7IHNlYXJjaFRlcm0sIG1vdmllcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8c2VjdGlvbj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC13cmFwXCI+XG4gICAgICAgICAgICB7bW92aWVzLmZpbHRlcihtb3ZpZSA9PiAoXG4gICAgICAgICAgICAgIGAke21vdmllLm1vdmllVGl0bGV9ICR7bW92aWUuZGVzY3JpcHRpb259YC50b1VwcGVyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b1VwcGVyQ2FzZSgpKSA+PSAwXG4gICAgICAgICAgICApKS5tYXAobW92aWUgPT4gKFxuICAgICAgICAgICAgICA8TW92aWVDYXJkIGtleT17bW92aWUuaWR9IHsuLi5tb3ZpZX0gLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xuXG4gIH1cblxuICBcbn1cblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWFyY2hUZXJtOiBzdGF0ZS5zZWFyY2hUZXJtLFxuICBtb3ZpZXM6IHN0YXRlLm1vdmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IHsgXG4gIGdldE1vdmllcyxcbiAgc2V0U2VhcmNoVGVybSwgIFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcbiAgbWFwU3RhdGVUb1Byb3BzLFxuICBtYXBEaXNwYXRjaFRvUHJvcHNcbikoTW92aWVzKTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4NDc5XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmNsYXNzIFByb2ZpbGUgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm1Qcm9maWxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiIHN0eWxlPXt7d2lkdGg6ICcxOHJlbSd9fT5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJjYXJkLWltZy10b3BcIlxuICAgICAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyODYlMjIlMjBoZWlnaHQlM0QlMjIxODAlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI4NiUyMDE4MCUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJub25lJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMjNob2xkZXJfMTYwZGVjNDI0M2ElMjB0ZXh0JTIwJTdCJTIwZmlsbCUzQXJnYmEoMjU1JTJDMjU1JTJDMjU1JTJDLjc1KSUzQmZvbnQtd2VpZ2h0JTNBbm9ybWFsJTNCZm9udC1mYW1pbHklM0FIZWx2ZXRpY2ElMkMlMjBtb25vc3BhY2UlM0Jmb250LXNpemUlM0ExNHB0JTIwJTdEJTIwJTNDJTJGc3R5bGUlM0UlM0MlMkZkZWZzJTNFJTNDZyUyMGlkJTNEJTIyaG9sZGVyXzE2MGRlYzQyNDNhJTIyJTNFJTNDcmVjdCUyMHdpZHRoJTNEJTIyMjg2JTIyJTIwaGVpZ2h0JTNEJTIyMTgwJTIyJTIwZmlsbCUzRCUyMiUyMzc3NyUyMiUzRSUzQyUyRnJlY3QlM0UlM0NnJTNFJTNDdGV4dCUyMHglM0QlMjI5OS40Mzc1JTIyJTIweSUzRCUyMjk2LjMzNzUlMjIlM0VJbWFnZSUyMGNhcCUzQyUyRnRleHQlM0UlM0MlMkZnJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImNhcmQtdGl0bGVcIj5DYXJkIHRpdGxlPC9oNT5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImNhcmQtdGV4dFwiPlNvbWUgcXVpY2sgZXhhbXBsZSB0ZXh0IHRvIGJ1aWxkIG9uIHRoZSBjYXJkIHRpdGxlIGFuZCBtYWtlIHVwIHRoZSBidWxrIG9mIHRoZSBjYXJkJ3MgY29udGVudC48L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibGlzdC1ncm91cC1pdGVtXCI+Q3JhcyBqdXN0byBvZGlvPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJsaXN0LWdyb3VwLWl0ZW1cIj5EYXBpYnVzIGFjIGZhY2lsaXNpcyBpbjwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibGlzdC1ncm91cC1pdGVtXCI+VmVzdGlidWx1bSBhdCBlcm9zPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImNhcmQtbGlua1wiPkNhcmQgbGluazwvYT5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPVwiY2FyZC1saW5rXCI+QW5vdGhlciBsaW5rPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xuICB9XG4gIFxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9maWxlO1xuIiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzL21vdmllc1xuICovXG5cbmltcG9ydCBjcmVhdGVSZWR1Y2VyIGZyb20gJy4vY3JlYXRlUmVkdWNlcic7XG5cbmltcG9ydCB7IEdFVF9DT1VOVFJJRVNfU1VDQ0VTUyB9ICBmcm9tICcuLi9jb25zdGFudHMvQWN0aW9uVHlwZXMnO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJlZHVjZXIoW10sIHtcbiAgW0dFVF9DT1VOVFJJRVNfU1VDQ0VTU10oc3RhdGUsIGFjdGlvbikge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgIGRhdGFcbiAgICAgIH1cbiAgICB9ID0gYWN0aW9uO1xuICAgIHJldHVybiBbLi4uZGF0YV07XG4gIH1cbn0pOyIsIi8qKlxuICogQG1vZHVsZSByZWR1Y2Vycy9jcmVhdGVSZWR1Y2VyXG4gKi9cblxuLyoqXG4gKlxuICogQHBhcmFtIHthbnl9IGluaXRpYWxTdGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGhhbmRsZXJzXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gcmVkdWNlclxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVSZWR1Y2VyKGluaXRpYWxTdGF0ZSwgaGFuZGxlcnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlZHVjZXIoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbikge1xuICAgIGlmIChoYW5kbGVycy5oYXNPd25Qcm9wZXJ0eShhY3Rpb24udHlwZSkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVyc1thY3Rpb24udHlwZV0oc3RhdGUsIGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH07XG59IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZVJlZHVjZXJzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IG1vdmllIGZyb20gJy4vbW92aWUnO1xuaW1wb3J0IG1vdmllcyBmcm9tICcuL21vdmllcyc7XG5pbXBvcnQgc2VhcmNoVGVybSBmcm9tICcuL3NlYXJjaFRlcm0nO1xuaW1wb3J0IHNlbGVjdGVkQ291bnRyeSBmcm9tICcuL3NlbGVjdGVkQ291bnRyeSc7XG5pbXBvcnQgY291bnRyaWVzIGZyb20gJy4vY291bnRyaWVzJztcblxuZXhwb3J0IGRlZmF1bHQgY29tYmluZVJlZHVjZXJzKHtcbiAgbW92aWUsXG4gIG1vdmllcyxcbiAgc2VhcmNoVGVybSxcbiAgc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXNcbn0pOyIsIi8qKlxuICogQG1vZHVsZSByZWR1Y2Vycy9tb3ZpZVxuICovXG5cbmltcG9ydCBjcmVhdGVSZWR1Y2VyIGZyb20gJy4vY3JlYXRlUmVkdWNlcic7XG5cbmltcG9ydCB7IFNFVF9NT1ZJRSB9IGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSA9IHt9XG4gKiBAcGFyYW0ge09iamVjdH0gYWN0aW9uXG4gKiBAcmV0dXJuIHtPYmplY3R9IG5ldyBzdGF0ZVxuICovXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSZWR1Y2VyKHt9LCB7XG4gIFtTRVRfTU9WSUVdKHN0YXRlLCBhY3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtb3ZpZTogYWN0aW9uLm1vdmllXG4gICAgfTtcbiAgfVxufSk7XG4iLCIvKipcbiAqIEBtb2R1bGUgcmVkdWNlcnMvbW92aWVzXG4gKi9cbmltcG9ydCBjcmVhdGVSZWR1Y2VyIGZyb20gJy4vY3JlYXRlUmVkdWNlcic7XG5cbmltcG9ydCB7IFNFVF9NT1ZJRVMgfSAgZnJvbSAnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHN0YXRlXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSZWR1Y2VyKFtdLCB7XG4gIFtTRVRfTU9WSUVTXShzdGF0ZSwgYWN0aW9uKSB7XG4gICAgcmV0dXJuIFsuLi5hY3Rpb24ubW92aWVzXTtcbiAgfVxufSk7IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzL3NlYXJjaFRlcm1cbiAqL1xuaW1wb3J0IGNyZWF0ZVJlZHVjZXIgZnJvbSAnLi9jcmVhdGVSZWR1Y2VyJztcblxuaW1wb3J0IHsgU0VUX1NFQVJDSF9URVJNIH0gIGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5cblxuLyoqXG4gKlxuICogQHBhcmFtIHN0YXRlXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gcmVkdWNlclxuICovXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSZWR1Y2VyKCcnLCB7XG4gIFtTRVRfU0VBUkNIX1RFUk1dKHN0YXRlLCBhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnNlYXJjaFRlcm07XG4gIH1cbn0pOyIsIi8qKlxuICogQG1vZHVsZSByZWR1Y2Vycy9zZWxlY3RlZENvdW50cnlcbiAqL1xuXG5pbXBvcnQgY3JlYXRlUmVkdWNlciBmcm9tICcuL2NyZWF0ZVJlZHVjZXInO1xuXG5pbXBvcnQgeyBTRVRfU0VMRUNURURfQ09VTlRSWSB9ICBmcm9tICcuLi9jb25zdGFudHMvQWN0aW9uVHlwZXMnO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJlZHVjZXIoJ0NvbG9tYmlhJywge1xuICBbU0VUX1NFTEVDVEVEX0NPVU5UUlldKHN0YXRlLCBhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnNlbGVjdGVkQ291bnRyeTtcbiAgfVxufSk7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgUm91dGVcbn0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCB7IE5hdiB9IGZyb20gJ2NvbXBvbmVudHMvTmF2JztcbmltcG9ydCBGb290ZXIgZnJvbSAnY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyJztcblxuY29uc3QgTG9hZGluZyA9ICgpID0+ICg8ZGl2Pi4uLjwvZGl2Pik7XG5cbmltcG9ydCBMYW5kaW5nIGZyb20gJ3BhZ2VzL0xhbmRpbmcvTGFuZGluZyc7XG5cbmltcG9ydCBBYm91dCBmcm9tICdwYWdlcy9BYm91dC9BYm91dCc7XG5cbmltcG9ydCBNb3ZpZXMgZnJvbSAncGFnZXMvTW92aWVzL01vdmllcyc7XG5cbmltcG9ydCBQcm9maWxlIGZyb20gJ3BhZ2VzL1Byb2ZpbGUvUHJvZmlsZSc7XG5cbmltcG9ydCBNb3ZpZURldGFpbHMgZnJvbSAncGFnZXMvTW92aWVEZXRhaWxzL01vdmllRGV0YWlscyc7XG5cbmNvbnN0IFJvdXRpbmcgPSAoKSA9PiAoXG4gIDxtYWluPlxuICAgIDxOYXYgLz5cbiAgICA8ZGl2PlxuICAgICAgPFJvdXRlIGV4YWN0IHBhdGg9XCIvXCIgY29tcG9uZW50PXtMYW5kaW5nfSAvPlxuICAgICAgPFJvdXRlXG4gICAgICAgIHBhdGg9XCIvYWJvdXRcIlxuICAgICAgICBjb21wb25lbnQ9e3Byb3BzID0+IDxBYm91dCB7Li4ucHJvcHN9IC8+fVxuICAgICAgLz5cbiAgICAgIDxSb3V0ZVxuICAgICAgICBwYXRoPVwiL21vdmllc1wiXG4gICAgICAgIGNvbXBvbmVudD17cHJvcHMgPT4gPE1vdmllcyB7Li4ucHJvcHN9IC8+fVxuICAgICAgLz5cbiAgICAgIDxSb3V0ZVxuICAgICAgICBwYXRoPVwiL1Byb2ZpbGVcIlxuICAgICAgICBjb21wb25lbnQ9e3Byb3BzID0+IDxQcm9maWxlIHsuLi5wcm9wc30gLz59XG4gICAgICAvPlxuICAgICAgPFJvdXRlXG4gICAgICAgIHBhdGg9XCIvZGV0YWlscy86aWRcIlxuICAgICAgICBjb21wb25lbnQ9e3Byb3BzID0+IDxNb3ZpZURldGFpbHMgey4uLnByb3BzfSAvPiB9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxGb290ZXIgLz5cbiAgPC9tYWluPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgUm91dGluZztcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgUm91dGluZyB9IGZyb20gJy4vUm91dGluZyc7IiwiLyoqXG4gKiBAbW9kdWxlIHN0b3JlXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlU3RvcmUsIGFwcGx5TWlkZGxld2FyZSwgY29tcG9zZSB9IGZyb20gJ3JlZHV4JztcbmltcG9ydCB0aHJvdHRsZSBmcm9tICdsb2Rhc2gvdGhyb3R0bGUnO1xuXG5pbXBvcnQgeyBzYXZlU3RhdGUsIGxvYWRTdGF0ZSB9IGZyb20gJy4vbG9jYWxTdG9yYWdlJztcbi8vIE1pZGRsZXdhcmUgaXMgdGhlIHN1Z2dlc3RlZCB3YXkgdG8gZXh0ZW5kIFJlZHV4IHdpdGggY3VzdG9tIGZ1bmN0aW9uYWxpdHkuXG5pbXBvcnQgbWlkZGxld2FyZXMgZnJvbSAnLi9taWRkbGV3YXJlcyc7XG4vLyBpbXBvcnQgYWxsIHJlZHVjZXJzXG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL3JlZHVjZXJzJztcbi8vIEdldCB0aGUgc3RhdGUgZnJvbSBsb2NhbFN0b3JhZ2VcbmNvbnN0IHBlcnNpc3RlZFN0YXRlID0gbG9hZFN0YXRlKCk7XG5jb25zdCBkZXZ0b29scyA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fID09PSAnZnVuY3Rpb24nICYmXG4gIC8vIHdoZW4gdGhlIGV4dGVuc2lvbiBpcyBub3QgaW5zdGFsbGVkLCB3ZeKAmXJlIHVzaW5nIFJlZHV4IGNvbXBvc2UgaGVyZS5cbiAgd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX0NPTVBPU0VfXyh7IGFjdGlvbnNCbGFja2xpc3Q6IFtdIH0pO1xuXG5jb25zdCBjb21wb3NlRW5oYW5jZXJzID0gZGV2dG9vbHMgfHwgY29tcG9zZTtcblxuY29uc3Qgc3RvcmUgPSBjcmVhdGVTdG9yZShcbiAgcmVkdWNlcixcbiAgcGVyc2lzdGVkU3RhdGUsXG4gIGNvbXBvc2VFbmhhbmNlcnMoYXBwbHlNaWRkbGV3YXJlKC4uLm1pZGRsZXdhcmVzKSkgLy8gdGhlIHRoaXJkIHBhcmFtZXRlciBpcyB3aGF0IGlzIGNhbGxlZCBhbiAnZW5oYW5jZXInXG4pO1xuXG4vLyBTYXZlIHRoZSBzdGF0ZSBhbnkgdGltZSB0aGUgc3RvcmUgc3RhdGUgY2hhbmdlc1xuc3RvcmUuc3Vic2NyaWJlKHRocm90dGxlKCgpID0+IHtcbiAgLy8gUmF0aGVyIHRoYW4gcGFzcyB0aGUgd2hvbGUgc3RhdGUgb2JqZWN0LCBqdXN0IHBhc3MgYW4gb2JqZWN0IHdpdGggdGhlIGtleSBmaWVsZCBmcm9tIHRoZSBzdGF0ZSBvYmplY3QuXG4gIHNhdmVTdGF0ZSh7XG4gICAgbW92aWU6IHN0b3JlLmdldFN0YXRlKCkubW92aWUsXG4gIH0pO1xufSwgMTAwMCkpO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBpZiAobW9kdWxlLmhvdCkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KCcuL3JlZHVjZXJzJywgKCkgPT5cbiAgICAgIHN0b3JlLnJlcGxhY2VSZWR1Y2VyKHJlcXVpcmUoJy4vcmVkdWNlcnMnKS5kZWZhdWx0KVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RvcmU7XG4iLCIvKiAoaWdub3JlZCkgKi8iLCIvKiAoaWdub3JlZCkgKi8iLCIvKiAoaWdub3JlZCkgKi8iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3gxQkE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdCQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7OztBQU5BO0FBQ0E7QUFTQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS0E7QUFBQTtBQUVBO0FBQ0E7QUFLQTtBQUFBO0FBQUE7QUFOQTtBQVNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2hCQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7Ozs7QUFVQTs7Ozs7QUFLQTtBQUdBOzs7Ozs7O0FBS0E7QUFFQTs7Ozs7OztBQUtBO0FBRUE7Ozs7Ozs7O0FBS0E7QUFDQTs7Ozs7O0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBRUE7QUFDQTtBQUhBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBRUE7Ozs7Ozs7QUFLQTtBQUVBOzs7Ozs7OztBQUtBO0FBRUE7QUFFQTtBQUVBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFFQTtBQUVBOzs7Ozs7O0FBS0E7QUFFQTs7Ozs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzRkE7Ozs7QUFJQTs7Ozs7OztBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQkE7QUFDQTtBQUpBOzs7QUFLQTs7Ozs7Ozs7Ozs7O0FDTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQUE7QUFYQTtBQUNBO0FBbUJBOzs7Ozs7Ozs7Ozs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBUkE7QUFDQTtBQWVBOzs7Ozs7Ozs7Ozs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTEE7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7Ozs7Ozs7Ozs7OztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFDQTs7O0FBQ0E7QUFFQTtBQUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFJQTtBQUFBO0FBT0E7OztBQWpDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQU1BO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFIQTs7Ozs7O0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBTUE7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBRkE7QUFNQTtBQUNBO0FBRkE7QUFHQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFGQTtBQVlBO0FBQUE7QUFNQTs7O0FBNUZBO0FBQ0E7QUErRkE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBREE7QUFBQTtBQUNBO0FBR0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbkhBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQUNBO0FBQ0E7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FBRUE7QUFKQTtBQUtBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBYUE7QUFFQTs7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBOzs7QUF2Q0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIQTs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNWQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7QUFLQTs7Ozs7QUFLQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBOzs7Ozs7Ozs7QUFLQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaERBOzs7Ozs7QUFNQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBSkE7QUFBQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1QkE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQThCQTtBQUVBO0FBRkE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUVBO0FBRkE7QUFLQTtBQUNBO0FBSEE7QUFDQTtBQUpBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFDQTtBQUhBO0FBQ0E7QUFWQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQXBEQTtBQXFEQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBUEE7Ozs7QUFRQTs7O0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJBOzs7Ozs7OztBQVFBO0FBQ0E7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaENBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUZBO0FBSUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBV0E7OztBQXhCQTtBQUNBO0FBMkJBOzs7Ozs7Ozs7Ozs7QUNsQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbERBO0FBQ0E7QUFxREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNyRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBSUE7QUFFQTtBQUFBO0FBTUE7OztBQWxCQTtBQUNBO0FBcUJBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7Ozs7OztBQUVBO0FBRUE7QUFDQTtBQUFBO0FBSUE7OztBQUVBOzs7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBREE7QUFRQTs7O0FBM0NBO0FBQ0E7QUErQ0E7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBSUE7QUFDQTs7Ozs7Ozs7Ozs7O0FDcEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUZBO0FBSUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFLQTs7O0FBM0JBO0FBQ0E7QUE4QkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7Ozs7QUFRQTs7Ozs7O0FBTUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN2QkE7Ozs7QUFJQTs7Ozs7O0FBTUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNkQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFWQTs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQVBBOzs7O0FBUUE7Ozs7OztBQU1BO0FBRUE7QUFFQTtBQUZBO0FBSUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFOQTs7OztBQU9BOzs7Ozs7QUFNQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFOQTs7OztBQVFBOzs7Ozs7QUFNQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFQQTs7OztBQVFBOzs7Ozs7QUFNQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2xCQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQUFBO0FBQUE7QUFDQTtBQVdBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUZBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQUtBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFqQkE7QUFDQTtBQXlCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDOUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0lBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7OztBQVFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1Q0E7Ozs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7O0FDQUE7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovLy8uL3NyYy9jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9BcHAuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9hY3Rpb25zL2dldENvdW50cmllcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2FjdGlvbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9hY3Rpb25zL21ha2VBY3Rpb25DcmVhdG9yLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvYXBpL2FwaS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2Fzc2V0cy9zY3NzL3N0eWxlcy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0hlYWRlci9IZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0hlYWRlci9IZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvTW92aWUvTW92aWUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllL01vdmllLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllQ2FyZC9Nb3ZpZUNhcmQuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL01vdmllQ2FyZC9Nb3ZpZUNhcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvTmF2L05hdi5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvTmF2L2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9TZWFyY2hlci9TZWFyY2hlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbnN0YW50cy9BY3Rpb25UeXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbnN0YW50cy9VcmxzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvbG9jYWxTdG9yYWdlLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvbWlkZGxld2FyZXMvYXBpTWlkZGxld2FyZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL21pZGRsZXdhcmVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvbWlkZGxld2FyZXMvbG9nZ2VyLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvQWJvdXQvQWJvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9BYm91dC9BYm91dC5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9Nb3ZpZURldGFpbHMvTW92aWVEZXRhaWxzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTW92aWVEZXRhaWxzL01vdmllRGV0YWlscy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTW92aWVzL01vdmllcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL01vdmllcy9Nb3ZpZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL1Byb2ZpbGUvUHJvZmlsZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JlZHVjZXJzL2NvdW50cmllcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JlZHVjZXJzL2NyZWF0ZVJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9yZWR1Y2Vycy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JlZHVjZXJzL21vdmllLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvbW92aWVzLmpzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcmVkdWNlcnMvc2VhcmNoVGVybS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JlZHVjZXJzL3NlbGVjdGVkQ291bnRyeS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JvdXRpbmcvUm91dGluZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3JvdXRpbmcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9zdG9yZS5qcyIsIndlYnBhY2s6Ly8vdXRpbCAoaWdub3JlZCkiLCJ3ZWJwYWNrOi8vL2J1ZmZlciAoaWdub3JlZCkiLCJ3ZWJwYWNrOi8vL2NyeXB0byAoaWdub3JlZCkiXSwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG4gXHRmdW5jdGlvbiB3ZWJwYWNrSnNvbnBDYWxsYmFjayhkYXRhKSB7XG4gXHRcdHZhciBjaHVua0lkcyA9IGRhdGFbMF07XG4gXHRcdHZhciBtb3JlTW9kdWxlcyA9IGRhdGFbMV07XG4gXHRcdHZhciBleGVjdXRlTW9kdWxlcyA9IGRhdGFbMl07XG5cbiBcdFx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG4gXHRcdC8vIHRoZW4gZmxhZyBhbGwgXCJjaHVua0lkc1wiIGFzIGxvYWRlZCBhbmQgZmlyZSBjYWxsYmFja1xuIFx0XHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwLCByZXNvbHZlcyA9IFtdO1xuIFx0XHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdGNodW5rSWQgPSBjaHVua0lkc1tpXTtcbiBcdFx0XHRpZihpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcbiBcdFx0XHRcdHJlc29sdmVzLnB1c2goaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdWzBdKTtcbiBcdFx0XHR9XG4gXHRcdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcbiBcdFx0fVxuIFx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbiBcdFx0XHRpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuIFx0XHRcdFx0bW9kdWxlc1ttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0fVxuIFx0XHR9XG4gXHRcdGlmKHBhcmVudEpzb25wRnVuY3Rpb24pIHBhcmVudEpzb25wRnVuY3Rpb24oZGF0YSk7XG5cbiBcdFx0d2hpbGUocmVzb2x2ZXMubGVuZ3RoKSB7XG4gXHRcdFx0cmVzb2x2ZXMuc2hpZnQoKSgpO1xuIFx0XHR9XG5cbiBcdFx0Ly8gYWRkIGVudHJ5IG1vZHVsZXMgZnJvbSBsb2FkZWQgY2h1bmsgdG8gZGVmZXJyZWQgbGlzdFxuIFx0XHRkZWZlcnJlZE1vZHVsZXMucHVzaC5hcHBseShkZWZlcnJlZE1vZHVsZXMsIGV4ZWN1dGVNb2R1bGVzIHx8IFtdKTtcblxuIFx0XHQvLyBydW4gZGVmZXJyZWQgbW9kdWxlcyB3aGVuIGFsbCBjaHVua3MgcmVhZHlcbiBcdFx0cmV0dXJuIGNoZWNrRGVmZXJyZWRNb2R1bGVzKCk7XG4gXHR9O1xuIFx0ZnVuY3Rpb24gY2hlY2tEZWZlcnJlZE1vZHVsZXMoKSB7XG4gXHRcdHZhciByZXN1bHQ7XG4gXHRcdGZvcih2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZE1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHR2YXIgZGVmZXJyZWRNb2R1bGUgPSBkZWZlcnJlZE1vZHVsZXNbaV07XG4gXHRcdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG4gXHRcdFx0Zm9yKHZhciBqID0gMTsgaiA8IGRlZmVycmVkTW9kdWxlLmxlbmd0aDsgaisrKSB7XG4gXHRcdFx0XHR2YXIgZGVwSWQgPSBkZWZlcnJlZE1vZHVsZVtqXTtcbiBcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rc1tkZXBJZF0gIT09IDApIGZ1bGZpbGxlZCA9IGZhbHNlO1xuIFx0XHRcdH1cbiBcdFx0XHRpZihmdWxmaWxsZWQpIHtcbiBcdFx0XHRcdGRlZmVycmVkTW9kdWxlcy5zcGxpY2UoaS0tLCAxKTtcbiBcdFx0XHRcdHJlc3VsdCA9IF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gZGVmZXJyZWRNb2R1bGVbMF0pO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRyZXR1cm4gcmVzdWx0O1xuIFx0fVxuIFx0ZnVuY3Rpb24gaG90RGlzcG9zZUNodW5rKGNodW5rSWQpIHtcbiBcdFx0ZGVsZXRlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbiBcdH1cbiBcdHZhciBwYXJlbnRIb3RVcGRhdGVDYWxsYmFjayA9IHdpbmRvd1tcIndlYnBhY2tIb3RVcGRhdGVcIl07XG4gXHR3aW5kb3dbXCJ3ZWJwYWNrSG90VXBkYXRlXCJdID0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHRmdW5jdGlvbiB3ZWJwYWNrSG90VXBkYXRlQ2FsbGJhY2soY2h1bmtJZCwgbW9yZU1vZHVsZXMpIHtcbiBcdFx0aG90QWRkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgbW9yZU1vZHVsZXMpO1xuIFx0XHRpZiAocGFyZW50SG90VXBkYXRlQ2FsbGJhY2spIHBhcmVudEhvdFVwZGF0ZUNhbGxiYWNrKGNodW5rSWQsIG1vcmVNb2R1bGVzKTtcbiBcdH0gO1xuXG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdERvd25sb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCkge1xuIFx0XHR2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiBcdFx0c2NyaXB0LmNoYXJzZXQgPSBcInV0Zi04XCI7XG4gXHRcdHNjcmlwdC5zcmMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBcInVwZGF0ZXMvXCIgKyBjaHVua0lkICsgXCIuXCIgKyBob3RDdXJyZW50SGFzaCArIFwiLmhvdC11cGRhdGUuanNcIjtcbiBcdFx0aWYgKG51bGwpIHNjcmlwdC5jcm9zc09yaWdpbiA9IG51bGw7XG4gXHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiBcdH1cblxuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHRmdW5jdGlvbiBob3REb3dubG9hZE1hbmlmZXN0KHJlcXVlc3RUaW1lb3V0KSB7XG4gXHRcdHJlcXVlc3RUaW1lb3V0ID0gcmVxdWVzdFRpbWVvdXQgfHwgMTAwMDA7XG4gXHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiBcdFx0XHRpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gXHRcdFx0XHRyZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIk5vIGJyb3dzZXIgc3VwcG9ydFwiKSk7XG4gXHRcdFx0fVxuIFx0XHRcdHRyeSB7XG4gXHRcdFx0XHR2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuIFx0XHRcdFx0dmFyIHJlcXVlc3RQYXRoID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgXCJ1cGRhdGVzL1wiICsgaG90Q3VycmVudEhhc2ggKyBcIi5ob3QtdXBkYXRlLmpzb25cIjtcbiBcdFx0XHRcdHJlcXVlc3Qub3BlbihcIkdFVFwiLCByZXF1ZXN0UGF0aCwgdHJ1ZSk7XG4gXHRcdFx0XHRyZXF1ZXN0LnRpbWVvdXQgPSByZXF1ZXN0VGltZW91dDtcbiBcdFx0XHRcdHJlcXVlc3Quc2VuZChudWxsKTtcbiBcdFx0XHR9IGNhdGNoIChlcnIpIHtcbiBcdFx0XHRcdHJldHVybiByZWplY3QoZXJyKTtcbiBcdFx0XHR9XG4gXHRcdFx0cmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiBcdFx0XHRcdGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHJldHVybjtcbiBcdFx0XHRcdGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMCkge1xuIFx0XHRcdFx0XHQvLyB0aW1lb3V0XG4gXHRcdFx0XHRcdHJlamVjdChcbiBcdFx0XHRcdFx0XHRuZXcgRXJyb3IoXCJNYW5pZmVzdCByZXF1ZXN0IHRvIFwiICsgcmVxdWVzdFBhdGggKyBcIiB0aW1lZCBvdXQuXCIpXG4gXHRcdFx0XHRcdCk7XG4gXHRcdFx0XHR9IGVsc2UgaWYgKHJlcXVlc3Quc3RhdHVzID09PSA0MDQpIHtcbiBcdFx0XHRcdFx0Ly8gbm8gdXBkYXRlIGF2YWlsYWJsZVxuIFx0XHRcdFx0XHRyZXNvbHZlKCk7XG4gXHRcdFx0XHR9IGVsc2UgaWYgKHJlcXVlc3Quc3RhdHVzICE9PSAyMDAgJiYgcmVxdWVzdC5zdGF0dXMgIT09IDMwNCkge1xuIFx0XHRcdFx0XHQvLyBvdGhlciBmYWlsdXJlXG4gXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoXCJNYW5pZmVzdCByZXF1ZXN0IHRvIFwiICsgcmVxdWVzdFBhdGggKyBcIiBmYWlsZWQuXCIpKTtcbiBcdFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRcdC8vIHN1Y2Nlc3NcbiBcdFx0XHRcdFx0dHJ5IHtcbiBcdFx0XHRcdFx0XHR2YXIgdXBkYXRlID0gSlNPTi5wYXJzZShyZXF1ZXN0LnJlc3BvbnNlVGV4dCk7XG4gXHRcdFx0XHRcdH0gY2F0Y2ggKGUpIHtcbiBcdFx0XHRcdFx0XHRyZWplY3QoZSk7XG4gXHRcdFx0XHRcdFx0cmV0dXJuO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdHJlc29sdmUodXBkYXRlKTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9O1xuIFx0XHR9KTtcbiBcdH1cblxuIFx0dmFyIGhvdEFwcGx5T25VcGRhdGUgPSB0cnVlO1xuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHR2YXIgaG90Q3VycmVudEhhc2ggPSBcIjViMzMyOWZjMTA1MzI5MTRiZDY0XCI7XG4gXHR2YXIgaG90UmVxdWVzdFRpbWVvdXQgPSAxMDAwMDtcbiBcdHZhciBob3RDdXJyZW50TW9kdWxlRGF0YSA9IHt9O1xuIFx0dmFyIGhvdEN1cnJlbnRDaGlsZE1vZHVsZTtcbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0dmFyIGhvdEN1cnJlbnRQYXJlbnRzID0gW107XG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdHZhciBob3RDdXJyZW50UGFyZW50c1RlbXAgPSBbXTtcblxuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHRmdW5jdGlvbiBob3RDcmVhdGVSZXF1aXJlKG1vZHVsZUlkKSB7XG4gXHRcdHZhciBtZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRpZiAoIW1lKSByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXztcbiBcdFx0dmFyIGZuID0gZnVuY3Rpb24ocmVxdWVzdCkge1xuIFx0XHRcdGlmIChtZS5ob3QuYWN0aXZlKSB7XG4gXHRcdFx0XHRpZiAoaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XSkge1xuIFx0XHRcdFx0XHRpZiAoaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzLmluZGV4T2YobW9kdWxlSWQpID09PSAtMSkge1xuIFx0XHRcdFx0XHRcdGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0ucGFyZW50cy5wdXNoKG1vZHVsZUlkKTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fSBlbHNlIHtcbiBcdFx0XHRcdFx0aG90Q3VycmVudFBhcmVudHMgPSBbbW9kdWxlSWRdO1xuIFx0XHRcdFx0XHRob3RDdXJyZW50Q2hpbGRNb2R1bGUgPSByZXF1ZXN0O1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0aWYgKG1lLmNoaWxkcmVuLmluZGV4T2YocmVxdWVzdCkgPT09IC0xKSB7XG4gXHRcdFx0XHRcdG1lLmNoaWxkcmVuLnB1c2gocmVxdWVzdCk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fSBlbHNlIHtcbiBcdFx0XHRcdGNvbnNvbGUud2FybihcbiBcdFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgK1xuIFx0XHRcdFx0XHRcdHJlcXVlc3QgK1xuIFx0XHRcdFx0XHRcdFwiKSBmcm9tIGRpc3Bvc2VkIG1vZHVsZSBcIiArXG4gXHRcdFx0XHRcdFx0bW9kdWxlSWRcbiBcdFx0XHRcdCk7XG4gXHRcdFx0XHRob3RDdXJyZW50UGFyZW50cyA9IFtdO1xuIFx0XHRcdH1cbiBcdFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhyZXF1ZXN0KTtcbiBcdFx0fTtcbiBcdFx0dmFyIE9iamVjdEZhY3RvcnkgPSBmdW5jdGlvbiBPYmplY3RGYWN0b3J5KG5hbWUpIHtcbiBcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG4gXHRcdFx0XHRcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fW25hbWVdO1xuIFx0XHRcdFx0fSxcbiBcdFx0XHRcdHNldDogZnVuY3Rpb24odmFsdWUpIHtcbiBcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfX1tuYW1lXSA9IHZhbHVlO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH07XG4gXHRcdH07XG4gXHRcdGZvciAodmFyIG5hbWUgaW4gX193ZWJwYWNrX3JlcXVpcmVfXykge1xuIFx0XHRcdGlmIChcbiBcdFx0XHRcdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfX3dlYnBhY2tfcmVxdWlyZV9fLCBuYW1lKSAmJlxuIFx0XHRcdFx0bmFtZSAhPT0gXCJlXCIgJiZcbiBcdFx0XHRcdG5hbWUgIT09IFwidFwiXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4sIG5hbWUsIE9iamVjdEZhY3RvcnkobmFtZSkpO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRmbi5lID0gZnVuY3Rpb24oY2h1bmtJZCkge1xuIFx0XHRcdGlmIChob3RTdGF0dXMgPT09IFwicmVhZHlcIikgaG90U2V0U3RhdHVzKFwicHJlcGFyZVwiKTtcbiBcdFx0XHRob3RDaHVua3NMb2FkaW5nKys7XG4gXHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZShjaHVua0lkKS50aGVuKGZpbmlzaENodW5rTG9hZGluZywgZnVuY3Rpb24oZXJyKSB7XG4gXHRcdFx0XHRmaW5pc2hDaHVua0xvYWRpbmcoKTtcbiBcdFx0XHRcdHRocm93IGVycjtcbiBcdFx0XHR9KTtcblxuIFx0XHRcdGZ1bmN0aW9uIGZpbmlzaENodW5rTG9hZGluZygpIHtcbiBcdFx0XHRcdGhvdENodW5rc0xvYWRpbmctLTtcbiBcdFx0XHRcdGlmIChob3RTdGF0dXMgPT09IFwicHJlcGFyZVwiKSB7XG4gXHRcdFx0XHRcdGlmICghaG90V2FpdGluZ0ZpbGVzTWFwW2NodW5rSWRdKSB7XG4gXHRcdFx0XHRcdFx0aG90RW5zdXJlVXBkYXRlQ2h1bmsoY2h1bmtJZCk7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0aWYgKGhvdENodW5rc0xvYWRpbmcgPT09IDAgJiYgaG90V2FpdGluZ0ZpbGVzID09PSAwKSB7XG4gXHRcdFx0XHRcdFx0aG90VXBkYXRlRG93bmxvYWRlZCgpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9O1xuIFx0XHRmbi50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0XHRpZiAobW9kZSAmIDEpIHZhbHVlID0gZm4odmFsdWUpO1xuIFx0XHRcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLnQodmFsdWUsIG1vZGUgJiB+MSk7XG4gXHRcdH07XG4gXHRcdHJldHVybiBmbjtcbiBcdH1cblxuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHRmdW5jdGlvbiBob3RDcmVhdGVNb2R1bGUobW9kdWxlSWQpIHtcbiBcdFx0dmFyIGhvdCA9IHtcbiBcdFx0XHQvLyBwcml2YXRlIHN0dWZmXG4gXHRcdFx0X2FjY2VwdGVkRGVwZW5kZW5jaWVzOiB7fSxcbiBcdFx0XHRfZGVjbGluZWREZXBlbmRlbmNpZXM6IHt9LFxuIFx0XHRcdF9zZWxmQWNjZXB0ZWQ6IGZhbHNlLFxuIFx0XHRcdF9zZWxmRGVjbGluZWQ6IGZhbHNlLFxuIFx0XHRcdF9kaXNwb3NlSGFuZGxlcnM6IFtdLFxuIFx0XHRcdF9tYWluOiBob3RDdXJyZW50Q2hpbGRNb2R1bGUgIT09IG1vZHVsZUlkLFxuXG4gXHRcdFx0Ly8gTW9kdWxlIEFQSVxuIFx0XHRcdGFjdGl2ZTogdHJ1ZSxcbiBcdFx0XHRhY2NlcHQ6IGZ1bmN0aW9uKGRlcCwgY2FsbGJhY2spIHtcbiBcdFx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmQWNjZXB0ZWQgPSB0cnVlO1xuIFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJmdW5jdGlvblwiKSBob3QuX3NlbGZBY2NlcHRlZCA9IGRlcDtcbiBcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwib2JqZWN0XCIpXG4gXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKVxuIFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwW2ldXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkge307XG4gXHRcdFx0XHRlbHNlIGhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkge307XG4gXHRcdFx0fSxcbiBcdFx0XHRkZWNsaW5lOiBmdW5jdGlvbihkZXApIHtcbiBcdFx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmRGVjbGluZWQgPSB0cnVlO1xuIFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIilcbiBcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZXAubGVuZ3RoOyBpKyspXG4gXHRcdFx0XHRcdFx0aG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1tkZXBbaV1dID0gdHJ1ZTtcbiBcdFx0XHRcdGVsc2UgaG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1tkZXBdID0gdHJ1ZTtcbiBcdFx0XHR9LFxuIFx0XHRcdGRpc3Bvc2U6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gXHRcdFx0XHRob3QuX2Rpc3Bvc2VIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTtcbiBcdFx0XHR9LFxuIFx0XHRcdGFkZERpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuIFx0XHRcdFx0aG90Ll9kaXNwb3NlSGFuZGxlcnMucHVzaChjYWxsYmFjayk7XG4gXHRcdFx0fSxcbiBcdFx0XHRyZW1vdmVEaXNwb3NlSGFuZGxlcjogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiBcdFx0XHRcdHZhciBpZHggPSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5pbmRleE9mKGNhbGxiYWNrKTtcbiBcdFx0XHRcdGlmIChpZHggPj0gMCkgaG90Ll9kaXNwb3NlSGFuZGxlcnMuc3BsaWNlKGlkeCwgMSk7XG4gXHRcdFx0fSxcblxuIFx0XHRcdC8vIE1hbmFnZW1lbnQgQVBJXG4gXHRcdFx0Y2hlY2s6IGhvdENoZWNrLFxuIFx0XHRcdGFwcGx5OiBob3RBcHBseSxcbiBcdFx0XHRzdGF0dXM6IGZ1bmN0aW9uKGwpIHtcbiBcdFx0XHRcdGlmICghbCkgcmV0dXJuIGhvdFN0YXR1cztcbiBcdFx0XHRcdGhvdFN0YXR1c0hhbmRsZXJzLnB1c2gobCk7XG4gXHRcdFx0fSxcbiBcdFx0XHRhZGRTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbihsKSB7XG4gXHRcdFx0XHRob3RTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuIFx0XHRcdH0sXG4gXHRcdFx0cmVtb3ZlU3RhdHVzSGFuZGxlcjogZnVuY3Rpb24obCkge1xuIFx0XHRcdFx0dmFyIGlkeCA9IGhvdFN0YXR1c0hhbmRsZXJzLmluZGV4T2YobCk7XG4gXHRcdFx0XHRpZiAoaWR4ID49IDApIGhvdFN0YXR1c0hhbmRsZXJzLnNwbGljZShpZHgsIDEpO1xuIFx0XHRcdH0sXG5cbiBcdFx0XHQvL2luaGVyaXQgZnJvbSBwcmV2aW91cyBkaXNwb3NlIGNhbGxcbiBcdFx0XHRkYXRhOiBob3RDdXJyZW50TW9kdWxlRGF0YVttb2R1bGVJZF1cbiBcdFx0fTtcbiBcdFx0aG90Q3VycmVudENoaWxkTW9kdWxlID0gdW5kZWZpbmVkO1xuIFx0XHRyZXR1cm4gaG90O1xuIFx0fVxuXG4gXHR2YXIgaG90U3RhdHVzSGFuZGxlcnMgPSBbXTtcbiBcdHZhciBob3RTdGF0dXMgPSBcImlkbGVcIjtcblxuIFx0ZnVuY3Rpb24gaG90U2V0U3RhdHVzKG5ld1N0YXR1cykge1xuIFx0XHRob3RTdGF0dXMgPSBuZXdTdGF0dXM7XG4gXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgaG90U3RhdHVzSGFuZGxlcnMubGVuZ3RoOyBpKyspXG4gXHRcdFx0aG90U3RhdHVzSGFuZGxlcnNbaV0uY2FsbChudWxsLCBuZXdTdGF0dXMpO1xuIFx0fVxuXG4gXHQvLyB3aGlsZSBkb3dubG9hZGluZ1xuIFx0dmFyIGhvdFdhaXRpbmdGaWxlcyA9IDA7XG4gXHR2YXIgaG90Q2h1bmtzTG9hZGluZyA9IDA7XG4gXHR2YXIgaG90V2FpdGluZ0ZpbGVzTWFwID0ge307XG4gXHR2YXIgaG90UmVxdWVzdGVkRmlsZXNNYXAgPSB7fTtcbiBcdHZhciBob3RBdmFpbGFibGVGaWxlc01hcCA9IHt9O1xuIFx0dmFyIGhvdERlZmVycmVkO1xuXG4gXHQvLyBUaGUgdXBkYXRlIGluZm9cbiBcdHZhciBob3RVcGRhdGUsIGhvdFVwZGF0ZU5ld0hhc2g7XG5cbiBcdGZ1bmN0aW9uIHRvTW9kdWxlSWQoaWQpIHtcbiBcdFx0dmFyIGlzTnVtYmVyID0gK2lkICsgXCJcIiA9PT0gaWQ7XG4gXHRcdHJldHVybiBpc051bWJlciA/ICtpZCA6IGlkO1xuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RDaGVjayhhcHBseSkge1xuIFx0XHRpZiAoaG90U3RhdHVzICE9PSBcImlkbGVcIikge1xuIFx0XHRcdHRocm93IG5ldyBFcnJvcihcImNoZWNrKCkgaXMgb25seSBhbGxvd2VkIGluIGlkbGUgc3RhdHVzXCIpO1xuIFx0XHR9XG4gXHRcdGhvdEFwcGx5T25VcGRhdGUgPSBhcHBseTtcbiBcdFx0aG90U2V0U3RhdHVzKFwiY2hlY2tcIik7XG4gXHRcdHJldHVybiBob3REb3dubG9hZE1hbmlmZXN0KGhvdFJlcXVlc3RUaW1lb3V0KS50aGVuKGZ1bmN0aW9uKHVwZGF0ZSkge1xuIFx0XHRcdGlmICghdXBkYXRlKSB7XG4gXHRcdFx0XHRob3RTZXRTdGF0dXMoXCJpZGxlXCIpO1xuIFx0XHRcdFx0cmV0dXJuIG51bGw7XG4gXHRcdFx0fVxuIFx0XHRcdGhvdFJlcXVlc3RlZEZpbGVzTWFwID0ge307XG4gXHRcdFx0aG90V2FpdGluZ0ZpbGVzTWFwID0ge307XG4gXHRcdFx0aG90QXZhaWxhYmxlRmlsZXNNYXAgPSB1cGRhdGUuYztcbiBcdFx0XHRob3RVcGRhdGVOZXdIYXNoID0gdXBkYXRlLmg7XG5cbiBcdFx0XHRob3RTZXRTdGF0dXMoXCJwcmVwYXJlXCIpO1xuIFx0XHRcdHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gXHRcdFx0XHRob3REZWZlcnJlZCA9IHtcbiBcdFx0XHRcdFx0cmVzb2x2ZTogcmVzb2x2ZSxcbiBcdFx0XHRcdFx0cmVqZWN0OiByZWplY3RcbiBcdFx0XHRcdH07XG4gXHRcdFx0fSk7XG4gXHRcdFx0aG90VXBkYXRlID0ge307XG4gXHRcdFx0Zm9yKHZhciBjaHVua0lkIGluIGluc3RhbGxlZENodW5rcylcbiBcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9uZS1ibG9ja3NcbiBcdFx0XHR7XG4gXHRcdFx0XHQvKmdsb2JhbHMgY2h1bmtJZCAqL1xuIFx0XHRcdFx0aG90RW5zdXJlVXBkYXRlQ2h1bmsoY2h1bmtJZCk7XG4gXHRcdFx0fVxuIFx0XHRcdGlmIChcbiBcdFx0XHRcdGhvdFN0YXR1cyA9PT0gXCJwcmVwYXJlXCIgJiZcbiBcdFx0XHRcdGhvdENodW5rc0xvYWRpbmcgPT09IDAgJiZcbiBcdFx0XHRcdGhvdFdhaXRpbmdGaWxlcyA9PT0gMFxuIFx0XHRcdCkge1xuIFx0XHRcdFx0aG90VXBkYXRlRG93bmxvYWRlZCgpO1xuIFx0XHRcdH1cbiBcdFx0XHRyZXR1cm4gcHJvbWlzZTtcbiBcdFx0fSk7XG4gXHR9XG5cbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90QWRkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgbW9yZU1vZHVsZXMpIHtcbiBcdFx0aWYgKCFob3RBdmFpbGFibGVGaWxlc01hcFtjaHVua0lkXSB8fCAhaG90UmVxdWVzdGVkRmlsZXNNYXBbY2h1bmtJZF0pXG4gXHRcdFx0cmV0dXJuO1xuIFx0XHRob3RSZXF1ZXN0ZWRGaWxlc01hcFtjaHVua0lkXSA9IGZhbHNlO1xuIFx0XHRmb3IgKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuIFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuIFx0XHRcdFx0aG90VXBkYXRlW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHR9XG4gXHRcdH1cbiBcdFx0aWYgKC0taG90V2FpdGluZ0ZpbGVzID09PSAwICYmIGhvdENodW5rc0xvYWRpbmcgPT09IDApIHtcbiBcdFx0XHRob3RVcGRhdGVEb3dubG9hZGVkKCk7XG4gXHRcdH1cbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90RW5zdXJlVXBkYXRlQ2h1bmsoY2h1bmtJZCkge1xuIFx0XHRpZiAoIWhvdEF2YWlsYWJsZUZpbGVzTWFwW2NodW5rSWRdKSB7XG4gXHRcdFx0aG90V2FpdGluZ0ZpbGVzTWFwW2NodW5rSWRdID0gdHJ1ZTtcbiBcdFx0fSBlbHNlIHtcbiBcdFx0XHRob3RSZXF1ZXN0ZWRGaWxlc01hcFtjaHVua0lkXSA9IHRydWU7XG4gXHRcdFx0aG90V2FpdGluZ0ZpbGVzKys7XG4gXHRcdFx0aG90RG93bmxvYWRVcGRhdGVDaHVuayhjaHVua0lkKTtcbiBcdFx0fVxuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RVcGRhdGVEb3dubG9hZGVkKCkge1xuIFx0XHRob3RTZXRTdGF0dXMoXCJyZWFkeVwiKTtcbiBcdFx0dmFyIGRlZmVycmVkID0gaG90RGVmZXJyZWQ7XG4gXHRcdGhvdERlZmVycmVkID0gbnVsbDtcbiBcdFx0aWYgKCFkZWZlcnJlZCkgcmV0dXJuO1xuIFx0XHRpZiAoaG90QXBwbHlPblVwZGF0ZSkge1xuIFx0XHRcdC8vIFdyYXAgZGVmZXJyZWQgb2JqZWN0IGluIFByb21pc2UgdG8gbWFyayBpdCBhcyBhIHdlbGwtaGFuZGxlZCBQcm9taXNlIHRvXG4gXHRcdFx0Ly8gYXZvaWQgdHJpZ2dlcmluZyB1bmNhdWdodCBleGNlcHRpb24gd2FybmluZyBpbiBDaHJvbWUuXG4gXHRcdFx0Ly8gU2VlIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ2NTY2NlxuIFx0XHRcdFByb21pc2UucmVzb2x2ZSgpXG4gXHRcdFx0XHQudGhlbihmdW5jdGlvbigpIHtcbiBcdFx0XHRcdFx0cmV0dXJuIGhvdEFwcGx5KGhvdEFwcGx5T25VcGRhdGUpO1xuIFx0XHRcdFx0fSlcbiBcdFx0XHRcdC50aGVuKFxuIFx0XHRcdFx0XHRmdW5jdGlvbihyZXN1bHQpIHtcbiBcdFx0XHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gXHRcdFx0XHRcdH0sXG4gXHRcdFx0XHRcdGZ1bmN0aW9uKGVycikge1xuIFx0XHRcdFx0XHRcdGRlZmVycmVkLnJlamVjdChlcnIpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHQpO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbiBcdFx0XHRmb3IgKHZhciBpZCBpbiBob3RVcGRhdGUpIHtcbiBcdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaG90VXBkYXRlLCBpZCkpIHtcbiBcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2godG9Nb2R1bGVJZChpZCkpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0XHRkZWZlcnJlZC5yZXNvbHZlKG91dGRhdGVkTW9kdWxlcyk7XG4gXHRcdH1cbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90QXBwbHkob3B0aW9ucykge1xuIFx0XHRpZiAoaG90U3RhdHVzICE9PSBcInJlYWR5XCIpXG4gXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiYXBwbHkoKSBpcyBvbmx5IGFsbG93ZWQgaW4gcmVhZHkgc3RhdHVzXCIpO1xuIFx0XHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuIFx0XHR2YXIgY2I7XG4gXHRcdHZhciBpO1xuIFx0XHR2YXIgajtcbiBcdFx0dmFyIG1vZHVsZTtcbiBcdFx0dmFyIG1vZHVsZUlkO1xuXG4gXHRcdGZ1bmN0aW9uIGdldEFmZmVjdGVkU3R1ZmYodXBkYXRlTW9kdWxlSWQpIHtcbiBcdFx0XHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW3VwZGF0ZU1vZHVsZUlkXTtcbiBcdFx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcblxuIFx0XHRcdHZhciBxdWV1ZSA9IG91dGRhdGVkTW9kdWxlcy5zbGljZSgpLm1hcChmdW5jdGlvbihpZCkge1xuIFx0XHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdFx0Y2hhaW46IFtpZF0sXG4gXHRcdFx0XHRcdGlkOiBpZFxuIFx0XHRcdFx0fTtcbiBcdFx0XHR9KTtcbiBcdFx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuIFx0XHRcdFx0dmFyIHF1ZXVlSXRlbSA9IHF1ZXVlLnBvcCgpO1xuIFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gcXVldWVJdGVtLmlkO1xuIFx0XHRcdFx0dmFyIGNoYWluID0gcXVldWVJdGVtLmNoYWluO1xuIFx0XHRcdFx0bW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRpZiAoIW1vZHVsZSB8fCBtb2R1bGUuaG90Ll9zZWxmQWNjZXB0ZWQpIGNvbnRpbnVlO1xuIFx0XHRcdFx0aWYgKG1vZHVsZS5ob3QuX3NlbGZEZWNsaW5lZCkge1xuIFx0XHRcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0XHRcdHR5cGU6IFwic2VsZi1kZWNsaW5lZFwiLFxuIFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbiBcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbiBcdFx0XHRcdFx0fTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGlmIChtb2R1bGUuaG90Ll9tYWluKSB7XG4gXHRcdFx0XHRcdHJldHVybiB7XG4gXHRcdFx0XHRcdFx0dHlwZTogXCJ1bmFjY2VwdGVkXCIsXG4gXHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLFxuIFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZFxuIFx0XHRcdFx0XHR9O1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtb2R1bGUucGFyZW50cy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdFx0XHR2YXIgcGFyZW50SWQgPSBtb2R1bGUucGFyZW50c1tpXTtcbiBcdFx0XHRcdFx0dmFyIHBhcmVudCA9IGluc3RhbGxlZE1vZHVsZXNbcGFyZW50SWRdO1xuIFx0XHRcdFx0XHRpZiAoIXBhcmVudCkgY29udGludWU7XG4gXHRcdFx0XHRcdGlmIChwYXJlbnQuaG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJkZWNsaW5lZFwiLFxuIFx0XHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLmNvbmNhdChbcGFyZW50SWRdKSxcbiBcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZCxcbiBcdFx0XHRcdFx0XHRcdHBhcmVudElkOiBwYXJlbnRJZFxuIFx0XHRcdFx0XHRcdH07XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0aWYgKG91dGRhdGVkTW9kdWxlcy5pbmRleE9mKHBhcmVudElkKSAhPT0gLTEpIGNvbnRpbnVlO1xuIFx0XHRcdFx0XHRpZiAocGFyZW50LmhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0pXG4gXHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0gPSBbXTtcbiBcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0sIFttb2R1bGVJZF0pO1xuIFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGRlbGV0ZSBvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF07XG4gXHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5wdXNoKHBhcmVudElkKTtcbiBcdFx0XHRcdFx0cXVldWUucHVzaCh7XG4gXHRcdFx0XHRcdFx0Y2hhaW46IGNoYWluLmNvbmNhdChbcGFyZW50SWRdKSxcbiBcdFx0XHRcdFx0XHRpZDogcGFyZW50SWRcbiBcdFx0XHRcdFx0fSk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuXG4gXHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdHR5cGU6IFwiYWNjZXB0ZWRcIixcbiBcdFx0XHRcdG1vZHVsZUlkOiB1cGRhdGVNb2R1bGVJZCxcbiBcdFx0XHRcdG91dGRhdGVkTW9kdWxlczogb3V0ZGF0ZWRNb2R1bGVzLFxuIFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXM6IG91dGRhdGVkRGVwZW5kZW5jaWVzXG4gXHRcdFx0fTtcbiBcdFx0fVxuXG4gXHRcdGZ1bmN0aW9uIGFkZEFsbFRvU2V0KGEsIGIpIHtcbiBcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGIubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRcdHZhciBpdGVtID0gYltpXTtcbiBcdFx0XHRcdGlmIChhLmluZGV4T2YoaXRlbSkgPT09IC0xKSBhLnB1c2goaXRlbSk7XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gYXQgYmVnaW4gYWxsIHVwZGF0ZXMgbW9kdWxlcyBhcmUgb3V0ZGF0ZWRcbiBcdFx0Ly8gdGhlIFwib3V0ZGF0ZWRcIiBzdGF0dXMgY2FuIHByb3BhZ2F0ZSB0byBwYXJlbnRzIGlmIHRoZXkgZG9uJ3QgYWNjZXB0IHRoZSBjaGlsZHJlblxuIFx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcbiBcdFx0dmFyIG91dGRhdGVkTW9kdWxlcyA9IFtdO1xuIFx0XHR2YXIgYXBwbGllZFVwZGF0ZSA9IHt9O1xuXG4gXHRcdHZhciB3YXJuVW5leHBlY3RlZFJlcXVpcmUgPSBmdW5jdGlvbiB3YXJuVW5leHBlY3RlZFJlcXVpcmUoKSB7XG4gXHRcdFx0Y29uc29sZS53YXJuKFxuIFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgKyByZXN1bHQubW9kdWxlSWQgKyBcIikgdG8gZGlzcG9zZWQgbW9kdWxlXCJcbiBcdFx0XHQpO1xuIFx0XHR9O1xuXG4gXHRcdGZvciAodmFyIGlkIGluIGhvdFVwZGF0ZSkge1xuIFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaG90VXBkYXRlLCBpZCkpIHtcbiBcdFx0XHRcdG1vZHVsZUlkID0gdG9Nb2R1bGVJZChpZCk7XG4gXHRcdFx0XHQvKiogQHR5cGUge1RPRE99ICovXG4gXHRcdFx0XHR2YXIgcmVzdWx0O1xuIFx0XHRcdFx0aWYgKGhvdFVwZGF0ZVtpZF0pIHtcbiBcdFx0XHRcdFx0cmVzdWx0ID0gZ2V0QWZmZWN0ZWRTdHVmZihtb2R1bGVJZCk7XG4gXHRcdFx0XHR9IGVsc2Uge1xuIFx0XHRcdFx0XHRyZXN1bHQgPSB7XG4gXHRcdFx0XHRcdFx0dHlwZTogXCJkaXNwb3NlZFwiLFxuIFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBpZFxuIFx0XHRcdFx0XHR9O1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0LyoqIEB0eXBlIHtFcnJvcnxmYWxzZX0gKi9cbiBcdFx0XHRcdHZhciBhYm9ydEVycm9yID0gZmFsc2U7XG4gXHRcdFx0XHR2YXIgZG9BcHBseSA9IGZhbHNlO1xuIFx0XHRcdFx0dmFyIGRvRGlzcG9zZSA9IGZhbHNlO1xuIFx0XHRcdFx0dmFyIGNoYWluSW5mbyA9IFwiXCI7XG4gXHRcdFx0XHRpZiAocmVzdWx0LmNoYWluKSB7XG4gXHRcdFx0XHRcdGNoYWluSW5mbyA9IFwiXFxuVXBkYXRlIHByb3BhZ2F0aW9uOiBcIiArIHJlc3VsdC5jaGFpbi5qb2luKFwiIC0+IFwiKTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdHN3aXRjaCAocmVzdWx0LnR5cGUpIHtcbiBcdFx0XHRcdFx0Y2FzZSBcInNlbGYtZGVjbGluZWRcIjpcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRlY2xpbmVkKSBvcHRpb25zLm9uRGVjbGluZWQocmVzdWx0KTtcbiBcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRGVjbGluZWQpXG4gXHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuIFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBvZiBzZWxmIGRlY2xpbmU6IFwiICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdGNoYWluSW5mb1xuIFx0XHRcdFx0XHRcdFx0KTtcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdFx0Y2FzZSBcImRlY2xpbmVkXCI6XG4gXHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EZWNsaW5lZCkgb3B0aW9ucy5vbkRlY2xpbmVkKHJlc3VsdCk7XG4gXHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuIFx0XHRcdFx0XHRcdFx0YWJvcnRFcnJvciA9IG5ldyBFcnJvcihcbiBcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2Ugb2YgZGVjbGluZWQgZGVwZW5kZW5jeTogXCIgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5tb2R1bGVJZCArXG4gXHRcdFx0XHRcdFx0XHRcdFx0XCIgaW4gXCIgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5wYXJlbnRJZCArXG4gXHRcdFx0XHRcdFx0XHRcdFx0Y2hhaW5JbmZvXG4gXHRcdFx0XHRcdFx0XHQpO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRjYXNlIFwidW5hY2NlcHRlZFwiOlxuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uVW5hY2NlcHRlZCkgb3B0aW9ucy5vblVuYWNjZXB0ZWQocmVzdWx0KTtcbiBcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlVW5hY2NlcHRlZClcbiBcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4gXHRcdFx0XHRcdFx0XHRcdFwiQWJvcnRlZCBiZWNhdXNlIFwiICsgbW9kdWxlSWQgKyBcIiBpcyBub3QgYWNjZXB0ZWRcIiArIGNoYWluSW5mb1xuIFx0XHRcdFx0XHRcdFx0KTtcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdFx0Y2FzZSBcImFjY2VwdGVkXCI6XG4gXHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25BY2NlcHRlZCkgb3B0aW9ucy5vbkFjY2VwdGVkKHJlc3VsdCk7XG4gXHRcdFx0XHRcdFx0ZG9BcHBseSA9IHRydWU7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGNhc2UgXCJkaXNwb3NlZFwiOlxuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGlzcG9zZWQpIG9wdGlvbnMub25EaXNwb3NlZChyZXN1bHQpO1xuIFx0XHRcdFx0XHRcdGRvRGlzcG9zZSA9IHRydWU7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGRlZmF1bHQ6XG4gXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiVW5leGNlcHRpb24gdHlwZSBcIiArIHJlc3VsdC50eXBlKTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGlmIChhYm9ydEVycm9yKSB7XG4gXHRcdFx0XHRcdGhvdFNldFN0YXR1cyhcImFib3J0XCIpO1xuIFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYWJvcnRFcnJvcik7XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRpZiAoZG9BcHBseSkge1xuIFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSA9IGhvdFVwZGF0ZVttb2R1bGVJZF07XG4gXHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkTW9kdWxlcywgcmVzdWx0Lm91dGRhdGVkTW9kdWxlcyk7XG4gXHRcdFx0XHRcdGZvciAobW9kdWxlSWQgaW4gcmVzdWx0Lm91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG4gXHRcdFx0XHRcdFx0aWYgKFxuIFx0XHRcdFx0XHRcdFx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFxuIFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMsXG4gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkXG4gXHRcdFx0XHRcdFx0XHQpXG4gXHRcdFx0XHRcdFx0KSB7XG4gXHRcdFx0XHRcdFx0XHRpZiAoIW91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSlcbiBcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdID0gW107XG4gXHRcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChcbiBcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdLFxuIFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdXG4gXHRcdFx0XHRcdFx0XHQpO1xuIFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdFx0aWYgKGRvRGlzcG9zZSkge1xuIFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIFtyZXN1bHQubW9kdWxlSWRdKTtcbiBcdFx0XHRcdFx0YXBwbGllZFVwZGF0ZVttb2R1bGVJZF0gPSB3YXJuVW5leHBlY3RlZFJlcXVpcmU7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gU3RvcmUgc2VsZiBhY2NlcHRlZCBvdXRkYXRlZCBtb2R1bGVzIHRvIHJlcXVpcmUgdGhlbSBsYXRlciBieSB0aGUgbW9kdWxlIHN5c3RlbVxuIFx0XHR2YXIgb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzID0gW107XG4gXHRcdGZvciAoaSA9IDA7IGkgPCBvdXRkYXRlZE1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRtb2R1bGVJZCA9IG91dGRhdGVkTW9kdWxlc1tpXTtcbiBcdFx0XHRpZiAoXG4gXHRcdFx0XHRpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSAmJlxuIFx0XHRcdFx0aW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uaG90Ll9zZWxmQWNjZXB0ZWRcbiBcdFx0XHQpXG4gXHRcdFx0XHRvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMucHVzaCh7XG4gXHRcdFx0XHRcdG1vZHVsZTogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdGVycm9ySGFuZGxlcjogaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uaG90Ll9zZWxmQWNjZXB0ZWRcbiBcdFx0XHRcdH0pO1xuIFx0XHR9XG5cbiBcdFx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG4gXHRcdGhvdFNldFN0YXR1cyhcImRpc3Bvc2VcIik7XG4gXHRcdE9iamVjdC5rZXlzKGhvdEF2YWlsYWJsZUZpbGVzTWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rSWQpIHtcbiBcdFx0XHRpZiAoaG90QXZhaWxhYmxlRmlsZXNNYXBbY2h1bmtJZF0gPT09IGZhbHNlKSB7XG4gXHRcdFx0XHRob3REaXNwb3NlQ2h1bmsoY2h1bmtJZCk7XG4gXHRcdFx0fVxuIFx0XHR9KTtcblxuIFx0XHR2YXIgaWR4O1xuIFx0XHR2YXIgcXVldWUgPSBvdXRkYXRlZE1vZHVsZXMuc2xpY2UoKTtcbiBcdFx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiBcdFx0XHRtb2R1bGVJZCA9IHF1ZXVlLnBvcCgpO1xuIFx0XHRcdG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdGlmICghbW9kdWxlKSBjb250aW51ZTtcblxuIFx0XHRcdHZhciBkYXRhID0ge307XG5cbiBcdFx0XHQvLyBDYWxsIGRpc3Bvc2UgaGFuZGxlcnNcbiBcdFx0XHR2YXIgZGlzcG9zZUhhbmRsZXJzID0gbW9kdWxlLmhvdC5fZGlzcG9zZUhhbmRsZXJzO1xuIFx0XHRcdGZvciAoaiA9IDA7IGogPCBkaXNwb3NlSGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbiBcdFx0XHRcdGNiID0gZGlzcG9zZUhhbmRsZXJzW2pdO1xuIFx0XHRcdFx0Y2IoZGF0YSk7XG4gXHRcdFx0fVxuIFx0XHRcdGhvdEN1cnJlbnRNb2R1bGVEYXRhW21vZHVsZUlkXSA9IGRhdGE7XG5cbiBcdFx0XHQvLyBkaXNhYmxlIG1vZHVsZSAodGhpcyBkaXNhYmxlcyByZXF1aXJlcyBmcm9tIHRoaXMgbW9kdWxlKVxuIFx0XHRcdG1vZHVsZS5ob3QuYWN0aXZlID0gZmFsc2U7XG5cbiBcdFx0XHQvLyByZW1vdmUgbW9kdWxlIGZyb20gY2FjaGVcbiBcdFx0XHRkZWxldGUgaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG5cbiBcdFx0XHQvLyB3aGVuIGRpc3Bvc2luZyB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgZGlzcG9zZSBoYW5kbGVyXG4gXHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXTtcblxuIFx0XHRcdC8vIHJlbW92ZSBcInBhcmVudHNcIiByZWZlcmVuY2VzIGZyb20gYWxsIGNoaWxkcmVuXG4gXHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZS5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0dmFyIGNoaWxkID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGUuY2hpbGRyZW5bal1dO1xuIFx0XHRcdFx0aWYgKCFjaGlsZCkgY29udGludWU7XG4gXHRcdFx0XHRpZHggPSBjaGlsZC5wYXJlbnRzLmluZGV4T2YobW9kdWxlSWQpO1xuIFx0XHRcdFx0aWYgKGlkeCA+PSAwKSB7XG4gXHRcdFx0XHRcdGNoaWxkLnBhcmVudHMuc3BsaWNlKGlkeCwgMSk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gcmVtb3ZlIG91dGRhdGVkIGRlcGVuZGVuY3kgZnJvbSBtb2R1bGUgY2hpbGRyZW5cbiBcdFx0dmFyIGRlcGVuZGVuY3k7XG4gXHRcdHZhciBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcztcbiBcdFx0Zm9yIChtb2R1bGVJZCBpbiBvdXRkYXRlZERlcGVuZGVuY2llcykge1xuIFx0XHRcdGlmIChcbiBcdFx0XHRcdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvdXRkYXRlZERlcGVuZGVuY2llcywgbW9kdWxlSWQpXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdGlmIChtb2R1bGUpIHtcbiBcdFx0XHRcdFx0bW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSBvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbiBcdFx0XHRcdFx0XHRpZHggPSBtb2R1bGUuY2hpbGRyZW4uaW5kZXhPZihkZXBlbmRlbmN5KTtcbiBcdFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIG1vZHVsZS5jaGlsZHJlbi5zcGxpY2UoaWR4LCAxKTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIE5vdCBpbiBcImFwcGx5XCIgcGhhc2VcbiBcdFx0aG90U2V0U3RhdHVzKFwiYXBwbHlcIik7XG5cbiBcdFx0aG90Q3VycmVudEhhc2ggPSBob3RVcGRhdGVOZXdIYXNoO1xuXG4gXHRcdC8vIGluc2VydCBuZXcgY29kZVxuIFx0XHRmb3IgKG1vZHVsZUlkIGluIGFwcGxpZWRVcGRhdGUpIHtcbiBcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFwcGxpZWRVcGRhdGUsIG1vZHVsZUlkKSkge1xuIFx0XHRcdFx0bW9kdWxlc1ttb2R1bGVJZF0gPSBhcHBsaWVkVXBkYXRlW21vZHVsZUlkXTtcbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBjYWxsIGFjY2VwdCBoYW5kbGVyc1xuIFx0XHR2YXIgZXJyb3IgPSBudWxsO1xuIFx0XHRmb3IgKG1vZHVsZUlkIGluIG91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG4gXHRcdFx0aWYgKFxuIFx0XHRcdFx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG91dGRhdGVkRGVwZW5kZW5jaWVzLCBtb2R1bGVJZClcbiBcdFx0XHQpIHtcbiBcdFx0XHRcdG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdFx0aWYgKG1vZHVsZSkge1xuIFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9IG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdFx0dmFyIGNhbGxiYWNrcyA9IFtdO1xuIFx0XHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRcdFx0XHRkZXBlbmRlbmN5ID0gbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXNbaV07XG4gXHRcdFx0XHRcdFx0Y2IgPSBtb2R1bGUuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBlbmRlbmN5XTtcbiBcdFx0XHRcdFx0XHRpZiAoY2IpIHtcbiBcdFx0XHRcdFx0XHRcdGlmIChjYWxsYmFja3MuaW5kZXhPZihjYikgIT09IC0xKSBjb250aW51ZTtcbiBcdFx0XHRcdFx0XHRcdGNhbGxiYWNrcy5wdXNoKGNiKTtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdFx0XHRcdGNiID0gY2FsbGJhY2tzW2ldO1xuIFx0XHRcdFx0XHRcdHRyeSB7XG4gXHRcdFx0XHRcdFx0XHRjYihtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyk7XG4gXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG4gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuIFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0LWVycm9yZWRcIixcbiBcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeUlkOiBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tpXSxcbiBcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4gXHRcdFx0XHRcdFx0XHRcdH0pO1xuIFx0XHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnI7XG4gXHRcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gTG9hZCBzZWxmIGFjY2VwdGVkIG1vZHVsZXNcbiBcdFx0Zm9yIChpID0gMDsgaSA8IG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdHZhciBpdGVtID0gb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzW2ldO1xuIFx0XHRcdG1vZHVsZUlkID0gaXRlbS5tb2R1bGU7XG4gXHRcdFx0aG90Q3VycmVudFBhcmVudHMgPSBbbW9kdWxlSWRdO1xuIFx0XHRcdHRyeSB7XG4gXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcbiBcdFx0XHR9IGNhdGNoIChlcnIpIHtcbiBcdFx0XHRcdGlmICh0eXBlb2YgaXRlbS5lcnJvckhhbmRsZXIgPT09IFwiZnVuY3Rpb25cIikge1xuIFx0XHRcdFx0XHR0cnkge1xuIFx0XHRcdFx0XHRcdGl0ZW0uZXJyb3JIYW5kbGVyKGVycik7XG4gXHRcdFx0XHRcdH0gY2F0Y2ggKGVycjIpIHtcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbiBcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbiBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyMixcbiBcdFx0XHRcdFx0XHRcdFx0b3JpZ2luYWxFcnJvcjogZXJyXG4gXHRcdFx0XHRcdFx0XHR9KTtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyMjtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnI7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbiBcdFx0XHRcdFx0XHRcdHR5cGU6IFwic2VsZi1hY2NlcHQtZXJyb3JlZFwiLFxuIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGVyclxuIFx0XHRcdFx0XHRcdH0pO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVFcnJvcmVkKSB7XG4gXHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnI7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBoYW5kbGUgZXJyb3JzIGluIGFjY2VwdCBoYW5kbGVycyBhbmQgc2VsZiBhY2NlcHRlZCBtb2R1bGUgbG9hZFxuIFx0XHRpZiAoZXJyb3IpIHtcbiBcdFx0XHRob3RTZXRTdGF0dXMoXCJmYWlsXCIpO1xuIFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gXHRcdH1cblxuIFx0XHRob3RTZXRTdGF0dXMoXCJpZGxlXCIpO1xuIFx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkge1xuIFx0XHRcdHJlc29sdmUob3V0ZGF0ZWRNb2R1bGVzKTtcbiBcdFx0fSk7XG4gXHR9XG5cbiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4gXHQvLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbiBcdC8vIFByb21pc2UgPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG4gXHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuIFx0XHRcImJ1bmRsZVwiOiAwXG4gXHR9O1xuXG4gXHR2YXIgZGVmZXJyZWRNb2R1bGVzID0gW107XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9LFxuIFx0XHRcdGhvdDogaG90Q3JlYXRlTW9kdWxlKG1vZHVsZUlkKSxcbiBcdFx0XHRwYXJlbnRzOiAoaG90Q3VycmVudFBhcmVudHNUZW1wID0gaG90Q3VycmVudFBhcmVudHMsIGhvdEN1cnJlbnRQYXJlbnRzID0gW10sIGhvdEN1cnJlbnRQYXJlbnRzVGVtcCksXG4gXHRcdFx0Y2hpbGRyZW46IFtdXG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIGhvdENyZWF0ZVJlcXVpcmUobW9kdWxlSWQpKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcImh0dHA6Ly9sb2NhbGhvc3Q6ODUwMS9zdGF0aWMvXCI7XG5cbiBcdC8vIF9fd2VicGFja19oYXNoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18uaCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gaG90Q3VycmVudEhhc2g7IH07XG5cbiBcdHZhciBqc29ucEFycmF5ID0gd2luZG93W1wid2VicGFja0pzb25wXCJdID0gd2luZG93W1wid2VicGFja0pzb25wXCJdIHx8IFtdO1xuIFx0dmFyIG9sZEpzb25wRnVuY3Rpb24gPSBqc29ucEFycmF5LnB1c2guYmluZChqc29ucEFycmF5KTtcbiBcdGpzb25wQXJyYXkucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrO1xuIFx0anNvbnBBcnJheSA9IGpzb25wQXJyYXkuc2xpY2UoKTtcbiBcdGZvcih2YXIgaSA9IDA7IGkgPCBqc29ucEFycmF5Lmxlbmd0aDsgaSsrKSB3ZWJwYWNrSnNvbnBDYWxsYmFjayhqc29ucEFycmF5W2ldKTtcbiBcdHZhciBwYXJlbnRKc29ucEZ1bmN0aW9uID0gb2xkSnNvbnBGdW5jdGlvbjtcblxuXG4gXHQvLyBhZGQgZW50cnkgbW9kdWxlIHRvIGRlZmVycmVkIGxpc3RcbiBcdGRlZmVycmVkTW9kdWxlcy5wdXNoKFswLFwidmVuZG9yXCJdKTtcbiBcdC8vIHJ1biBkZWZlcnJlZCBtb2R1bGVzIHdoZW4gcmVhZHlcbiBcdHJldHVybiBjaGVja0RlZmVycmVkTW9kdWxlcygpO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjcmVhdGVIaXN0b3J5IGZyb20gJ2hpc3RvcnkvY3JlYXRlQnJvd3Nlckhpc3RvcnknO1xuaW1wb3J0IHsgaHlkcmF0ZSB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIEJyb3dzZXJSb3V0ZXIgYXMgUm91dGVyLFxufSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxuaW1wb3J0IEFwcCBmcm9tICcuLi9zaGFyZWQvQXBwJztcbmltcG9ydCBzdG9yZSBmcm9tICcuLi9zaGFyZWQvc3RvcmUnO1xuXG5jb25zdCBicm93c2VySGlzdG9yeSA9IHdpbmRvdy5icm93c2VySGlzdG9yeSB8fCBjcmVhdGVIaXN0b3J5KCk7XG5cbmh5ZHJhdGUoXG4gIDxQcm92aWRlciBzdG9yZT17c3RvcmV9PlxuICAgIDxSb3V0ZXI+XG4gICAgICA8QXBwIC8+XG4gICAgPC9Sb3V0ZXI+XG4gIDwvUHJvdmlkZXI+LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXBwJylcbik7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICBpZiAobW9kdWxlLmhvdCkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KCk7XG4gIH1cblxuICBpZiAoIXdpbmRvdy5icm93c2VySGlzdG9yeSkge1xuICAgIHdpbmRvdy5icm93c2VySGlzdG9yeSA9IGJyb3dzZXJIaXN0b3J5O1xuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgc3RvcmUgZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBSb3V0aW5nIH0gZnJvbSAncm91dGluZyc7XG5cbmltcG9ydCAnLi9hc3NldHMvc2Nzcy9zdHlsZXMuc2Nzcyc7XG5cbmNsYXNzIEFwcCBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8Um91dGluZyBzdG9yZT17c3RvcmV9IC8+XG4gICAgKTtcbiAgfVxuIFxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG4iLCJpbXBvcnQgYXBpIGZyb20gJ2FwaSc7XG5cbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSA9ICcnXG4gKiBAcmV0dXJuIHt7fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvdW50cmllcyhxdWVyeSA9ICcnKSB7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlczogW1xuICAgICAgdHlwZXMuR0VUX0NPVU5UUklFU19SRVFVRVNULFxuICAgICAgdHlwZXMuR0VUX0NPVU5UUklFU19TVUNDRVNTLFxuICAgICAgdHlwZXMuR0VUX0NPVU5UUklFU19GQUlMVVJFXG4gICAgXSxcbiAgICBjYWxsQVBJOiAoKSA9PiBhcGkuZ2V0KHF1ZXJ5KSxcbiAgfTtcblxufSIsIi8qKlxuICogQG1vZHVsZSByZWR1Y2Vyc1xuICovXG5cbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5pbXBvcnQgbWFrZUFjdGlvbkNyZWF0b3IgZnJvbSAnLi9tYWtlQWN0aW9uQ3JlYXRvcic7XG5pbXBvcnQgYXBpIGZyb20gJ2FwaSc7XG5cbmltcG9ydCB7IGdldENvdW50cmllcyBhcyBnZXRDb3VudHJpZXNBY3Rpb24gfSBmcm9tICcuL2dldENvdW50cmllcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hUZXJtXG4gKiBAcmV0dXJuIHtPYmplY3QuPEFjdGlvbj59IGFjdGlvblxuICovXG5leHBvcnQgY29uc3Qgc2V0U2VhcmNoVGVybSA9IG1ha2VBY3Rpb25DcmVhdG9yKHR5cGVzLlNFVF9TRUFSQ0hfVEVSTSwgJ3NlYXJjaFRlcm0nKTtcblxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0ZWRDb3VudHJ5XG4gKiBAcmV0dXJuIHtPYmplY3QuPEFjdGlvbj59IGFjdGlvblxuICovXG5leHBvcnQgY29uc3Qgc2V0U2VsZWN0ZWRDb3VudHJ5ID0gbWFrZUFjdGlvbkNyZWF0b3IodHlwZXMuU0VUX1NFTEVDVEVEX0NPVU5UUlksICdzZWxlY3RlZENvdW50cnknKTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gbW92aWVzXG4gKiBAcmV0dXJuIHtPYmplY3QuPEFjdGlvbj59XG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNb3ZpZXMgPSBtYWtlQWN0aW9uQ3JlYXRvcih0eXBlcy5TRVRfTU9WSUVTLCAnbW92aWVzJyk7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBhc3luYyBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92aWVzKHVybCkge1xuICAvKipcbiAgICogJ2Rpc3BhdGNoJyBpcyB0aGUgc2FtZSBvbmUgdGhhdCB3ZSB1c2UgdG8gZGlzcGF0Y2ggYWN0aW9ucyB0byBSZWR1eFxuICAgKlxuICAgKiAnZ2V0U3RhdGUnIGlzIGEgZnVuY3Rpb24gdGhhdCBpZiB5b3UgbmVlZCB0byBkbyBzb21ldGhpbmcgYmFzZWQgb25cbiAgICogdGhlIFJlZHV4IHN0b3JlJ3MgZGF0YSwgeW91IGNhbiBjYWxsIGl0IHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoZGlzcGF0Y2gsIGdldFN0YXRlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYXBpLmdldCh1cmwpO1xuICAgICAgZGlzcGF0Y2goc2V0TW92aWVzKGRhdGEpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVhY3RNb3ZpZXM6ICcsIGVycik7XG4gICAgfVxuICB9O1xuXG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBtb3ZpZVxuICogQHJldHVybiB7T2JqZWN0LjxBY3Rpb24+fVxuICovXG5leHBvcnQgY29uc3Qgc2V0TW92aWUgPSBtYWtlQWN0aW9uQ3JlYXRvcih0eXBlcy5TRVRfTU9WSUUsICdtb3ZpZScpO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92aWUoaWQpIHtcblxuICByZXR1cm4gZnVuY3Rpb24gKGRpc3BhdGNoLCBnZXRTdGF0ZSkge1xuXG4gICAgY29uc3QgbW92aWVzID0gZ2V0U3RhdGUoKS5tb3ZpZXM7XG5cbiAgICBjb25zdCBtb3ZpZSA9IG1vdmllcy5maWx0ZXIobSA9PiBtLmlkID09PSAraWQpWzBdO1xuXG4gICAgZGlzcGF0Y2goc2V0TW92aWUobW92aWUpKTtcblxuICB9O1xuXG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IGNvdW50cmllc1xuICogQHJldHVybiB7T2JqZWN0LjxBY3Rpb24+fVxuICovXG5leHBvcnQgY29uc3Qgc2V0Q291bnRyaWVzID0gbWFrZUFjdGlvbkNyZWF0b3IodHlwZXMuU0VUX0NPVU5UUklFUywgJ2NvdW50cmllcycpO1xuXG4vKipcbiAqIEB0eXBlIHtGdW5jdGlvbn0gZ2V0Q291bnRyaWVzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb3VudHJpZXMgPSBnZXRDb3VudHJpZXNBY3Rpb247IiwiLyoqXG4gKiBAbW9kdWxlIGFjdGlvbnMvbWFrZUFjdGlvbkNyZWF0b3JcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGFuIGFjdGlvbiBjcmVhdG9yIGZ1bmN0aW9uIHRvIHJlZHVjZSBib2lsZXJwbGF0ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0gYXJnTmFtZXNcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSB0aGUgYWN0aW9uIGNyZWF0b3IgaXRzZWxmXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VBY3Rpb25DcmVhdG9yKHR5cGUsIC4uLmFyZ05hbWVzKSB7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgbGV0IGFjdGlvbiA9IHsgdHlwZSB9O1xuICAgIGFyZ05hbWVzLmZvckVhY2goKGFyZywgaW5kZXgpID0+IHtcbiAgICAgIGFjdGlvblthcmdOYW1lc1tpbmRleF1dID0gYXJnc1tpbmRleF07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWN0aW9uO1xuXG4gIH07XG5cbn0iLCIvKipcbiAqIEBtb2R1bGUgYXBpL2FwaVxuICovXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgZGVmYXVsdCBheGlvczsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQ1NTgxXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSB7bmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfS4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQzOTA3XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9IZWFkZXIuc2Nzcyc7XG5cbmNvbnN0IEhlYWRlciA9ICh7IGhlYWRpbmcsIHN1YkhlYWRpbmcsIGltZ1VybCA9ICcnIH0pID0+IChcbiAgPGhlYWRlciBjbGFzc05hbWU9XCJIZWFkZXJfX21hc3RoZWFkXCIgc3R5bGU9e3snYmFja2dyb3VuZCc6IGltZ1VybH19PlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiSGVhZGVyX19vdmVybGF5XCIgLz5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTAgbXgtYXV0b1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiSGVhZGVyX19wYWdlLWhlYWRpbmdcIj5cbiAgICAgICAgICAgIDxoMT57IGhlYWRpbmcgfTwvaDE+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJIZWFkZXJfX3N1YmhlYWRpbmdcIj57c3ViSGVhZGluZ308L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5ODZcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0cmluZyB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgJy4vTW92aWUuc2Nzcyc7XG5cbmNvbnN0IE1vdmllID0gKHsgbW92aWVUaXRsZSwgZGVzY3JpcHRpb24gfSkgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIiBzdHlsZT17IHt3aWR0aDogJzIwcmVtJ30gfT5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQtYm9keVwiPlxuICAgICAgPGg0IGNsYXNzTmFtZT1cImNhcmQtdGl0bGVcIj57IG1vdmllVGl0bGUgfTwvaDQ+XG4gICAgICA8cCBjbGFzc05hbWU9XCJjYXJkLXRleHRcIj57IGRlc2NyaXB0aW9uIH08L3A+XG4gICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPldhdGNoIFRyYWlsZXI8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuKTtcblxuTW92aWUucHJvcFR5cGVzID0ge1xuICBtb3ZpZVRpdGxlOiBzdHJpbmcsXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZpZTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQzOTk5XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOYXZMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCAnLi9Nb3ZpZUNhcmQuc2Nzcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vdmllQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG5cbiAgICAvLyBEZXN0cnVjdHVyZSB0aGUgaW5kaXZpZHVhbCBwcm9wc1xuICAgIGxldCB7IG1vdmllVGl0bGUsIG1vdmllR2VucmUsIGNvdW50cnksIGRlc2NyaXB0aW9uLCBpZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8YXJ0aWNsZSBjbGFzc05hbWU9XCJtb3ZpZUNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjYXJkLXRpdGxlXCI+e21vdmllVGl0bGV9PC9oND5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImNhcmQtdGV4dCB0ZXh0LWNsYW1wXCI+XG4gICAgICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibGlzdC1ncm91cC1pdGVtXCI+e2NvdW50cnl9PC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJsaXN0LWdyb3VwLWl0ZW1cIj57bW92aWVHZW5yZX08L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxOYXZMaW5rIHRvPXtgZGV0YWlscy8ke2lkfWB9PlxuICAgICAgICAgIFNlZSBEZXRhaWxzXG4gICAgICAgIDwvTmF2TGluaz5cbiAgICAgIDwvYXJ0aWNsZT5cblxuICAgICk7XG5cbiAgfVxuICBcbn0iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQ0MjQwXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOYXZMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBmdW5jLCBzdHJpbmcsIGJvb2wgfSBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ25vZGUtdXVpZCc7XG5cbmltcG9ydCBTZWFyY2hlciBmcm9tICdjb21wb25lbnRzL1NlYXJjaGVyL1NlYXJjaGVyJztcblxuY2xhc3MgTmF2IGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogU2V0cyBzdGF0ZSdzIHNlYXJjaFRlcm0gYW5kIGZpbHRlciB0aGUgbW92aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc2VhcmNoVGVybUhhbmRsZXIgPSAoc2VhcmNoVGVybSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3NlYXJjaFRlcm19KTtcbiAgfTtcblxuICAvKipcbiAgICpcbiAgICogQHR5cGUge09iamVjdFtdfVxuICAgKi9cbiAgbGlua3MgPSBbXG4gICAge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBwYXRoOiAnYWJvdXQnLFxuICAgICAgbmFtZTogJ0Fib3V0J1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBwYXRoOiAnbW92aWVzJyxcbiAgICAgIG5hbWU6ICdNb3ZpZXMnXG4gICAgfVxuICBdO1xuXG4gIHJlbmRlcigpIHtcblxuICAgIGNvbnN0IHtcbiAgICAgIHNlYXJjaFRlcm0sXG4gICAgICBzaG93U2VhcmNoLFxuICAgICAgc2hvd1Byb2ZpbGUsXG4gICAgICBvblNlYXJjaFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgbGV0IHNwYWNlO1xuXG4gICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgIHNwYWNlID0gPFNlYXJjaGVyIHNlYXJjaFRlcm09e3NlYXJjaFRlcm19IG9uU2VhcmNoPXtvblNlYXJjaH0gLz47XG4gICAgfSBlbHNlIGlmIChzaG93UHJvZmlsZSkge1xuICAgICAgc3BhY2UgPSAoXG4gICAgICAgIDxOYXZMaW5rXG4gICAgICAgICAgdG89Jy9wcm9maWxlJ1xuICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICBQcm9maWxlXG4gICAgICAgIDwvTmF2TGluaz5cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYWNlID0gKFxuICAgICAgICA8TmF2TGlua1xuICAgICAgICAgIHRvPScvbW92aWVzJ1xuICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdmJhci1icmFuZFwiPlxuICAgICAgICAgIEJhY2tcbiAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPG5hdiBjbGFzc05hbWU9XCJuYXZiYXIgbmF2YmFyLWRhcmsgbmF2YmFyLWV4cGFuZC1sZyBiZy1kYXJrXCI+XG4gICAgICAgIDxOYXZMaW5rXG4gICAgICAgICAgdG89XCIvXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItYnJhbmRcIj5cbiAgICAgICAgICBSZWFjdCBNb3ZpZXNcbiAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPVwibmF2YmFyLXRvZ2dsZXIgbmF2YmFyLXRvZ2dsZXItcmlnaHRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlci1pY29uXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlXCI+XG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbXItYXV0b1wiPlxuICAgICAgICAgICAge3RoaXMubGlua3MubWFwKCh7IHBhdGgsIG5hbWUsIGlkfSkgPT4gKFxuICAgICAgICAgICAgICA8bGkga2V5PXtpZH0gY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8TmF2TGlua1xuICAgICAgICAgICAgICAgICAgdG89e2AvJHtwYXRofWB9XG4gICAgICAgICAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3NOYW1lPVwiYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L05hdkxpbms+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1pbmxpbmVcIj5cbiAgICAgICAgICAgIHtzcGFjZX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25hdj5cbiAgICApO1xuICB9XG5cbn1cblxuTmF2LnByb3BUeXBlcyA9IHtcbiAgc2hvd1NlYXJjaDogYm9vbCxcbiAgc2VhcmNoVGVybTogc3RyaW5nLFxuICBvblNlYXJjaDogZnVuY1xufTtcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWxlY3RlZENvdW50cnk6IHN0YXRlLnNlbGVjdGVkQ291bnRyeVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShOYXYpO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBOYXYgfSBmcm9tICcuL05hdic7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWFyY2hlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAvLyBUaGlzIGJpbmRpbmcgaXMgbmVjZXNzYXJ5IHRvIG1ha2UgYHRoaXNgIHdvcmsgaW4gdGhlIGNhbGxiYWNrXG4gICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGp1c3RpZnktY29udGVudC1jZW50ZXInPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTInPlxuICAgICAgICAgIDxmb3JtIG5hbWU9J3NlYXJjaGVyJyBvblN1Ym1pdD17dGhpcy5zZWFyY2h9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2Zvcm0tZ3JvdXAnPlxuICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj0nc2VhcmNoZXInIGNsYXNzTmFtZT0nc3Itb25seSc+SnVzdCB0eXBlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICBpZD0nc2VhcmNoZXInXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdmb3JtLWNvbnRyb2wnXG4gICAgICAgICAgICAgICAgbmFtZT0nc2VhcmNoZXInXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9J1R5cGUuLi4nXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMucHJvcHMuc2VhcmNoVGVybX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5zZWFyY2h9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXNzIGRhdGEgdG8gcGFyZW50IGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnQgLSB0aGUgZXZlbnQgdGhhdCBjb21lcyBmcm9tIHRoZSBpbnB1dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc2VhcmNoKGV2dCkge1xuICAgIHRoaXMucHJvcHMub25TZWFyY2goZXZ0LnRhcmdldC52YWx1ZSk7XG4gIH1cbiAgXG59IiwiLyoqXG4gKiBAbW9kdWxlIGNvbnN0YW50cy9BY3Rpb25UeXBlc1xuICovXG5leHBvcnQgY29uc3QgU0VUX1NFQVJDSF9URVJNID0gJ1NFVF9TRUFSQ0hfVEVSTSc7XG5leHBvcnQgY29uc3QgU0VUX1NFTEVDVEVEX0NPVU5UUlkgPSAnU0VUX1NFTEVDVEVEX0NPVU5UUlknO1xuZXhwb3J0IGNvbnN0IFNFVF9NT1ZJRSA9ICdTRVRfTU9WSUUnO1xuZXhwb3J0IGNvbnN0IFNFVF9NT1ZJRVMgPSAnU0VUX01PVklFUyc7XG5cbmV4cG9ydCBjb25zdCBHRVRfQ09VTlRSSUVTX1JFUVVFU1QgPSAnR0VUX0NPVU5UUklFU19SRVFVRVNUJztcbmV4cG9ydCBjb25zdCBHRVRfQ09VTlRSSUVTX1NVQ0NFU1MgPSAnR0VUX0NPVU5UUklFU19TVUNDRVNTJztcbmV4cG9ydCBjb25zdCBHRVRfQ09VTlRSSUVTX0ZBSUxVUkUgPSAnR0VUX0NPVU5UUklFU19GQUlMVVJFJzsiLCJleHBvcnQgY29uc3QgQ09VTlRSSUVTID0gJ2h0dHBzOi8vcmVzdGNvdW50cmllcy5ldS9yZXN0L3YyJzsiLCIvKipcbiAqIEBtb2R1bGUgbG9jYWxTdG9yYWdlXG4gKiBwZXJzaXN0IHRoZSBzdGF0ZSBvZiB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGxvY2FsU3RvcmFnZSB1c2luZyBicm93c2VyIGxvY2FsU3RvcmFnZSBBUEkuXG4gKi9cblxuLyoqXG4gKiBAZGVzYyBMb29rIGludG8gbG9jYWxTdG9yYWdlIGJ5IGtleSwgcmV0cmlldmUgYSBzdHJpbmcsIGFuZCB0cnkgdG8gcGFyc2UgaXQgYXMgSlNPTi5cbiAqXG4gKiBAcmV0dXJuIHtKU09OfVxuICovXG5leHBvcnQgY29uc3QgbG9hZFN0YXRlID0gKCkgPT4ge1xuICAvKipcbiAgICogSXQncyBpbXBvcnRhbnQgdGhhdCB3ZSB3cmFwIHRoaXMgY29kZSBpbnRvIHRyeS9jYXRjaCBiZWNhdXNlIGNhbGxzIHRvIGxvY2FsU3RvcmFnZS5nZXRJdGVtIGNhbiBmYWlsXG4gICAqIGlmIHRoZSB1c2VyIHByaXZhY3kgbW9kZSBkb2VzIG5vdCBhbGxvdyB0aGUgdXNlIG9mIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZFN0YXRlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0YXRlJyk7XG4gICAgLy8gSWYgc2VyaWFsaXplZFN0YXRlIGlzIG51bGwgaXQgbWVhbnMgdGhhdCB0aGUga2V5IGRvZXNuJ3QgZXhpc3Qgc28gSSdsbCByZXR1cm4gdW5kZWZpbmVkIHRvIGxldCB0aGUgcmVkdWNlcnMgaW5pdGlhbGl6ZSB0aGUgc3RhdGUgaW5zdGVhZC5cbiAgICBpZiAoc2VyaWFsaXplZFN0YXRlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgc2VyaWFsaXplZFN0YXRlIHN0cmluZyBleGlzdHMgSSdtIGdvaW5nIHRvIHVzZSBKU09OLnBhcnNlIGluIG9yZGVyIHRvIHR1cm4gaXQgaW50byB0aGUgc3RhdGUgb2JqZWN0LlxuICAgIHJldHVybiBKU09OLnBhcnNlKHNlcmlhbGl6ZWRTdGF0ZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIEluIGNhc2Ugb2YgYW55IGVycm9ycyByZXR1cm4gdW5kZWZpbmVkIHRvIGxldCByZWR1Y2VycyBpbml0aWFsaXplIHRoZSBhcHBsaWNhdGlvbi5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbn07XG5cbi8qKlxuICogU2V0cyBhbiBpdGVtIG9uIGxvY2FsU3RvcmFnZVxuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgY29uc3Qgc2F2ZVN0YXRlID0gKHN0YXRlKSA9PiB7XG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGl0IHRvIHN0cmluZyBieSB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhpcyB3aWxsIG9ubHkgd29yayBpZiB0aGUgc3RhdGUgaXMgc2VyaWFsaXphYmxlLFxuICAgKiBidXQgdGhpcyBpcyB0aGUgZ2VuZXJhbCByZWNvbW1lbmRhdGlvbiBpbiBSZWR1eC4gVGhlIHN0YXRlIFNIT1VMRCBiZSBzZXJpYWxpemFibGUuXG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRTdGF0ZSA9IEpTT04uc3RyaW5naWZ5KHN0YXRlKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzZXJpYWxpemVkU3RhdGUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKCdsb2NhbFN0b3JhZ2Ugc2hpdDogJywgZXJyKTtcbiAgfVxuXG59OyIsIi8qKlxuICogQGRlc2MgaGFuZGxlcyBhbGwgQVBJJ3MgYXN5bmMgYWN0aW9uc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZGlzcGF0Y2hcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldFN0YXRlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXBpTWlkZGxld2FyZSh7IGRpc3BhdGNoLCBnZXRTdGF0ZSB9KSB7XG4gIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgdHlwZXMsXG4gICAgICBjYWxsQVBJLFxuICAgICAgc2hvdWxkQ2FsbEFQSSA9ICgpID0+IHRydWUsXG4gICAgICBwYXlsb2FkID0ge31cbiAgICB9ID0gYWN0aW9uO1xuXG4gICAgaWYgKCF0eXBlcykge1xuICAgICAgLy8gTm9ybWFsIGFjdGlvbjogcGFzcyBpdCBvblxuICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhQXJyYXkuaXNBcnJheSh0eXBlcykgfHxcbiAgICAgIHR5cGVzLmxlbmd0aCAhPT0gMyB8fFxuICAgICAgIXR5cGVzLmV2ZXJ5KHR5cGUgPT4gdHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhbiBhcnJheSBvZiB0aHJlZSBzdHJpbmcgdHlwZXMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYWxsQVBJICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGNhbGxBUEkgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIXNob3VsZENhbGxBUEkoZ2V0U3RhdGUoKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBbcmVxdWVzdFR5cGUsIHN1Y2Nlc3NUeXBlLCBmYWlsdXJlVHlwZV0gPSB0eXBlcztcblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIC4uLnBheWxvYWQsXG4gICAgICB0eXBlOiByZXF1ZXN0VHlwZVxuICAgIH0pO1xuXG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2FsbEFQSSgpO1xuICAgICAgICByZXR1cm4gZGlzcGF0Y2goe1xuICAgICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgdHlwZTogc3VjY2Vzc1R5cGVcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gZGlzcGF0Y2goe1xuICAgICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgdHlwZTogZmFpbHVyZVR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfTtcbn0iLCIvKipcbiAqIEBtb2R1bGUgbWlkZGxld2FyZVxuICovXG5pbXBvcnQgdGh1bmsgZnJvbSAncmVkdXgtdGh1bmsnO1xuXG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBhcGlNaWRkbGV3YXJlIGZyb20gJy4vYXBpTWlkZGxld2FyZSc7XG5cbi8qKlxuICogQHR5cGUge21pZGRsZXdhcmVbXX1cbiAqL1xubGV0IG1pZGRsZXdhcmVzID0gW1xuICB0aHVuayxcbiAgYXBpTWlkZGxld2FyZVxuXTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgbWlkZGxld2FyZXMgPSBbLi4ubWlkZGxld2FyZXMsIGxvZ2dlcl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1pZGRsZXdhcmVzO1xuIiwiLyoqXG4gKiBUYWtlbiBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vZ2FlYXJvbi90b2Rvcy9ibG9iLzE3LXRoZS1taWRkbGV3YXJlLWNoYWluL3NyYy9jb25maWd1cmVTdG9yZS5qc1xuICpcbiAqIExvZ3MgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHN0b3JlIC0gUmVkdXgncyBzdG9yZVxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvZ2dlcihzdG9yZSkge1xuICAvKipcbiAgICogUmF0aGVyIHRoYW4gdGFrZSB0aGUgbmV4dCBtaWRkbGV3YXJlIGZyb20gdGhlIHN0b3JlLCB3ZSdsbFxuICAgKiBtYWtlIGl0IGluamVjdGFibGUgYXMgYW4gYXJndW1lbnQsIHNvIHRoZSBmdW5jdGlvbiB0aGF0IGNhbGxzXG4gICAqIHRoZSBtaWRkbGV3YXJlcyBjYW4gY2hvc2Ugd2hpY2ggbWlkZGxlIHdhcmUgdG8gcGFzc1xuICAgKi9cbiAgcmV0dXJuIChuZXh0KSA9PiB7XG4gICAgaWYgKCFjb25zb2xlLmdyb3VwKSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG5cbiAgICAvLyBUaGUgYWN0dWFsIGRpc3BhdGNoIGZ1bmN0aW9uXG4gICAgcmV0dXJuIChhY3Rpb24pID0+IHtcbiAgICAgIGNvbnNvbGUuZ3JvdXAoYWN0aW9uLnR5cGUpO1xuICAgICAgY29uc29sZS5sb2coJyVjIHByZXYgc3RhdGUnLCAnY29sb3I6IGdyYXknLCBzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgIGNvbnNvbGUubG9nKCclYyBhY3Rpb24nLCAnY29sb3I6IGJsdWUnLCBhY3Rpb24pO1xuICAgICAgY29uc3QgcmV0dXJuVmFsdWUgPSBuZXh0KGFjdGlvbik7XG4gICAgICBjb25zb2xlLmxvZygnJWMgbmV4dCBzdGF0ZScsICdjb2xvcjogZ3JlZW4nLCBzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoYWN0aW9uLnR5cGUpO1xuICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgIH07XG5cbiAgfTtcblxufSIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IEhlYWRlciBmcm9tICdjb21wb25lbnRzL0hlYWRlci9IZWFkZXInO1xuXG5pbXBvcnQgJy4vQWJvdXQuc2Nzcyc7XG5cbmNsYXNzIEFib3V0IGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInJtQWJvdXRcIj5cbiAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJybUFib3V0X193cmFwcGVyXCI+XG4gICAgICAgICAgPEhlYWRlclxuICAgICAgICAgICAgaGVhZGluZz1cIkFib3V0XCJcbiAgICAgICAgICAgIHN1YkhlYWRpbmc9XCJSZWFjdCBNb3ZpZXNcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgcGItNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTAgbXgtYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgVGhpcyBpcyBqdXN0IGFuIGFwcCB0byBzYXZlIGFuZCBzaGFyZSB5b3VyIGZhdm9yaXRlIG1vdmllcywgYmVjYXVzZSBzb21ldGltZXMgd2UgbmVlZCBhIHJlY29tbWVuZGF0aW9uXG4gICAgICAgICAgICAgICAgICB3aGVuIHdlIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0byBzZWUsIHNvIHRoaXMgaXMgdGhlIHBlcmZlY3QgcGxhY2UuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xuICB9XG4gIFxufVxuXG5leHBvcnQgZGVmYXVsdCBBYm91dDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5MTNcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7IENPVU5UUklFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9VcmxzJztcbmltcG9ydCB7IGdldENvdW50cmllcyBhcyBnZXRDb3VudHJpZXNBY3Rpb24sIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHsgc2V0U2VsZWN0ZWRDb3VudHJ5IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBjb3VudHJpZXMsIGdldENvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIGdldENvdW50cmllcyhgJHtDT1VOVFJJRVN9L2FsbGApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcbiAgZ2V0Q291bnRyaWVzKHVybCkge1xuICAgIGRpc3BhdGNoKGdldENvdW50cmllc0FjdGlvbih1cmwpKTtcbiAgfSxcbiAgc2V0Q291bnRyeShjb3VudHJ5KSB7XG4gICAgZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KGNvdW50cnkpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKExhbmRpbmcpOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5MTZcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7IGdldE1vdmllIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XG5cbmltcG9ydCBNb3ZpZSBmcm9tICdjb21wb25lbnRzL01vdmllL01vdmllJztcblxuaW1wb3J0ICcuL01vdmllRGV0YWlscy5zY3NzJztcblxuY2xhc3MgTW92aWVEZXRhaWxzIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRNb3ZpZSgnMScpKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcblxuICAgIGNvbnN0IHsgbW92aWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3ZpZURldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgPE1vdmllIHsuLi5tb3ZpZX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuXG4gIH1cbiAgXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgbW92aWU6IHN0YXRlLm1vdmllXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKE1vdmllRGV0YWlscyk7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0Nzk4NTc0MzkyMlxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFycmF5T2YsIHNoYXBlLCBzdHJpbmcsIG51bWJlciB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBzZXRTZWFyY2hUZXJtLCBnZXRNb3ZpZXMgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcbmltcG9ydCBNb3ZpZUNhcmQgZnJvbSAnY29tcG9uZW50cy9Nb3ZpZUNhcmQvTW92aWVDYXJkJztcblxuaW1wb3J0ICcuL01vdmllcy5zY3NzJztcblxuY2xhc3MgTW92aWVzIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogU2V0cyBzdGF0ZSdzIHNlYXJjaFRlcm0gYW5kIGZpbHRlciB0aGUgbW92aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc2VhcmNoVGVybUhhbmRsZXIgPSAoc2VhcmNoVGVybSkgPT4ge1xuICAgIHRoaXMucHJvcHMuc2V0U2VhcmNoVGVybShzZWFyY2hUZXJtKTtcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcblxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnByb3BzJywgdGhpcy5wcm9wcyk7XG4gICAgaWYgKHRoaXMucHJvcHMubW92aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgXG4gICAgfVxuXG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG5cbiAgfVxuXG4gIHJlbmRlcigpIHtcblxuICAgIGNvbnN0IHsgc2VhcmNoVGVybSwgbW92aWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LXdyYXBcIj5cbiAgICAgICAgICAgIHttb3ZpZXMuZmlsdGVyKG1vdmllID0+IChcbiAgICAgICAgICAgICAgYCR7bW92aWUubW92aWVUaXRsZX0gJHttb3ZpZS5kZXNjcmlwdGlvbn1gLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvVXBwZXJDYXNlKCkpID49IDBcbiAgICAgICAgICAgICkpLm1hcChtb3ZpZSA9PiAoXG4gICAgICAgICAgICAgIDxNb3ZpZUNhcmQga2V5PXttb3ZpZS5pZH0gey4uLm1vdmllfSAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG5cbiAgfVxuXG4gIFxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0sXG4gIG1vdmllczogc3RhdGUubW92aWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0geyBcbiAgZ2V0TW92aWVzLFxuICBzZXRTZWFyY2hUZXJtLCAgXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KFxuICBtYXBTdGF0ZVRvUHJvcHMsXG4gIG1hcERpc3BhdGNoVG9Qcm9wc1xuKShNb3ZpZXMpOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5NzFcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcblxuY2xhc3MgUHJvZmlsZSBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJybVByb2ZpbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCIgc3R5bGU9e3t3aWR0aDogJzE4cmVtJ319PlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImNhcmQtaW1nLXRvcFwiXG4gICAgICAgICAgICBzcmM9XCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI4NiUyMiUyMGhlaWdodCUzRCUyMjE4MCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjg2JTIwMTgwJTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMm5vbmUlMjIlM0UlM0NkZWZzJTNFJTNDc3R5bGUlMjB0eXBlJTNEJTIydGV4dCUyRmNzcyUyMiUzRSUyM2hvbGRlcl8xNjBkZWM0MjQzYSUyMHRleHQlMjAlN0IlMjBmaWxsJTNBcmdiYSgyNTUlMkMyNTUlMkMyNTUlMkMuNzUpJTNCZm9udC13ZWlnaHQlM0Fub3JtYWwlM0Jmb250LWZhbWlseSUzQUhlbHZldGljYSUyQyUyMG1vbm9zcGFjZSUzQmZvbnQtc2l6ZSUzQTE0cHQlMjAlN0QlMjAlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlM0NnJTIwaWQlM0QlMjJob2xkZXJfMTYwZGVjNDI0M2ElMjIlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIyODYlMjIlMjBoZWlnaHQlM0QlMjIxODAlMjIlMjBmaWxsJTNEJTIyJTIzNzc3JTIyJTNFJTNDJTJGcmVjdCUzRSUzQ2clM0UlM0N0ZXh0JTIweCUzRCUyMjk5LjQzNzUlMjIlMjB5JTNEJTIyOTYuMzM3NSUyMiUzRUltYWdlJTIwY2FwJTNDJTJGdGV4dCUzRSUzQyUyRmclM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8aDUgY2xhc3NOYW1lPVwiY2FyZC10aXRsZVwiPkNhcmQgdGl0bGU8L2g1PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiY2FyZC10ZXh0XCI+U29tZSBxdWljayBleGFtcGxlIHRleHQgdG8gYnVpbGQgb24gdGhlIGNhcmQgdGl0bGUgYW5kIG1ha2UgdXAgdGhlIGJ1bGsgb2YgdGhlIGNhcmQncyBjb250ZW50LjwvcD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJsaXN0LWdyb3VwLWl0ZW1cIj5DcmFzIGp1c3RvIG9kaW88L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImxpc3QtZ3JvdXAtaXRlbVwiPkRhcGlidXMgYWMgZmFjaWxpc2lzIGluPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJsaXN0LWdyb3VwLWl0ZW1cIj5WZXN0aWJ1bHVtIGF0IGVyb3M8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPVwiY2FyZC1saW5rXCI+Q2FyZCBsaW5rPC9hPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJjYXJkLWxpbmtcIj5Bbm90aGVyIGxpbms8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG4gIH1cbiAgXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb2ZpbGU7XG4iLCIvKipcbiAqIEBtb2R1bGUgcmVkdWNlcnMvbW92aWVzXG4gKi9cblxuaW1wb3J0IGNyZWF0ZVJlZHVjZXIgZnJvbSAnLi9jcmVhdGVSZWR1Y2VyJztcblxuaW1wb3J0IHsgR0VUX0NPVU5UUklFU19TVUNDRVNTIH0gIGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIGFjdGlvblxuICogQHJldHVybiB7Kn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUmVkdWNlcihbXSwge1xuICBbR0VUX0NPVU5UUklFU19TVUNDRVNTXShzdGF0ZSwgYWN0aW9uKSB7XG4gICAgY29uc3Qge1xuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgZGF0YVxuICAgICAgfVxuICAgIH0gPSBhY3Rpb247XG4gICAgcmV0dXJuIFsuLi5kYXRhXTtcbiAgfVxufSk7IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzL2NyZWF0ZVJlZHVjZXJcbiAqL1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge2FueX0gaW5pdGlhbFN0YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlcnNcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSByZWR1Y2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVJlZHVjZXIoaW5pdGlhbFN0YXRlLCBoYW5kbGVycykge1xuICByZXR1cm4gZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uKSB7XG4gICAgaWYgKGhhbmRsZXJzLmhhc093blByb3BlcnR5KGFjdGlvbi50eXBlKSkge1xuICAgICAgcmV0dXJuIGhhbmRsZXJzW2FjdGlvbi50eXBlXShzdGF0ZSwgYWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfTtcbn0iLCIvKipcbiAqIEBtb2R1bGUgcmVkdWNlcnNcbiAqL1xuXG5pbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgbW92aWUgZnJvbSAnLi9tb3ZpZSc7XG5pbXBvcnQgbW92aWVzIGZyb20gJy4vbW92aWVzJztcbmltcG9ydCBzZWFyY2hUZXJtIGZyb20gJy4vc2VhcmNoVGVybSc7XG5pbXBvcnQgc2VsZWN0ZWRDb3VudHJ5IGZyb20gJy4vc2VsZWN0ZWRDb3VudHJ5JztcbmltcG9ydCBjb3VudHJpZXMgZnJvbSAnLi9jb3VudHJpZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjb21iaW5lUmVkdWNlcnMoe1xuICBtb3ZpZSxcbiAgbW92aWVzLFxuICBzZWFyY2hUZXJtLFxuICBzZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllc1xufSk7IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzL21vdmllXG4gKi9cblxuaW1wb3J0IGNyZWF0ZVJlZHVjZXIgZnJvbSAnLi9jcmVhdGVSZWR1Y2VyJztcblxuaW1wb3J0IHsgU0VUX01PVklFIH0gZnJvbSAnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlID0ge31cbiAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb25cbiAqIEByZXR1cm4ge09iamVjdH0gbmV3IHN0YXRlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJlZHVjZXIoe30sIHtcbiAgW1NFVF9NT1ZJRV0oc3RhdGUsIGFjdGlvbikge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1vdmllOiBhY3Rpb24ubW92aWVcbiAgICB9O1xuICB9XG59KTtcbiIsIi8qKlxuICogQG1vZHVsZSByZWR1Y2Vycy9tb3ZpZXNcbiAqL1xuaW1wb3J0IGNyZWF0ZVJlZHVjZXIgZnJvbSAnLi9jcmVhdGVSZWR1Y2VyJztcblxuaW1wb3J0IHsgU0VUX01PVklFUyB9ICBmcm9tICcuLi9jb25zdGFudHMvQWN0aW9uVHlwZXMnO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJlZHVjZXIoW10sIHtcbiAgW1NFVF9NT1ZJRVNdKHN0YXRlLCBhY3Rpb24pIHtcbiAgICByZXR1cm4gWy4uLmFjdGlvbi5tb3ZpZXNdO1xuICB9XG59KTsiLCIvKipcbiAqIEBtb2R1bGUgcmVkdWNlcnMvc2VhcmNoVGVybVxuICovXG5pbXBvcnQgY3JlYXRlUmVkdWNlciBmcm9tICcuL2NyZWF0ZVJlZHVjZXInO1xuXG5pbXBvcnQgeyBTRVRfU0VBUkNIX1RFUk0gfSAgZnJvbSAnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJztcblxuXG4vKipcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSByZWR1Y2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJlZHVjZXIoJycsIHtcbiAgW1NFVF9TRUFSQ0hfVEVSTV0oc3RhdGUsIGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24uc2VhcmNoVGVybTtcbiAgfVxufSk7IiwiLyoqXG4gKiBAbW9kdWxlIHJlZHVjZXJzL3NlbGVjdGVkQ291bnRyeVxuICovXG5cbmltcG9ydCBjcmVhdGVSZWR1Y2VyIGZyb20gJy4vY3JlYXRlUmVkdWNlcic7XG5cbmltcG9ydCB7IFNFVF9TRUxFQ1RFRF9DT1VOVFJZIH0gIGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIGFjdGlvblxuICogQHJldHVybiB7Kn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUmVkdWNlcignQ29sb21iaWEnLCB7XG4gIFtTRVRfU0VMRUNURURfQ09VTlRSWV0oc3RhdGUsIGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24uc2VsZWN0ZWRDb3VudHJ5O1xuICB9XG59KTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBSb3V0ZVxufSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxuaW1wb3J0IHsgTmF2IH0gZnJvbSAnY29tcG9uZW50cy9OYXYnO1xuaW1wb3J0IEZvb3RlciBmcm9tICdjb21wb25lbnRzL0Zvb3Rlci9Gb290ZXInO1xuXG5jb25zdCBMb2FkaW5nID0gKCkgPT4gKDxkaXY+Li4uPC9kaXY+KTtcblxuaW1wb3J0IExhbmRpbmcgZnJvbSAncGFnZXMvTGFuZGluZy9MYW5kaW5nJztcblxuaW1wb3J0IEFib3V0IGZyb20gJ3BhZ2VzL0Fib3V0L0Fib3V0JztcblxuaW1wb3J0IE1vdmllcyBmcm9tICdwYWdlcy9Nb3ZpZXMvTW92aWVzJztcblxuaW1wb3J0IFByb2ZpbGUgZnJvbSAncGFnZXMvUHJvZmlsZS9Qcm9maWxlJztcblxuaW1wb3J0IE1vdmllRGV0YWlscyBmcm9tICdwYWdlcy9Nb3ZpZURldGFpbHMvTW92aWVEZXRhaWxzJztcblxuY29uc3QgUm91dGluZyA9ICgpID0+IChcbiAgPG1haW4+XG4gICAgPE5hdiAvPlxuICAgIDxkaXY+XG4gICAgICA8Um91dGUgZXhhY3QgcGF0aD1cIi9cIiBjb21wb25lbnQ9e0xhbmRpbmd9IC8+XG4gICAgICA8Um91dGVcbiAgICAgICAgcGF0aD1cIi9hYm91dFwiXG4gICAgICAgIGNvbXBvbmVudD17cHJvcHMgPT4gPEFib3V0IHsuLi5wcm9wc30gLz59XG4gICAgICAvPlxuICAgICAgPFJvdXRlXG4gICAgICAgIHBhdGg9XCIvbW92aWVzXCJcbiAgICAgICAgY29tcG9uZW50PXtwcm9wcyA9PiA8TW92aWVzIHsuLi5wcm9wc30gLz59XG4gICAgICAvPlxuICAgICAgPFJvdXRlXG4gICAgICAgIHBhdGg9XCIvUHJvZmlsZVwiXG4gICAgICAgIGNvbXBvbmVudD17cHJvcHMgPT4gPFByb2ZpbGUgey4uLnByb3BzfSAvPn1cbiAgICAgIC8+XG4gICAgICA8Um91dGVcbiAgICAgICAgcGF0aD1cIi9kZXRhaWxzLzppZFwiXG4gICAgICAgIGNvbXBvbmVudD17cHJvcHMgPT4gPE1vdmllRGV0YWlscyB7Li4ucHJvcHN9IC8+IH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPEZvb3RlciAvPlxuICA8L21haW4+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0aW5nO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3V0aW5nIH0gZnJvbSAnLi9Sb3V0aW5nJzsiLCIvKipcbiAqIEBtb2R1bGUgc3RvcmVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVTdG9yZSwgYXBwbHlNaWRkbGV3YXJlLCBjb21wb3NlIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHRocm90dGxlIGZyb20gJ2xvZGFzaC90aHJvdHRsZSc7XG5cbmltcG9ydCB7IHNhdmVTdGF0ZSwgbG9hZFN0YXRlIH0gZnJvbSAnLi9sb2NhbFN0b3JhZ2UnO1xuLy8gTWlkZGxld2FyZSBpcyB0aGUgc3VnZ2VzdGVkIHdheSB0byBleHRlbmQgUmVkdXggd2l0aCBjdXN0b20gZnVuY3Rpb25hbGl0eS5cbmltcG9ydCBtaWRkbGV3YXJlcyBmcm9tICcuL21pZGRsZXdhcmVzJztcbi8vIGltcG9ydCBhbGwgcmVkdWNlcnNcbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vcmVkdWNlcnMnO1xuLy8gR2V0IHRoZSBzdGF0ZSBmcm9tIGxvY2FsU3RvcmFnZVxuY29uc3QgcGVyc2lzdGVkU3RhdGUgPSBsb2FkU3RhdGUoKTtcbmNvbnN0IGRldnRvb2xzID1cbiAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18gPT09ICdmdW5jdGlvbicgJiZcbiAgLy8gd2hlbiB0aGUgZXh0ZW5zaW9uIGlzIG5vdCBpbnN0YWxsZWQsIHdl4oCZcmUgdXNpbmcgUmVkdXggY29tcG9zZSBoZXJlLlxuICB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fKHsgYWN0aW9uc0JsYWNrbGlzdDogW10gfSk7XG5cbmNvbnN0IGNvbXBvc2VFbmhhbmNlcnMgPSBkZXZ0b29scyB8fCBjb21wb3NlO1xuXG5jb25zdCBzdG9yZSA9IGNyZWF0ZVN0b3JlKFxuICByZWR1Y2VyLFxuICBwZXJzaXN0ZWRTdGF0ZSxcbiAgY29tcG9zZUVuaGFuY2VycyhhcHBseU1pZGRsZXdhcmUoLi4ubWlkZGxld2FyZXMpKSAvLyB0aGUgdGhpcmQgcGFyYW1ldGVyIGlzIHdoYXQgaXMgY2FsbGVkIGFuICdlbmhhbmNlcidcbik7XG5cbi8vIFNhdmUgdGhlIHN0YXRlIGFueSB0aW1lIHRoZSBzdG9yZSBzdGF0ZSBjaGFuZ2VzXG5zdG9yZS5zdWJzY3JpYmUodGhyb3R0bGUoKCkgPT4ge1xuICAvLyBSYXRoZXIgdGhhbiBwYXNzIHRoZSB3aG9sZSBzdGF0ZSBvYmplY3QsIGp1c3QgcGFzcyBhbiBvYmplY3Qgd2l0aCB0aGUga2V5IGZpZWxkIGZyb20gdGhlIHN0YXRlIG9iamVjdC5cbiAgc2F2ZVN0YXRlKHtcbiAgICBtb3ZpZTogc3RvcmUuZ2V0U3RhdGUoKS5tb3ZpZSxcbiAgfSk7XG59LCAxMDAwKSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGlmIChtb2R1bGUuaG90KSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoJy4vcmVkdWNlcnMnLCAoKSA9PlxuICAgICAgc3RvcmUucmVwbGFjZVJlZHVjZXIocmVxdWlyZSgnLi9yZWR1Y2VycycpLmRlZmF1bHQpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBzdG9yZTtcbiIsIi8qIChpZ25vcmVkKSAqLyIsIi8qIChpZ25vcmVkKSAqLyIsIi8qIChpZ25vcmVkKSAqLyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeDFCQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFFQTs7O0FBTkE7QUFDQTtBQVNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUFBO0FBRUE7QUFDQTtBQUtBO0FBQUE7QUFBQTtBQU5BO0FBU0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaEJBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFUQTs7OztBQVVBOzs7OztBQUtBO0FBR0E7Ozs7Ozs7QUFLQTtBQUVBOzs7Ozs7O0FBS0E7QUFFQTs7Ozs7Ozs7QUFLQTtBQUNBOzs7Ozs7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFFQTtBQUNBO0FBSEE7QUFBQTtBQUNBO0FBREE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFFQTs7Ozs7OztBQUtBO0FBRUE7Ozs7Ozs7O0FBS0E7QUFFQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUVBO0FBRUE7Ozs7Ozs7QUFLQTtBQUVBOzs7OztBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzNGQTs7OztBQUlBOzs7Ozs7O0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCQTtBQUNBO0FBSkE7OztBQUtBOzs7Ozs7Ozs7Ozs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVhBO0FBQ0E7QUFtQkE7Ozs7Ozs7Ozs7OztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFSQTtBQUNBO0FBZUE7Ozs7Ozs7Ozs7OztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFMQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBRkE7QUFLQTs7Ozs7Ozs7Ozs7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUNBOzs7QUFDQTtBQUVBO0FBRkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFPQTs7O0FBakNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBTUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUhBOzs7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFNQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFGQTtBQU1BO0FBQ0E7QUFGQTtBQUdBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQUZBO0FBWUE7QUFBQTtBQU1BOzs7QUE1RkE7QUFDQTtBQStGQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQ0E7QUFLQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNuSEE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQ0E7QUFDQTs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFFQTtBQUpBO0FBS0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFhQTtBQUVBOzs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7OztBQXZDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0hBOzs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1ZBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBOzs7OztBQUtBOzs7OztBQUtBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7Ozs7Ozs7OztBQUtBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoREE7Ozs7OztBQU1BO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFKQTtBQUFBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTVCQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBOEJBO0FBRUE7QUFGQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBRUE7QUFGQTtBQUtBO0FBQ0E7QUFIQTtBQUNBO0FBSkE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUNBO0FBSEE7QUFDQTtBQVZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0FBcERBO0FBcURBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFQQTs7OztBQVFBOzs7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQkE7Ozs7Ozs7O0FBUUE7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUNBO0FBRkE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFXQTs7O0FBeEJBO0FBQ0E7QUEyQkE7Ozs7Ozs7Ozs7OztBQ2xDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBREE7QUFXQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7OztBQXBEQTtBQUNBO0FBdURBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBQUE7QUFDQTtBQVFBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2hGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFJQTtBQUVBO0FBQUE7QUFNQTs7O0FBbEJBO0FBQ0E7QUFxQkE7QUFBQTtBQUNBO0FBREE7QUFBQTtBQUNBO0FBR0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDcENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQVFBO0FBQ0E7QUFDQTs7Ozs7O0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFJQTs7O0FBRUE7OztBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFEQTtBQVFBOzs7QUEzQ0E7QUFDQTtBQStDQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBQ0E7QUFJQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNwRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRkE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUtBOzs7QUEzQkE7QUFDQTtBQThCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFQQTs7OztBQVFBOzs7Ozs7QUFNQTtBQUNBO0FBTUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3ZCQTs7OztBQUlBOzs7Ozs7QUFNQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2RBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQVZBOzs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7Ozs7QUFRQTs7Ozs7O0FBTUE7QUFFQTtBQUVBO0FBRkE7QUFJQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQU5BOzs7O0FBT0E7Ozs7OztBQU1BO0FBRUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNkQTtBQUNBO0FBQ0E7QUFDQTtBQU5BOzs7O0FBUUE7Ozs7OztBQU1BO0FBRUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNkQTtBQUNBO0FBQ0E7QUFDQTtBQVBBOzs7O0FBUUE7Ozs7OztBQU1BO0FBRUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbEJBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBQUE7QUFBQTtBQUNBO0FBV0E7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQUtBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUZBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQWpCQTtBQUNBO0FBeUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM5Q0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDSUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTs7O0FBUUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVDQTs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7QUNBQTs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/05b9729b4da0d622bcb4.hot-update.json b/build/client/static/updates/05b9729b4da0d622bcb4.hot-update.json new file mode 100644 index 00000000..4a6c4ce4 --- /dev/null +++ b/build/client/static/updates/05b9729b4da0d622bcb4.hot-update.json @@ -0,0 +1 @@ +{"h":"db781727b7c46e9a2a7e","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/0b6654c94f65a2bfa530.hot-update.json b/build/client/static/updates/0b6654c94f65a2bfa530.hot-update.json new file mode 100644 index 00000000..758750bc --- /dev/null +++ b/build/client/static/updates/0b6654c94f65a2bfa530.hot-update.json @@ -0,0 +1 @@ +{"h":"a779eab72386cc7fa4fe","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/1c6f1fc0df78c8b16a2d.hot-update.json b/build/client/static/updates/1c6f1fc0df78c8b16a2d.hot-update.json new file mode 100644 index 00000000..969d8e00 --- /dev/null +++ b/build/client/static/updates/1c6f1fc0df78c8b16a2d.hot-update.json @@ -0,0 +1 @@ +{"h":"306b891647c456735194","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/2337e88cf47b25ec1e5c.hot-update.json b/build/client/static/updates/2337e88cf47b25ec1e5c.hot-update.json new file mode 100644 index 00000000..90c37a63 --- /dev/null +++ b/build/client/static/updates/2337e88cf47b25ec1e5c.hot-update.json @@ -0,0 +1 @@ +{"h":"1c6f1fc0df78c8b16a2d","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/306b891647c456735194.hot-update.json b/build/client/static/updates/306b891647c456735194.hot-update.json new file mode 100644 index 00000000..1746ed9b --- /dev/null +++ b/build/client/static/updates/306b891647c456735194.hot-update.json @@ -0,0 +1 @@ +{"h":"3e4604344bb77aebb049","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/3c7ef8cbba8f1dc3d0ec.hot-update.json b/build/client/static/updates/3c7ef8cbba8f1dc3d0ec.hot-update.json new file mode 100644 index 00000000..dbfae00a --- /dev/null +++ b/build/client/static/updates/3c7ef8cbba8f1dc3d0ec.hot-update.json @@ -0,0 +1 @@ +{"h":"0b6654c94f65a2bfa530","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/3e4604344bb77aebb049.hot-update.json b/build/client/static/updates/3e4604344bb77aebb049.hot-update.json new file mode 100644 index 00000000..4857ddce --- /dev/null +++ b/build/client/static/updates/3e4604344bb77aebb049.hot-update.json @@ -0,0 +1 @@ +{"h":"a3c8adc66b9f3cfcadf5","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/5189f06c5547af5a0ded.hot-update.json b/build/client/static/updates/5189f06c5547af5a0ded.hot-update.json new file mode 100644 index 00000000..423f06e4 --- /dev/null +++ b/build/client/static/updates/5189f06c5547af5a0ded.hot-update.json @@ -0,0 +1 @@ +{"h":"a97a0536125d7d3e0348","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/56cbb99e6ca7757be61a.hot-update.json b/build/client/static/updates/56cbb99e6ca7757be61a.hot-update.json new file mode 100644 index 00000000..bc40510f --- /dev/null +++ b/build/client/static/updates/56cbb99e6ca7757be61a.hot-update.json @@ -0,0 +1 @@ +{"h":"d0f4d389de2f336b525b","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/5824cf574b29cc287e40.hot-update.json b/build/client/static/updates/5824cf574b29cc287e40.hot-update.json deleted file mode 100644 index 25738bea..00000000 --- a/build/client/static/updates/5824cf574b29cc287e40.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"d293908d76be8194649d","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/66124e16405da64c41cc.hot-update.json b/build/client/static/updates/66124e16405da64c41cc.hot-update.json deleted file mode 100644 index 2e917703..00000000 --- a/build/client/static/updates/66124e16405da64c41cc.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"5824cf574b29cc287e40","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/6726424c38b7c05c211b.hot-update.json b/build/client/static/updates/6726424c38b7c05c211b.hot-update.json new file mode 100644 index 00000000..8bfef06b --- /dev/null +++ b/build/client/static/updates/6726424c38b7c05c211b.hot-update.json @@ -0,0 +1 @@ +{"h":"5189f06c5547af5a0ded","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/6bf94db3798eaf4528db.hot-update.json b/build/client/static/updates/6bf94db3798eaf4528db.hot-update.json new file mode 100644 index 00000000..c9dbe2d1 --- /dev/null +++ b/build/client/static/updates/6bf94db3798eaf4528db.hot-update.json @@ -0,0 +1 @@ +{"h":"70278edb4fc19a571d0c","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/70278edb4fc19a571d0c.hot-update.json b/build/client/static/updates/70278edb4fc19a571d0c.hot-update.json new file mode 100644 index 00000000..fe01b703 --- /dev/null +++ b/build/client/static/updates/70278edb4fc19a571d0c.hot-update.json @@ -0,0 +1 @@ +{"h":"6726424c38b7c05c211b","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/73780d0c374ef4c81c6e.hot-update.json b/build/client/static/updates/73780d0c374ef4c81c6e.hot-update.json new file mode 100644 index 00000000..3e360c60 --- /dev/null +++ b/build/client/static/updates/73780d0c374ef4c81c6e.hot-update.json @@ -0,0 +1 @@ +{"h":"78dac4be9c5eeb8effdd","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/78dac4be9c5eeb8effdd.hot-update.json b/build/client/static/updates/78dac4be9c5eeb8effdd.hot-update.json new file mode 100644 index 00000000..04173ae9 --- /dev/null +++ b/build/client/static/updates/78dac4be9c5eeb8effdd.hot-update.json @@ -0,0 +1 @@ +{"h":"c86cf49b4185dae76b18","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/7b6bc80f97de635267f4.hot-update.json b/build/client/static/updates/7b6bc80f97de635267f4.hot-update.json new file mode 100644 index 00000000..04d5b5e5 --- /dev/null +++ b/build/client/static/updates/7b6bc80f97de635267f4.hot-update.json @@ -0,0 +1 @@ +{"h":"73780d0c374ef4c81c6e","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/879fa40534e348a2882c.hot-update.json b/build/client/static/updates/879fa40534e348a2882c.hot-update.json new file mode 100644 index 00000000..afbdce4f --- /dev/null +++ b/build/client/static/updates/879fa40534e348a2882c.hot-update.json @@ -0,0 +1 @@ +{"h":"cae5fffc14ee37fed640","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/88b1357c7468481f0dcb.hot-update.json b/build/client/static/updates/88b1357c7468481f0dcb.hot-update.json deleted file mode 100644 index 59ca6666..00000000 --- a/build/client/static/updates/88b1357c7468481f0dcb.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"66124e16405da64c41cc","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/98fc08bd0ee2a17e6b5a.hot-update.json b/build/client/static/updates/98fc08bd0ee2a17e6b5a.hot-update.json new file mode 100644 index 00000000..04c980a5 --- /dev/null +++ b/build/client/static/updates/98fc08bd0ee2a17e6b5a.hot-update.json @@ -0,0 +1 @@ +{"h":"6bf94db3798eaf4528db","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/a3c8adc66b9f3cfcadf5.hot-update.json b/build/client/static/updates/a3c8adc66b9f3cfcadf5.hot-update.json new file mode 100644 index 00000000..f33ab5af --- /dev/null +++ b/build/client/static/updates/a3c8adc66b9f3cfcadf5.hot-update.json @@ -0,0 +1 @@ +{"h":"e167dffa12a04e2e430b","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/a779eab72386cc7fa4fe.hot-update.json b/build/client/static/updates/a779eab72386cc7fa4fe.hot-update.json new file mode 100644 index 00000000..129b0406 --- /dev/null +++ b/build/client/static/updates/a779eab72386cc7fa4fe.hot-update.json @@ -0,0 +1 @@ +{"h":"7b6bc80f97de635267f4","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/a97a0536125d7d3e0348.hot-update.json b/build/client/static/updates/a97a0536125d7d3e0348.hot-update.json new file mode 100644 index 00000000..386bc411 --- /dev/null +++ b/build/client/static/updates/a97a0536125d7d3e0348.hot-update.json @@ -0,0 +1 @@ +{"h":"2337e88cf47b25ec1e5c","c":{}} \ No newline at end of file diff --git a/build/client/static/updates/ae3c799b16f94ebf17d6.hot-update.json b/build/client/static/updates/ae3c799b16f94ebf17d6.hot-update.json new file mode 100644 index 00000000..891c2e67 --- /dev/null +++ b/build/client/static/updates/ae3c799b16f94ebf17d6.hot-update.json @@ -0,0 +1 @@ +{"h":"98fc08bd0ee2a17e6b5a","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/b7032dc26aaac7c21ff7.hot-update.json b/build/client/static/updates/b7032dc26aaac7c21ff7.hot-update.json new file mode 100644 index 00000000..36f37776 --- /dev/null +++ b/build/client/static/updates/b7032dc26aaac7c21ff7.hot-update.json @@ -0,0 +1 @@ +{"h":"05b9729b4da0d622bcb4","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/bc978d3d2d3350464949.hot-update.json b/build/client/static/updates/bc978d3d2d3350464949.hot-update.json new file mode 100644 index 00000000..6e8fd25f --- /dev/null +++ b/build/client/static/updates/bc978d3d2d3350464949.hot-update.json @@ -0,0 +1 @@ +{"h":"56cbb99e6ca7757be61a","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/bfc3ec303013b93297ef.hot-update.json b/build/client/static/updates/bfc3ec303013b93297ef.hot-update.json new file mode 100644 index 00000000..e2bb4414 --- /dev/null +++ b/build/client/static/updates/bfc3ec303013b93297ef.hot-update.json @@ -0,0 +1 @@ +{"h":"ee5e5a11b5e90b9a86b2","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/bundle.05b9729b4da0d622bcb4.hot-update.js b/build/client/static/updates/bundle.05b9729b4da0d622bcb4.hot-update.js new file mode 100644 index 00000000..00f19593 --- /dev/null +++ b/build/client/static/updates/bundle.05b9729b4da0d622bcb4.hot-update.js @@ -0,0 +1,141 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCoun: setCoun + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuMDViOTcyOWI0ZGEwZDYyMmJjYjQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VuXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQUE7QUFDQTtBQU1BO0FBQ0E7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.0b6654c94f65a2bfa530.hot-update.js b/build/client/static/updates/bundle.0b6654c94f65a2bfa530.hot-update.js new file mode 100644 index 00000000..b719d38e --- /dev/null +++ b/build/client/static/updates/bundle.0b6654c94f65a2bfa530.hot-update.js @@ -0,0 +1,143 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch(_actions.setSelectedCountry); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuMGI2NjU0Yzk0ZjY1YTJiZmE1MzAuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VudHJ5KGNvdW50cnkpIHtcbiAgICBkaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkpO1xuICB9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBQ0E7QUFRQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.1c6f1fc0df78c8b16a2d.hot-update.js b/build/client/static/updates/bundle.1c6f1fc0df78c8b16a2d.hot-update.js new file mode 100644 index 00000000..ae98633e --- /dev/null +++ b/build/client/static/updates/bundle.1c6f1fc0df78c8b16a2d.hot-update.js @@ -0,0 +1,136 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return {}; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuMWM2ZjFmYzBkZjc4YzhiMTZhMmQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHNcbiAgICBpZiAoIWNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcblxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.2337e88cf47b25ec1e5c.hot-update.js b/build/client/static/updates/bundle.2337e88cf47b25ec1e5c.hot-update.js new file mode 100644 index 00000000..ecc4a928 --- /dev/null +++ b/build/client/static/updates/bundle.2337e88cf47b25ec1e5c.hot-update.js @@ -0,0 +1,136 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!this.props.countries.length) { + this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return {}; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuMjMzN2U4OGNmNDdiMjVlYzFlNWMuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHNcbiAgICBpZiAoIXRoaXMucHJvcHMuY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBR0E7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.306b891647c456735194.hot-update.js b/build/client/static/updates/bundle.306b891647c456735194.hot-update.js new file mode 100644 index 00000000..ce7eabff --- /dev/null +++ b/build/client/static/updates/bundle.306b891647c456735194.hot-update.js @@ -0,0 +1,138 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: _actions.getCountries + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuMzA2Yjg5MTY0N2M0NTY3MzUxOTQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnByb3BzLmRpc3BhdGNoKGdldENvdW50cmllcyhgJHtDT1VOVFJJRVN9L2FsbGApKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIgKCkge1xuXG4gICAgY29uc3QgeyBzZWxlY3RlZENvdW50cnksIGNvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nTGFuZGluZyBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInPlxuICAgICAgICA8aDE+TW92aWUgU2VhcmNoPC9oMT5cbiAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgY29sLW1kLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiY291bnRyaWVzXCI+U2VsZWN0IGEgQ291bnRyeTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZENvdW50cnl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICAgIHtjb3VudHJpZXMubWFwKCh7IG5hbWUgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgIGlkPVwiY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxMaW5rIHRvPVwibW92aWVzXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XG4gICAgICAgICAgICBTZWUgYWxsIG1vdmllc1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L0xpbms+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWxlY3RlZENvdW50cnk6IHN0YXRlLnNlbGVjdGVkQ291bnRyeSxcbiAgY291bnRyaWVzOiBzdGF0ZS5jb3VudHJpZXNcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2gpID0+ICh7XG4gIGdldENvdW50cmllc1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.3c7ef8cbba8f1dc3d0ec.hot-update.js b/build/client/static/updates/bundle.3c7ef8cbba8f1dc3d0ec.hot-update.js new file mode 100644 index 00000000..421c4d6d --- /dev/null +++ b/build/client/static/updates/bundle.3c7ef8cbba8f1dc3d0ec.hot-update.js @@ -0,0 +1,141 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) {} + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuM2M3ZWY4Y2JiYThmMWRjM2QwZWMuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VudHJ5KGNvdW50cnkpIHtcbiAgICBcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQUFBO0FBQ0E7QUFRQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.3e4604344bb77aebb049.hot-update.js b/build/client/static/updates/bundle.3e4604344bb77aebb049.hot-update.js new file mode 100644 index 00000000..959c6692 --- /dev/null +++ b/build/client/static/updates/bundle.3e4604344bb77aebb049.hot-update.js @@ -0,0 +1,138 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch(getCountries("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: _actions.getCountries + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuM2U0NjA0MzQ0YmI3N2FlYmIwNDkuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXM6IGdldENvdW50cmllc0FjdGlvblxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFEQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.5189f06c5547af5a0ded.hot-update.js b/build/client/static/updates/bundle.5189f06c5547af5a0ded.hot-update.js new file mode 100644 index 00000000..598c84db --- /dev/null +++ b/build/client/static/updates/bundle.5189f06c5547af5a0ded.hot-update.js @@ -0,0 +1,134 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + if (!this.props.countries.length) { + this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return {}; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNTE4OWYwNmM1NTQ3YWY1YTBkZWQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcblxufSlcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBREE7QUFXQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7OztBQWxEQTtBQUNBO0FBcURBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.56cbb99e6ca7757be61a.hot-update.js b/build/client/static/updates/bundle.56cbb99e6ca7757be61a.hot-update.js new file mode 100644 index 00000000..1a42bfc2 --- /dev/null +++ b/build/client/static/updates/bundle.56cbb99e6ca7757be61a.hot-update.js @@ -0,0 +1,145 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var setSelectedCountry = _this.props.setSelectedCountry; + var selectedCountry = evt.target.value; + setSelectedCountry(selectedCountry); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var _this$props = this.props, + countries = _this$props.countries, + getCountries = _this$props.getCountries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props2 = this.props, + selectedCountry = _this$props2.selectedCountry, + countries = _this$props2.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNTZjYmI5OWU2Y2E3NzU3YmU2MWEuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCB7IHNldFNlbGVjdGVkQ291bnRyeSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNlbGVjdGVkQ291bnRyeShzZWxlY3RlZENvdW50cnkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuXG4gICAgY29uc3QgeyBjb3VudHJpZXMsIGdldENvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIGdldENvdW50cmllcyhgJHtDT1VOVFJJRVN9L2FsbGApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcbiAgZ2V0Q291bnRyaWVzKHVybCkge1xuICAgIGRpc3BhdGNoKGdldENvdW50cmllc0FjdGlvbih1cmwpKTtcbiAgfSxcbiAgc2V0Q291bnRyeShjb3VudHJ5KSB7XG4gICAgZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KGNvdW50cnkpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUFBO0FBRUE7QUFDQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBckRBO0FBQ0E7QUF3REE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFBQTtBQUNBO0FBUUE7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.66124e16405da64c41cc.hot-update.js b/build/client/static/updates/bundle.66124e16405da64c41cc.hot-update.js deleted file mode 100644 index 445f909b..00000000 --- a/build/client/static/updates/bundle.66124e16405da64c41cc.hot-update.js +++ /dev/null @@ -1,75 +0,0 @@ -webpackHotUpdate("bundle",{ - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); - -var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); - -var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); - -var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); - -var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); - -var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); - -__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); - -var Footer = -/*#__PURE__*/ -function (_React$Component) { - (0, _inherits2.default)(Footer, _React$Component); - - function Footer() { - (0, _classCallCheck2.default)(this, Footer); - return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Footer).apply(this, arguments)); - } - - (0, _createClass2.default)(Footer, [{ - key: "render", - value: function render() { - return _react.default.createElement("footer", { - className: "footer sm-padding bg-dark" - }, _react.default.createElement("div", { - className: "container" - }, _react.default.createElement("div", { - className: "row" - }, _react.default.createElement("div", { - className: "col-md-12" - }, _react.default.createElement("div", { - className: "footer__logo" - }, _react.default.createElement("img", { - className: "img-fluid", - src: "../../assets/img/react-logo.png", - alt: "react logo" - })), _react.default.createElement("div", { - className: "footer__copyright" - }, _react.default.createElement("p", null, "Copyright \xA9 2018. All Rights Reserved")))))); - } - }]); - return Footer; -}(_react.default.Component); - -var _default = Footer; -exports.default = _default; - -/***/ }) - -}) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNjYxMjRlMTY0MDVkYTY0YzQxY2MuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNsYXNzIEZvb3RlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIFxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxmb290ZXIgY2xhc3NOYW1lPVwiZm9vdGVyIHNtLXBhZGRpbmcgYmctZGFya1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlcl9fbG9nb1wiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltZy1mbHVpZFwiXG4gICAgICAgICAgICAgICAgICBzcmM9XCIuLi8uLi9hc3NldHMvaW1nL3JlYWN0LWxvZ28ucG5nXCJcbiAgICAgICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2NvcHlyaWdodFwiPlxuICAgICAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAyMDE4LiBBbGwgUmlnaHRzIFJlc2VydmVkPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9vdGVyPlxuICAgICk7XG4gIH1cbiAgXG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQUE7QUFRQTs7O0FBdEJBO0FBQ0E7QUF5QkE7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.6726424c38b7c05c211b.hot-update.js b/build/client/static/updates/bundle.6726424c38b7c05c211b.hot-update.js new file mode 100644 index 00000000..08ae0162 --- /dev/null +++ b/build/client/static/updates/bundle.6726424c38b7c05c211b.hot-update.js @@ -0,0 +1,134 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + if (!this.props.countries.length) { + this.props.dispatch((0, _actions.getCountries)("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps() { + return {}; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNjcyNjQyNGMzOGI3YzA1YzIxMWIuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMsIHNldFNlbGVjdGVkQ291bnRyeSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5pbXBvcnQgJy4vTGFuZGluZy5zY3NzJztcblxuY2xhc3MgTGFuZGluZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2dFxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5kaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoc2VsZWN0ZWRDb3VudHJ5KSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9ICgpID0+ICh7XG4gIFxufSlcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBREE7QUFXQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7OztBQWxEQTtBQUNBO0FBcURBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.5824cf574b29cc287e40.hot-update.js b/build/client/static/updates/bundle.6bf94db3798eaf4528db.hot-update.js similarity index 56% rename from build/client/static/updates/bundle.5824cf574b29cc287e40.hot-update.js rename to build/client/static/updates/bundle.6bf94db3798eaf4528db.hot-update.js index af971a74..816589ec 100644 --- a/build/client/static/updates/bundle.5824cf574b29cc287e40.hot-update.js +++ b/build/client/static/updates/bundle.6bf94db3798eaf4528db.hot-update.js @@ -38,7 +38,7 @@ var Footer = function Footer() { alt: "react logo" })), _react.default.createElement("div", { className: "footer__copyright" - }, _react.default.createElement("p", null, "Copyright \xA9 2018. All Rights Reserved")))))); + }, _react.default.createElement("p", null, "Copyright \xA9 ", new Date().getYear(), ". All Rights Reserved")))))); }; var _default = Footer; @@ -47,4 +47,4 @@ exports.default = _default; /***/ }) }) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNTgyNGNmNTc0YjI5Y2MyODdlNDAuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgICAgIDxmb290ZXIgY2xhc3NOYW1lPVwiZm9vdGVyIHNtLXBhZGRpbmcgYmctZGFya1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlcl9fbG9nb1wiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltZy1mbHVpZFwiXG4gICAgICAgICAgICAgICAgICBzcmM9XCIuLi8uLi9hc3NldHMvaW1nL3JlYWN0LWxvZ28ucG5nXCJcbiAgICAgICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2NvcHlyaWdodFwiPlxuICAgICAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAyMDE4LiBBbGwgUmlnaHRzIFJlc2VydmVkPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9vdGVyPlxuICAgICk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUFBO0FBWEE7QUFDQTtBQW1CQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNmJmOTRkYjM3OThlYWY0NTI4ZGIuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSB7bmV3IERhdGUoKS5nZXRZZWFyKCl9LiBBbGwgUmlnaHRzIFJlc2VydmVkPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvb3Rlcj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUFBO0FBWEE7QUFDQTtBQW1CQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.70278edb4fc19a571d0c.hot-update.js b/build/client/static/updates/bundle.70278edb4fc19a571d0c.hot-update.js new file mode 100644 index 00000000..a654a0fa --- /dev/null +++ b/build/client/static/updates/bundle.70278edb4fc19a571d0c.hot-update.js @@ -0,0 +1,50 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); + +var Footer = function Footer() { + return _react.default.createElement("footer", { + className: "footer sm-padding bg-dark" + }, _react.default.createElement("div", { + className: "container" + }, _react.default.createElement("div", { + className: "row" + }, _react.default.createElement("div", { + className: "col-md-12" + }, _react.default.createElement("div", { + className: "footer__logo" + }, _react.default.createElement("img", { + className: "img-fluid", + src: "../../assets/img/react-logo.png", + alt: "react logo" + })), _react.default.createElement("div", { + className: "footer__copyright" + }, _react.default.createElement("p", null, "Copyright \xA9 ", new Date().getFullYear(), ". All Rights Reserved")))))); +}; + +var _default = Footer; +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNzAyNzhlZGI0ZmMxOWE1NzFkMGMuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSB7bmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfS4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVhBO0FBQ0E7QUFtQkE7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.73780d0c374ef4c81c6e.hot-update.js b/build/client/static/updates/bundle.73780d0c374ef4c81c6e.hot-update.js new file mode 100644 index 00000000..8156c633 --- /dev/null +++ b/build/client/static/updates/bundle.73780d0c374ef4c81c6e.hot-update.js @@ -0,0 +1,143 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch(); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNzM3ODBkMGMzNzRlZjRjODFjNmUuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goKTtcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGNvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIGdldENvdW50cmllcyhgJHtDT1VOVFJJRVN9L2FsbGApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG5cbiAgICBjb25zdCB7IHNlbGVjdGVkQ291bnRyeSwgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdMYW5kaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcic+XG4gICAgICAgIDxoMT5Nb3ZpZSBTZWFyY2g8L2gxPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3VudHJpZXNcIj5TZWxlY3QgYSBDb3VudHJ5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ291bnRyeX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge2NvdW50cmllcy5tYXAoKHsgbmFtZSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e25hbWV9PlxuICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPExpbmsgdG89XCJtb3ZpZXNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgIFNlZSBhbGwgbW92aWVzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIHNlbGVjdGVkQ291bnRyeTogc3RhdGUuc2VsZWN0ZWRDb3VudHJ5LFxuICBjb3VudHJpZXM6IHN0YXRlLmNvdW50cmllc1xufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcbiAgZ2V0Q291bnRyaWVzKHVybCkge1xuICAgIGRpc3BhdGNoKGdldENvdW50cmllc0FjdGlvbih1cmwpKTtcbiAgfSxcbiAgc2V0Q291bnRyeShjb3VudHJ5KSB7XG4gICAgZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KGNvdW50cnkpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFBQTtBQUNBO0FBUUE7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.78dac4be9c5eeb8effdd.hot-update.js b/build/client/static/updates/bundle.78dac4be9c5eeb8effdd.hot-update.js new file mode 100644 index 00000000..ca1ccfee --- /dev/null +++ b/build/client/static/updates/bundle.78dac4be9c5eeb8effdd.hot-update.js @@ -0,0 +1,142 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + (0, _actions.setSelectedCountry)(selectedCountry); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuNzhkYWM0YmU5YzVlZWI4ZWZmZGQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNlbGVjdGVkQ291bnRyeShzZWxlY3RlZENvdW50cnkpXG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICBnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIgKCkge1xuXG4gICAgY29uc3QgeyBzZWxlY3RlZENvdW50cnksIGNvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nTGFuZGluZyBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInPlxuICAgICAgICA8aDE+TW92aWUgU2VhcmNoPC9oMT5cbiAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgY29sLW1kLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiY291bnRyaWVzXCI+U2VsZWN0IGEgQ291bnRyeTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZENvdW50cnl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICAgIHtjb3VudHJpZXMubWFwKCh7IG5hbWUgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgIGlkPVwiY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxMaW5rIHRvPVwibW92aWVzXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XG4gICAgICAgICAgICBTZWUgYWxsIG1vdmllc1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L0xpbms+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWxlY3RlZENvdW50cnk6IHN0YXRlLnNlbGVjdGVkQ291bnRyeSxcbiAgY291bnRyaWVzOiBzdGF0ZS5jb3VudHJpZXNcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2gpID0+ICh7XG4gIGdldENvdW50cmllcyh1cmwpIHtcbiAgICBkaXNwYXRjaChnZXRDb3VudHJpZXNBY3Rpb24odXJsKSk7XG4gIH0sXG4gIHNldENvdW50cnkoY291bnRyeSkge1xuICAgIGRpc3BhdGNoKHNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5KSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTGFuZGluZyk7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBQ0E7QUFRQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.7b6bc80f97de635267f4.hot-update.js b/build/client/static/updates/bundle.7b6bc80f97de635267f4.hot-update.js new file mode 100644 index 00000000..1da74c5e --- /dev/null +++ b/build/client/static/updates/bundle.7b6bc80f97de635267f4.hot-update.js @@ -0,0 +1,143 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuN2I2YmM4MGY5N2RlNjM1MjY3ZjQuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VudHJ5KGNvdW50cnkpIHtcbiAgICBkaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoY291bnRyeSkpO1xuICB9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBQ0E7QUFRQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.879fa40534e348a2882c.hot-update.js b/build/client/static/updates/bundle.879fa40534e348a2882c.hot-update.js new file mode 100644 index 00000000..b56ec79c --- /dev/null +++ b/build/client/static/updates/bundle.879fa40534e348a2882c.hot-update.js @@ -0,0 +1,140 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch(getCountries("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries() { + dispatch((0, _actions.getCountries)()); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuODc5ZmE0MDUzNGUzNDhhMjg4MmMuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXMoKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKCkpO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFBQTtBQUNBO0FBS0E7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.88b1357c7468481f0dcb.hot-update.js b/build/client/static/updates/bundle.88b1357c7468481f0dcb.hot-update.js deleted file mode 100644 index 12be5485..00000000 --- a/build/client/static/updates/bundle.88b1357c7468481f0dcb.hot-update.js +++ /dev/null @@ -1,193 +0,0 @@ -webpackHotUpdate("bundle",{ - -/***/ "./src/shared/assets/scss/styles.scss": -/*!********************************************!*\ - !*** ./src/shared/assets/scss/styles.scss ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915620030 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/components/Footer/Footer.scss": -/*!**************************************************!*\ - !*** ./src/shared/components/Footer/Footer.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618393 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/components/Header/Header.scss": -/*!**************************************************!*\ - !*** ./src/shared/components/Header/Header.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618633 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/components/Movie/Movie.scss": -/*!************************************************!*\ - !*** ./src/shared/components/Movie/Movie.scss ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618588 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/components/MovieCard/MovieCard.scss": -/*!********************************************************!*\ - !*** ./src/shared/components/MovieCard/MovieCard.scss ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618470 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/pages/About/About.scss": -/*!*******************************************!*\ - !*** ./src/shared/pages/About/About.scss ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618511 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/pages/Landing/Landing.scss": -/*!***********************************************!*\ - !*** ./src/shared/pages/Landing/Landing.scss ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618399 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/pages/MovieDetails/MovieDetails.scss": -/*!*********************************************************!*\ - !*** ./src/shared/pages/MovieDetails/MovieDetails.scss ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618521 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "./src/shared/pages/Movies/Movies.scss": -/*!*********************************************!*\ - !*** ./src/shared/pages/Movies/Movies.scss ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - if(true) { - // 1547915618479 - var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload);; - } - - -/***/ }), - -/***/ "?1e56": -false, - -/***/ "?3046": -false, - -/***/ "?565a": -false, - -/***/ "?65a8": -false, - -/***/ "?7757": -false, - -/***/ "?bf2b": -false, - -/***/ "?c791": -false, - -/***/ "?d08b": -false, - -/***/ "?e4e3": -false - -}) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuODhiMTM1N2M3NDY4NDgxZjBkY2IuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvYXNzZXRzL3Njc3Mvc3R5bGVzLnNjc3M/NmUyNSIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlci5zY3NzPzQ3NDYiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0hlYWRlci9IZWFkZXIuc2Nzcz80NjFmIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Nb3ZpZS9Nb3ZpZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Nb3ZpZUNhcmQvTW92aWVDYXJkLnNjc3M/YWE0MiIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0Fib3V0L0Fib3V0LnNjc3M/MTA1MCIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0xhbmRpbmcvTGFuZGluZy5zY3NzPzU0ZmUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9Nb3ZpZURldGFpbHMvTW92aWVEZXRhaWxzLnNjc3M/MTczZiIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL01vdmllcy9Nb3ZpZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjIwMDMwXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5MTU2MTgzOTNcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODYzM1xuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4NTg4XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5MTU2MTg0NzBcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODUxMVxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTE1NjE4Mzk5XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5MTU2MTg1MjFcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0NzkxNTYxODQ3OVxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.98fc08bd0ee2a17e6b5a.hot-update.js b/build/client/static/updates/bundle.98fc08bd0ee2a17e6b5a.hot-update.js new file mode 100644 index 00000000..b801190c --- /dev/null +++ b/build/client/static/updates/bundle.98fc08bd0ee2a17e6b5a.hot-update.js @@ -0,0 +1,50 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); + +var Footer = function Footer() { + return _react.default.createElement("footer", { + className: "footer sm-padding bg-dark" + }, _react.default.createElement("div", { + className: "container" + }, _react.default.createElement("div", { + className: "row" + }, _react.default.createElement("div", { + className: "col-md-12" + }, _react.default.createElement("div", { + className: "footer__logo" + }, _react.default.createElement("img", { + className: "img-fluid", + src: "../../assets/img/react-logo.png", + alt: "react logo" + })), _react.default.createElement("div", { + className: "footer__copyright" + }, _react.default.createElement("p", null, "Copyright \xA9 $", new Date().getYear(), ". All Rights Reserved")))))); +}; + +var _default = Footer; +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuOThmYzA4YmQwZWUyYTE3ZTZiNWEuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAke25ldyBEYXRlKCkuZ2V0WWVhcigpfS4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVhBO0FBQ0E7QUFtQkE7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.a3c8adc66b9f3cfcadf5.hot-update.js b/build/client/static/updates/bundle.a3c8adc66b9f3cfcadf5.hot-update.js new file mode 100644 index 00000000..b033e2d5 --- /dev/null +++ b/build/client/static/updates/bundle.a3c8adc66b9f3cfcadf5.hot-update.js @@ -0,0 +1,140 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch(getCountries("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries() { + dispatch(); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYTNjOGFkYzY2YjlmM2NmY2FkZjUuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXMoKSB7XG4gICAgZGlzcGF0Y2goKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTGFuZGluZyk7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7Ozs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBREE7QUFXQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7OztBQW5EQTtBQUNBO0FBc0RBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.a779eab72386cc7fa4fe.hot-update.js b/build/client/static/updates/bundle.a779eab72386cc7fa4fe.hot-update.js new file mode 100644 index 00000000..ae369c1f --- /dev/null +++ b/build/client/static/updates/bundle.a779eab72386cc7fa4fe.hot-update.js @@ -0,0 +1,143 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(co)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYTc3OWVhYjcyMzg2Y2M3ZmE0ZmUuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VudHJ5KGNvdW50cnkpIHtcbiAgICBkaXNwYXRjaChzZXRTZWxlY3RlZENvdW50cnkoY28pKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFBQTtBQUNBO0FBUUE7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.ae3c799b16f94ebf17d6.hot-update.js b/build/client/static/updates/bundle.ae3c799b16f94ebf17d6.hot-update.js new file mode 100644 index 00000000..994b1e79 --- /dev/null +++ b/build/client/static/updates/bundle.ae3c799b16f94ebf17d6.hot-update.js @@ -0,0 +1,50 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); + +var Footer = function Footer() { + return _react.default.createElement("footer", { + className: "footer sm-padding bg-dark" + }, _react.default.createElement("div", { + className: "container" + }, _react.default.createElement("div", { + className: "row" + }, _react.default.createElement("div", { + className: "col-md-12" + }, _react.default.createElement("div", { + className: "footer__logo" + }, _react.default.createElement("img", { + className: "img-fluid", + src: "../../assets/img/react-logo.png", + alt: "react logo" + })), _react.default.createElement("div", { + className: "footer__copyright" + }, _react.default.createElement("p", null, "Copyright \xA9 . All Rights Reserved")))))); +}; + +var _default = Footer; +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYWUzYzc5OWIxNmY5NGViZjE3ZDYuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9vdGVyPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQUE7QUFYQTtBQUNBO0FBbUJBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.b7032dc26aaac7c21ff7.hot-update.js b/build/client/static/updates/bundle.b7032dc26aaac7c21ff7.hot-update.js new file mode 100644 index 00000000..e90ccb8d --- /dev/null +++ b/build/client/static/updates/bundle.b7032dc26aaac7c21ff7.hot-update.js @@ -0,0 +1,140 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYjcwMzJkYzI2YWFhYzdjMjFmZjcuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFBQTtBQUNBO0FBS0E7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.bc978d3d2d3350464949.hot-update.js b/build/client/static/updates/bundle.bc978d3d2d3350464949.hot-update.js new file mode 100644 index 00000000..e6bcd121 --- /dev/null +++ b/build/client/static/updates/bundle.bc978d3d2d3350464949.hot-update.js @@ -0,0 +1,145 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var setSelectedCountry = _this.props.setSelectedCountry; + var selectedCountry = evt.target.value; + setSelectedCountry(selectedCountry); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var _this$props = this.props, + countries = _this$props.countries, + getCountries = _this$props.getCountries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props2 = this.props, + selectedCountry = _this$props2.selectedCountry, + countries = _this$props2.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYmM5NzhkM2QyZDMzNTA0NjQ5NDkuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCB7IHNldFNlbGVjdGVkQ291bnRyeSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNlbGVjdGVkQ291bnRyeShzZWxlY3RlZENvdW50cnkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzLCBnZXRDb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICBnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIgKCkge1xuXG4gICAgY29uc3QgeyBzZWxlY3RlZENvdW50cnksIGNvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nTGFuZGluZyBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInPlxuICAgICAgICA8aDE+TW92aWUgU2VhcmNoPC9oMT5cbiAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgY29sLW1kLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiY291bnRyaWVzXCI+U2VsZWN0IGEgQ291bnRyeTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZENvdW50cnl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICAgIHtjb3VudHJpZXMubWFwKCh7IG5hbWUgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgIGlkPVwiY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxMaW5rIHRvPVwibW92aWVzXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XG4gICAgICAgICAgICBTZWUgYWxsIG1vdmllc1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L0xpbms+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWxlY3RlZENvdW50cnk6IHN0YXRlLnNlbGVjdGVkQ291bnRyeSxcbiAgY291bnRyaWVzOiBzdGF0ZS5jb3VudHJpZXNcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2gpID0+ICh7XG4gIGdldENvdW50cmllcyh1cmwpIHtcbiAgICBkaXNwYXRjaChnZXRDb3VudHJpZXNBY3Rpb24odXJsKSk7XG4gIH0sXG4gIHNldENvdW50cnkoY291bnRyeSkge1xuICAgIGRpc3BhdGNoKHNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5KSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTGFuZGluZyk7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQUE7QUFFQTtBQUNBO0FBQ0E7Ozs7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFwREE7QUFDQTtBQXVEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBQ0E7QUFRQTtBQUNBOzs7OztBIiwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/build/client/static/updates/bundle.bfc3ec303013b93297ef.hot-update.js b/build/client/static/updates/bundle.bfc3ec303013b93297ef.hot-update.js new file mode 100644 index 00000000..b355a7b4 --- /dev/null +++ b/build/client/static/updates/bundle.bfc3ec303013b93297ef.hot-update.js @@ -0,0 +1,239 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/assets/scss/styles.scss": +/*!********************************************!*\ + !*** ./src/shared/assets/scss/styles.scss ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985745581 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); + +var Footer = function Footer() { + return _react.default.createElement("footer", { + className: "footer sm-padding bg-dark" + }, _react.default.createElement("div", { + className: "container" + }, _react.default.createElement("div", { + className: "row" + }, _react.default.createElement("div", { + className: "col-md-12" + }, _react.default.createElement("div", { + className: "footer__logo" + }, _react.default.createElement("img", { + className: "img-fluid", + src: "../../assets/img/react-logo.png", + alt: "react logo" + })), _react.default.createElement("div", { + className: "footer__copyright" + }, _react.default.createElement("p", null, "Copyright \xA9 $", new Date().get, ". All Rights Reserved")))))); +}; + +var _default = Footer; +exports.default = _default; + +/***/ }), + +/***/ "./src/shared/components/Footer/Footer.scss": +/*!**************************************************!*\ + !*** ./src/shared/components/Footer/Footer.scss ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743907 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/components/Header/Header.scss": +/*!**************************************************!*\ + !*** ./src/shared/components/Header/Header.scss ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743986 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/components/Movie/Movie.scss": +/*!************************************************!*\ + !*** ./src/shared/components/Movie/Movie.scss ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743999 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/components/MovieCard/MovieCard.scss": +/*!********************************************************!*\ + !*** ./src/shared/components/MovieCard/MovieCard.scss ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985744240 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/pages/About/About.scss": +/*!*******************************************!*\ + !*** ./src/shared/pages/About/About.scss ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743913 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +/*!***********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.scss ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743916 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/pages/MovieDetails/MovieDetails.scss": +/*!*********************************************************!*\ + !*** ./src/shared/pages/MovieDetails/MovieDetails.scss ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743922 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "./src/shared/pages/Movies/Movies.scss": +/*!*********************************************!*\ + !*** ./src/shared/pages/Movies/Movies.scss ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + if(true) { + // 1547985743971 + var cssReload = __webpack_require__(/*! ../../../../node_modules/css-hot-loader/hotModuleReplacement.js */ "./node_modules/css-hot-loader/hotModuleReplacement.js")(module.i, {"fileMap":"{fileName}"}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload);; + } + + +/***/ }), + +/***/ "?1e56": +false, + +/***/ "?3046": +false, + +/***/ "?565a": +false, + +/***/ "?65a8": +false, + +/***/ "?7757": +false, + +/***/ "?bf2b": +false, + +/***/ "?c791": +false, + +/***/ "?d08b": +false, + +/***/ "?e4e3": +false + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYmZjM2VjMzAzMDEzYjkzMjk3ZWYuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvYXNzZXRzL3Njc3Mvc3R5bGVzLnNjc3M/NmUyNSIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlci5zY3NzPzQ3NDYiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9jb21wb25lbnRzL0hlYWRlci9IZWFkZXIuc2Nzcz80NjFmIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Nb3ZpZS9Nb3ZpZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Nb3ZpZUNhcmQvTW92aWVDYXJkLnNjc3M/YWE0MiIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0Fib3V0L0Fib3V0LnNjc3M/MTA1MCIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL0xhbmRpbmcvTGFuZGluZy5zY3NzPzU0ZmUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NoYXJlZC9wYWdlcy9Nb3ZpZURldGFpbHMvTW92aWVEZXRhaWxzLnNjc3M/MTczZiIsIndlYnBhY2s6Ly8vLi9zcmMvc2hhcmVkL3BhZ2VzL01vdmllcy9Nb3ZpZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQ1NTgxXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAke25ldyBEYXRlKCkuZ2V0fS4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQzOTA3XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5ODZcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0Nzk4NTc0Mzk5OVxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQ0MjQwXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5MTNcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTU0Nzk4NTc0MzkxNlxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1ob3QtbG9hZGVyL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiZmlsZU1hcFwiOlwie2ZpbGVOYW1lfVwifSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTs7XG4gICAgfVxuICAiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNTQ3OTg1NzQzOTIyXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWhvdC1sb2FkZXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJmaWxlTWFwXCI6XCJ7ZmlsZU5hbWV9XCJ9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpOztcbiAgICB9XG4gICIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE1NDc5ODU3NDM5NzFcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtaG90LWxvYWRlci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImZpbGVNYXBcIjpcIntmaWxlTmFtZX1cIn0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7O1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVhBO0FBQ0E7QUFtQkE7Ozs7Ozs7Ozs7OztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.c86cf49b4185dae76b18.hot-update.js b/build/client/static/updates/bundle.c86cf49b4185dae76b18.hot-update.js new file mode 100644 index 00000000..9a4a04ff --- /dev/null +++ b/build/client/static/updates/bundle.c86cf49b4185dae76b18.hot-update.js @@ -0,0 +1,144 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + (0, _actions.setSelectedCountry)(selectedCountry); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var _this$props = this.props, + countries = _this$props.countries, + getCountries = _this$props.getCountries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props2 = this.props, + selectedCountry = _this$props2.selectedCountry, + countries = _this$props2.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: function setCountry(country) { + dispatch((0, _actions.setSelectedCountry)(country)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuYzg2Y2Y0OWI0MTg1ZGFlNzZiMTguaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNlbGVjdGVkQ291bnRyeShzZWxlY3RlZENvdW50cnkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzLCBnZXRDb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICBnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIgKCkge1xuXG4gICAgY29uc3QgeyBzZWxlY3RlZENvdW50cnksIGNvdW50cmllcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nTGFuZGluZyBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInPlxuICAgICAgICA8aDE+TW92aWUgU2VhcmNoPC9oMT5cbiAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgY29sLW1kLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiY291bnRyaWVzXCI+U2VsZWN0IGEgQ291bnRyeTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZENvdW50cnl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICAgIHtjb3VudHJpZXMubWFwKCh7IG5hbWUgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgIGlkPVwiY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxMaW5rIHRvPVwibW92aWVzXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XG4gICAgICAgICAgICBTZWUgYWxsIG1vdmllc1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L0xpbms+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBzZWxlY3RlZENvdW50cnk6IHN0YXRlLnNlbGVjdGVkQ291bnRyeSxcbiAgY291bnRyaWVzOiBzdGF0ZS5jb3VudHJpZXNcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2gpID0+ICh7XG4gIGdldENvdW50cmllcyh1cmwpIHtcbiAgICBkaXNwYXRjaChnZXRDb3VudHJpZXNBY3Rpb24odXJsKSk7XG4gIH0sXG4gIHNldENvdW50cnkoY291bnRyeSkge1xuICAgIGRpc3BhdGNoKHNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5KSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTGFuZGluZyk7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFBQTtBQUNBO0FBUUE7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.cae5fffc14ee37fed640.hot-update.js b/build/client/static/updates/bundle.cae5fffc14ee37fed640.hot-update.js new file mode 100644 index 00000000..61528897 --- /dev/null +++ b/build/client/static/updates/bundle.cae5fffc14ee37fed640.hot-update.js @@ -0,0 +1,140 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch(getCountries("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuY2FlNWZmZmMxNGVlMzdmZWQ2NDAuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKShMYW5kaW5nKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFDQTs7Ozs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFJQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFEQTtBQVdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTs7O0FBbkRBO0FBQ0E7QUFzREE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFBQTtBQUNBO0FBS0E7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/build/client/static/updates/bundle.db781727b7c46e9a2a7e.hot-update.js b/build/client/static/updates/bundle.db781727b7c46e9a2a7e.hot-update.js new file mode 100644 index 00000000..ead29adc --- /dev/null +++ b/build/client/static/updates/bundle.db781727b7c46e9a2a7e.hot-update.js @@ -0,0 +1,141 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + getCountries("".concat(_Urls.COUNTRIES, "/all")); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries(url) { + dispatch((0, _actions.getCountries)(url)); + }, + setCountry: setCountry + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuZGI3ODE3MjdiN2M0NmU5YTJhN2UuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgZ2V0Q291bnRyaWVzKGAke0NPVU5UUklFU30vYWxsYCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXModXJsKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKHVybCkpO1xuICB9LFxuICBzZXRDb3VudHJ5XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKExhbmRpbmcpOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQURBO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQU1BOzs7QUFuREE7QUFDQTtBQXNEQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQUE7QUFDQTtBQU1BO0FBQ0E7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.e167dffa12a04e2e430b.hot-update.js b/build/client/static/updates/bundle.e167dffa12a04e2e430b.hot-update.js new file mode 100644 index 00000000..1b098cb5 --- /dev/null +++ b/build/client/static/updates/bundle.e167dffa12a04e2e430b.hot-update.js @@ -0,0 +1,140 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js"); + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); + +var _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js")); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js")); + +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +var _reactRouterDom = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _Urls = __webpack_require__(/*! ../../constants/Urls */ "./src/shared/constants/Urls.js"); + +var _actions = __webpack_require__(/*! ../../actions */ "./src/shared/actions/index.js"); + +__webpack_require__(/*! ./Landing.scss */ "./src/shared/pages/Landing/Landing.scss"); + +var Landing = +/*#__PURE__*/ +function (_Component) { + (0, _inherits2.default)(Landing, _Component); + + function Landing() { + var _getPrototypeOf2; + + var _this; + + (0, _classCallCheck2.default)(this, Landing); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleChange", function (evt) { + var selectedCountry = evt.target.value; + + _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry)); + }); + return _this; + } + + (0, _createClass2.default)(Landing, [{ + key: "componentDidMount", + value: function componentDidMount() { + var countries = this.props.countries; + + if (!countries.length) { + this.props.dispatch(getCountries("".concat(_Urls.COUNTRIES, "/all"))); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selectedCountry = _this$props.selectedCountry, + countries = _this$props.countries; + return _react.default.createElement("div", { + className: "Landing d-flex flex-column align-items-center justify-content-center" + }, _react.default.createElement("h1", null, "Movie Search"), _react.default.createElement("form", { + className: "text-center col-md-4" + }, _react.default.createElement("div", { + className: "form-group" + }, _react.default.createElement("label", { + htmlFor: "countries" + }, "Select a Country"), _react.default.createElement("select", { + value: selectedCountry, + className: "form-control", + onChange: this.handleChange + }, countries.map(function (_ref) { + var name = _ref.name; + return _react.default.createElement("option", { + id: "countries", + key: name, + value: name + }, name); + })))), _react.default.createElement(_reactRouterDom.Link, { + to: "movies" + }, _react.default.createElement("button", { + type: "button", + className: "btn btn-primary" + }, "See all movies"))); + } + }]); + return Landing; +}(_react.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + selectedCountry: state.selectedCountry, + countries: state.countries + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch) { + return { + getCountries: function getCountries() { + dispatch(_actions.getCountries); + } + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps)(Landing); + +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuZTE2N2RmZmExMmEwNGUyZTQzMGIuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvcGFnZXMvTGFuZGluZy9MYW5kaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBDT1VOVFJJRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvVXJscyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgYXMgZ2V0Q291bnRyaWVzQWN0aW9uLCBzZXRTZWxlY3RlZENvdW50cnkgfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcblxuaW1wb3J0ICcuL0xhbmRpbmcuc2Nzcyc7XG5cbmNsYXNzIExhbmRpbmcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldnRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGhhbmRsZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goc2V0U2VsZWN0ZWRDb3VudHJ5KHNlbGVjdGVkQ291bnRyeSkpO1xuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgY291bnRyaWVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghY291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChnZXRDb3VudHJpZXMoYCR7Q09VTlRSSUVTfS9hbGxgKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyICgpIHtcblxuICAgIGNvbnN0IHsgc2VsZWN0ZWRDb3VudHJ5LCBjb3VudHJpZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J0xhbmRpbmcgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJz5cbiAgICAgICAgPGgxPk1vdmllIFNlYXJjaDwvaDE+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImNvdW50cmllc1wiPlNlbGVjdCBhIENvdW50cnk8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRDb3VudHJ5fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7Y291bnRyaWVzLm1hcCgoeyBuYW1lIH0pID0+IChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBpZD1cImNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8TGluayB0bz1cIm1vdmllc1wiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgU2VlIGFsbCBtb3ZpZXNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSkgPT4gKHtcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdGF0ZS5zZWxlY3RlZENvdW50cnksXG4gIGNvdW50cmllczogc3RhdGUuY291bnRyaWVzXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBnZXRDb3VudHJpZXMoKSB7XG4gICAgZGlzcGF0Y2goZ2V0Q291bnRyaWVzQWN0aW9uKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoTGFuZGluZyk7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7Ozs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBREE7QUFXQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7OztBQW5EQTtBQUNBO0FBc0RBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/bundle.ee5e5a11b5e90b9a86b2.hot-update.js b/build/client/static/updates/bundle.ee5e5a11b5e90b9a86b2.hot-update.js new file mode 100644 index 00000000..43dc7a43 --- /dev/null +++ b/build/client/static/updates/bundle.ee5e5a11b5e90b9a86b2.hot-update.js @@ -0,0 +1,50 @@ +webpackHotUpdate("bundle",{ + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js")); + +__webpack_require__(/*! ./Footer.scss */ "./src/shared/components/Footer/Footer.scss"); + +var Footer = function Footer() { + return _react.default.createElement("footer", { + className: "footer sm-padding bg-dark" + }, _react.default.createElement("div", { + className: "container" + }, _react.default.createElement("div", { + className: "row" + }, _react.default.createElement("div", { + className: "col-md-12" + }, _react.default.createElement("div", { + className: "footer__logo" + }, _react.default.createElement("img", { + className: "img-fluid", + src: "../../assets/img/react-logo.png", + alt: "react logo" + })), _react.default.createElement("div", { + className: "footer__copyright" + }, _react.default.createElement("p", null, "Copyright \xA9 $", new Date().getYear(), ". All Rights Reserved")))))); +}; + +var _default = Footer; +exports.default = _default; + +/***/ }) + +}) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlcy9idW5kbGUuZWU1ZTVhMTFiNWU5MGI5YTg2YjIuaG90LXVwZGF0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCAnLi9Gb290ZXIuc2Nzcyc7XG5cbmNvbnN0IEZvb3RlciA9ICgpID0+IChcbiAgPGZvb3RlciBjbGFzc05hbWU9XCJmb290ZXIgc20tcGFkZGluZyBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJfX2xvZ29cIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1nLWZsdWlkXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9yZWFjdC1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIGFsdD1cInJlYWN0IGxvZ29cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyX19jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgIDxwPkNvcHlyaWdodCDCqSAke25ldyBEYXRlKCkuZ2V0WWVhcigpfS4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVhBO0FBQ0E7QUFtQkE7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/build/client/static/updates/c86cf49b4185dae76b18.hot-update.json b/build/client/static/updates/c86cf49b4185dae76b18.hot-update.json new file mode 100644 index 00000000..c20192c7 --- /dev/null +++ b/build/client/static/updates/c86cf49b4185dae76b18.hot-update.json @@ -0,0 +1 @@ +{"h":"bc978d3d2d3350464949","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/cae5fffc14ee37fed640.hot-update.json b/build/client/static/updates/cae5fffc14ee37fed640.hot-update.json new file mode 100644 index 00000000..2c42168e --- /dev/null +++ b/build/client/static/updates/cae5fffc14ee37fed640.hot-update.json @@ -0,0 +1 @@ +{"h":"b7032dc26aaac7c21ff7","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/d0f4d389de2f336b525b.hot-update.json b/build/client/static/updates/d0f4d389de2f336b525b.hot-update.json new file mode 100644 index 00000000..bf9cff9f --- /dev/null +++ b/build/client/static/updates/d0f4d389de2f336b525b.hot-update.json @@ -0,0 +1 @@ +{"h":"5b3329fc10532914bd64","c":{}} \ No newline at end of file diff --git a/build/client/static/updates/db781727b7c46e9a2a7e.hot-update.json b/build/client/static/updates/db781727b7c46e9a2a7e.hot-update.json new file mode 100644 index 00000000..a6a97ad9 --- /dev/null +++ b/build/client/static/updates/db781727b7c46e9a2a7e.hot-update.json @@ -0,0 +1 @@ +{"h":"3c7ef8cbba8f1dc3d0ec","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/e167dffa12a04e2e430b.hot-update.json b/build/client/static/updates/e167dffa12a04e2e430b.hot-update.json new file mode 100644 index 00000000..fce8d944 --- /dev/null +++ b/build/client/static/updates/e167dffa12a04e2e430b.hot-update.json @@ -0,0 +1 @@ +{"h":"879fa40534e348a2882c","c":{"bundle":true}} \ No newline at end of file diff --git a/build/client/static/updates/ee5e5a11b5e90b9a86b2.hot-update.json b/build/client/static/updates/ee5e5a11b5e90b9a86b2.hot-update.json new file mode 100644 index 00000000..d9f85c13 --- /dev/null +++ b/build/client/static/updates/ee5e5a11b5e90b9a86b2.hot-update.json @@ -0,0 +1 @@ +{"h":"ae3c799b16f94ebf17d6","c":{"bundle":true}} \ No newline at end of file diff --git a/build/server/081322e4d2f61cec561a.hot-update.json b/build/server/081322e4d2f61cec561a.hot-update.json new file mode 100644 index 00000000..764bda39 --- /dev/null +++ b/build/server/081322e4d2f61cec561a.hot-update.json @@ -0,0 +1 @@ +{"h":"6867769d16ecddeb84e2","c":{"server":true}} \ No newline at end of file diff --git a/build/server/0948062ae1b87cbcbc27.hot-update.json b/build/server/0948062ae1b87cbcbc27.hot-update.json new file mode 100644 index 00000000..09c95ec3 --- /dev/null +++ b/build/server/0948062ae1b87cbcbc27.hot-update.json @@ -0,0 +1 @@ +{"h":"98b3d40157b766fa7792","c":{"server":true}} \ No newline at end of file diff --git a/build/server/0a3358a4d0eac6ebc3b2.hot-update.json b/build/server/0a3358a4d0eac6ebc3b2.hot-update.json new file mode 100644 index 00000000..99f72dfe --- /dev/null +++ b/build/server/0a3358a4d0eac6ebc3b2.hot-update.json @@ -0,0 +1 @@ +{"h":"2e42172a48b3126eec13","c":{"server":true}} \ No newline at end of file diff --git a/build/server/0acc8a9ccc555706048e.hot-update.json b/build/server/0acc8a9ccc555706048e.hot-update.json deleted file mode 100644 index 3bba1c15..00000000 --- a/build/server/0acc8a9ccc555706048e.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"9d02fda0ab85da68c30f","c":{"server":true}} \ No newline at end of file diff --git a/build/server/13b3d07960cdfdccd263.hot-update.json b/build/server/13b3d07960cdfdccd263.hot-update.json new file mode 100644 index 00000000..c2fd68be --- /dev/null +++ b/build/server/13b3d07960cdfdccd263.hot-update.json @@ -0,0 +1 @@ +{"h":"b021b9739e9afabc2561","c":{"server":true}} \ No newline at end of file diff --git a/build/server/1c33234cdeff813d8c74.hot-update.json b/build/server/1c33234cdeff813d8c74.hot-update.json deleted file mode 100644 index 3df931b2..00000000 --- a/build/server/1c33234cdeff813d8c74.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"d124a565de1c2638b548","c":{"server":true}} \ No newline at end of file diff --git a/build/server/2677b2bf2f1d713ae259.hot-update.json b/build/server/2677b2bf2f1d713ae259.hot-update.json new file mode 100644 index 00000000..afb83146 --- /dev/null +++ b/build/server/2677b2bf2f1d713ae259.hot-update.json @@ -0,0 +1 @@ +{"h":"ff7e2c1c70a32f1ed9c5","c":{"server":true}} \ No newline at end of file diff --git a/build/server/2af0e740145b282586bd.hot-update.json b/build/server/2af0e740145b282586bd.hot-update.json new file mode 100644 index 00000000..9b5ab4e2 --- /dev/null +++ b/build/server/2af0e740145b282586bd.hot-update.json @@ -0,0 +1 @@ +{"h":"44ac901e193852be1a5c","c":{"server":true}} \ No newline at end of file diff --git a/build/server/2d1db1f0d003a7255355.hot-update.json b/build/server/2d1db1f0d003a7255355.hot-update.json new file mode 100644 index 00000000..7fa3b4a8 --- /dev/null +++ b/build/server/2d1db1f0d003a7255355.hot-update.json @@ -0,0 +1 @@ +{"h":"a6515f44ae654f88cf69","c":{"server":true}} \ No newline at end of file diff --git a/build/server/2e42172a48b3126eec13.hot-update.json b/build/server/2e42172a48b3126eec13.hot-update.json new file mode 100644 index 00000000..0b66249c --- /dev/null +++ b/build/server/2e42172a48b3126eec13.hot-update.json @@ -0,0 +1 @@ +{"h":"6a29d178dbdd776ee6c8","c":{"server":true}} \ No newline at end of file diff --git a/build/server/36e454ac82e78591c3be.hot-update.json b/build/server/36e454ac82e78591c3be.hot-update.json new file mode 100644 index 00000000..481709db --- /dev/null +++ b/build/server/36e454ac82e78591c3be.hot-update.json @@ -0,0 +1 @@ +{"h":"a81124648213f1076765","c":{"server":true}} \ No newline at end of file diff --git a/build/server/4319e60e20967ee9306e.hot-update.json b/build/server/4319e60e20967ee9306e.hot-update.json new file mode 100644 index 00000000..fbb231b9 --- /dev/null +++ b/build/server/4319e60e20967ee9306e.hot-update.json @@ -0,0 +1 @@ +{"h":"f8cb34021973887f2813","c":{"server":true}} \ No newline at end of file diff --git a/build/server/44ac901e193852be1a5c.hot-update.json b/build/server/44ac901e193852be1a5c.hot-update.json new file mode 100644 index 00000000..885a505f --- /dev/null +++ b/build/server/44ac901e193852be1a5c.hot-update.json @@ -0,0 +1 @@ +{"h":"9e5546701add6d5409fa","c":{"server":true}} \ No newline at end of file diff --git a/build/server/4957889460ecdee5df30.hot-update.json b/build/server/4957889460ecdee5df30.hot-update.json new file mode 100644 index 00000000..07353cd0 --- /dev/null +++ b/build/server/4957889460ecdee5df30.hot-update.json @@ -0,0 +1 @@ +{"h":"4319e60e20967ee9306e","c":{"server":true}} \ No newline at end of file diff --git a/build/server/4aa9cecc000cb9ed2dd0.hot-update.json b/build/server/4aa9cecc000cb9ed2dd0.hot-update.json new file mode 100644 index 00000000..b1cadfc7 --- /dev/null +++ b/build/server/4aa9cecc000cb9ed2dd0.hot-update.json @@ -0,0 +1 @@ +{"h":"bceaa890bff4f16bd258","c":{"server":true}} \ No newline at end of file diff --git a/build/server/4e43c857b96efd2c10ed.hot-update.json b/build/server/4e43c857b96efd2c10ed.hot-update.json new file mode 100644 index 00000000..057145fc --- /dev/null +++ b/build/server/4e43c857b96efd2c10ed.hot-update.json @@ -0,0 +1 @@ +{"h":"2d1db1f0d003a7255355","c":{"server":true}} \ No newline at end of file diff --git a/build/server/5c57b2dee6104780b906.hot-update.json b/build/server/5c57b2dee6104780b906.hot-update.json new file mode 100644 index 00000000..f7ab0d7e --- /dev/null +++ b/build/server/5c57b2dee6104780b906.hot-update.json @@ -0,0 +1 @@ +{"h":"4e43c857b96efd2c10ed","c":{"server":true}} \ No newline at end of file diff --git a/build/server/6867769d16ecddeb84e2.hot-update.json b/build/server/6867769d16ecddeb84e2.hot-update.json new file mode 100644 index 00000000..04940769 --- /dev/null +++ b/build/server/6867769d16ecddeb84e2.hot-update.json @@ -0,0 +1 @@ +{"h":"36e454ac82e78591c3be","c":{"server":true}} \ No newline at end of file diff --git a/build/server/6a29d178dbdd776ee6c8.hot-update.json b/build/server/6a29d178dbdd776ee6c8.hot-update.json new file mode 100644 index 00000000..1afb3675 --- /dev/null +++ b/build/server/6a29d178dbdd776ee6c8.hot-update.json @@ -0,0 +1 @@ +{"h":"0948062ae1b87cbcbc27","c":{"server":true}} \ No newline at end of file diff --git a/build/server/7792656af2f5c6d8be15.hot-update.json b/build/server/7792656af2f5c6d8be15.hot-update.json new file mode 100644 index 00000000..177c8a61 --- /dev/null +++ b/build/server/7792656af2f5c6d8be15.hot-update.json @@ -0,0 +1 @@ +{"h":"84a53b2da9b7d1266e8a","c":{"server":true}} \ No newline at end of file diff --git a/build/server/78f950b88a5f941b8ed2.hot-update.json b/build/server/78f950b88a5f941b8ed2.hot-update.json new file mode 100644 index 00000000..a44c71f8 --- /dev/null +++ b/build/server/78f950b88a5f941b8ed2.hot-update.json @@ -0,0 +1 @@ +{"h":"4aa9cecc000cb9ed2dd0","c":{"server":true}} \ No newline at end of file diff --git a/build/server/7cc1fc99eda6306b3fa2.hot-update.json b/build/server/7cc1fc99eda6306b3fa2.hot-update.json new file mode 100644 index 00000000..dbb70ac2 --- /dev/null +++ b/build/server/7cc1fc99eda6306b3fa2.hot-update.json @@ -0,0 +1 @@ +{"h":"4957889460ecdee5df30","c":{"server":true}} \ No newline at end of file diff --git a/build/server/84a53b2da9b7d1266e8a.hot-update.json b/build/server/84a53b2da9b7d1266e8a.hot-update.json new file mode 100644 index 00000000..db2698b8 --- /dev/null +++ b/build/server/84a53b2da9b7d1266e8a.hot-update.json @@ -0,0 +1 @@ +{"h":"2af0e740145b282586bd","c":{"server":true}} \ No newline at end of file diff --git a/build/server/8948ef959f485e2458f6.hot-update.json b/build/server/8948ef959f485e2458f6.hot-update.json deleted file mode 100644 index 2d716ba3..00000000 --- a/build/server/8948ef959f485e2458f6.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"00cf8c97482ba337d68d","c":{"server":true}} \ No newline at end of file diff --git a/build/server/920c891c4b34c06bc559.hot-update.json b/build/server/920c891c4b34c06bc559.hot-update.json new file mode 100644 index 00000000..a5af7ee9 --- /dev/null +++ b/build/server/920c891c4b34c06bc559.hot-update.json @@ -0,0 +1 @@ +{"h":"7792656af2f5c6d8be15","c":{"server":true}} \ No newline at end of file diff --git a/build/server/98b3d40157b766fa7792.hot-update.json b/build/server/98b3d40157b766fa7792.hot-update.json new file mode 100644 index 00000000..fe44295e --- /dev/null +++ b/build/server/98b3d40157b766fa7792.hot-update.json @@ -0,0 +1 @@ +{"h":"a1933c29e6217461b490","c":{"server":true}} \ No newline at end of file diff --git a/build/server/9959e0067a62f246592c.hot-update.json b/build/server/9959e0067a62f246592c.hot-update.json new file mode 100644 index 00000000..86ef73a3 --- /dev/null +++ b/build/server/9959e0067a62f246592c.hot-update.json @@ -0,0 +1 @@ +{"h":"97befa90bcfc48b47f11","c":{"server":true}} \ No newline at end of file diff --git a/build/server/9d02fda0ab85da68c30f.hot-update.json b/build/server/9d02fda0ab85da68c30f.hot-update.json deleted file mode 100644 index 25a6d58c..00000000 --- a/build/server/9d02fda0ab85da68c30f.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"1c33234cdeff813d8c74","c":{"server":true}} \ No newline at end of file diff --git a/build/server/9e5546701add6d5409fa.hot-update.json b/build/server/9e5546701add6d5409fa.hot-update.json new file mode 100644 index 00000000..a120e03e --- /dev/null +++ b/build/server/9e5546701add6d5409fa.hot-update.json @@ -0,0 +1 @@ +{"h":"9959e0067a62f246592c","c":{"server":true}} \ No newline at end of file diff --git a/build/server/a1933c29e6217461b490.hot-update.json b/build/server/a1933c29e6217461b490.hot-update.json new file mode 100644 index 00000000..3cf5e7db --- /dev/null +++ b/build/server/a1933c29e6217461b490.hot-update.json @@ -0,0 +1 @@ +{"h":"fd459c694dd1d251bc6d","c":{"server":true}} \ No newline at end of file diff --git a/build/server/a6515f44ae654f88cf69.hot-update.json b/build/server/a6515f44ae654f88cf69.hot-update.json new file mode 100644 index 00000000..ce509c71 --- /dev/null +++ b/build/server/a6515f44ae654f88cf69.hot-update.json @@ -0,0 +1 @@ +{"h":"13b3d07960cdfdccd263","c":{"server":true}} \ No newline at end of file diff --git a/build/server/a81124648213f1076765.hot-update.json b/build/server/a81124648213f1076765.hot-update.json new file mode 100644 index 00000000..7eff0920 --- /dev/null +++ b/build/server/a81124648213f1076765.hot-update.json @@ -0,0 +1 @@ +{"h":"2677b2bf2f1d713ae259","c":{"server":true}} \ No newline at end of file diff --git a/build/server/b021b9739e9afabc2561.hot-update.json b/build/server/b021b9739e9afabc2561.hot-update.json new file mode 100644 index 00000000..3d3d16eb --- /dev/null +++ b/build/server/b021b9739e9afabc2561.hot-update.json @@ -0,0 +1 @@ +{"h":"78f950b88a5f941b8ed2","c":{"server":true}} \ No newline at end of file diff --git a/build/server/b1fdf44d5a4f144811cb.hot-update.json b/build/server/b1fdf44d5a4f144811cb.hot-update.json new file mode 100644 index 00000000..858ef989 --- /dev/null +++ b/build/server/b1fdf44d5a4f144811cb.hot-update.json @@ -0,0 +1 @@ +{"h":"5c57b2dee6104780b906","c":{"server":true}} \ No newline at end of file diff --git a/build/server/bceaa890bff4f16bd258.hot-update.json b/build/server/bceaa890bff4f16bd258.hot-update.json new file mode 100644 index 00000000..a51bde55 --- /dev/null +++ b/build/server/bceaa890bff4f16bd258.hot-update.json @@ -0,0 +1 @@ +{"h":"7cc1fc99eda6306b3fa2","c":{"server":true}} \ No newline at end of file diff --git a/build/server/d124a565de1c2638b548.hot-update.json b/build/server/d124a565de1c2638b548.hot-update.json deleted file mode 100644 index 9cde263b..00000000 --- a/build/server/d124a565de1c2638b548.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"8948ef959f485e2458f6","c":{"server":true}} \ No newline at end of file diff --git a/build/server/eb49b7b3424ec497ba76.hot-update.json b/build/server/eb49b7b3424ec497ba76.hot-update.json deleted file mode 100644 index f688b486..00000000 --- a/build/server/eb49b7b3424ec497ba76.hot-update.json +++ /dev/null @@ -1 +0,0 @@ -{"h":"0acc8a9ccc555706048e","c":{"server":true}} \ No newline at end of file diff --git a/build/server/edac8c81a05bbc4c08a3.hot-update.json b/build/server/edac8c81a05bbc4c08a3.hot-update.json new file mode 100644 index 00000000..71c082fa --- /dev/null +++ b/build/server/edac8c81a05bbc4c08a3.hot-update.json @@ -0,0 +1 @@ +{"h":"b1fdf44d5a4f144811cb","c":{"server":true}} \ No newline at end of file diff --git a/build/server/f8108cd34d400cf3513e.hot-update.json b/build/server/f8108cd34d400cf3513e.hot-update.json new file mode 100644 index 00000000..1671b951 --- /dev/null +++ b/build/server/f8108cd34d400cf3513e.hot-update.json @@ -0,0 +1 @@ +{"h":"920c891c4b34c06bc559","c":{"server":true}} \ No newline at end of file diff --git a/build/server/f8cb34021973887f2813.hot-update.json b/build/server/f8cb34021973887f2813.hot-update.json new file mode 100644 index 00000000..4a937fb9 --- /dev/null +++ b/build/server/f8cb34021973887f2813.hot-update.json @@ -0,0 +1 @@ +{"h":"f8108cd34d400cf3513e","c":{"server":true}} \ No newline at end of file diff --git a/build/server/fd459c694dd1d251bc6d.hot-update.json b/build/server/fd459c694dd1d251bc6d.hot-update.json new file mode 100644 index 00000000..b17d9c18 --- /dev/null +++ b/build/server/fd459c694dd1d251bc6d.hot-update.json @@ -0,0 +1 @@ +{"h":"edac8c81a05bbc4c08a3","c":{"server":true}} \ No newline at end of file diff --git a/build/server/ff7e2c1c70a32f1ed9c5.hot-update.json b/build/server/ff7e2c1c70a32f1ed9c5.hot-update.json new file mode 100644 index 00000000..15dbe9e2 --- /dev/null +++ b/build/server/ff7e2c1c70a32f1ed9c5.hot-update.json @@ -0,0 +1 @@ +{"h":"0a3358a4d0eac6ebc3b2","c":{"server":true}} \ No newline at end of file diff --git a/build/server/server.8948ef959f485e2458f6.hot-update.js b/build/server/server.081322e4d2f61cec561a.hot-update.js similarity index 59% rename from build/server/server.8948ef959f485e2458f6.hot-update.js rename to build/server/server.081322e4d2f61cec561a.hot-update.js index 10f2adad..209b65d0 100644 --- a/build/server/server.8948ef959f485e2458f6.hot-update.js +++ b/build/server/server.081322e4d2f61cec561a.hot-update.js @@ -9,18 +9,7 @@ exports.modules = { /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 2018. All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }), - -/***/ "./src/shared/components/Footer/Footer.scss": -/*!**************************************************!*\ - !*** ./src/shared/components/Footer/Footer.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.i, \".footer {\\n background: #1C1D21; }\\n .footer .footer__logo {\\n height: 141px;\\n margin: 0 auto;\\n text-align: center;\\n width: 200px; }\\n .footer .footer__copyright {\\n color: #FFFFFF;\\n text-align: center; }\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.scss?"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 $\", new Date().get, \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); /***/ }) diff --git a/build/server/server.0948062ae1b87cbcbc27.hot-update.js b/build/server/server.0948062ae1b87cbcbc27.hot-update.js new file mode 100644 index 00000000..6f6bd5cc --- /dev/null +++ b/build/server/server.0948062ae1b87cbcbc27.hot-update.js @@ -0,0 +1,21 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +false, + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/pages/Landing/Landing.js: Unexpected token (19:4)\\n\\n\\u001b[0m \\u001b[90m 17 | \\u001b[39m handleChange \\u001b[33m=\\u001b[39m (evt) \\u001b[33m=>\\u001b[39m {\\u001b[0m\\n\\u001b[0m \\u001b[90m 18 | \\u001b[39m \\u001b[36mconst\\u001b[39m \\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 19 | \\u001b[39m \\u001b[36mconst\\u001b[39m selectedCountry \\u001b[33m=\\u001b[39m evt\\u001b[33m.\\u001b[39mtarget\\u001b[33m.\\u001b[39mvalue\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 20 | \\u001b[39m \\u001b[36mthis\\u001b[39m\\u001b[33m.\\u001b[39mprops\\u001b[33m.\\u001b[39mdispatch(setSelectedCountry(selectedCountry))\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 21 | \\u001b[39m }\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 22 | \\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseBindingAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5652:20)\\n at _class.parseVarHead (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8167:20)\\n at _class.parseVarHead (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2734:42)\\n at _class.parseVar (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8143:12)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7960:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseBlock (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8045:10)\\n at _class.parseFunctionBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7153:24)\\n at /Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2107:58\\n at _class.forwardNoArrowParamsConversionAt (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2322:18)\\n at _class.parseFunctionBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2106:21)\\n at _class.parseArrowExpression (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7106:10)\\n at _class.parseParenAndDistinguishExpression (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6714:12)\\n at _class.parseParenAndDistinguishExpression (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2860:71)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6469:21)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3743:52)\");\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +false + +}; \ No newline at end of file diff --git a/build/server/server.0a3358a4d0eac6ebc3b2.hot-update.js b/build/server/server.0a3358a4d0eac6ebc3b2.hot-update.js new file mode 100644 index 00000000..a5990d97 --- /dev/null +++ b/build/server/server.0a3358a4d0eac6ebc3b2.hot-update.js @@ -0,0 +1,21 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +false, + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/pages/Landing/Landing.js: Unexpected token (71:0)\\n\\n\\u001b[0m \\u001b[90m 69 | \\u001b[39m\\u001b[36mconst\\u001b[39m map\\u001b[0m\\n\\u001b[0m \\u001b[90m 70 | \\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 71 | \\u001b[39m\\u001b[36mexport\\u001b[39m \\u001b[36mdefault\\u001b[39m connect(mapStateToProps)(\\u001b[33mLanding\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseVar (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8150:18)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7960:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\\n at process._tickCallback (internal/process/next_tick.js:61:11)\");\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +false + +}; \ No newline at end of file diff --git a/build/server/server.0acc8a9ccc555706048e.hot-update.js b/build/server/server.0acc8a9ccc555706048e.hot-update.js deleted file mode 100644 index 28374ce7..00000000 --- a/build/server/server.0acc8a9ccc555706048e.hot-update.js +++ /dev/null @@ -1,18 +0,0 @@ -exports.id = "server"; -exports.modules = { - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/components/Footer/Footer.js: Unexpected token (5:13)\\n\\n\\u001b[0m \\u001b[90m 3 | \\u001b[39m\\u001b[36mimport\\u001b[39m \\u001b[32m'./Footer.scss'\\u001b[39m\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 4 | \\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 5 | \\u001b[39m\\u001b[36mconst\\u001b[39m \\u001b[33mFooter\\u001b[39m \\u001b[36mextends\\u001b[39m \\u001b[33mReact\\u001b[39m\\u001b[33m.\\u001b[39m\\u001b[33mComponent\\u001b[39m {\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 6 | \\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 7 | \\u001b[39m render() {\\u001b[0m\\n\\u001b[0m \\u001b[90m 8 | \\u001b[39m \\u001b[36mreturn\\u001b[39m (\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseVar (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8150:18)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7960:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\\n at process._tickCallback (internal/process/next_tick.js:61:11)\");\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }), - -/***/ "./src/shared/components/Footer/Footer.scss": -false - -}; \ No newline at end of file diff --git a/build/server/server.13b3d07960cdfdccd263.hot-update.js b/build/server/server.13b3d07960cdfdccd263.hot-update.js new file mode 100644 index 00000000..5d2e793c --- /dev/null +++ b/build/server/server.13b3d07960cdfdccd263.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch(getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries() {\n dispatch(_actions.getCountries);\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.1c33234cdeff813d8c74.hot-update.js b/build/server/server.1c33234cdeff813d8c74.hot-update.js deleted file mode 100644 index f211c532..00000000 --- a/build/server/server.1c33234cdeff813d8c74.hot-update.js +++ /dev/null @@ -1,15 +0,0 @@ -exports.id = "server"; -exports.modules = { - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/components/Footer/Footer.js: Unexpected token, expected \\\";\\\" (7:11)\\n\\n\\u001b[0m \\u001b[90m 5 | \\u001b[39m\\u001b[36mconst\\u001b[39m \\u001b[33mFooter\\u001b[39m \\u001b[33m=\\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 6 | \\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 7 | \\u001b[39m render() {\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 8 | \\u001b[39m \\u001b[36mreturn\\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 9 | \\u001b[39m }\\u001b[0m\\n\\u001b[0m \\u001b[90m 10 | \\u001b[39m \\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.semicolon (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5362:40)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7961:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\\n at process._tickCallback (internal/process/next_tick.js:61:11)\");\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }) - -}; \ No newline at end of file diff --git a/build/server/server.2677b2bf2f1d713ae259.hot-update.js b/build/server/server.2677b2bf2f1d713ae259.hot-update.js new file mode 100644 index 00000000..7e042d73 --- /dev/null +++ b/build/server/server.2677b2bf2f1d713ae259.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 \", new Date().getYear(), \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.2af0e740145b282586bd.hot-update.js b/build/server/server.2af0e740145b282586bd.hot-update.js new file mode 100644 index 00000000..ffedcb54 --- /dev/null +++ b/build/server/server.2af0e740145b282586bd.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var setSelectedCountry = _this.props.setSelectedCountry;\n var selectedCountry = evt.target.value;\n setSelectedCountry(selectedCountry);\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n countries = _this$props.countries,\n getCountries = _this$props.getCountries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n selectedCountry = _this$props2.selectedCountry,\n countries = _this$props2.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.2d1db1f0d003a7255355.hot-update.js b/build/server/server.2d1db1f0d003a7255355.hot-update.js new file mode 100644 index 00000000..d1f8b2bb --- /dev/null +++ b/build/server/server.2d1db1f0d003a7255355.hot-update.js @@ -0,0 +1,39 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +/*!**************************************!*\ + !*** ./src/shared/constants/Urls.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.COUNTRIES = void 0;\nvar COUNTRIES = 'https://restcountries.eu/rest/v2';\nexports.COUNTRIES = COUNTRIES;\n\n//# sourceURL=webpack:///./src/shared/constants/Urls.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch(getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: _actions.getCountries\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +/*!***********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.scss ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.i, \".Landing {\\n height: calc(100vh - 181px); }\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.scss?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.2e42172a48b3126eec13.hot-update.js b/build/server/server.2e42172a48b3126eec13.hot-update.js new file mode 100644 index 00000000..e26d8633 --- /dev/null +++ b/build/server/server.2e42172a48b3126eec13.hot-update.js @@ -0,0 +1,39 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +/*!**************************************!*\ + !*** ./src/shared/constants/Urls.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.COUNTRIES = void 0;\nvar COUNTRIES = 'https://restcountries.eu/rest/v2';\nexports.COUNTRIES = COUNTRIES;\n\n//# sourceURL=webpack:///./src/shared/constants/Urls.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps() {\n return {};\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +/*!***********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.scss ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.i, \".Landing {\\n height: calc(100vh - 181px); }\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.scss?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.36e454ac82e78591c3be.hot-update.js b/build/server/server.36e454ac82e78591c3be.hot-update.js new file mode 100644 index 00000000..1e46af70 --- /dev/null +++ b/build/server/server.36e454ac82e78591c3be.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 . All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.4319e60e20967ee9306e.hot-update.js b/build/server/server.4319e60e20967ee9306e.hot-update.js new file mode 100644 index 00000000..d5ef747d --- /dev/null +++ b/build/server/server.4319e60e20967ee9306e.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch(_actions.setSelectedCountry);\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.44ac901e193852be1a5c.hot-update.js b/build/server/server.44ac901e193852be1a5c.hot-update.js new file mode 100644 index 00000000..1b0e5b5d --- /dev/null +++ b/build/server/server.44ac901e193852be1a5c.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var setSelectedCountry = _this.props.setSelectedCountry;\n var selectedCountry = evt.target.value;\n setSelectedCountry(selectedCountry);\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n countries = _this$props.countries,\n getCountries = _this$props.getCountries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n selectedCountry = _this$props2.selectedCountry,\n countries = _this$props2.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.4957889460ecdee5df30.hot-update.js b/build/server/server.4957889460ecdee5df30.hot-update.js new file mode 100644 index 00000000..2f43c609 --- /dev/null +++ b/build/server/server.4957889460ecdee5df30.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {}\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.4aa9cecc000cb9ed2dd0.hot-update.js b/build/server/server.4aa9cecc000cb9ed2dd0.hot-update.js new file mode 100644 index 00000000..ed8e115f --- /dev/null +++ b/build/server/server.4aa9cecc000cb9ed2dd0.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.4e43c857b96efd2c10ed.hot-update.js b/build/server/server.4e43c857b96efd2c10ed.hot-update.js new file mode 100644 index 00000000..48903706 --- /dev/null +++ b/build/server/server.4e43c857b96efd2c10ed.hot-update.js @@ -0,0 +1,15 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/pages/Landing/Landing.js: Unexpected token (72:0)\\n\\n\\u001b[0m \\u001b[90m 70 | \\u001b[39m\\u001b[36mconst\\u001b[39m mapDispatchToProps \\u001b[33m=\\u001b[39m (dispatch) \\u001b[33m=>\\u001b[39m ({\\u001b[0m\\n\\u001b[0m \\u001b[90m 71 | \\u001b[39m getCountries\\u001b[33m:\\u001b[39m \\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 72 | \\u001b[39m})\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 73 | \\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 74 | \\u001b[39m\\u001b[36mexport\\u001b[39m \\u001b[36mdefault\\u001b[39m connect(mapStateToProps)(\\u001b[33mLanding\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6537:20)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3743:52)\\n at _class.parseExprSubscripts (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6100:21)\\n at _class.parseMaybeUnary (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6079:21)\\n at _class.parseExprOps (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5964:21)\\n at _class.parseMaybeConditional (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5936:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5883:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2807:53)\\n at _class.parseObjectProperty (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7004:101)\\n at _class.parseObjPropValue (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7029:99)\\n at _class.parseObjPropValue (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2587:47)\\n at _class.parseObj (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6940:12)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6483:21)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3743:52)\\n at _class.parseExprSubscripts (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6100:21)\\n at _class.parseMaybeUnary (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6079:21)\\n at _class.parseExprOps (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5964:21)\\n at _class.parseMaybeConditional (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5936:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5883:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2807:53)\");\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.5c57b2dee6104780b906.hot-update.js b/build/server/server.5c57b2dee6104780b906.hot-update.js new file mode 100644 index 00000000..7e5ee93f --- /dev/null +++ b/build/server/server.5c57b2dee6104780b906.hot-update.js @@ -0,0 +1,15 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/pages/Landing/Landing.js: Unexpected token (6:25)\\n\\n\\u001b[0m \\u001b[90m 4 | \\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 5 | \\u001b[39m\\u001b[36mimport\\u001b[39m { \\u001b[33mCOUNTRIES\\u001b[39m } from \\u001b[32m'../../constants/Urls'\\u001b[39m\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 6 | \\u001b[39m\\u001b[36mimport\\u001b[39m { getCountries as \\u001b[33m,\\u001b[39m setSelectedCountry } from \\u001b[32m'../../actions'\\u001b[39m\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 7 | \\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 8 | \\u001b[39m\\u001b[36mimport\\u001b[39m \\u001b[32m'./Landing.scss'\\u001b[39m\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 9 | \\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseIdentifierName (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7256:18)\\n at _class.parseIdentifier (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7230:21)\\n at _class.parseImportSpecifier (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2685:34)\\n at _class.parseImportSpecifiers (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8867:12)\\n at _class.parseImportSpecifiers (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2658:51)\\n at _class.parseImport (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8818:12)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7582:27)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\");\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.6867769d16ecddeb84e2.hot-update.js b/build/server/server.6867769d16ecddeb84e2.hot-update.js new file mode 100644 index 00000000..b488fe9b --- /dev/null +++ b/build/server/server.6867769d16ecddeb84e2.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 $\", new Date().getYear(), \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.6a29d178dbdd776ee6c8.hot-update.js b/build/server/server.6a29d178dbdd776ee6c8.hot-update.js new file mode 100644 index 00000000..57da11e1 --- /dev/null +++ b/build/server/server.6a29d178dbdd776ee6c8.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {};\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.7792656af2f5c6d8be15.hot-update.js b/build/server/server.7792656af2f5c6d8be15.hot-update.js new file mode 100644 index 00000000..7264193e --- /dev/null +++ b/build/server/server.7792656af2f5c6d8be15.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n (0, _actions.setSelectedCountry)(selectedCountry);\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.78f950b88a5f941b8ed2.hot-update.js b/build/server/server.78f950b88a5f941b8ed2.hot-update.js new file mode 100644 index 00000000..eee922d4 --- /dev/null +++ b/build/server/server.78f950b88a5f941b8ed2.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch(getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.7cc1fc99eda6306b3fa2.hot-update.js b/build/server/server.7cc1fc99eda6306b3fa2.hot-update.js new file mode 100644 index 00000000..7c9c16f4 --- /dev/null +++ b/build/server/server.7cc1fc99eda6306b3fa2.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: setCountry\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.84a53b2da9b7d1266e8a.hot-update.js b/build/server/server.84a53b2da9b7d1266e8a.hot-update.js new file mode 100644 index 00000000..2e285c9e --- /dev/null +++ b/build/server/server.84a53b2da9b7d1266e8a.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n (0, _actions.setSelectedCountry)(selectedCountry);\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n countries = _this$props.countries,\n getCountries = _this$props.getCountries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n selectedCountry = _this$props2.selectedCountry,\n countries = _this$props2.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.920c891c4b34c06bc559.hot-update.js b/build/server/server.920c891c4b34c06bc559.hot-update.js new file mode 100644 index 00000000..03d5521b --- /dev/null +++ b/build/server/server.920c891c4b34c06bc559.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch();\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.98b3d40157b766fa7792.hot-update.js b/build/server/server.98b3d40157b766fa7792.hot-update.js new file mode 100644 index 00000000..0ec1b098 --- /dev/null +++ b/build/server/server.98b3d40157b766fa7792.hot-update.js @@ -0,0 +1,39 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +/*!**************************************!*\ + !*** ./src/shared/constants/Urls.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.COUNTRIES = void 0;\nvar COUNTRIES = 'https://restcountries.eu/rest/v2';\nexports.COUNTRIES = COUNTRIES;\n\n//# sourceURL=webpack:///./src/shared/constants/Urls.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {};\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +/*!***********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.scss ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.i, \".Landing {\\n height: calc(100vh - 181px); }\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.scss?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.9959e0067a62f246592c.hot-update.js b/build/server/server.9959e0067a62f246592c.hot-update.js new file mode 100644 index 00000000..e15d76f6 --- /dev/null +++ b/build/server/server.9959e0067a62f246592c.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Searcher/Searcher.js": +/*!****************************************************!*\ + !*** ./src/shared/components/Searcher/Searcher.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar Searcher =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(Searcher, _React$Component);\n\n function Searcher(props) {\n var _this;\n\n (0, _classCallCheck2.default)(this, Searcher);\n _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Searcher).call(this, props)); // This binding is necessary to make `this` work in the callback\n\n _this.search = _this.search.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n return _this;\n }\n\n (0, _createClass2.default)(Searcher, [{\n key: \"render\",\n value: function render() {\n return _react.default.createElement(\"div\", {\n className: \"row justify-content-center\"\n }, _react.default.createElement(\"div\", {\n className: \"col-xs-12 col-sm-12 col-md-12\"\n }, _react.default.createElement(\"form\", {\n name: \"searcher\",\n onSubmit: this.search\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"searcher\",\n className: \"sr-only\"\n }, \"Just type\"), _react.default.createElement(\"input\", {\n type: \"text\",\n id: \"searcher\",\n className: \"form-control\",\n name: \"searcher\",\n placeholder: \"Type...\",\n value: this.props.searchTerm,\n onChange: this.search\n })))));\n }\n /**\n * pass data to parent component\n *\n * @param {SyntheticEvent} evt - the event that comes from the input\n * @return {void}\n */\n\n }, {\n key: \"search\",\n value: function search(evt) {\n this.props.onSearch(evt.target.value);\n }\n }]);\n return Searcher;\n}(_react.default.Component);\n\nexports.default = Searcher;\n\n//# sourceURL=webpack:///./src/shared/components/Searcher/Searcher.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.9d02fda0ab85da68c30f.hot-update.js b/build/server/server.9d02fda0ab85da68c30f.hot-update.js deleted file mode 100644 index 45093b26..00000000 --- a/build/server/server.9d02fda0ab85da68c30f.hot-update.js +++ /dev/null @@ -1,15 +0,0 @@ -exports.id = "server"; -exports.modules = { - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/components/Footer/Footer.js: Unexpected token, expected \\\";\\\" (7:11)\\n\\n\\u001b[0m \\u001b[90m 5 | \\u001b[39m\\u001b[36mconst\\u001b[39m \\u001b[33mFooter\\u001b[39m \\u001b[33m=\\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 6 | \\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 7 | \\u001b[39m render() {\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 8 | \\u001b[39m \\u001b[36mreturn\\u001b[39m (\\u001b[0m\\n\\u001b[0m \\u001b[90m 9 | \\u001b[39m \\u001b[33m<\\u001b[39m\\u001b[33mfooter\\u001b[39m className\\u001b[33m=\\u001b[39m\\u001b[32m\\\"footer sm-padding bg-dark\\\"\\u001b[39m\\u001b[33m>\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 10 | \\u001b[39m \\u001b[33m<\\u001b[39m\\u001b[33mdiv\\u001b[39m className\\u001b[33m=\\u001b[39m\\u001b[32m\\\"container\\\"\\u001b[39m\\u001b[33m>\\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.semicolon (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5362:40)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7961:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\\n at process._tickCallback (internal/process/next_tick.js:61:11)\");\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }) - -}; \ No newline at end of file diff --git a/build/server/server.9e5546701add6d5409fa.hot-update.js b/build/server/server.9e5546701add6d5409fa.hot-update.js new file mode 100644 index 00000000..90330f6c --- /dev/null +++ b/build/server/server.9e5546701add6d5409fa.hot-update.js @@ -0,0 +1,15 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Searcher/Searcher.js": +/*!****************************************************!*\ + !*** ./src/shared/components/Searcher/Searcher.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/components/Searcher/Searcher.js: Unexpected token (42:4)\\n\\n\\u001b[0m \\u001b[90m 40 | \\u001b[39m search(evt) {\\u001b[0m\\n\\u001b[0m \\u001b[90m 41 | \\u001b[39m \\u001b[36mconst\\u001b[39m { onc}\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 42 | \\u001b[39m \\u001b[36mthis\\u001b[39m\\u001b[33m.\\u001b[39mprops\\u001b[33m.\\u001b[39monSearch(evt\\u001b[33m.\\u001b[39mtarget\\u001b[33m.\\u001b[39mvalue)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 43 | \\u001b[39m }\\u001b[0m\\n\\u001b[0m \\u001b[90m 44 | \\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 45 | \\u001b[39m}\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseVar (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8150:18)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7960:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseBlock (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8045:10)\\n at _class.parseFunctionBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7153:24)\\n at _class.parseFunctionBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2111:54)\\n at _class.parseFunctionBodyAndFinish (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7135:10)\\n at _class.parseFunctionBodyAndFinish (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2125:56)\\n at _class.parseMethod (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7073:10)\\n at _class.pushClassMethod (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8477:30)\\n at _class.pushClassMethod (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2521:45)\\n at _class.parseClassMemberWithIsStatic (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8402:12)\\n at _class.parseClassMember (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8344:10)\\n at /Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8298:16\\n at _class.withTopicForbiddingContext (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7425:14)\\n at _class.parseClassBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8273:10)\");\n\n//# sourceURL=webpack:///./src/shared/components/Searcher/Searcher.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.a1933c29e6217461b490.hot-update.js b/build/server/server.a1933c29e6217461b490.hot-update.js new file mode 100644 index 00000000..f4376acd --- /dev/null +++ b/build/server/server.a1933c29e6217461b490.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!this.props.countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {};\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.a6515f44ae654f88cf69.hot-update.js b/build/server/server.a6515f44ae654f88cf69.hot-update.js new file mode 100644 index 00000000..d2192728 --- /dev/null +++ b/build/server/server.a6515f44ae654f88cf69.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch(getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries() {\n dispatch();\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.a81124648213f1076765.hot-update.js b/build/server/server.a81124648213f1076765.hot-update.js new file mode 100644 index 00000000..b488fe9b --- /dev/null +++ b/build/server/server.a81124648213f1076765.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 $\", new Date().getYear(), \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.b021b9739e9afabc2561.hot-update.js b/build/server/server.b021b9739e9afabc2561.hot-update.js new file mode 100644 index 00000000..77b28c6c --- /dev/null +++ b/build/server/server.b021b9739e9afabc2561.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch(getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries() {\n dispatch((0, _actions.getCountries)());\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.b1fdf44d5a4f144811cb.hot-update.js b/build/server/server.b1fdf44d5a4f144811cb.hot-update.js new file mode 100644 index 00000000..8b643352 --- /dev/null +++ b/build/server/server.b1fdf44d5a4f144811cb.hot-update.js @@ -0,0 +1,21 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/constants/Urls.js": +false, + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/pages/Landing/Landing.js: Unexpected token (72:0)\\n\\n\\u001b[0m \\u001b[90m 70 | \\u001b[39m\\u001b[36mconst\\u001b[39m mapDispatchToProps \\u001b[33m=\\u001b[39m (dispatch) \\u001b[33m=>\\u001b[39m ({\\u001b[0m\\n\\u001b[0m \\u001b[90m 71 | \\u001b[39m getCountries\\u001b[33m:\\u001b[39m \\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 72 | \\u001b[39m})\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m\\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 73 | \\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 74 | \\u001b[39m\\u001b[36mexport\\u001b[39m \\u001b[36mdefault\\u001b[39m connect(mapStateToProps)(\\u001b[33mLanding\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6537:20)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3743:52)\\n at _class.parseExprSubscripts (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6100:21)\\n at _class.parseMaybeUnary (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6079:21)\\n at _class.parseExprOps (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5964:21)\\n at _class.parseMaybeConditional (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5936:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5883:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2807:53)\\n at _class.parseObjectProperty (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7004:101)\\n at _class.parseObjPropValue (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7029:99)\\n at _class.parseObjPropValue (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2587:47)\\n at _class.parseObj (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6940:12)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6483:21)\\n at _class.parseExprAtom (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3743:52)\\n at _class.parseExprSubscripts (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6100:21)\\n at _class.parseMaybeUnary (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6079:21)\\n at _class.parseExprOps (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5964:21)\\n at _class.parseMaybeConditional (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5936:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5883:21)\\n at _class.parseMaybeAssign (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2807:53)\");\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }), + +/***/ "./src/shared/pages/Landing/Landing.scss": +false + +}; \ No newline at end of file diff --git a/build/server/server.bceaa890bff4f16bd258.hot-update.js b/build/server/server.bceaa890bff4f16bd258.hot-update.js new file mode 100644 index 00000000..6bf48710 --- /dev/null +++ b/build/server/server.bceaa890bff4f16bd258.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCoun: setCoun\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.d124a565de1c2638b548.hot-update.js b/build/server/server.d124a565de1c2638b548.hot-update.js deleted file mode 100644 index 42c67cb7..00000000 --- a/build/server/server.d124a565de1c2638b548.hot-update.js +++ /dev/null @@ -1,15 +0,0 @@ -exports.id = "server"; -exports.modules = { - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("throw new Error(\"Module build failed (from ./node_modules/babel-loader/lib/index.js):\\nSyntaxError: /Users/jero/WebstormProjects/react-movies/src/shared/components/Footer/Footer.js: Unexpected token, expected \\\";\\\" (7:11)\\n\\n\\u001b[0m \\u001b[90m 5 | \\u001b[39m\\u001b[36mconst\\u001b[39m \\u001b[33mFooter\\u001b[39m \\u001b[33m=\\u001b[39m () \\u001b[33m=>\\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 6 | \\u001b[39m\\u001b[0m\\n\\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 7 | \\u001b[39m render() {\\u001b[0m\\n\\u001b[0m \\u001b[90m | \\u001b[39m \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n\\u001b[0m \\u001b[90m 8 | \\u001b[39m \\u001b[36mreturn\\u001b[39m \\u001b[0m\\n\\u001b[0m \\u001b[90m 9 | \\u001b[39m }\\u001b[0m\\n\\u001b[0m \\u001b[90m 10 | \\u001b[39m \\u001b[0m\\n at _class.raise (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4047:15)\\n at _class.unexpected (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5378:16)\\n at _class.semicolon (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5362:40)\\n at _class.parseVarStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7961:10)\\n at _class.parseStatementContent (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7551:21)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7501:17)\\n at _class.parseStatement (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2134:57)\\n at _class.parseBlockOrModuleBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8069:23)\\n at _class.parseBlockBody (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8056:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7466:10)\\n at _class.parseTopLevel (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:2984:58)\\n at _class.parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8911:17)\\n at parse (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10942:38)\\n at parser (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:170:34)\\n at normalizeFile (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/normalize-file.js:138:11)\\n at runSync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:44:43)\\n at runAsync (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transformation/index.js:35:14)\\n at process.nextTick (/Users/jero/WebstormProjects/react-movies/node_modules/@babel/core/lib/transform.js:34:34)\\n at process._tickCallback (internal/process/next_tick.js:61:11)\");\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }) - -}; \ No newline at end of file diff --git a/build/server/server.eb49b7b3424ec497ba76.hot-update.js b/build/server/server.eb49b7b3424ec497ba76.hot-update.js deleted file mode 100644 index b10a0c5a..00000000 --- a/build/server/server.eb49b7b3424ec497ba76.hot-update.js +++ /dev/null @@ -1,16 +0,0 @@ -exports.id = "server"; -exports.modules = { - -/***/ "./src/shared/components/Footer/Footer.js": -/*!************************************************!*\ - !*** ./src/shared/components/Footer/Footer.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(Footer, _React$Component);\n\n function Footer() {\n (0, _classCallCheck2.default)(this, Footer);\n return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Footer).apply(this, arguments));\n }\n\n (0, _createClass2.default)(Footer, [{\n key: \"render\",\n value: function render() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 2018. All Rights Reserved\"))))));\n }\n }]);\n return Footer;\n}(_react.default.Component);\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); - -/***/ }) - -}; \ No newline at end of file diff --git a/build/server/server.edac8c81a05bbc4c08a3.hot-update.js b/build/server/server.edac8c81a05bbc4c08a3.hot-update.js new file mode 100644 index 00000000..4604d155 --- /dev/null +++ b/build/server/server.edac8c81a05bbc4c08a3.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: _actions.getCountries\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.f8108cd34d400cf3513e.hot-update.js b/build/server/server.f8108cd34d400cf3513e.hot-update.js new file mode 100644 index 00000000..5cad7eea --- /dev/null +++ b/build/server/server.f8108cd34d400cf3513e.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.f8cb34021973887f2813.hot-update.js b/build/server/server.f8cb34021973887f2813.hot-update.js new file mode 100644 index 00000000..0995a85d --- /dev/null +++ b/build/server/server.f8cb34021973887f2813.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(co));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.fd459c694dd1d251bc6d.hot-update.js b/build/server/server.fd459c694dd1d251bc6d.hot-update.js new file mode 100644 index 00000000..541b2597 --- /dev/null +++ b/build/server/server.fd459c694dd1d251bc6d.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/pages/Landing/Landing.js": +/*!*********************************************!*\ + !*** ./src/shared/pages/Landing/Landing.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var countries = this.props.countries;\n\n if (!countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {};\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.ff7e2c1c70a32f1ed9c5.hot-update.js b/build/server/server.ff7e2c1c70a32f1ed9c5.hot-update.js new file mode 100644 index 00000000..3f83e12b --- /dev/null +++ b/build/server/server.ff7e2c1c70a32f1ed9c5.hot-update.js @@ -0,0 +1,16 @@ +exports.id = "server"; +exports.modules = { + +/***/ "./src/shared/components/Footer/Footer.js": +/*!************************************************!*\ + !*** ./src/shared/components/Footer/Footer.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 \", new Date().getFullYear(), \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); + +/***/ }) + +}; \ No newline at end of file diff --git a/build/server/server.js b/build/server/server.js index 98e0ef1a..ab47a298 100644 --- a/build/server/server.js +++ b/build/server/server.js @@ -22,7 +22,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "00cf8c97482ba337d68d"; +/******/ var hotCurrentHash = "97befa90bcfc48b47f11"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; @@ -903,7 +903,7 @@ eval("exports = module.exports = __webpack_require__(/*! ../../../../node_module /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 2018. All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\n__webpack_require__(/*! ./Footer.scss */ \"./src/shared/components/Footer/Footer.scss\");\n\nvar Footer = function Footer() {\n return _react.default.createElement(\"footer\", {\n className: \"footer sm-padding bg-dark\"\n }, _react.default.createElement(\"div\", {\n className: \"container\"\n }, _react.default.createElement(\"div\", {\n className: \"row\"\n }, _react.default.createElement(\"div\", {\n className: \"col-md-12\"\n }, _react.default.createElement(\"div\", {\n className: \"footer__logo\"\n }, _react.default.createElement(\"img\", {\n className: \"img-fluid\",\n src: \"../../assets/img/react-logo.png\",\n alt: \"react logo\"\n })), _react.default.createElement(\"div\", {\n className: \"footer__copyright\"\n }, _react.default.createElement(\"p\", null, \"Copyright \\xA9 \", new Date().getFullYear(), \". All Rights Reserved\"))))));\n};\n\nvar _default = Footer;\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/components/Footer/Footer.js?"); /***/ }), @@ -1126,7 +1126,7 @@ eval("exports = module.exports = __webpack_require__(/*! ../../../../node_module /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var selectedCountry = evt.target.value;\n\n _this.props.dispatch((0, _actions.setSelectedCountry)(selectedCountry));\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.countries.length) {\n this.props.dispatch((0, _actions.getCountries)(\"\".concat(_Urls.COUNTRIES, \"/all\")));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n selectedCountry = _this$props.selectedCountry,\n countries = _this$props.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactRouterDom = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"react-redux\");\n\nvar _Urls = __webpack_require__(/*! ../../constants/Urls */ \"./src/shared/constants/Urls.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./src/shared/actions/index.js\");\n\n__webpack_require__(/*! ./Landing.scss */ \"./src/shared/pages/Landing/Landing.scss\");\n\nvar Landing =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Landing, _Component);\n\n function Landing() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Landing);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Landing)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), \"handleChange\", function (evt) {\n var setSelectedCountry = _this.props.setSelectedCountry;\n var selectedCountry = evt.target.value;\n setSelectedCountry(selectedCountry);\n });\n return _this;\n }\n\n (0, _createClass2.default)(Landing, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n countries = _this$props.countries,\n getCountries = _this$props.getCountries;\n\n if (!countries.length) {\n getCountries(\"\".concat(_Urls.COUNTRIES, \"/all\"));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n selectedCountry = _this$props2.selectedCountry,\n countries = _this$props2.countries;\n return _react.default.createElement(\"div\", {\n className: \"Landing d-flex flex-column align-items-center justify-content-center\"\n }, _react.default.createElement(\"h1\", null, \"Movie Search\"), _react.default.createElement(\"form\", {\n className: \"text-center col-md-4\"\n }, _react.default.createElement(\"div\", {\n className: \"form-group\"\n }, _react.default.createElement(\"label\", {\n htmlFor: \"countries\"\n }, \"Select a Country\"), _react.default.createElement(\"select\", {\n value: selectedCountry,\n className: \"form-control\",\n onChange: this.handleChange\n }, countries.map(function (_ref) {\n var name = _ref.name;\n return _react.default.createElement(\"option\", {\n id: \"countries\",\n key: name,\n value: name\n }, name);\n })))), _react.default.createElement(_reactRouterDom.Link, {\n to: \"movies\"\n }, _react.default.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\"\n }, \"See all movies\")));\n }\n }]);\n return Landing;\n}(_react.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n selectedCountry: state.selectedCountry,\n countries: state.countries\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n getCountries: function getCountries(url) {\n dispatch((0, _actions.getCountries)(url));\n },\n setCountry: function setCountry(country) {\n dispatch((0, _actions.setSelectedCountry)(country));\n }\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Landing);\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/shared/pages/Landing/Landing.js?"); /***/ }), diff --git a/src/shared/components/Footer/Footer.js b/src/shared/components/Footer/Footer.js index 5a78c4d2..dec3dc1e 100755 --- a/src/shared/components/Footer/Footer.js +++ b/src/shared/components/Footer/Footer.js @@ -14,7 +14,7 @@ const Footer = () => ( alt="react logo" />
-

Copyright © 2018. All Rights Reserved

+

Copyright © {new Date().getFullYear()}. All Rights Reserved

diff --git a/src/shared/pages/Landing/Landing.js b/src/shared/pages/Landing/Landing.js index 21781055..dab34ea6 100644 --- a/src/shared/pages/Landing/Landing.js +++ b/src/shared/pages/Landing/Landing.js @@ -3,7 +3,7 @@ import { Link } from 'react-router-dom'; import { connect } from 'react-redux'; import { COUNTRIES } from '../../constants/Urls'; -import { getCountries, setSelectedCountry } from '../../actions'; +import { getCountries as getCountriesAction, setSelectedCountry } from '../../actions'; import './Landing.scss'; @@ -15,13 +15,15 @@ class Landing extends Component { * @return {void} */ handleChange = (evt) => { + const { setSelectedCountry } = this.props; const selectedCountry = evt.target.value; - this.props.dispatch(setSelectedCountry(selectedCountry)); + setSelectedCountry(selectedCountry); }; componentDidMount() { - if (!this.props.countries.length) { - this.props.dispatch(getCountries(`${COUNTRIES}/all`)); + const { countries, getCountries } = this.props; + if (!countries.length) { + getCountries(`${COUNTRIES}/all`); } } @@ -66,4 +68,13 @@ const mapStateToProps = (state) => ({ countries: state.countries }); -export default connect(mapStateToProps)(Landing); \ No newline at end of file +const mapDispatchToProps = (dispatch) => ({ + getCountries(url) { + dispatch(getCountriesAction(url)); + }, + setCountry(country) { + dispatch(setSelectedCountry(country)); + } +}); + +export default connect(mapStateToProps, mapDispatchToProps)(Landing); \ No newline at end of file