@renaissancerentals/renaissance-component 10.0.26 → 10.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/asset/service/AssetService.js +3 -3
  2. package/lib/floorplan/card/FloorplanCard.js +7 -7
  3. package/lib/floorplan/card/FloorplanCardSlider.js +13 -73
  4. package/lib/floorplan/card/FloorplanSliderCard.d.ts +8 -0
  5. package/lib/floorplan/card/FloorplanSliderCard.js +50 -0
  6. package/lib/floorplan/card/SimilarFloorplanCard.js +24 -42
  7. package/lib/floorplan/card/TestimonialsCard.js +8 -44
  8. package/lib/floorplan/card/assets/SimilarFloorplanCard.scss +47 -37
  9. package/lib/floorplan/card/assets/TestimonialsCard.scss +3 -23
  10. package/lib/floorplan/card/assets/camera-icon.png +0 -0
  11. package/lib/floorplan/data/Floorplan.d.ts +3 -1
  12. package/lib/floorplan/data/Floorplan.js +1 -1
  13. package/lib/floorplan/section/FloorplanHero.d.ts +1 -0
  14. package/lib/floorplan/section/FloorplanHero.js +151 -16
  15. package/lib/floorplan/section/FloorplanSection.d.ts +0 -1
  16. package/lib/floorplan/section/FloorplanSection.js +75 -31
  17. package/lib/floorplan/section/HeroBadgeStats.d.ts +10 -0
  18. package/lib/floorplan/section/HeroBadgeStats.js +86 -0
  19. package/lib/floorplan/section/assets/BadgeStats.scss +5 -0
  20. package/lib/floorplan/section/assets/FloorplanHero.scss +90 -1
  21. package/lib/floorplan/section/assets/FloorplanSection.scss +0 -3
  22. package/lib/floorplan/section/assets/HeroBadgeStats.scss +74 -0
  23. package/lib/gallery/GalleryHeroMain.d.ts +13 -0
  24. package/lib/gallery/GalleryHeroMain.js +101 -0
  25. package/lib/gallery/GalleryHeroMobile.d.ts +11 -0
  26. package/lib/gallery/GalleryHeroMobile.js +101 -0
  27. package/lib/gallery/HeroImageCard.d.ts +8 -0
  28. package/lib/gallery/HeroImageCard.js +34 -0
  29. package/lib/gallery/assets/GalleryHero.scss +46 -153
  30. package/lib/gallery/assets/HeroImageCard.scss +29 -0
  31. package/lib/index.d.ts +1 -1
  32. package/lib/index.js +4 -4
  33. package/lib/property/assets/PropertyLocation.scss +1 -0
  34. package/lib/utils/Utils.d.ts +1 -1
  35. package/lib/utils/Utils.js +7 -5
  36. package/package.json +2 -2
  37. package/lib/gallery/GalleryHero.d.ts +0 -10
  38. package/lib/gallery/GalleryHero.js +0 -278
@@ -31,6 +31,10 @@ var _SimilarFloorplanCard = require("../card/SimilarFloorplanCard");
31
31
 
32
32
  var _muncherUi = require("@contentmunch/muncher-ui");
33
33
 
34
+ var _moment = _interopRequireDefault(require("moment"));
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
34
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
39
 
36
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -54,12 +58,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
54
58
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
55
59
 
56
60
  var FloorplanSection = function FloorplanSection(_ref) {
57
- var _floorplan$units$, _floorplan$units$2;
61
+ var _floorplan$units$, _floorplan$units$2, _floorplan$property;
58
62
 
59
63
  var contactClickHandler = _ref.contactClickHandler,
60
64
  applyClickHandler = _ref.applyClickHandler,
61
- floorplanId = _ref.floorplanId,
62
- contactPhone = _ref.contactPhone;
65
+ floorplanId = _ref.floorplanId;
63
66
 
64
67
  var _useState = (0, _react.useState)({}),
65
68
  _useState2 = _slicedToArray(_useState, 2),
@@ -91,6 +94,17 @@ var FloorplanSection = function FloorplanSection(_ref) {
91
94
  errorLoading = _useState12[0],
92
95
  setErrorLoading = _useState12[1];
93
96
 
97
+ var mapRef = (0, _react.useRef)(null);
98
+
99
+ var handleRefToMap = function handleRefToMap() {
100
+ var _mapRef$current;
101
+
102
+ (_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 ? void 0 : _mapRef$current.scrollIntoView({
103
+ behavior: "smooth",
104
+ block: "center"
105
+ });
106
+ };
107
+
94
108
  (0, _react.useEffect)(function () {
95
109
  Promise.all([(0, _FloorplanService.getFloorplan)(floorplanId), (0, _FloorplanService.getFloorplanVariations)(floorplanId), (0, _FloorplanService.getSimilarFloorplans)(floorplanId), (0, _FloorplanService.getTestimonials)(floorplanId)]).then(function (data) {
96
110
  var floorplanData = _objectSpread({}, data[0]);
@@ -109,6 +123,19 @@ var FloorplanSection = function FloorplanSection(_ref) {
109
123
  setIsLoading(false);
110
124
  });
111
125
  }, [floorplanId]);
126
+
127
+ var availableDates = function availableDates() {
128
+ var sortAvailabileDates = function sortAvailabileDates(a, b) {
129
+ return (0, _moment.default)(a, "MMMM YYYY").diff((0, _moment.default)(b, "MMMM YYYY"));
130
+ };
131
+
132
+ var dates = new Set();
133
+ floorplan.units.forEach(function (unit) {
134
+ dates.add((0, _Utils.dateToMoment)(unit.moveInDate).format("MMMM YYYY"));
135
+ });
136
+ return Array.from(dates).sort(sortAvailabileDates);
137
+ };
138
+
112
139
  return /*#__PURE__*/_react.default.createElement("section", {
113
140
  className: "section-floorplan"
114
141
  }, isLoading ? /*#__PURE__*/_react.default.createElement("section", {
@@ -118,7 +145,8 @@ var FloorplanSection = function FloorplanSection(_ref) {
118
145
  }, /*#__PURE__*/_react.default.createElement("h2", null, "Uh-oh, this is a 404")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FloorplanHero.FloorplanHero, {
119
146
  floorplan: floorplan,
120
147
  contactClickHandler: contactClickHandler,
121
- applyClickHandler: applyClickHandler
148
+ applyClickHandler: applyClickHandler,
149
+ handleRefToMap: handleRefToMap
122
150
  }), /*#__PURE__*/_react.default.createElement("div", {
123
151
  className: "container"
124
152
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -129,56 +157,72 @@ var FloorplanSection = function FloorplanSection(_ref) {
129
157
  className: "floorplan-card--featured"
130
158
  }, floorplan.bedroom, " Bedroom | ", floorplan.bathroom, " Bathroom ", (0, _Utils.enumToString)(floorplan.style)), /*#__PURE__*/_react.default.createElement("p", {
131
159
  className: "floorplan-card--featured"
132
- }, "$", (0, _Utils.rangeFrom)(floorplan.units, "squareFoot"), " Square Feet"), /*#__PURE__*/_react.default.createElement("p", {
160
+ }, (0, _Utils.rangeFrom)(floorplan.units, "squareFoot"), " Square Feet"), /*#__PURE__*/_react.default.createElement("p", {
133
161
  className: "floorplan-card--featured"
134
162
  }, "$", (0, _Utils.rangeFrom)(floorplan.units, "rent"), "/mo"), /*#__PURE__*/_react.default.createElement("p", {
135
163
  className: "floorplan-card--featured"
136
164
  }, "$", (0, _Utils.rangeFrom)(floorplan.units, "deposit"), " Security Deposit"), /*#__PURE__*/_react.default.createElement("p", null, floorplan.description)), floorplan.amenities.length > 0 ? /*#__PURE__*/_react.default.createElement(_Card.Card, {
137
165
  title: "Amenities"
138
- }, floorplan.amenities.filter(function (amenity) {
166
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplan.amenities.filter(function (amenity) {
139
167
  return amenity.featured;
140
168
  }).map(function (amenity) {
141
- return /*#__PURE__*/_react.default.createElement("p", {
142
- className: "floorplan-card--featured",
143
- key: "floorplan-amenity-featured-" + amenity.id
169
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
170
+ key: "floorplan-amenity-" + amenity.id,
171
+ isFeatured: true
144
172
  }, amenity.name);
145
- }), /*#__PURE__*/_react.default.createElement("ul", null, floorplan.amenities.filter(function (amenity) {
173
+ }), floorplan.amenities.filter(function (amenity) {
146
174
  return !amenity.featured;
147
175
  }).map(function (amenity) {
148
- return /*#__PURE__*/_react.default.createElement("li", {
176
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
149
177
  key: "floorplan-amenity-" + amenity.id
150
178
  }, amenity.name);
151
- })), floorplanVariations.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Variations"), /*#__PURE__*/_react.default.createElement("ul", null, floorplanVariations.map(function (variation, i) {
152
- return /*#__PURE__*/_react.default.createElement("li", {
179
+ })), floorplanVariations.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Variations"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplanVariations.map(function (variation, i) {
180
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
153
181
  key: "floorplan-variation-" + i
154
182
  }, variation.variation);
155
183
  }))) : "") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), testimonials.length > 0 ? /*#__PURE__*/_react.default.createElement(_TestimonialsCard.TestimonialsCard, {
156
184
  testimonials: testimonials
157
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_Card.Card, null, /*#__PURE__*/_react.default.createElement(_MapSection.MapSection, {
185
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_Card.Card, null, /*#__PURE__*/_react.default.createElement("div", {
186
+ ref: mapRef,
187
+ id: "location"
188
+ }, /*#__PURE__*/_react.default.createElement(_MapSection.MapSection, {
158
189
  src: (0, _Utils.addressToGoogleMap)((_floorplan$units$ = floorplan.units[0]) === null || _floorplan$units$ === void 0 ? void 0 : _floorplan$units$.address, (_floorplan$units$2 = floorplan.units[0]) === null || _floorplan$units$2 === void 0 ? void 0 : _floorplan$units$2.zipcode)
159
- })), /*#__PURE__*/_react.default.createElement(_Card.Card, {
190
+ }))), /*#__PURE__*/_react.default.createElement(_Card.Card, {
160
191
  title: "Pets"
161
- }, /*#__PURE__*/_react.default.createElement("h5", null, "Permitted"), /*#__PURE__*/_react.default.createElement("ul", null, (0, _FloorplanService.permittedPets)(floorplan).map(function (pet, i) {
162
- return /*#__PURE__*/_react.default.createElement("li", {
163
- key: "floorplan-permitted-pet-" + i
192
+ }, /*#__PURE__*/_react.default.createElement("h5", null, "Permitted"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, (0, _FloorplanService.permittedPets)(floorplan).map(function (pet, i) {
193
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
194
+ key: "floorplan-permitted-pet-" + i,
195
+ bulletIcon: "check",
196
+ bulletColor: "green"
164
197
  }, pet);
165
- })), (0, _FloorplanService.notPermittedPets)(floorplan).length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Not Permitted"), /*#__PURE__*/_react.default.createElement("ul", null, (0, _FloorplanService.notPermittedPets)(floorplan).map(function (pet, i) {
166
- return /*#__PURE__*/_react.default.createElement("li", {
167
- key: "floorplan-not-permitted-pet-" + i
198
+ })), (0, _FloorplanService.notPermittedPets)(floorplan).length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Not Permitted"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, (0, _FloorplanService.notPermittedPets)(floorplan).map(function (pet, i) {
199
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
200
+ key: "floorplan-not-permitted-pet-" + i,
201
+ bulletColor: "brown",
202
+ bulletIcon: "close"
168
203
  }, pet);
169
204
  }))) : "", (0, _FloorplanService.petPolicy)(floorplan) ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Additional Information"), /*#__PURE__*/_react.default.createElement("p", null, (0, _FloorplanService.petPolicy)(floorplan))) : ""), /*#__PURE__*/_react.default.createElement(_Card.Card, {
