@cdk_utils/iam 1.5.0 → 1.7.0
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.
- package/.jsii +9280 -7917
- package/lib/generated/services/a2c.js +1 -1
- package/lib/generated/services/a4b.js +3 -3
- package/lib/generated/services/access-analyzer.js +4 -4
- package/lib/generated/services/account-access.js +4 -4
- package/lib/generated/services/account.js +4 -4
- package/lib/generated/services/acm-pca.js +4 -4
- package/lib/generated/services/acm.js +4 -4
- package/lib/generated/services/aco-automation.js +4 -4
- package/lib/generated/services/action-recommendations.js +1 -1
- package/lib/generated/services/activate.js +1 -1
- package/lib/generated/services/agent-registry.js +4 -4
- package/lib/generated/services/agentaccess-mcp.js +2 -2
- package/lib/generated/services/aidevops.js +4 -4
- package/lib/generated/services/aiops.js +4 -4
- package/lib/generated/services/airflow-serverless.js +4 -4
- package/lib/generated/services/airflow.js +4 -4
- package/lib/generated/services/amplify.js +4 -4
- package/lib/generated/services/amplifybackend.js +3 -3
- package/lib/generated/services/amplifyuibuilder.js +4 -4
- package/lib/generated/services/aoss.js +4 -4
- package/lib/generated/services/apigateway.js +4 -4
- package/lib/generated/services/app-integrations.js +4 -4
- package/lib/generated/services/appconfig.js +4 -4
- package/lib/generated/services/appfabric.js +4 -4
- package/lib/generated/services/appflow.js +4 -4
- package/lib/generated/services/application-autoscaling.js +4 -4
- package/lib/generated/services/application-signals-mcp.js +3 -3
- package/lib/generated/services/application-signals.js +4 -4
- package/lib/generated/services/application-transformation.js +1 -1
- package/lib/generated/services/applicationinsights.js +3 -3
- package/lib/generated/services/appmesh-preview.js +2 -2
- package/lib/generated/services/appmesh.js +4 -4
- package/lib/generated/services/apprunner.js +4 -4
- package/lib/generated/services/appstream.js +4 -4
- package/lib/generated/services/appstudio.js +2 -2
- package/lib/generated/services/appsync.js +4 -4
- package/lib/generated/services/apptest.js +3 -3
- package/lib/generated/services/aps.js +4 -4
- package/lib/generated/services/arc-region-switch.js +4 -4
- package/lib/generated/services/arc-zonal-shift.js +4 -4
- package/lib/generated/services/arsenal.js +1 -1
- package/lib/generated/services/artifact.js +4 -4
- package/lib/generated/services/athena.js +4 -4
- package/lib/generated/services/auditmanager.js +4 -4
- package/lib/generated/services/autoscaling-plans.js +2 -2
- package/lib/generated/services/autoscaling.js +4 -4
- package/lib/generated/services/aws-external-anthropic.js +3 -3
- package/lib/generated/services/aws-marketplace-management.js +1 -1
- package/lib/generated/services/aws-marketplace.d.ts +4 -0
- package/lib/generated/services/aws-marketplace.js +13 -5
- package/lib/generated/services/aws-portal.js +1 -1
- package/lib/generated/services/awsconnector.js +1 -1
- package/lib/generated/services/b2bi.js +4 -4
- package/lib/generated/services/backup-gateway.js +4 -4
- package/lib/generated/services/backup-search.js +4 -4
- package/lib/generated/services/backup-storage.js +1 -1
- package/lib/generated/services/backup.js +4 -4
- package/lib/generated/services/batch.js +4 -4
- package/lib/generated/services/bcm-dashboards.js +4 -4
- package/lib/generated/services/bcm-data-exports.js +4 -4
- package/lib/generated/services/bcm-pricing-calculator.js +4 -4
- package/lib/generated/services/bcm-recommended-actions.js +2 -2
- package/lib/generated/services/bedrock-agentcore.js +4 -4
- package/lib/generated/services/bedrock-mantle.js +3 -3
- package/lib/generated/services/bedrock-websearch.js +2 -2
- package/lib/generated/services/bedrock.d.ts +4 -0
- package/lib/generated/services/bedrock.js +11 -5
- package/lib/generated/services/billing.js +4 -4
- package/lib/generated/services/billingconductor.js +4 -4
- package/lib/generated/services/braket.js +4 -4
- package/lib/generated/services/budgets.js +4 -4
- package/lib/generated/services/bugbust.js +3 -3
- package/lib/generated/services/cases.js +4 -4
- package/lib/generated/services/cassandra.js +4 -4
- package/lib/generated/services/ce.js +4 -4
- package/lib/generated/services/chatbot.js +4 -4
- package/lib/generated/services/chime.js +4 -4
- package/lib/generated/services/cleanrooms-ml.js +4 -4
- package/lib/generated/services/cleanrooms.js +4 -4
- package/lib/generated/services/cloud9.js +4 -4
- package/lib/generated/services/clouddirectory.js +3 -3
- package/lib/generated/services/cloudformation.js +4 -4
- package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
- package/lib/generated/services/cloudfront.js +4 -4
- package/lib/generated/services/cloudhsm.js +4 -4
- package/lib/generated/services/cloudsearch.js +3 -3
- package/lib/generated/services/cloudshell.js +3 -3
- package/lib/generated/services/cloudtrail-data.js +4 -4
- package/lib/generated/services/cloudtrail.js +4 -4
- package/lib/generated/services/cloudwatch.js +4 -4
- package/lib/generated/services/codeartifact.js +4 -4
- package/lib/generated/services/codebuild.js +4 -4
- package/lib/generated/services/codecatalyst.js +4 -4
- package/lib/generated/services/codecommit.js +4 -4
- package/lib/generated/services/codeconnections.js +4 -4
- package/lib/generated/services/codedeploy-commands-secure.js +1 -1
- package/lib/generated/services/codedeploy.js +4 -4
- package/lib/generated/services/codeguru-profiler.js +4 -4
- package/lib/generated/services/codeguru-reviewer.js +4 -4
- package/lib/generated/services/codeguru-security.js +4 -4
- package/lib/generated/services/codeguru.js +1 -1
- package/lib/generated/services/codepipeline.js +4 -4
- package/lib/generated/services/codestar-connections.js +4 -4
- package/lib/generated/services/codestar-notifications.js +4 -4
- package/lib/generated/services/codestar.js +3 -3
- package/lib/generated/services/codewhisperer.js +3 -3
- package/lib/generated/services/cognito-identity.js +4 -4
- package/lib/generated/services/cognito-idp.js +4 -4
- package/lib/generated/services/cognito-sync.js +3 -3
- package/lib/generated/services/comprehend.js +4 -4
- package/lib/generated/services/comprehendmedical.js +3 -3
- package/lib/generated/services/compute-optimizer.js +3 -3
- package/lib/generated/services/config.js +4 -4
- package/lib/generated/services/connect-campaigns.js +4 -4
- package/lib/generated/services/connect.js +9 -6
- package/lib/generated/services/consoleapp.js +2 -2
- package/lib/generated/services/consolidatedbilling.js +1 -1
- package/lib/generated/services/controlcatalog.js +3 -3
- package/lib/generated/services/controltower.js +4 -4
- package/lib/generated/services/cost-optimization-hub.js +2 -2
- package/lib/generated/services/cur.js +4 -4
- package/lib/generated/services/customer-verification.js +1 -1
- package/lib/generated/services/databrew.js +4 -4
- package/lib/generated/services/dataexchange.js +11 -6
- package/lib/generated/services/datapipeline.js +4 -4
- package/lib/generated/services/datasync.js +4 -4
- package/lib/generated/services/datazone.js +4 -4
- package/lib/generated/services/dax.js +4 -4
- package/lib/generated/services/dbqms.js +1 -1
- package/lib/generated/services/deadline.js +4 -4
- package/lib/generated/services/detective.js +4 -4
- package/lib/generated/services/devicefarm.js +4 -4
- package/lib/generated/services/devops-guru.js +4 -4
- package/lib/generated/services/directconnect.js +4 -4
- package/lib/generated/services/discovery.js +3 -3
- package/lib/generated/services/dlm.js +4 -4
- package/lib/generated/services/dms.js +4 -4
- package/lib/generated/services/docdb-elastic.js +4 -4
- package/lib/generated/services/drs.js +17 -9
- package/lib/generated/services/ds-data.js +4 -4
- package/lib/generated/services/ds.js +4 -4
- package/lib/generated/services/dsql.js +4 -4
- package/lib/generated/services/dynamodb.js +4 -4
- package/lib/generated/services/ebs.js +4 -4
- package/lib/generated/services/ec2-instance-connect.js +4 -4
- package/lib/generated/services/ec2.d.ts +95 -0
- package/lib/generated/services/ec2.js +161 -19
- package/lib/generated/services/ec2messages.js +2 -2
- package/lib/generated/services/ecr-public.js +4 -4
- package/lib/generated/services/ecr.js +4 -4
- package/lib/generated/services/ecs-mcp.js +1 -1
- package/lib/generated/services/ecs.js +4 -4
- package/lib/generated/services/eks-auth.js +4 -4
- package/lib/generated/services/eks-mcp.js +1 -1
- package/lib/generated/services/eks.d.ts +20 -0
- package/lib/generated/services/eks.js +40 -5
- package/lib/generated/services/elasticache.js +4 -4
- package/lib/generated/services/elasticbeanstalk.js +4 -4
- package/lib/generated/services/elasticfilesystem.js +4 -4
- package/lib/generated/services/elasticloadbalancing.js +4 -4
- package/lib/generated/services/elasticmapreduce.js +4 -4
- package/lib/generated/services/elastictranscoder.js +2 -2
- package/lib/generated/services/elemental-activations.js +1 -1
- package/lib/generated/services/elemental-appliances-software.js +2 -2
- package/lib/generated/services/elemental-inference.js +4 -4
- package/lib/generated/services/elemental-support-cases.js +3 -3
- package/lib/generated/services/elemental-support-content.js +1 -1
- package/lib/generated/services/emr-containers.js +4 -4
- package/lib/generated/services/emr-serverless.js +4 -4
- package/lib/generated/services/entityresolution.js +4 -4
- package/lib/generated/services/es.js +4 -4
- package/lib/generated/services/events.js +4 -4
- package/lib/generated/services/eventsbilltoaws.js +3 -3
- package/lib/generated/services/evidently.js +3 -3
- package/lib/generated/services/evs.js +4 -4
- package/lib/generated/services/execute-api.js +4 -4
- package/lib/generated/services/finops-agent.js +1 -1
- package/lib/generated/services/finspace-api.js +3 -3
- package/lib/generated/services/finspace.js +4 -4
- package/lib/generated/services/firehose.js +4 -4
- package/lib/generated/services/fis.js +4 -4
- package/lib/generated/services/fms.js +4 -4
- package/lib/generated/services/forecast.js +4 -4
- package/lib/generated/services/frauddetector.js +4 -4
- package/lib/generated/services/freertos.js +3 -3
- package/lib/generated/services/freetier.js +2 -2
- package/lib/generated/services/fsx.js +4 -4
- package/lib/generated/services/gamelift.js +4 -4
- package/lib/generated/services/gameliftstreams.js +4 -4
- package/lib/generated/services/geo-maps.js +3 -3
- package/lib/generated/services/geo-places.js +3 -3
- package/lib/generated/services/geo-routes.js +3 -3
- package/lib/generated/services/geo.js +4 -4
- package/lib/generated/services/glacier.js +4 -4
- package/lib/generated/services/globalaccelerator.js +4 -4
- package/lib/generated/services/glue.js +4 -4
- package/lib/generated/services/grafana.js +4 -4
- package/lib/generated/services/greengrass.js +4 -4
- package/lib/generated/services/groundstation.js +4 -4
- package/lib/generated/services/groundtruthlabeling.js +1 -1
- package/lib/generated/services/guardduty.js +4 -4
- package/lib/generated/services/health-agent.js +4 -4
- package/lib/generated/services/health.js +4 -4
- package/lib/generated/services/healthlake.d.ts +4 -0
- package/lib/generated/services/healthlake.js +11 -5
- package/lib/generated/services/honeycode.js +2 -2
- package/lib/generated/services/iam.js +4 -4
- package/lib/generated/services/identity-sync.js +2 -2
- package/lib/generated/services/identitystore-auth.js +1 -1
- package/lib/generated/services/identitystore.js +4 -4
- package/lib/generated/services/imagebuilder.js +4 -4
- package/lib/generated/services/importexport.js +2 -2
- package/lib/generated/services/inspector-scan.js +2 -2
- package/lib/generated/services/inspector.js +2 -2
- package/lib/generated/services/inspector2-telemetry.js +1 -1
- package/lib/generated/services/inspector2.js +4 -4
- package/lib/generated/services/interconnect.js +4 -4
- package/lib/generated/services/internetmonitor.js +4 -4
- package/lib/generated/services/invoicing.js +4 -4
- package/lib/generated/services/iot-device-tester.js +1 -1
- package/lib/generated/services/iot.js +4 -4
- package/lib/generated/services/iotanalytics.js +3 -3
- package/lib/generated/services/iotdeviceadvisor.js +4 -4
- package/lib/generated/services/iotevents.js +3 -3
- package/lib/generated/services/iotfleethub.js +3 -3
- package/lib/generated/services/iotfleetwise.js +4 -4
- package/lib/generated/services/iotjobsdata.js +4 -4
- package/lib/generated/services/iotmanagedintegrations.js +4 -4
- package/lib/generated/services/iotsitewise.js +4 -4
- package/lib/generated/services/iottwinmaker.js +4 -4
- package/lib/generated/services/iotwireless.js +4 -4
- package/lib/generated/services/iq-permission.js +2 -2
- package/lib/generated/services/iq.js +2 -2
- package/lib/generated/services/ivs.js +4 -4
- package/lib/generated/services/ivschat.js +4 -4
- package/lib/generated/services/kafka-cluster.js +3 -3
- package/lib/generated/services/kafka.js +4 -4
- package/lib/generated/services/kafkaconnect.js +4 -4
- package/lib/generated/services/kendra-ranking.js +4 -4
- package/lib/generated/services/kendra.js +4 -4
- package/lib/generated/services/kinesis.js +4 -4
- package/lib/generated/services/kinesisanalytics.js +4 -4
- package/lib/generated/services/kinesisvideo.js +4 -4
- package/lib/generated/services/kms.js +4 -4
- package/lib/generated/services/lakeformation.js +3 -3
- package/lib/generated/services/lambda.js +4 -4
- package/lib/generated/services/launchwizard.js +4 -4
- package/lib/generated/services/lex.js +4 -4
- package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
- package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
- package/lib/generated/services/license-manager.js +4 -4
- package/lib/generated/services/lightsail.js +4 -4
- package/lib/generated/services/logs.js +4 -4
- package/lib/generated/services/lookoutequipment.js +4 -4
- package/lib/generated/services/lookoutmetrics.js +3 -3
- package/lib/generated/services/lookoutvision.js +3 -3
- package/lib/generated/services/m2.js +4 -4
- package/lib/generated/services/machinelearning.js +3 -3
- package/lib/generated/services/macie2.js +4 -4
- package/lib/generated/services/managedblockchain-query.js +2 -2
- package/lib/generated/services/managedblockchain.js +4 -4
- package/lib/generated/services/mapcredits.js +2 -2
- package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
- package/lib/generated/services/mechanicalturk.js +2 -2
- package/lib/generated/services/mediaconnect.js +4 -4
- package/lib/generated/services/mediaconvert.js +4 -4
- package/lib/generated/services/mediaimport.js +1 -1
- package/lib/generated/services/medialive.js +4 -4
- package/lib/generated/services/mediapackage-vod.js +4 -4
- package/lib/generated/services/mediapackage.js +4 -4
- package/lib/generated/services/mediapackagev2.js +4 -4
- package/lib/generated/services/mediastore.js +4 -4
- package/lib/generated/services/mediatailor.js +4 -4
- package/lib/generated/services/medical-imaging.js +4 -4
- package/lib/generated/services/memorydb.js +4 -4
- package/lib/generated/services/mgh.js +4 -4
- package/lib/generated/services/mgn.js +4 -4
- package/lib/generated/services/migrationhub-orchestrator.js +4 -4
- package/lib/generated/services/migrationhub-strategy.js +2 -2
- package/lib/generated/services/mobileanalytics.js +1 -1
- package/lib/generated/services/mobiletargeting.js +4 -4
- package/lib/generated/services/monitron.js +3 -3
- package/lib/generated/services/mpa.js +4 -4
- package/lib/generated/services/mq.js +4 -4
- package/lib/generated/services/neptune-db.js +4 -4
- package/lib/generated/services/neptune-graph.js +4 -4
- package/lib/generated/services/network-firewall.js +4 -4
- package/lib/generated/services/network-security-director.js +1 -1
- package/lib/generated/services/networkflowmonitor.js +4 -4
- package/lib/generated/services/networkmanager-chat.js +1 -1
- package/lib/generated/services/networkmanager.js +4 -4
- package/lib/generated/services/networkmonitor.js +4 -4
- package/lib/generated/services/nimble.js +3 -3
- package/lib/generated/services/notifications-contacts.js +4 -4
- package/lib/generated/services/notifications.js +4 -4
- package/lib/generated/services/nova-act.js +3 -3
- package/lib/generated/services/oam.js +4 -4
- package/lib/generated/services/observabilityadmin.js +4 -4
- package/lib/generated/services/odb.js +4 -4
- package/lib/generated/services/omics.js +4 -4
- package/lib/generated/services/one.js +3 -3
- package/lib/generated/services/opensearch.js +3 -3
- package/lib/generated/services/opsworks-cm.js +2 -2
- package/lib/generated/services/opsworks.js +2 -2
- package/lib/generated/services/organizations.js +4 -4
- package/lib/generated/services/osis.js +4 -4
- package/lib/generated/services/outposts.d.ts +4 -0
- package/lib/generated/services/outposts.js +13 -5
- package/lib/generated/services/panorama.js +3 -3
- package/lib/generated/services/partnercentral-account-management.js +2 -2
- package/lib/generated/services/partnercentral.js +4 -4
- package/lib/generated/services/payment-cryptography.js +4 -4
- package/lib/generated/services/payments.js +3 -3
- package/lib/generated/services/pca-connector-ad.js +4 -4
- package/lib/generated/services/pca-connector-scep.js +4 -4
- package/lib/generated/services/pcs.js +4 -4
- package/lib/generated/services/personalize.js +4 -4
- package/lib/generated/services/pi.js +4 -4
- package/lib/generated/services/pipes.js +4 -4
- package/lib/generated/services/polly.js +3 -3
- package/lib/generated/services/pricing.js +2 -2
- package/lib/generated/services/pricingplanmanager.js +3 -3
- package/lib/generated/services/private-networks.js +3 -3
- package/lib/generated/services/profile.js +4 -4
- package/lib/generated/services/proton.js +4 -4
- package/lib/generated/services/purchase-orders.js +3 -3
- package/lib/generated/services/q.js +3 -3
- package/lib/generated/services/qapps.js +4 -4
- package/lib/generated/services/qbusiness.js +4 -4
- package/lib/generated/services/qdeveloper.js +3 -3
- package/lib/generated/services/qldb.js +3 -3
- package/lib/generated/services/quicksight.js +9 -6
- package/lib/generated/services/ram.js +4 -4
- package/lib/generated/services/rbin.js +4 -4
- package/lib/generated/services/rds-data.js +4 -4
- package/lib/generated/services/rds-db.js +2 -2
- package/lib/generated/services/rds.js +4 -4
- package/lib/generated/services/redshift-data.js +4 -4
- package/lib/generated/services/redshift-serverless.js +4 -4
- package/lib/generated/services/redshift.js +4 -4
- package/lib/generated/services/refactor-spaces.js +4 -4
- package/lib/generated/services/rekognition.js +4 -4
- package/lib/generated/services/repostspace.js +4 -4
- package/lib/generated/services/researchstudio.js +1 -1
- package/lib/generated/services/resiliencehub.js +4 -4
- package/lib/generated/services/resource-explorer-2.js +4 -4
- package/lib/generated/services/resource-explorer.js +1 -1
- package/lib/generated/services/resource-groups.js +4 -4
- package/lib/generated/services/rhelkb.js +1 -1
- package/lib/generated/services/robomaker.js +3 -3
- package/lib/generated/services/rolesanywhere.js +4 -4
- package/lib/generated/services/route53-recovery-cluster.js +4 -4
- package/lib/generated/services/route53-recovery-control-config.js +4 -4
- package/lib/generated/services/route53-recovery-readiness.js +4 -4
- package/lib/generated/services/route53.js +4 -4
- package/lib/generated/services/route53domains.js +2 -2
- package/lib/generated/services/route53globalresolver.js +4 -4
- package/lib/generated/services/route53profiles.js +4 -4
- package/lib/generated/services/route53resolver.js +4 -4
- package/lib/generated/services/rtbfabric.js +4 -4
- package/lib/generated/services/rum.js +4 -4
- package/lib/generated/services/s3-object-lambda.js +3 -3
- package/lib/generated/services/s3-outposts.js +4 -4
- package/lib/generated/services/s3.js +4 -4
- package/lib/generated/services/s3express.js +3 -3
- package/lib/generated/services/s3files.js +4 -4
- package/lib/generated/services/s3tables.js +4 -4
- package/lib/generated/services/s3vectors.js +4 -4
- package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
- package/lib/generated/services/sagemaker-geospatial.js +4 -4
- package/lib/generated/services/sagemaker-mlflow.js +3 -3
- package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
- package/lib/generated/services/sagemaker.js +4 -4
- package/lib/generated/services/savingsplans.js +4 -4
- package/lib/generated/services/scheduler.js +4 -4
- package/lib/generated/services/schemas.js +4 -4
- package/lib/generated/services/scn.js +4 -4
- package/lib/generated/services/sdb.js +3 -3
- package/lib/generated/services/secretsmanager.js +4 -4
- package/lib/generated/services/security-ir.js +4 -4
- package/lib/generated/services/securityagent.js +4 -4
- package/lib/generated/services/securityhub.js +4 -4
- package/lib/generated/services/securitylake.js +4 -4
- package/lib/generated/services/serverlessrepo.js +4 -4
- package/lib/generated/services/servicecatalog.js +4 -4
- package/lib/generated/services/servicediscovery.js +4 -4
- package/lib/generated/services/serviceextract.js +1 -1
- package/lib/generated/services/servicequotas.js +4 -4
- package/lib/generated/services/ses.js +4 -4
- package/lib/generated/services/shield.js +4 -4
- package/lib/generated/services/signer.js +4 -4
- package/lib/generated/services/signin.js +4 -4
- package/lib/generated/services/simspaceweaver.js +3 -3
- package/lib/generated/services/sms-voice.js +4 -4
- package/lib/generated/services/sms.js +1 -1
- package/lib/generated/services/snow-device-management.js +4 -4
- package/lib/generated/services/snowball.js +2 -2
- package/lib/generated/services/sns.js +4 -4
- package/lib/generated/services/social-messaging.js +4 -4
- package/lib/generated/services/sqlworkbench.js +3 -3
- package/lib/generated/services/sqs.js +4 -4
- package/lib/generated/services/ssm-contacts.js +4 -4
- package/lib/generated/services/ssm-guiconnect.js +2 -2
- package/lib/generated/services/ssm-incidents.js +4 -4
- package/lib/generated/services/ssm-quicksetup.js +4 -4
- package/lib/generated/services/ssm-sap.js +4 -4
- package/lib/generated/services/ssm.d.ts +20 -0
- package/lib/generated/services/ssm.js +39 -5
- package/lib/generated/services/ssmmessages.js +2 -2
- package/lib/generated/services/sso-directory.js +1 -1
- package/lib/generated/services/sso-oauth.js +3 -3
- package/lib/generated/services/sso.js +4 -4
- package/lib/generated/services/states.js +4 -4
- package/lib/generated/services/storagegateway.js +4 -4
- package/lib/generated/services/sts.js +4 -4
- package/lib/generated/services/support-console.js +1 -1
- package/lib/generated/services/support.js +2 -2
- package/lib/generated/services/supportapp.js +2 -2
- package/lib/generated/services/supportauthz.js +4 -4
- package/lib/generated/services/supportplans.js +1 -1
- package/lib/generated/services/sustainability.js +2 -2
- package/lib/generated/services/swf.js +4 -4
- package/lib/generated/services/synthetics.js +4 -4
- package/lib/generated/services/tag.js +2 -2
- package/lib/generated/services/tax.js +2 -2
- package/lib/generated/services/textract.js +4 -4
- package/lib/generated/services/thinclient.js +4 -4
- package/lib/generated/services/timestream-influxdb.js +4 -4
- package/lib/generated/services/timestream.js +4 -4
- package/lib/generated/services/tiros.js +1 -1
- package/lib/generated/services/tnb.js +4 -4
- package/lib/generated/services/transcribe.js +4 -4
- package/lib/generated/services/transfer.js +4 -4
- package/lib/generated/services/transform-custom.js +3 -3
- package/lib/generated/services/transform.js +3 -3
- package/lib/generated/services/translate.js +4 -4
- package/lib/generated/services/trustedadvisor.js +3 -3
- package/lib/generated/services/ts.js +3 -3
- package/lib/generated/services/user-subscriptions.js +2 -2
- package/lib/generated/services/uxc.js +2 -2
- package/lib/generated/services/vendor-insights.js +3 -3
- package/lib/generated/services/verified-access.js +1 -1
- package/lib/generated/services/verifiedpermissions.js +4 -4
- package/lib/generated/services/voiceid.js +4 -4
- package/lib/generated/services/vpc-lattice-svcs.js +3 -3
- package/lib/generated/services/vpc-lattice.js +4 -4
- package/lib/generated/services/vpce.js +2 -2
- package/lib/generated/services/waf-regional.js +4 -4
- package/lib/generated/services/waf.js +4 -4
- package/lib/generated/services/wafv2.js +4 -4
- package/lib/generated/services/wam.js +1 -1
- package/lib/generated/services/wellarchitected.js +4 -4
- package/lib/generated/services/wickr.js +4 -4
- package/lib/generated/services/wisdom.js +4 -4
- package/lib/generated/services/workdocs.js +3 -3
- package/lib/generated/services/worklink.js +3 -3
- package/lib/generated/services/workmail.js +4 -4
- package/lib/generated/services/workmailmessageflow.js +3 -3
- package/lib/generated/services/workspaces-instances.js +4 -4
- package/lib/generated/services/workspaces-web.js +4 -4
- package/lib/generated/services/workspaces.d.ts +4 -0
- package/lib/generated/services/workspaces.js +11 -5
- package/lib/generated/services/xray.js +4 -4
- package/package.json +1 -1
|
@@ -16,11 +16,13 @@ class EKSActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.EKSActions = EKSActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
EKSActions[_a] = { fqn: "@cdk_utils/iam.eks.EKSActions", version: "1.
|
|
19
|
+
EKSActions[_a] = { fqn: "@cdk_utils/iam.eks.EKSActions", version: "1.7.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
EKSActions.SERVICE_PREFIX = "eks";
|
|
22
22
|
/** [Read] eks:AccessKubernetesApi */
|
|
23
23
|
EKSActions.AccessKubernetesApi = "eks:AccessKubernetesApi";
|
|
24
|
+
/** [Write] eks:ActivateCertificateAuthority */
|
|
25
|
+
EKSActions.ActivateCertificateAuthority = "eks:ActivateCertificateAuthority";
|
|
24
26
|
/** [Write] eks:AssociateAccessPolicy */
|
|
25
27
|
EKSActions.AssociateAccessPolicy = "eks:AssociateAccessPolicy";
|
|
26
28
|
/** [Write] eks:AssociateEncryptionConfig */
|
|
@@ -35,6 +37,8 @@ EKSActions.CreateAccessEntry = "eks:CreateAccessEntry";
|
|
|
35
37
|
EKSActions.CreateAddon = "eks:CreateAddon";
|
|
36
38
|
/** [Write] eks:CreateCapability */
|
|
37
39
|
EKSActions.CreateCapability = "eks:CreateCapability";
|
|
40
|
+
/** [Write] eks:CreateCertificateAuthority */
|
|
41
|
+
EKSActions.CreateCertificateAuthority = "eks:CreateCertificateAuthority";
|
|
38
42
|
/** [Write] eks:CreateCluster */
|
|
39
43
|
EKSActions.CreateCluster = "eks:CreateCluster";
|
|
40
44
|
/** [Write] eks:CreateEksAnywhereSubscription */
|
|
@@ -51,6 +55,8 @@ EKSActions.DeleteAccessEntry = "eks:DeleteAccessEntry";
|
|
|
51
55
|
EKSActions.DeleteAddon = "eks:DeleteAddon";
|
|
52
56
|
/** [Write] eks:DeleteCapability */
|
|
53
57
|
EKSActions.DeleteCapability = "eks:DeleteCapability";
|
|
58
|
+
/** [Write] eks:DeleteCertificateAuthority */
|
|
59
|
+
EKSActions.DeleteCertificateAuthority = "eks:DeleteCertificateAuthority";
|
|
54
60
|
/** [Write] eks:DeleteCluster */
|
|
55
61
|
EKSActions.DeleteCluster = "eks:DeleteCluster";
|
|
56
62
|
/** [Write] eks:DeleteEksAnywhereSubscription */
|
|
@@ -73,6 +79,8 @@ EKSActions.DescribeAddonConfiguration = "eks:DescribeAddonConfiguration";
|
|
|
73
79
|
EKSActions.DescribeAddonVersions = "eks:DescribeAddonVersions";
|
|
74
80
|
/** [Read] eks:DescribeCapability */
|
|
75
81
|
EKSActions.DescribeCapability = "eks:DescribeCapability";
|
|
82
|
+
/** [Read] eks:DescribeCertificateAuthority */
|
|
83
|
+
EKSActions.DescribeCertificateAuthority = "eks:DescribeCertificateAuthority";
|
|
76
84
|
/** [Read] eks:DescribeCluster */
|
|
77
85
|
EKSActions.DescribeCluster = "eks:DescribeCluster";
|
|
78
86
|
/** [Read] eks:DescribeClusterVersions */
|
|
@@ -107,6 +115,8 @@ EKSActions.ListAddons = "eks:ListAddons";
|
|
|
107
115
|
EKSActions.ListAssociatedAccessPolicies = "eks:ListAssociatedAccessPolicies";
|
|
108
116
|
/** [List] eks:ListCapabilities */
|
|
109
117
|
EKSActions.ListCapabilities = "eks:ListCapabilities";
|
|
118
|
+
/** [List] eks:ListCertificateAuthorities */
|
|
119
|
+
EKSActions.ListCertificateAuthorities = "eks:ListCertificateAuthorities";
|
|
110
120
|
/** [List] eks:ListClusters */
|
|
111
121
|
EKSActions.ListClusters = "eks:ListClusters";
|
|
112
122
|
/** [Read] eks:ListDashboardData */
|
|
@@ -165,6 +175,7 @@ EKSActions.AllReadActions = [
|
|
|
165
175
|
EKSActions.DescribeAddonConfiguration,
|
|
166
176
|
EKSActions.DescribeAddonVersions,
|
|
167
177
|
EKSActions.DescribeCapability,
|
|
178
|
+
EKSActions.DescribeCertificateAuthority,
|
|
168
179
|
EKSActions.DescribeCluster,
|
|
169
180
|
EKSActions.DescribeClusterVersions,
|
|
170
181
|
EKSActions.DescribeEksAnywhereSubscription,
|
|
@@ -181,6 +192,7 @@ EKSActions.AllReadActions = [
|
|
|
181
192
|
];
|
|
182
193
|
/** All write-level actions. */
|
|
183
194
|
EKSActions.AllWriteActions = [
|
|
195
|
+
EKSActions.ActivateCertificateAuthority,
|
|
184
196
|
EKSActions.AssociateAccessPolicy,
|
|
185
197
|
EKSActions.AssociateEncryptionConfig,
|
|
186
198
|
EKSActions.AssociateIdentityProviderConfig,
|
|
@@ -188,6 +200,7 @@ EKSActions.AllWriteActions = [
|
|
|
188
200
|
EKSActions.CreateAccessEntry,
|
|
189
201
|
EKSActions.CreateAddon,
|
|
190
202
|
EKSActions.CreateCapability,
|
|
203
|
+
EKSActions.CreateCertificateAuthority,
|
|
191
204
|
EKSActions.CreateCluster,
|
|
192
205
|
EKSActions.CreateEksAnywhereSubscription,
|
|
193
206
|
EKSActions.CreateFargateProfile,
|
|
@@ -196,6 +209,7 @@ EKSActions.AllWriteActions = [
|
|
|
196
209
|
EKSActions.DeleteAccessEntry,
|
|
197
210
|
EKSActions.DeleteAddon,
|
|
198
211
|
EKSActions.DeleteCapability,
|
|
212
|
+
EKSActions.DeleteCertificateAuthority,
|
|
199
213
|
EKSActions.DeleteCluster,
|
|
200
214
|
EKSActions.DeleteEksAnywhereSubscription,
|
|
201
215
|
EKSActions.DeleteFargateProfile,
|
|
@@ -224,6 +238,7 @@ EKSActions.AllListActions = [
|
|
|
224
238
|
EKSActions.ListAddons,
|
|
225
239
|
EKSActions.ListAssociatedAccessPolicies,
|
|
226
240
|
EKSActions.ListCapabilities,
|
|
241
|
+
EKSActions.ListCertificateAuthorities,
|
|
227
242
|
EKSActions.ListClusters,
|
|
228
243
|
EKSActions.ListEksAnywhereSubscriptions,
|
|
229
244
|
EKSActions.ListFargateProfiles,
|
|
@@ -583,7 +598,7 @@ class EKSResources {
|
|
|
583
598
|
}
|
|
584
599
|
exports.EKSResources = EKSResources;
|
|
585
600
|
_b = JSII_RTTI_SYMBOL_1;
|
|
586
|
-
EKSResources[_b] = { fqn: "@cdk_utils/iam.eks.EKSResources", version: "1.
|
|
601
|
+
EKSResources[_b] = { fqn: "@cdk_utils/iam.eks.EKSResources", version: "1.7.0" };
|
|
587
602
|
/**
|
|
588
603
|
* API operation to required IAM actions mapping for eks.
|
|
589
604
|
*/
|
|
@@ -591,7 +606,11 @@ class EKSOperations {
|
|
|
591
606
|
}
|
|
592
607
|
exports.EKSOperations = EKSOperations;
|
|
593
608
|
_c = JSII_RTTI_SYMBOL_1;
|
|
594
|
-
EKSOperations[_c] = { fqn: "@cdk_utils/iam.eks.EKSOperations", version: "1.
|
|
609
|
+
EKSOperations[_c] = { fqn: "@cdk_utils/iam.eks.EKSOperations", version: "1.7.0" };
|
|
610
|
+
/** IAM actions required for the ActivateCertificateAuthority API call. */
|
|
611
|
+
EKSOperations.ActivateCertificateAuthority = [
|
|
612
|
+
"eks:ActivateCertificateAuthority",
|
|
613
|
+
];
|
|
595
614
|
/** IAM actions required for the AssociateAccessPolicy API call. */
|
|
596
615
|
EKSOperations.AssociateAccessPolicy = [
|
|
597
616
|
"eks:AssociateAccessPolicy",
|
|
@@ -625,6 +644,10 @@ EKSOperations.CreateCapability = [
|
|
|
625
644
|
"iam:PassRole",
|
|
626
645
|
"eks:TagResource",
|
|
627
646
|
];
|
|
647
|
+
/** IAM actions required for the CreateCertificateAuthority API call. */
|
|
648
|
+
EKSOperations.CreateCertificateAuthority = [
|
|
649
|
+
"eks:CreateCertificateAuthority",
|
|
650
|
+
];
|
|
628
651
|
/** IAM actions required for the CreateCluster API call. */
|
|
629
652
|
EKSOperations.CreateCluster = [
|
|
630
653
|
"eks:CreateAccessEntry",
|
|
@@ -661,6 +684,10 @@ EKSOperations.DeleteAccessEntry = ["eks:DeleteAccessEntry"];
|
|
|
661
684
|
EKSOperations.DeleteAddon = ["eks:DeleteAddon"];
|
|
662
685
|
/** IAM actions required for the DeleteCapability API call. */
|
|
663
686
|
EKSOperations.DeleteCapability = ["eks:DeleteCapability"];
|
|
687
|
+
/** IAM actions required for the DeleteCertificateAuthority API call. */
|
|
688
|
+
EKSOperations.DeleteCertificateAuthority = [
|
|
689
|
+
"eks:DeleteCertificateAuthority",
|
|
690
|
+
];
|
|
664
691
|
/** IAM actions required for the DeleteCluster API call. */
|
|
665
692
|
EKSOperations.DeleteCluster = ["eks:DeleteCluster"];
|
|
666
693
|
/** IAM actions required for the DeleteEksAnywhereSubscription API call. */
|
|
@@ -691,6 +718,10 @@ EKSOperations.DescribeAddonVersions = [
|
|
|
691
718
|
];
|
|
692
719
|
/** IAM actions required for the DescribeCapability API call. */
|
|
693
720
|
EKSOperations.DescribeCapability = ["eks:DescribeCapability"];
|
|
721
|
+
/** IAM actions required for the DescribeCertificateAuthority API call. */
|
|
722
|
+
EKSOperations.DescribeCertificateAuthority = [
|
|
723
|
+
"eks:DescribeCertificateAuthority",
|
|
724
|
+
];
|
|
694
725
|
/** IAM actions required for the DescribeCluster API call. */
|
|
695
726
|
EKSOperations.DescribeCluster = ["eks:DescribeCluster"];
|
|
696
727
|
/** IAM actions required for the DescribeClusterVersions API call. */
|
|
@@ -743,6 +774,10 @@ EKSOperations.ListAssociatedAccessPolicies = [
|
|
|
743
774
|
];
|
|
744
775
|
/** IAM actions required for the ListCapabilities API call. */
|
|
745
776
|
EKSOperations.ListCapabilities = ["eks:ListCapabilities"];
|
|
777
|
+
/** IAM actions required for the ListCertificateAuthorities API call. */
|
|
778
|
+
EKSOperations.ListCertificateAuthorities = [
|
|
779
|
+
"eks:ListCertificateAuthorities",
|
|
780
|
+
];
|
|
746
781
|
/** IAM actions required for the ListClusters API call. */
|
|
747
782
|
EKSOperations.ListClusters = ["eks:ListClusters"];
|
|
748
783
|
/** IAM actions required for the ListEksAnywhereSubscriptions API call. */
|
|
@@ -1016,7 +1051,7 @@ class EKSConditions {
|
|
|
1016
1051
|
}
|
|
1017
1052
|
exports.EKSConditions = EKSConditions;
|
|
1018
1053
|
_d = JSII_RTTI_SYMBOL_1;
|
|
1019
|
-
EKSConditions[_d] = { fqn: "@cdk_utils/iam.eks.EKSConditions", version: "1.
|
|
1054
|
+
EKSConditions[_d] = { fqn: "@cdk_utils/iam.eks.EKSConditions", version: "1.7.0" };
|
|
1020
1055
|
/** Condition keys applicable to the AssociateAccessPolicy action. */
|
|
1021
1056
|
EKSConditions.AssociateAccessPolicyConditionKeys = [
|
|
1022
1057
|
"eks:accessScope",
|
|
@@ -1201,4 +1236,4 @@ EKSConditions.SUPPORT_TYPE = "eks:supportType";
|
|
|
1201
1236
|
EKSConditions.USERNAME = "eks:username";
|
|
1202
1237
|
/** Condition key: eks:zonalShiftEnabled (Bool) */
|
|
1203
1238
|
EKSConditions.ZONAL_SHIFT_ENABLED = "eks:zonalShiftEnabled";
|
|
1204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9la3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBaVBDOzs7QUFoUEEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMscUNBQXFDO0FBQ3JCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLHdDQUF3QztBQUN4QixnQ0FBcUIsR0FBRywyQkFBMkIsQ0FBQztBQUNwRSw0Q0FBNEM7QUFDNUIsb0NBQXlCLEdBQUcsK0JBQStCLENBQUM7QUFDNUUsa0RBQWtEO0FBQ2xDLDBDQUErQixHQUM5QyxxQ0FBcUMsQ0FBQztBQUN2QywrQkFBK0I7QUFDZix1QkFBWSxHQUFHLGtCQUFrQixDQUFDO0FBQ2xELG9DQUFvQztBQUNwQiw0QkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUM1RCw4QkFBOEI7QUFDZCxzQkFBVyxHQUFHLGlCQUFpQixDQUFDO0FBQ2hELG1DQUFtQztBQUNuQiwyQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMxRCxnQ0FBZ0M7QUFDaEIsd0JBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxnREFBZ0Q7QUFDaEMsd0NBQTZCLEdBQzVDLG1DQUFtQyxDQUFDO0FBQ3JDLHVDQUF1QztBQUN2QiwrQkFBb0IsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxrQ0FBa0M7QUFDbEIsMEJBQWUsR0FBRyxxQkFBcUIsQ0FBQztBQUN4RCwrQ0FBK0M7QUFDL0IsdUNBQTRCLEdBQzNDLGtDQUFrQyxDQUFDO0FBQ3BDLG9DQUFvQztBQUNwQiw0QkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUM1RCw4QkFBOEI7QUFD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QzdDLDRDQUE0QztBQUM1QiwyQkFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ25ELDhDQUE4QztBQUM5QiwwQkFBWSxHQUFHLGlCQUFpQixDQUFDO0FBQ2pELDJDQUEyQztBQUMzQixzQkFBUSxHQUFHLGNBQWMsQ0FBQztBQUMxQyxrREFBa0Q7QUFDbEMsaUNBQW1CLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9la3MuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGVrcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRUtTQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImVrc1wiO1xuXG5cdC8qKiBbUmVhZF0gZWtzOkFjY2Vzc0t1YmVybmV0ZXNBcGkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2Vzc0t1YmVybmV0ZXNBcGkgPSBcImVrczpBY2Nlc3NLdWJlcm5ldGVzQXBpXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpBc3NvY2lhdGVBY2Nlc3NQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUFjY2Vzc1BvbGljeSA9IFwiZWtzOkFzc29jaWF0ZUFjY2Vzc1BvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBla3M6QXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZyA9IFwiZWtzOkFzc29jaWF0ZUVuY3J5cHRpb25Db25maWdcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgPVxuXHRcdFwiZWtzOkFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNhbmNlbFVwZGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsVXBkYXRlID0gXCJla3M6Q2FuY2VsVXBkYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVBY2Nlc3NFbnRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWNjZXNzRW50cnkgPSBcImVrczpDcmVhdGVBY2Nlc3NFbnRyeVwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlQWRkb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFkZG9uID0gXCJla3M6Q3JlYXRlQWRkb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNyZWF0ZUNhcGFiaWxpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhcGFiaWxpdHkgPSBcImVrczpDcmVhdGVDYXBhYmlsaXR5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVDbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbHVzdGVyID0gXCJla3M6Q3JlYXRlQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uID1cblx0XHRcImVrczpDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlRmFyZ2F0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZhcmdhdGVQcm9maWxlID0gXCJla3M6Q3JlYXRlRmFyZ2F0ZVByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNyZWF0ZU5vZGVncm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTm9kZWdyb3VwID0gXCJla3M6Q3JlYXRlTm9kZWdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uID1cblx0XHRcImVrczpDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVBY2Nlc3NFbnRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQWNjZXNzRW50cnkgPSBcImVrczpEZWxldGVBY2Nlc3NFbnRyeVwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlQWRkb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFkZG9uID0gXCJla3M6RGVsZXRlQWRkb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRlbGV0ZUNhcGFiaWxpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFiaWxpdHkgPSBcImVrczpEZWxldGVDYXBhYmlsaXR5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVDbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbHVzdGVyID0gXCJla3M6RGVsZXRlQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uID1cblx0XHRcImVrczpEZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlRmFyZ2F0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZhcmdhdGVQcm9maWxlID0gXCJla3M6RGVsZXRlRmFyZ2F0ZVByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRlbGV0ZU5vZGVncm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTm9kZWdyb3VwID0gXCJla3M6RGVsZXRlTm9kZWdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uID1cblx0XHRcImVrczpEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZXJlZ2lzdGVyQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVyZWdpc3RlckNsdXN0ZXIgPSBcImVrczpEZXJlZ2lzdGVyQ2x1c3RlclwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUFjY2Vzc0VudHJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY2Vzc0VudHJ5ID0gXCJla3M6RGVzY3JpYmVBY2Nlc3NFbnRyeVwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUFkZG9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFkZG9uID0gXCJla3M6RGVzY3JpYmVBZGRvblwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24gPSBcImVrczpEZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUFkZG9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWRkb25WZXJzaW9ucyA9IFwiZWtzOkRlc2NyaWJlQWRkb25WZXJzaW9uc1wiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUNhcGFiaWxpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2FwYWJpbGl0eSA9IFwiZWtzOkRlc2NyaWJlQ2FwYWJpbGl0eVwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2x1c3RlciA9IFwiZWtzOkRlc2NyaWJlQ2x1c3RlclwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUNsdXN0ZXJWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMgPSBcImVrczpEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1wiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uID1cblx0XHRcImVrczpEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZWtzOkRlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUgPSBcImVrczpEZXNjcmliZUZhcmdhdGVQcm9maWxlXCI7XG5cdC8qKiBbUmVhZF0gZWtzOkRlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnID1cblx0XHRcImVrczpEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVJbnNpZ2h0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUluc2lnaHQgPSBcImVrczpEZXNjcmliZUluc2lnaHRcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2ggKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSW5zaWdodHNSZWZyZXNoID0gXCJla3M6RGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2hcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVOb2RlZ3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTm9kZWdyb3VwID0gXCJla3M6RGVzY3JpYmVOb2RlZ3JvdXBcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb24gPVxuXHRcdFwiZWtzOkRlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvblwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZVVwZGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVVcGRhdGUgPSBcImVrczpEZXNjcmliZVVwZGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3kgPSBcImVrczpEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgPVxuXHRcdFwiZWtzOkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFjY2Vzc0VudHJpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBY2Nlc3NFbnRyaWVzID0gXCJla3M6TGlzdEFjY2Vzc0VudHJpZXNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFjY2Vzc1BvbGljaWVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWNjZXNzUG9saWNpZXMgPSBcImVrczpMaXN0QWNjZXNzUG9saWNpZXNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFkZG9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFkZG9ucyA9IFwiZWtzOkxpc3RBZGRvbnNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyA9XG5cdFx0XCJla3M6TGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0Q2FwYWJpbGl0aWVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2FwYWJpbGl0aWVzID0gXCJla3M6TGlzdENhcGFiaWxpdGllc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0Q2x1c3RlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbHVzdGVycyA9IFwiZWtzOkxpc3RDbHVzdGVyc1wiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0RGFzaGJvYXJkRGF0YSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhc2hib2FyZERhdGEgPSBcImVrczpMaXN0RGFzaGJvYXJkRGF0YVwiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0RGFzaGJvYXJkUmVzb3VyY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGFzaGJvYXJkUmVzb3VyY2VzID0gXCJla3M6TGlzdERhc2hib2FyZFJlc291cmNlc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zID1cblx0XHRcImVrczpMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZWtzOkxpc3RGYXJnYXRlUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGYXJnYXRlUHJvZmlsZXMgPSBcImVrczpMaXN0RmFyZ2F0ZVByb2ZpbGVzXCI7XG5cdC8qKiBbTGlzdF0gZWtzOkxpc3RJZGVudGl0eVByb3ZpZGVyQ29uZmlncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzID1cblx0XHRcImVrczpMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3NcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEluc2lnaHRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5zaWdodHMgPSBcImVrczpMaXN0SW5zaWdodHNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdE5vZGVncm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3ROb2RlZ3JvdXBzID0gXCJla3M6TGlzdE5vZGVncm91cHNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdFBvZElkZW50aXR5QXNzb2NpYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMgPVxuXHRcdFwiZWtzOkxpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJla3M6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0VXBkYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFVwZGF0ZXMgPSBcImVrczpMaXN0VXBkYXRlc1wiO1xuXHQvKiogW1dyaXRlXSBla3M6TXV0YXRlVmlhS3ViZXJuZXRlc0FwaSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTXV0YXRlVmlhS3ViZXJuZXRlc0FwaSA9IFwiZWtzOk11dGF0ZVZpYUt1YmVybmV0ZXNBcGlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlJlZ2lzdGVyQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJDbHVzdGVyID0gXCJla3M6UmVnaXN0ZXJDbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpTdGFydEluc2lnaHRzUmVmcmVzaCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbnNpZ2h0c1JlZnJlc2ggPSBcImVrczpTdGFydEluc2lnaHRzUmVmcmVzaFwiO1xuXHQvKiogW1RhZ2dpbmddIGVrczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImVrczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGVrczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJla3M6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlQWNjZXNzRW50cnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY2Vzc0VudHJ5ID0gXCJla3M6VXBkYXRlQWNjZXNzRW50cnlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZUFkZG9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZGRvbiA9IFwiZWtzOlVwZGF0ZUFkZG9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVDYXBhYmlsaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYXBhYmlsaXR5ID0gXCJla3M6VXBkYXRlQ2FwYWJpbGl0eVwiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlQ2x1c3RlckNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlckNvbmZpZyA9IFwiZWtzOlVwZGF0ZUNsdXN0ZXJDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZUNsdXN0ZXJWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbHVzdGVyVmVyc2lvbiA9IFwiZWtzOlVwZGF0ZUNsdXN0ZXJWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gPVxuXHRcdFwiZWtzOlVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVOb2RlZ3JvdXBDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU5vZGVncm91cENvbmZpZyA9IFwiZWtzOlVwZGF0ZU5vZGVncm91cENvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlTm9kZWdyb3VwVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTm9kZWdyb3VwVmVyc2lvbiA9IFwiZWtzOlVwZGF0ZU5vZGVncm91cFZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gPVxuXHRcdFwiZWtzOlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25cIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRFS1NBY3Rpb25zLkFjY2Vzc0t1YmVybmV0ZXNBcGksXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUFjY2Vzc0VudHJ5LFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVBZGRvbixcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVBZGRvblZlcnNpb25zLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVDYXBhYmlsaXR5LFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVDbHVzdGVyLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMsXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVGYXJnYXRlUHJvZmlsZSxcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZyxcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlSW5zaWdodCxcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlSW5zaWdodHNSZWZyZXNoLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVOb2RlZ3JvdXAsXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb24sXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZVVwZGF0ZSxcblx0XHRFS1NBY3Rpb25zLkxpc3REYXNoYm9hcmREYXRhLFxuXHRcdEVLU0FjdGlvbnMuTGlzdERhc2hib2FyZFJlc291cmNlcyxcblx0XHRFS1NBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RUtTQWN0aW9ucy5Bc3NvY2lhdGVBY2Nlc3NQb2xpY3ksXG5cdFx0RUtTQWN0aW9ucy5Bc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnLFxuXHRcdEVLU0FjdGlvbnMuQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyxcblx0XHRFS1NBY3Rpb25zLkNhbmNlbFVwZGF0ZSxcblx0XHRFS1NBY3Rpb25zLkNyZWF0ZUFjY2Vzc0VudHJ5LFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlQWRkb24sXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVDYXBhYmlsaXR5LFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlQ2x1c3Rlcixcblx0XHRFS1NBY3Rpb25zLkNyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlRmFyZ2F0ZVByb2ZpbGUsXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVOb2RlZ3JvdXAsXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uLFxuXHRcdEVLU0FjdGlvbnMuRGVsZXRlQWNjZXNzRW50cnksXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVBZGRvbixcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZUNhcGFiaWxpdHksXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVDbHVzdGVyLFxuXHRcdEVLU0FjdGlvbnMuRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24sXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVGYXJnYXRlUHJvZmlsZSxcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZU5vZGVncm91cCxcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24sXG5cdFx0RUtTQWN0aW9ucy5EZXJlZ2lzdGVyQ2x1c3Rlcixcblx0XHRFS1NBY3Rpb25zLkRpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSxcblx0XHRFS1NBY3Rpb25zLkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcsXG5cdFx0RUtTQWN0aW9ucy5NdXRhdGVWaWFLdWJlcm5ldGVzQXBpLFxuXHRcdEVLU0FjdGlvbnMuUmVnaXN0ZXJDbHVzdGVyLFxuXHRcdEVLU0FjdGlvbnMuU3RhcnRJbnNpZ2h0c1JlZnJlc2gsXG5cdFx0RUtTQWN0aW9ucy5VcGRhdGVBY2Nlc3NFbnRyeSxcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUFkZG9uLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlQ2FwYWJpbGl0eSxcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUNsdXN0ZXJDb25maWcsXG5cdFx0RUtTQWN0aW9ucy5VcGRhdGVDbHVzdGVyVmVyc2lvbixcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlTm9kZWdyb3VwQ29uZmlnLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlTm9kZWdyb3VwVmVyc2lvbixcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEVLU0FjdGlvbnMuTGlzdEFjY2Vzc0VudHJpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0QWNjZXNzUG9saWNpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0QWRkb25zLFxuXHRcdEVLU0FjdGlvbnMuTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyxcblx0XHRFS1NBY3Rpb25zLkxpc3RDYXBhYmlsaXRpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0Q2x1c3RlcnMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zLFxuXHRcdEVLU0FjdGlvbnMuTGlzdEZhcmdhdGVQcm9maWxlcyxcblx0XHRFS1NBY3Rpb25zLkxpc3RJZGVudGl0eVByb3ZpZGVyQ29uZmlncyxcblx0XHRFS1NBY3Rpb25zLkxpc3RJbnNpZ2h0cyxcblx0XHRFS1NBY3Rpb25zLkxpc3ROb2RlZ3JvdXBzLFxuXHRcdEVLU0FjdGlvbnMuTGlzdFBvZElkZW50aXR5QXNzb2NpYXRpb25zLFxuXHRcdEVLU0FjdGlvbnMuTGlzdFVwZGF0ZXMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEVLU0FjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0RUtTQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWNjZXNzLWVudHJ5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NBY2Nlc3NFbnRyeUFyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJYW1JZGVudGl0eVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlhbUlkZW50aXR5VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIElhbUlkZW50aXR5QWNjb3VudElEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpYW1JZGVudGl0eUFjY291bnRJZDogc3RyaW5nO1xuXHQvKiogVGhlIElhbUlkZW50aXR5TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaWFtSWRlbnRpdHlOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFjY2Vzcy1lbnRyeSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTQWNjZXNzRW50cnlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJYW1JZGVudGl0eVR5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpYW1JZGVudGl0eVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBJYW1JZGVudGl0eUFjY291bnRJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlhbUlkZW50aXR5QWNjb3VudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWFtSWRlbnRpdHlOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWFtSWRlbnRpdHlOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFjY2Vzcy1wb2xpY3kgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0FjY2Vzc1BvbGljeUFyblByb3BzIHtcblx0LyoqIFRoZSBBY2Nlc3NQb2xpY3lOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhY2Nlc3NQb2xpY3lOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYWNjZXNzLXBvbGljeSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTQWNjZXNzUG9saWN5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBY2Nlc3NQb2xpY3lOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYWNjZXNzUG9saWN5TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWRkb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0FkZG9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEFkZG9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYWRkb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFkZG9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NBZGRvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEFkZG9uTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFkZG9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYXBhYmlsaXR5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NDYXBhYmlsaXR5QXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENhcGFiaWxpdHlUeXBlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXBhYmlsaXR5VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIENhcGFiaWxpdHlOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXBhYmlsaXR5TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjYXBhYmlsaXR5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NDYXBhYmlsaXR5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FwYWJpbGl0eVR5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXBhYmlsaXR5VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIENhcGFiaWxpdHlOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2FwYWJpbGl0eU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2x1c3RlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTQ2x1c3RlckFyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NDbHVzdGVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXNoYm9hcmQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0Rhc2hib2FyZEFyblByb3BzIHtcblx0LyoqIFRoZSBEYXNoYm9hcmROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGFzaGJvYXJkIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NEYXNoYm9hcmRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhc2hib2FyZE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZWtzLWFueXdoZXJlLXN1YnNjcmlwdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmYXJnYXRlcHJvZmlsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTRmFyZ2F0ZXByb2ZpbGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmFyZ2F0ZVByb2ZpbGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmYXJnYXRlUHJvZmlsZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZmFyZ2F0ZXByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0ZhcmdhdGVwcm9maWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmFyZ2F0ZVByb2ZpbGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZmFyZ2F0ZVByb2ZpbGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGlkZW50aXR5cHJvdmlkZXJjb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0lkZW50aXR5cHJvdmlkZXJjb25maWdBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWRlbnRpdHlQcm92aWRlclR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkZW50aXR5UHJvdmlkZXJUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkZW50aXR5UHJvdmlkZXJDb25maWdOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGlkZW50aXR5cHJvdmlkZXJjb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0lkZW50aXR5cHJvdmlkZXJjb25maWdBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJZGVudGl0eVByb3ZpZGVyVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlkZW50aXR5UHJvdmlkZXJUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBub2RlZ3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU05vZGVncm91cEFyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBOb2RlZ3JvdXBOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBub2RlZ3JvdXBOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIG5vZGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTTm9kZWdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTm9kZWdyb3VwTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG5vZGVncm91cE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFjY2Vzc0VudHJ5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmVrczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFjY2Vzcy1lbnRyeVxcLyg/PGNsdXN0ZXJOYW1lPlteOi8/XSspXFwvKD88aWFtSWRlbnRpdHlUeXBlPlteOi8/XSspXFwvKD88aWFtSWRlbnRpdHlBY2NvdW50SWQ+W146Lz9dKylcXC8oPzxpYW1JZGVudGl0eU5hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5jb25zdCBBY2Nlc3NQb2xpY3lBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOjphd3M6Y2x1c3Rlci1hY2Nlc3MtcG9saWN5XFwvKD88YWNjZXNzUG9saWN5TmFtZT5bXjovP10rKSQvO1xuY29uc3QgQWRkb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YWRkb25cXC8oPzxjbHVzdGVyTmFtZT5bXjovP10rKVxcLyg/PGFkZG9uTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IENhcGFiaWxpdHlBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2FwYWJpbGl0eVxcLyg/PGNsdXN0ZXJOYW1lPlteOi8/XSspXFwvKD88Y2FwYWJpbGl0eVR5cGU+W146Lz9dKylcXC8oPzxjYXBhYmlsaXR5TmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IENsdXN0ZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2x1c3RlclxcLyg/PGNsdXN0ZXJOYW1lPlteOi8/XSspJC87XG5jb25zdCBEYXNoYm9hcmRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGFzaGJvYXJkXFwvKD88ZGFzaGJvYXJkTmFtZT5bXjovP10rKSQvO1xuY29uc3QgRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZWtzLWFueXdoZXJlLXN1YnNjcmlwdGlvblxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IEZhcmdhdGVwcm9maWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmVrczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZhcmdhdGVwcm9maWxlXFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKylcXC8oPzxmYXJnYXRlUHJvZmlsZU5hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5jb25zdCBJZGVudGl0eXByb3ZpZGVyY29uZmlnQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmVrczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmlkZW50aXR5cHJvdmlkZXJjb25maWdcXC8oPzxjbHVzdGVyTmFtZT5bXjovP10rKVxcLyg/PGlkZW50aXR5UHJvdmlkZXJUeXBlPlteOi8/XSspXFwvKD88aWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5jb25zdCBOb2RlZ3JvdXBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bm9kZWdyb3VwXFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKylcXC8oPzxub2RlZ3JvdXBOYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpwb2RpZGVudGl0eWFzc29jaWF0aW9uXFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZWtzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVLU1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYWNjZXNzLWVudHJ5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFjY2Vzc0VudHJ5KHByb3BzOiBFS1NBY2Nlc3NFbnRyeUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YWNjZXNzLWVudHJ5LyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMuaWFtSWRlbnRpdHlUeXBlfS8ke3Byb3BzLmlhbUlkZW50aXR5QWNjb3VudElkfS8ke3Byb3BzLmlhbUlkZW50aXR5TmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhY2Nlc3MtZW50cnkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFjY2Vzc0VudHJ5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFjY2Vzc0VudHJ5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFjY2Vzcy1lbnRyeSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBY2Nlc3NFbnRyeUFybihhcm46IHN0cmluZyk6IEVLU0FjY2Vzc0VudHJ5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBY2Nlc3NFbnRyeUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhY2Nlc3MtZW50cnkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHRpYW1JZGVudGl0eVR5cGU6IG1hdGNoLmdyb3VwcyEuaWFtSWRlbnRpdHlUeXBlLFxuXHRcdFx0aWFtSWRlbnRpdHlBY2NvdW50SWQ6IG1hdGNoLmdyb3VwcyEuaWFtSWRlbnRpdHlBY2NvdW50SWQsXG5cdFx0XHRpYW1JZGVudGl0eU5hbWU6IG1hdGNoLmdyb3VwcyEuaWFtSWRlbnRpdHlOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFjY2Vzcy1wb2xpY3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWNjZXNzUG9saWN5KHByb3BzOiBFS1NBY2Nlc3NQb2xpY3lBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOjphd3M6Y2x1c3Rlci1hY2Nlc3MtcG9saWN5LyR7cHJvcHMuYWNjZXNzUG9saWN5TmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYWNjZXNzLXBvbGljeSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWNjZXNzUG9saWN5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFjY2Vzc1BvbGljeUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhY2Nlc3MtcG9saWN5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFjY2Vzc1BvbGljeUFybihhcm46IHN0cmluZyk6IEVLU0FjY2Vzc1BvbGljeUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWNjZXNzUG9saWN5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFjY2Vzcy1wb2xpY3kgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YWNjZXNzUG9saWN5TmFtZTogbWF0Y2guZ3JvdXBzIS5hY2Nlc3NQb2xpY3lOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFkZG9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFkZG9uKHByb3BzOiBFS1NBZGRvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YWRkb24vJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5hZGRvbk5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYWRkb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFkZG9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFkZG9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFkZG9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFkZG9uQXJuKGFybjogc3RyaW5nKTogRUtTQWRkb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFkZG9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFkZG9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0YWRkb25OYW1lOiBtYXRjaC5ncm91cHMhLmFkZG9uTmFtZSxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjYXBhYmlsaXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNhcGFiaWxpdHkocHJvcHM6IEVLU0NhcGFiaWxpdHlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNhcGFiaWxpdHkvJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5jYXBhYmlsaXR5VHlwZX0vJHtwcm9wcy5jYXBhYmlsaXR5TmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjYXBhYmlsaXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDYXBhYmlsaXR5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENhcGFiaWxpdHlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2FwYWJpbGl0eSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDYXBhYmlsaXR5QXJuKGFybjogc3RyaW5nKTogRUtTQ2FwYWJpbGl0eUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FwYWJpbGl0eUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjYXBhYmlsaXR5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0Y2FwYWJpbGl0eVR5cGU6IG1hdGNoLmdyb3VwcyEuY2FwYWJpbGl0eVR5cGUsXG5cdFx0XHRjYXBhYmlsaXR5TmFtZTogbWF0Y2guZ3JvdXBzIS5jYXBhYmlsaXR5TmFtZSxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNsdXN0ZXIocHJvcHM6IEVLU0NsdXN0ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNsdXN0ZXIvJHtwcm9wcy5jbHVzdGVyTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2x1c3RlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDbHVzdGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNsdXN0ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2x1c3RlckFybihhcm46IHN0cmluZyk6IEVLU0NsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENsdXN0ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2x1c3RlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjbHVzdGVyTmFtZTogbWF0Y2guZ3JvdXBzIS5jbHVzdGVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXNoYm9hcmQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGFzaGJvYXJkKHByb3BzOiBFS1NEYXNoYm9hcmRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhc2hib2FyZC8ke3Byb3BzLmRhc2hib2FyZE5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhc2hib2FyZCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGFzaGJvYXJkQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhc2hib2FyZEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXNoYm9hcmQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGFzaGJvYXJkQXJuKGFybjogc3RyaW5nKTogRUtTRGFzaGJvYXJkQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXNoYm9hcmRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGFzaGJvYXJkIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhc2hib2FyZE5hbWU6IG1hdGNoLmdyb3VwcyEuZGFzaGJvYXJkTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKFxuXHRcdHByb3BzOiBFS1NFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uLyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZWtzLWFueXdoZXJlLXN1YnNjcmlwdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZWtzLWFueXdoZXJlLXN1YnNjcmlwdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRUtTRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEVLU0FueXdoZXJlU3Vic2NyaXB0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZhcmdhdGVwcm9maWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZhcmdhdGVwcm9maWxlKHByb3BzOiBFS1NGYXJnYXRlcHJvZmlsZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZmFyZ2F0ZXByb2ZpbGUvJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5mYXJnYXRlUHJvZmlsZU5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZmFyZ2F0ZXByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZhcmdhdGVwcm9maWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZhcmdhdGVwcm9maWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGZhcmdhdGVwcm9maWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUZhcmdhdGVwcm9maWxlQXJuKGFybjogc3RyaW5nKTogRUtTRmFyZ2F0ZXByb2ZpbGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZhcmdhdGVwcm9maWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZhcmdhdGVwcm9maWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0ZmFyZ2F0ZVByb2ZpbGVOYW1lOiBtYXRjaC5ncm91cHMhLmZhcmdhdGVQcm9maWxlTmFtZSxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpZGVudGl0eXByb3ZpZGVyY29uZmlnIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlkZW50aXR5cHJvdmlkZXJjb25maWcoXG5cdFx0cHJvcHM6IEVLU0lkZW50aXR5cHJvdmlkZXJjb25maWdBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aWRlbnRpdHlwcm92aWRlcmNvbmZpZy8ke3Byb3BzLmNsdXN0ZXJOYW1lfS8ke3Byb3BzLmlkZW50aXR5UHJvdmlkZXJUeXBlfS8ke3Byb3BzLmlkZW50aXR5UHJvdmlkZXJDb25maWdOYW1lfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGlkZW50aXR5cHJvdmlkZXJjb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZElkZW50aXR5cHJvdmlkZXJjb25maWdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBpZGVudGl0eXByb3ZpZGVyY29uZmlnIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUlkZW50aXR5cHJvdmlkZXJjb25maWdBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEVLU0lkZW50aXR5cHJvdmlkZXJjb25maWdBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IElkZW50aXR5cHJvdmlkZXJjb25maWdBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjbHVzdGVyTmFtZTogbWF0Y2guZ3JvdXBzIS5jbHVzdGVyTmFtZSxcblx0XHRcdGlkZW50aXR5UHJvdmlkZXJUeXBlOiBtYXRjaC5ncm91cHMhLmlkZW50aXR5UHJvdmlkZXJUeXBlLFxuXHRcdFx0aWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWU6IG1hdGNoLmdyb3VwcyEuaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbm9kZWdyb3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG5vZGVncm91cChwcm9wczogRUtTTm9kZWdyb3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpub2RlZ3JvdXAvJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5ub2RlZ3JvdXBOYW1lfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIG5vZGVncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTm9kZWdyb3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE5vZGVncm91cEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBub2RlZ3JvdXAgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTm9kZWdyb3VwQXJuKGFybjogc3RyaW5nKTogRUtTTm9kZWdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBOb2RlZ3JvdXBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbm9kZWdyb3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0bm9kZWdyb3VwTmFtZTogbWF0Y2guZ3JvdXBzIS5ub2RlZ3JvdXBOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHBvZGlkZW50aXR5YXNzb2NpYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbihcblx0XHRwcm9wczogRUtTUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpwb2RpZGVudGl0eWFzc29jaWF0aW9uLyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHBvZGlkZW50aXR5YXNzb2NpYXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRUtTUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUG9kaWRlbnRpdHlhc3NvY2lhdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb2RpZGVudGl0eWFzc29jaWF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGVrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVLU09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVBY2Nlc3NQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVBY2Nlc3NQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkFzc29jaWF0ZUFjY2Vzc1BvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6QXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6QXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZ1wiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbFVwZGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbFVwZGF0ZTogc3RyaW5nW10gPSBbXCJla3M6Q2FuY2VsVXBkYXRlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBY2Nlc3NFbnRyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFjY2Vzc0VudHJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpDcmVhdGVBY2Nlc3NFbnRyeVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQWRkb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBZGRvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlQWRkb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNhcGFiaWxpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDYXBhYmlsaXR5OiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpDcmVhdGVDYXBhYmlsaXR5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlQWNjZXNzRW50cnlcIixcblx0XHRcImVrczpDcmVhdGVDbHVzdGVyXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZhcmdhdGVQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmFyZ2F0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUZhcmdhdGVQcm9maWxlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVOb2RlZ3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVOb2RlZ3JvdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZU5vZGVncm91cFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUFjY2Vzc0VudHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQWNjZXNzRW50cnk6IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZUFjY2Vzc0VudHJ5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBZGRvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFkZG9uOiBzdHJpbmdbXSA9IFtcImVrczpEZWxldGVBZGRvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2FwYWJpbGl0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFiaWxpdHk6IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZUNhcGFiaWxpdHlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbHVzdGVyOiBzdHJpbmdbXSA9IFtcImVrczpEZWxldGVDbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVGYXJnYXRlUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZhcmdhdGVQcm9maWxlOiBzdHJpbmdbXSA9IFtcImVrczpEZWxldGVGYXJnYXRlUHJvZmlsZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTm9kZWdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTm9kZWdyb3VwOiBzdHJpbmdbXSA9IFtcImVrczpEZWxldGVOb2RlZ3JvdXBcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlcmVnaXN0ZXJDbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVyZWdpc3RlckNsdXN0ZXI6IHN0cmluZ1tdID0gW1wiZWtzOkRlcmVnaXN0ZXJDbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUFjY2Vzc0VudHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2Nlc3NFbnRyeTogc3RyaW5nW10gPSBbXCJla3M6RGVzY3JpYmVBY2Nlc3NFbnRyeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBZGRvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWRkb246IHN0cmluZ1tdID0gW1wiZWtzOkRlc2NyaWJlQWRkb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQWRkb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWRkb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVBZGRvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2FwYWJpbGl0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2FwYWJpbGl0eTogc3RyaW5nW10gPSBbXCJla3M6RGVzY3JpYmVDYXBhYmlsaXR5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNsdXN0ZXI6IHN0cmluZ1tdID0gW1wiZWtzOkRlc2NyaWJlQ2x1c3RlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNsdXN0ZXJWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVDbHVzdGVyVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRWtzQW55d2hlcmVTdWJzY3JpcHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlRWtzQW55d2hlcmVTdWJzY3JpcHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVGYXJnYXRlUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmFyZ2F0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlRmFyZ2F0ZVByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVJbnNpZ2h0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVJbnNpZ2h0OiBzdHJpbmdbXSA9IFtcImVrczpEZXNjcmliZUluc2lnaHRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlSW5zaWdodHNSZWZyZXNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2g6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlSW5zaWdodHNSZWZyZXNoXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTm9kZWdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVOb2RlZ3JvdXA6IHN0cmluZ1tdID0gW1wiZWtzOkRlc2NyaWJlTm9kZWdyb3VwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVVwZGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlVXBkYXRlOiBzdHJpbmdbXSA9IFtcImVrczpEZXNjcmliZVVwZGF0ZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEFjY2Vzc0VudHJpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWNjZXNzRW50cmllczogc3RyaW5nW10gPSBbXCJla3M6TGlzdEFjY2Vzc0VudHJpZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBY2Nlc3NQb2xpY2llcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBY2Nlc3NQb2xpY2llczogc3RyaW5nW10gPSBbXCJla3M6TGlzdEFjY2Vzc1BvbGljaWVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWRkb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFkZG9uczogc3RyaW5nW10gPSBbXCJla3M6TGlzdEFkZG9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBc3NvY2lhdGVkQWNjZXNzUG9saWNpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkxpc3RBc3NvY2lhdGVkQWNjZXNzUG9saWNpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhcGFiaWxpdGllcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYXBhYmlsaXRpZXM6IHN0cmluZ1tdID0gW1wiZWtzOkxpc3RDYXBhYmlsaXRpZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDbHVzdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbHVzdGVyczogc3RyaW5nW10gPSBbXCJla3M6TGlzdENsdXN0ZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6TGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RmFyZ2F0ZVByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZhcmdhdGVQcm9maWxlczogc3RyaW5nW10gPSBbXCJla3M6TGlzdEZhcmdhdGVQcm9maWxlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEluc2lnaHRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluc2lnaHRzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0SW5zaWdodHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3ROb2RlZ3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE5vZGVncm91cHM6IHN0cmluZ1tdID0gW1wiZWtzOkxpc3ROb2RlZ3JvdXBzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkxpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJla3M6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFVwZGF0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VXBkYXRlczogc3RyaW5nW10gPSBbXCJla3M6TGlzdFVwZGF0ZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlZ2lzdGVyQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpSZWdpc3RlckNsdXN0ZXJcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEluc2lnaHRzUmVmcmVzaCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0SW5zaWdodHNSZWZyZXNoOiBzdHJpbmdbXSA9IFtcImVrczpTdGFydEluc2lnaHRzUmVmcmVzaFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJla3M6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImVrczpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBY2Nlc3NFbnRyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY2Vzc0VudHJ5OiBzdHJpbmdbXSA9IFtcImVrczpVcGRhdGVBY2Nlc3NFbnRyeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWRkb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZGRvbjogc3RyaW5nW10gPSBbXCJpYW06UGFzc1JvbGVcIiwgXCJla3M6VXBkYXRlQWRkb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNhcGFiaWxpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYXBhYmlsaXR5OiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlVwZGF0ZUNhcGFiaWxpdHlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2x1c3RlckNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNsdXN0ZXJDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUFjY2Vzc0VudHJ5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpVcGRhdGVDbHVzdGVyQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNsdXN0ZXJWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlclZlcnNpb246IHN0cmluZ1tdID0gW1wiZWtzOlVwZGF0ZUNsdXN0ZXJWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpVcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVOb2RlZ3JvdXBDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVOb2RlZ3JvdXBDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOlVwZGF0ZU5vZGVncm91cENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVOb2RlZ3JvdXBWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTm9kZWdyb3VwVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6VXBkYXRlTm9kZWdyb3VwVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpVcGRhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBla3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBFS1NDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEFzc29jaWF0ZUFjY2Vzc1BvbGljeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVBY2Nlc3NQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczphY2Nlc3NTY29wZVwiLFxuXHRcdFwiZWtzOm5hbWVzcGFjZXNcIixcblx0XHRcImVrczpwb2xpY3lBcm5cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEFzc29jaWF0ZUVuY3J5cHRpb25Db25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOmVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiZWtzOmNsaWVudElkXCIsXG5cdFx0XCJla3M6aXNzdWVyVXJsXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBY2Nlc3NFbnRyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBY2Nlc3NFbnRyeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiZWtzOmFjY2Vzc0VudHJ5VHlwZVwiLFxuXHRcdFwiZWtzOmt1YmVybmV0ZXNHcm91cHNcIixcblx0XHRcImVrczpwcmluY2lwYWxBcm5cIixcblx0XHRcImVrczp1c2VybmFtZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQWRkb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWRkb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNhcGFiaWxpdHkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FwYWJpbGl0eUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2x1c3RlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbHVzdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJla3M6YXV0aGVudGljYXRpb25Nb2RlXCIsXG5cdFx0XCJla3M6YmxvY2tTdG9yYWdlRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9uc1wiLFxuXHRcdFwiZWtzOmJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zXCIsXG5cdFx0XCJla3M6Y29tcHV0ZUNvbmZpZ0VuYWJsZWRcIixcblx0XHRcImVrczpjb250cm9sUGxhbmVFZ3Jlc3NNb2RlXCIsXG5cdFx0XCJla3M6Y29udHJvbFBsYW5lU2NhbGluZ1RpZXJcIixcblx0XHRcImVrczpkZWxldGlvblByb3RlY3Rpb25cIixcblx0XHRcImVrczplbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWRcIixcblx0XHRcImVrczplbmNyeXB0aW9uQ29uZmlnUHJvdmlkZXJLZXlBcm5zXCIsXG5cdFx0XCJla3M6ZW5kcG9pbnRQcml2YXRlQWNjZXNzXCIsXG5cdFx0XCJla3M6ZW5kcG9pbnRQdWJsaWNBY2Nlc3NcIixcblx0XHRcImVrczprdWJlQXBpU2VydmVyQ29uZmlnXCIsXG5cdFx0XCJla3M6a3ViZUNvbnRyb2xsZXJNYW5hZ2VyQ29uZmlnXCIsXG5cdFx0XCJla3M6a3ViZVNjaGVkdWxlckNvbmZpZ1wiLFxuXHRcdFwiZWtzOmt1YmVybmV0ZXNWZXJzaW9uXCIsXG5cdFx0XCJla3M6bG9nZ2luZ1R5cGUvJHt0eXBlfVwiLFxuXHRcdFwiZWtzOnN1cHBvcnRUeXBlXCIsXG5cdFx0XCJla3M6em9uYWxTaGlmdEVuYWJsZWRcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGYXJnYXRlUHJvZmlsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGYXJnYXRlUHJvZmlsZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTm9kZWdyb3VwIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU5vZGVncm91cENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6YWNjZXNzU2NvcGVcIixcblx0XHRcImVrczpuYW1lc3BhY2VzXCIsXG5cdFx0XCJla3M6cG9saWN5QXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZWdpc3RlckNsdXN0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJDbHVzdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUNsdXN0ZXJDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlckNvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOmF1dGhlbnRpY2F0aW9uTW9kZVwiLFxuXHRcdFwiZWtzOmJsb2NrU3RvcmFnZUVuYWJsZWRcIixcblx0XHRcImVrczpjb21wdXRlQ29uZmlnRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmNvbnRyb2xQbGFuZUVncmVzc01vZGVcIixcblx0XHRcImVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllclwiLFxuXHRcdFwiZWtzOmRlbGV0aW9uUHJvdGVjdGlvblwiLFxuXHRcdFwiZWtzOmVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmVuZHBvaW50UHJpdmF0ZUFjY2Vzc1wiLFxuXHRcdFwiZWtzOmVuZHBvaW50UHVibGljQWNjZXNzXCIsXG5cdFx0XCJla3M6a3ViZUFwaVNlcnZlckNvbmZpZ1wiLFxuXHRcdFwiZWtzOmt1YmVDb250cm9sbGVyTWFuYWdlckNvbmZpZ1wiLFxuXHRcdFwiZWtzOmt1YmVTY2hlZHVsZXJDb25maWdcIixcblx0XHRcImVrczpsb2dnaW5nVHlwZS8ke3R5cGV9XCIsXG5cdFx0XCJla3M6c3VwcG9ydFR5cGVcIixcblx0XHRcImVrczp6b25hbFNoaWZ0RW5hYmxlZFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQ2x1c3RlclZlcnNpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlclZlcnNpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczprdWJlcm5ldGVzVmVyc2lvblwiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczphY2Nlc3NFbnRyeVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFDQ0VTU19FTlRSWV9UWVBFID0gXCJla3M6YWNjZXNzRW50cnlUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6YWNjZXNzU2NvcGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFDQ0VTU19TQ09QRSA9IFwiZWtzOmFjY2Vzc1Njb3BlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6YXV0aGVudGljYXRpb25Nb2RlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBVVRIRU5USUNBVElPTl9NT0RFID0gXCJla3M6YXV0aGVudGljYXRpb25Nb2RlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6YmxvY2tTdG9yYWdlRW5hYmxlZCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJMT0NLX1NUT1JBR0VfRU5BQkxFRCA9IFwiZWtzOmJsb2NrU3RvcmFnZUVuYWJsZWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnMgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBCT09UU1RSQVBfQ0xVU1RFUl9DUkVBVE9SX0FETUlOX1BFUk1JU1NJT05TID1cblx0XHRcImVrczpib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpib290c3RyYXBTZWxmTWFuYWdlZEFkZG9ucyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJPT1RTVFJBUF9TRUxGX01BTkFHRURfQURET05TID1cblx0XHRcImVrczpib290c3RyYXBTZWxmTWFuYWdlZEFkZG9uc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmNsaWVudElkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDTElFTlRfSUQgPSBcImVrczpjbGllbnRJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmNsdXN0ZXJOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDTFVTVEVSX05BTUUgPSBcImVrczpjbHVzdGVyTmFtZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmNvbXB1dGVDb25maWdFbmFibGVkIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09NUFVURV9DT05GSUdfRU5BQkxFRCA9IFwiZWtzOmNvbXB1dGVDb25maWdFbmFibGVkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6Y29udHJvbFBsYW5lRWdyZXNzTW9kZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09OVFJPTF9QTEFORV9FR1JFU1NfTU9ERSA9IFwiZWtzOmNvbnRyb2xQbGFuZUVncmVzc01vZGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09OVFJPTF9QTEFORV9TQ0FMSU5HX1RJRVIgPSBcImVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllclwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmRlbGV0aW9uUHJvdGVjdGlvbiAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERFTEVUSU9OX1BST1RFQ1RJT04gPSBcImVrczpkZWxldGlvblByb3RlY3Rpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczplbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWQgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBFTEFTVElDX0xPQURfQkFMQU5DSU5HX0VOQUJMRUQgPVxuXHRcdFwiZWtzOmVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnMgKEFycmF5T2ZBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBFTkNSWVBUSU9OX0NPTkZJR19QUk9WSURFUl9LRVlfQVJOUyA9XG5cdFx0XCJla3M6ZW5jcnlwdGlvbkNvbmZpZ1Byb3ZpZGVyS2V5QXJuc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmVuZHBvaW50UHJpdmF0ZUFjY2VzcyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVORFBPSU5UX1BSSVZBVEVfQUNDRVNTID0gXCJla3M6ZW5kcG9pbnRQcml2YXRlQWNjZXNzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6ZW5kcG9pbnRQdWJsaWNBY2Nlc3MgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBFTkRQT0lOVF9QVUJMSUNfQUNDRVNTID0gXCJla3M6ZW5kcG9pbnRQdWJsaWNBY2Nlc3NcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczppc3N1ZXJVcmwgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IElTU1VFUl9VUkwgPSBcImVrczppc3N1ZXJVcmxcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczprdWJlQXBpU2VydmVyQ29uZmlnIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgS1VCRV9BUElfU0VSVkVSX0NPTkZJRyA9IFwiZWtzOmt1YmVBcGlTZXJ2ZXJDb25maWdcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczprdWJlQ29udHJvbGxlck1hbmFnZXJDb25maWcgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBLVUJFX0NPTlRST0xMRVJfTUFOQUdFUl9DT05GSUcgPVxuXHRcdFwiZWtzOmt1YmVDb250cm9sbGVyTWFuYWdlckNvbmZpZ1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmt1YmVTY2hlZHVsZXJDb25maWcgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBLVUJFX1NDSEVEVUxFUl9DT05GSUcgPSBcImVrczprdWJlU2NoZWR1bGVyQ29uZmlnXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6a3ViZXJuZXRlc0dyb3VwcyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEtVQkVSTkVURVNfR1JPVVBTID0gXCJla3M6a3ViZXJuZXRlc0dyb3Vwc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmt1YmVybmV0ZXNWZXJzaW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBLVUJFUk5FVEVTX1ZFUlNJT04gPSBcImVrczprdWJlcm5ldGVzVmVyc2lvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmxvZ2dpbmdUeXBlLyR7dHlwZX0gKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBMT0dHSU5HX1RZUEUgPSBcImVrczpsb2dnaW5nVHlwZS8ke3R5cGV9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6bmFtZXNwYWNlcyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5BTUVTUEFDRVMgPSBcImVrczpuYW1lc3BhY2VzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6cG9saWN5QXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBQT0xJQ1lfQVJOID0gXCJla3M6cG9saWN5QXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6cHJpbmNpcGFsQXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBQUklOQ0lQQUxfQVJOID0gXCJla3M6cHJpbmNpcGFsQXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6c3VwcG9ydFR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNVUFBPUlRfVFlQRSA9IFwiZWtzOnN1cHBvcnRUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6dXNlcm5hbWUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVTRVJOQU1FID0gXCJla3M6dXNlcm5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczp6b25hbFNoaWZ0RW5hYmxlZCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFpPTkFMX1NISUZUX0VOQUJMRUQgPSBcImVrczp6b25hbFNoaWZ0RW5hYmxlZFwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6YWNjZXNzRW50cnlUeXBlYC5cblx0ICovXG5cdHN0YXRpYyBhY2Nlc3NFbnRyeVR5cGUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczphY2Nlc3NFbnRyeVR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczphY2Nlc3NTY29wZWAuXG5cdCAqL1xuXHRzdGF0aWMgYWNjZXNzU2NvcGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6YWNjZXNzU2NvcGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczphdXRoZW50aWNhdGlvbk1vZGVgLlxuXHQgKi9cblx0c3RhdGljIGF1dGhlbnRpY2F0aW9uTW9kZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmF1dGhlbnRpY2F0aW9uTW9kZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmJsb2NrU3RvcmFnZUVuYWJsZWRgLlxuXHQgKi9cblx0c3RhdGljIGJsb2NrU3RvcmFnZUVuYWJsZWQoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczpibG9ja1N0b3JhZ2VFbmFibGVkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6Ym9vdHN0cmFwQ2x1c3RlckNyZWF0b3JBZG1pblBlcm1pc3Npb25zYC5cblx0ICovXG5cdHN0YXRpYyBib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnMoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczpib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnNcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpib290c3RyYXBTZWxmTWFuYWdlZEFkZG9uc2AuXG5cdCAqL1xuXHRzdGF0aWMgYm9vdHN0cmFwU2VsZk1hbmFnZWRBZGRvbnMoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczpib290c3RyYXBTZWxmTWFuYWdlZEFkZG9uc1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmNsaWVudElkYC5cblx0ICovXG5cdHN0YXRpYyBjbGllbnRJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczpjbGllbnRJZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmNsdXN0ZXJOYW1lYC5cblx0ICovXG5cdHN0YXRpYyBjbHVzdGVyTmFtZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczpjbHVzdGVyTmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmNvbXB1dGVDb25maWdFbmFibGVkYC5cblx0ICovXG5cdHN0YXRpYyBjb21wdXRlQ29uZmlnRW5hYmxlZChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmNvbXB1dGVDb25maWdFbmFibGVkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6Y29udHJvbFBsYW5lRWdyZXNzTW9kZWAuXG5cdCAqL1xuXHRzdGF0aWMgY29udHJvbFBsYW5lRWdyZXNzTW9kZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmNvbnRyb2xQbGFuZUVncmVzc01vZGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllcmAuXG5cdCAqL1xuXHRzdGF0aWMgY29udHJvbFBsYW5lU2NhbGluZ1RpZXIoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllclwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmRlbGV0aW9uUHJvdGVjdGlvbmAuXG5cdCAqL1xuXHRzdGF0aWMgZGVsZXRpb25Qcm90ZWN0aW9uKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJla3M6ZGVsZXRpb25Qcm90ZWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6ZWxhc3RpY0xvYWRCYWxhbmNpbmdFbmFibGVkYC5cblx0ICovXG5cdHN0YXRpYyBlbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWQoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczplbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczplbmNyeXB0aW9uQ29uZmlnUHJvdmlkZXJLZXlBcm5zYC5cblx0ICovXG5cdHN0YXRpYyBlbmNyeXB0aW9uQ29uZmlnUHJvdmlkZXJLZXlBcm5zKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRcIkZvckFsbFZhbHVlczpBcm5FcXVhbHNcIjoge1xuXHRcdFx0XHRcImVrczplbmNyeXB0aW9uQ29uZmlnUHJvdmlkZXJLZXlBcm5zXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6ZW5kcG9pbnRQcml2YXRlQWNjZXNzYC5cblx0ICovXG5cdHN0YXRpYyBlbmRwb2ludFByaXZhdGVBY2Nlc3MoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczplbmRwb2ludFByaXZhdGVBY2Nlc3NcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczplbmRwb2ludFB1YmxpY0FjY2Vzc2AuXG5cdCAqL1xuXHRzdGF0aWMgZW5kcG9pbnRQdWJsaWNBY2Nlc3MoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczplbmRwb2ludFB1YmxpY0FjY2Vzc1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmlzc3VlclVybGAuXG5cdCAqL1xuXHRzdGF0aWMgaXNzdWVyVVJMKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmlzc3VlclVybFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmt1YmVBcGlTZXJ2ZXJDb25maWdgLlxuXHQgKi9cblx0c3RhdGljIGt1YmVBUElTZXJ2ZXJDb25maWcoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczprdWJlQXBpU2VydmVyQ29uZmlnXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6a3ViZUNvbnRyb2xsZXJNYW5hZ2VyQ29uZmlnYC5cblx0ICovXG5cdHN0YXRpYyBrdWJlQ29udHJvbGxlck1hbmFnZXJDb25maWcoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczprdWJlQ29udHJvbGxlck1hbmFnZXJDb25maWdcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczprdWJlU2NoZWR1bGVyQ29uZmlnYC5cblx0ICovXG5cdHN0YXRpYyBrdWJlU2NoZWR1bGVyQ29uZmlnKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJla3M6a3ViZVNjaGVkdWxlckNvbmZpZ1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmt1YmVybmV0ZXNHcm91cHNgLlxuXHQgKi9cblx0c3RhdGljIGt1YmVybmV0ZXNHcm91cHMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJla3M6a3ViZXJuZXRlc0dyb3Vwc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczprdWJlcm5ldGVzVmVyc2lvbmAuXG5cdCAqL1xuXHRzdGF0aWMga3ViZXJuZXRlc1ZlcnNpb24oXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczprdWJlcm5ldGVzVmVyc2lvblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmxvZ2dpbmdUeXBlLyR7dHlwZX1gLlxuXHQgKi9cblx0c3RhdGljIGxvZ2dpbmdUeXBlKHZhbHVlOiBib29sZWFuKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmxvZ2dpbmdUeXBlLyR7dHlwZX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpuYW1lc3BhY2VzYC5cblx0ICovXG5cdHN0YXRpYyBuYW1lc3BhY2VzKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiZWtzOm5hbWVzcGFjZXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6cG9saWN5QXJuYC5cblx0ICovXG5cdHN0YXRpYyBwb2xpY3lBUk4odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJla3M6cG9saWN5QXJuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6cHJpbmNpcGFsQXJuYC5cblx0ICovXG5cdHN0YXRpYyBwcmluY2lwYWxBUk4odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJla3M6cHJpbmNpcGFsQXJuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6c3VwcG9ydFR5cGVgLlxuXHQgKi9cblx0c3RhdGljIHN1cHBvcnRUeXBlKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOnN1cHBvcnRUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6dXNlcm5hbWVgLlxuXHQgKi9cblx0c3RhdGljIHVzZXJuYW1lKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOnVzZXJuYW1lXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6em9uYWxTaGlmdEVuYWJsZWRgLlxuXHQgKi9cblx0c3RhdGljIHpvbmFsU2hpZnRFbmFibGVkKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJla3M6em9uYWxTaGlmdEVuYWJsZWRcIjogdmFsdWUgfSB9O1xuXHR9XG59XG4iXX0=
|
|
1239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9la3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBa1FDOzs7QUFqUUEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMscUNBQXFDO0FBQ3JCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLCtDQUErQztBQUMvQix1Q0FBNEIsR0FDM0Msa0NBQWtDLENBQUM7QUFDcEMsd0NBQXdDO0FBQ3hCLGdDQUFxQixHQUFHLDJCQUEyQixDQUFDO0FBQ3BFLDRDQUE0QztBQUM1QixvQ0FBeUIsR0FBRywrQkFBK0IsQ0FBQztBQUM1RSxrREFBa0Q7QUFDbEMsMENBQStCLEdBQzlDLHFDQUFxQyxDQUFDO0FBQ3ZDLCtCQUErQjtBQUNmLHVCQUFZLEdBQUcsa0JBQWtCLENBQUM7QUFDbEQsb0NBQW9DO0FBQ3BCLDRCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBQzVELDhCQUE4QjtBQUNkLHNCQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFDaEQsbUNBQW1DO0FBQ25CLDJCQUFnQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELDZDQUE2QztBQUM3QixxQ0FBMEIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RSxnQ0FBZ0M7QUFDaEIsd0JBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxnREFBZ0Q7QUFDaEMsd0NBQTZCLEdBQzVDLG1DQUFtQyxDQUFDO0FBQ3JDLHVDQUF1QztBQUN2QiwrQkFBb0IsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxrQ0FBa0M7QUFDbEIsMEJBQWUsR0FBRyxxQkFBcUIsQ0FBQztBQUN4RCwrQ0FBK0M7QUFD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QUM7QUFDM0UsbURBQW1EO0FBQ25DLGlDQUFtQixHQUFHLHdCQUF3QixDQUFDO0FBQy9ELDREQUE0RDtBQUM1Qyw0Q0FBOEIsR0FDN0MsaUNBQWlDLENBQUM7QUFDbkMsc0VBQXNFO0FBQ3RELGlEQUFtQyxHQUNsRCxxQ0FBcUMsQ0FBQztBQUN2QyxzREFBc0Q7QUFDdEMscUNBQXVCLEdBQUcsMkJBQTJCLENBQUM7QUFDdEUscURBQXFEO0FBQ3JDLG9DQUFzQixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLDRDQUE0QztBQUM1Qix3QkFBVSxHQUFHLGVBQWUsQ0FBQztBQUM3QyxvREFBb0Q7QUFDcEMsb0NBQXNCLEdBQUcseUJBQXlCLENBQUM7QUFDbkUsNERBQTREO0FBQzVDLDRDQUE4QixHQUM3QyxpQ0FBaUMsQ0FBQztBQUNuQyxvREFBb0Q7QUFDcEMsbUNBQXFCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsMERBQTBEO0FBQzFDLCtCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzNELG9EQUFvRDtBQUNwQyxnQ0FBa0IsR0FBRyx1QkFBdUIsQ0FBQztBQUM3RCxvREFBb0Q7QUFDcEMsMEJBQVksR0FBRyx5QkFBeUIsQ0FBQztBQUN6RCxvREFBb0Q7QUFDcEMsd0JBQVUsR0FBRyxnQkFBZ0IsQ0FBQztBQUM5Qyx5Q0FBeUM7QUFDekIsd0JBQVUsR0FBRyxlQUFlLENBQUM7QUFDN0MsNENBQTRDO0FBQzVCLDJCQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsOENBQThDO0FBQzlCLDBCQUFZLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsMkNBQTJDO0FBQzNCLHNCQUFRLEdBQUcsY0FBYyxDQUFDO0FBQzFDLGtEQUFrRDtBQUNsQyxpQ0FBbUIsR0FBRyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2Vrcy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZWtzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBFS1NBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZWtzXCI7XG5cblx0LyoqIFtSZWFkXSBla3M6QWNjZXNzS3ViZXJuZXRlc0FwaSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXNzS3ViZXJuZXRlc0FwaSA9IFwiZWtzOkFjY2Vzc0t1YmVybmV0ZXNBcGlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkFjdGl2YXRlQ2VydGlmaWNhdGVBdXRob3JpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjdGl2YXRlQ2VydGlmaWNhdGVBdXRob3JpdHkgPVxuXHRcdFwiZWtzOkFjdGl2YXRlQ2VydGlmaWNhdGVBdXRob3JpdHlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkFzc29jaWF0ZUFjY2Vzc1BvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlQWNjZXNzUG9saWN5ID0gXCJla3M6QXNzb2NpYXRlQWNjZXNzUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnID0gXCJla3M6QXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBla3M6QXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyA9XG5cdFx0XCJla3M6QXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBla3M6Q2FuY2VsVXBkYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxVcGRhdGUgPSBcImVrczpDYW5jZWxVcGRhdGVcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNyZWF0ZUFjY2Vzc0VudHJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBY2Nlc3NFbnRyeSA9IFwiZWtzOkNyZWF0ZUFjY2Vzc0VudHJ5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVBZGRvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWRkb24gPSBcImVrczpDcmVhdGVBZGRvblwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlQ2FwYWJpbGl0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FwYWJpbGl0eSA9IFwiZWtzOkNyZWF0ZUNhcGFiaWxpdHlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNyZWF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDZXJ0aWZpY2F0ZUF1dGhvcml0eSA9IFwiZWtzOkNyZWF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVDbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbHVzdGVyID0gXCJla3M6Q3JlYXRlQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uID1cblx0XHRcImVrczpDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiO1xuXHQvKiogW1dyaXRlXSBla3M6Q3JlYXRlRmFyZ2F0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZhcmdhdGVQcm9maWxlID0gXCJla3M6Q3JlYXRlRmFyZ2F0ZVByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkNyZWF0ZU5vZGVncm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTm9kZWdyb3VwID0gXCJla3M6Q3JlYXRlTm9kZWdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uID1cblx0XHRcImVrczpDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVBY2Nlc3NFbnRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQWNjZXNzRW50cnkgPSBcImVrczpEZWxldGVBY2Nlc3NFbnRyeVwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlQWRkb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFkZG9uID0gXCJla3M6RGVsZXRlQWRkb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRlbGV0ZUNhcGFiaWxpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFiaWxpdHkgPSBcImVrczpEZWxldGVDYXBhYmlsaXR5XCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVDZXJ0aWZpY2F0ZUF1dGhvcml0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VydGlmaWNhdGVBdXRob3JpdHkgPSBcImVrczpEZWxldGVDZXJ0aWZpY2F0ZUF1dGhvcml0eVwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2x1c3RlciA9IFwiZWtzOkRlbGV0ZUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiA9XG5cdFx0XCJla3M6RGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRlbGV0ZUZhcmdhdGVQcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGYXJnYXRlUHJvZmlsZSA9IFwiZWtzOkRlbGV0ZUZhcmdhdGVQcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpEZWxldGVOb2RlZ3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU5vZGVncm91cCA9IFwiZWtzOkRlbGV0ZU5vZGVncm91cFwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiA9XG5cdFx0XCJla3M6RGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGVyZWdpc3RlckNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlcmVnaXN0ZXJDbHVzdGVyID0gXCJla3M6RGVyZWdpc3RlckNsdXN0ZXJcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVBY2Nlc3NFbnRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2Nlc3NFbnRyeSA9IFwiZWtzOkRlc2NyaWJlQWNjZXNzRW50cnlcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVBZGRvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZGRvbiA9IFwiZWtzOkRlc2NyaWJlQWRkb25cIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uID0gXCJla3M6RGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVBZGRvblZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFkZG9uVmVyc2lvbnMgPSBcImVrczpEZXNjcmliZUFkZG9uVmVyc2lvbnNcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVDYXBhYmlsaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNhcGFiaWxpdHkgPSBcImVrczpEZXNjcmliZUNhcGFiaWxpdHlcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVDZXJ0aWZpY2F0ZUF1dGhvcml0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDZXJ0aWZpY2F0ZUF1dGhvcml0eSA9XG5cdFx0XCJla3M6RGVzY3JpYmVDZXJ0aWZpY2F0ZUF1dGhvcml0eVwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2x1c3RlciA9IFwiZWtzOkRlc2NyaWJlQ2x1c3RlclwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUNsdXN0ZXJWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMgPSBcImVrczpEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1wiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uID1cblx0XHRcImVrczpEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZWtzOkRlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUgPSBcImVrczpEZXNjcmliZUZhcmdhdGVQcm9maWxlXCI7XG5cdC8qKiBbUmVhZF0gZWtzOkRlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnID1cblx0XHRcImVrczpEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVJbnNpZ2h0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUluc2lnaHQgPSBcImVrczpEZXNjcmliZUluc2lnaHRcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2ggKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSW5zaWdodHNSZWZyZXNoID0gXCJla3M6RGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2hcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVOb2RlZ3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTm9kZWdyb3VwID0gXCJla3M6RGVzY3JpYmVOb2RlZ3JvdXBcIjtcblx0LyoqIFtSZWFkXSBla3M6RGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb24gPVxuXHRcdFwiZWtzOkRlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvblwiO1xuXHQvKiogW1JlYWRdIGVrczpEZXNjcmliZVVwZGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVVcGRhdGUgPSBcImVrczpEZXNjcmliZVVwZGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBla3M6RGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3kgPSBcImVrczpEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gZWtzOkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgPVxuXHRcdFwiZWtzOkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWdcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFjY2Vzc0VudHJpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBY2Nlc3NFbnRyaWVzID0gXCJla3M6TGlzdEFjY2Vzc0VudHJpZXNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFjY2Vzc1BvbGljaWVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWNjZXNzUG9saWNpZXMgPSBcImVrczpMaXN0QWNjZXNzUG9saWNpZXNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFkZG9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFkZG9ucyA9IFwiZWtzOkxpc3RBZGRvbnNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyA9XG5cdFx0XCJla3M6TGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0Q2FwYWJpbGl0aWVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2FwYWJpbGl0aWVzID0gXCJla3M6TGlzdENhcGFiaWxpdGllc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0Q2VydGlmaWNhdGVBdXRob3JpdGllcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENlcnRpZmljYXRlQXV0aG9yaXRpZXMgPSBcImVrczpMaXN0Q2VydGlmaWNhdGVBdXRob3JpdGllc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0Q2x1c3RlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbHVzdGVycyA9IFwiZWtzOkxpc3RDbHVzdGVyc1wiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0RGFzaGJvYXJkRGF0YSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhc2hib2FyZERhdGEgPSBcImVrczpMaXN0RGFzaGJvYXJkRGF0YVwiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0RGFzaGJvYXJkUmVzb3VyY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGFzaGJvYXJkUmVzb3VyY2VzID0gXCJla3M6TGlzdERhc2hib2FyZFJlc291cmNlc1wiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zID1cblx0XHRcImVrczpMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZWtzOkxpc3RGYXJnYXRlUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGYXJnYXRlUHJvZmlsZXMgPSBcImVrczpMaXN0RmFyZ2F0ZVByb2ZpbGVzXCI7XG5cdC8qKiBbTGlzdF0gZWtzOkxpc3RJZGVudGl0eVByb3ZpZGVyQ29uZmlncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzID1cblx0XHRcImVrczpMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3NcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdEluc2lnaHRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5zaWdodHMgPSBcImVrczpMaXN0SW5zaWdodHNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdE5vZGVncm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3ROb2RlZ3JvdXBzID0gXCJla3M6TGlzdE5vZGVncm91cHNcIjtcblx0LyoqIFtMaXN0XSBla3M6TGlzdFBvZElkZW50aXR5QXNzb2NpYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMgPVxuXHRcdFwiZWtzOkxpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGVrczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJla3M6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGVrczpMaXN0VXBkYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFVwZGF0ZXMgPSBcImVrczpMaXN0VXBkYXRlc1wiO1xuXHQvKiogW1dyaXRlXSBla3M6TXV0YXRlVmlhS3ViZXJuZXRlc0FwaSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTXV0YXRlVmlhS3ViZXJuZXRlc0FwaSA9IFwiZWtzOk11dGF0ZVZpYUt1YmVybmV0ZXNBcGlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlJlZ2lzdGVyQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJDbHVzdGVyID0gXCJla3M6UmVnaXN0ZXJDbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpTdGFydEluc2lnaHRzUmVmcmVzaCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbnNpZ2h0c1JlZnJlc2ggPSBcImVrczpTdGFydEluc2lnaHRzUmVmcmVzaFwiO1xuXHQvKiogW1RhZ2dpbmddIGVrczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImVrczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGVrczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJla3M6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlQWNjZXNzRW50cnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY2Vzc0VudHJ5ID0gXCJla3M6VXBkYXRlQWNjZXNzRW50cnlcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZUFkZG9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZGRvbiA9IFwiZWtzOlVwZGF0ZUFkZG9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVDYXBhYmlsaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYXBhYmlsaXR5ID0gXCJla3M6VXBkYXRlQ2FwYWJpbGl0eVwiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlQ2x1c3RlckNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlckNvbmZpZyA9IFwiZWtzOlVwZGF0ZUNsdXN0ZXJDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZUNsdXN0ZXJWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbHVzdGVyVmVyc2lvbiA9IFwiZWtzOlVwZGF0ZUNsdXN0ZXJWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gPVxuXHRcdFwiZWtzOlVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGVrczpVcGRhdGVOb2RlZ3JvdXBDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU5vZGVncm91cENvbmZpZyA9IFwiZWtzOlVwZGF0ZU5vZGVncm91cENvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBla3M6VXBkYXRlTm9kZWdyb3VwVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTm9kZWdyb3VwVmVyc2lvbiA9IFwiZWtzOlVwZGF0ZU5vZGVncm91cFZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZWtzOlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gPVxuXHRcdFwiZWtzOlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25cIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRFS1NBY3Rpb25zLkFjY2Vzc0t1YmVybmV0ZXNBcGksXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUFjY2Vzc0VudHJ5LFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVBZGRvbixcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVBZGRvblZlcnNpb25zLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVDYXBhYmlsaXR5LFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVDZXJ0aWZpY2F0ZUF1dGhvcml0eSxcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlQ2x1c3Rlcixcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlQ2x1c3RlclZlcnNpb25zLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbixcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUsXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWcsXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUluc2lnaHQsXG5cdFx0RUtTQWN0aW9ucy5EZXNjcmliZUluc2lnaHRzUmVmcmVzaCxcblx0XHRFS1NBY3Rpb25zLkRlc2NyaWJlTm9kZWdyb3VwLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uLFxuXHRcdEVLU0FjdGlvbnMuRGVzY3JpYmVVcGRhdGUsXG5cdFx0RUtTQWN0aW9ucy5MaXN0RGFzaGJvYXJkRGF0YSxcblx0XHRFS1NBY3Rpb25zLkxpc3REYXNoYm9hcmRSZXNvdXJjZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEVLU0FjdGlvbnMuQWN0aXZhdGVDZXJ0aWZpY2F0ZUF1dGhvcml0eSxcblx0XHRFS1NBY3Rpb25zLkFzc29jaWF0ZUFjY2Vzc1BvbGljeSxcblx0XHRFS1NBY3Rpb25zLkFzc29jaWF0ZUVuY3J5cHRpb25Db25maWcsXG5cdFx0RUtTQWN0aW9ucy5Bc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnLFxuXHRcdEVLU0FjdGlvbnMuQ2FuY2VsVXBkYXRlLFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlQWNjZXNzRW50cnksXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVBZGRvbixcblx0XHRFS1NBY3Rpb25zLkNyZWF0ZUNhcGFiaWxpdHksXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVDZXJ0aWZpY2F0ZUF1dGhvcml0eSxcblx0XHRFS1NBY3Rpb25zLkNyZWF0ZUNsdXN0ZXIsXG5cdFx0RUtTQWN0aW9ucy5DcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbixcblx0XHRFS1NBY3Rpb25zLkNyZWF0ZUZhcmdhdGVQcm9maWxlLFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlTm9kZWdyb3VwLFxuXHRcdEVLU0FjdGlvbnMuQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbixcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZUFjY2Vzc0VudHJ5LFxuXHRcdEVLU0FjdGlvbnMuRGVsZXRlQWRkb24sXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVDYXBhYmlsaXR5LFxuXHRcdEVLU0FjdGlvbnMuRGVsZXRlQ2VydGlmaWNhdGVBdXRob3JpdHksXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVDbHVzdGVyLFxuXHRcdEVLU0FjdGlvbnMuRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24sXG5cdFx0RUtTQWN0aW9ucy5EZWxldGVGYXJnYXRlUHJvZmlsZSxcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZU5vZGVncm91cCxcblx0XHRFS1NBY3Rpb25zLkRlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24sXG5cdFx0RUtTQWN0aW9ucy5EZXJlZ2lzdGVyQ2x1c3Rlcixcblx0XHRFS1NBY3Rpb25zLkRpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSxcblx0XHRFS1NBY3Rpb25zLkRpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcsXG5cdFx0RUtTQWN0aW9ucy5NdXRhdGVWaWFLdWJlcm5ldGVzQXBpLFxuXHRcdEVLU0FjdGlvbnMuUmVnaXN0ZXJDbHVzdGVyLFxuXHRcdEVLU0FjdGlvbnMuU3RhcnRJbnNpZ2h0c1JlZnJlc2gsXG5cdFx0RUtTQWN0aW9ucy5VcGRhdGVBY2Nlc3NFbnRyeSxcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUFkZG9uLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlQ2FwYWJpbGl0eSxcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUNsdXN0ZXJDb25maWcsXG5cdFx0RUtTQWN0aW9ucy5VcGRhdGVDbHVzdGVyVmVyc2lvbixcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlTm9kZWdyb3VwQ29uZmlnLFxuXHRcdEVLU0FjdGlvbnMuVXBkYXRlTm9kZWdyb3VwVmVyc2lvbixcblx0XHRFS1NBY3Rpb25zLlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEVLU0FjdGlvbnMuTGlzdEFjY2Vzc0VudHJpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0QWNjZXNzUG9saWNpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0QWRkb25zLFxuXHRcdEVLU0FjdGlvbnMuTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcyxcblx0XHRFS1NBY3Rpb25zLkxpc3RDYXBhYmlsaXRpZXMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0Q2VydGlmaWNhdGVBdXRob3JpdGllcyxcblx0XHRFS1NBY3Rpb25zLkxpc3RDbHVzdGVycyxcblx0XHRFS1NBY3Rpb25zLkxpc3RFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbnMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0RmFyZ2F0ZVByb2ZpbGVzLFxuXHRcdEVLU0FjdGlvbnMuTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzLFxuXHRcdEVLU0FjdGlvbnMuTGlzdEluc2lnaHRzLFxuXHRcdEVLU0FjdGlvbnMuTGlzdE5vZGVncm91cHMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMsXG5cdFx0RUtTQWN0aW9ucy5MaXN0VXBkYXRlcyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RUtTQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRFS1NBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhY2Nlc3MtZW50cnkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0FjY2Vzc0VudHJ5QXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElhbUlkZW50aXR5VHlwZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaWFtSWRlbnRpdHlUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWFtSWRlbnRpdHlBY2NvdW50SUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlhbUlkZW50aXR5QWNjb3VudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWFtSWRlbnRpdHlOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpYW1JZGVudGl0eU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYWNjZXNzLWVudHJ5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NBY2Nlc3NFbnRyeUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElhbUlkZW50aXR5VHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlhbUlkZW50aXR5VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIElhbUlkZW50aXR5QWNjb3VudElEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWFtSWRlbnRpdHlBY2NvdW50SWQ6IHN0cmluZztcblx0LyoqIFRoZSBJYW1JZGVudGl0eU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpYW1JZGVudGl0eU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWNjZXNzLXBvbGljeSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTQWNjZXNzUG9saWN5QXJuUHJvcHMge1xuXHQvKiogVGhlIEFjY2Vzc1BvbGljeU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFjY2Vzc1BvbGljeU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhY2Nlc3MtcG9saWN5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NBY2Nlc3NQb2xpY3lBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFjY2Vzc1BvbGljeU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhY2Nlc3NQb2xpY3lOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhZGRvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTQWRkb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQWRkb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhZGRvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYWRkb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0FkZG9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQWRkb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYWRkb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNhcGFiaWxpdHkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0NhcGFiaWxpdHlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FwYWJpbGl0eVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhcGFiaWxpdHlUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FwYWJpbGl0eU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhcGFiaWxpdHlOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNhcGFiaWxpdHkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0NhcGFiaWxpdHlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDYXBhYmlsaXR5VHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhcGFiaWxpdHlUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FwYWJpbGl0eU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXBhYmlsaXR5TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NDbHVzdGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNsdXN0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0NsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhc2hib2FyZCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTRGFzaGJvYXJkQXJuUHJvcHMge1xuXHQvKiogVGhlIERhc2hib2FyZE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXNoYm9hcmQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0Rhc2hib2FyZEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGFzaGJvYXJkTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVLU0VLU0FueXdoZXJlU3Vic2NyaXB0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGZhcmdhdGVwcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NGYXJnYXRlcHJvZmlsZUFyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBGYXJnYXRlUHJvZmlsZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZhcmdhdGVQcm9maWxlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBmYXJnYXRlcHJvZmlsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTRmFyZ2F0ZXByb2ZpbGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBGYXJnYXRlUHJvZmlsZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmYXJnYXRlUHJvZmlsZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FyblByb3BzIHtcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJZGVudGl0eVByb3ZpZGVyVHlwZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaWRlbnRpdHlQcm92aWRlclR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBJZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2x1c3Rlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkZW50aXR5UHJvdmlkZXJUeXBlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWRlbnRpdHlQcm92aWRlclR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBJZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlkZW50aXR5UHJvdmlkZXJDb25maWdOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG5vZGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRUtTTm9kZWdyb3VwQXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIE5vZGVncm91cE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IG5vZGVncm91cE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbm9kZWdyb3VwIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NOb2RlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBOb2RlZ3JvdXBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbm9kZWdyb3VwTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBwb2RpZGVudGl0eWFzc29jaWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENsdXN0ZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBwb2RpZGVudGl0eWFzc29jaWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFS1NQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbHVzdGVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuY29uc3QgQWNjZXNzRW50cnlBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YWNjZXNzLWVudHJ5XFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKylcXC8oPzxpYW1JZGVudGl0eVR5cGU+W146Lz9dKylcXC8oPzxpYW1JZGVudGl0eUFjY291bnRJZD5bXjovP10rKVxcLyg/PGlhbUlkZW50aXR5TmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IEFjY2Vzc1BvbGljeUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6OmF3czpjbHVzdGVyLWFjY2Vzcy1wb2xpY3lcXC8oPzxhY2Nlc3NQb2xpY3lOYW1lPlteOi8/XSspJC87XG5jb25zdCBBZGRvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphZGRvblxcLyg/PGNsdXN0ZXJOYW1lPlteOi8/XSspXFwvKD88YWRkb25OYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgQ2FwYWJpbGl0eUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjYXBhYmlsaXR5XFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKylcXC8oPzxjYXBhYmlsaXR5VHlwZT5bXjovP10rKVxcLyg/PGNhcGFiaWxpdHlOYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgQ2x1c3RlckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjbHVzdGVyXFwvKD88Y2x1c3Rlck5hbWU+W146Lz9dKykkLztcbmNvbnN0IERhc2hib2FyZEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXNoYm9hcmRcXC8oPzxkYXNoYm9hcmROYW1lPlteOi8/XSspJC87XG5jb25zdCBFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgRmFyZ2F0ZXByb2ZpbGVBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZmFyZ2F0ZXByb2ZpbGVcXC8oPzxjbHVzdGVyTmFtZT5bXjovP10rKVxcLyg/PGZhcmdhdGVQcm9maWxlTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IElkZW50aXR5cHJvdmlkZXJjb25maWdBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWtzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6aWRlbnRpdHlwcm92aWRlcmNvbmZpZ1xcLyg/PGNsdXN0ZXJOYW1lPlteOi8/XSspXFwvKD88aWRlbnRpdHlQcm92aWRlclR5cGU+W146Lz9dKylcXC8oPzxpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IE5vZGVncm91cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpla3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpub2RlZ3JvdXBcXC8oPzxjbHVzdGVyTmFtZT5bXjovP10rKVxcLyg/PG5vZGVncm91cE5hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5jb25zdCBQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmVrczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnBvZGlkZW50aXR5YXNzb2NpYXRpb25cXC8oPzxjbHVzdGVyTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBla3MgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgRUtTUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhY2Nlc3MtZW50cnkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWNjZXNzRW50cnkocHJvcHM6IEVLU0FjY2Vzc0VudHJ5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphY2Nlc3MtZW50cnkvJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5pYW1JZGVudGl0eVR5cGV9LyR7cHJvcHMuaWFtSWRlbnRpdHlBY2NvdW50SWR9LyR7cHJvcHMuaWFtSWRlbnRpdHlOYW1lfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFjY2Vzcy1lbnRyeSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWNjZXNzRW50cnlBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWNjZXNzRW50cnlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYWNjZXNzLWVudHJ5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFjY2Vzc0VudHJ5QXJuKGFybjogc3RyaW5nKTogRUtTQWNjZXNzRW50cnlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFjY2Vzc0VudHJ5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFjY2Vzcy1lbnRyeSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjbHVzdGVyTmFtZTogbWF0Y2guZ3JvdXBzIS5jbHVzdGVyTmFtZSxcblx0XHRcdGlhbUlkZW50aXR5VHlwZTogbWF0Y2guZ3JvdXBzIS5pYW1JZGVudGl0eVR5cGUsXG5cdFx0XHRpYW1JZGVudGl0eUFjY291bnRJZDogbWF0Y2guZ3JvdXBzIS5pYW1JZGVudGl0eUFjY291bnRJZCxcblx0XHRcdGlhbUlkZW50aXR5TmFtZTogbWF0Y2guZ3JvdXBzIS5pYW1JZGVudGl0eU5hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYWNjZXNzLXBvbGljeSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhY2Nlc3NQb2xpY3kocHJvcHM6IEVLU0FjY2Vzc1BvbGljeUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6OmF3czpjbHVzdGVyLWFjY2Vzcy1wb2xpY3kvJHtwcm9wcy5hY2Nlc3NQb2xpY3lOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhY2Nlc3MtcG9saWN5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBY2Nlc3NQb2xpY3lBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWNjZXNzUG9saWN5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFjY2Vzcy1wb2xpY3kgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWNjZXNzUG9saWN5QXJuKGFybjogc3RyaW5nKTogRUtTQWNjZXNzUG9saWN5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBY2Nlc3NQb2xpY3lBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWNjZXNzLXBvbGljeSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhY2Nlc3NQb2xpY3lOYW1lOiBtYXRjaC5ncm91cHMhLmFjY2Vzc1BvbGljeU5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYWRkb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWRkb24ocHJvcHM6IEVLU0FkZG9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphZGRvbi8ke3Byb3BzLmNsdXN0ZXJOYW1lfS8ke3Byb3BzLmFkZG9uTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhZGRvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWRkb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWRkb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYWRkb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWRkb25Bcm4oYXJuOiBzdHJpbmcpOiBFS1NBZGRvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWRkb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWRkb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHRhZGRvbk5hbWU6IG1hdGNoLmdyb3VwcyEuYWRkb25OYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNhcGFiaWxpdHkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2FwYWJpbGl0eShwcm9wczogRUtTQ2FwYWJpbGl0eUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y2FwYWJpbGl0eS8ke3Byb3BzLmNsdXN0ZXJOYW1lfS8ke3Byb3BzLmNhcGFiaWxpdHlUeXBlfS8ke3Byb3BzLmNhcGFiaWxpdHlOYW1lfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNhcGFiaWxpdHkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENhcGFiaWxpdHlBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2FwYWJpbGl0eUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjYXBhYmlsaXR5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNhcGFiaWxpdHlBcm4oYXJuOiBzdHJpbmcpOiBFS1NDYXBhYmlsaXR5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDYXBhYmlsaXR5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNhcGFiaWxpdHkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHRjYXBhYmlsaXR5VHlwZTogbWF0Y2guZ3JvdXBzIS5jYXBhYmlsaXR5VHlwZSxcblx0XHRcdGNhcGFiaWxpdHlOYW1lOiBtYXRjaC5ncm91cHMhLmNhcGFiaWxpdHlOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNsdXN0ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2x1c3Rlcihwcm9wczogRUtTQ2x1c3RlckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y2x1c3Rlci8ke3Byb3BzLmNsdXN0ZXJOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDbHVzdGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENsdXN0ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2x1c3RlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDbHVzdGVyQXJuKGFybjogc3RyaW5nKTogRUtTQ2x1c3RlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2x1c3RlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjbHVzdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhc2hib2FyZCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXNoYm9hcmQocHJvcHM6IEVLU0Rhc2hib2FyZEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpla3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGFzaGJvYXJkLyR7cHJvcHMuZGFzaGJvYXJkTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGFzaGJvYXJkIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXNoYm9hcmRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGFzaGJvYXJkQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhc2hib2FyZCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXNoYm9hcmRBcm4oYXJuOiBzdHJpbmcpOiBFS1NEYXNoYm9hcmRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhc2hib2FyZEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXNoYm9hcmQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGFzaGJvYXJkTmFtZTogbWF0Y2guZ3JvdXBzIS5kYXNoYm9hcmROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZWtzQW55d2hlcmVTdWJzY3JpcHRpb24oXG5cdFx0cHJvcHM6IEVLU0VLU0FueXdoZXJlU3Vic2NyaXB0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVLU0FueXdoZXJlU3Vic2NyaXB0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBFS1NFS1NBbnl3aGVyZVN1YnNjcmlwdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRUtTQW55d2hlcmVTdWJzY3JpcHRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZWtzLWFueXdoZXJlLXN1YnNjcmlwdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZmFyZ2F0ZXByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZmFyZ2F0ZXByb2ZpbGUocHJvcHM6IEVLU0ZhcmdhdGVwcm9maWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpmYXJnYXRlcHJvZmlsZS8ke3Byb3BzLmNsdXN0ZXJOYW1lfS8ke3Byb3BzLmZhcmdhdGVQcm9maWxlTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBmYXJnYXRlcHJvZmlsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRmFyZ2F0ZXByb2ZpbGVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRmFyZ2F0ZXByb2ZpbGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZmFyZ2F0ZXByb2ZpbGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRmFyZ2F0ZXByb2ZpbGVBcm4oYXJuOiBzdHJpbmcpOiBFS1NGYXJnYXRlcHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRmFyZ2F0ZXByb2ZpbGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmFyZ2F0ZXByb2ZpbGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHRmYXJnYXRlUHJvZmlsZU5hbWU6IG1hdGNoLmdyb3VwcyEuZmFyZ2F0ZVByb2ZpbGVOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGlkZW50aXR5cHJvdmlkZXJjb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyhcblx0XHRwcm9wczogRUtTSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVrczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTppZGVudGl0eXByb3ZpZGVyY29uZmlnLyR7cHJvcHMuY2x1c3Rlck5hbWV9LyR7cHJvcHMuaWRlbnRpdHlQcm92aWRlclR5cGV9LyR7cHJvcHMuaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJZGVudGl0eXByb3ZpZGVyY29uZmlnQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGlkZW50aXR5cHJvdmlkZXJjb25maWcgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRUtTSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSWRlbnRpdHlwcm92aWRlcmNvbmZpZ0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpZGVudGl0eXByb3ZpZGVyY29uZmlnIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsdXN0ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNsdXN0ZXJOYW1lLFxuXHRcdFx0aWRlbnRpdHlQcm92aWRlclR5cGU6IG1hdGNoLmdyb3VwcyEuaWRlbnRpdHlQcm92aWRlclR5cGUsXG5cdFx0XHRpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZTogbWF0Y2guZ3JvdXBzIS5pZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZSxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBub2RlZ3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbm9kZWdyb3VwKHByb3BzOiBFS1NOb2RlZ3JvdXBBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Om5vZGVncm91cC8ke3Byb3BzLmNsdXN0ZXJOYW1lfS8ke3Byb3BzLm5vZGVncm91cE5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbm9kZWdyb3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWROb2RlZ3JvdXBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTm9kZWdyb3VwQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG5vZGVncm91cCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VOb2RlZ3JvdXBBcm4oYXJuOiBzdHJpbmcpOiBFS1NOb2RlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE5vZGVncm91cEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBub2RlZ3JvdXAgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHRub2RlZ3JvdXBOYW1lOiBtYXRjaC5ncm91cHMhLm5vZGVncm91cE5hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBwb2RpZGVudGl0eWFzc29jaWF0aW9uKFxuXHRcdHByb3BzOiBFS1NQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWtzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnBvZGlkZW50aXR5YXNzb2NpYXRpb24vJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBwb2RpZGVudGl0eWFzc29jaWF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFBvZGlkZW50aXR5YXNzb2NpYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBFS1NQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBQb2RpZGVudGl0eWFzc29jaWF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvZGlkZW50aXR5YXNzb2NpYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2x1c3Rlck5hbWU6IG1hdGNoLmdyb3VwcyEuY2x1c3Rlck5hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3IgZWtzLlxuICovXG5leHBvcnQgY2xhc3MgRUtTT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFjdGl2YXRlQ2VydGlmaWNhdGVBdXRob3JpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBY3RpdmF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5OiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpBY3RpdmF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZUFjY2Vzc1BvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUFjY2Vzc1BvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6QXNzb2NpYXRlQWNjZXNzUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZUVuY3J5cHRpb25Db25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpBc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsVXBkYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsVXBkYXRlOiBzdHJpbmdbXSA9IFtcImVrczpDYW5jZWxVcGRhdGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUFjY2Vzc0VudHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWNjZXNzRW50cnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUFjY2Vzc0VudHJ5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBZGRvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFkZG9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpDcmVhdGVBZGRvblwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ2FwYWJpbGl0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhcGFiaWxpdHk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUNhcGFiaWxpdHlcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2VydGlmaWNhdGVBdXRob3JpdHk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbHVzdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpDcmVhdGVBY2Nlc3NFbnRyeVwiLFxuXHRcdFwiZWtzOkNyZWF0ZUNsdXN0ZXJcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkNyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRmFyZ2F0ZVByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGYXJnYXRlUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlRmFyZ2F0ZVByb2ZpbGVcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU5vZGVncm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU5vZGVncm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlTm9kZWdyb3VwXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImVrczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvblwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJla3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQWNjZXNzRW50cnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVBY2Nlc3NFbnRyeTogc3RyaW5nW10gPSBbXCJla3M6RGVsZXRlQWNjZXNzRW50cnlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUFkZG9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQWRkb246IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZUFkZG9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDYXBhYmlsaXR5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2FwYWJpbGl0eTogc3RyaW5nW10gPSBbXCJla3M6RGVsZXRlQ2FwYWJpbGl0eVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2VydGlmaWNhdGVBdXRob3JpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDZXJ0aWZpY2F0ZUF1dGhvcml0eTogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVsZXRlQ2VydGlmaWNhdGVBdXRob3JpdHlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNsdXN0ZXI6IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZUNsdXN0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZhcmdhdGVQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRmFyZ2F0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZUZhcmdhdGVQcm9maWxlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVOb2RlZ3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVOb2RlZ3JvdXA6IHN0cmluZ1tdID0gW1wiZWtzOkRlbGV0ZU5vZGVncm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVyZWdpc3RlckNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyQ2x1c3Rlcjogc3RyaW5nW10gPSBbXCJla3M6RGVyZWdpc3RlckNsdXN0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQWNjZXNzRW50cnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY2Vzc0VudHJ5OiBzdHJpbmdbXSA9IFtcImVrczpEZXNjcmliZUFjY2Vzc0VudHJ5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUFkZG9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZGRvbjogc3RyaW5nW10gPSBbXCJla3M6RGVzY3JpYmVBZGRvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBZGRvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZGRvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZXNjcmliZUFkZG9uVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDYXBhYmlsaXR5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDYXBhYmlsaXR5OiBzdHJpbmdbXSA9IFtcImVrczpEZXNjcmliZUNhcGFiaWxpdHlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2VydGlmaWNhdGVBdXRob3JpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNlcnRpZmljYXRlQXV0aG9yaXR5OiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZXNjcmliZUNlcnRpZmljYXRlQXV0aG9yaXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2x1c3Rlcjogc3RyaW5nW10gPSBbXCJla3M6RGVzY3JpYmVDbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNsdXN0ZXJWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2x1c3RlclZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUZhcmdhdGVQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVGYXJnYXRlUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVGYXJnYXRlUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUluc2lnaHQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUluc2lnaHQ6IHN0cmluZ1tdID0gW1wiZWtzOkRlc2NyaWJlSW5zaWdodFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2ggQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUluc2lnaHRzUmVmcmVzaDogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2hcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVOb2RlZ3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU5vZGVncm91cDogc3RyaW5nW10gPSBbXCJla3M6RGVzY3JpYmVOb2RlZ3JvdXBcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlVXBkYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVVcGRhdGU6IHN0cmluZ1tdID0gW1wiZWtzOkRlc2NyaWJlVXBkYXRlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkRpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNhc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6RGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWNjZXNzRW50cmllcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBY2Nlc3NFbnRyaWVzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0QWNjZXNzRW50cmllc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEFjY2Vzc1BvbGljaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFjY2Vzc1BvbGljaWVzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0QWNjZXNzUG9saWNpZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBZGRvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWRkb25zOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0QWRkb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QXNzb2NpYXRlZEFjY2Vzc1BvbGljaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6TGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q2FwYWJpbGl0aWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhcGFiaWxpdGllczogc3RyaW5nW10gPSBbXCJla3M6TGlzdENhcGFiaWxpdGllc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENlcnRpZmljYXRlQXV0aG9yaXRpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2VydGlmaWNhdGVBdXRob3JpdGllczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6TGlzdENlcnRpZmljYXRlQXV0aG9yaXRpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENsdXN0ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENsdXN0ZXJzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0Q2x1c3RlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGYXJnYXRlUHJvZmlsZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RmFyZ2F0ZVByb2ZpbGVzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0RmFyZ2F0ZVByb2ZpbGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOkxpc3RJZGVudGl0eVByb3ZpZGVyQ29uZmlnc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW5zaWdodHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5zaWdodHM6IHN0cmluZ1tdID0gW1wiZWtzOkxpc3RJbnNpZ2h0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE5vZGVncm91cHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Tm9kZWdyb3Vwczogc3RyaW5nW10gPSBbXCJla3M6TGlzdE5vZGVncm91cHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6TGlzdFBvZElkZW50aXR5QXNzb2NpYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0VGFnc0ZvclJlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VXBkYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RVcGRhdGVzOiBzdHJpbmdbXSA9IFtcImVrczpMaXN0VXBkYXRlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJDbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJDbHVzdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlJlZ2lzdGVyQ2x1c3RlclwiLFxuXHRcdFwiZWtzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0SW5zaWdodHNSZWZyZXNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbnNpZ2h0c1JlZnJlc2g6IHN0cmluZ1tdID0gW1wiZWtzOlN0YXJ0SW5zaWdodHNSZWZyZXNoXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImVrczpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZWtzOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFjY2Vzc0VudHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjZXNzRW50cnk6IHN0cmluZ1tdID0gW1wiZWtzOlVwZGF0ZUFjY2Vzc0VudHJ5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBZGRvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFkZG9uOiBzdHJpbmdbXSA9IFtcImlhbTpQYXNzUm9sZVwiLCBcImVrczpVcGRhdGVBZGRvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2FwYWJpbGl0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNhcGFiaWxpdHk6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJla3M6VXBkYXRlQ2FwYWJpbGl0eVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDbHVzdGVyQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2x1c3RlckNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6Q3JlYXRlQWNjZXNzRW50cnlcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlVwZGF0ZUNsdXN0ZXJDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2x1c3RlclZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbHVzdGVyVmVyc2lvbjogc3RyaW5nW10gPSBbXCJla3M6VXBkYXRlQ2x1c3RlclZlcnNpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOlVwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU5vZGVncm91cENvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU5vZGVncm91cENvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6VXBkYXRlTm9kZWdyb3VwQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU5vZGVncm91cFZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVOb2RlZ3JvdXBWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczpVcGRhdGVOb2RlZ3JvdXBWZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZWtzOlVwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGVrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVLU0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlQWNjZXNzUG9saWN5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUFjY2Vzc1BvbGljeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOmFjY2Vzc1Njb3BlXCIsXG5cdFx0XCJla3M6bmFtZXNwYWNlc1wiLFxuXHRcdFwiZWtzOnBvbGljeUFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6ZW5jcnlwdGlvbkNvbmZpZ1Byb3ZpZGVyS2V5QXJuc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJla3M6Y2xpZW50SWRcIixcblx0XHRcImVrczppc3N1ZXJVcmxcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUFjY2Vzc0VudHJ5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFjY2Vzc0VudHJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJla3M6YWNjZXNzRW50cnlUeXBlXCIsXG5cdFx0XCJla3M6a3ViZXJuZXRlc0dyb3Vwc1wiLFxuXHRcdFwiZWtzOnByaW5jaXBhbEFyblwiLFxuXHRcdFwiZWtzOnVzZXJuYW1lXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBZGRvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBZGRvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2FwYWJpbGl0eSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDYXBhYmlsaXR5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDbHVzdGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsdXN0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImVrczphdXRoZW50aWNhdGlvbk1vZGVcIixcblx0XHRcImVrczpibG9ja1N0b3JhZ2VFbmFibGVkXCIsXG5cdFx0XCJla3M6Ym9vdHN0cmFwQ2x1c3RlckNyZWF0b3JBZG1pblBlcm1pc3Npb25zXCIsXG5cdFx0XCJla3M6Ym9vdHN0cmFwU2VsZk1hbmFnZWRBZGRvbnNcIixcblx0XHRcImVrczpjb21wdXRlQ29uZmlnRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmNvbnRyb2xQbGFuZUVncmVzc01vZGVcIixcblx0XHRcImVrczpjb250cm9sUGxhbmVTY2FsaW5nVGllclwiLFxuXHRcdFwiZWtzOmRlbGV0aW9uUHJvdGVjdGlvblwiLFxuXHRcdFwiZWtzOmVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnNcIixcblx0XHRcImVrczplbmRwb2ludFByaXZhdGVBY2Nlc3NcIixcblx0XHRcImVrczplbmRwb2ludFB1YmxpY0FjY2Vzc1wiLFxuXHRcdFwiZWtzOmt1YmVBcGlTZXJ2ZXJDb25maWdcIixcblx0XHRcImVrczprdWJlQ29udHJvbGxlck1hbmFnZXJDb25maWdcIixcblx0XHRcImVrczprdWJlU2NoZWR1bGVyQ29uZmlnXCIsXG5cdFx0XCJla3M6a3ViZXJuZXRlc1ZlcnNpb25cIixcblx0XHRcImVrczpsb2dnaW5nVHlwZS8ke3R5cGV9XCIsXG5cdFx0XCJla3M6c3VwcG9ydFR5cGVcIixcblx0XHRcImVrczp6b25hbFNoaWZ0RW5hYmxlZFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUZhcmdhdGVQcm9maWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZhcmdhdGVQcm9maWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVOb2RlZ3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTm9kZWdyb3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIERpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImVrczphY2Nlc3NTY29wZVwiLFxuXHRcdFwiZWtzOm5hbWVzcGFjZXNcIixcblx0XHRcImVrczpwb2xpY3lBcm5cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlZ2lzdGVyQ2x1c3RlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlckNsdXN0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQ2x1c3RlckNvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbHVzdGVyQ29uZmlnQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJla3M6YXV0aGVudGljYXRpb25Nb2RlXCIsXG5cdFx0XCJla3M6YmxvY2tTdG9yYWdlRW5hYmxlZFwiLFxuXHRcdFwiZWtzOmNvbXB1dGVDb25maWdFbmFibGVkXCIsXG5cdFx0XCJla3M6Y29udHJvbFBsYW5lRWdyZXNzTW9kZVwiLFxuXHRcdFwiZWtzOmNvbnRyb2xQbGFuZVNjYWxpbmdUaWVyXCIsXG5cdFx0XCJla3M6ZGVsZXRpb25Qcm90ZWN0aW9uXCIsXG5cdFx0XCJla3M6ZWxhc3RpY0xvYWRCYWxhbmNpbmdFbmFibGVkXCIsXG5cdFx0XCJla3M6ZW5kcG9pbnRQcml2YXRlQWNjZXNzXCIsXG5cdFx0XCJla3M6ZW5kcG9pbnRQdWJsaWNBY2Nlc3NcIixcblx0XHRcImVrczprdWJlQXBpU2VydmVyQ29uZmlnXCIsXG5cdFx0XCJla3M6a3ViZUNvbnRyb2xsZXJNYW5hZ2VyQ29uZmlnXCIsXG5cdFx0XCJla3M6a3ViZVNjaGVkdWxlckNvbmZpZ1wiLFxuXHRcdFwiZWtzOmxvZ2dpbmdUeXBlLyR7dHlwZX1cIixcblx0XHRcImVrczpzdXBwb3J0VHlwZVwiLFxuXHRcdFwiZWtzOnpvbmFsU2hpZnRFbmFibGVkXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVDbHVzdGVyVmVyc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbHVzdGVyVmVyc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWtzOmt1YmVybmV0ZXNWZXJzaW9uXCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmFjY2Vzc0VudHJ5VHlwZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQUNDRVNTX0VOVFJZX1RZUEUgPSBcImVrczphY2Nlc3NFbnRyeVR5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczphY2Nlc3NTY29wZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQUNDRVNTX1NDT1BFID0gXCJla3M6YWNjZXNzU2NvcGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczphdXRoZW50aWNhdGlvbk1vZGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFVVEhFTlRJQ0FUSU9OX01PREUgPSBcImVrczphdXRoZW50aWNhdGlvbk1vZGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpibG9ja1N0b3JhZ2VFbmFibGVkIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQkxPQ0tfU1RPUkFHRV9FTkFCTEVEID0gXCJla3M6YmxvY2tTdG9yYWdlRW5hYmxlZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9ucyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJPT1RTVFJBUF9DTFVTVEVSX0NSRUFUT1JfQURNSU5fUEVSTUlTU0lPTlMgPVxuXHRcdFwiZWtzOmJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9uc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQk9PVFNUUkFQX1NFTEZfTUFOQUdFRF9BRERPTlMgPVxuXHRcdFwiZWtzOmJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6Y2xpZW50SWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENMSUVOVF9JRCA9IFwiZWtzOmNsaWVudElkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6Y2x1c3Rlck5hbWUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENMVVNURVJfTkFNRSA9IFwiZWtzOmNsdXN0ZXJOYW1lXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6Y29tcHV0ZUNvbmZpZ0VuYWJsZWQgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBDT01QVVRFX0NPTkZJR19FTkFCTEVEID0gXCJla3M6Y29tcHV0ZUNvbmZpZ0VuYWJsZWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpjb250cm9sUGxhbmVFZ3Jlc3NNb2RlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDT05UUk9MX1BMQU5FX0VHUkVTU19NT0RFID0gXCJla3M6Y29udHJvbFBsYW5lRWdyZXNzTW9kZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmNvbnRyb2xQbGFuZVNjYWxpbmdUaWVyIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDT05UUk9MX1BMQU5FX1NDQUxJTkdfVElFUiA9IFwiZWtzOmNvbnRyb2xQbGFuZVNjYWxpbmdUaWVyXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6ZGVsZXRpb25Qcm90ZWN0aW9uIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgREVMRVRJT05fUFJPVEVDVElPTiA9IFwiZWtzOmRlbGV0aW9uUHJvdGVjdGlvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVMQVNUSUNfTE9BRF9CQUxBTkNJTkdfRU5BQkxFRCA9XG5cdFx0XCJla3M6ZWxhc3RpY0xvYWRCYWxhbmNpbmdFbmFibGVkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6ZW5jcnlwdGlvbkNvbmZpZ1Byb3ZpZGVyS2V5QXJucyAoQXJyYXlPZkFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVOQ1JZUFRJT05fQ09ORklHX1BST1ZJREVSX0tFWV9BUk5TID1cblx0XHRcImVrczplbmNyeXB0aW9uQ29uZmlnUHJvdmlkZXJLZXlBcm5zXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6ZW5kcG9pbnRQcml2YXRlQWNjZXNzIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRU5EUE9JTlRfUFJJVkFURV9BQ0NFU1MgPSBcImVrczplbmRwb2ludFByaXZhdGVBY2Nlc3NcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczplbmRwb2ludFB1YmxpY0FjY2VzcyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVORFBPSU5UX1BVQkxJQ19BQ0NFU1MgPSBcImVrczplbmRwb2ludFB1YmxpY0FjY2Vzc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmlzc3VlclVybCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSVNTVUVSX1VSTCA9IFwiZWtzOmlzc3VlclVybFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmt1YmVBcGlTZXJ2ZXJDb25maWcgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBLVUJFX0FQSV9TRVJWRVJfQ09ORklHID0gXCJla3M6a3ViZUFwaVNlcnZlckNvbmZpZ1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOmt1YmVDb250cm9sbGVyTWFuYWdlckNvbmZpZyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEtVQkVfQ09OVFJPTExFUl9NQU5BR0VSX0NPTkZJRyA9XG5cdFx0XCJla3M6a3ViZUNvbnRyb2xsZXJNYW5hZ2VyQ29uZmlnXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6a3ViZVNjaGVkdWxlckNvbmZpZyAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEtVQkVfU0NIRURVTEVSX0NPTkZJRyA9IFwiZWtzOmt1YmVTY2hlZHVsZXJDb25maWdcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczprdWJlcm5ldGVzR3JvdXBzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgS1VCRVJORVRFU19HUk9VUFMgPSBcImVrczprdWJlcm5ldGVzR3JvdXBzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6a3ViZXJuZXRlc1ZlcnNpb24gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEtVQkVSTkVURVNfVkVSU0lPTiA9IFwiZWtzOmt1YmVybmV0ZXNWZXJzaW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBla3M6bG9nZ2luZ1R5cGUvJHt0eXBlfSAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IExPR0dJTkdfVFlQRSA9IFwiZWtzOmxvZ2dpbmdUeXBlLyR7dHlwZX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpuYW1lc3BhY2VzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTkFNRVNQQUNFUyA9IFwiZWtzOm5hbWVzcGFjZXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpwb2xpY3lBcm4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IFBPTElDWV9BUk4gPSBcImVrczpwb2xpY3lBcm5cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpwcmluY2lwYWxBcm4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IFBSSU5DSVBBTF9BUk4gPSBcImVrczpwcmluY2lwYWxBcm5cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczpzdXBwb3J0VHlwZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU1VQUE9SVF9UWVBFID0gXCJla3M6c3VwcG9ydFR5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGVrczp1c2VybmFtZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVVNFUk5BTUUgPSBcImVrczp1c2VybmFtZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZWtzOnpvbmFsU2hpZnRFbmFibGVkIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgWk9OQUxfU0hJRlRfRU5BQkxFRCA9IFwiZWtzOnpvbmFsU2hpZnRFbmFibGVkXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczphY2Nlc3NFbnRyeVR5cGVgLlxuXHQgKi9cblx0c3RhdGljIGFjY2Vzc0VudHJ5VHlwZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmFjY2Vzc0VudHJ5VHlwZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmFjY2Vzc1Njb3BlYC5cblx0ICovXG5cdHN0YXRpYyBhY2Nlc3NTY29wZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImVrczphY2Nlc3NTY29wZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmF1dGhlbnRpY2F0aW9uTW9kZWAuXG5cdCAqL1xuXHRzdGF0aWMgYXV0aGVudGljYXRpb25Nb2RlKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6YXV0aGVudGljYXRpb25Nb2RlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6YmxvY2tTdG9yYWdlRW5hYmxlZGAuXG5cdCAqL1xuXHRzdGF0aWMgYmxvY2tTdG9yYWdlRW5hYmxlZChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmJsb2NrU3RvcmFnZUVuYWJsZWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnNgLlxuXHQgKi9cblx0c3RhdGljIGJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9ucyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9uc1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zYC5cblx0ICovXG5cdHN0YXRpYyBib290c3RyYXBTZWxmTWFuYWdlZEFkZG9ucyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6Y2xpZW50SWRgLlxuXHQgKi9cblx0c3RhdGljIGNsaWVudElkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmNsaWVudElkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6Y2x1c3Rlck5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGNsdXN0ZXJOYW1lKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmNsdXN0ZXJOYW1lXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6Y29tcHV0ZUNvbmZpZ0VuYWJsZWRgLlxuXHQgKi9cblx0c3RhdGljIGNvbXB1dGVDb25maWdFbmFibGVkKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJla3M6Y29tcHV0ZUNvbmZpZ0VuYWJsZWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpjb250cm9sUGxhbmVFZ3Jlc3NNb2RlYC5cblx0ICovXG5cdHN0YXRpYyBjb250cm9sUGxhbmVFZ3Jlc3NNb2RlKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6Y29udHJvbFBsYW5lRWdyZXNzTW9kZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmNvbnRyb2xQbGFuZVNjYWxpbmdUaWVyYC5cblx0ICovXG5cdHN0YXRpYyBjb250cm9sUGxhbmVTY2FsaW5nVGllcihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmNvbnRyb2xQbGFuZVNjYWxpbmdUaWVyXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6ZGVsZXRpb25Qcm90ZWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBkZWxldGlvblByb3RlY3Rpb24oXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczpkZWxldGlvblByb3RlY3Rpb25cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczplbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWRgLlxuXHQgKi9cblx0c3RhdGljIGVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnNgLlxuXHQgKi9cblx0c3RhdGljIGVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOkFybkVxdWFsc1wiOiB7XG5cdFx0XHRcdFwiZWtzOmVuY3J5cHRpb25Db25maWdQcm92aWRlcktleUFybnNcIjogdmFsdWVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczplbmRwb2ludFByaXZhdGVBY2Nlc3NgLlxuXHQgKi9cblx0c3RhdGljIGVuZHBvaW50UHJpdmF0ZUFjY2Vzcyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmVuZHBvaW50UHJpdmF0ZUFjY2Vzc1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmVuZHBvaW50UHVibGljQWNjZXNzYC5cblx0ICovXG5cdHN0YXRpYyBlbmRwb2ludFB1YmxpY0FjY2Vzcyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmVuZHBvaW50UHVibGljQWNjZXNzXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6aXNzdWVyVXJsYC5cblx0ICovXG5cdHN0YXRpYyBpc3N1ZXJVUkwodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6aXNzdWVyVXJsXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6a3ViZUFwaVNlcnZlckNvbmZpZ2AuXG5cdCAqL1xuXHRzdGF0aWMga3ViZUFQSVNlcnZlckNvbmZpZyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmt1YmVBcGlTZXJ2ZXJDb25maWdcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczprdWJlQ29udHJvbGxlck1hbmFnZXJDb25maWdgLlxuXHQgKi9cblx0c3RhdGljIGt1YmVDb250cm9sbGVyTWFuYWdlckNvbmZpZyhcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiZWtzOmt1YmVDb250cm9sbGVyTWFuYWdlckNvbmZpZ1wiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmt1YmVTY2hlZHVsZXJDb25maWdgLlxuXHQgKi9cblx0c3RhdGljIGt1YmVTY2hlZHVsZXJDb25maWcoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczprdWJlU2NoZWR1bGVyQ29uZmlnXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6a3ViZXJuZXRlc0dyb3Vwc2AuXG5cdCAqL1xuXHRzdGF0aWMga3ViZXJuZXRlc0dyb3Vwcyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImVrczprdWJlcm5ldGVzR3JvdXBzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOmt1YmVybmV0ZXNWZXJzaW9uYC5cblx0ICovXG5cdHN0YXRpYyBrdWJlcm5ldGVzVmVyc2lvbihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZWtzOmt1YmVybmV0ZXNWZXJzaW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBla3M6bG9nZ2luZ1R5cGUvJHt0eXBlfWAuXG5cdCAqL1xuXHRzdGF0aWMgbG9nZ2luZ1R5cGUodmFsdWU6IGJvb2xlYW4pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJla3M6bG9nZ2luZ1R5cGUvJHt0eXBlfVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZWtzOm5hbWVzcGFjZXNgLlxuXHQgKi9cblx0c3RhdGljIG5hbWVzcGFjZXMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJla3M6bmFtZXNwYWNlc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpwb2xpY3lBcm5gLlxuXHQgKi9cblx0c3RhdGljIHBvbGljeUFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImVrczpwb2xpY3lBcm5cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpwcmluY2lwYWxBcm5gLlxuXHQgKi9cblx0c3RhdGljIHByaW5jaXBhbEFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImVrczpwcmluY2lwYWxBcm5cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczpzdXBwb3J0VHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgc3VwcG9ydFR5cGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6c3VwcG9ydFR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczp1c2VybmFtZWAuXG5cdCAqL1xuXHRzdGF0aWMgdXNlcm5hbWUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJla3M6dXNlcm5hbWVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGVrczp6b25hbFNoaWZ0RW5hYmxlZGAuXG5cdCAqL1xuXHRzdGF0aWMgem9uYWxTaGlmdEVuYWJsZWQoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImVrczp6b25hbFNoaWZ0RW5hYmxlZFwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
|