You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
810 lines
82 KiB
810 lines
82 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var echarts = require("../../../components/ec-canvas/echarts.js");
|
|
function PeopleChart1(chart) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = [
|
|
"#FFC600", "#29B9A5"
|
|
];
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: [{
|
|
name: '20',
|
|
value: 20
|
|
},
|
|
{
|
|
name: '50',
|
|
value: 50
|
|
}],
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: '60%',
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: 0,
|
|
right: '50%',
|
|
top: '-20%',
|
|
bottom: 0,
|
|
},
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = [
|
|
"#AD6DFE", "#FFA270"
|
|
];
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: [{
|
|
name: '20',
|
|
value: 20
|
|
},
|
|
{
|
|
name: '50',
|
|
value: 50
|
|
}],
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: ['30%', '40%'],
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: '50%',
|
|
right: 0,
|
|
top: '-20%',
|
|
bottom: 0
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.PeopleChart1 = PeopleChart1;
|
|
function PeopleChart2(chart, colorData, peopleLeft, colorData2, peopleright) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = colorData;
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: peopleLeft,
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: '60%',
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: 0,
|
|
right: '50%',
|
|
top: '-10%',
|
|
bottom: 0,
|
|
},
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = colorData2;
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: peopleright,
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: ['30%', '40%'],
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: '50%',
|
|
right: 0,
|
|
top: '-10%',
|
|
bottom: 0
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.PeopleChart2 = PeopleChart2;
|
|
function getPeopleChart2(chart, colorData, chartsData) {
|
|
var option = {
|
|
color: colorData,
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
radius: ['50%', '70%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: chartsData,
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getPeopleChart2 = getPeopleChart2;
|
|
function getparticipation(chart, data1, data2, data3, data4, xData) {
|
|
console.log(xData);
|
|
var option = {
|
|
background: '#fff',
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
data: ['0', '10', '20', '30', '40', '50'],
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
},
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
name: '党员',
|
|
type: 'bar',
|
|
stack: 'sum',
|
|
barWidth: 13,
|
|
data: data1,
|
|
color: '#FFC600',
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
data: data2,
|
|
color: '#FFA270',
|
|
itemStyle: {
|
|
barWidth: 18,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: '居民',
|
|
type: 'bar',
|
|
color: '#63CFED',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
color: '#679CF7',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data4,
|
|
itemStyle: {
|
|
barWidth: 18,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
},
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipation = getparticipation;
|
|
function getparticipation2(chart, yLineData, yData1, yData2, xData) {
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
}, {
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value} %',
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: yLineData,
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
data: yData1,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: yData2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipation2 = getparticipation2;
|
|
function getVoiceActive(chart) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
radius: ['70%', '95%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: [{ name: '好好', value: '20' }, { name: '非常好好', value: '10' }, { name: '好', value: '30' }]
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getVoiceActive = getVoiceActive;
|
|
function getVoiceActiveA(chart) {
|
|
var option = {
|
|
color: ["#FFC600", "#29B9A5"],
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
center: ['50%', '50%'],
|
|
radius: ['0%', '100%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: [{ name: '好好', value: '20' }, { name: '好', value: '30' }]
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getVoiceActiveA = getVoiceActiveA;
|
|
function getparticipationPercent(chart) {
|
|
var data2 = [30, 60, 60, 70,];
|
|
var data3 = [70, 60, 90, 100,];
|
|
var xData = ['第一周', '第二周', '第三周', '第四周'];
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
}, {
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value}%',
|
|
max: 100,
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
}
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: [10, 16, 50, 90],
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1,
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'max', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
label: {},
|
|
data: data2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'min', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipationPercent = getparticipationPercent;
|
|
function voiceAnalyzeEcharts(chart) {
|
|
var data2 = [30, 60, 60, 70,];
|
|
var data3 = [70, 60, 90, 100,];
|
|
var xData = ['第一周', '第二周', '第三周', '第四周'];
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '1%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
},
|
|
{
|
|
show: false,
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value}%',
|
|
max: 100,
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
}
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: [10, 16, 50, 90],
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1,
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'max', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
label: {},
|
|
data: data2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'min', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.voiceAnalyzeEcharts = voiceAnalyzeEcharts;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjaGFydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxrRUFBbUU7QUFFbkUsU0FBZ0IsWUFBWSxDQUFDLEtBQVU7SUFDbkMsSUFBSSxNQUFNLEdBQUc7UUFDWCxNQUFNLEVBQUU7WUFDTjtnQkFDQSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxVQUFVLE1BQXVDOzRCQUV0RCxJQUFJLFNBQVMsR0FBRztnQ0FDZCxTQUFTLEVBQUUsU0FBUzs2QkFDckIsQ0FBQzs0QkFDRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ3BDLENBQUM7d0JBQ0QsV0FBVyxFQUFFLE1BQU07d0JBQ25CLFdBQVcsRUFBRSxHQUFHO3FCQUNqQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsQ0FBQzt3QkFDTCxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVixDQUFDO2dCQUNGLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixjQUFjLEVBQUUsS0FBSztnQkFDckIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDdEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsRUFBRTt3QkFDVixPQUFPLEVBQUUsQ0FBQztxQkFDWDtpQkFDRjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE9BQU8sRUFBRSxNQUFNO29CQUNmLFdBQVcsRUFBRSxDQUFDO2lCQUNmO2dCQUNELElBQUksRUFBRSxDQUFDO2dCQUNQLEtBQUssRUFBRSxLQUFLO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLE1BQU0sRUFBRSxDQUFDO2FBQ1Y7WUFDQztnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxVQUFVLE1BQXVDOzRCQUV0RCxJQUFJLFNBQVMsR0FBRztnQ0FDZCxTQUFTLEVBQUUsU0FBUzs2QkFDckIsQ0FBQzs0QkFDRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ3BDLENBQUM7d0JBQ0QsV0FBVyxFQUFFLE1BQU07d0JBQ25CLFdBQVcsRUFBRSxHQUFHO3FCQUNqQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsQ0FBQzt3QkFDTCxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVixDQUFDO2dCQUNGLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixjQUFjLEVBQUUsS0FBSztnQkFDckIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDdEIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDdEIsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsRUFBRTt3QkFDVixPQUFPLEVBQUUsQ0FBQztxQkFDWDtpQkFDRjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE9BQU8sRUFBRSxNQUFNO29CQUNmLFdBQVcsRUFBRSxDQUFDO2lCQUNmO2dCQUNELElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxNQUFNO2dCQUNYLE1BQU0sRUFBRSxDQUFDO2FBQ1Y7U0FDRjtLQUNGLENBQUM7SUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sS0FBSyxDQUFDO0FBNkJqQixDQUFDO0FBL0hELG9DQStIQztBQUNELFNBQWdCLFlBQVksQ0FBQyxLQUFVLEVBQUMsU0FBYSxFQUFDLFVBQWMsRUFBQyxVQUFjLEVBQUMsV0FBZTtJQUNqRyxJQUFJLE1BQU0sR0FBRztRQUNYLE1BQU0sRUFBRTtZQUNOO2dCQUNBLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUU7d0JBQ04sS0FBSyxFQUFFLFVBQVUsTUFBdUM7NEJBRXRELElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQzs0QkFDMUIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO3dCQUNwQyxDQUFDO3dCQUNELFdBQVcsRUFBRSxNQUFNO3dCQUNuQixXQUFXLEVBQUUsR0FBRztxQkFDakI7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixjQUFjLEVBQUUsS0FBSztnQkFDckIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDdEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsRUFBRTt3QkFDVixPQUFPLEVBQUUsQ0FBQztxQkFDWDtpQkFDRjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE9BQU8sRUFBRSxNQUFNO29CQUNmLFdBQVcsRUFBRSxDQUFDO2lCQUNmO2dCQUNELElBQUksRUFBRSxDQUFDO2dCQUNQLEtBQUssRUFBRSxLQUFLO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLE1BQU0sRUFBRSxDQUFDO2FBQ1Y7WUFDQztnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxVQUFVLE1BQXVDOzRCQUV0RCxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUM7NEJBQzNCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTt3QkFDcEMsQ0FBQzt3QkFDRCxXQUFXLEVBQUUsTUFBTTt3QkFDbkIsV0FBVyxFQUFFLEdBQUc7cUJBQ2pCO2lCQUNGO2dCQUNELElBQUksRUFBRSxXQUFXO2dCQUNqQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUU7d0JBQ04sTUFBTSxFQUFFLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLENBQUM7cUJBQ1g7aUJBQ0Y7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLFFBQVEsRUFBRSxPQUFPO29CQUNqQixPQUFPLEVBQUUsTUFBTTtvQkFDZixXQUFXLEVBQUUsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsTUFBTTtnQkFDWCxNQUFNLEVBQUUsQ0FBQzthQUNWO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFqRkQsb0NBaUZDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEtBQVUsRUFBQyxTQUFhLEVBQUMsVUFBYztJQUNyRSxJQUFJLE1BQU0sR0FBRztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsS0FBSztpQkFDWjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsTUFBTSxFQUFFO3dCQUNOLElBQUksRUFBRSxLQUFLO3FCQUNaO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxXQUFXLEVBQUUsTUFBTTtvQkFDbkIsV0FBVyxFQUFFLEdBQUc7aUJBQ2pCO2dCQUNELElBQUksRUFBQyxVQUFVO2FBQ2hCO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUE1QkQsMENBNEJDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBVSxFQUFDLEtBQWMsRUFBQyxLQUFjLEVBQUMsS0FBYyxFQUFDLEtBQWMsRUFBQyxLQUFjO0lBQ3BILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEIsSUFBSSxNQUFNLEdBQUc7UUFLWCxVQUFVLEVBQUUsTUFBTTtRQUNsQixJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsS0FBSztZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLFlBQVksRUFBRSxJQUFJO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN6QyxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLEtBQUs7YUFDWjtZQUNELFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSTtnQkFDVixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2FBQ0Y7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxTQUFTO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsU0FBUztpQkFDakI7YUFDRjtTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLFVBQVU7WUFDaEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLEtBQUs7YUFDWjtZQUNELFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSTtnQkFDVixTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO2lCQUNiO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxTQUFTO2lCQUNqQjthQUNGO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsS0FBSztnQkFDWixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxFQUFFO2dCQUNaLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxTQUFTO2dCQUNoQixTQUFTLEVBQUU7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osTUFBTSxFQUFFO3dCQUNOLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0Y7YUFjRjtZQUNEO2dCQUNFLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsTUFBTTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsS0FBSzthQUVaO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxNQUFNO2dCQUNiLFFBQVEsRUFBRSxFQUFFO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUU7d0JBQ04sZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QjtpQkFDRjthQWNGO1NBQ0E7S0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUExSUQsNENBMElDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsS0FBVSxFQUFFLFNBQW1CLEVBQUUsTUFBZ0IsRUFBRSxNQUFnQixFQUFFLEtBQWU7SUFDcEgsSUFBSSxNQUFNLEdBQUc7UUFDWCxJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsS0FBSztZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLFlBQVksRUFBRSxJQUFJO1NBQ25CO1FBQ0QsS0FBSyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxFQUFFLE9BQU87Z0JBQ2IsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxLQUFLO2lCQUNaO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsS0FBSyxFQUFFLFNBQVM7cUJBQ2pCO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxFQUFFO3FCQUNiO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsS0FBSztvQkFDWCxTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7cUJBQ2pCO2lCQUNGO2FBQ0YsRUFBRTtnQkFDRCxJQUFJLEVBQUUsT0FBTztnQkFDYixRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxLQUFLO2lCQUNaO2dCQUNELFFBQVEsRUFBRTtvQkFDUixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxXQUFXO29CQUN0QixJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxFQUFFO3FCQUNiO2lCQUNGO2FBRUY7U0FDQTtRQUNELEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxLQUFLO1lBQ1gsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2FBQ1o7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxTQUFTO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsU0FBUztpQkFDakI7YUFDRjtTQUNGO1FBQ0QsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFVBQVUsRUFBRSxDQUFDO2FBQ2Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsS0FBSztnQkFDWixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3BELEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO29CQUMvQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtpQkFDaEMsQ0FBQztnQkFDRixTQUFTLEVBQUU7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osTUFBTSxFQUFFO3dCQUNOLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0Y7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxNQUFNO2dCQUNiLFFBQVEsRUFBRSxFQUFFO2dCQUNaLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDcEQsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7b0JBQy9CLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2lCQUNoQyxDQUFDO2dCQUNGLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUU7d0JBQ04sZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUEzSEQsOENBMkhDO0FBQ0QsU0FBZ0IsY0FBYyxDQUFDLEtBQVU7SUFDdkMsSUFBSSxNQUFNLEdBQUc7UUFFWCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO2dCQUN0QixNQUFNLEVBQUUsSUFBSTtnQkFDWixpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxLQUFLO29CQUNYLE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsS0FBSztxQkFDWjtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsV0FBVyxFQUFFLE1BQU07b0JBQ25CLFdBQVcsRUFBRSxHQUFHO2lCQUNqQjtnQkFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUMvRjtTQUNGO0tBQ0YsQ0FBQztJQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBNUJELHdDQTRCQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxLQUFVO0lBQ3hDLElBQUksTUFBTSxHQUFHO1FBQ1gsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUM3QixNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO2dCQUN0QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2dCQUN0QixNQUFNLEVBQUUsSUFBSTtnQkFDWixpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxLQUFLO29CQUNYLE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsS0FBSztxQkFDWjtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsV0FBVyxFQUFFLE1BQU07b0JBQ25CLFdBQVcsRUFBRSxHQUFHO2lCQUNqQjtnQkFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDaEU7U0FDRjtLQUNGLENBQUM7SUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQTdCRCwwQ0E2QkM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxLQUFVO0lBRWhELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDOUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUUvQixJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxHQUFHO1FBQ1gsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLEtBQUs7WUFDVixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUk7WUFDWixZQUFZLEVBQUUsSUFBSTtTQUNuQjtRQUNELEtBQUssRUFBRSxDQUFDO2dCQUNOLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsS0FBSztpQkFDWjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLElBQUk7b0JBQ1YsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxTQUFTO3FCQUNqQjtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLElBQUk7b0JBQ1YsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxTQUFTO3dCQUNoQixRQUFRLEVBQUUsRUFBRTtxQkFDYjtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxTQUFTO3FCQUNqQjtpQkFDRjthQUNGLEVBQUU7Z0JBQ0QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxLQUFLO2lCQUNaO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsS0FBSztpQkFDWjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxNQUFNO3FCQUNkO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxTQUFTLEVBQUUsVUFBVTtvQkFDckIsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsSUFBSSxFQUFFLElBQUk7b0JBQ1YsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxTQUFTO3dCQUNoQixRQUFRLEVBQUUsRUFBRTtxQkFDYjtpQkFDRjthQUNGO1NBQ0E7UUFDRCxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsS0FBSzthQUNaO1lBQ0QsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJO2dCQUNWLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsU0FBUztvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2FBQ0Y7U0FDRjtRQWlCRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxTQUFTO2dCQUNoQixVQUFVLEVBQUUsQ0FBQztnQkFDYixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFO3dCQUNKLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO3FCQUM3QjtvQkFDRCxNQUFNLEVBQUUsSUFBSTtvQkFHWixZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3JCLEtBQUssRUFBRTt3QkFHTCxLQUFLLEVBQUMsTUFBTTt3QkFDWixRQUFRLEVBQUMsRUFBRTtxQkFDWjtpQkFDRjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLEVBT047Z0JBQ0QsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNwRCxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtvQkFDL0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7aUJBQ2hDLENBQUM7Z0JBQ0YsU0FBUyxFQUFFO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLE1BQU0sRUFBRTt3QkFDTixlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzlCO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUU7d0JBQ0osRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7cUJBQzdCO29CQUNELE1BQU0sRUFBRSxJQUFJO29CQUdaLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckIsS0FBSyxFQUFFO3dCQUdMLEtBQUssRUFBQyxNQUFNO3dCQUNaLFFBQVEsRUFBQyxFQUFFO3FCQUNaO2lCQUNGO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsTUFBTTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3BELEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO29CQUMvQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtpQkFDaEMsQ0FBQztnQkFDRixTQUFTLEVBQUU7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osTUFBTSxFQUFFO3dCQUNOLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBdExELDBEQXNMQztBQUdELFNBQWdCLG1CQUFtQixDQUFDLEtBQVU7SUFHNUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM5QixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRS9CLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsSUFBSSxNQUFNLEdBQUc7UUFDWCxJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsS0FBSztZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLFlBQVksRUFBRSxJQUFJO1NBQ25CO1FBQ0QsS0FBSyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxFQUFFLE9BQU87Z0JBQ2IsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxLQUFLO2lCQUNaO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsS0FBSyxFQUFFLFNBQVM7cUJBQ2pCO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxFQUFFO3FCQUNiO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsS0FBSztvQkFDWCxTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7cUJBQ2pCO2lCQUNGO2FBQ0Y7WUFDQTtnQkFDQyxJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsT0FBTztnQkFDYixRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxLQUFLO2lCQUNaO2dCQUNELFFBQVEsRUFBRTtvQkFDUixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxVQUFVO29CQUNyQixHQUFHLEVBQUUsR0FBRztvQkFDUixJQUFJLEVBQUUsSUFBSTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxFQUFFO3FCQUNiO2lCQUNGO2FBQ0Y7U0FDQTtRQUNELEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxLQUFLO1lBQ1gsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2FBQ1o7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxTQUFTO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsU0FBUztpQkFDakI7YUFDRjtTQUNGO1FBQ0QsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsU0FBUztnQkFDaEIsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRTt3QkFDSixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtxQkFDN0I7b0JBQ0QsTUFBTSxFQUFFLElBQUk7b0JBR1osWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQixLQUFLLEVBQUU7d0JBR0wsS0FBSyxFQUFDLE1BQU07d0JBQ1osUUFBUSxFQUFDLEVBQUU7cUJBQ1o7aUJBQ0Y7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxFQUFFO2dCQUNaLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxFQU9OO2dCQUNELElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDcEQsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7b0JBQy9CLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2lCQUNoQyxDQUFDO2dCQUNGLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUU7d0JBQ04sZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QjtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFO3dCQUNKLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO3FCQUM3QjtvQkFDRCxNQUFNLEVBQUUsSUFBSTtvQkFHWixZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3JCLEtBQUssRUFBRTt3QkFHTCxLQUFLLEVBQUMsTUFBTTt3QkFDWixRQUFRLEVBQUMsRUFBRTtxQkFDWjtpQkFDRjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNwRCxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtvQkFDL0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7aUJBQ2hDLENBQUM7Z0JBQ0YsU0FBUyxFQUFFO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLE1BQU0sRUFBRTt3QkFDTixlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzlCO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXpLRCxrREF5S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9lYy1jYW52YXMvZWNoYXJ0cy5qcydcclxuLyoqKioqKuWFmuWRmOWPguS4juS6uuaVsCzlhZrlu7rlo7Dpn7Plj4LkuI7kurrmlbAgKioqKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFBlb3BsZUNoYXJ0MShjaGFydDogYW55KSB7XHJcbiAgICB2YXIgb3B0aW9uID0ge1xyXG4gICAgICBzZXJpZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgY29sb3I6IGZ1bmN0aW9uIChwYXJhbXM6IHsgZGF0YUluZGV4OiBzdHJpbmcgfCBudW1iZXI7IH0pIHtcclxuICAgICAgICAgICAgICAvL+iHquWumuS5ieminOiJslxyXG4gICAgICAgICAgICAgIHZhciBjb2xvckxpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICBcIiNGRkM2MDBcIiwgXCIjMjlCOUE1XCJcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgIHJldHVybiBjb2xvckxpc3RbcGFyYW1zLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7XHJcbiAgICAgICAgICBuYW1lOiAnMjAnLFxyXG4gICAgICAgICAgdmFsdWU6IDIwXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnNTAnLFxyXG4gICAgICAgICAgdmFsdWU6IDUwXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgY2xpY2thYmxlOiBmYWxzZSzjgIDjgIDjgIDjgIDjgIDjgIAgLy/mmK/lkKblvIDlkK/ngrnlh7tcclxuICAgICAgICBtaW5BbmdsZTogMTUsICAgICAgICAgICDjgIDjgIAgLy/mnIDlsI/nmoTmiYfljLrop5LluqbvvIgwIH4gMzYw77yJ77yM55So5LqO6Ziy5q2i5p+Q5Liq5YC86L+H5bCP5a+86Ie05omH5Yy65aSq5bCP5b2x5ZON5Lqk5LqSXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2Us44CA44CAICAvL+aYr+WQpuW8gOWQryBob3ZlciDlnKjmiYfljLrkuIrnmoTmlL7lpKfliqjnlLvmlYjmnpzjgIJcclxuICAgICAgICBzaWxlbnQ6IHRydWUs44CA44CA44CA44CA44CA44CA44CA44CALy/lm77lvaLmmK/lkKbkuI3lk43lupTlkozop6blj5HpvKDmoIfkuovku7ZcclxuICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgIHJhZGl1czogJzYwJScsXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7IC8vIOiuvue9ruaMh+ekuue6v+eahOmVv+W6plxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGxlbmd0aDogMTIsXHJcbiAgICAgICAgICAgIGxlbmd0aDI6IDhcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICAgIGFsaWduVG86ICdub25lJyxcclxuICAgICAgICAgIGJsZWVkTWFyZ2luOiA1XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWZ0OiAwLFxyXG4gICAgICAgIHJpZ2h0OiAnNTAlJyxcclxuICAgICAgICB0b3A6ICctMjAlJyxcclxuICAgICAgICBib3R0b206IDAsXHJcbiAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IGZ1bmN0aW9uIChwYXJhbXM6IHsgZGF0YUluZGV4OiBzdHJpbmcgfCBudW1iZXI7IH0pIHtcclxuICAgICAgICAgICAgICAgIC8v6Ieq5a6a5LmJ6aKc6ImyXHJcbiAgICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gW1xyXG4gICAgICAgICAgICAgICAgICBcIiNBRDZERkVcIiwgXCIjRkZBMjcwXCJcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhOiBbe1xyXG4gICAgICAgICAgICBuYW1lOiAnMjAnLFxyXG4gICAgICAgICAgICB2YWx1ZTogMjBcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICc1MCcsXHJcbiAgICAgICAgICAgIHZhbHVlOiA1MFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICBjbGlja2FibGU6IGZhbHNlLOOAgOOAgOOAgOOAgOOAgOOAgCAvL+aYr+WQpuW8gOWQr+eCueWHu1xyXG4gICAgICAgICAgbWluQW5nbGU6IDE1LCAgICAgICAgICAg44CA44CAIC8v5pyA5bCP55qE5omH5Yy66KeS5bqm77yIMCB+IDM2MO+8ie+8jOeUqOS6jumYsuatouafkOS4quWAvOi/h+Wwj+WvvOiHtOaJh+WMuuWkquWwj+W9seWTjeS6pOS6klxyXG4gICAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSzjgIDjgIAgIC8v5piv5ZCm5byA5ZCvIGhvdmVyIOWcqOaJh+WMuuS4iueahOaUvuWkp+WKqOeUu+aViOaenOOAglxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgC8v5Zu+5b2i5piv5ZCm5LiN5ZON5bqU5ZKM6Kem5Y+R6byg5qCH5LqL5Lu2XHJcbiAgICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgICAgcmFkaXVzOiBbJzMwJScsICc0MCUnXSxcclxuICAgICAgICAgIGxhYmVsTGluZTogeyAvLyDorr7nva7mjIfnpLrnur/nmoTplb/luqZcclxuICAgICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgICAgbGVuZ3RoOiAxMixcclxuICAgICAgICAgICAgICBsZW5ndGgyOiA4XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICAgICAgYWxpZ25UbzogJ25vbmUnLFxyXG4gICAgICAgICAgICBibGVlZE1hcmdpbjogNVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxlZnQ6ICc1MCUnLFxyXG4gICAgICAgICAgcmlnaHQ6IDAsXHJcbiAgICAgICAgICB0b3A6ICctMjAlJyxcclxuICAgICAgICAgIGJvdHRvbTogMFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIGNoYXJ0LnNldE9wdGlvbihvcHRpb24pO1xyXG4gICAgcmV0dXJuIGNoYXJ0O1xyXG4gIC8vIHZhciBvcHRpb24gPSB7XHJcbiAgLy8gICBjb2xvcjogW1wiI0ZGQzYwMFwiLCBcIiMyOUI5QTVcIl0sXHJcbiAgLy8gICBzZXJpZXM6IFtcclxuICAvLyAgICAge1xyXG4gIC8vICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gIC8vICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgLy8gICAgICAgcmFkaXVzOiBbJzAlJywgJzEwMCUnXSxcclxuICAvLyAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgLy8gICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gIC8vICAgICAgIGxhYmVsOiB7XHJcbiAgLy8gICAgICAgICBzaG93OiBmYWxzZVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgLy8gICAgICAgICBzaG93OiBmYWxzZSxcclxuICAvLyAgICAgICAgIG5vcm1hbDoge1xyXG4gIC8vICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgLy8gICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gIC8vICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAvLyAgICAgICB9LFxyXG4gIC8vICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICBdXHJcbiAgLy8gfTtcclxuICAvLyBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICAvLyByZXR1cm4gY2hhcnQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIFBlb3BsZUNoYXJ0MihjaGFydDogYW55LGNvbG9yRGF0YTphbnkscGVvcGxlTGVmdDphbnksY29sb3JEYXRhMjphbnkscGVvcGxlcmlnaHQ6YW55KSB7XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgIC8v6Ieq5a6a5LmJ6aKc6ImyXHJcbiAgICAgICAgICAgIHZhciBjb2xvckxpc3QgPSBjb2xvckRhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBjb2xvckxpc3RbcGFyYW1zLmRhdGFJbmRleF1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHBlb3BsZUxlZnQsXHJcbiAgICAgIGNsaWNrYWJsZTogZmFsc2Us44CA44CA44CA44CA44CA44CAIC8v5piv5ZCm5byA5ZCv54K55Ye7XHJcbiAgICAgIG1pbkFuZ2xlOiAxNSwgICAgICAgICAgIOOAgOOAgCAvL+acgOWwj+eahOaJh+WMuuinkuW6pu+8iDAgfiAzNjDvvInvvIznlKjkuo7pmLLmraLmn5DkuKrlgLzov4flsI/lr7zoh7TmiYfljLrlpKrlsI/lvbHlk43kuqTkupJcclxuICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLOOAgOOAgCAgLy/mmK/lkKblvIDlkK8gaG92ZXIg5Zyo5omH5Yy65LiK55qE5pS+5aSn5Yqo55S75pWI5p6c44CCXHJcbiAgICAgIHNpbGVudDogdHJ1ZSzjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIAvL+WbvuW9ouaYr+WQpuS4jeWTjeW6lOWSjOinpuWPkem8oOagh+S6i+S7tlxyXG4gICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICByYWRpdXM6ICc2MCUnLFxyXG4gICAgICBsYWJlbExpbmU6IHsgLy8g6K6+572u5oyH56S657q/55qE6ZW/5bqmXHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBsZW5ndGg6IDEyLFxyXG4gICAgICAgICAgbGVuZ3RoMjogOFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGFiZWw6IHtcclxuICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICBhbGlnblRvOiAnbm9uZScsXHJcbiAgICAgICAgYmxlZWRNYXJnaW46IDVcclxuICAgICAgfSxcclxuICAgICAgbGVmdDogMCxcclxuICAgICAgcmlnaHQ6ICc1MCUnLFxyXG4gICAgICB0b3A6ICctMTAlJyxcclxuICAgICAgYm90dG9tOiAwLFxyXG4gICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgICAgLy/oh6rlrprkuYnpopzoibJcclxuICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gY29sb3JEYXRhMjtcclxuICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBwZW9wbGVyaWdodCxcclxuICAgICAgICBjbGlja2FibGU6IGZhbHNlLOOAgOOAgOOAgOOAgOOAgOOAgCAvL+aYr+WQpuW8gOWQr+eCueWHu1xyXG4gICAgICAgIG1pbkFuZ2xlOiAxNSwgICAgICAgICAgIOOAgOOAgCAvL+acgOWwj+eahOaJh+WMuuinkuW6pu+8iDAgfiAzNjDvvInvvIznlKjkuo7pmLLmraLmn5DkuKrlgLzov4flsI/lr7zoh7TmiYfljLrlpKrlsI/lvbHlk43kuqTkupJcclxuICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogdHJ1ZSwgICAvL+aYr+WQpuWQr+eUqOmYsuatouagh+etvumHjeWPoOetlueVpVxyXG4gICAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSzjgIDjgIAgIC8v5piv5ZCm5byA5ZCvIGhvdmVyIOWcqOaJh+WMuuS4iueahOaUvuWkp+WKqOeUu+aViOaenOOAglxyXG4gICAgICAgIHNpbGVudDogdHJ1ZSzjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIAvL+WbvuW9ouaYr+WQpuS4jeWTjeW6lOWSjOinpuWPkem8oOagh+S6i+S7tlxyXG4gICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgICAgICAgcmFkaXVzOiBbJzMwJScsICc0MCUnXSxcclxuICAgICAgICBsYWJlbExpbmU6IHsgLy8g6K6+572u5oyH56S657q/55qE6ZW/5bqmXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgbGVuZ3RoOiAxMixcclxuICAgICAgICAgICAgbGVuZ3RoMjogOFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIHBvc2l0aW9uOiAnb3V0ZXInLFxyXG4gICAgICAgICAgYWxpZ25UbzogJ25vbmUnLFxyXG4gICAgICAgICAgYmxlZWRNYXJnaW46IDVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZnQ6ICc1MCUnLFxyXG4gICAgICAgIHJpZ2h0OiAwLFxyXG4gICAgICAgIHRvcDogJy0xMCUnLFxyXG4gICAgICAgIGJvdHRvbTogMFxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuLyoqKioqKuWFmuWRmOWPguS4juS6uuaVsCzlhZrlu7rlo7Dpn7Plj4LkuI7mg4XlhrUs5YWa5ZGY5Lqu6Lqr5Lu95Y+C5LiO6K6u5LqL5oOF5Ya1LOWFmuWRmOe+pOWbouW4puWKqOaDheWGtSAqKioqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVvcGxlQ2hhcnQyKGNoYXJ0OiBhbnksY29sb3JEYXRhOmFueSxjaGFydHNEYXRhOmFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBjb2xvcjogY29sb3JEYXRhLFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAncGllJyxcclxuICAgICAgICByYWRpdXM6IFsnNTAlJywgJzcwJSddLFxyXG4gICAgICAgIHNpbGVudDogdHJ1ZSxcclxuICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogZmFsc2UsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbExpbmU6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgICBib3JkZXJXaWR0aDogJzInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTpjaGFydHNEYXRhLFxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRwYXJ0aWNpcGF0aW9uKGNoYXJ0OiBhbnksZGF0YTE6QW55QXJyYXksZGF0YTI6QW55QXJyYXksZGF0YTM6QW55QXJyYXksZGF0YTQ6QW55QXJyYXkseERhdGE6QW55QXJyYXkpIHtcclxuICBjb25zb2xlLmxvZyh4RGF0YSlcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgLy8gY29sb3I6IFsnI0ZGQzYwMCcsICcjRkZBMjcwJywgJyM2M0NGRUQnLCAnIzY3OUNGNyddLFxyXG4gICAgLy8gdG9vbHRpcDoge1xyXG4gICAgLy8gICB0cmlnZ2VyOiAnYXhpcycsXHJcbiAgICAvLyB9LFxyXG4gICAgYmFja2dyb3VuZDogJyNmZmYnLFxyXG4gICAgZ3JpZDogeyAvL+WbvuihqOeahOS9jee9rlxyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzQlJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczoge1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBkYXRhOiBbJzAnLCAnMTAnLCAnMjAnLCAnMzAnLCAnNDAnLCAnNTAnXSwgLy9jYXRlZ29yeSzorr7nva7ml6DmlbDmja7ml7bpu5jorqTlgLxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSAvLy8v5piv5ZCm5pi+56S65Z2Q5qCH6L206L2057q/XHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZTogeyAvLyDnvZHmoLznur9cclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDogeyAvL+WdkOagh+i9tOWIu+W6puagh+etvueahOebuOWFs+iuvue9ruOAglxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZTogeyAvL+WdkOagh+i9tOi9tOe6v+ebuOWFs+iuvue9ruOAglxyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHhBeGlzOiB7XHJcbiAgICAgIHR5cGU6ICdjYXRlZ29yeScsXHJcbiAgICAgIGRhdGE6IHhEYXRhLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlIC8vIOaYr+WQpuaYvuekuuWdkOagh+i9tOi9tOe6v1xyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHsgLy/lnZDmoIfovbTliLvluqbmoIfnrb7nmoTnm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHsgLy/lnZDmoIfovbTovbTnur/nm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IFt7XHJcbiAgICAgIG5hbWU6ICflhZrlkZgnLFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgc3RhY2s6ICdzdW0nLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGExLFxyXG4gICAgICBjb2xvcjogJyNGRkM2MDAnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WFmuWRmOWPguS4jicsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgZGF0YTogZGF0YTIsXHJcbiAgICAgIGNvbG9yOiAnI0ZGQTI3MCcsXHJcbiAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgIGJhcldpZHRoOiAxOCxcclxuICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdIC8v77yI6aG65pe26ZKI5bem5LiK77yM5Y+z5LiK77yM5Y+z5LiL77yM5bem5LiL77yJXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgLy8gbWFya1BvaW50OiB7XHJcbiAgICAgIC8vICAgZGF0YTogW1xyXG4gICAgICAvLyAgICAgeyB0eXBlOiAnbWF4JywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgLy8gICBdLFxyXG4gICAgICAvLyAgIHNpbGVudDp0cnVlLFxyXG4gICAgICAvLyAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgIC8vICAgc3ltYm9sT2Zmc2V0OlswLC0zMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAvLyAgIGxhYmVsOntcclxuICAgICAgLy8gICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAvLyAgICAgLy8gZGlzdGFuY2U6MTBcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0sXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WxheawkScsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBjb2xvcjogJyM2M0NGRUQnLFxyXG4gICAgICBzdGFjazogJ3N1bTEnLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGEzXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBjb2xvcjogJyM2NzlDRjcnLFxyXG4gICAgICBzdGFjazogJ3N1bTEnLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGE0LFxyXG4gICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICBiYXJXaWR0aDogMTgsXHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXSAvL++8iOmhuuaXtumSiOW3puS4iu+8jOWPs+S4iu+8jOWPs+S4i++8jOW3puS4i++8iVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1hcmtQb2ludDoge1xyXG4gICAgICAvLyAgIGRhdGE6IFtcclxuICAgICAgLy8gICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgIC8vICAgXSxcclxuICAgICAgLy8gICBzaWxlbnQ6dHJ1ZSxcclxuICAgICAgLy8gICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAvLyAgIHN5bWJvbE9mZnNldDpbMCwtMzBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgLy8gICBsYWJlbDp7XHJcbiAgICAgIC8vICAgICAvLyBwb3NpdGlvbjondG9wJyxcclxuICAgICAgLy8gICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9LFxyXG5cclxuICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcbi8qKioqKioqKioqKioq5YWa5ZGY5Y+C5LiO5Y2g5q+U5YiG5p6QKioqKioqKioqKioqKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldHBhcnRpY2lwYXRpb24yKGNoYXJ0OiBhbnksIHlMaW5lRGF0YTogQW55QXJyYXksIHlEYXRhMTogQW55QXJyYXksIHlEYXRhMjogQW55QXJyYXksIHhEYXRhOiBBbnlBcnJheSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBncmlkOiB7XHJcbiAgICAgIHRvcDogJzIwJScsXHJcbiAgICAgIGxlZnQ6ICczJScsXHJcbiAgICAgIHJpZ2h0OiAnNCUnLFxyXG4gICAgICBib3R0b206ICc1JScsXHJcbiAgICAgIGNvbnRhaW5MYWJlbDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHlBeGlzOiBbe1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICB0eXBlOiAnc29saWQnLFxyXG4gICAgICAgICAgY29sb3I6ICcjRTlFOUU5J1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6ICd2YWx1ZScsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBmb3JtYXR0ZXI6ICd7dmFsdWV9ICUnLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG5cclxuICAgIH1cclxuICAgIF0sXHJcbiAgICB4QXhpczoge1xyXG4gICAgICB0eXBlOiAnY2F0ZWdvcnknLFxyXG4gICAgICBkYXRhOiB4RGF0YSxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHlMaW5lRGF0YSxcclxuICAgICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgICAgY29sb3I6ICcjRkZBMjcwJyxcclxuICAgICAgICB5QXhpc0luZGV4OiAxXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAn5YWa5ZGY5Y+C5LiOJyxcclxuICAgICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0nLFxyXG4gICAgICAgIGRhdGE6IHlEYXRhMSxcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMDJDOUI0JyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzAxQUVDQycgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgZGF0YTogeURhdGEyLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMyOTcwRkYnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjODFBMkZGJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2ljZUFjdGl2ZShjaGFydDogYW55KSB7XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIC8vIGNvbG9yOiBjb2xvcixcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgcmFkaXVzOiBbJzcwJScsICc5NSUnXSxcclxuICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICfpnZ7luLjlpb3lpb0nLCB2YWx1ZTogJzEwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2ljZUFjdGl2ZUEoY2hhcnQ6IGFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBjb2xvcjogW1wiI0ZGQzYwMFwiLCBcIiMyOUI5QTVcIl0sXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgICAgICAgcmFkaXVzOiBbJzAlJywgJzEwMCUnXSxcclxuICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRwYXJ0aWNpcGF0aW9uUGVyY2VudChjaGFydDogYW55KSB7XHJcblxyXG4gIHZhciBkYXRhMiA9IFszMCwgNjAsIDYwLCA3MCxdO1xyXG4gIHZhciBkYXRhMyA9IFs3MCwgNjAsIDkwLCAxMDAsXTtcclxuXHJcbiAgdmFyIHhEYXRhID0gWyfnrKzkuIDlkagnLCAn56ys5LqM5ZGoJywgJ+esrOS4ieWRqCcsICfnrKzlm5vlkagnXTtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgZ3JpZDoge1xyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzQlJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczogW3tcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNmZmYnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfSUnLFxyXG4gICAgICAgIG1heDogMTAwLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBdLFxyXG4gICAgeEF4aXM6IHtcclxuICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgZGF0YTogeERhdGEsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gZGF0YVpvb206IFtcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6IFwiaW5zaWRlXCIsXHJcbiAgICAvLyAgICAgc3RhcnQ6IDUwLFxyXG4gICAgLy8gICAgIGVuZDogMTAwXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICBzaG93OiB0cnVlLFxyXG4gICAgLy8gICAgIHR5cGU6IFwic2xpZGVyXCIsXHJcbiAgICAvLyAgICAgeTogXCI5MCVcIixcclxuICAgIC8vICAgICBzdGFydDogNTAsXHJcbiAgICAvLyAgICAgZW5kOiAxMDBcclxuICAgIC8vICAgfVxyXG4gICAgLy8gXSxcclxuICAgIFxyXG4gICAgXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IFsxMCwgMTYsIDUwLCA5MF0sXHJcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICAgIGNvbG9yOiAnI0ZGQTI3MCcsXHJcbiAgICAgICAgeUF4aXNJbmRleDogMSxcclxuICAgICAgICBtYXJrUG9pbnQ6IHtcclxuICAgICAgICAgIGRhdGE6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4JywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgICAgICBzeW1ib2xPZmZzZXQ6IFstNSwgMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgLy8gcG9zaXRpb246J3RvcCcsXHJcbiAgICAgICAgICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgICAgICAgIGNvbG9yOicjZmZmJyxcclxuICAgICAgICAgICAgZm9udFNpemU6MTBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WFmuWRmOWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgLy8gYmFja2dyb3VuZENvbG9yOiB7IGltYWdlOiAnZGVtby5wbmcnIH0sXHJcbiAgICAgICAgICAvLyBub3JtYWw6IHtcclxuICAgICAgICAgIC8vICAgc2hvdzogdHJ1ZSwgICAgICAgICAgICAvL+aYvuekuuaVsOWtl1xyXG4gICAgICAgICAgLy8gICBwb3NpdGlvbjogJ3RvcCcsICAgICAgICAvL+i/memHjOWPr+S7peiHquW3semAieaLqeS9jee9rlxyXG4gICAgICAgICAgLy8gICBjb2xvcjogJ3JlZCcsXHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBkYXRhMixcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMDJDOUI0JyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzAxQUVDQycgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtYXJrUG9pbnQ6IHtcclxuICAgICAgICAgIGRhdGE6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWluJywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgICAgICBzeW1ib2xPZmZzZXQ6IFstNSwgMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgLy8gcG9zaXRpb246J3RvcCcsXHJcbiAgICAgICAgICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgICAgICAgIGNvbG9yOicjZmZmJyxcclxuICAgICAgICAgICAgZm9udFNpemU6MTBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgZGF0YTogZGF0YTMsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzI5NzBGRicgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyM4MUEyRkYnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbi8vIOWFmuW7uuWjsOmfs+WPguS4juS6uuasoeWIhuaekFxyXG5leHBvcnQgZnVuY3Rpb24gdm9pY2VBbmFseXplRWNoYXJ0cyhjaGFydDogYW55KSB7XHJcblxyXG4gIFxyXG4gIHZhciBkYXRhMiA9IFszMCwgNjAsIDYwLCA3MCxdO1xyXG4gIHZhciBkYXRhMyA9IFs3MCwgNjAsIDkwLCAxMDAsXTtcclxuXHJcbiAgdmFyIHhEYXRhID0gWyfnrKzkuIDlkagnLCAn56ys5LqM5ZGoJywgJ+esrOS4ieWRqCcsICfnrKzlm5vlkagnXTtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgZ3JpZDoge1xyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzElJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczogW3tcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgICB7XHJcbiAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNmZmYnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfSUnLFxyXG4gICAgICAgIG1heDogMTAwLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBdLFxyXG4gICAgeEF4aXM6IHtcclxuICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgZGF0YTogeERhdGEsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiBbMTAsIDE2LCA1MCwgOTBdLFxyXG4gICAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgICBjb2xvcjogJyNGRkEyNzAnLFxyXG4gICAgICAgIHlBeGlzSW5kZXg6IDEsXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflhZrlkZjlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICBzdGFjazogJ3N1bScsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIC8vIGJhY2tncm91bmRDb2xvcjogeyBpbWFnZTogJ2RlbW8ucG5nJyB9LFxyXG4gICAgICAgICAgLy8gbm9ybWFsOiB7XHJcbiAgICAgICAgICAvLyAgIHNob3c6IHRydWUsICAgICAgICAgICAgLy/mmL7npLrmlbDlrZdcclxuICAgICAgICAgIC8vICAgcG9zaXRpb246ICd0b3AnLCAgICAgICAgLy/ov5nph4zlj6/ku6Xoh6rlt7HpgInmi6nkvY3nva5cclxuICAgICAgICAgIC8vICAgY29sb3I6ICdyZWQnLFxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogZGF0YTIsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzAyQzlCNCcgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyMwMUFFQ0MnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbicsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflsYXmsJHlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtMScsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIGRhdGE6IGRhdGEzLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMyOTcwRkYnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjODFBMkZGJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG4iXX0=
|