205
+ title: "Availability"
206
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, availableDates().map(function (availableDate) {
207
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
208
+ key: "floorplan-unit-availability-" + availableDate,
209
+ bulletIcon: "calendar"
210
+ }, "Available in ", /*#__PURE__*/_react.default.createElement("strong", null, (0, _Utils.capitalizeFirstLetter)(availableDate)));
211
+ }))), /*#__PURE__*/_react.default.createElement(_Card.Card, {
170
212
  title: "Utilities"
171
- }, /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Landlord"), /*#__PURE__*/_react.default.createElement("ul", null, floorplan.utilities.filter(function (utility) {
213
+ }, /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Landlord"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplan.utilities.filter(function (utility) {
172
214
  return utility.type === _Floorplan.UtilityType.INCLUDED_UTILITY;
173
215
  }).map(function (utility) {
174
- return /*#__PURE__*/_react.default.createElement("li", {
175
- key: "floorplan-included-utility-" + utility.id
216
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
217
+ key: "floorplan-included-utility-" + utility.id,
218
+ bulletIcon: "home"
176
219
  }, (0, _Utils.capitalizeFirstLetter)(utility.name));
177
- })), /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Tenant"), /*#__PURE__*/_react.default.createElement("ul", null, floorplan.utilities.filter(function (utility) {
220
+ })), /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Tenant"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplan.utilities.filter(function (utility) {
178
221
  return utility.type === _Floorplan.UtilityType.RESIDENT_UTILITY;
179
222
  }).map(function (utility) {
180
- return /*#__PURE__*/_react.default.createElement("li", {
181
- key: "floorplan-resident-utility-" + utility.id
223
+ return /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
224
+ key: "floorplan-resident-utility-" + utility.id,
225
+ bulletIcon: "dollar"
182
226
  }, (0, _Utils.capitalizeFirstLetter)(utility.name));
183
227
  }))), similarFloorplans.length > 0 ? /*#__PURE__*/_react.default.createElement(_SimilarFloorplanCard.SimilarFloorplanCard, {
184
228
  similarFloorplans: similarFloorplans
@@ -186,9 +230,9 @@ var FloorplanSection = function FloorplanSection(_ref) {
186
230
  className: "contact-card"
187
231
  }, /*#__PURE__*/_react.default.createElement(_Card.Card, {
188
232
  featured: true
189
- }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Questions?")), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Call or text us anytime:")), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("a", {
190
- href: "tel:" + contactPhone
191
- }, (0, _Utils.formatPhoneNumber)(contactPhone))), /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
233
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Questions?")), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Call or text us anytime:")), (_floorplan$property = floorplan.property) !== null && _floorplan$property !== void 0 && _floorplan$property.phone ? /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("a", {
234
+ href: "tel:" + floorplan.property.phone
235
+ }, (0, _Utils.formatPhoneNumber)(floorplan.property.phone))) : "", /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
192
236
  variant: "tertiary",
193
237
  onClick: contactClickHandler,
194
238
  size: "large"
@@ -196,4 +240,4 @@ var FloorplanSection = function FloorplanSection(_ref) {
196
240
  };
197
241
 
198
242
  exports.FloorplanSection = FloorplanSection;
199
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGbG9vcnBsYW5TZWN0aW9uIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiZmxvb3JwbGFuSWQiLCJjb250YWN0UGhvbmUiLCJ1c2VTdGF0ZSIsImZsb29ycGxhbiIsInNldEZsb29ycGxhbiIsInNpbWlsYXJGbG9vcnBsYW5zIiwic2V0U2ltaWxhckZsb29ycGxhbnMiLCJmbG9vcnBsYW5WYXJpYXRpb25zIiwic2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyIsInRlc3RpbW9uaWFscyIsInNldFRlc3RpbW9uaWFscyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsImVycm9yTG9hZGluZyIsInNldEVycm9yTG9hZGluZyIsInVzZUVmZmVjdCIsIlByb21pc2UiLCJhbGwiLCJnZXRGbG9vcnBsYW4iLCJnZXRGbG9vcnBsYW5WYXJpYXRpb25zIiwiZ2V0U2ltaWxhckZsb29ycGxhbnMiLCJnZXRUZXN0aW1vbmlhbHMiLCJ0aGVuIiwiZGF0YSIsImZsb29ycGxhbkRhdGEiLCJhY3RpdmVVbml0cyIsInVuaXRzIiwiZmlsdGVyIiwidW5pdCIsImFjdGl2ZSIsImNhdGNoIiwiZmluYWxseSIsImJlZHJvb20iLCJiYXRocm9vbSIsImVudW1Ub1N0cmluZyIsInN0eWxlIiwicmFuZ2VGcm9tIiwiZGVzY3JpcHRpb24iLCJhbWVuaXRpZXMiLCJsZW5ndGgiLCJhbWVuaXR5IiwiZmVhdHVyZWQiLCJtYXAiLCJpZCIsIm5hbWUiLCJ2YXJpYXRpb24iLCJpIiwiYWRkcmVzc1RvR29vZ2xlTWFwIiwiYWRkcmVzcyIsInppcGNvZGUiLCJwZXJtaXR0ZWRQZXRzIiwicGV0Iiwibm90UGVybWl0dGVkUGV0cyIsInBldFBvbGljeSIsInV0aWxpdGllcyIsInV0aWxpdHkiLCJ0eXBlIiwiVXRpbGl0eVR5cGUiLCJJTkNMVURFRF9VVElMSVRZIiwiY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIiwiUkVTSURFTlRfVVRJTElUWSIsImZvcm1hdFBob25lTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zsb29ycGxhbi9zZWN0aW9uL0Zsb29ycGxhblNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtGbG9vcnBsYW4sIEZsb29ycGxhblZhcmlhdGlvbiwgU2ltaWxhckZsb29ycGxhbiwgVGVzdGltb25pYWwsIFV0aWxpdHlUeXBlfSBmcm9tIFwiLi4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7XG4gICAgZ2V0Rmxvb3JwbGFuLFxuICAgIGdldEZsb29ycGxhblZhcmlhdGlvbnMsXG4gICAgZ2V0U2ltaWxhckZsb29ycGxhbnMsXG4gICAgZ2V0VGVzdGltb25pYWxzLFxuICAgIG5vdFBlcm1pdHRlZFBldHMsXG4gICAgcGVybWl0dGVkUGV0cyxcbiAgICBwZXRQb2xpY3lcbn0gZnJvbSBcIi4uL3NlcnZpY2UvRmxvb3JwbGFuU2VydmljZVwiO1xuaW1wb3J0IFwiLi9hc3NldHMvRmxvb3JwbGFuU2VjdGlvbi5zY3NzXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvU2tlbGV0b259IGZyb20gXCIuLi8uLi9nYWxsZXJ5L0dhbGxlcnlIZXJvU2tlbGV0b25cIjtcbmltcG9ydCB7Rmxvb3JwbGFuSGVyb30gZnJvbSBcIi4vRmxvb3JwbGFuSGVyb1wiO1xuaW1wb3J0IHthZGRyZXNzVG9Hb29nbGVNYXAsIGNhcGl0YWxpemVGaXJzdExldHRlciwgZW51bVRvU3RyaW5nLCBmb3JtYXRQaG9uZU51bWJlciwgcmFuZ2VGcm9tfSBmcm9tIFwiLi4vLi4vdXRpbHMvVXRpbHNcIjtcbmltcG9ydCB7Q2FyZH0gZnJvbSBcIi4uLy4uL2NhcmQvQ2FyZFwiO1xuaW1wb3J0IHtUZXN0aW1vbmlhbHNDYXJkfSBmcm9tIFwiLi4vY2FyZC9UZXN0aW1vbmlhbHNDYXJkXCI7XG5pbXBvcnQge01hcFNlY3Rpb259IGZyb20gXCIuLi8uLi9tYXAvTWFwU2VjdGlvblwiO1xuaW1wb3J0IHtTaW1pbGFyRmxvb3JwbGFuQ2FyZH0gZnJvbSBcIi4uL2NhcmQvU2ltaWxhckZsb29ycGxhbkNhcmRcIjtcbmltcG9ydCB7QnV0dG9ufSBmcm9tIFwiQGNvbnRlbnRtdW5jaC9tdW5jaGVyLXVpXCI7XG5cbmV4cG9ydCBjb25zdCBGbG9vcnBsYW5TZWN0aW9uOiBSZWFjdC5GQzxGbG9vcnBsYW5TZWN0aW9uUHJvcHM+ID0gKFxuICAgIHtcbiAgICAgICAgY29udGFjdENsaWNrSGFuZGxlcixcbiAgICAgICAgYXBwbHlDbGlja0hhbmRsZXIsXG4gICAgICAgIGZsb29ycGxhbklkLFxuICAgICAgICBjb250YWN0UGhvbmVcbiAgICB9KSA9PiB7XG4gICAgY29uc3QgW2Zsb29ycGxhbiwgc2V0Rmxvb3JwbGFuXSA9IHVzZVN0YXRlPEZsb29ycGxhbj4oe30gYXMgRmxvb3JwbGFuKTtcbiAgICBjb25zdCBbc2ltaWxhckZsb29ycGxhbnMsIHNldFNpbWlsYXJGbG9vcnBsYW5zXSA9IHVzZVN0YXRlPFNpbWlsYXJGbG9vcnBsYW5bXT4oW10pO1xuICAgIGNvbnN0IFtmbG9vcnBsYW5WYXJpYXRpb25zLCBzZXRGbG9vcnBsYW5WYXJpYXRpb25zXSA9IHVzZVN0YXRlPEZsb29ycGxhblZhcmlhdGlvbltdPihbXSk7XG4gICAgY29uc3QgW3Rlc3RpbW9uaWFscywgc2V0VGVzdGltb25pYWxzXSA9IHVzZVN0YXRlPFRlc3RpbW9uaWFsW10+KFtdKTtcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2Vycm9yTG9hZGluZywgc2V0RXJyb3JMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBnZXRGbG9vcnBsYW4oZmxvb3JwbGFuSWQpLFxuICAgICAgICAgICAgZ2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyhmbG9vcnBsYW5JZCksXG4gICAgICAgICAgICBnZXRTaW1pbGFyRmxvb3JwbGFucyhmbG9vcnBsYW5JZCksXG4gICAgICAgICAgICBnZXRUZXN0aW1vbmlhbHMoZmxvb3JwbGFuSWQpXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsb29ycGxhbkRhdGEgPSB7Li4uZGF0YVswXX07XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVW5pdHMgPSBmbG9vcnBsYW5EYXRhLnVuaXRzLmZpbHRlcih1bml0ID0+IHVuaXQuYWN0aXZlKTtcbiAgICAgICAgICAgICAgICBmbG9vcnBsYW5EYXRhLnVuaXRzID0gYWN0aXZlVW5pdHM7XG4gICAgICAgICAgICAgICAgc2V0Rmxvb3JwbGFuKGZsb29ycGxhbkRhdGEpO1xuICAgICAgICAgICAgICAgIHNldEZsb29ycGxhblZhcmlhdGlvbnMoZGF0YVsxXSk7XG4gICAgICAgICAgICAgICAgc2V0U2ltaWxhckZsb29ycGxhbnMoZGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgc2V0VGVzdGltb25pYWxzKGRhdGFbM10pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICB9LCBbZmxvb3JwbGFuSWRdKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZWN0aW9uLWZsb29ycGxhblwiPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlzTG9hZGluZyA/IDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tZmxvb3JwbGFuLS1oZXJvXCI+PEdhbGxlcnlIZXJvU2tlbGV0b24vPjwvc2VjdGlvbj4gOiA8PlxuICAgICAgICAgICAgICAgICAgICB7ZXJyb3JMb2FkaW5nID9cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImRpdi1mdWxsLS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+VWgtb2gsIHRoaXMgaXMgYSA0MDQ8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPiA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGbG9vcnBsYW5IZXJvIGZsb29ycGxhbj17Zmxvb3JwbGFufSBjb250YWN0Q2xpY2tIYW5kbGVyPXtjb250YWN0Q2xpY2tIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5Q2xpY2tIYW5kbGVyPXthcHBseUNsaWNrSGFuZGxlcn0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS1jYXJkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4uYmVkcm9vbX0gQmVkcm9vbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtmbG9vcnBsYW4uYmF0aHJvb219IEJhdGhyb29tIHtlbnVtVG9TdHJpbmcoZmxvb3JwbGFuLnN0eWxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7cmFuZ2VGcm9tKGZsb29ycGxhbi51bml0cywgXCJzcXVhcmVGb290XCIpfSBTcXVhcmUgRmVldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY2FyZC0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtyYW5nZUZyb20oZmxvb3JwbGFuLnVuaXRzLCBcInJlbnRcIil9L21vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi1jYXJkLS1mZWF0dXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3JhbmdlRnJvbShmbG9vcnBsYW4udW5pdHMsIFwiZGVwb3NpdFwiKX0gU2VjdXJpdHkgRGVwb3NpdDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLmFtZW5pdGllcy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJBbWVuaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4uYW1lbml0aWVzLmZpbHRlcihhbWVuaXR5ID0+IGFtZW5pdHkuZmVhdHVyZWQpLm1hcChhbWVuaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi1jYXJkLS1mZWF0dXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17XCJmbG9vcnBsYW4tYW1lbml0eS1mZWF0dXJlZC1cIiArIGFtZW5pdHkuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FtZW5pdHkubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4uYW1lbml0aWVzLmZpbHRlcihhbWVuaXR5ID0+ICFhbWVuaXR5LmZlYXR1cmVkKS5tYXAoYW1lbml0eSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17XCJmbG9vcnBsYW4tYW1lbml0eS1cIiArIGFtZW5pdHkuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthbWVuaXR5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW5WYXJpYXRpb25zLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlZhcmlhdGlvbnM8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuVmFyaWF0aW9ucy5tYXAoKHZhcmlhdGlvbiwgaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e1wiZmxvb3JwbGFuLXZhcmlhdGlvbi1cIiArIGl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYXRpb24udmFyaWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+IDogPD48Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFscy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlc3RpbW9uaWFsc0NhcmQgdGVzdGltb25pYWxzPXt0ZXN0aW1vbmlhbHN9Lz4gOiA8PjwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXthZGRyZXNzVG9Hb29nbGVNYXAoZmxvb3JwbGFuLnVuaXRzWzBdPy5hZGRyZXNzLCBmbG9vcnBsYW4udW5pdHNbMF0/LnppcGNvZGUpfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDYXJkIHRpdGxlPVwiUGV0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5QZXJtaXR0ZWQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkUGV0cyhmbG9vcnBsYW4pLm1hcCgocGV0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e1wiZmxvb3JwbGFuLXBlcm1pdHRlZC1wZXQtXCIgKyBpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bm90UGVybWl0dGVkUGV0cyhmbG9vcnBsYW4pLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PjxoNT5Ob3QgUGVybWl0dGVkPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdFBlcm1pdHRlZFBldHMoZmxvb3JwbGFuKS5tYXAoKHBldCwgaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e1wiZmxvb3JwbGFuLW5vdC1wZXJtaXR0ZWQtcGV0LVwiICsgaX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz4gOiBcIlwifVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXRQb2xpY3koZmxvb3JwbGFuKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5BZGRpdGlvbmFsIEluZm9ybWF0aW9uPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57cGV0UG9saWN5KGZsb29ycGxhbil9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJVdGlsaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+UGFpZCBCeSBMYW5kbG9yZDwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4udXRpbGl0aWVzLmZpbHRlcih1dGlsaXR5ID0+IHV0aWxpdHkudHlwZSA9PT0gVXRpbGl0eVR5cGUuSU5DTFVERURfVVRJTElUWSkubWFwKHV0aWxpdHkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtcImZsb29ycGxhbi1pbmNsdWRlZC11dGlsaXR5LVwiICsgdXRpbGl0eS5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIodXRpbGl0eS5uYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+UGFpZCBCeSBUZW5hbnQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLnV0aWxpdGllcy5maWx0ZXIodXRpbGl0eSA9PiB1dGlsaXR5LnR5cGUgPT09IFV0aWxpdHlUeXBlLlJFU0lERU5UX1VUSUxJVFkpLm1hcCh1dGlsaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17XCJmbG9vcnBsYW4tcmVzaWRlbnQtdXRpbGl0eS1cIiArIHV0aWxpdHkuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHV0aWxpdHkubmFtZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzaW1pbGFyRmxvb3JwbGFucy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2ltaWxhckZsb29ycGxhbkNhcmQgc2ltaWxhckZsb29ycGxhbnM9e3NpbWlsYXJGbG9vcnBsYW5zfS8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWN0LWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCBmZWF0dXJlZD17dHJ1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpPlF1ZXN0aW9ucz88L2k+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aT5DYWxsIG9yIHRleHQgdXMgYW55dGltZTo8L2k+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17XCJ0ZWw6XCIgKyBjb250YWN0UGhvbmV9Pntmb3JtYXRQaG9uZU51bWJlcihjb250YWN0UGhvbmUpfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG9uQ2xpY2s9e2NvbnRhY3RDbGlja0hhbmRsZXJ9IHNpemU9XCJsYXJnZVwiPkNvbnRhY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDCuzwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvb3JwbGFuU2VjdGlvblByb3BzIHtcbiAgICBjb250YWN0Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGFwcGx5Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGZsb29ycGxhbklkOiBzdHJpbmc7XG4gICAgY29udGFjdFBob25lPzogc3RyaW5nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFD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
243
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGbG9vcnBsYW5TZWN0aW9uIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiZmxvb3JwbGFuSWQiLCJ1c2VTdGF0ZSIsImZsb29ycGxhbiIsInNldEZsb29ycGxhbiIsInNpbWlsYXJGbG9vcnBsYW5zIiwic2V0U2ltaWxhckZsb29ycGxhbnMiLCJmbG9vcnBsYW5WYXJpYXRpb25zIiwic2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyIsInRlc3RpbW9uaWFscyIsInNldFRlc3RpbW9uaWFscyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsImVycm9yTG9hZGluZyIsInNldEVycm9yTG9hZGluZyIsIm1hcFJlZiIsInVzZVJlZiIsImhhbmRsZVJlZlRvTWFwIiwiY3VycmVudCIsInNjcm9sbEludG9WaWV3IiwiYmVoYXZpb3IiLCJibG9jayIsInVzZUVmZmVjdCIsIlByb21pc2UiLCJhbGwiLCJnZXRGbG9vcnBsYW4iLCJnZXRGbG9vcnBsYW5WYXJpYXRpb25zIiwiZ2V0U2ltaWxhckZsb29ycGxhbnMiLCJnZXRUZXN0aW1vbmlhbHMiLCJ0aGVuIiwiZGF0YSIsImZsb29ycGxhbkRhdGEiLCJhY3RpdmVVbml0cyIsInVuaXRzIiwiZmlsdGVyIiwidW5pdCIsImFjdGl2ZSIsImNhdGNoIiwiZmluYWxseSIsImF2YWlsYWJsZURhdGVzIiwic29ydEF2YWlsYWJpbGVEYXRlcyIsImEiLCJiIiwibW9tZW50IiwiZGlmZiIsImRhdGVzIiwiU2V0IiwiZm9yRWFjaCIsImFkZCIsImRhdGVUb01vbWVudCIsIm1vdmVJbkRhdGUiLCJmb3JtYXQiLCJBcnJheSIsImZyb20iLCJzb3J0IiwiYmVkcm9vbSIsImJhdGhyb29tIiwiZW51bVRvU3RyaW5nIiwic3R5bGUiLCJyYW5nZUZyb20iLCJkZXNjcmlwdGlvbiIsImFtZW5pdGllcyIsImxlbmd0aCIsImFtZW5pdHkiLCJmZWF0dXJlZCIsIm1hcCIsImlkIiwibmFtZSIsInZhcmlhdGlvbiIsImkiLCJhZGRyZXNzVG9Hb29nbGVNYXAiLCJhZGRyZXNzIiwiemlwY29kZSIsInBlcm1pdHRlZFBldHMiLCJwZXQiLCJub3RQZXJtaXR0ZWRQZXRzIiwicGV0UG9saWN5IiwiYXZhaWxhYmxlRGF0ZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsInV0aWxpdGllcyIsInV0aWxpdHkiLCJ0eXBlIiwiVXRpbGl0eVR5cGUiLCJJTkNMVURFRF9VVElMSVRZIiwiUkVTSURFTlRfVVRJTElUWSIsInByb3BlcnR5IiwicGhvbmUiLCJmb3JtYXRQaG9uZU51bWJlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mbG9vcnBsYW4vc2VjdGlvbi9GbG9vcnBsYW5TZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtGbG9vcnBsYW4sIEZsb29ycGxhblZhcmlhdGlvbiwgU2ltaWxhckZsb29ycGxhbiwgVGVzdGltb25pYWwsIFV0aWxpdHlUeXBlfSBmcm9tIFwiLi4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7XG4gICAgZ2V0Rmxvb3JwbGFuLFxuICAgIGdldEZsb29ycGxhblZhcmlhdGlvbnMsXG4gICAgZ2V0U2ltaWxhckZsb29ycGxhbnMsXG4gICAgZ2V0VGVzdGltb25pYWxzLFxuICAgIG5vdFBlcm1pdHRlZFBldHMsXG4gICAgcGVybWl0dGVkUGV0cyxcbiAgICBwZXRQb2xpY3lcbn0gZnJvbSBcIi4uL3NlcnZpY2UvRmxvb3JwbGFuU2VydmljZVwiO1xuaW1wb3J0IFwiLi9hc3NldHMvRmxvb3JwbGFuU2VjdGlvbi5zY3NzXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvU2tlbGV0b259IGZyb20gXCIuLi8uLi9nYWxsZXJ5L0dhbGxlcnlIZXJvU2tlbGV0b25cIjtcbmltcG9ydCB7Rmxvb3JwbGFuSGVyb30gZnJvbSBcIi4vRmxvb3JwbGFuSGVyb1wiO1xuaW1wb3J0IHtcbiAgICBhZGRyZXNzVG9Hb29nbGVNYXAsXG4gICAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyLFxuICAgIGRhdGVUb01vbWVudCxcbiAgICBlbnVtVG9TdHJpbmcsXG4gICAgZm9ybWF0UGhvbmVOdW1iZXIsXG4gICAgcmFuZ2VGcm9tXG59IGZyb20gXCIuLi8uLi91dGlscy9VdGlsc1wiO1xuaW1wb3J0IHtDYXJkfSBmcm9tIFwiLi4vLi4vY2FyZC9DYXJkXCI7XG5pbXBvcnQge1Rlc3RpbW9uaWFsc0NhcmR9IGZyb20gXCIuLi9jYXJkL1Rlc3RpbW9uaWFsc0NhcmRcIjtcbmltcG9ydCB7TWFwU2VjdGlvbn0gZnJvbSBcIi4uLy4uL21hcC9NYXBTZWN0aW9uXCI7XG5pbXBvcnQge1NpbWlsYXJGbG9vcnBsYW5DYXJkfSBmcm9tIFwiLi4vY2FyZC9TaW1pbGFyRmxvb3JwbGFuQ2FyZFwiO1xuaW1wb3J0IHtCdXR0b24sIExpLCBVbH0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmV4cG9ydCBjb25zdCBGbG9vcnBsYW5TZWN0aW9uOiBSZWFjdC5GQzxGbG9vcnBsYW5TZWN0aW9uUHJvcHM+ID0gKFxuICAgIHtcbiAgICAgICAgY29udGFjdENsaWNrSGFuZGxlcixcbiAgICAgICAgYXBwbHlDbGlja0hhbmRsZXIsXG4gICAgICAgIGZsb29ycGxhbklkXG4gICAgfSkgPT4ge1xuICAgIGNvbnN0IFtmbG9vcnBsYW4sIHNldEZsb29ycGxhbl0gPSB1c2VTdGF0ZTxGbG9vcnBsYW4+KHt9IGFzIEZsb29ycGxhbik7XG4gICAgY29uc3QgW3NpbWlsYXJGbG9vcnBsYW5zLCBzZXRTaW1pbGFyRmxvb3JwbGFuc10gPSB1c2VTdGF0ZTxTaW1pbGFyRmxvb3JwbGFuW10+KFtdKTtcbiAgICBjb25zdCBbZmxvb3JwbGFuVmFyaWF0aW9ucywgc2V0Rmxvb3JwbGFuVmFyaWF0aW9uc10gPSB1c2VTdGF0ZTxGbG9vcnBsYW5WYXJpYXRpb25bXT4oW10pO1xuICAgIGNvbnN0IFt0ZXN0aW1vbmlhbHMsIHNldFRlc3RpbW9uaWFsc10gPSB1c2VTdGF0ZTxUZXN0aW1vbmlhbFtdPihbXSk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtlcnJvckxvYWRpbmcsIHNldEVycm9yTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVJlZlRvTWFwID0gKCkgPT4ge1xuICAgICAgICBtYXBSZWYuY3VycmVudD8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgICAgICAgICBibG9jazogXCJjZW50ZXJcIlxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIGdldEZsb29ycGxhbihmbG9vcnBsYW5JZCksXG4gICAgICAgICAgICBnZXRGbG9vcnBsYW5WYXJpYXRpb25zKGZsb29ycGxhbklkKSxcbiAgICAgICAgICAgIGdldFNpbWlsYXJGbG9vcnBsYW5zKGZsb29ycGxhbklkKSxcbiAgICAgICAgICAgIGdldFRlc3RpbW9uaWFscyhmbG9vcnBsYW5JZClcbiAgICAgICAgXSlcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxvb3JwbGFuRGF0YSA9IHsuLi5kYXRhWzBdfTtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVVbml0cyA9IGZsb29ycGxhbkRhdGEudW5pdHMuZmlsdGVyKHVuaXQgPT4gdW5pdC5hY3RpdmUpO1xuICAgICAgICAgICAgICAgIGZsb29ycGxhbkRhdGEudW5pdHMgPSBhY3RpdmVVbml0cztcbiAgICAgICAgICAgICAgICBzZXRGbG9vcnBsYW4oZmxvb3JwbGFuRGF0YSk7XG4gICAgICAgICAgICAgICAgc2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyhkYXRhWzFdKTtcbiAgICAgICAgICAgICAgICBzZXRTaW1pbGFyRmxvb3JwbGFucyhkYXRhWzJdKTtcbiAgICAgICAgICAgICAgICBzZXRUZXN0aW1vbmlhbHMoZGF0YVszXSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvckxvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgIH0sIFtmbG9vcnBsYW5JZF0pO1xuXG4gICAgY29uc3QgYXZhaWxhYmxlRGF0ZXMgPSAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgICBjb25zdCBzb3J0QXZhaWxhYmlsZURhdGVzID0gKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PiBtb21lbnQoYSwgXCJNTU1NIFlZWVlcIikuZGlmZihtb21lbnQoYiwgXCJNTU1NIFlZWVlcIikpO1xuICAgICAgICBjb25zdCBkYXRlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBmbG9vcnBsYW4udW5pdHMuZm9yRWFjaCh1bml0ID0+IHtcbiAgICAgICAgICAgIGRhdGVzLmFkZChkYXRlVG9Nb21lbnQodW5pdC5tb3ZlSW5EYXRlKS5mb3JtYXQoXCJNTU1NIFlZWVlcIikpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShkYXRlcykuc29ydChzb3J0QXZhaWxhYmlsZURhdGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VjdGlvbi1mbG9vcnBsYW5cIj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpc0xvYWRpbmcgPyA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZWN0aW9uLWZsb29ycGxhbi0taGVyb1wiPjxHYWxsZXJ5SGVyb1NrZWxldG9uLz48L3NlY3Rpb24+IDogPD5cbiAgICAgICAgICAgICAgICAgICAge2Vycm9yTG9hZGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJkaXYtZnVsbC0tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlVoLW9oLCB0aGlzIGlzIGEgNDA0PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rmxvb3JwbGFuSGVybyBmbG9vcnBsYW49e2Zsb29ycGxhbn0gY29udGFjdENsaWNrSGFuZGxlcj17Y29udGFjdENsaWNrSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUNsaWNrSGFuZGxlcj17YXBwbHlDbGlja0hhbmRsZXJ9IGhhbmRsZVJlZlRvTWFwPXtoYW5kbGVSZWZUb01hcH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS1jYXJkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4uYmVkcm9vbX0gQmVkcm9vbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtmbG9vcnBsYW4uYmF0aHJvb219IEJhdGhyb29tIHtlbnVtVG9TdHJpbmcoZmxvb3JwbGFuLnN0eWxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyYW5nZUZyb20oZmxvb3JwbGFuLnVuaXRzLCBcInNxdWFyZUZvb3RcIil9IFNxdWFyZSBGZWV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi1jYXJkLS1mZWF0dXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3JhbmdlRnJvbShmbG9vcnBsYW4udW5pdHMsIFwicmVudFwiKX0vbW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7cmFuZ2VGcm9tKGZsb29ycGxhbi51bml0cywgXCJkZXBvc2l0XCIpfSBTZWN1cml0eSBEZXBvc2l0PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4uYW1lbml0aWVzLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCB0aXRsZT1cIkFtZW5pdGllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLmFtZW5pdGllcy5maWx0ZXIoYW1lbml0eSA9PiBhbWVuaXR5LmZlYXR1cmVkKS5tYXAoYW1lbml0eSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJmbG9vcnBsYW4tYW1lbml0eS1cIiArIGFtZW5pdHkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGZWF0dXJlZD17dHJ1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FtZW5pdHkubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4uYW1lbml0aWVzLmZpbHRlcihhbWVuaXR5ID0+ICFhbWVuaXR5LmZlYXR1cmVkKS5tYXAoYW1lbml0eSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJmbG9vcnBsYW4tYW1lbml0eS1cIiArIGFtZW5pdHkuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthbWVuaXR5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW5WYXJpYXRpb25zLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlZhcmlhdGlvbnM8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuVmFyaWF0aW9ucy5tYXAoKHZhcmlhdGlvbiwgaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1wiZmxvb3JwbGFuLXZhcmlhdGlvbi1cIiArIGl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYXRpb24udmFyaWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+IDogPD48Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFscy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlc3RpbW9uaWFsc0NhcmQgdGVzdGltb25pYWxzPXt0ZXN0aW1vbmlhbHN9Lz4gOiA8PjwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e21hcFJlZn0gaWQ9XCJsb2NhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWFwU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXthZGRyZXNzVG9Hb29nbGVNYXAoZmxvb3JwbGFuLnVuaXRzWzBdPy5hZGRyZXNzLCBmbG9vcnBsYW4udW5pdHNbMF0/LnppcGNvZGUpfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDYXJkIHRpdGxlPVwiUGV0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5QZXJtaXR0ZWQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkUGV0cyhmbG9vcnBsYW4pLm1hcCgocGV0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1wiZmxvb3JwbGFuLXBlcm1pdHRlZC1wZXQtXCIgKyBpfSBidWxsZXRJY29uPVwiY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWxsZXRDb2xvcj1cImdyZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25vdFBlcm1pdHRlZFBldHMoZmxvb3JwbGFuKS5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD48aDU+Tm90IFBlcm1pdHRlZDwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RQZXJtaXR0ZWRQZXRzKGZsb29ycGxhbikubWFwKChwZXQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGkga2V5PXtcImZsb29ycGxhbi1ub3QtcGVybWl0dGVkLXBldC1cIiArIGl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVsbGV0Q29sb3I9XCJicm93blwiIGJ1bGxldEljb249XCJjbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGV0UG9saWN5KGZsb29ycGxhbikgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+QWRkaXRpb25hbCBJbmZvcm1hdGlvbjwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3BldFBvbGljeShmbG9vcnBsYW4pfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJBdmFpbGFiaWxpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZURhdGVzKCkubWFwKGF2YWlsYWJsZURhdGUgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGkga2V5PXtcImZsb29ycGxhbi11bml0LWF2YWlsYWJpbGl0eS1cIiArIGF2YWlsYWJsZURhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJjYWxlbmRhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdmFpbGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gPHN0cm9uZz57Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGF2YWlsYWJsZURhdGUpfTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDYXJkIHRpdGxlPVwiVXRpbGl0aWVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlBhaWQgQnkgTGFuZGxvcmQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLnV0aWxpdGllcy5maWx0ZXIodXRpbGl0eSA9PiB1dGlsaXR5LnR5cGUgPT09IFV0aWxpdHlUeXBlLklOQ0xVREVEX1VUSUxJVFkpLm1hcCh1dGlsaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJmbG9vcnBsYW4taW5jbHVkZWQtdXRpbGl0eS1cIiArIHV0aWxpdHkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJob21lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIodXRpbGl0eS5uYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+UGFpZCBCeSBUZW5hbnQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLnV0aWxpdGllcy5maWx0ZXIodXRpbGl0eSA9PiB1dGlsaXR5LnR5cGUgPT09IFV0aWxpdHlUeXBlLlJFU0lERU5UX1VUSUxJVFkpLm1hcCh1dGlsaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJmbG9vcnBsYW4tcmVzaWRlbnQtdXRpbGl0eS1cIiArIHV0aWxpdHkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJkb2xsYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhcGl0YWxpemVGaXJzdExldHRlcih1dGlsaXR5Lm5hbWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2ltaWxhckZsb29ycGxhbnMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNpbWlsYXJGbG9vcnBsYW5DYXJkIHNpbWlsYXJGbG9vcnBsYW5zPXtzaW1pbGFyRmxvb3JwbGFuc30vPiA6IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFjdC1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgZmVhdHVyZWQ9e3RydWV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aT5RdWVzdGlvbnM/PC9pPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGk+Q2FsbCBvciB0ZXh0IHVzIGFueXRpbWU6PC9pPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5wcm9wZXJ0eT8ucGhvbmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtcInRlbDpcIiArIGZsb29ycGxhbi5wcm9wZXJ0eS5waG9uZX0+e2Zvcm1hdFBob25lTnVtYmVyKGZsb29ycGxhbi5wcm9wZXJ0eS5waG9uZSl9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG9uQ2xpY2s9e2NvbnRhY3RDbGlja0hhbmRsZXJ9IHNpemU9XCJsYXJnZVwiPkNvbnRhY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDCuzwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvb3JwbGFuU2VjdGlvblByb3BzIHtcbiAgICBjb250YWN0Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGFwcGx5Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGZsb29ycGxhbklkOiBzdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQVNBOztBQUNBOztBQUNBOztBQUNBOztBQVFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLGdCQUFpRCxHQUFHLFNBQXBEQSxnQkFBb0QsT0FLdkQ7RUFBQTs7RUFBQSxJQUhGQyxtQkFHRSxRQUhGQSxtQkFHRTtFQUFBLElBRkZDLGlCQUVFLFFBRkZBLGlCQUVFO0VBQUEsSUFERkMsV0FDRSxRQURGQSxXQUNFOztFQUNOLGdCQUFrQyxJQUFBQyxlQUFBLEVBQW9CLEVBQXBCLENBQWxDO0VBQUE7RUFBQSxJQUFPQyxTQUFQO0VBQUEsSUFBa0JDLFlBQWxCOztFQUNBLGlCQUFrRCxJQUFBRixlQUFBLEVBQTZCLEVBQTdCLENBQWxEO0VBQUE7RUFBQSxJQUFPRyxpQkFBUDtFQUFBLElBQTBCQyxvQkFBMUI7O0VBQ0EsaUJBQXNELElBQUFKLGVBQUEsRUFBK0IsRUFBL0IsQ0FBdEQ7RUFBQTtFQUFBLElBQU9LLG1CQUFQO0VBQUEsSUFBNEJDLHNCQUE1Qjs7RUFDQSxpQkFBd0MsSUFBQU4sZUFBQSxFQUF3QixFQUF4QixDQUF4QztFQUFBO0VBQUEsSUFBT08sWUFBUDtFQUFBLElBQXFCQyxlQUFyQjs7RUFDQSxpQkFBa0MsSUFBQVIsZUFBQSxFQUFTLElBQVQsQ0FBbEM7RUFBQTtFQUFBLElBQU9TLFNBQVA7RUFBQSxJQUFrQkMsWUFBbEI7O0VBQ0Esa0JBQXdDLElBQUFWLGVBQUEsRUFBUyxLQUFULENBQXhDO0VBQUE7RUFBQSxJQUFPVyxZQUFQO0VBQUEsSUFBcUJDLGVBQXJCOztFQUVBLElBQU1DLE1BQU0sR0FBRyxJQUFBQyxhQUFBLEVBQXVCLElBQXZCLENBQWY7O0VBQ0EsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFNO0lBQUE7O0lBQ3pCLG1CQUFBRixNQUFNLENBQUNHLE9BQVAsb0VBQWdCQyxjQUFoQixDQUErQjtNQUMzQkMsUUFBUSxFQUFFLFFBRGlCO01BRTNCQyxLQUFLLEVBQUU7SUFGb0IsQ0FBL0I7RUFJSCxDQUxEOztFQU1BLElBQUFDLGdCQUFBLEVBQVUsWUFBTTtJQUNaQyxPQUFPLENBQUNDLEdBQVIsQ0FBWSxDQUNSLElBQUFDLDhCQUFBLEVBQWF4QixXQUFiLENBRFEsRUFFUixJQUFBeUIsd0NBQUEsRUFBdUJ6QixXQUF2QixDQUZRLEVBR1IsSUFBQTBCLHNDQUFBLEVBQXFCMUIsV0FBckIsQ0FIUSxFQUlSLElBQUEyQixpQ0FBQSxFQUFnQjNCLFdBQWhCLENBSlEsQ0FBWixFQU1LNEIsSUFOTCxDQU1VLFVBQUNDLElBQUQsRUFBVTtNQUNaLElBQU1DLGFBQWEscUJBQU9ELElBQUksQ0FBQyxDQUFELENBQVgsQ0FBbkI7O01BQ0EsSUFBTUUsV0FBVyxHQUFHRCxhQUFhLENBQUNFLEtBQWQsQ0FBb0JDLE1BQXBCLENBQTJCLFVBQUFDLElBQUk7UUFBQSxPQUFJQSxJQUFJLENBQUNDLE1BQVQ7TUFBQSxDQUEvQixDQUFwQjtNQUNBTCxhQUFhLENBQUNFLEtBQWQsR0FBc0JELFdBQXRCO01BQ0E1QixZQUFZLENBQUMyQixhQUFELENBQVo7TUFDQXZCLHNCQUFzQixDQUFDc0IsSUFBSSxDQUFDLENBQUQsQ0FBTCxDQUF0QjtNQUNBeEIsb0JBQW9CLENBQUN3QixJQUFJLENBQUMsQ0FBRCxDQUFMLENBQXBCO01BQ0FwQixlQUFlLENBQUNvQixJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWY7SUFDSCxDQWRMLEVBZUtPLEtBZkwsQ0FlVyxZQUFNO01BQ1R2QixlQUFlLENBQUMsSUFBRCxDQUFmO0lBQ0gsQ0FqQkwsRUFrQkt3QixPQWxCTCxDQWtCYSxZQUFNO01BQ1gxQixZQUFZLENBQUMsS0FBRCxDQUFaO0lBQ0gsQ0FwQkw7RUFzQkgsQ0F2QkQsRUF1QkcsQ0FBQ1gsV0FBRCxDQXZCSDs7RUF5QkEsSUFBTXNDLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBZ0I7SUFDbkMsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixDQUFDQyxDQUFELEVBQVlDLENBQVo7TUFBQSxPQUEwQixJQUFBQyxlQUFBLEVBQU9GLENBQVAsRUFBVSxXQUFWLEVBQXVCRyxJQUF2QixDQUE0QixJQUFBRCxlQUFBLEVBQU9ELENBQVAsRUFBVSxXQUFWLENBQTVCLENBQTFCO0lBQUEsQ0FBNUI7O0lBQ0EsSUFBTUcsS0FBSyxHQUFHLElBQUlDLEdBQUosRUFBZDtJQUNBM0MsU0FBUyxDQUFDOEIsS0FBVixDQUFnQmMsT0FBaEIsQ0FBd0IsVUFBQVosSUFBSSxFQUFJO01BQzVCVSxLQUFLLENBQUNHLEdBQU4sQ0FBVSxJQUFBQyxtQkFBQSxFQUFhZCxJQUFJLENBQUNlLFVBQWxCLEVBQThCQyxNQUE5QixDQUFxQyxXQUFyQyxDQUFWO0lBQ0gsQ0FGRDtJQUlBLE9BQU9DLEtBQUssQ0FBQ0MsSUFBTixDQUFXUixLQUFYLEVBQWtCUyxJQUFsQixDQUF1QmQsbUJBQXZCLENBQVA7RUFDSCxDQVJEOztFQVNBLG9CQUNJO0lBQVMsU0FBUyxFQUFDO0VBQW5CLEdBRVE3QixTQUFTLGdCQUFHO0lBQVMsU0FBUyxFQUFDO0VBQW5CLGdCQUE2Qyw2QkFBQyx3Q0FBRCxPQUE3QyxDQUFILGdCQUFtRiw0REFDdkZFLFlBQVksZ0JBQ1Q7SUFBUyxTQUFTLEVBQUM7RUFBbkIsZ0JBQ0ksZ0VBREosQ0FEUyxnQkFJVCx5RUFDSSw2QkFBQyw0QkFBRDtJQUFlLFNBQVMsRUFBRVYsU0FBMUI7SUFBcUMsbUJBQW1CLEVBQUVKLG1CQUExRDtJQUNlLGlCQUFpQixFQUFFQyxpQkFEbEM7SUFDcUQsY0FBYyxFQUFFaUI7RUFEckUsRUFESixlQUdJO0lBQUssU0FBUyxFQUFDO0VBQWYsZ0JBQ0k7SUFBSyxTQUFTLEVBQUM7RUFBZixnQkFDSSw2QkFBQyxVQUFEO0lBQU0sS0FBSyxFQUFDO0VBQVosZ0JBQ0k7SUFBRyxTQUFTLEVBQUM7RUFBYixHQUNLZCxTQUFTLENBQUNvRCxPQURmLGlCQUVPcEQsU0FBUyxDQUFDcUQsUUFGakIsZ0JBRXFDLElBQUFDLG1CQUFBLEVBQWF0RCxTQUFTLENBQUN1RCxLQUF2QixDQUZyQyxDQURKLGVBS0k7SUFBRyxTQUFTLEVBQUM7RUFBYixHQUNLLElBQUFDLGdCQUFBLEVBQVV4RCxTQUFTLENBQUM4QixLQUFwQixFQUEyQixZQUEzQixDQURMLGlCQUxKLGVBUUk7SUFBRyxTQUFTLEVBQUM7RUFBYixRQUNNLElBQUEwQixnQkFBQSxFQUFVeEQsU0FBUyxDQUFDOEIsS0FBcEIsRUFBMkIsTUFBM0IsQ0FETixRQVJKLGVBV0k7SUFBRyxTQUFTLEVBQUM7RUFBYixRQUNNLElBQUEwQixnQkFBQSxFQUFVeEQsU0FBUyxDQUFDOEIsS0FBcEIsRUFBMkIsU0FBM0IsQ0FETixzQkFYSixlQWFJLHdDQUNLOUIsU0FBUyxDQUFDeUQsV0FEZixDQWJKLENBREosRUFtQlF6RCxTQUFTLENBQUMwRCxTQUFWLENBQW9CQyxNQUFwQixHQUE2QixDQUE3QixnQkFDSSw2QkFBQyxVQUFEO0lBQU0sS0FBSyxFQUFDO0VBQVosZ0JBQ0ksNkJBQUMsYUFBRCxRQUVRM0QsU0FBUyxDQUFDMEQsU0FBVixDQUFvQjNCLE1BQXBCLENBQTJCLFVBQUE2QixPQUFPO0lBQUEsT0FBSUEsT0FBTyxDQUFDQyxRQUFaO0VBQUEsQ0FBbEMsRUFBd0RDLEdBQXhELENBQTRELFVBQUFGLE9BQU87SUFBQSxvQkFDL0QsNkJBQUMsYUFBRDtNQUFJLEdBQUcsRUFBRSx1QkFBdUJBLE9BQU8sQ0FBQ0csRUFBeEM7TUFDSSxVQUFVLEVBQUU7SUFEaEIsR0FFS0gsT0FBTyxDQUFDSSxJQUZiLENBRCtEO0VBQUEsQ0FBbkUsQ0FGUixFQVNRaEUsU0FBUyxDQUFDMEQsU0FBVixDQUFvQjNCLE1BQXBCLENBQTJCLFVBQUE2QixPQUFPO0lBQUEsT0FBSSxDQUFDQSxPQUFPLENBQUNDLFFBQWI7RUFBQSxDQUFsQyxFQUF5REMsR0FBekQsQ0FBNkQsVUFBQUYsT0FBTztJQUFBLG9CQUNoRSw2QkFBQyxhQUFEO01BQUksR0FBRyxFQUFFLHVCQUF1QkEsT0FBTyxDQUFDRztJQUF4QyxHQUNLSCxPQUFPLENBQUNJLElBRGIsQ0FEZ0U7RUFBQSxDQUFwRSxDQVRSLENBREosRUFrQlE1RCxtQkFBbUIsQ0FBQ3VELE1BQXBCLEdBQTZCLENBQTdCLGdCQUNJLHlFQUNJLHNEQURKLGVBRUksNkJBQUMsYUFBRCxRQUVRdkQsbUJBQW1CLENBQUMwRCxHQUFwQixDQUF3QixVQUFDRyxTQUFELEVBQVlDLENBQVo7SUFBQSxvQkFDcEIsNkJBQUMsYUFBRDtNQUFJLEdBQUcsRUFBRSx5QkFBeUJBO0lBQWxDLEdBQ0tELFNBQVMsQ0FBQ0EsU0FEZixDQURvQjtFQUFBLENBQXhCLENBRlIsQ0FGSixDQURKLEdBYVUsRUEvQmxCLENBREosZ0JBa0NjLDJEQXJEdEIsRUF5RFEzRCxZQUFZLENBQUNxRCxNQUFiLEdBQXNCLENBQXRCLGdCQUNJLDZCQUFDLGtDQUFEO0lBQWtCLFlBQVksRUFBRXJEO0VBQWhDLEVBREosZ0JBQ3NELDJEQTFEOUQsZUE0REksNkJBQUMsVUFBRCxxQkFDSTtJQUFLLEdBQUcsRUFBRU0sTUFBVjtJQUFrQixFQUFFLEVBQUM7RUFBckIsZ0JBQ0ksNkJBQUMsc0JBQUQ7SUFDSSxHQUFHLEVBQUUsSUFBQXVELHlCQUFBLHVCQUFtQm5FLFNBQVMsQ0FBQzhCLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBbkIsc0RBQW1CLGtCQUFvQnNDLE9BQXZDLHdCQUFnRHBFLFNBQVMsQ0FBQzhCLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBaEQsdURBQWdELG1CQUFvQnVDLE9BQXBFO0VBRFQsRUFESixDQURKLENBNURKLGVBbUVJLDZCQUFDLFVBQUQ7SUFBTSxLQUFLLEVBQUM7RUFBWixnQkFDSSxxREFESixlQUVJLDZCQUFDLGFBQUQsUUFFUSxJQUFBQywrQkFBQSxFQUFjdEUsU0FBZCxFQUF5QjhELEdBQXpCLENBQTZCLFVBQUNTLEdBQUQsRUFBTUwsQ0FBTjtJQUFBLG9CQUN6Qiw2QkFBQyxhQUFEO01BQUksR0FBRyxFQUFFLDZCQUE2QkEsQ0FBdEM7TUFBeUMsVUFBVSxFQUFDLE9BQXBEO01BQ0ksV0FBVyxFQUFDO0lBRGhCLEdBRUtLLEdBRkwsQ0FEeUI7RUFBQSxDQUE3QixDQUZSLENBRkosRUFZSyxJQUFBQyxrQ0FBQSxFQUFpQnhFLFNBQWpCLEVBQTRCMkQsTUFBNUIsR0FBcUMsQ0FBckMsZ0JBQ0cseUVBQUUseURBQUYsZUFDSSw2QkFBQyxhQUFELFFBRVEsSUFBQWEsa0NBQUEsRUFBaUJ4RSxTQUFqQixFQUE0QjhELEdBQTVCLENBQWdDLFVBQUNTLEdBQUQsRUFBTUwsQ0FBTjtJQUFBLG9CQUM1Qiw2QkFBQyxhQUFEO01BQUksR0FBRyxFQUFFLGlDQUFpQ0EsQ0FBMUM7TUFDSSxXQUFXLEVBQUMsT0FEaEI7TUFDd0IsVUFBVSxFQUFDO0lBRG5DLEdBRUtLLEdBRkwsQ0FENEI7RUFBQSxDQUFoQyxDQUZSLENBREosQ0FESCxHQVlTLEVBeEJkLEVBMkJRLElBQUFFLDJCQUFBLEVBQVV6RSxTQUFWLGlCQUNJLHlFQUNJLGtFQURKLGVBRUksd0NBQUksSUFBQXlFLDJCQUFBLEVBQVV6RSxTQUFWLENBQUosQ0FGSixDQURKLEdBSVUsRUEvQmxCLENBbkVKLGVBdUdJLDZCQUFDLFVBQUQ7SUFBTSxLQUFLLEVBQUM7RUFBWixnQkFDSSw2QkFBQyxhQUFELFFBRVFvQyxjQUFjLEdBQUcwQixHQUFqQixDQUFxQixVQUFBWSxhQUFhO0lBQUEsb0JBQzlCLDZCQUFDLGFBQUQ7TUFBSSxHQUFHLEVBQUUsaUNBQWlDQSxhQUExQztNQUNJLFVBQVUsRUFBQztJQURmLGlDQUdPLDZDQUFTLElBQUFDLDRCQUFBLEVBQXNCRCxhQUF0QixDQUFULENBSFAsQ0FEOEI7RUFBQSxDQUFsQyxDQUZSLENBREosQ0F2R0osZUFzSEksNkJBQUMsVUFBRDtJQUFNLEtBQUssRUFBQztFQUFaLGdCQUNJLDREQURKLGVBRUksNkJBQUMsYUFBRCxRQUVRMUUsU0FBUyxDQUFDNEUsU0FBVixDQUFvQjdDLE1BQXBCLENBQTJCLFVBQUE4QyxPQUFPO0lBQUEsT0FBSUEsT0FBTyxDQUFDQyxJQUFSLEtBQWlCQyxzQkFBQSxDQUFZQyxnQkFBakM7RUFBQSxDQUFsQyxFQUFxRmxCLEdBQXJGLENBQXlGLFVBQUFlLE9BQU87SUFBQSxvQkFDNUYsNkJBQUMsYUFBRDtNQUFJLEdBQUcsRUFBRSxnQ0FBZ0NBLE9BQU8sQ0FBQ2QsRUFBakQ7TUFDSSxVQUFVLEVBQUM7SUFEZixHQUVLLElBQUFZLDRCQUFBLEVBQXNCRSxPQUFPLENBQUNiLElBQTlCLENBRkwsQ0FENEY7RUFBQSxDQUFoRyxDQUZSLENBRkosZUFZSSwwREFaSixlQWFJLDZCQUFDLGFBQUQsUUFFUWhFLFNBQVMsQ0FBQzRFLFNBQVYsQ0FBb0I3QyxNQUFwQixDQUEyQixVQUFBOEMsT0FBTztJQUFBLE9BQUlBLE9BQU8sQ0FBQ0MsSUFBUixLQUFpQkMsc0JBQUEsQ0FBWUUsZ0JBQWpDO0VBQUEsQ0FBbEMsRUFBcUZuQixHQUFyRixDQUF5RixVQUFBZSxPQUFPO0lBQUEsb0JBQzVGLDZCQUFDLGFBQUQ7TUFBSSxHQUFHLEVBQUUsZ0NBQWdDQSxPQUFPLENBQUNkLEVBQWpEO01BQ0ksVUFBVSxFQUFDO0lBRGYsR0FFSyxJQUFBWSw0QkFBQSxFQUFzQkUsT0FBTyxDQUFDYixJQUE5QixDQUZMLENBRDRGO0VBQUEsQ0FBaEcsQ0FGUixDQWJKLENBdEhKLEVBK0lLOUQsaUJBQWlCLENBQUN5RCxNQUFsQixHQUEyQixDQUEzQixnQkFDRyw2QkFBQywwQ0FBRDtJQUFzQixpQkFBaUIsRUFBRXpEO0VBQXpDLEVBREgsR0FDbUUsRUFoSnhFLGVBa0pJO0lBQUssU0FBUyxFQUFDO0VBQWYsZ0JBQ0ksNkJBQUMsVUFBRDtJQUFNLFFBQVEsRUFBRTtFQUFoQixnQkFDSSxxREFBRyxxREFBSCxDQURKLGVBRUkscURBQUcsbUVBQUgsQ0FGSixFQUdLLHVCQUFBRixTQUFTLENBQUNrRixRQUFWLG9FQUFvQkMsS0FBcEIsZ0JBQ0cscURBQUc7SUFDQyxJQUFJLEVBQUUsU0FBU25GLFNBQVMsQ0FBQ2tGLFFBQVYsQ0FBbUJDO0VBRG5DLEdBQzJDLElBQUFDLHdCQUFBLEVBQWtCcEYsU0FBUyxDQUFDa0YsUUFBVixDQUFtQkMsS0FBckMsQ0FEM0MsQ0FBSCxDQURILEdBSUssRUFQVixlQVFJLDZCQUFDLGlCQUFEO0lBQVEsT0FBTyxFQUFDLFVBQWhCO0lBQTJCLE9BQU8sRUFBRXZGLG1CQUFwQztJQUF5RCxJQUFJLEVBQUM7RUFBOUQscUJBUkosQ0FESixDQWxKSixDQURKLENBSEosQ0FMb0YsQ0FGcEcsQ0FESjtBQXNMSCxDQTVPTSJ9
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./assets/HeroBadgeStats.scss";
3
+ export declare const HeroBadgeStats: React.FC<HeroBadgeStatsProps>;
4
+ export interface HeroBadgeStatsProps {
5
+ currentView: "photo" | "virtual tour" | "video tour";
6
+ setCurrentView: (currentView: "photo" | "virtual tour" | "video tour") => void;
7
+ totalAssets: number;
8
+ virtualTour?: string;
9
+ videoTours: string[];
10
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HeroBadgeStats = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _muncherUi = require("@contentmunch/muncher-ui");
11
+
12
+ var _cameraIcon = _interopRequireDefault(require("../card/assets/camera-icon.png"));
13
+
14
+ var _icon = _interopRequireDefault(require("../card/assets/360-icon.png"));
15
+
16
+ var _videoIcon = _interopRequireDefault(require("../card/assets/video-icon.png"));
17
+
18
+ require("./assets/HeroBadgeStats.scss");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ var HeroBadgeStats = function HeroBadgeStats(_ref) {
23
+ var currentView = _ref.currentView,
24
+ setCurrentView = _ref.setCurrentView,
25
+ totalAssets = _ref.totalAssets,
26
+ virtualTour = _ref.virtualTour,
27
+ videoTours = _ref.videoTours;
28
+
29
+ var makePlural = function makePlural(length) {
30
+ return length > 1 ? "s" : "";
31
+ };
32
+
33
+ return /*#__PURE__*/_react.default.createElement("div", {
34
+ className: "hero-badge--stats"
35
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Badge, {
36
+ variant: "tertiary"
37
+ }, /*#__PURE__*/_react.default.createElement("div", {
38
+ className: currentView === "photo" ? "item selected" : "item"
39
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
40
+ size: "small",
41
+ variant: "primary",
42
+ rounded: true,
43
+ onClick: function onClick() {
44
+ setCurrentView("photo");
45
+ }
46
+ }, /*#__PURE__*/_react.default.createElement("img", {
47
+ className: "camera-icon",
48
+ src: _cameraIcon.default,
49
+ alt: "camera icon"
50
+ }), /*#__PURE__*/_react.default.createElement("p", null, totalAssets)), /*#__PURE__*/_react.default.createElement("p", {
51
+ className: "main"
52
+ }, totalAssets, " Photo", makePlural(totalAssets))), virtualTour ? /*#__PURE__*/_react.default.createElement("div", {
53
+ className: currentView === "virtual tour" ? "item selected" : "item"
54
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
55
+ size: "small",
56
+ variant: "primary",
57
+ rounded: true,
58
+ onClick: function onClick() {
59
+ setCurrentView("virtual tour");
60
+ }
61
+ }, /*#__PURE__*/_react.default.createElement("img", {
62
+ className: "virtual-tour-icon",
63
+ src: _icon.default,
64
+ alt: "virtual tour icon"
65
+ }), /*#__PURE__*/_react.default.createElement("p", null, "1")), /*#__PURE__*/_react.default.createElement("p", {
66
+ className: "main"
67
+ }, "1 Virtual Tour")) : "", videoTours.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
68
+ className: currentView === "video tour" ? "item selected" : "item"
69
+ }, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
70
+ size: "small",
71
+ variant: "primary",
72
+ rounded: true,
73
+ onClick: function onClick() {
74
+ setCurrentView("video tour");
75
+ }
76
+ }, /*#__PURE__*/_react.default.createElement("img", {
77
+ className: "video-tour-icon",
78
+ src: _videoIcon.default,
79
+ alt: "video tour icon"
80
+ }), /*#__PURE__*/_react.default.createElement("p", null, videoTours.length)), /*#__PURE__*/_react.default.createElement("p", {
81
+ className: "main"
82
+ }, videoTours.length, " Video Tour", makePlural(videoTours.length))) : ""));
83
+ };
84
+
85
+ exports.HeroBadgeStats = HeroBadgeStats;
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIZXJvQmFkZ2VTdGF0cyIsImN1cnJlbnRWaWV3Iiwic2V0Q3VycmVudFZpZXciLCJ0b3RhbEFzc2V0cyIsInZpcnR1YWxUb3VyIiwidmlkZW9Ub3VycyIsIm1ha2VQbHVyYWwiLCJsZW5ndGgiLCJjYW1lcmFJY29uIiwidG91ckljb24iLCJ2aWRlb0ljb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmxvb3JwbGFuL3NlY3Rpb24vSGVyb0JhZGdlU3RhdHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7QmFkZ2UsIEJ1dHRvbn0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IGNhbWVyYUljb24gZnJvbSBcIi4uL2NhcmQvYXNzZXRzL2NhbWVyYS1pY29uLnBuZ1wiO1xuaW1wb3J0IHRvdXJJY29uIGZyb20gXCIuLi9jYXJkL2Fzc2V0cy8zNjAtaWNvbi5wbmdcIjtcbmltcG9ydCB2aWRlb0ljb24gZnJvbSBcIi4uL2NhcmQvYXNzZXRzL3ZpZGVvLWljb24ucG5nXCI7XG5pbXBvcnQgXCIuL2Fzc2V0cy9IZXJvQmFkZ2VTdGF0cy5zY3NzXCI7XG5cbmV4cG9ydCBjb25zdCBIZXJvQmFkZ2VTdGF0czogUmVhY3QuRkM8SGVyb0JhZGdlU3RhdHNQcm9wcz4gPSAoXG4gICAge2N1cnJlbnRWaWV3LCBzZXRDdXJyZW50VmlldywgdG90YWxBc3NldHMsIHZpcnR1YWxUb3VyLCB2aWRlb1RvdXJzfSkgPT4ge1xuICAgIGNvbnN0IG1ha2VQbHVyYWwgPSAobGVuZ3RoOiBudW1iZXIpID0+IGxlbmd0aCA+IDEgPyBcInNcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZXJvLWJhZGdlLS1zdGF0c1wiPlxuICAgICAgICAgICAgPEJhZGdlIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID8gXCJpdGVtIHNlbGVjdGVkXCIgOiBcIml0ZW1cIn0+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgdmFyaWFudD1cInByaW1hcnlcIiByb3VuZGVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3VycmVudFZpZXcoXCJwaG90b1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT48aW1nIGNsYXNzTmFtZT1cImNhbWVyYS1pY29uXCIgc3JjPXtjYW1lcmFJY29ufSBhbHQ9XCJjYW1lcmEgaWNvblwiIC8+PHA+e3RvdGFsQXNzZXRzfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm1haW5cIj57dG90YWxBc3NldHN9IFBob3Rve21ha2VQbHVyYWwodG90YWxBc3NldHMpfTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7dmlydHVhbFRvdXIgP1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y3VycmVudFZpZXcgPT09IFwidmlydHVhbCB0b3VyXCIgPyBcIml0ZW0gc2VsZWN0ZWRcIiA6IFwiaXRlbVwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgdmFyaWFudD1cInByaW1hcnlcIiByb3VuZGVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50VmlldyhcInZpcnR1YWwgdG91clwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJ2aXJ0dWFsLXRvdXItaWNvblwiIHNyYz17dG91ckljb259IGFsdD1cInZpcnR1YWwgdG91ciBpY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4xPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYWluXCI+MSBWaXJ0dWFsIFRvdXI8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAge3ZpZGVvVG91cnMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjdXJyZW50VmlldyA9PT0gXCJ2aWRlbyB0b3VyXCIgPyBcIml0ZW0gc2VsZWN0ZWRcIiA6IFwiaXRlbVwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgdmFyaWFudD1cInByaW1hcnlcIiByb3VuZGVkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50VmlldyhcInZpZGVvIHRvdXJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwidmlkZW8tdG91ci1pY29uXCIgc3JjPXt2aWRlb0ljb259IGFsdD1cInZpZGVvIHRvdXIgaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3ZpZGVvVG91cnMubGVuZ3RofTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWFpblwiPnt2aWRlb1RvdXJzLmxlbmd0aH0gVmlkZW8gVG91cnttYWtlUGx1cmFsKHZpZGVvVG91cnMubGVuZ3RoKX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiA6IFwiXCJ9XG4gICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIZXJvQmFkZ2VTdGF0c1Byb3BzIHtcbiAgICBjdXJyZW50VmlldzogXCJwaG90b1wiIHwgXCJ2aXJ0dWFsIHRvdXJcIiB8IFwidmlkZW8gdG91clwiO1xuICAgIHNldEN1cnJlbnRWaWV3OiAoY3VycmVudFZpZXc6IFwicGhvdG9cIiB8IFwidmlydHVhbCB0b3VyXCIgfCBcInZpZGVvIHRvdXJcIikgPT4gdm9pZDtcbiAgICB0b3RhbEFzc2V0czogbnVtYmVyO1xuICAgIHZpcnR1YWxUb3VyPzogc3RyaW5nO1xuICAgIHZpZGVvVG91cnM6IHN0cmluZ1tdO1xufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sSUFBTUEsY0FBNkMsR0FBRyxTQUFoREEsY0FBZ0QsT0FDZTtFQUFBLElBQXZFQyxXQUF1RSxRQUF2RUEsV0FBdUU7RUFBQSxJQUExREMsY0FBMEQsUUFBMURBLGNBQTBEO0VBQUEsSUFBMUNDLFdBQTBDLFFBQTFDQSxXQUEwQztFQUFBLElBQTdCQyxXQUE2QixRQUE3QkEsV0FBNkI7RUFBQSxJQUFoQkMsVUFBZ0IsUUFBaEJBLFVBQWdCOztFQUN4RSxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxNQUFEO0lBQUEsT0FBb0JBLE1BQU0sR0FBRyxDQUFULEdBQWEsR0FBYixHQUFtQixFQUF2QztFQUFBLENBQW5COztFQUNBLG9CQUNJO0lBQUssU0FBUyxFQUFDO0VBQWYsZ0JBQ0ksNkJBQUMsZ0JBQUQ7SUFBTyxPQUFPLEVBQUM7RUFBZixnQkFDSTtJQUFLLFNBQVMsRUFBRU4sV0FBVyxLQUFLLE9BQWhCLEdBQTBCLGVBQTFCLEdBQTRDO0VBQTVELGdCQUNJLDZCQUFDLGlCQUFEO0lBQVEsSUFBSSxFQUFDLE9BQWI7SUFBcUIsT0FBTyxFQUFDLFNBQTdCO0lBQXVDLE9BQU8sRUFBRSxJQUFoRDtJQUNRLE9BQU8sRUFBRSxtQkFBTTtNQUNYQyxjQUFjLENBQUMsT0FBRCxDQUFkO0lBQ0g7RUFIVCxnQkFHVztJQUFLLFNBQVMsRUFBQyxhQUFmO0lBQTZCLEdBQUcsRUFBRU0sbUJBQWxDO0lBQThDLEdBQUcsRUFBQztFQUFsRCxFQUhYLGVBRzZFLHdDQUFJTCxXQUFKLENBSDdFLENBREosZUFNSTtJQUFHLFNBQVMsRUFBQztFQUFiLEdBQXFCQSxXQUFyQixZQUF3Q0csVUFBVSxDQUFDSCxXQUFELENBQWxELENBTkosQ0FESixFQVNLQyxXQUFXLGdCQUNSO0lBQUssU0FBUyxFQUFFSCxXQUFXLEtBQUssY0FBaEIsR0FBaUMsZUFBakMsR0FBbUQ7RUFBbkUsZ0JBQ0ksNkJBQUMsaUJBQUQ7SUFBUSxJQUFJLEVBQUMsT0FBYjtJQUFxQixPQUFPLEVBQUMsU0FBN0I7SUFBdUMsT0FBTyxFQUFFLElBQWhEO0lBQ1EsT0FBTyxFQUFFLG1CQUFNO01BQ1hDLGNBQWMsQ0FBQyxjQUFELENBQWQ7SUFDSDtFQUhULGdCQUlJO0lBQUssU0FBUyxFQUFDLG1CQUFmO0lBQW1DLEdBQUcsRUFBRU8sYUFBeEM7SUFBa0QsR0FBRyxFQUFDO0VBQXRELEVBSkosZUFLSSw0Q0FMSixDQURKLGVBUUk7SUFBRyxTQUFTLEVBQUM7RUFBYixvQkFSSixDQURRLEdBVUMsRUFuQmpCLEVBb0JLSixVQUFVLENBQUNFLE1BQVgsR0FBb0IsQ0FBcEIsZ0JBQ0c7SUFBSyxTQUFTLEVBQUVOLFdBQVcsS0FBSyxZQUFoQixHQUErQixlQUEvQixHQUFpRDtFQUFqRSxnQkFDSSw2QkFBQyxpQkFBRDtJQUFRLElBQUksRUFBQyxPQUFiO0lBQXFCLE9BQU8sRUFBQyxTQUE3QjtJQUF1QyxPQUFPLEVBQUUsSUFBaEQ7SUFDUSxPQUFPLEVBQUUsbUJBQU07TUFDWEMsY0FBYyxDQUFDLFlBQUQsQ0FBZDtJQUNIO0VBSFQsZ0JBSUk7SUFBSyxTQUFTLEVBQUMsaUJBQWY7SUFBaUMsR0FBRyxFQUFFUSxrQkFBdEM7SUFBaUQsR0FBRyxFQUFDO0VBQXJELEVBSkosZUFLSSx3Q0FBSUwsVUFBVSxDQUFDRSxNQUFmLENBTEosQ0FESixlQVFJO0lBQUcsU0FBUyxFQUFDO0VBQWIsR0FBcUJGLFVBQVUsQ0FBQ0UsTUFBaEMsaUJBQW1ERCxVQUFVLENBQUNELFVBQVUsQ0FBQ0UsTUFBWixDQUE3RCxDQVJKLENBREgsR0FVWSxFQTlCakIsQ0FESixDQURKO0FBb0NILENBdkNNIn0=
@@ -0,0 +1,5 @@
1
+ @import "src/assets/variables";
2
+
3
+ .hero-badge--stats {
4
+
5
+ }
@@ -3,11 +3,99 @@
3
3
  .section-floorplan--hero {
4
4
  padding: 0;
5
5
  background: $primary-background-color;
6
+ width: 100vw;
7
+ position: relative;
6
8
 
7
9
  a {
8
10
  text-decoration: underline;
9
11
  }
10
12
 
13
+ .gallery-hero {
14
+ position: relative;
15
+ width: 100vw;
16
+ height: 40vh;
17
+ @media (min-width: $large-size) {
18
+ height: 40vw;
19
+ }
20
+
21
+ .virtual-tour-view {
22
+ iframe {
23
+ width: 100%;
24
+ height: 40vh;
25
+ @media (min-width: $large-size) {
26
+ height: 40vw;
27
+
28
+ }
29
+ }
30
+ }
31
+
32
+ .video-tour-view {
33
+ .single-video-layout {
34
+ iframe {
35
+ width: 100%;
36
+ height: 35vh;
37
+ @media (min-width: $large-size) {
38
+ height: 40vw;
39
+ }
40
+ }
41
+ }
42
+
43
+ .two-video-layout {
44
+ @media (min-width: $large-size) {
45
+ display: flex;
46
+ align-content: flex-start;
47
+ justify-content: space-evenly;
48
+ }
49
+
50
+ iframe {
51
+ width: 40%;
52
+ height: 35vh;
53
+ margin: 1rem;
54
+ @media (min-width: $large-size) {
55
+ height: 35vw;
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ .badge--stats {
62
+ position: absolute;
63
+ left: 50%;
64
+ transform: translate(-50%, -50%);
65
+ bottom: -2rem;
66
+
67
+ .muncher-badge {
68
+ color: $primary-background-color;
69
+ flex-wrap: nowrap;
70
+ break-inside: avoid;
71
+ align-content: center;
72
+ width: 60vw;
73
+ font-size: .7rem;
74
+ @media (min-width: $large-size) {
75
+ font-size: 1rem;
76
+ width: auto;
77
+ }
78
+
79
+ .muncher-button--small {
80
+ padding: 0;
81
+ color: $primary-background-color;
82
+ text-transform: capitalize;
83
+ font-size: .7rem;
84
+ font-family: $serif-font;
85
+ @media (min-width: $large-size) {
86
+ font-size: 1rem;
87
+ }
88
+
89
+ .selected {
90
+ text-decoration: underline;
91
+ }
92
+ }
93
+
94
+ }
95
+ }
96
+ }
97
+
98
+
11
99
  .floorplan--two-columns {
12
100
  padding: 2rem;
13
101
  @media (min-width: $medium-size) {
@@ -45,7 +133,8 @@
45
133
  font-family: $sans-serif-font;
46
134
  letter-spacing: .05rem;
47
135
  font-size: 1.1rem;
48
- .muncher-button{
136
+
137
+ .muncher-button {
49
138
  font-family: $sans-serif-font;
50
139
  letter-spacing: .05rem;
51
140
  font-size: 1.1rem;
@@ -43,9 +43,6 @@ $floorplan-background-color: $tertiary-color !default;
43
43
 
44
44
  li {
45
45
  font-size: 1rem;
46
- letter-spacing: .03rem;
47
- line-height: 1.5rem;
48
- font-weight: 300;
49
46
  }
50
47
  }
51
48
 
@@ -0,0 +1,74 @@
1
+ @import 'src/assets/variables';
2
+
3
+ .hero-badge--stats {
4
+ position: absolute;
5
+ left: 50%;
6
+ transform: translate(-50%, -50%);
7
+
8
+ .muncher-badge {
9
+ color: $primary-background-color;
10
+ flex-wrap: nowrap;
11
+ break-inside: avoid;
12
+ align-content: center;
13
+ justify-content: space-evenly;
14
+ width: 50vw;
15
+ font-size: .7rem;
16
+ margin: 0;
17
+ padding: .2rem;
18
+ @media (min-width: $large-size) {
19
+ font-size: 1rem;
20
+ width: auto;
21
+ }
22
+
23
+ .muncher-button--rounded {
24
+ border-radius: .5rem;
25
+ margin: .25rem;
26
+ min-height: 1.8rem;
27
+ min-width: 3rem;
28
+ }
29
+
30
+ .item {
31
+ display: flex;
32
+ flex-direction: column;
33
+ flex-wrap: wrap;
34
+ justify-content: center;
35
+ align-items: center;
36
+ @media (min-width: $large-size) {
37
+ padding: .25rem;
38
+ }
39
+
40
+ p {
41
+ font-size: .6rem;
42
+ margin: 0;
43
+ }
44
+ }
45
+
46
+ .selected {
47
+ text-decoration: underline;
48
+ font-weight: bold;
49
+ }
50
+
51
+ .muncher-button--small {
52
+ color: $primary-background-color;
53
+ text-transform: capitalize;
54
+ font-size: .7rem;
55
+ font-family: $serif-font;
56
+
57
+ img {
58
+ margin-right: .4rem;
59
+ }
60
+
61
+ p {
62
+ font-size: .7rem;
63
+ }
64
+ }
65
+
66
+ .camera-icon, .virtual-tour-icon {
67
+ height: .9rem;
68
+ }
69
+
70
+ .video-tour-icon {
71
+ height: .8rem;
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import './assets/GalleryHero.scss';
3
+ import { Asset } from "../asset/data/Asset";
4
+ export declare const GalleryHeroMain: React.FC<GalleryHeroProps>;
5
+ export interface GalleryHeroProps {
6
+ assetsToShow: Asset[];
7
+ virtualTour?: string;
8
+ isAvailableNow?: boolean;
9
+ isFirst: boolean;
10
+ toursCount: number;
11
+ setCurrentView: (view: "photo" | "virtual tour" | "video tour") => void;
12
+ imageClickedHandler: (image: Asset) => void;
13
+ }