@parity/product-sdk-descriptors 0.1.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/LICENSE +201 -0
- package/README.md +78 -0
- package/chains/bulletin/.papi/polkadot-api.json +12 -0
- package/chains/bulletin/generated/dist/bulletin.d.ts +3469 -0
- package/chains/bulletin/generated/dist/bulletin_metadata-ZWUBSZT2.mjs +6 -0
- package/chains/bulletin/generated/dist/bulletin_metadata.d.ts +2 -0
- package/chains/bulletin/generated/dist/common-types.d.ts +4092 -0
- package/chains/bulletin/generated/dist/common.d.ts +1 -0
- package/chains/bulletin/generated/dist/descriptors-6AYAE4ZU.mjs +27 -0
- package/chains/bulletin/generated/dist/descriptors.d.ts +1 -0
- package/chains/bulletin/generated/dist/index.d.ts +10 -0
- package/chains/bulletin/generated/dist/index.js +259 -0
- package/chains/bulletin/generated/dist/index.mjs +170 -0
- package/chains/bulletin/generated/dist/metadataTypes-QQHZQ7NV.mjs +6 -0
- package/chains/bulletin/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/individuality/.papi/polkadot-api.json +12 -0
- package/chains/individuality/generated/dist/common-types.d.ts +10366 -0
- package/chains/individuality/generated/dist/common.d.ts +1 -0
- package/chains/individuality/generated/dist/descriptors-WSAVDU67.mjs +27 -0
- package/chains/individuality/generated/dist/descriptors.d.ts +1 -0
- package/chains/individuality/generated/dist/index.d.ts +10 -0
- package/chains/individuality/generated/dist/index.js +259 -0
- package/chains/individuality/generated/dist/index.mjs +170 -0
- package/chains/individuality/generated/dist/individuality.d.ts +9636 -0
- package/chains/individuality/generated/dist/individuality_metadata-K52S3PRM.mjs +6 -0
- package/chains/individuality/generated/dist/individuality_metadata.d.ts +2 -0
- package/chains/individuality/generated/dist/metadataTypes-7J5JOTD4.mjs +6 -0
- package/chains/individuality/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/kusama-asset-hub/.papi/polkadot-api.json +12 -0
- package/chains/kusama-asset-hub/generated/dist/common-types.d.ts +17756 -0
- package/chains/kusama-asset-hub/generated/dist/common.d.ts +1 -0
- package/chains/kusama-asset-hub/generated/dist/descriptors-LD24UXAS.mjs +27 -0
- package/chains/kusama-asset-hub/generated/dist/descriptors.d.ts +1 -0
- package/chains/kusama-asset-hub/generated/dist/index.d.ts +10 -0
- package/chains/kusama-asset-hub/generated/dist/index.js +315 -0
- package/chains/kusama-asset-hub/generated/dist/index.mjs +226 -0
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub.d.ts +16695 -0
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub_metadata-3SMOB25O.mjs +6 -0
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub_metadata.d.ts +2 -0
- package/chains/kusama-asset-hub/generated/dist/metadataTypes-YAQTJRTG.mjs +6 -0
- package/chains/kusama-asset-hub/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/paseo-asset-hub/.papi/polkadot-api.json +12 -0
- package/chains/paseo-asset-hub/generated/dist/common-types.d.ts +16771 -0
- package/chains/paseo-asset-hub/generated/dist/common.d.ts +1 -0
- package/chains/paseo-asset-hub/generated/dist/descriptors-SGZOCR6W.mjs +27 -0
- package/chains/paseo-asset-hub/generated/dist/descriptors.d.ts +1 -0
- package/chains/paseo-asset-hub/generated/dist/index.d.ts +10 -0
- package/chains/paseo-asset-hub/generated/dist/index.js +317 -0
- package/chains/paseo-asset-hub/generated/dist/index.mjs +228 -0
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-FMC56OR6.mjs +6 -0
- package/chains/paseo-asset-hub/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub.d.ts +15772 -0
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-DYCTETUD.mjs +6 -0
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata.d.ts +2 -0
- package/chains/polkadot-asset-hub/.papi/polkadot-api.json +12 -0
- package/chains/polkadot-asset-hub/generated/dist/common-types.d.ts +16688 -0
- package/chains/polkadot-asset-hub/generated/dist/common.d.ts +1 -0
- package/chains/polkadot-asset-hub/generated/dist/descriptors-YG75KGXS.mjs +27 -0
- package/chains/polkadot-asset-hub/generated/dist/descriptors.d.ts +1 -0
- package/chains/polkadot-asset-hub/generated/dist/index.d.ts +10 -0
- package/chains/polkadot-asset-hub/generated/dist/index.js +317 -0
- package/chains/polkadot-asset-hub/generated/dist/index.mjs +228 -0
- package/chains/polkadot-asset-hub/generated/dist/metadataTypes-B4DAEUPM.mjs +6 -0
- package/chains/polkadot-asset-hub/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub.d.ts +15706 -0
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub_metadata-CM4WGYCW.mjs +6 -0
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub_metadata.d.ts +2 -0
- package/package.json +51 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __esm = (fn, res) => function __init() {
|
|
7
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
8
|
+
};
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
|
|
23
|
+
// generated/src/descriptors.ts
|
|
24
|
+
var descriptors_exports = {};
|
|
25
|
+
__export(descriptors_exports, {
|
|
26
|
+
Paseo_asset_hub: () => Paseo_asset_hub
|
|
27
|
+
});
|
|
28
|
+
var minified, commonTrees, tokens, replaceTokens, tokenizedCommonTrees, unwrap, getChainDescriptors, Paseo_asset_hub;
|
|
29
|
+
var init_descriptors = __esm({
|
|
30
|
+
"generated/src/descriptors.ts"() {
|
|
31
|
+
"use strict";
|
|
32
|
+
[minified, commonTrees, tokens] = JSON.parse(`[{"paseo_asset_hub":{"storage":{"2":{"0":0,"1":4,"ExtrinsicCount":1,"InherentsApplied":2,"BlockWeight":3,"AllExtrinsicsLen":1,"ExtrinsicData":5,"Number":1,"ParentHash":6,"Digest":7,"Events":8,"EventCount":1,"EventTopics":9,"LastRuntimeUpgrade":10,"UpgradedToU32RefCount":2,"UpgradedToTripleRefCount":2,"ExecutionPhase":11,"AuthorizedUpgrade":12,"ExtrinsicWeightReclaimed":13},"3":{"UnincludedSegment":36,"AggregatedUnincludedSegment":37,"PendingValidationCode":38,"NewValidationCode":38,"ValidationData":39,"DidSetValidationCode":2,"LastRelayChainBlockNumber":1,"UpgradeRestrictionSignal":40,"UpgradeGoAhead":41,"RelayStateProof":42,"RelevantMessagingState":43,"HostConfiguration":44,"LastDmqMqcHead":6,"LastHrmpMqcHeads":45,"ProcessedDownwardMessages":1,"LastProcessedDownwardMessage":46,"HrmpWatermark":1,"LastProcessedHrmpMessage":46,"HrmpOutboundMessages":47,"UpwardMessages":42,"PendingUpwardMessages":42,"PendingUpwardSignals":42,"UpwardDeliveryFeeFactor":48,"AnnouncedHrmpMessagesPerCandidate":1,"ReservedXcmpWeightOverride":13,"ReservedDmpWeightOverride":13,"CustomValidationHeadData":38},"4":{"Now":48,"DidUpdate":2},"5":{"ParachainId":1},"6":{"StatusFor":56,"RequestStatusFor":57,"PreimageFor":58},"7":{"IncompleteSince":1,"Agenda":63,"Retries":64,"Lookup":65},"8":{"8":80},"9":{"Cursor":83,"Historic":84},"10":0,"12":{"0":93,"11":95,"TotalIssuance":48,"InactiveIssuance":48,"Locks":94,"Holds":96,"Freezes":97},"14":{"13":119,"NextFeeMultiplier":48,"TxPaymentCredit":48},"15":0,"16":{"13":124,"16":123},"17":{"16":133,"17":132,"Total":48,"Signing":134,"Preclaims":135},"18":0,"19":{"Author":143},"21":{"20":144,"CandidateList":145,"LastAuthoredBlock":146,"DesiredCandidates":1,"CandidacyBond":48},"23":{"22":144,"CurrentIndex":1,"QueuedChanged":2,"QueuedKeys":159,"DisabledValidators":160,"NextKeys":161,"KeyOwner":162,"ExternallySetKeys":163},"25":{"24":167,"CurrentSlot":48},"26":{"24":167,"RelaySlotInfo":168},"27":{"InboundXcmpSuspended":169,"OutboundXcmpStatus":170,"OutboundXcmpMessages":171,"SignalMessages":5,"QueueConfig":172,"QueueSuspended":2,"DeliveryFeeFactor":173},"28":{"QueryCounter":48,"Queries":176,"AssetTraps":177,"SafeXcmVersion":1,"SupportedVersion":178,"VersionNotifiers":179,"VersionNotifyTargets":180,"VersionDiscoveryQueue":181,"CurrentMigration":182,"RemoteLockedFungibles":183,"LockedFungibles":184,"XcmExecutionSuspended":2,"ShouldRecordXcm":2,"RecordedXcm":185,"AuthorizedAliases":186},"29":0,"30":{"Bridge":225},"32":{"31":230,"BookStateFor":228,"ServiceHead":229},"33":{"ExportOperatingMode":238},"34":0,"35":{"Multisigs":252},"36":{"Proxies":263,"Announcements":264},"37":{"Accounts":279},"42":1,"46":{"0":334,"38":336,"43":146,"44":339,"45":340,"Class":333,"ClassAccount":335,"ClassMetadataOf":337,"InstanceMetadataOf":338,"CollectionMaxSupply":341},"47":{"0":334,"43":146,"44":387,"45":340,"Collection":382,"CollectionAccount":335,"CollectionRoleOf":383,"Item":384,"CollectionMetadataOf":385,"ItemMetadataOf":386,"ItemAttributesApprovalsOf":388,"NextCollectionId":1,"PendingSwapOf":389,"CollectionConfigOf":390,"ItemConfigOf":391},"48":{"0":431,"11":434,"38":430,"39":432,"40":433,"41":435},"49":1,"50":{"Pools":479,"NextPoolAssetId":1},"51":{"39":169,"ProposalCount":1,"Proposals":493,"Deactivated":48,"SpendCount":1,"Spends":494,"LastSpendPeriod":1},"52":{"VotingFor":507,"ClassLocksFor":508},"53":{"ReferendumCount":1,"ReferendumInfoFor":519,"TrackQueue":520,"DecidingCount":341,"MetadataOf":4},"54":0,"55":{"WhitelistedCall":530},"57":{"56":1,"57":536,"BountyDescriptions":5,"BountyApprovals":169},"58":{"58":549,"ChildBountyCount":1,"ParentChildBounties":341,"ParentTotalChildBounties":341,"ChildBountyDescriptionsV1":550,"V0ToV1ChildBountyIds":551,"ChildrenCuratorFees":173},"59":{"ConversionRateToNative":559},"60":{"56":1,"57":565,"58":566,"ChildBountiesPerParent":341,"TotalChildBountiesPerParent":341,"ChildBountiesValuePerParent":173,"CuratorDeposit":567},"61":{"MigrationProcess":578,"AutoLimits":579,"SignedMigrationMaxLimits":580},"62":{"40":5,"TotalValueLocked":48,"MinJoinBond":48,"MinCreateBond":48,"MaxPools":1,"MaxPoolMembers":1,"MaxPoolMembersPerPool":1,"GlobalMaxCommission":1,"PoolMembers":589,"CounterForPoolMembers":1,"BondedPools":590,"CounterForBondedPools":1,"RewardPools":591,"CounterForRewardPools":1,"SubPoolsStorage":592,"CounterForSubPoolsStorage":1,"CounterForMetadata":1,"LastPoolId":1,"ReversePoolIdLookup":146,"CounterForReversePoolIdLookup":1,"ClaimPermissions":593},"63":{"ListNodes":636,"CounterForListNodes":1,"ListBags":637,"NextNodeAutoRebagged":143,"Lock":638,"PendingRebag":163,"CounterForPendingRebag":1},"64":{"Delegators":647,"CounterForDelegators":1,"Agents":648,"CounterForAgents":1},"65":{"IncompleteSessionReport":650,"LastSessionReportEndingIndex":1,"OutgoingValidatorSet":651},"66":{"Round":1,"CurrentPhase":660,"DesiredTargets":341,"PagedVoterSnapshot":661,"PagedVoterSnapshotHash":662,"PagedTargetSnapshot":388,"PagedTargetSnapshotHash":662},"67":{"QueuedSolutionX":666,"QueuedSolutionY":666,"QueuedValidVariant":667,"QueuedSolutionBackings":668,"QueuedSolutionScore":669,"MinimumScore":670,"StatusStorage":671},"68":0,"69":{"20":144,"SortedScores":676,"SubmissionStorage":677,"SubmissionMetadataStorage":678},"73":{"20":144,"22":692,"70":688,"71":700,"72":1,"ValidatorCount":1,"MinNominatorBond":48,"MinValidatorBond":48,"MinimumActiveStake":48,"MinCommission":1,"AreNominatorsSlashable":2,"ErasNominatorsSlashable":689,"Ledger":690,"Payee":691,"CounterForValidators":1,"MaxValidatorsCount":1,"LastValidatorEra":146,"Nominators":693,"CounterForNominators":1,"VirtualStakers":163,"CounterForVirtualStakers":1,"MaxNominatorsCount":1,"CurrentEra":1,"ActiveEra":694,"BondedEras":160,"ErasStakersOverview":695,"ErasStakersPaged":696,"ClaimedRewards":697,"ErasValidatorPrefs":698,"ErasValidatorReward":173,"ErasRewardPoints":699,"ErasTotalStake":173,"MaxStakedRewards":1,"CanceledSlashPayout":48,"OffenceQueue":701,"OffenceQueueEras":169,"ProcessingOffence":702,"UnappliedSlashes":703,"CancelledSlashes":704,"ValidatorSlashInEra":705,"ChillThreshold":1,"VoterSnapshotStatus":706,"NextElectionPage":1,"ElectableStashes":144,"EraPruningState":707},"74":{"1":4,"PristineCode":749,"CodeInfoOf":750,"AccountInfoOf":751,"ImmutableDataOf":752,"DeletionQueue":5,"DeletionQueueCounter":753,"OriginalAccount":754,"EthereumBlock":755,"ReceiptInfoData":756,"EthBlockBuilderIR":757,"EthBlockBuilderFirstValues":758,"DebugSettingsOf":759},"75":{"Key":143},"76":{"RcLeaseReserve":776,"RcCrowdloanContribution":777,"RcCrowdloanReserve":776},"77":{"RcAccounts":783,"AhMigrationStage":784,"AhBalancesBefore":785,"DmpQueuePriorityConfig":786,"Manager":143,"MigrationStartBlock":1,"MigrationEndBlock":1}},"tx":{"2":{"78":20,"remark":18,"set_heap_pages":19,"set_code_without_checks":20,"set_storage":21,"kill_storage":22,"kill_prefix":23,"remark_with_event":18,"do_task":24,"authorize_upgrade":25,"authorize_upgrade_without_checks":25,"apply_authorized_upgrade":20},"3":{"set_validation_data":49,"sudo_send_upward_message":50},"4":{"set":55},"5":0,"6":{"note_preimage":59,"unnote_preimage":60,"request_preimage":60,"unrequest_preimage":60,"ensure_updated":61},"7":{"79":67,"schedule":66,"schedule_named":68,"cancel_named":69,"schedule_after":70,"schedule_named_after":71,"set_retry":72,"set_retry_named":73,"cancel_retry":74,"cancel_retry_named":69},"8":{"set_parameter":81},"9":{"force_set_cursor":85,"force_set_active_cursor":86,"force_onboard_mbms":87,"clear_historic":88},"10":0,"12":{"80":99,"81":98,"82":100,"83":105,"transfer_allow_death":98,"force_unreserve":101,"upgrade_accounts":102,"force_set_balance":103,"force_adjust_total_issuance":104},"14":0,"15":0,"16":{"vest":87,"vest_other":125,"vested_transfer":126,"force_vested_transfer":127,"merge_schedules":128,"force_remove_vesting_schedule":129},"17":{"84":136,"mint_claim":137,"claim_attest":138,"attest":139,"move_claim":140},"18":0,"19":0,"21":{"85":147,"set_desired_candidates":148,"set_candidacy_bond":149,"register_as_candidate":87,"leave_intent":87,"add_invulnerable":150,"remove_invulnerable":150,"update_bond":151,"take_candidate_slot":152},"23":{"86":164,"87":87},"25":0,"26":0,"27":{"suspend_xcm_execution":87,"resume_xcm_execution":87,"update_suspend_threshold":174,"update_drop_threshold":174,"update_resume_threshold":174},"28":{"send":188,"teleport_assets":189,"reserve_transfer_assets":189,"execute":190,"force_xcm_version":191,"force_default_xcm_version":192,"force_subscribe_version_notify":193,"force_unsubscribe_version_notify":193,"limited_reserve_transfer_assets":194,"limited_teleport_assets":194,"force_suspension":195,"transfer_assets":194,"claim_assets":196,"transfer_assets_using_type_and_then":197,"add_authorized_alias":198,"remove_authorized_alias":199,"remove_all_authorized_aliases":87},"29":0,"30":{"report_bridge_status":226},"32":{"reap_page":232,"execute_overweight":233},"33":{"set_operating_mode":239,"register_token":240,"add_tip":241},"34":{"batch":243,"as_derivative":244,"batch_all":243,"dispatch_as":245,"force_batch":243,"with_weight":246,"if_else":247,"dispatch_as_fallible":245},"35":{"88":257,"as_multi_threshold_1":253,"as_multi":254,"approve_as_multi":255,"cancel_as_multi":256},"36":{"88":87,"proxy":267,"add_proxy":268,"remove_proxy":268,"remove_proxies":87,"create_pure":269,"kill_pure":270,"announce":271,"remove_announcement":271,"reject_announcement":272,"proxy_announced":273},"37":{"80":282,"84":280,"88":280,"89":281,"90":280,"free":280},"42":2,"46":{"83":346,"89":347,"90":349,"91":342,"92":343,"97":345,"98":349,"101":351,"102":352,"103":358,"104":349,"108":353,"109":354,"119":344,"120":348,"121":356,"122":357,"123":359,"124":350,"125":360,"126":361,"127":362,"128":363,"freeze_collection":350,"thaw_collection":350,"force_item_status":355},"47":{"83":349,"89":347,"91":392,"92":393,"97":395,"101":351,"102":398,"103":407,"104":349,"108":401,"109":353,"119":394,"120":348,"121":403,"122":405,"123":408,"124":350,"125":360,"126":361,"127":362,"128":363,"force_mint":396,"lock_item_transfer":349,"unlock_item_transfer":349,"lock_collection":397,"force_collection_owner":399,"force_collection_config":400,"clear_all_transfer_approvals":349,"lock_item_properties":402,"force_set_attribute":404,"approve_item_attributes":353,"cancel_item_attributes_approval":406,"update_mint_settings":409,"pay_tips":410,"create_swap":411,"cancel_swap":412,"claim_swap":413,"mint_pre_signed":414,"set_attributes_pre_signed":415},"48":{"80":446,"81":445,"82":459,"83":444,"89":445,"90":447,"91":440,"92":441,"93":442,"94":442,"95":442,"96":442,"97":443,"98":447,"99":442,"100":442,"101":448,"102":449,"103":450,"104":442,"105":451,"106":442,"107":452,"108":453,"109":454,"110":455,"111":456,"112":442,"113":457,"114":458,"115":447,"116":447,"117":447,"118":460},"49":2,"50":{"112":482,"create_pool":482,"add_liquidity":483,"remove_liquidity":484,"swap_exact_tokens_for_tokens":485,"swap_tokens_for_exact_tokens":486},"51":{"129":280,"spend_local":495,"remove_approval":496,"spend":497,"payout":280,"void_spend":280},"52":{"vote":509,"delegate":510,"undelegate":511,"unlock":512,"remove_vote":513,"remove_other_vote":514},"53":{"79":280,"103":524,"submit":522,"place_decision_deposit":280,"refund_decision_deposit":280,"kill":280,"nudge_referendum":280,"one_fewer_deciding":523,"refund_submission_deposit":280},"54":0,"55":{"whitelist_call":531,"remove_whitelisted_call":531,"dispatch_whitelisted_call":532,"dispatch_whitelisted_call_with_preimage":533},"57":{"88":539,"130":540,"131":539,"132":539,"133":541,"134":539,"propose_bounty":538,"approve_bounty":539,"claim_bounty":539,"extend_bounty_expiry":542,"approve_bounty_with_curator":540},"58":{"130":553,"131":554,"132":554,"add_child_bounty":552,"award_child_bounty":555,"claim_child_bounty":554,"close_child_bounty":554},"59":{"91":560,"update":560,"remove":561},"60":{"129":571,"130":570,"131":571,"132":571,"133":572,"134":571,"fund_bounty":568,"fund_child_bounty":569,"retry_payment":571},"61":{"control_auto_migration":581,"continue_migrate":582,"migrate_custom_top":583,"migrate_custom_child":584,"set_signed_max_limits":585,"force_set_progress":586},"62":{"91":599,"103":603,"135":595,"136":596,"137":598,"138":601,"139":606,"140":614,"join":594,"claim_payout":87,"pool_withdraw_unbonded":597,"create_with_pool_id":600,"set_state":602,"set_configs":604,"update_roles":605,"bond_extra_other":607,"set_claim_permission":608,"claim_payout_other":609,"set_commission":610,"set_commission_max":611,"set_commission_change_rate":612,"claim_commission":606,"adjust_pool_deposit":606,"set_commission_claim_permission":613,"migrate_delegation":614,"migrate_pool_to_delegate_stake":606},"63":{"rebag":641,"put_in_front_of":642,"put_in_front_of_other":643},"64":0,"65":{"86":654,"87":655,"relay_session_report":652,"relay_new_offence_paged":653},"66":{"manage":663,"admin":664},"67":0,"68":{"submit_unsigned":675},"69":{"85":683,"register":680,"submit_page":681,"bail":87,"clear_old_round_data":682},"73":{"85":717,"135":709,"136":710,"137":711,"138":713,"139":87,"140":729,"bond":708,"validate":712,"set_payee":714,"set_controller":87,"set_validator_count":174,"increase_validator_count":715,"scale_validator_count":716,"force_no_eras":87,"force_new_era":87,"force_unstake":718,"force_new_era_always":87,"cancel_deferred_slash":719,"payout_stakers":720,"rebond":710,"reap_stash":718,"kick":721,"set_staking_configs":722,"chill_other":723,"force_apply_min_commission":724,"set_min_commission":174,"payout_stakers_by_page":725,"update_payee":726,"deprecate_controller_batch":727,"restore_ledger":728,"migrate_currency":723,"prune_era_step":730},"74":{"78":768,"141":760,"142":761,"143":762,"144":767,"instantiate_with_code":763,"eth_instantiate_with_code":764,"eth_call":765,"eth_substrate_call":766,"remove_code":25,"map_account":87,"unmap_account":87,"dispatch_as_fallback_account":533},"75":{"sudo":533,"sudo_unchecked_weight":246,"set_key":772,"sudo_as":773,"remove_key":87},"76":{"unreserve_lease_deposit":778,"withdraw_crowdloan_contribution":778,"unreserve_crowdloan_reserve":778,"transfer_to_post_migration_treasury":779,"translate_para_sovereign_child_to_sibling_derived":780},"77":{"receive_accounts":787,"receive_multisigs":788,"receive_proxy_proxies":789,"receive_proxy_announcements":790,"receive_preimage_chunks":791,"receive_preimage_request_status":792,"receive_preimage_legacy_status":793,"receive_nom_pools_messages":794,"receive_vesting_schedules":795,"receive_referenda_values":796,"receive_referendums":797,"receive_claims":798,"receive_bags_list_messages":799,"receive_scheduler_messages":800,"receive_indices":801,"receive_conviction_voting_messages":802,"receive_bounties_messages":803,"receive_asset_rates":804,"receive_crowdloan_messages":805,"receive_referenda_metadata":806,"receive_treasury_messages":807,"receive_scheduler_agenda_messages":808,"receive_delegated_staking_messages":809,"receive_child_bounties_messages":810,"receive_staking_messages":811,"force_set_stage":812,"start_migration":87,"set_dmp_queue_priority":813,"set_manager":814,"finish_migration":815,"send_xcm_message":188}},"events":{"2":{"ExtrinsicSuccess":26,"ExtrinsicFailed":27,"CodeUpdated":28,"NewAccount":29,"KilledAccount":29,"Remarked":30,"TaskStarted":31,"TaskCompleted":31,"TaskFailed":32,"UpgradeAuthorized":33,"RejectedInvalidAuthorizedUpgrade":34},"3":{"ValidationFunctionStored":28,"ValidationFunctionApplied":51,"ValidationFunctionDiscarded":28,"DownwardMessagesReceived":52,"DownwardMessagesProcessed":53,"UpwardMessageSent":54},"4":0,"5":0,"6":{"Noted":62,"Requested":62,"Cleared":62},"7":{"145":75,"Scheduled":75,"Dispatched":76,"RetrySet":77,"RetryCancelled":78,"CallUnavailable":78,"PeriodicFailed":78,"RetryFailed":78,"PermanentlyOverweight":78,"AgendaIncomplete":79},"8":{"Updated":82},"9":{"UpgradeStarted":89,"UpgradeCompleted":28,"UpgradeFailed":28,"MigrationSkipped":90,"MigrationAdvanced":91,"MigrationCompleted":91,"MigrationFailed":91,"HistoricCleared":92},"10":0,"12":{"146":110,"147":110,"148":110,"149":112,"150":110,"151":110,"152":115,"153":118,"Endowed":106,"DustLost":107,"Transfer":108,"BalanceSet":109,"Reserved":110,"Unreserved":110,"ReserveRepatriated":111,"Withdraw":110,"Minted":110,"MintedCredit":112,"BurnedDebt":112,"Suspended":110,"Restored":110,"Upgraded":113,"Rescinded":112,"Locked":110,"Unlocked":110,"TotalIssuanceForced":114,"Held":115,"BurnedHeld":115,"TransferOnHold":116,"TransferAndHold":117},"14":{"TransactionFeePaid":120},"15":{"AssetTxFeePaid":121,"AssetRefundFailed":122},"16":{"VestingCreated":130,"VestingUpdated":131,"VestingCompleted":29},"17":{"154":141},"18":0,"19":0,"21":{"NewInvulnerables":153,"InvulnerableAdded":154,"InvulnerableRemoved":154,"NewDesiredCandidates":155,"NewCandidacyBond":156,"CandidateAdded":157,"CandidateBondUpdated":157,"CandidateRemoved":154,"CandidateReplaced":158,"InvalidInvulnerableSkipped":154},"23":{"NewSession":165,"NewQueued":28,"ValidatorDisabled":166,"ValidatorReenabled":166},"25":0,"26":0,"27":{"XcmpMessageSent":175},"28":{"155":217,"Attempted":200,"Sent":201,"SendFailed":202,"ProcessXcmError":203,"UnexpectedResponse":204,"ResponseReady":205,"Notified":206,"NotifyOverweight":207,"NotifyDispatchError":206,"NotifyDecodeFailed":206,"InvalidResponder":208,"InvalidResponderVersion":204,"ResponseTaken":209,"AssetsTrapped":210,"VersionChangeNotified":211,"SupportedVersionChanged":212,"NotifyTargetSendFail":213,"NotifyTargetMigrationFail":214,"InvalidQuerierVersion":204,"InvalidQuerier":215,"VersionNotifyStarted":216,"VersionNotifyRequested":216,"VersionNotifyUnrequested":216,"AssetsClaimed":210,"VersionMigrationFinished":218,"AliasAuthorized":219,"AliasAuthorizationRemoved":220,"AliasesAuthorizationsRemoved":221},"29":{"InvalidFormat":223,"UnsupportedVersion":223,"ExecutedDownward":224},"30":{"DeliveryFeeFactorDecreased":227,"DeliveryFeeFactorIncreased":227},"32":{"ProcessingFailed":234,"Processed":235,"OverweightEnqueued":236,"PageReaped":237},"33":{"MessageSent":201,"ExportOperatingModeChanged":242},"34":{"BatchInterrupted":248,"BatchCompleted":28,"BatchCompletedWithErrors":28,"ItemCompleted":28,"ItemFailed":249,"DispatchedAs":250,"IfElseMainSuccess":28,"IfElseFallbackCalled":251},"35":{"156":262,"NewMultisig":258,"MultisigApproval":259,"MultisigExecuted":260,"MultisigCancelled":261},"36":{"156":278,"ProxyExecuted":250,"PureCreated":274,"PureKilled":275,"Announced":276,"ProxyAdded":277,"ProxyRemoved":277},"37":{"156":284,"IndexAssigned":283,"IndexFreed":90,"IndexFrozen":283},"42":3,"46":{"148":367,"149":367,"150":369,"151":369,"157":364,"158":368,"159":371,"160":370,"166":366,"167":365,"168":374,"169":369,"170":372,"171":372,"181":373,"182":366,"183":375,"184":376,"185":377,"186":378,"187":379,"188":380,"189":369,"190":381,"CollectionFrozen":366,"CollectionThawed":366,"ItemStatusChanged":366},"47":{"148":367,"149":367,"157":364,"158":368,"159":417,"160":370,"166":366,"167":365,"171":372,"181":419,"182":366,"183":375,"184":421,"185":422,"186":378,"187":379,"188":380,"189":369,"190":381,"ItemTransferLocked":369,"ItemTransferUnlocked":369,"ItemPropertiesLocked":416,"CollectionLocked":366,"TransferApproved":418,"AllApprovalsCancelled":367,"CollectionConfigChanged":366,"ItemMetadataSet":420,"ItemMetadataCleared":369,"ItemAttributesApprovalAdded":423,"ItemAttributesApprovalRemoved":423,"CollectionMintSettingsUpdated":366,"NextCollectionIdIncremented":424,"TipSent":425,"SwapCreated":426,"SwapCancelled":426,"SwapClaimed":427,"PreSignedAttributesSet":428,"PalletAttributeSet":429},"48":{"148":464,"149":462,"150":467,"151":467,"157":461,"158":463,"159":465,"160":466,"161":468,"162":468,"163":469,"164":470,"165":468,"166":468,"167":466,"168":471,"169":468,"170":472,"171":473,"172":474,"173":468,"174":475,"175":476,"176":467,"177":477,"178":477,"179":478,"180":468},"49":3,"50":{"175":492,"PoolCreated":487,"LiquidityAdded":488,"LiquidityRemoved":489,"SwapExecuted":490,"SwapCreditExecuted":491},"51":{"146":502,"191":499,"192":506,"193":506,"Spending":498,"Burnt":500,"Rollover":501,"SpendApproved":503,"UpdatedInactive":504,"AssetSpendApproved":505,"AssetSpendVoided":90,"SpendProcessed":90},"52":{"194":515,"Undelegated":516,"Voted":517,"VoteRemoved":517,"VoteUnlocked":518},"53":{"168":529,"169":529,"Submitted":525,"DecisionDepositPlaced":526,"DecisionDepositRefunded":526,"DepositSlashed":110,"DecisionStarted":527,"ConfirmStarted":90,"ConfirmAborted":90,"Confirmed":528,"Approved":90,"Rejected":528,"TimedOut":528,"Cancelled":528,"Killed":528,"SubmissionDepositRefunded":526},"54":0,"55":{"CallWhitelisted":534,"WhitelistedCallRemoved":534,"WhitelistedCallDispatched":535},"57":{"156":548,"195":90,"196":544,"197":90,"198":546,"199":547,"BountyProposed":90,"BountyRejected":543,"BountyClaimed":545,"BountyExtended":90,"BountyApproved":90,"CuratorAccepted":546},"58":{"145":556,"154":558,"191":557,"Added":556},"59":{"AssetRateCreated":562,"AssetRateRemoved":563,"AssetRateUpdated":564},"60":{"192":577,"193":577,"195":573,"196":574,"197":576,"198":573,"199":576,"BountyCreated":90,"ChildBountyCreated":556,"BountyPayoutProcessed":575,"BountyFundingProcessed":576,"BountyRefundProcessed":576},"61":{"147":110,"Migrated":587,"AutoMigrationFinished":28,"Halted":588},"62":{"70":616,"157":615,"166":620,"178":619,"200":618,"PaidOut":617,"StateChanged":621,"MemberRemoved":622,"RolesUpdated":623,"PoolSlashed":624,"UnbondingPoolSlashed":625,"PoolCommissionUpdated":626,"PoolMaxCommissionUpdated":627,"PoolCommissionChangeRateUpdated":628,"PoolCommissionClaimPermissionUpdated":629,"PoolCommissionClaimed":630,"MinBalanceDeficitAdjusted":631,"MinBalanceExcessAdjusted":631,"MemberClaimPermissionUpdated":632,"MetadataUpdated":633,"PoolNominationMade":633,"PoolNominatorChilled":633,"GlobalParamsUpdated":634},"63":{"Rebagged":644,"ScoreUpdated":645},"64":{"147":649,"152":649,"194":649,"MigratedDelegation":649},"65":{"153":659,"155":658,"SessionReportReceived":656,"OffenceReceived":657},"66":{"PhaseTransitioned":665,"UnexpectedTargetSnapshotFailed":28,"UnexpectedVoterSnapshotFailed":28},"67":{"VerificationFailed":672,"Verified":673,"Queued":674},"68":0,"69":{"147":686,"201":686,"Registered":684,"Stored":685,"Ejected":687,"Discarded":687,"Bailed":687},"73":{"70":734,"71":740,"147":733,"153":748,"178":734,"200":734,"201":732,"EraPaid":731,"OldSlashingReportDiscarded":165,"StakerRemoved":735,"Kicked":736,"Chilled":735,"PayoutStarted":737,"ValidatorPrefsSet":738,"SnapshotVotersSizeExceeded":739,"SnapshotTargetsSizeExceeded":739,"ControllerBatchDeprecated":741,"CurrencyMigrated":742,"PagedElectionProceeded":743,"OffenceReported":744,"SlashComputed":745,"SlashCancelled":746,"SessionRotated":747,"OffenceTooOld":744,"EraPruned":90},"74":{"ContractEmitted":769,"Instantiated":770,"EthExtrinsicRevert":771},"75":{"Sudid":774,"KeyChanged":775,"KeyRemoved":28,"SudoAsDone":774},"76":{"LeaseUnreserveRemaining":781,"CrowdloanUnreserveRemaining":781,"SovereignMigrated":782,"FailedToBond":107},"77":{"StageTransition":816,"BatchReceived":817,"BatchProcessed":818,"AssetHubMigrationStarted":28,"AssetHubMigrationFinished":28,"DmpQueuePrioritySet":819,"DmpQueuePriorityConfigSet":820,"BalancesBeforeRecordSet":821,"BalancesBeforeRecordConsumed":821,"ReferendumCanceled":822,"ManagerSet":823,"AccountTranslatedParachainSovereign":824,"AccountTranslatedParachainSovereignDerived":825,"XcmSent":201,"FailedToUnreserveMultisigDeposit":826,"FailedToUnreservePreimageDeposit":826}},"constants":{"2":{"BlockWeights":14,"BlockLength":15,"BlockHashCount":1,"DbWeight":16,"Version":17,"SS58Prefix":1},"3":{"SelfParaId":1},"4":{"MinimumPeriod":48},"5":0,"6":0,"7":{"MaximumWeight":13,"MaxScheduledPerBlock":1},"8":0,"9":{"CursorMaxLen":1,"IdentifierMaxLen":1},"10":0,"12":{"ExistentialDeposit":48,"MaxLocks":1,"MaxReserves":1,"MaxFreezes":1},"14":{"OperationalFeeMultiplier":1},"15":0,"16":{"MinVestedTransfer":48,"MaxVestingSchedules":1},"17":{"Prefix":38},"18":{"202":142},"19":0,"21":{"203":1,"204":143,"PotId":142,"MaxCandidates":1,"MinEligibleCollators":1,"KickThreshold":1},"23":4,"25":{"SlotDuration":48},"26":0,"27":{"MaxInboundSuspended":1,"MaxActiveOutboundChannels":1,"MaxPageSize":1},"28":{"UniversalLocation":187,"AdvertisedXcmVersion":1,"MaxLockers":1,"MaxRemoteLockConsumers":1},"29":0,"30":0,"32":{"HeapSize":1,"MaxStale":1,"ServiceWeight":231,"IdleMaxServiceWeight":231},"33":0,"34":{"batched_calls_limit":1},"35":{"DepositBase":48,"DepositFactor":48,"MaxSignatories":1},"36":{"ProxyDepositBase":48,"ProxyDepositFactor":48,"MaxProxies":1,"MaxPending":1,"AnnouncementDepositBase":48,"AnnouncementDepositFactor":48},"37":{"146":48},"42":5,"46":{"209":48,"212":1,"213":48,"214":48,"215":48,"216":48,"217":1,"218":1},"47":{"209":48,"212":1,"213":48,"214":48,"215":48,"216":48,"217":1,"218":1,"ApprovalsLimit":1,"ItemAttributesApprovalsLimit":1,"MaxTips":1,"MaxDeadlineDuration":1,"MaxAttributesPerCall":1,"Features":48},"48":5,"49":5,"50":{"202":142,"LPFee":1,"PoolSetupFee":48,"PoolSetupFeeAsset":435,"LiquidityWithdrawalFee":1,"MintMinLiquidity":48,"MaxSwapPathLength":1},"51":{"202":142,"204":143,"SpendPeriod":1,"Burn":1,"MaxApprovals":1,"PayoutPeriod":1},"52":{"MaxVotes":1,"VoteLockingPeriod":1},"53":{"SubmissionDeposit":48,"MaxQueued":1,"UndecidingTimeout":1,"AlarmInterval":1,"Tracks":521},"54":0,"55":0,"57":{"219":48,"BountyDepositBase":48,"BountyDepositPayoutDelay":1,"BountyUpdatePeriod":1,"CuratorDepositMultiplier":1,"CuratorDepositMax":537,"CuratorDepositMin":537,"DataDepositPerByte":48,"MaximumReasonLength":1},"58":{"220":1,"221":48},"59":0,"60":{"219":48,"220":1,"221":48},"61":{"MaxKeyLen":1},"62":{"202":142,"MaxPointsToBalance":1,"MaxUnbonding":1},"63":{"BagThresholds":639,"MaxAutoRebagPerBlock":1},"64":{"72":1,"202":142},"65":4,"66":{"31":1,"UnsignedPhase":1,"SignedPhase":1,"SignedValidationPhase":1,"VoterSnapshotPerBlock":1,"TargetSnapshotPerBlock":1},"67":{"SolutionImprovementThreshold":1,"MaxBackersPerWinnerFinal":1,"MaxBackersPerWinner":1,"MaxWinnersPerPage":1},"68":0,"69":0,"73":{"203":1,"HistoryDepth":1,"SessionsPerEra":1,"PlanningEraOffset":1,"BondingDuration":1,"NominatorFastUnbondDuration":1,"SlashDeferDuration":1,"MaxExposurePageSize":1,"MaxValidatorSet":1,"MaxUnlockingChunks":1,"MaxEraDuration":48,"MaxPruningItems":1},"74":{"216":48,"DepositPerItem":48,"DepositPerChildTrieItem":48,"CodeHashLockupDepositPercent":1,"UnsafeUnstableInterface":2,"AllowEVMBytecode":2,"ChainId":48,"NativeToEthRatio":1,"MaxEthExtrinsicWeight":48,"DebugEnabled":2,"GasScale":1},"75":0,"76":0,"77":0},"viewFns":{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"12":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"21":0,"23":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"32":0,"33":0,"34":0,"35":0,"36":{"check_permissions":265,"is_superset":266},"37":0,"42":6,"46":0,"47":0,"48":{"222":436,"223":437,"224":438,"225":439},"49":6,"50":{"226":480,"227":481,"228":481},"51":0,"52":0,"53":0,"54":0,"55":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":{"scores":640},"64":0,"65":0,"66":0,"67":0,"68":0,"69":{"deposit_for":679},"73":0,"74":0,"75":0,"76":0,"77":0},"apis":{"40":{"metadata":834,"metadata_at_version":835,"metadata_versions":836},"AuraApi":{"slot_duration":827,"authorities":828},"RelayParentOffsetApi":{"relay_parent_offset":829},"AuraUnincludedSegmentApi":{"can_build_upon":830},"Core":{"version":831,"execute_block":832,"initialize_block":833},"BlockBuilder":{"apply_extrinsic":837,"finalize_block":838,"inherent_extrinsics":839,"check_inherents":840},"TaggedTransactionQueue":{"validate_transaction":841},"OffchainWorkerApi":{"offchain_worker":842},"SessionKeys":{"generate_session_keys":843,"decode_session_keys":844},"RuntimeViewFunction":{"execute_view_function":845},"AccountNonceApi":{"account_nonce":846},"TransactionPaymentApi":{"229":849,"230":850,"query_info":847,"query_fee_details":848},"TransactionPaymentCallApi":{"229":849,"230":850,"query_call_info":851,"query_call_fee_details":852},"XcmPaymentApi":{"query_acceptable_payment_assets":853,"query_xcm_weight":854,"query_weight_to_asset_fee":855,"query_delivery_fees":856},"DryRunApi":{"dry_run_call":857,"dry_run_xcm":858},"LocationToAccountApi":{"convert_location":859},"TrustedQueryApi":{"is_trusted_reserve":860,"is_trusted_teleporter":860},"AuthorizedAliasersApi":{"authorized_aliasers":861,"is_authorized_alias":862},"FungiblesApi":{"query_account_balances":863},"CollectCollationInfo":{"collect_collation_info":864},"GenesisBuilder":{"build_state":865,"get_preset":866,"preset_names":867},"AssetConversionApi":{"226":868,"227":481,"228":481},"GetParachainInfo":{"parachain_id":829},"NominationPoolsApi":{"231":869,"points_to_balance":870,"balance_to_points":871,"pool_pending_slash":872,"member_pending_slash":873,"pool_needs_delegate_migration":874,"member_needs_delegate_migration":875,"member_total_balance":869,"pool_balance":872,"pool_accounts":876},"StakingApi":{"231":879,"nominations_quota":877,"eras_stakers_page_count":878},"Inflation":{"experimental_issuance_prediction_info":880},"ReviveApi":{"141":889,"142":887,"143":888,"144":891,"eth_block":881,"eth_block_hash":882,"eth_receipt_data":883,"block_gas_limit":884,"balance":885,"gas_price":884,"nonce":886,"eth_transact_with_config":890,"get_storage":892,"get_storage_var_key":893,"trace_block":894,"trace_tx":895,"trace_call":896,"block_author":897,"address":898,"account_id":899,"runtime_pallets_address":897,"code":900,"new_balance_with_dust":901}}}},[{},{"0":286,"11":289,"38":285,"39":287,"40":288,"41":1},{"80":300,"81":299,"82":313,"83":298,"89":299,"90":301,"91":294,"92":295,"93":296,"94":296,"95":296,"96":296,"97":297,"98":301,"99":296,"100":296,"101":302,"102":303,"103":304,"104":296,"105":305,"106":296,"107":306,"108":307,"109":308,"110":309,"111":310,"112":296,"113":311,"114":312,"115":301,"116":301,"117":301,"118":314},{"148":318,"149":316,"150":321,"151":321,"157":315,"158":317,"159":319,"160":320,"161":322,"162":322,"163":323,"164":324,"165":322,"166":322,"167":320,"168":325,"169":322,"170":326,"171":327,"172":328,"173":322,"174":329,"175":330,"176":321,"177":331,"178":331,"179":332,"180":322},{"205":48},{"206":1,"207":48,"208":48,"209":48,"210":48,"211":48,"212":1},{"222":290,"223":291,"224":292,"225":293}],["Account","BlockHash","System","ParachainSystem","Timestamp","ParachainInfo","Preimage","Scheduler","Parameters","MultiBlockMigrations","WeightReclaim","Reserves","Balances","StorageVersion","TransactionPayment","AssetTxPayment","Vesting","Claims","Dap","Authorship","Invulnerables","CollatorSelection","Validators","Session","Authorities","Aura","AuraExt","XcmpQueue","PolkadotXcm","CumulusXcm","ToKusamaXcmRouter","Pages","MessageQueue","SnowbridgeSystemFrontend","Utility","Multisig","Proxy","Indices","Asset","Approvals","Metadata","NextAssetId","Assets","OwnershipAcceptance","Attribute","ItemPriceOf","Uniques","Nfts","ForeignAssets","PoolAssets","AssetConversion","Treasury","ConvictionVoting","Referenda","Origins","Whitelist","BountyCount","Bounties","ChildBounties","AssetRate","MultiAssetBounties","StateTrieMigration","NominationPools","VoterList","DelegatedStaking","StakingRcClient","MultiBlockElection","MultiBlockElectionVerifier","MultiBlockElectionUnsigned","MultiBlockElectionSigned","Bonded","ForceEra","SlashRewardFraction","Staking","Revive","Sudo","AhOps","AhMigrator","set_code","cancel","force_transfer","transfer_keep_alive","transfer_all","burn","claim","set_invulnerables","set_keys","purge_keys","poke_deposit","transfer","freeze","create","force_create","start_destroy","destroy_accounts","destroy_approvals","finish_destroy","mint","thaw","freeze_asset","thaw_asset","transfer_ownership","set_team","set_metadata","clear_metadata","force_set_metadata","force_clear_metadata","force_asset_status","approve_transfer","cancel_approval","force_cancel_approval","transfer_approved","touch","refund","set_min_balance","touch_other","refund_other","block","set_reserves","destroy","redeposit","set_attribute","clear_attribute","set_collection_metadata","clear_collection_metadata","set_accept_ownership","set_collection_max_supply","set_price","buy_item","check_status","propose_curator","unassign_curator","accept_curator","award_bounty","close_bounty","bond_extra","unbond","withdraw_unbonded","nominate","chill","apply_slash","eth_transact","call","instantiate","upload_code","Canceled","Deposit","Slashed","Burned","Issued","Frozen","Thawed","Released","Unexpected","Claimed","FeesPaid","DepositPoked","Created","Transferred","TeamChanged","OwnerChanged","AssetFrozen","AssetThawed","AccountsDestroyed","ApprovalsDestroyed","DestructionStarted","Destroyed","ForceCreated","MetadataSet","MetadataCleared","ApprovedTransfer","ApprovalCancelled","TransferredApproved","AssetStatusChanged","AssetMinBalanceChanged","Touched","Blocked","Deposited","Withdrawn","ReservesUpdated","ReservesRemoved","CollectionMetadataSet","CollectionMetadataCleared","Redeposited","AttributeSet","AttributeCleared","OwnershipAcceptanceChanged","CollectionMaxSupplySet","ItemPriceSet","ItemPriceRemoved","ItemBought","Awarded","Paid","PaymentFailed","Delegated","BountyBecameActive","BountyAwarded","BountyCanceled","CuratorProposed","CuratorUnassigned","Unbonded","Rewarded","PalletId","MaxInvulnerables","pot_account","KeyDeposit","RemoveItemsLimit","AssetDeposit","AssetAccountDeposit","MetadataDepositBase","MetadataDepositPerByte","ApprovalDeposit","StringLimit","CollectionDeposit","ItemDeposit","AttributeDepositBase","DepositPerByte","KeyLimit","ValueLimit","BountyValueMinimum","MaxActiveChildBountyCount","ChildBountyValueMinimum","asset_details","balance_of","get_metadata","get_reserves_data","get_reserves","quote_price_exact_tokens_for_tokens","quote_price_tokens_for_exact_tokens","query_weight_to_fee","query_length_to_fee","pending_rewards"]]`);
|
|
33
|
+
replaceTokens = (obj) => Object.fromEntries(
|
|
34
|
+
Object.entries(obj).map(([key, value]) => {
|
|
35
|
+
const unwrappedValue = typeof value === "object" ? replaceTokens(value) : value;
|
|
36
|
+
const numericKey = Number(key);
|
|
37
|
+
if (Number.isNaN(numericKey)) {
|
|
38
|
+
return [key, unwrappedValue];
|
|
39
|
+
}
|
|
40
|
+
return [tokens[numericKey], unwrappedValue];
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
tokenizedCommonTrees = commonTrees.map(replaceTokens);
|
|
44
|
+
unwrap = (obj, depth) => depth === 0 ? obj : Object.fromEntries(
|
|
45
|
+
Object.entries(obj).map(([key, value]) => [
|
|
46
|
+
key,
|
|
47
|
+
unwrap(
|
|
48
|
+
typeof value === "object" ? value : tokenizedCommonTrees[value],
|
|
49
|
+
depth - 1
|
|
50
|
+
)
|
|
51
|
+
])
|
|
52
|
+
);
|
|
53
|
+
getChainDescriptors = (key) => unwrap(replaceTokens(minified[key]), 2);
|
|
54
|
+
Paseo_asset_hub = getChainDescriptors("paseo_asset_hub");
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// generated/src/metadataTypes.ts
|
|
59
|
+
var metadataTypes_exports = {};
|
|
60
|
+
__export(metadataTypes_exports, {
|
|
61
|
+
default: () => metadataTypes_default
|
|
62
|
+
});
|
|
63
|
+
var content, metadataTypes_default;
|
|
64
|
+
var init_metadataTypes = __esm({
|
|
65
|
+
"generated/src/metadataTypes.ts"() {
|
|
66
|
+
"use strict";
|
|
67
|
+
content = "GQ4AAAAQAQEFAAQBAQUAFAEBBQAcAAQAIAAEACQBAQUAIAEBBQAwAQEFAA0EACAAEQQBAQUAGQQBAQUANAEBBQAdBAEBBQAYAQEFACkEAQEFAC0EAQEFADEEAQEFAD0EAQAEGHJlbWFyayQBAQUBAAQUcGFnZXMIAQEFAQAEEGNvZGUkAQEFAQAEFGl0ZW1zRQQBAQUBAAQQa2V5c0kEAQEFAQAIGHByZWZpeCQcc3Via2V5cwQBAQUBAAABAQUBAAQkY29kZV9oYXNoIAEBBQEBBQEABDRkaXNwYXRjaF9pbmZvQAEBBQEACDhkaXNwYXRjaF9lcnJvcg0BNGRpc3BhdGNoX2luZm9AAQEFAQEFAQEFAQAEHGFjY291bnQAAQEFAQAIGHNlbmRlcgAQaGFzaCABAQUBAAABAQUBAAQMZXJyDQEBAQUBAAgkY29kZV9oYXNoIDRjaGVja192ZXJzaW9uFAEBBQEACCRjb2RlX2hhc2ggFGVycm9yDQEBAQUBAQUBAQUAaQQBAQUAbQQBAQUAJAEBBQBxBAEBBQB5BAEBBQBhBAEBBQBJBAEBBQCNBAEBBQCVBAEBBQCdBAEBBQChBAEBBQCpBAEBBQAIAQAIEGRhdGG1BFRpbmJvdW5kX21lc3NhZ2VzX2RhdGHlBAEBBQEABBxtZXNzYWdlJAEBBQEBBQEABFRyZWxheV9jaGFpbl9ibG9ja19udW0EAQEFAQAEFGNvdW50BAEBBQEACCx3ZWlnaHRfdXNlZBggZG1xX2hlYWQgAQEFAQAEMG1lc3NhZ2VfaGFzaBUBAQAEDG5vdwgBAQUAIADxBAAgAPUEAPkEACQBAAQUYnl0ZXMkAQEFAQAEEGhhc2ggAQEFAQAEGGhhc2hlc+UDAQEFAQEFAQAEEGhhc2ggAAQAIQUAIQEAJQUAIAAhAQEAEBB3aGVuBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQoBAQUBAAgQd2hlbgQUaW5kZXgEAQEFAQAUCGlkIBB3aGVuBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQoBAQUBAAQIaWQgAQEFAQAQFGFmdGVyBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQoBAQUBABQIaWQgFGFmdGVyBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQoBAQUBAAwQdGFzayEBHHJldHJpZXMEGHBlcmlvZAQBAQUBAAwIaWQgHHJldHJpZXMEGHBlcmlvZAQBAQUBAAQQdGFzayEBAQEFAQEFAQAIEHdoZW4EFGluZGV4BAEBBQEADBB0YXNrIQEIaWQVARhyZXN1bHQpAQEBBQEAEBB0YXNrIQEIaWQVARhwZXJpb2QEHHJldHJpZXMEAQEFAQAIEHRhc2shAQhpZBUBAQEFAQAEEHdoZW4EAD0BAFEBAQAEJGtleV92YWx1ZU0FAQEFAQEFAQAMDGtleT0BJG9sZF92YWx1ZVUBJG5ld192YWx1ZVUBAQEFAFkFACQAJQEBAAQYY3Vyc29yXQUBAQUBAAwUaW5kZXgEMGlubmVyX2N1cnNvcl0BKHN0YXJ0ZWRfYXTtAgEBBQEBBQEBBQEABCBzZWxlY3RvcmEFAQEFAQEFAQAEKG1pZ3JhdGlvbnMEAQEFAQAEFGluZGV4BAEBBQEACBRpbmRleAQQdG9vawQBAQUBAAQsbmV4dF9jdXJzb3JdAQAAAAwAAAAZCAAAABEKAAAAGQoAAAANCAEACBBkZXN0aQUUdmFsdWUIAQEFAQAMGHNvdXJjZWkFEGRlc3RpBRR2YWx1ZQgBAQUBAAgQZGVzdGkFKGtlZXBfYWxpdmUUAQEFAQAIDHdob2kFGGFtb3VudAgBAQUBAAQMd2hv5QEBAQUBAAgMd2hvaQUgbmV3X2ZyZWUIAQEFAQAIJGRpcmVjdGlvbm0FFGRlbHRhCAEBBQEACBR2YWx1ZQgoa2VlcF9hbGl2ZRQBAQUBAQUBAAgcYWNjb3VudAAwZnJlZV9iYWxhbmNlCAEBBQEACBxhY2NvdW50ABhhbW91bnQIAQEFAQAMEGZyb20ACHRvABhhbW91bnQIAQEFAQAIDHdobwAQZnJlZQgBAQUBAAgMd2hvABhhbW91bnQIAQEFAQAQEGZyb20ACHRvABhhbW91bnQISGRlc3RpbmF0aW9uX3N0YXR1c2UBAQEFAQAEGGFtb3VudAgBAQUBAAQMd2hvAAEBBQEACAxvbGQIDG5ldwgBAQUBAAwYcmVhc29ujQEMd2hvABhhbW91bnQIAQEFAQAQGHJlYXNvbo0BGHNvdXJjZQAQZGVzdAAYYW1vdW50CAEBBQEAEBhyZWFzb26NARhzb3VyY2UAEGRlc3QALHRyYW5zZmVycmVkCAEBBQCRAQEBBQAdCgEBBQEADAx3aG8AKGFjdHVhbF9mZWUIDHRpcAgBAQUBABAMd2hvAChhY3R1YWxfZmVlCAx0aXAIIGFzc2V0X2lk1QEBAQUBAARIbmF0aXZlX2Ftb3VudF9rZXB0CAAAAMEIAQEFACEKAQAEGHRhcmdldGkFAQEFAQAIGHRhcmdldGkFIHNjaGVkdWxldQUBAQUBAAwYc291cmNlaQUYdGFyZ2V0aQUgc2NoZWR1bGV1BQEBBQEACDxzY2hlZHVsZTFfaW5kZXgEPHNjaGVkdWxlMl9pbmRleAQBAQUBAAgYdGFyZ2V0aQU4c2NoZWR1bGVfaW5kZXgEAQEFAQEFAQAIHGFjY291bnQAOHNjaGVkdWxlX2luZGV4BAEBBQEACBxhY2NvdW50ACB1bnZlc3RlZAgApQEACAClAQCBBQClAQCJBQAAAKUBAQAIEGRlc3QASGV0aGVyZXVtX3NpZ25hdHVyZX0FAQEFAQAQDHdob6UBFHZhbHVlCEB2ZXN0aW5nX3NjaGVkdWxlhQUkc3RhdGVtZW50jQUBAQUBAAwQZGVzdABIZXRoZXJldW1fc2lnbmF0dXJlfQUkc3RhdGVtZW50JAEBBQEABCRzdGF0ZW1lbnQkAQEFAQAMDG9sZKUBDG5ld6UBOG1heWJlX3ByZWNsYWlt8QIBAQUBAQUBAAwMd2hvAEBldGhlcmV1bV9hZGRyZXNzpQEYYW1vdW50CAEBBQABAgEBBQAAAQEFAOUBAQEFACkKAAAABAEABAxuZXflAQEBBQEABAxtYXgEAQEFAQAEEGJvbmQIAQEFAQAEDHdobwABAQUBAAQsbmV3X2RlcG9zaXQIAQEFAQAIHGRlcG9zaXQIGHRhcmdldAABAQUBAQUBAAQ0aW52dWxuZXJhYmxlc+UBAQEFAQAEKGFjY291bnRfaWQAAQEFAQAESGRlc2lyZWRfY2FuZGlkYXRlcwQBAQUBAAQsYm9uZF9hbW91bnQIAQEFAQAIKGFjY291bnRfaWQAHGRlcG9zaXQIAQEFAQAMDG9sZAAMbmV3ABxkZXBvc2l0CAEBBQAxCgEBBQARBAAAACAANQoAAAAAACUBAQAIEGtleXMgFHByb29mJAEBBQEBBQEABDRzZXNzaW9uX2luZGV4BAEBBQEABCR2YWxpZGF0b3IAAQEFAOUDAQEFAJ0DAQEFAOkCAQEFAEEKAPkGACQBAQUARQoABAAIAQAEDG5ldwQBAQUBAQUBAAQwbWVzc2FnZV9oYXNoIAAIAFkKACAABABdCgAEAF0KAAgAXQoAYQoBAQUAaQoBAQUAbQoAcQoAfQoAAACFCgEBBQBpAgCdAgCRCgEBBQDRAQEACBBkZXN0nQIcbWVzc2FnZd0FAQEFAQAQEGRlc3SdAixiZW5lZmljaWFyeZ0CGGFzc2V0c5kCOGZlZV9hc3NldF9pdGVtBAEBBQEACBxtZXNzYWdl3QUobWF4X3dlaWdodBgBAQUBAAggbG9jYXRpb27VARx2ZXJzaW9uBAEBBQEABERtYXliZV94Y21fdmVyc2lvbu0CAQEFAQAEIGxvY2F0aW9unQIBAQUBABQQZGVzdJ0CLGJlbmVmaWNpYXJ5nQIYYXNzZXRzmQI4ZmVlX2Fzc2V0X2l0ZW0EMHdlaWdodF9saW1pdEkCAQEFAQAEJHN1c3BlbmRlZBQBAQUBAAgYYXNzZXRzmQIsYmVuZWZpY2lhcnmdAgEBBQEAHBBkZXN0nQIYYXNzZXRzmQJQYXNzZXRzX3RyYW5zZmVyX3R5cGXhBThyZW1vdGVfZmVlc19pZOUFSGZlZXNfdHJhbnNmZXJfdHlwZeEFSGN1c3RvbV94Y21fb25fZGVzdN0FMHdlaWdodF9saW1pdEkCAQEFAQAIHGFsaWFzZXKdAhxleHBpcmVzoQIBAQUBAAQcYWxpYXNlcp0CAQEFAQEFAQAEHG91dGNvbWX9AQEBBQEAEBhvcmlnaW7VASxkZXN0aW5hdGlvbtUBHG1lc3NhZ2VpAihtZXNzYWdlX2lkIAEBBQEAEBhvcmlnaW7VASxkZXN0aW5hdGlvbtUBFGVycm9ybQIobWVzc2FnZV9pZCABAQUBAAwYb3JpZ2lu1QEUZXJyb3L1AShtZXNzYWdlX2lkIAEBBQEACBhvcmlnaW7VASBxdWVyeV9pZAgBAQUBAAggcXVlcnlfaWQIIHJlc3BvbnNlLQIBAQUBAAwgcXVlcnlfaWQIMHBhbGxldF9pbmRleAQoY2FsbF9pbmRleAQBAQUBABQgcXVlcnlfaWQIMHBhbGxldF9pbmRleAQoY2FsbF9pbmRleAQ0YWN0dWFsX3dlaWdodBhMbWF4X2J1ZGdldGVkX3dlaWdodBgBAQUBAAwYb3JpZ2lu1QEgcXVlcnlfaWQIRGV4cGVjdGVkX2xvY2F0aW9uMQIBAQUBAAQgcXVlcnlfaWQIAQEFAQAMEGhhc2ggGG9yaWdpbtUBGGFzc2V0c5kCAQEFAQAQLGRlc3RpbmF0aW9u1QEYcmVzdWx0BBBjb3N0FQIobWVzc2FnZV9pZCABAQUBAAggbG9jYXRpb27VARx2ZXJzaW9uBAEBBQEADCBsb2NhdGlvbtUBIHF1ZXJ5X2lkCBRlcnJvcvUBAQEFAQAIIGxvY2F0aW9unQIgcXVlcnlfaWQIAQEFAQAQGG9yaWdpbtUBIHF1ZXJ5X2lkCEBleHBlY3RlZF9xdWVyaWVy1QFQbWF5YmVfYWN0dWFsX3F1ZXJpZXIxAgEBBQEADCxkZXN0aW5hdGlvbtUBEGNvc3QVAihtZXNzYWdlX2lkIAEBBQEACBhwYXlpbmfVARBmZWVzFQIBAQUBAAQcdmVyc2lvbgQBAQUBAAwcYWxpYXNlctUBGHRhcmdldNUBGGV4cGlyeaECAQEFAQAIHGFsaWFzZXLVARh0YXJnZXTVAQEBBQEABBh0YXJnZXTVAQEBBQEACBRpbmRleAQUZXJyb3JwAQEFACABAQUBAwgg/QEBAQUAlQoBAAgkYnJpZGdlX2lkIDBpc19jb25nZXN0ZWQUAQEFAQEFAQAEJG5ld192YWx1ZQgAsQIAoQoBAQUAsQIApQoAqQoBAQUASQEBAAg4bWVzc2FnZV9vcmlnaW6xAihwYWdlX2luZGV4BAEBBQEAEDhtZXNzYWdlX29yaWdpbrECEHBhZ2UEFGluZGV4BDB3ZWlnaHRfbGltaXQYAQEFAQEFAQAMCGlkIBhvcmlnaW6xAhRlcnJvcrUCAQEFAQAQCGlkIBhvcmlnaW6xAix3ZWlnaHRfdXNlZBgcc3VjY2VzcxQBAQUBABAIaWQgGG9yaWdpbrECKHBhZ2VfaW5kZXgENG1lc3NhZ2VfaW5kZXgEAQEFAQAIGG9yaWdpbrECFGluZGV4BAEBBQC9AgEABBBtb2RlvQIBAQUBAAwgYXNzZXRfaWSdAiBtZXRhZGF0YfUFJGZlZV9hc3NldBECAQEFAQAIKG1lc3NhZ2VfaWT5BRRhc3NldBECAQEFAQEFAQAEEG1vZGW9AgEABBRjYWxscwEGAQEFAQAIFGluZGV4BBBjYWxsCQoBAQUBAAgkYXNfb3JpZ2luFQUQY2FsbAkKAQEFAQAIEGNhbGwJChh3ZWlnaHQYAQEFAQAIEG1haW4JCiBmYWxsYmFjawkKAQEFAQEFAQAIFGluZGV4BBRlcnJvcg0BAQEFAQAEFGVycm9yDQEBAQUBAAQYcmVzdWx0KQEBAQUBAAQobWFpbl9lcnJvcg0BAC0KAK0KAQAIRG90aGVyX3NpZ25hdG9yaWVz5QEQY2FsbAkKAQEFAQAUJHRocmVzaG9sZAREb3RoZXJfc2lnbmF0b3JpZXPlATxtYXliZV90aW1lcG9pbnQJBhBjYWxsCQoobWF4X3dlaWdodBgBAQUBABQkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc+UBPG1heWJlX3RpbWVwb2ludAkGJGNhbGxfaGFzaCAobWF4X3dlaWdodBgBAQUBABAkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc+UBJHRpbWVwb2ludMkCJGNhbGxfaGFzaCABAQUBAAwkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc+UBJGNhbGxfaGFzaCABAQUBAQUBAAwkYXBwcm92aW5nACBtdWx0aXNpZwAkY2FsbF9oYXNoIAEBBQEAECRhcHByb3ZpbmcAJHRpbWVwb2ludMkCIG11bHRpc2lnACRjYWxsX2hhc2ggAQEFAQAUJGFwcHJvdmluZwAkdGltZXBvaW50yQIgbXVsdGlzaWcAJGNhbGxfaGFzaCAYcmVzdWx0KQEBAQUBABAoY2FuY2VsbGluZwAkdGltZXBvaW50yQIgbXVsdGlzaWcAJGNhbGxfaGFzaCABAQUBABAMd2hvACRjYWxsX2hhc2ggLG9sZF9kZXBvc2l0CCxuZXdfZGVwb3NpdAgAAAC5CgAAAMUKAQMICQrRAgAUAQMI0QLRAgAUAQAMEHJlYWxpBUBmb3JjZV9wcm94eV90eXBlEQYQY2FsbAkKAQEFAQAMIGRlbGVnYXRlaQUocHJveHlfdHlwZdECFGRlbGF5BAEBBQEADChwcm94eV90eXBl0QIUZGVsYXkEFGluZGV4BAEBBQEAFBxzcGF3bmVyaQUocHJveHlfdHlwZdECFGluZGV4BBhoZWlnaHQEJGV4dF9pbmRleAQBAQUBAAgQcmVhbGkFJGNhbGxfaGFzaCABAQUBAAggZGVsZWdhdGVpBSRjYWxsX2hhc2ggAQEFAQAQIGRlbGVnYXRlaQUQcmVhbGkFQGZvcmNlX3Byb3h5X3R5cGURBhBjYWxsCQoBAQUBAQUBABgQcHVyZQAMd2hvAChwcm94eV90eXBl0QJQZGlzYW1iaWd1YXRpb25faW5kZXgECGF0BDxleHRyaW5zaWNfaW5kZXgEAQEFAQAQEHB1cmUAHHNwYXduZXIAKHByb3h5X3R5cGXRAlBkaXNhbWJpZ3VhdGlvbl9pbmRleAQBAQUBAAwQcmVhbAAUcHJveHkAJGNhbGxfaGFzaCABAQUBABAkZGVsZWdhdG9yACRkZWxlZ2F0ZWUAKHByb3h5X3R5cGXRAhRkZWxheQQBAQUBABAMd2hvABBraW5k1QIsb2xkX2RlcG9zaXQILG5ld19kZXBvc2l0CAAEAMkKAQAEFGluZGV4BAEBBQEACAxuZXdpBRRpbmRleAQBAQUBAAwMbmV3aQUUaW5kZXgEGGZyZWV6ZRQBAQUBAQUBAAgUaW5kZXgEDHdobwABAQUBABAMd2hvABRpbmRleAQsb2xkX2RlcG9zaXQILG5ld19kZXBvc2l0CAAEANEKAHkDAN0KAOEKAOUKAAQA6QoABADhAgEDBAQA7QoBAwgABAChAgEDBAQA8QoBAwQEAOECAQAMCGlkBBRhZG1pbmkFLG1pbl9iYWxhbmNlCAEBBQEAEAhpZAQUb3duZXJpBTRpc19zdWZmaWNpZW50FCxtaW5fYmFsYW5jZQgBAQUBAAQIaWQEAQEFAQAMCGlkBCxiZW5lZmljaWFyeWkFGGFtb3VudAgBAQUBAAwIaWQEDHdob2kFGGFtb3VudAgBAQUBAAwIaWQEGHRhcmdldGkFGGFtb3VudAgBAQUBABAIaWQEGHNvdXJjZWkFEGRlc3RpBRhhbW91bnQIAQEFAQAICGlkBAx3aG9pBQEBBQEACAhpZAQUb3duZXJpBQEBBQEAEAhpZAQYaXNzdWVyaQUUYWRtaW5pBRxmcmVlemVyaQUBAQUBABAIaWQEEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEAQEFAQAUCGlkBBBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UAQEFAQAgCGlkBBRvd25lcmkFGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFLG1pbl9iYWxhbmNlCDRpc19zdWZmaWNpZW50FCRpc19mcm96ZW4UAQEFAQAMCGlkBCBkZWxlZ2F0ZWkFGGFtb3VudAgBAQUBAAgIaWQEIGRlbGVnYXRlaQUBAQUBAAwIaWQEFG93bmVyaQUgZGVsZWdhdGVpBQEBBQEAEAhpZAQUb3duZXJpBSxkZXN0aW5hdGlvbmkFGGFtb3VudAgBAQUBAAgIaWQEKGFsbG93X2J1cm4UAQEFAQAICGlkBCxtaW5fYmFsYW5jZQgBAQUBAAwIaWQEEGRlc3RpBShrZWVwX2FsaXZlFAEBBQEACAhpZAQgcmVzZXJ2ZXPhAgEBBQEBBQEADCBhc3NldF9pZAQcY3JlYXRvcgAUb3duZXIAAQEFAQAMIGFzc2V0X2lkBBRvd25lcgAYYW1vdW50CAEBBQEAECBhc3NldF9pZAQQZnJvbQAIdG8AGGFtb3VudAgBAQUBAAwgYXNzZXRfaWQEFG93bmVyABxiYWxhbmNlCAEBBQEAECBhc3NldF9pZAQYaXNzdWVyABRhZG1pbgAcZnJlZXplcgABAQUBAAggYXNzZXRfaWQEFG93bmVyAAEBBQEACCBhc3NldF9pZAQMd2hvAAEBBQEABCBhc3NldF9pZAQBAQUBAAwgYXNzZXRfaWQESGFjY291bnRzX2Rlc3Ryb3llZARIYWNjb3VudHNfcmVtYWluaW5nBAEBBQEADCBhc3NldF9pZARMYXBwcm92YWxzX2Rlc3Ryb3llZARMYXBwcm92YWxzX3JlbWFpbmluZwQBAQUBABQgYXNzZXRfaWQEEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhQBAQUBABAgYXNzZXRfaWQEGHNvdXJjZQAgZGVsZWdhdGUAGGFtb3VudAgBAQUBAAwgYXNzZXRfaWQEFG93bmVyACBkZWxlZ2F0ZQABAQUBABQgYXNzZXRfaWQEFG93bmVyACBkZWxlZ2F0ZQAsZGVzdGluYXRpb24AGGFtb3VudAgBAQUBAAggYXNzZXRfaWQEPG5ld19taW5fYmFsYW5jZQgBAQUBAAwgYXNzZXRfaWQEDHdobwAkZGVwb3NpdG9yAAEBBQEADCBhc3NldF9pZAQMd2hvABhhbW91bnQIAQEFAQAIIGFzc2V0X2lkBCByZXNlcnZlc+ECAAQA9QoA3QcAJQEAwQYAJQEAIQEA+QoABAD9CgAhAQD9CgABCwAFCwAhAQAJCwAEAAQBAAgoY29sbGVjdGlvbgQUYWRtaW5pBQEBBQEADChjb2xsZWN0aW9uBBRvd25lcmkFMGZyZWVfaG9sZGluZxQBAQUBAAgoY29sbGVjdGlvbgQcd2l0bmVzcyEGAQEFAQAMKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyaQUBAQUBAAwoY29sbGVjdGlvbgQQaXRlbQQsY2hlY2tfb3duZXIlBgEBBQEADChjb2xsZWN0aW9uBBBpdGVtBBBkZXN0aQUBAQUBAAgoY29sbGVjdGlvbgQUaXRlbXPpAgEBBQEACChjb2xsZWN0aW9uBBBpdGVtBAEBBQEABChjb2xsZWN0aW9uBAEBBQEACChjb2xsZWN0aW9uBCRuZXdfb3duZXJpBQEBBQEAEChjb2xsZWN0aW9uBBhpc3N1ZXJpBRRhZG1pbmkFHGZyZWV6ZXJpBQEBBQEADChjb2xsZWN0aW9uBBBpdGVtBCBkZWxlZ2F0ZWkFAQEFAQAMKGNvbGxlY3Rpb24EEGl0ZW0EUG1heWJlX2NoZWNrX2RlbGVnYXRlJQYBAQUBABwoY29sbGVjdGlvbgQUb3duZXJpBRhpc3N1ZXJpBRRhZG1pbmkFHGZyZWV6ZXJpBTBmcmVlX2hvbGRpbmcUJGlzX2Zyb3plbhQBAQUBABAoY29sbGVjdGlvbgQobWF5YmVfaXRlbe0CDGtleSQUdmFsdWUkAQEFAQAMKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkAQEFAQAQKGNvbGxlY3Rpb24EEGl0ZW0EEGRhdGEkJGlzX2Zyb3plbhQBAQUBAAwoY29sbGVjdGlvbgQQZGF0YSQkaXNfZnJvemVuFAEBBQEABEBtYXliZV9jb2xsZWN0aW9u7QIBAQUBAAgoY29sbGVjdGlvbgQobWF4X3N1cHBseQQBAQUBABAoY29sbGVjdGlvbgQQaXRlbQQUcHJpY2WhAkR3aGl0ZWxpc3RlZF9idXllciUGAQEFAQAMKGNvbGxlY3Rpb24EEGl0ZW0EJGJpZF9wcmljZQgBAQUBAQUBAAwoY29sbGVjdGlvbgQcY3JlYXRvcgAUb3duZXIAAQEFAQAIKGNvbGxlY3Rpb24EFG93bmVyAAEBBQEABChjb2xsZWN0aW9uBAEBBQEADChjb2xsZWN0aW9uBBBpdGVtBBRvd25lcgABAQUBABAoY29sbGVjdGlvbgQQaXRlbQQQZnJvbQAIdG8AAQEFAQAIKGNvbGxlY3Rpb24EEGl0ZW0EAQEFAQAIKGNvbGxlY3Rpb24EJG5ld19vd25lcgABAQUBABAoY29sbGVjdGlvbgQYaXNzdWVyABRhZG1pbgAcZnJlZXplcgABAQUBABAoY29sbGVjdGlvbgQQaXRlbQQUb3duZXIAIGRlbGVnYXRlAAEBBQEADChjb2xsZWN0aW9uBBBkYXRhJCRpc19mcm96ZW4UAQEFAQAQKGNvbGxlY3Rpb24EEGl0ZW0EEGRhdGEkJGlzX2Zyb3plbhQBAQUBAAgoY29sbGVjdGlvbgRAc3VjY2Vzc2Z1bF9pdGVtc+kCAQEFAQAQKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkFHZhbHVlJAEBBQEADChjb2xsZWN0aW9uBChtYXliZV9pdGVt7QIMa2V5JAEBBQEACAx3aG8AQG1heWJlX2NvbGxlY3Rpb27tAgEBBQEACChjb2xsZWN0aW9uBChtYXhfc3VwcGx5BAEBBQEAEChjb2xsZWN0aW9uBBBpdGVtBBRwcmljZQhEd2hpdGVsaXN0ZWRfYnV5ZXLxAgEBBQEAFChjb2xsZWN0aW9uBBBpdGVtBBRwcmljZQgYc2VsbGVyABRidXllcgAABAANCwB5AwAEACEBAB0LAAQAIQsAIQEAKQsALQsAMQsAIQEA5QEAIQEANQsABAA1BgAhAQAIAQAIFGFkbWluaQUYY29uZmlnNQYBAQUBAAgUb3duZXJpBRhjb25maWc1BgEBBQEACChjb2xsZWN0aW9uBBx3aXRuZXNzOQYBAQUBABAoY29sbGVjdGlvbgQQaXRlbQQcbWludF90b2kFMHdpdG5lc3NfZGF0YUEGAQEFAQAQKGNvbGxlY3Rpb24EEGl0ZW0EHG1pbnRfdG9pBSxpdGVtX2NvbmZpZwgBAQUBAAgoY29sbGVjdGlvbgQ0bG9ja19zZXR0aW5ncwgBAQUBABAoY29sbGVjdGlvbgQYaXNzdWVyJQYUYWRtaW4lBhxmcmVlemVyJQYBAQUBAAgoY29sbGVjdGlvbgQUb3duZXJpBQEBBQEACChjb2xsZWN0aW9uBBhjb25maWc1BgEBBQEAEChjb2xsZWN0aW9uBBBpdGVtBCBkZWxlZ2F0ZWkFOG1heWJlX2RlYWRsaW5l7QIBAQUBABAoY29sbGVjdGlvbgQQaXRlbQQ0bG9ja19tZXRhZGF0YRQ8bG9ja19hdHRyaWJ1dGVzFAEBBQEAFChjb2xsZWN0aW9uBChtYXliZV9pdGVt7QIkbmFtZXNwYWNl+QIMa2V5JBR2YWx1ZSQBAQUBABgYc2V0X2Fz8QIoY29sbGVjdGlvbgQobWF5YmVfaXRlbe0CJG5hbWVzcGFjZfkCDGtleSQUdmFsdWUkAQEFAQAQKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAiRuYW1lc3BhY2X5AgxrZXkkAQEFAQAQKGNvbGxlY3Rpb24EEGl0ZW0EIGRlbGVnYXRlaQUcd2l0bmVzcwQBAQUBAAwoY29sbGVjdGlvbgQQaXRlbQQQZGF0YSQBAQUBAAgoY29sbGVjdGlvbgQQZGF0YSQBAQUBAAgoY29sbGVjdGlvbgQ0bWludF9zZXR0aW5nczEGAQEFAQAEEHRpcHNJBgEBBQEAGEhvZmZlcmVkX2NvbGxlY3Rpb24EMG9mZmVyZWRfaXRlbQRIZGVzaXJlZF9jb2xsZWN0aW9uBEhtYXliZV9kZXNpcmVkX2l0ZW3tAixtYXliZV9wcmljZQUDIGR1cmF0aW9uBAEBBQEACEhvZmZlcmVkX2NvbGxlY3Rpb24EMG9mZmVyZWRfaXRlbQQBAQUBABQ8c2VuZF9jb2xsZWN0aW9uBCRzZW5kX2l0ZW0ESHJlY2VpdmVfY29sbGVjdGlvbgQwcmVjZWl2ZV9pdGVtBDR3aXRuZXNzX3ByaWNlBQMBAQUBAAwkbWludF9kYXRhTQYkc2lnbmF0dXJlVQYYc2lnbmVyAAEBBQEADBBkYXRhWQYkc2lnbmF0dXJlVQYYc2lnbmVyAAEBBQEBBQEAEChjb2xsZWN0aW9uBBBpdGVtBDRsb2NrX21ldGFkYXRhFDxsb2NrX2F0dHJpYnV0ZXMUAQEFAQAQKGNvbGxlY3Rpb24EGGlzc3VlcvECFGFkbWlu8QIcZnJlZXplcvECAQEFAQAUKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyACBkZWxlZ2F0ZQAgZGVhZGxpbmXtAgEBBQEACChjb2xsZWN0aW9uBBBkYXRhJAEBBQEADChjb2xsZWN0aW9uBBBpdGVtBBBkYXRhJAEBBQEAFChjb2xsZWN0aW9uBChtYXliZV9pdGVt7QIMa2V5JBR2YWx1ZSQkbmFtZXNwYWNl+QIBAQUBABAoY29sbGVjdGlvbgQobWF5YmVfaXRlbe0CDGtleSQkbmFtZXNwYWNl+QIBAQUBAAwoY29sbGVjdGlvbgQQaXRlbQQgZGVsZWdhdGUAAQEFAQAEHG5leHRfaWTtAgEBBQEAFChjb2xsZWN0aW9uBBBpdGVtBBhzZW5kZXIAIHJlY2VpdmVyABhhbW91bnQIAQEFAQAYSG9mZmVyZWRfY29sbGVjdGlvbgQwb2ZmZXJlZF9pdGVtBEhkZXNpcmVkX2NvbGxlY3Rpb24EMGRlc2lyZWRfaXRlbe0CFHByaWNlBQMgZGVhZGxpbmUEAQEFAQAgPHNlbnRfY29sbGVjdGlvbgQkc2VudF9pdGVtBDxzZW50X2l0ZW1fb3duZXIATHJlY2VpdmVkX2NvbGxlY3Rpb24ENHJlY2VpdmVkX2l0ZW0ETHJlY2VpdmVkX2l0ZW1fb3duZXIAFHByaWNlBQMgZGVhZGxpbmUEAQEFAQAMKGNvbGxlY3Rpb24EEGl0ZW0EJG5hbWVzcGFjZfkCAQEFAQAQKGNvbGxlY3Rpb24EEGl0ZW3tAiRhdHRyaWJ1dGUJAxR2YWx1ZSQA1QEA0QoAOQsA3QoAPQsA5QoA1QEA6QoA1QEAFQMBAQUA1QEBAwTVAQDtCgEDCADVAQChAgEDBNUBAPEKAQME1QEAFQMBAAwIaWTVARRhZG1pbmkFLG1pbl9iYWxhbmNlCAEBBQEAEAhpZNUBFG93bmVyaQU0aXNfc3VmZmljaWVudBQsbWluX2JhbGFuY2UIAQEFAQAECGlk1QEBAQUBAAwIaWTVASxiZW5lZmljaWFyeWkFGGFtb3VudAgBAQUBAAwIaWTVAQx3aG9pBRhhbW91bnQIAQEFAQAMCGlk1QEYdGFyZ2V0aQUYYW1vdW50CAEBBQEAEAhpZNUBGHNvdXJjZWkFEGRlc3RpBRhhbW91bnQIAQEFAQAICGlk1QEMd2hvaQUBAQUBAAgIaWTVARRvd25lcmkFAQEFAQAQCGlk1QEYaXNzdWVyaQUUYWRtaW5pBRxmcmVlemVyaQUBAQUBABAIaWTVARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBAEBBQEAFAhpZNUBEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhQBAQUBACAIaWTVARRvd25lcmkFGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFLG1pbl9iYWxhbmNlCDRpc19zdWZmaWNpZW50FCRpc19mcm96ZW4UAQEFAQAMCGlk1QEgZGVsZWdhdGVpBRhhbW91bnQIAQEFAQAICGlk1QEgZGVsZWdhdGVpBQEBBQEADAhpZNUBFG93bmVyaQUgZGVsZWdhdGVpBQEBBQEAEAhpZNUBFG93bmVyaQUsZGVzdGluYXRpb25pBRhhbW91bnQIAQEFAQAICGlk1QEoYWxsb3dfYnVybhQBAQUBAAgIaWTVASxtaW5fYmFsYW5jZQgBAQUBAAwIaWTVARBkZXN0aQUoa2VlcF9hbGl2ZRQBAQUBAAgIaWTVASByZXNlcnZlcxUDAQEFAQEFAQAMIGFzc2V0X2lk1QEcY3JlYXRvcgAUb3duZXIAAQEFAQAMIGFzc2V0X2lk1QEUb3duZXIAGGFtb3VudAgBAQUBABAgYXNzZXRfaWTVARBmcm9tAAh0bwAYYW1vdW50CAEBBQEADCBhc3NldF9pZNUBFG93bmVyABxiYWxhbmNlCAEBBQEAECBhc3NldF9pZNUBGGlzc3VlcgAUYWRtaW4AHGZyZWV6ZXIAAQEFAQAIIGFzc2V0X2lk1QEUb3duZXIAAQEFAQAIIGFzc2V0X2lk1QEMd2hvAAEBBQEABCBhc3NldF9pZNUBAQEFAQAMIGFzc2V0X2lk1QFIYWNjb3VudHNfZGVzdHJveWVkBEhhY2NvdW50c19yZW1haW5pbmcEAQEFAQAMIGFzc2V0X2lk1QFMYXBwcm92YWxzX2Rlc3Ryb3llZARMYXBwcm92YWxzX3JlbWFpbmluZwQBAQUBABQgYXNzZXRfaWTVARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UAQEFAQAQIGFzc2V0X2lk1QEYc291cmNlACBkZWxlZ2F0ZQAYYW1vdW50CAEBBQEADCBhc3NldF9pZNUBFG93bmVyACBkZWxlZ2F0ZQABAQUBABQgYXNzZXRfaWTVARRvd25lcgAgZGVsZWdhdGUALGRlc3RpbmF0aW9uABhhbW91bnQIAQEFAQAIIGFzc2V0X2lk1QE8bmV3X21pbl9iYWxhbmNlCAEBBQEADCBhc3NldF9pZNUBDHdobwAkZGVwb3NpdG9yAAEBBQEADCBhc3NldF9pZNUBDHdobwAYYW1vdW50CAEBBQEACCBhc3NldF9pZNUBIHJlc2VydmVzFQMAHQMABAEDCNUB1QEARQsBAxDVAdUBCBQAoQIBAAgYYXNzZXQx1QEYYXNzZXQy1QEBAQUBABwYYXNzZXQx1QEYYXNzZXQy1QE8YW1vdW50MV9kZXNpcmVkCDxhbW91bnQyX2Rlc2lyZWQILGFtb3VudDFfbWluCCxhbW91bnQyX21pbggcbWludF90bwABAQUBABgYYXNzZXQx1QEYYXNzZXQy1QE0bHBfdG9rZW5fYnVybghMYW1vdW50MV9taW5fcmVjZWl2ZQhMYW1vdW50Ml9taW5fcmVjZWl2ZQgsd2l0aGRyYXdfdG8AAQEFAQAUEHBhdGhlBiRhbW91bnRfaW4IOGFtb3VudF9vdXRfbWluCBxzZW5kX3RvAChrZWVwX2FsaXZlFAEBBQEAFBBwYXRoZQYoYW1vdW50X291dAg0YW1vdW50X2luX21heAgcc2VuZF90bwAoa2VlcF9hbGl2ZRQBAQUBAQUBABAcY3JlYXRvcgAccG9vbF9pZB0DMHBvb2xfYWNjb3VudAAgbHBfdG9rZW4EAQEFAQAcDHdobwAcbWludF90bwAccG9vbF9pZB0DQGFtb3VudDFfcHJvdmlkZWQIQGFtb3VudDJfcHJvdmlkZWQIIGxwX3Rva2VuBDxscF90b2tlbl9taW50ZWQIAQEFAQAgDHdobwAsd2l0aGRyYXdfdG8AHHBvb2xfaWQdAxxhbW91bnQxCBxhbW91bnQyCCBscF90b2tlbgQ8bHBfdG9rZW5fYnVybmVkCDh3aXRoZHJhd2FsX2ZlZQQBAQUBABQMd2hvABxzZW5kX3RvACRhbW91bnRfaW4IKGFtb3VudF9vdXQIEHBhdGglAwEBBQEADCRhbW91bnRfaW4IKGFtb3VudF9vdXQIEHBhdGglAwEBBQEACBxwb29sX2lkHQMMd2hvAAAEAIkJAAQASQsBAAgYYW1vdW50CCxiZW5lZmljaWFyeWkFAQEFAQAELHByb3Bvc2FsX2lkBAEBBQEAEChhc3NldF9raW5kLQMYYW1vdW50CCxiZW5lZmljaWFyeTEDKHZhbGlkX2Zyb23tAgEBBQEBBQEABEBidWRnZXRfcmVtYWluaW5nCAEBBQEADDhwcm9wb3NhbF9pbmRleAQUYXdhcmQIHGFjY291bnQAAQEFAQAELGJ1cm50X2Z1bmRzCAEBBQEABEByb2xsb3Zlcl9iYWxhbmNlCAEBBQEABBR2YWx1ZQgBAQUBAAw4cHJvcG9zYWxfaW5kZXgEGGFtb3VudAgsYmVuZWZpY2lhcnkAAQEFAQAILHJlYWN0aXZhdGVkCCxkZWFjdGl2YXRlZAgBAQUBABgUaW5kZXgEKGFzc2V0X2tpbmQtAxhhbW91bnQILGJlbmVmaWNpYXJ5MQModmFsaWRfZnJvbQQkZXhwaXJlX2F0BAEBBQEACBRpbmRleAQocGF5bWVudF9pZAgAwQYAWQkAAAB1CAEACChwb2xsX2luZGV4BBB2b3RlOQMBAQUBABAUY2xhc3MECHRvaQUoY29udmljdGlvbnEGHGJhbGFuY2UIAQEFAQAEFGNsYXNzBAEBBQEACBRjbGFzcwQYdGFyZ2V0aQUBAQUBAAgUY2xhc3PtAhRpbmRleAQBAQUBAAwYdGFyZ2V0aQUUY2xhc3MEFGluZGV4BAEBBQEBBQEDDAAABAEBBQEDCAAEAQEFAQAMDHdobwAQdm90ZTkDKHBvbGxfaW5kZXgEAQEFAQAIDHdobwAUY2xhc3MEAAQAUQsABAB1CAEBBQBhCwEADDxwcm9wb3NhbF9vcmlnaW4VBSBwcm9wb3NhbEEDQGVuYWN0bWVudF9tb21lbnR5BgEBBQEABBR0cmFjawQBAQUBAAgUaW5kZXgEKG1heWJlX2hhc2gVAQEBBQEBBQEADBRpbmRleAQUdHJhY2sEIHByb3Bvc2FsQQMBAQUBAAwUaW5kZXgEDHdobwAYYW1vdW50CAEBBQEAEBRpbmRleAQUdHJhY2sEIHByb3Bvc2FsQQMUdGFsbHlFAwEBBQEACBRpbmRleAQUdGFsbHlFAwEBBQEACBRpbmRleAQQaGFzaCAAIAAlAQEABCRjYWxsX2hhc2ggAQEFAQAMJGNhbGxfaGFzaCBAY2FsbF9lbmNvZGVkX2xlbgRMY2FsbF93ZWlnaHRfd2l0bmVzcxgBAQUBAAQQY2FsbAkKAQEFAQEFAQAEJGNhbGxfaGFzaCABAQUBAAgkY2FsbF9oYXNoIBhyZXN1bHRVAwAEAGkJAQEFAKECAQAIFHZhbHVlCCxkZXNjcmlwdGlvbiQBAQUBAAQkYm91bnR5X2lkBAEBBQEADCRib3VudHlfaWQEHGN1cmF0b3JpBQxmZWUIAQEFAQAIJGJvdW50eV9pZAQsYmVuZWZpY2lhcnlpBQEBBQEACCRib3VudHlfaWQEGHJlbWFyayQBAQUBAQUBAAgUaW5kZXgEEGJvbmQIAQEFAQAIFGluZGV4BCxiZW5lZmljaWFyeQABAQUBAAwUaW5kZXgEGHBheW91dAgsYmVuZWZpY2lhcnkAAQEFAQAIJGJvdW50eV9pZAQcY3VyYXRvcgABAQUBAAQkYm91bnR5X2lkBAEBBQEAECRib3VudHlfaWQEIHByb3Bvc2VyACxvbGRfZGVwb3NpdAgsbmV3X2RlcG9zaXQIACEBAMEJACEBACQABAAhAQEADEBwYXJlbnRfYm91bnR5X2lkBBR2YWx1ZQgsZGVzY3JpcHRpb24kAQEFAQAQQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZAQcY3VyYXRvcmkFDGZlZQgBAQUBAAhAcGFyZW50X2JvdW50eV9pZAQ8Y2hpbGRfYm91bnR5X2lkBAEBBQEADEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWQELGJlbmVmaWNpYXJ5aQUBAQUBAQUBAAgUaW5kZXgELGNoaWxkX2luZGV4BAEBBQEADBRpbmRleAQsY2hpbGRfaW5kZXgELGJlbmVmaWNpYXJ5AAEBBQEAEBRpbmRleAQsY2hpbGRfaW5kZXgEGHBheW91dAgsYmVuZWZpY2lhcnkAAC0DAAgBAAgoYXNzZXRfa2luZC0DEHJhdGUIAQEFAQAEKGFzc2V0X2tpbmQtAwEBBQEBBQEACChhc3NldF9raW5kLQMQcmF0ZQgBAQUBAAQoYXNzZXRfa2luZC0DAQEFAQAMKGFzc2V0X2tpbmQtAwxvbGQIDG5ldwgABABtCwAhAQBxCwB1CwAIAQAQKGFzc2V0X2tpbmQtAxR2YWx1ZQgcY3VyYXRvcmkFIG1ldGFkYXRhIAEBBQEAEEBwYXJlbnRfYm91bnR5X2lkBBR2YWx1ZQggbWV0YWRhdGEgHGN1cmF0b3IlBgEBBQEADEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWTtAhxjdXJhdG9yaQUBAQUBAAhAcGFyZW50X2JvdW50eV9pZAQ8Y2hpbGRfYm91bnR5X2lk7QIBAQUBAAxAcGFyZW50X2JvdW50eV9pZAQ8Y2hpbGRfYm91bnR5X2lk7QIsYmVuZWZpY2lhcnkxAwEBBQEBBQEADBRpbmRleAQsY2hpbGRfaW5kZXjtAhxjdXJhdG9yAAEBBQEADBRpbmRleAQsY2hpbGRfaW5kZXjtAixiZW5lZmljaWFyeTEDAQEFAQAUFGluZGV4BCxjaGlsZF9pbmRleO0CKGFzc2V0X2tpbmQtAxR2YWx1ZQgsYmVuZWZpY2lhcnkxAwEBBQEACBRpbmRleAQsY2hpbGRfaW5kZXjtAgEBBQEADBRpbmRleAQsY2hpbGRfaW5kZXjtAihwYXltZW50X2lkCAEBBQChBgEBBQCZBgEBBQCVBgEABDBtYXliZV9jb25maWeZBgEBBQEADBhsaW1pdHOVBjxyZWFsX3NpemVfdXBwZXIEMHdpdG5lc3NfdGFza6EGAQEFAQAIEGtleXNJBDB3aXRuZXNzX3NpemUEAQEFAQAMEHJvb3QkKGNoaWxkX2tleXNJBCh0b3RhbF9zaXplBAEBBQEABBhsaW1pdHOVBgEBBQEACDBwcm9ncmVzc190b3CdBjhwcm9ncmVzc19jaGlsZJ0GAQEFAQEFAQAMDHRvcAQUY2hpbGQEHGNvbXB1dGVtAwEBBQEABBRlcnJvcsAAAAB5CAAEAI0IAAQAlQgABACpCAAAAI0DAQAIGGFtb3VudAgccG9vbF9pZAQBAQUBAAQUZXh0cmGpBgEBBQEACDhtZW1iZXJfYWNjb3VudGkFQHVuYm9uZGluZ19wb2ludHMIAQEFAQAIHHBvb2xfaWQESG51bV9zbGFzaGluZ19zcGFucwQBAQUBAAg4bWVtYmVyX2FjY291bnRpBUhudW1fc2xhc2hpbmdfc3BhbnMEAQEFAQAQGGFtb3VudAgQcm9vdGkFJG5vbWluYXRvcmkFHGJvdW5jZXJpBQEBBQEAFBhhbW91bnQIEHJvb3RpBSRub21pbmF0b3JpBRxib3VuY2VyaQUccG9vbF9pZAQBAQUBAAgccG9vbF9pZAQodmFsaWRhdG9yc+UBAQEFAQAIHHBvb2xfaWQEFHN0YXRldQMBAQUBAAgccG9vbF9pZAQgbWV0YWRhdGEkAQEFAQAYNG1pbl9qb2luX2JvbmStBjxtaW5fY3JlYXRlX2JvbmStBiRtYXhfcG9vbHOxBixtYXhfbWVtYmVyc7EGUG1heF9tZW1iZXJzX3Blcl9wb29ssQZUZ2xvYmFsX21heF9jb21taXNzaW9usQYBAQUBABAccG9vbF9pZAQgbmV3X3Jvb3S1BjRuZXdfbm9taW5hdG9ytQYsbmV3X2JvdW5jZXK1BgEBBQEABBxwb29sX2lkBAEBBQEACBhtZW1iZXJpBRRleHRyYakGAQEFAQAEKHBlcm1pc3Npb26NAwEBBQEABBRvdGhlcgABAQUBAAgccG9vbF9pZAQ4bmV3X2NvbW1pc3Npb259AwEBBQEACBxwb29sX2lkBDhtYXhfY29tbWlzc2lvbgQBAQUBAAgccG9vbF9pZAQsY2hhbmdlX3JhdGWBAwEBBQEACBxwb29sX2lkBChwZXJtaXNzaW9uiQMBAQUBAAQ4bWVtYmVyX2FjY291bnRpBQEBBQEBBQEACCRkZXBvc2l0b3IAHHBvb2xfaWQEAQEFAQAQGG1lbWJlcgAccG9vbF9pZAQYYm9uZGVkCBhqb2luZWQUAQEFAQAMGG1lbWJlcgAccG9vbF9pZAQYcGF5b3V0CAEBBQEAFBhtZW1iZXIAHHBvb2xfaWQEHGJhbGFuY2UIGHBvaW50cwgMZXJhBAEBBQEAEBhtZW1iZXIAHHBvb2xfaWQEHGJhbGFuY2UIGHBvaW50cwgBAQUBAAQccG9vbF9pZAQBAQUBAAgccG9vbF9pZAQkbmV3X3N0YXRldQMBAQUBAAwccG9vbF9pZAQYbWVtYmVyAEByZWxlYXNlZF9iYWxhbmNlCAEBBQEADBByb2908QIcYm91bmNlcvECJG5vbWluYXRvcvECAQEFAQAIHHBvb2xfaWQEHGJhbGFuY2UIAQEFAQAMHHBvb2xfaWQEDGVyYQQcYmFsYW5jZQgBAQUBAAgccG9vbF9pZAQcY3VycmVudH0DAQEFAQAIHHBvb2xfaWQEOG1heF9jb21taXNzaW9uBAEBBQEACBxwb29sX2lkBCxjaGFuZ2VfcmF0ZYEDAQEFAQAIHHBvb2xfaWQEKHBlcm1pc3Npb26JAwEBBQEACBxwb29sX2lkBChjb21taXNzaW9uCAEBBQEACBxwb29sX2lkBBhhbW91bnQIAQEFAQAIGG1lbWJlcgAocGVybWlzc2lvbo0DAQEFAQAIHHBvb2xfaWQEGGNhbGxlcgABAQUBABg0bWluX2pvaW5fYm9uZAg8bWluX2NyZWF0ZV9ib25kCCRtYXhfcG9vbHPtAixtYXhfbWVtYmVyc+0CUG1heF9tZW1iZXJzX3Blcl9wb29s7QJUZ2xvYmFsX21heF9jb21taXNzaW9u7QIBAQUAxAAAAB0JAAgAeQsBAQUAJQEBAQUAfQsBAwQAAIELAQAEKGRpc2xvY2F0ZWRpBQEBBQEABBxsaWdodGVyaQUBAQUBAAgcaGVhdmllcmkFHGxpZ2h0ZXJpBQEBBQEBBQEADAx3aG8AEGZyb20ICHRvCAEBBQEACAx3aG8AJG5ld19zY29yZQgBAQUAzAAAAIULAAAAiQsBAQUBAAwUYWdlbnQAJGRlbGVnYXRvcgAYYW1vdW50CAEBBQDJBgEBBQCRCwEABBhyZXBvcnTJBgEBBQEABCBvZmZlbmNlc9UGAQEFAQAMEGtleXMkFHByb29mJJRtYXhfZGVsaXZlcnlfYW5kX3JlbW90ZV9leGVjdXRpb25fZmVloQIBAQUBAASUbWF4X2RlbGl2ZXJ5X2FuZF9yZW1vdGVfZXhlY3V0aW9uX2ZlZaECAQEFAQEFAQAQJGVuZF9pbmRleARQYWN0aXZhdGlvbl90aW1lc3RhbXChA1x2YWxpZGF0b3JfcG9pbnRzX2NvdW50cwQgbGVmdG92ZXIUAQEFAQAINHNsYXNoX3Nlc3Npb24EOG9mZmVuY2VzX2NvdW50BAEBBQEACAx3aG8AEGZlZXMIAQEFAKUDAQEFAK0DACEBAJkLACEBACABAAQIb3DdBgEBBQEABAhvcPEGAQEFAQEFAQAIEGZyb22tAwh0b60DACEBAO0GAAQAnQsAIQEAqQsABAC9AwEBBQC9AwEBBQCtCwEBBQEDCAS5AwEBBQEEBAEIAQEFAQMIvQPBAwEABDhwYWdlZF9zb2x1dGlvbrkHAQEFAAQAtQsAuQsAsQcAeQMAwQsBAwgABAAIAQAENGNsYWltZWRfc2NvcmW9AwEBBQEACBBwYWdlBDhtYXliZV9zb2x1dGlvbsEHAQEFAQAIFHJvdW5kBDR3aXRuZXNzX3BhZ2VzBAEBBQEABAxpbnblAQEBBQEBBQEDDAQAvQMBAQUBAwwEAAQBAQUBAwwEAAgBAQUBAwgEAAAAAAAABAAUAAAA3QkAAADNAwAAANEDAAAA4QkBAQUAzQkAeQMA5QkAuQsA8QkAeQMA6QIAeQMA0QMABAD1CQEBBQDVAwB5AwDFCwEBBQDJCwDNCwDRCwAEAMUGAHkDAHEIAQEFANULAAQA2QsBAAgUdmFsdWUIFHBheWVlzQMBAQUBAAQ4bWF4X2FkZGl0aW9uYWwIAQEFAQAEFHZhbHVlCAEBBQEABEhudW1fc2xhc2hpbmdfc3BhbnMEAQEFAQAEFHByZWZz0QMBAQUBAAQcdGFyZ2V0c8kHAQEFAQAEFHBheWVlzQMBAQUBAAQoYWRkaXRpb25hbAQBAQUBAAQYZmFjdG9yBAEBBQEABDRpbnZ1bG5lcmFibGVz5QEBAQUBAAgUc3Rhc2gASG51bV9zbGFzaGluZ19zcGFucwQBAQUBAAgMZXJhBER2YWxpZGF0b3Jfc2xhc2hlc8UGAQEFAQAIPHZhbGlkYXRvcl9zdGFzaAAMZXJhBAEBBQEABAx3aG/JBwEBBQEAIEhtaW5fbm9taW5hdG9yX2JvbmStBkhtaW5fdmFsaWRhdG9yX2JvbmStBkxtYXhfbm9taW5hdG9yX2NvdW50sQZMbWF4X3ZhbGlkYXRvcl9jb3VudLEGPGNoaWxsX3RocmVzaG9sZLEGOG1pbl9jb21taXNzaW9usQZIbWF4X3N0YWtlZF9yZXdhcmRzsQZgYXJlX25vbWluYXRvcnNfc2xhc2hhYmxlzQcBAQUBAAQUc3Rhc2gAAQEFAQAEPHZhbGlkYXRvcl9zdGFzaAABAQUBAAw8dmFsaWRhdG9yX3N0YXNoAAxlcmEEEHBhZ2UEAQEFAQAEKGNvbnRyb2xsZXIAAQEFAQAELGNvbnRyb2xsZXJz5QEBAQUBABAUc3Rhc2gAQG1heWJlX2NvbnRyb2xsZXLxAixtYXliZV90b3RhbKECPG1heWJlX3VubG9ja2luZ9kHAQEFAQAIJHNsYXNoX2VyYQQkc2xhc2hfa2V53QcBAQUBAAQMZXJhBAEBBQEBBQEADCRlcmFfaW5kZXgEQHZhbGlkYXRvcl9wYXlvdXQIJHJlbWFpbmRlcggBAQUBAAwUc3Rhc2gAEGRlc3TNAxhhbW91bnQIAQEFAQAIGHN0YWtlcgAYYW1vdW50CAEBBQEACBRzdGFzaAAYYW1vdW50CAEBBQEABBRzdGFzaAABAQUBAAgkbm9taW5hdG9yABRzdGFzaAABAQUBABAkZXJhX2luZGV4BDx2YWxpZGF0b3Jfc3Rhc2gAEHBhZ2UEEG5leHTtAgEBBQEACBRzdGFzaAAUcHJlZnPRAwEBBQEABBBzaXplBAEBBQEABBBtb2Rl1QMBAQUBAAQgZmFpbHVyZXMEAQEFAQAIFHN0YXNoADhmb3JjZV93aXRoZHJhdwgBAQUBAAgQcGFnZQQYcmVzdWx02QMBAQUBAAwsb2ZmZW5jZV9lcmEEJHZhbGlkYXRvcgAgZnJhY3Rpb24EAQEFAQAQLG9mZmVuY2VfZXJhBCRzbGFzaF9lcmEEIG9mZmVuZGVyABBwYWdlBAEBBQEACCRzbGFzaF9lcmEEJHZhbGlkYXRvcgABAQUBAAxAc3RhcnRpbmdfc2Vzc2lvbgQoYWN0aXZlX2VyYQQscGxhbm5lZF9lcmEEAQEFAN0DACAAJAAgAOELAKUBAO0LAKUBACQBAQUA8QsApQEAAAEBBQBRDAEBBQBZDAEBBQBhDAEBBQBlDAEBBQBpDAEABBxwYXlsb2FkJAEBBQEAFBBkZXN0pQEUdmFsdWUIMHdlaWdodF9saW1pdBhUc3RvcmFnZV9kZXBvc2l0X2xpbWl0CBBkYXRhJAEBBQEAGBR2YWx1ZQgwd2VpZ2h0X2xpbWl0GFRzdG9yYWdlX2RlcG9zaXRfbGltaXQIJGNvZGVfaGFzaCAQZGF0YSQQc2FsdBUBAQEFAQAYFHZhbHVlCDB3ZWlnaHRfbGltaXQYVHN0b3JhZ2VfZGVwb3NpdF9saW1pdAgQY29kZSQQZGF0YSQQc2FsdBUBAQEFAQAgFHZhbHVl5Qcwd2VpZ2h0X2xpbWl0GDRldGhfZ2FzX2xpbWl05QcQY29kZSQQZGF0YSRMdHJhbnNhY3Rpb25fZW5jb2RlZCRMZWZmZWN0aXZlX2dhc19wcmljZeUHLGVuY29kZWRfbGVuBAEBBQEAIBBkZXN0pQEUdmFsdWXlBzB3ZWlnaHRfbGltaXQYNGV0aF9nYXNfbGltaXTlBxBkYXRhJEx0cmFuc2FjdGlvbl9lbmNvZGVkJExlZmZlY3RpdmVfZ2FzX3ByaWNl5QcsZW5jb2RlZF9sZW4EAQEFAQAIEGNhbGwJCkx0cmFuc2FjdGlvbl9lbmNvZGVkJAEBBQEACBBjb2RlJFRzdG9yYWdlX2RlcG9zaXRfbGltaXQIAQEFAQAIEGRlc3SlASRjb2RlX2hhc2ggAQEFAQEFAQAMIGNvbnRyYWN0pQEQZGF0YSQYdG9waWNz5QMBAQUBAAggZGVwbG95ZXKlASBjb250cmFjdKUBAQEFAQAEOGRpc3BhdGNoX2Vycm9yDQEBAAQMbmV3aQUBAQUBAAgMd2hvaQUQY2FsbAkKAQEFAQEFAQAELHN1ZG9fcmVzdWx0KQEBAQUBAAgMb2xk8QIMbmV3AABtDAAIAG0MAOkEAQAMFGJsb2NrBCRkZXBvc2l0b3LxAhxwYXJhX2lkBAEBBQEABCBhc3NldF9pZNUBAQEFAQAQHHBhcmFfaWQEPGRlcml2YXRpb25fcGF0aOkCLG9sZF9hY2NvdW50ACxuZXdfYWNjb3VudAABAQUBAQUBAAwkZGVwb3NpdG9yABxwYXJhX2lkBCRyZW1haW5pbmcIAQEFAQAQHHBhcmFfaWQEEGZyb20ACHRvADxkZXJpdmF0aW9uX3BhdGjpAgAAAB0IAQEFAPUDAQEFAHEMAQEFAP0DAQAEIGFjY291bnRzIQgBAQUBAAQgYWNjb3VudHMpCAEBBQEABBxwcm94aWVzPQgBAQUBAAQ0YW5ub3VuY2VtZW50c0UIAQEFAQAEGGNodW5rc00IAQEFAQAEOHJlcXVlc3Rfc3RhdHVzYQgBAQUBAAQ0bGVnYWN5X3N0YXR1c2kIAQEFAQAEIG1lc3NhZ2VzvQgBAQUBAAQkc2NoZWR1bGVzyQgBAQUBAAQYdmFsdWVz2QgBAQUBAAQscmVmZXJlbmR1bXMFCQEBBQEABCBtZXNzYWdlcxkJAQEFAQAEIG1lc3NhZ2VzKQkBAQUBAAQgbWVzc2FnZXM5CQEBBQEABBxpbmRpY2VzQQkBAQUBAAQgbWVzc2FnZXNhCQEBBQEABCBtZXNzYWdlc3UJAQEFAQAEFHJhdGVzfQkBAQUBAAQgbWVzc2FnZXOFCQEBBQEABCBtZXRhZGF0YZ0EAQEFAQAEIG1lc3NhZ2VznQkBAQUBAAQgbWVzc2FnZXOxCQEBBQEABCBtZXNzYWdlc7kJAQEFAQAEIG1lc3NhZ2VzyQkBAQUBAAQgbWVzc2FnZXMBCgEBBQEABBRzdGFnZfUDAQEFAQAEDG5ld/0DAQEFAQAEDG5ld/ECAQEFAQAIEGRhdGGhAjxjb29sX29mZl9lbmRfYXQEAQEFAQEFAQAIDG9sZPUDDG5ld/UDAQEFAQAIGHBhbGxldPkDFGNvdW50BAEBBQEADBhwYWxsZXT5Ayhjb3VudF9nb29kBCRjb3VudF9iYWQEAQEFAQAMLHByaW9yaXRpemVkFCxjeWNsZV9ibG9jawQwY3ljbGVfcGVyaW9kBAEBBQEACAxvbGT9AwxuZXf9AwEBBQEACEBjaGVja2luZ19hY2NvdW50CDh0b3RhbF9pc3N1YW5jZQgBAQUBAAQIaWQEAQEFAQAIDG9sZPECDG5ld/ECAQEFAQAIEGZyb20ACHRvAAEBBQEADBBmcm9tAAh0bwBAZGVyaXZhdGlvbl9pbmRleAQBAQUBAAw8ZXhwZWN0ZWRfYW1vdW50CDhtaXNzaW5nX2Ftb3VudAgcYWNjb3VudAABAwAACAEDAADlAwEDAAAEAQMIIAgAFAEDAAA9BAEDBHUMACUBAQMErQQAeQwBAwAAJAEDBAQAXQEBAwAA6QIBAwQkAIkMAQMAAK0EAQMEkQwASQQBAwh1DJEMAJUMAQMMmQwkIAChDAEDBK0EACUBAQMEXQEAJAEDBCQArQwBAwixDCQAuQwBAwQAAAQBAwgkBAC9DAEDCCQEAMkMAQMEGAAIAQMEBAAIAQMICQoEAL0MAQMICQoEAMkMAQMEBADVDAEDBN0FANkMAQMIGOUFAN0MAQMMnQLdBeUFAOEMAQMMFQUJCgQAAQ0BAwidAt0FAAkNAQMEnQIAEQ0BAwgVDZ0CAB0NAQMEnQIAJQ0BAwidAp0CACkNAQMEAAAxDQEDBK0EADUNAQMEJAA5DQEDBD0NAF0BAQMAAEENAQMI1QHVAQBFDQEDBAAACAEDCAQIAAgBAwgECAAIAQMEBAAIAQMEAAAIAQMEBAAUAQMEAAAUAQMEBABJDQEDBAgABAEDCAQAAAQBAwgEAAAUAQMAAE0NAQMAAFEMAQME5QcAFQEBAwAAWQwBAwAA5QcBAwSlAQDlBwEDBKUBAAQBAxgApQEISQGhAiQAXQ0BAxwACEkBoQJhDSQVAQBtDQEDBHkNAIUNAQMIeQ2JDQCFDQEDDAAkoQIAkQ0BAwilASAAmQ0BAwilASQAmQ0BAwh1DK0NAOUNAQMMdQwErQ0A6Q0BAwh5Da0NAO0NAQMAAKUBAQMEAAClAQEDBKUBAAABAwSlAQAkAQME5QcA9Q35DQEBAQIBAwAQEGZyZWUIIHJlc2VydmVkCBhmcm96ZW4IFGZsYWdzCAAUFG5vbmNlBCRjb25zdW1lcnMEJHByb3ZpZGVycwQsc3VmZmljaWVudHMEEGRhdGEMAQAACCByZWZfdGltZQgocHJvb2Zfc2l6ZQgADBhub3JtYWwYLG9wZXJhdGlvbmFsGCRtYW5kYXRvcnkYBQGABQAFARACFChQcmVSdW50aW1lAAMIKCQkQ29uc2Vuc3VzAAMIKCQQU2VhbAADCCgkFE90aGVyASRkUnVudGltZUVudmlyb25tZW50VXBkYXRlZAABBQQsAAIMOEFwcGx5RXh0cmluc2ljAQQwRmluYWxpemF0aW9uAAEFOEluaXRpYWxpemF0aW9uAAEFAgwYTm9ybWFsAAEFLE9wZXJhdGlvbmFsAAEFJE1hbmRhdG9yeQABBQIIDFllcwABBQhObwABBQAMGHdlaWdodBgUY2xhc3M4IHBheXNfZmVlPAIsPEludmFsaWRTcGVjTmFtZQABBWhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABBXRGYWlsZWRUb0V4dHJhY3RSdW50aW1lVmVyc2lvbgABBUxOb25EZWZhdWx0Q29tcG9zaXRlAAEFPE5vblplcm9SZWZDb3VudAABBTBDYWxsRmlsdGVyZWQAAQVsTXVsdGlCbG9ja01pZ3JhdGlvbnNPbmdvaW5nAAEFLEludmFsaWRUYXNrAAEFKEZhaWxlZFRhc2sAAQVETm90aGluZ0F1dGhvcml6ZWQAAQUwVW5hdXRob3JpemVkAAEFAhhMT3ZlcmxhcHBpbmdVcGdyYWRlcwABBVBQcm9oaWJpdGVkQnlQb2xrYWRvdAABBRhUb29CaWcAAQVoVmFsaWRhdGlvbkRhdGFOb3RBdmFpbGFibGUAAQV0SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUAAQUwTm90U2NoZWR1bGVkAAEFAiAYVG9vQmlnAAEFMEFscmVhZHlOb3RlZAABBTROb3RBdXRob3JpemVkAAEFIE5vdE5vdGVkAAEFJFJlcXVlc3RlZAABBTBOb3RSZXF1ZXN0ZWQAAQUcVG9vTWFueQABBRhUb29GZXcAAQUCFEBGYWlsZWRUb1NjaGVkdWxlAAEFIE5vdEZvdW5kAAEFXFRhcmdldEJsb2NrTnVtYmVySW5QYXN0AAEFSFJlc2NoZWR1bGVOb0NoYW5nZQABBRROYW1lZAABBQIEHE9uZ29pbmcAAQUCMDhWZXN0aW5nQmFsYW5jZQABBVRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQVMSW5zdWZmaWNpZW50QmFsYW5jZQABBUhFeGlzdGVudGlhbERlcG9zaXQAAQU0RXhwZW5kYWJpbGl0eQABBVxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQABBSxEZWFkQWNjb3VudAABBTxUb29NYW55UmVzZXJ2ZXMAAQUwVG9vTWFueUhvbGRzAAEFOFRvb01hbnlGcmVlemVzAAEFTElzc3VhbmNlRGVhY3RpdmF0ZWQAAQUkRGVsdGFaZXJvAAEFAhQoTm90VmVzdGluZwABBVRBdE1heFZlc3RpbmdTY2hlZHVsZXMAAQUkQW1vdW50TG93AAEFYFNjaGVkdWxlSW5kZXhPdXRPZkJvdW5kcwABBVRJbnZhbGlkU2NoZWR1bGVQYXJhbXMAAQUCGGBJbnZhbGlkRXRoZXJldW1TaWduYXR1cmUAAQVAU2lnbmVySGFzTm9DbGFpbQABBUBTZW5kZXJIYXNOb0NsYWltAAEFMFBvdFVuZGVyZmxvdwABBUBJbnZhbGlkU3RhdGVtZW50AAEFTFZlc3RlZEJhbGFuY2VFeGlzdHMAAQUCRERUb29NYW55Q2FuZGlkYXRlcwABBVxUb29GZXdFbGlnaWJsZUNvbGxhdG9ycwABBUBBbHJlYWR5Q2FuZGlkYXRlAAEFME5vdENhbmRpZGF0ZQABBVBUb29NYW55SW52dWxuZXJhYmxlcwABBUxBbHJlYWR5SW52dWxuZXJhYmxlAAEFPE5vdEludnVsbmVyYWJsZQABBVxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAABBVhWYWxpZGF0b3JOb3RSZWdpc3RlcmVkAAEFbEluc2VydFRvQ2FuZGlkYXRlTGlzdEZhaWxlZAABBXRSZW1vdmVGcm9tQ2FuZGlkYXRlTGlzdEZhaWxlZAABBTREZXBvc2l0VG9vTG93AAEFZFVwZGF0ZUNhbmRpZGF0ZUxpc3RGYWlsZWQAAQVASW5zdWZmaWNpZW50Qm9uZAABBVBUYXJnZXRJc05vdENhbmRpZGF0ZQABBUBJZGVudGljYWxEZXBvc2l0AAEFQEludmFsaWRVbnJlc2VydmUAAQUCFDBJbnZhbGlkUHJvb2YAAQVcTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQU0RHVwbGljYXRlZEtleQABBRhOb0tleXMAAQUkTm9BY2NvdW50AAEFAhQ4QmFkUXVldWVDb25maWcAAQVAQWxyZWFkeVN1c3BlbmRlZAABBThBbHJlYWR5UmVzdW1lZAABBXRUb29NYW55QWN0aXZlT3V0Ym91bmRDaGFubmVscwABBRhUb29CaWcAAQUCpCBPdmVyZmxvdwABBTRVbmltcGxlbWVudGVkAAEFYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgABBWRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAEFMExvY2F0aW9uRnVsbAABBVRMb2NhdGlvbk5vdEludmVydGlibGUAAQUkQmFkT3JpZ2luAAEFPEludmFsaWRMb2NhdGlvbgABBTRBc3NldE5vdEZvdW5kAAEFVEZhaWxlZFRvVHJhbnNhY3RBc3NldAABBTxOb3RXaXRoZHJhd2FibGUAAQVITG9jYXRpb25DYW5ub3RIb2xkAAEFVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQABBVhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAAEFJFRyYW5zcG9ydAABBShVbnJvdXRhYmxlAAEFMFVua25vd25DbGFpbQABBThGYWlsZWRUb0RlY29kZQABBUBNYXhXZWlnaHRJbnZhbGlkAAEFOE5vdEhvbGRpbmdGZWVzAAEFMFRvb0V4cGVuc2l2ZQABBRBUcmFwAAEFQEV4cGVjdGF0aW9uRmFsc2UAAQU4UGFsbGV0Tm90Rm91bmQAAQUwTmFtZU1pc21hdGNoAAEFTFZlcnNpb25JbmNvbXBhdGlibGUAAQVQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAAQUsRXhwb3J0RXJyb3IAAQU4UmVhbmNob3JGYWlsZWQAAQUYTm9EZWFsAAEFKEZlZXNOb3RNZXQAAQUkTG9ja0Vycm9yAAEFME5vUGVybWlzc2lvbgABBShVbmFuY2hvcmVkAAEFOE5vdERlcG9zaXRhYmxlAAEFNFRvb01hbnlBc3NldHMAAQVMVW5oYW5kbGVkWGNtVmVyc2lvbgABBUhXZWlnaHRMaW1pdFJlYWNoZWQAAQUcQmFycmllcgABBUxXZWlnaHROb3RDb21wdXRhYmxlAAEFREV4Y2VlZHNTdGFja0xpbWl0AAEFAnAsVW5yZWFjaGFibGUAAQUsU2VuZEZhaWx1cmUAAQUgRmlsdGVyZWQAAQVIVW53ZWlnaGFibGVNZXNzYWdlAAEFYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQABBRRFbXB0eQABBThDYW5ub3RSZWFuY2hvcgABBTRUb29NYW55QXNzZXRzAAEFNEludmFsaWRPcmlnaW4AAQUoQmFkVmVyc2lvbgABBSxCYWRMb2NhdGlvbgABBThOb1N1YnNjcmlwdGlvbgABBURBbHJlYWR5U3Vic2NyaWJlZAABBVhDYW5ub3RDaGVja091dFRlbGVwb3J0AAEFKExvd0JhbGFuY2UAAQUwVG9vTWFueUxvY2tzAAEFTEFjY291bnROb3RTb3ZlcmVpZ24AAQUoRmVlc05vdE1ldAABBTBMb2NrTm90Rm91bmQAAQUUSW5Vc2UAAQVoSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAAQV4SW52YWxpZEFzc2V0VW5zdXBwb3J0ZWRSZXNlcnZlAAEFPFRvb01hbnlSZXNlcnZlcwABBWBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAAQVgVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzAAEFNEV4cGlyZXNJblBhc3QAAQU0QWxpYXNOb3RGb3VuZAABBYRMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3IAAAgUaW5kZXgEFGVycm9ycAIkLE5vdFJlYXBhYmxlAAEFGE5vUGFnZQABBSROb01lc3NhZ2UAAQVAQWxyZWFkeVByb2Nlc3NlZAABBRhRdWV1ZWQAAQVISW5zdWZmaWNpZW50V2VpZ2h0AAEFYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQABBSxRdWV1ZVBhdXNlZAABBUxSZWN1cnNpdmVEaXNhbGxvd2VkAAEFAjRoVW5zdXBwb3J0ZWRMb2NhdGlvblZlcnNpb24AAQVESW52YWxpZEFzc2V0T3duZXIAAQUsU2VuZEZhaWx1cmUAAQUoRmVlc05vdE1ldAABBWBMb2NhdGlvbkNvbnZlcnNpb25GYWlsZWQAAQUYSGFsdGVkAAEFLFVucmVhY2hhYmxlAAEFQFVuc3VwcG9ydGVkQXNzZXQAAQU0V2l0aGRyYXdFcnJvcgABBThJbnZhbGlkQWNjb3VudAABBSRTd2FwRXJyb3IAAQUkQnVybkVycm9yAAEFNFRpcEFtb3VudFplcm8AAQUCBDBUb29NYW55Q2FsbHMAAQUCOEBNaW5pbXVtVGhyZXNob2xkAAEFPEFscmVhZHlBcHByb3ZlZAABBUROb0FwcHJvdmFsc05lZWRlZAABBURUb29GZXdTaWduYXRvcmllcwABBUhUb29NYW55U2lnbmF0b3JpZXMAAQVUU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAEFTFNlbmRlckluU2lnbmF0b3JpZXMAAQUgTm90Rm91bmQAAQUgTm90T3duZXIAAQUsTm9UaW1lcG9pbnQAAQU4V3JvbmdUaW1lcG9pbnQAAQVMVW5leHBlY3RlZFRpbWVwb2ludAABBTxNYXhXZWlnaHRUb29Mb3cAAQU0QWxyZWFkeVN0b3JlZAABBQIgHFRvb01hbnkAAQUgTm90Rm91bmQAAQUgTm90UHJveHkAAQUsVW5wcm94eWFibGUAAQUkRHVwbGljYXRlAAEFME5vUGVybWlzc2lvbgABBSxVbmFubm91bmNlZAABBSxOb1NlbGZQcm94eQABBQIULE5vdEFzc2lnbmVkAAEFIE5vdE93bmVyAAEFFEluVXNlAAEFLE5vdFRyYW5zZmVyAAEFJFBlcm1hbmVudAABBQJgKEJhbGFuY2VMb3cAAQUkTm9BY2NvdW50AAEFME5vUGVybWlzc2lvbgABBRxVbmtub3duAAEFGEZyb3plbgABBRRJblVzZQABBShCYWRXaXRuZXNzAAEFOE1pbkJhbGFuY2VaZXJvAAEFTFVuYXZhaWxhYmxlQ29uc3VtZXIAAQUsQmFkTWV0YWRhdGEAAQUoVW5hcHByb3ZlZAABBSBXb3VsZERpZQABBTRBbHJlYWR5RXhpc3RzAAEFJE5vRGVwb3NpdAABBSRXb3VsZEJ1cm4AAQUkTGl2ZUFzc2V0AAEFMEFzc2V0Tm90TGl2ZQABBTxJbmNvcnJlY3RTdGF0dXMAAQUkTm90RnJvemVuAAEFOENhbGxiYWNrRmFpbGVkAAEFKEJhZEFzc2V0SWQAAQU8Q29udGFpbnNGcmVlemVzAAEFNENvbnRhaW5zSG9sZHMAAQU8VG9vTWFueVJlc2VydmVzAAEFAlgwTm9QZXJtaXNzaW9uAAEFRFVua25vd25Db2xsZWN0aW9uAAEFNEFscmVhZHlFeGlzdHMAAQUoV3JvbmdPd25lcgABBShCYWRXaXRuZXNzAAEFFEluVXNlAAEFGEZyb3plbgABBTRXcm9uZ0RlbGVnYXRlAAEFKE5vRGVsZWdhdGUAAQUoVW5hcHByb3ZlZAABBShVbmFjY2VwdGVkAAEFGExvY2tlZAABBUBNYXhTdXBwbHlSZWFjaGVkAAEFTE1heFN1cHBseUFscmVhZHlTZXQAAQVETWF4U3VwcGx5VG9vU21hbGwAAQUsVW5rbm93bkl0ZW0AAQUoTm90Rm9yU2FsZQABBSRCaWRUb29Mb3cAAQUoTm9NZXRhZGF0YQABBTRXcm9uZ01ldGFkYXRhAAEFREF0dHJpYnV0ZU5vdEZvdW5kAAEFOFdyb25nQXR0cmlidXRlAAEFArQwTm9QZXJtaXNzaW9uAAEFRFVua25vd25Db2xsZWN0aW9uAAEFNEFscmVhZHlFeGlzdHMAAQU8QXBwcm92YWxFeHBpcmVkAAEFKFdyb25nT3duZXIAAQUoQmFkV2l0bmVzcwABBURDb2xsZWN0aW9uSWRJblVzZQABBVBJdGVtc05vblRyYW5zZmVyYWJsZQABBSxOb3REZWxlZ2F0ZQABBTRXcm9uZ0RlbGVnYXRlAAEFKFVuYXBwcm92ZWQAAQUoVW5hY2NlcHRlZAABBShJdGVtTG9ja2VkAAEFUExvY2tlZEl0ZW1BdHRyaWJ1dGVzAAEFaExvY2tlZENvbGxlY3Rpb25BdHRyaWJ1dGVzAAEFSExvY2tlZEl0ZW1NZXRhZGF0YQABBWBMb2NrZWRDb2xsZWN0aW9uTWV0YWRhdGEAAQVATWF4U3VwcGx5UmVhY2hlZAABBTxNYXhTdXBwbHlMb2NrZWQAAQVETWF4U3VwcGx5VG9vU21hbGwAAQUsVW5rbm93bkl0ZW0AAQUsVW5rbm93blN3YXAAAQVATWV0YWRhdGFOb3RGb3VuZAABBURBdHRyaWJ1dGVOb3RGb3VuZAABBShOb3RGb3JTYWxlAAEFJEJpZFRvb0xvdwABBVBSZWFjaGVkQXBwcm92YWxMaW1pdAABBTxEZWFkbGluZUV4cGlyZWQAAQU0V3JvbmdEdXJhdGlvbgABBThNZXRob2REaXNhYmxlZAABBTBXcm9uZ1NldHRpbmcAAQVYSW5jb25zaXN0ZW50SXRlbUNvbmZpZwABBSBOb0NvbmZpZwABBTxSb2xlc05vdENsZWFyZWQAAQU4TWludE5vdFN0YXJ0ZWQAAQUkTWludEVuZGVkAAEFOEFscmVhZHlDbGFpbWVkAAEFNEluY29ycmVjdERhdGEAAQUsV3JvbmdPcmlnaW4AAQU4V3JvbmdTaWduYXR1cmUAAQVESW5jb3JyZWN0TWV0YWRhdGEAAQVkTWF4QXR0cmlidXRlc0xpbWl0UmVhY2hlZAABBThXcm9uZ05hbWVzcGFjZQABBUhDb2xsZWN0aW9uTm90RW1wdHkAAQU8V2l0bmVzc1JlcXVpcmVkAAEFAlxASW52YWxpZEFzc2V0UGFpcgABBShQb29sRXhpc3RzAAEFSFdyb25nRGVzaXJlZEFtb3VudAABBWBBbW91bnRPbmVMZXNzVGhhbk1pbmltYWwAAQVgQW1vdW50VHdvTGVzc1RoYW5NaW5pbWFsAAEFaFJlc2VydmVMZWZ0TGVzc1RoYW5NaW5pbWFsAAEFQEFtb3VudE91dFRvb0hpZ2gAAQUwUG9vbE5vdEZvdW5kAAEFIE92ZXJmbG93AAEFgEFzc2V0T25lRGVwb3NpdERpZE5vdE1lZXRNaW5pbXVtAAEFgEFzc2V0VHdvRGVwb3NpdERpZE5vdE1lZXRNaW5pbXVtAAEFjEFzc2V0T25lV2l0aGRyYXdhbERpZE5vdE1lZXRNaW5pbXVtAAEFjEFzc2V0VHdvV2l0aGRyYXdhbERpZE5vdE1lZXRNaW5pbXVtAAEFcE9wdGltYWxBbW91bnRMZXNzVGhhbkRlc2lyZWQAAQVsSW5zdWZmaWNpZW50TGlxdWlkaXR5TWludGVkAAEFNFplcm9MaXF1aWRpdHkAAQUoWmVyb0Ftb3VudAABBYxQcm92aWRlZE1pbmltdW1Ob3RTdWZmaWNpZW50Rm9yU3dhcAABBYxQcm92aWRlZE1heGltdW1Ob3RTdWZmaWNpZW50Rm9yU3dhcAABBSxJbnZhbGlkUGF0aAABBTROb25VbmlxdWVQYXRoAAEFUEluY29ycmVjdFBvb2xBc3NldElkAAEFMEJlbG93TWluaW11bQABBQIsMEludmFsaWRJbmRleAABBUBUb29NYW55QXBwcm92YWxzAAEFWEluc3VmZmljaWVudFBlcm1pc3Npb24AAQVMUHJvcG9zYWxOb3RBcHByb3ZlZAABBVhGYWlsZWRUb0NvbnZlcnRCYWxhbmNlAAEFMFNwZW5kRXhwaXJlZAABBSxFYXJseVBheW91dAABBUBBbHJlYWR5QXR0ZW1wdGVkAAEFLFBheW91dEVycm9yAAEFME5vdEF0dGVtcHRlZAABBTBJbmNvbmNsdXNpdmUAAQUCMChOb3RPbmdvaW5nAAEFIE5vdFZvdGVyAAEFME5vUGVybWlzc2lvbgABBTxOb1Blcm1pc3Npb25ZZXQAAQVEQWxyZWFkeURlbGVnYXRpbmcAAQU0QWxyZWFkeVZvdGluZwABBURJbnN1ZmZpY2llbnRGdW5kcwABBTROb3REZWxlZ2F0aW5nAAEFIE5vbnNlbnNlAAEFPE1heFZvdGVzUmVhY2hlZAABBSxDbGFzc05lZWRlZAABBSBCYWRDbGFzcwABBQI4KE5vdE9uZ29pbmcAAQUoSGFzRGVwb3NpdAABBSBCYWRUcmFjawABBRBGdWxsAAEFKFF1ZXVlRW1wdHkAAQU0QmFkUmVmZXJlbmR1bQABBSxOb3RoaW5nVG9EbwABBRxOb1RyYWNrAAEFKFVuZmluaXNoZWQAAQUwTm9QZXJtaXNzaW9uAAEFJE5vRGVwb3NpdAABBSRCYWRTdGF0dXMAAQVAUHJlaW1hZ2VOb3RFeGlzdAABBYRQcmVpbWFnZVN0b3JlZFdpdGhEaWZmZXJlbnRMZW5ndGgAAQUCFExVbmF2YWlsYWJsZVByZUltYWdlAAEFPFVuZGVjb2RhYmxlQ2FsbAABBWBJbnZhbGlkQ2FsbFdlaWdodFdpdG5lc3MAAQVQQ2FsbElzTm90V2hpdGVsaXN0ZWQAAQVYQ2FsbEFscmVhZHlXaGl0ZWxpc3RlZAABBQIwcEluc3VmZmljaWVudFByb3Bvc2Vyc0JhbGFuY2UAAQUwSW52YWxpZEluZGV4AAEFMFJlYXNvblRvb0JpZwABBUBVbmV4cGVjdGVkU3RhdHVzAAEFOFJlcXVpcmVDdXJhdG9yAAEFMEludmFsaWRWYWx1ZQABBShJbnZhbGlkRmVlAAEFNFBlbmRpbmdQYXlvdXQAAQUkUHJlbWF0dXJlAAEFUEhhc0FjdGl2ZUNoaWxkQm91bnR5AAEFNFRvb01hbnlRdWV1ZWQAAQUsTm90UHJvcG9zZXIAAQUCDFRQYXJlbnRCb3VudHlOb3RBY3RpdmUAAQVkSW5zdWZmaWNpZW50Qm91bnR5QmFsYW5jZQABBVBUb29NYW55Q2hpbGRCb3VudGllcwABBQIMQFVua25vd25Bc3NldEtpbmQAAQU0QWxyZWFkeUV4aXN0cwABBSBPdmVyZmxvdwABBQJIMEludmFsaWRJbmRleAABBTBSZWFzb25Ub29CaWcAAQUwSW52YWxpZFZhbHVlAAEFWEZhaWxlZFRvQ29udmVydEJhbGFuY2UAAQVAVW5leHBlY3RlZFN0YXR1cwABBThSZXF1aXJlQ3VyYXRvcgABBVhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAEFMEZ1bmRpbmdFcnJvcgABBSxSZWZ1bmRFcnJvcgABBSxQYXlvdXRFcnJvcgABBUxGdW5kaW5nSW5jb25jbHVzaXZlAAEFSFJlZnVuZEluY29uY2x1c2l2ZQABBUhQYXlvdXRJbmNvbmNsdXNpdmUAAQVURmFpbGVkVG9Db252ZXJ0U291cmNlAAEFUEhhc0FjdGl2ZUNoaWxkQm91bnR5AAEFUFRvb01hbnlDaGlsZEJvdW50aWVzAAEFXEluc3VmZmljaWVudEJvdW50eVZhbHVlAAEFQFByZWltYWdlTm90RXhpc3QAAQUCGDxNYXhTaWduZWRMaW1pdHMAAQUoS2V5VG9vTG9uZwABBThOb3RFbm91Z2hGdW5kcwABBShCYWRXaXRuZXNzAAEFZFNpZ25lZE1pZ3JhdGlvbk5vdEFsbG93ZWQAAQUwQmFkQ2hpbGRSb290AAEFAhxoTm90RW5vdWdoU3BhY2VJblVuYm9uZFBvb2wAAQUwUG9vbE5vdEZvdW5kAAEFSFJld2FyZFBvb2xOb3RGb3VuZAABBUBTdWJQb29sc05vdEZvdW5kAAEFcEJvbmRlZFN0YXNoS2lsbGVkUHJlbWF0dXJlbHkAAQVURGVsZWdhdGlvblVuc3VwcG9ydGVkAAEFPFNsYXNoTm90QXBwbGllZAABBQKYMFBvb2xOb3RGb3VuZAABBUhQb29sTWVtYmVyTm90Rm91bmQAAQVIUmV3YXJkUG9vbE5vdEZvdW5kAAEFQFN1YlBvb2xzTm90Rm91bmQAAQVkQWNjb3VudEJlbG9uZ3NUb090aGVyUG9vbAABBThGdWxseVVuYm9uZGluZwABBURNYXhVbmJvbmRpbmdMaW1pdAABBURDYW5ub3RXaXRoZHJhd0FueQABBURNaW5pbXVtQm9uZE5vdE1ldAABBTBPdmVyZmxvd1Jpc2sAAQU0Tm90RGVzdHJveWluZwABBTBOb3ROb21pbmF0b3IAAQVUTm90S2lja2VyT3JEZXN0cm95aW5nAAEFHE5vdE9wZW4AAQUgTWF4UG9vbHMAAQU4TWF4UG9vbE1lbWJlcnMAAQVEQ2FuTm90Q2hhbmdlU3RhdGUAAQVURG9lc05vdEhhdmVQZXJtaXNzaW9uAAEFVE1ldGFkYXRhRXhjZWVkc01heExlbgABBSREZWZlbnNpdmUBxJxQYXJ0aWFsVW5ib25kTm90QWxsb3dlZFBlcm1pc3Npb25sZXNzbHkAAQVcTWF4Q29tbWlzc2lvblJlc3RyaWN0ZWQAAQVgQ29tbWlzc2lvbkV4Y2VlZHNNYXhpbXVtAAEFeENvbW1pc3Npb25FeGNlZWRzR2xvYmFsTWF4aW11bQABBWRDb21taXNzaW9uQ2hhbmdlVGhyb3R0bGVkAAEFeENvbW1pc3Npb25DaGFuZ2VSYXRlTm90QWxsb3dlZAABBUxOb1BlbmRpbmdDb21taXNzaW9uAAEFWE5vQ29tbWlzc2lvbkN1cnJlbnRTZXQAAQUsUG9vbElkSW5Vc2UAAQU0SW52YWxpZFBvb2xJZAABBUxCb25kRXh0cmFSZXN0cmljdGVkAAEFPE5vdGhpbmdUb0FkanVzdAABBThOb3RoaW5nVG9TbGFzaAABBSxTbGFzaFRvb0xvdwABBTxBbHJlYWR5TWlncmF0ZWQAAQUsTm90TWlncmF0ZWQAAQUwTm90U3VwcG9ydGVkAAEFKFJlc3RyaWN0ZWQAAQUCFCREdXBsaWNhdGUAAQUoTm90SGVhdmllcgABBTBOb3RJblNhbWVCYWcAAQUwTm9kZU5vdEZvdW5kAAEFGExvY2tlZAABBQIIEExpc3QBzBhMb2NrZWQAAQUCMChOb3RBbGxvd2VkAAEFOEFscmVhZHlTdGFraW5nAAEFYEludmFsaWRSZXdhcmREZXN0aW5hdGlvbgABBURJbnZhbGlkRGVsZWdhdGlvbgABBThOb3RFbm91Z2hGdW5kcwABBSBOb3RBZ2VudAABBTBOb3REZWxlZ2F0b3IAAQUgQmFkU3RhdGUAAQU4VW5hcHBsaWVkU2xhc2gAAQU4Tm90aGluZ1RvU2xhc2gAAQU4V2l0aGRyYXdGYWlsZWQAAQUwTm90U3VwcG9ydGVkAAEFAhQ0WGNtU2VuZEZhaWxlZAABBTBOb3RWYWxpZGF0b3IAAQUsSW52YWxpZEtleXMAAQUwSW52YWxpZFByb29mAAEFPEZlZXNFeGNlZWRlZE1heAABBQIMIEZhbGxiYWNrAAEFPFVuZXhwZWN0ZWRQaGFzZQABBSBTbmFwc2hvdAABBQIkOFBoYXNlTm90U2lnbmVkAAEFJER1cGxpY2F0ZQABBSRRdWV1ZUZ1bGwAAQUwQmFkUGFnZUluZGV4AAEFNE5vdFJlZ2lzdGVyZWQAAQUwTm9TdWJtaXNzaW9uAAEFMFJvdW5kTm90T3ZlcgABBThCYWRXaXRuZXNzRGF0YQABBVBUb29NYW55SW52dWxuZXJhYmxlcwABBQKQNE5vdENvbnRyb2xsZXIAAQUgTm90U3Rhc2gAAQU0QWxyZWFkeUJvbmRlZAABBTRBbHJlYWR5UGFpcmVkAAEFMEVtcHR5VGFyZ2V0cwABBThEdXBsaWNhdGVJbmRleAABBUhJbnZhbGlkU2xhc2hSZWNvcmQAAQVASW5zdWZmaWNpZW50Qm9uZAABBTBOb01vcmVDaHVua3MAAQU0Tm9VbmxvY2tDaHVuawABBTBGdW5kZWRUYXJnZXQAAQVISW52YWxpZEVyYVRvUmV3YXJkAAEFaEludmFsaWROdW1iZXJPZk5vbWluYXRpb25zAAEFOEFscmVhZHlDbGFpbWVkAAEFLEludmFsaWRQYWdlAAEFVEluY29ycmVjdEhpc3RvcnlEZXB0aAABBSBCYWRTdGF0ZQABBThUb29NYW55VGFyZ2V0cwABBSRCYWRUYXJnZXQAAQVAQ2Fubm90Q2hpbGxPdGhlcgABBURUb29NYW55Tm9taW5hdG9ycwABBURUb29NYW55VmFsaWRhdG9ycwABBUBDb21taXNzaW9uVG9vTG93AAEFLEJvdW5kTm90TWV0AAEFUENvbnRyb2xsZXJEZXByZWNhdGVkAAEFTENhbm5vdFJlc3RvcmVMZWRnZXIAAQVsUmV3YXJkRGVzdGluYXRpb25SZXN0cmljdGVkAAEFOE5vdEVub3VnaEZ1bmRzAAEFXFZpcnR1YWxTdGFrZXJOb3RBbGxvd2VkAAEFPENhbm5vdFJlYXBTdGFzaAABBTxBbHJlYWR5TWlncmF0ZWQAAQU0RXJhTm90U3RhcnRlZAABBShSZXN0cmljdGVkAAEFdFVuYXBwbGllZFNsYXNoZXNJblByZXZpb3VzRXJhAAEFOEVyYU5vdFBydW5hYmxlAAEFOENhbmNlbGxlZFNsYXNoAAEFAuA8SW52YWxpZFNjaGVkdWxlAAEFQEludmFsaWRDYWxsRmxhZ3MAAQUgT3V0T2ZHYXMAAQU4VHJhbnNmZXJGYWlsZWQAAQVMTWF4Q2FsbERlcHRoUmVhY2hlZAABBUBDb250cmFjdE5vdEZvdW5kAAEFMENvZGVOb3RGb3VuZAABBUBDb2RlSW5mb05vdEZvdW5kAAEFLE91dE9mQm91bmRzAAEFOERlY29kaW5nRmFpbGVkAAEFPENvbnRyYWN0VHJhcHBlZAABBTRWYWx1ZVRvb0xhcmdlAAEFYFRlcm1pbmF0ZWRXaGlsZVJlZW50cmFudAABBThJbnB1dEZvcndhcmRlZAABBTRUb29NYW55VG9waWNzAAEFRER1cGxpY2F0ZUNvbnRyYWN0AAEFXFRlcm1pbmF0ZWRJbkNvbnN0cnVjdG9yAAEFQFJlZW50cmFuY2VEZW5pZWQAAQU8UmVlbnRlcmVkUGFsbGV0AAEFRFN0YXRlQ2hhbmdlRGVuaWVkAAEFcFN0b3JhZ2VEZXBvc2l0Tm90RW5vdWdoRnVuZHMAAQVwU3RvcmFnZURlcG9zaXRMaW1pdEV4aGF1c3RlZAABBSRDb2RlSW5Vc2UAAQVAQ29udHJhY3RSZXZlcnRlZAABBTBDb2RlUmVqZWN0ZWQAAQUwQmxvYlRvb0xhcmdlAAEFUFN0YXRpY01lbW9yeVRvb0xhcmdlAAEFSEJhc2ljQmxvY2tUb29MYXJnZQABBUhJbnZhbGlkSW5zdHJ1Y3Rpb24AAQV4TWF4RGVsZWdhdGVEZXBlbmRlbmNpZXNSZWFjaGVkAAEFaERlbGVnYXRlRGVwZW5kZW5jeU5vdEZvdW5kAAEFfERlbGVnYXRlRGVwZW5kZW5jeUFscmVhZHlFeGlzdHMAAQWEQ2Fubm90QWRkU2VsZkFzRGVsZWdhdGVEZXBlbmRlbmN5AAEFVE91dE9mVHJhbnNpZW50U3RvcmFnZQABBThJbnZhbGlkU3lzY2FsbAABBUxJbnZhbGlkU3RvcmFnZUZsYWdzAAEFPEV4ZWN1dGlvbkZhaWxlZAABBVxCYWxhbmNlQ29udmVyc2lvbkZhaWxlZAABBVhJbnZhbGlkSW1tdXRhYmxlQWNjZXNzAAEFPEFjY291bnRVbm1hcHBlZAABBVBBY2NvdW50QWxyZWFkeU1hcHBlZAABBWRJbnZhbGlkR2VuZXJpY1RyYW5zYWN0aW9uAAEFXFJlZmNvdW50T3Zlck9yVW5kZXJmbG93AAEFcFVuc3VwcG9ydGVkUHJlY29tcGlsZUFkZHJlc3MAAQVAQ2FsbERhdGFUb29MYXJnZQABBUhSZXR1cm5EYXRhVG9vTGFyZ2UAAQUsSW52YWxpZEp1bXAAAQU4U3RhY2tVbmRlcmZsb3cAAQU0U3RhY2tPdmVyZmxvdwABBTRUeEZlZU92ZXJkcmF3AAEFaEV2bUNvbnN0cnVjdG9yTm9uRW1wdHlEYXRhAAEFWEV2bUNvbnN0cnVjdGVkRnJvbUhhc2gAAQVsU3RvcmFnZVJlZnVuZE5vdEVub3VnaEZ1bmRzAAEFTFN0b3JhZ2VSZWZ1bmRMb2NrZWQAAQVgUHJlY29tcGlsZURlbGVnYXRlRGVuaWVkAAEFTEVjZHNhUmVjb3ZlcnlGYWlsZWQAAQUCBCxSZXF1aXJlU3VkbwABBQI8OE5vTGVhc2VSZXNlcnZlAAEFXE5vQ3Jvd2Rsb2FuQ29udHJpYnV0aW9uAAEFSE5vQ3Jvd2Rsb2FuUmVzZXJ2ZQABBZRGYWlsZWRUb1dpdGhkcmF3Q3Jvd2Rsb2FuQ29udHJpYnV0aW9uAAEFGE5vdFlldAABBVhDb250cmlidXRpb25zUmVtYWluaW5nAAEFXFdyb25nRGVyaXZlZFRyYW5zbGF0aW9uAAEFME5vdFNvdmVyZWlnbgABBTRJbnRlcm5hbEVycm9yAAEFVE1pZ3JhdGlvbk5vdENvbXBsZXRlZAABBSxaZXJvQmFsYW5jZQABBUBGYWlsZWRUb1RyYW5zZmVyAAEFREFscmVhZHlUcmFuc2xhdGVkAAEFVFRvb0xvbmdEZXJpdmF0aW9uUGF0aAABBVBGYWlsZWRUb0ZvcmNlVW5zdGFrZQABBQJMYEZhaWxlZFRvVW5yZXNlcnZlRGVwb3NpdAABBVhGYWlsZWRUb1Byb2Nlc3NBY2NvdW50AAEFOEluc2VydENvbmZsaWN0AAEFTEZhaWxlZFRvQ29udmVydFR5cGUAAQVAUHJlaW1hZ2VOb3RGb3VuZAABBUxGYWlsZWRUb0NvbnZlcnRDYWxsAAEFREZhaWxlZFRvQm91bmRDYWxsAAEFIFhjbUVycm9yAAEFgEZhaWxlZFRvSW50ZWdyYXRlVmVzdGluZ1NjaGVkdWxlAAEFgEZhaWxlZFRvQ2FsY3VsYXRlQ2hlY2tpbmdBY2NvdW50AAEFTEZhaWxlZFRvQm91bmRWZWN0b3IAAQVoRG1wUXVldWVQcmlvcml0eUFscmVhZHlTZXQAAQVASW52YWxpZFBhcmFtZXRlcgABBTxQcmVpbWFnZU1pc3NpbmcAAQU4UHJlaW1hZ2VUb29CaWcAAQVQUHJlaW1hZ2VDaHVua01pc3NpbmcAAQVUUHJlaW1hZ2VTdGF0dXNJbnZhbGlkAAEFNEJhZFhjbVZlcnNpb24AAQU0SW52YWxpZE9yaWdpbgABBQLsGFN5c3RlbQFEPFBhcmFjaGFpblN5c3RlbQFIJFRpbWVzdGFtcAABBTRQYXJhY2hhaW5JbmZvAAEFIFByZWltYWdlAUwkU2NoZWR1bGVyAVAoUGFyYW1ldGVycwABBVBNdWx0aUJsb2NrTWlncmF0aW9ucwFUNFdlaWdodFJlY2xhaW0AAQUgQmFsYW5jZXMBWEhUcmFuc2FjdGlvblBheW1lbnQAAQU4QXNzZXRUeFBheW1lbnQAAQUcVmVzdGluZwFcGENsYWltcwFgDERhcAABBShBdXRob3JzaGlwAAEFRENvbGxhdG9yU2VsZWN0aW9uAWQcU2Vzc2lvbgFoEEF1cmEAAQUcQXVyYUV4dAABBSRYY21wUXVldWUBbCxQb2xrYWRvdFhjbQF0KEN1bXVsdXNYY20AAQVEVG9LdXNhbWFYY21Sb3V0ZXIAAQUwTWVzc2FnZVF1ZXVlAXhgU25vd2JyaWRnZVN5c3RlbUZyb250ZW5kAXwcVXRpbGl0eQGAIE11bHRpc2lnAYQUUHJveHkBiBxJbmRpY2VzAYwYQXNzZXRzAZAcVW5pcXVlcwGUEE5mdHMBmDRGb3JlaWduQXNzZXRzAZAoUG9vbEFzc2V0cwGQPEFzc2V0Q29udmVyc2lvbgGcIFRyZWFzdXJ5AaBAQ29udmljdGlvblZvdGluZwGkJFJlZmVyZW5kYQGoHE9yaWdpbnMAAQUkV2hpdGVsaXN0AawgQm91bnRpZXMBsDRDaGlsZEJvdW50aWVzAbQkQXNzZXRSYXRlAbhITXVsdGlBc3NldEJvdW50aWVzAbxIU3RhdGVUcmllTWlncmF0aW9uAcA8Tm9taW5hdGlvblBvb2xzAcgkVm90ZXJMaXN0AdBARGVsZWdhdGVkU3Rha2luZwHUPFN0YWtpbmdSY0NsaWVudAHYSE11bHRpQmxvY2tFbGVjdGlvbgHcaE11bHRpQmxvY2tFbGVjdGlvblZlcmlmaWVyAAEFaE11bHRpQmxvY2tFbGVjdGlvblVuc2lnbmVkAAEFYE11bHRpQmxvY2tFbGVjdGlvblNpZ25lZAHgHFN0YWtpbmcB5BhSZXZpdmUB6BBTdWRvAewUQWhPcHMB8ChBaE1pZ3JhdG9yAfQCKEBGdW5kc1VuYXZhaWxhYmxlAAEFME9ubHlQcm92aWRlcgABBTBCZWxvd01pbmltdW0AAQUwQ2Fubm90Q3JlYXRlAAEFMFVua25vd25Bc3NldAABBRhGcm96ZW4AAQUsVW5zdXBwb3J0ZWQAAQVAQ2Fubm90Q3JlYXRlSG9sZAABBTROb3RFeHBlbmRhYmxlAAEFHEJsb2NrZWQAAQUCDCRVbmRlcmZsb3cAAQUgT3ZlcmZsb3cAAQU4RGl2aXNpb25CeVplcm8AAQUCCDBMaW1pdFJlYWNoZWQAAQUcTm9MYXllcgABBQI4QEludmFsaWRTdGF0ZVJvb3QAAQVISW5jb21wbGV0ZURhdGFiYXNlAAEFUFZhbHVlQXRJbmNvbXBsZXRlS2V5AAEFMERlY29kZXJFcnJvcgABBSxJbnZhbGlkSGFzaAABBTBEdXBsaWNhdGVLZXkAAQU4RXh0cmFuZW91c05vZGUAAQU8RXh0cmFuZW91c1ZhbHVlAAEFXEV4dHJhbmVvdXNIYXNoUmVmZXJlbmNlAAEFVEludmFsaWRDaGlsZFJlZmVyZW5jZQABBTRWYWx1ZU1pc21hdGNoAAEFPEluY29tcGxldGVQcm9vZgABBTBSb290TWlzbWF0Y2gAAQUsRGVjb2RlRXJyb3IAAQUCPBRPdGhlcgABBTBDYW5ub3RMb29rdXAAAQUkQmFkT3JpZ2luAAEFGE1vZHVsZQH4RENvbnN1bWVyUmVtYWluaW5nAAEFLE5vUHJvdmlkZXJzAAEFQFRvb01hbnlDb25zdW1lcnMAAQUUVG9rZW4B/ChBcml0aG1ldGljAQEBNFRyYW5zYWN0aW9uYWwBBQEkRXhoYXVzdGVkAAEFKENvcnJ1cHRpb24AAQUsVW5hdmFpbGFibGUAAQU4Um9vdE5vdEFsbG93ZWQAAQUQVHJpZQEJAQIsQEV4dHJpbnNpY1N1Y2Nlc3MAAAQ0ZGlzcGF0Y2hfaW5mb0A8RXh0cmluc2ljRmFpbGVkAAAIOGRpc3BhdGNoX2Vycm9yDQE0ZGlzcGF0Y2hfaW5mb0AsQ29kZVVwZGF0ZWQAAQUoTmV3QWNjb3VudAAABBxhY2NvdW50ADRLaWxsZWRBY2NvdW50AAAEHGFjY291bnQAIFJlbWFya2VkAAAIGHNlbmRlcgAQaGFzaCAsVGFza1N0YXJ0ZWQAAAA0VGFza0NvbXBsZXRlZAAAAChUYXNrRmFpbGVkAAAEDGVycg0BRFVwZ3JhZGVBdXRob3JpemVkAAAIJGNvZGVfaGFzaCA0Y2hlY2tfdmVyc2lvbhSAUmVqZWN0ZWRJbnZhbGlkQXV0aG9yaXplZFVwZ3JhZGUAAAgkY29kZV9oYXNoIBRlcnJvcg0BBiACGGBWYWxpZGF0aW9uRnVuY3Rpb25TdG9yZWQAAQVkVmFsaWRhdGlvbkZ1bmN0aW9uQXBwbGllZAAABFRyZWxheV9jaGFpbl9ibG9ja19udW0EbFZhbGlkYXRpb25GdW5jdGlvbkRpc2NhcmRlZAABBWBEb3dud2FyZE1lc3NhZ2VzUmVjZWl2ZWQAAAQUY291bnQEZERvd253YXJkTWVzc2FnZXNQcm9jZXNzZWQAAAgsd2VpZ2h0X3VzZWQYIGRtcV9oZWFkIERVcHdhcmRNZXNzYWdlU2VudAAABDBtZXNzYWdlX2hhc2gVAQIMFE5vdGVkAAAEEGhhc2ggJFJlcXVlc3RlZAAABBBoYXNoIBxDbGVhcmVkAAAEEGhhc2ggBAQBCAEFByUBDQECKCRTY2hlZHVsZWQAAAgQd2hlbgQUaW5kZXgEIENhbmNlbGVkAAAIEHdoZW4EFGluZGV4BChEaXNwYXRjaGVkAAAMEHRhc2shAQhpZBUBGHJlc3VsdCkBIFJldHJ5U2V0AAAQEHRhc2shAQhpZBUBGHBlcmlvZAQccmV0cmllcwQ4UmV0cnlDYW5jZWxsZWQAAAgQdGFzayEBCGlkFQE8Q2FsbFVuYXZhaWxhYmxlAAAIEHRhc2shAQhpZBUBOFBlcmlvZGljRmFpbGVkAAAIEHRhc2shAQhpZBUBLFJldHJ5RmFpbGVkAAAIEHRhc2shAQhpZBUBVFBlcm1hbmVudGx5T3ZlcndlaWdodAAACBB0YXNrIQEIaWQVAUBBZ2VuZGFJbmNvbXBsZXRlAAAEEHdoZW4EAhwsU2lnbmVkUGhhc2UBJQFQTWF4U2lnbmVkU3VibWlzc2lvbnMBJQE0VW5zaWduZWRQaGFzZQElAShNaW5lclBhZ2VzASUBRE1heEVsZWN0aW5nVm90ZXJzASUBWFRhcmdldFNuYXBzaG90UGVyQmxvY2sBJQE4TWF4RXJhRHVyYXRpb24BJQECCFBNYXhTY2hlZHVsZWRQZXJCbG9jawElATRNYXhpbXVtV2VpZ2h0ASUBAgg8TWF4T25Jbml0V2VpZ2h0ASUBPE1heE9uSWRsZVdlaWdodAElAQIMPFN0YWtpbmdFbGVjdGlvbgExASRTY2hlZHVsZXIBNQEwTWVzc2FnZVF1ZXVlATkBAhwsU2lnbmVkUGhhc2UBBFBNYXhTaWduZWRTdWJtaXNzaW9ucwEENFVuc2lnbmVkUGhhc2UBBChNaW5lclBhZ2VzAQRETWF4RWxlY3RpbmdWb3RlcnMBBFhUYXJnZXRTbmFwc2hvdFBlckJsb2NrAQQ4TWF4RXJhRHVyYXRpb24BCAIIUE1heFNjaGVkdWxlZFBlckJsb2NrAQQ0TWF4aW11bVdlaWdodAEYBhgCCDxNYXhPbkluaXRXZWlnaHQBSQE8TWF4T25JZGxlV2VpZ2h0AUkBAgw8U3Rha2luZ0VsZWN0aW9uAUEBJFNjaGVkdWxlcgFFATBNZXNzYWdlUXVldWUBTQEGUQECBBxVcGRhdGVkAAAMDGtleT0BJG9sZF92YWx1ZVUBJG5ld192YWx1ZVUBBiQCIDhVcGdyYWRlU3RhcnRlZAAABChtaWdyYXRpb25zBEBVcGdyYWRlQ29tcGxldGVkAAEFNFVwZ3JhZGVGYWlsZWQAAQVATWlncmF0aW9uU2tpcHBlZAAABBRpbmRleARETWlncmF0aW9uQWR2YW5jZWQAAAgUaW5kZXgEEHRvb2sESE1pZ3JhdGlvbkNvbXBsZXRlZAAACBRpbmRleAQQdG9vawQ8TWlncmF0aW9uRmFpbGVkAAAIFGluZGV4BBB0b29rBDxIaXN0b3JpY0NsZWFyZWQAAAQsbmV4dF9jdXJzb3JdAQIIEEZyZWUAAQUgUmVzZXJ2ZWQAAQUCBCBQcmVpbWFnZQABBQIEEEtleXMAAQUCBDhBdXRob3JpemVBbGlhcwABBQIEOEN1cmF0b3JEZXBvc2l0AAEFAgQ8U2xhc2hGb3JNaWdyYXRlAAEFAgREU3Rha2luZ0RlbGVnYXRpb24AAQUCBEBTaWduZWRTdWJtaXNzaW9uAAEFAgQcU3Rha2luZwABBQIMYENvZGVVcGxvYWREZXBvc2l0UmVzZXJ2ZQABBVRTdG9yYWdlRGVwb3NpdFJlc2VydmUAAQU4QWRkcmVzc01hcHBpbmcAAQUCKCBQcmVpbWFnZQFpARxTZXNzaW9uAW0BLFBvbGthZG90WGNtAXEBSE11bHRpQXNzZXRCb3VudGllcwF1AUhTdGF0ZVRyaWVNaWdyYXRpb24BeQFARGVsZWdhdGVkU3Rha2luZwF9ATxTdGFraW5nUmNDbGllbnQBbQFgTXVsdGlCbG9ja0VsZWN0aW9uU2lnbmVkAYEBHFN0YWtpbmcBhQEYUmV2aXZlAYkBAgg4QmFsYW5jZVVwZGF0ZWQAAQVURmFpbGVkVG9NdXRhdGVBY2NvdW50AAEFAngcRW5kb3dlZAAACBxhY2NvdW50ADBmcmVlX2JhbGFuY2UIIER1c3RMb3N0AAAIHGFjY291bnQAGGFtb3VudAggVHJhbnNmZXIAAAwQZnJvbQAIdG8AGGFtb3VudAgoQmFsYW5jZVNldAAACAx3aG8AEGZyZWUIIFJlc2VydmVkAAAIDHdobwAYYW1vdW50CChVbnJlc2VydmVkAAAIDHdobwAYYW1vdW50CEhSZXNlcnZlUmVwYXRyaWF0ZWQAABAQZnJvbQAIdG8AGGFtb3VudAhIZGVzdGluYXRpb25fc3RhdHVzZQEcRGVwb3NpdAAACAx3aG8AGGFtb3VudAggV2l0aGRyYXcAAAgMd2hvABhhbW91bnQIHFNsYXNoZWQAAAgMd2hvABhhbW91bnQIGE1pbnRlZAAACAx3aG8AGGFtb3VudAgwTWludGVkQ3JlZGl0AAAEGGFtb3VudAgYQnVybmVkAAAIDHdobwAYYW1vdW50CChCdXJuZWREZWJ0AAAEGGFtb3VudAgkU3VzcGVuZGVkAAAIDHdobwAYYW1vdW50CCBSZXN0b3JlZAAACAx3aG8AGGFtb3VudAggVXBncmFkZWQAAAQMd2hvABhJc3N1ZWQAAAQYYW1vdW50CCRSZXNjaW5kZWQAAAQYYW1vdW50CBhMb2NrZWQAAAgMd2hvABhhbW91bnQIIFVubG9ja2VkAAAIDHdobwAYYW1vdW50CBhGcm96ZW4AAAgMd2hvABhhbW91bnQIGFRoYXdlZAAACAx3aG8AGGFtb3VudAhMVG90YWxJc3N1YW5jZUZvcmNlZAAACAxvbGQIDG5ldwgQSGVsZAAADBhyZWFzb26NAQx3aG8AGGFtb3VudAgoQnVybmVkSGVsZAAADBhyZWFzb26NAQx3aG8AGGFtb3VudAg4VHJhbnNmZXJPbkhvbGQAABAYcmVhc29ujQEYc291cmNlABBkZXN0ABhhbW91bnQIPFRyYW5zZmVyQW5kSG9sZAAAEBhyZWFzb26NARhzb3VyY2UAEGRlc3QALHRyYW5zZmVycmVkCCBSZWxlYXNlZAAADBhyZWFzb26NAQx3aG8AGGFtb3VudAgoVW5leHBlY3RlZAGRAQIESFRyYW5zYWN0aW9uRmVlUGFpZAAADAx3aG8AKGFjdHVhbF9mZWUIDHRpcAgCICRCeUdlbmVzaXMBIBhCeUZvcmsAAAgwYmxvY2tfbnVtYmVyCChibG9ja19oYXNoICBQb2xrYWRvdAABBRhLdXNhbWEAAQUgRXRoZXJldW0AAAQgY2hhaW5faWQILEJpdGNvaW5Db3JlAAEFLEJpdGNvaW5DYXNoAAEFQFBvbGthZG90QnVsbGV0aW4AAQUGnQEFAVACKBBVbml0AAEFHE1vbmlrZXIBKBRJbmRleAEEJEV4ZWN1dGl2ZQABBSRUZWNobmljYWwAAQUsTGVnaXNsYXRpdmUAAQUgSnVkaWNpYWwAAQUcRGVmZW5zZQABBThBZG1pbmlzdHJhdGlvbgABBSBUcmVhc3VyeQABBQIUFFZvaWNlAAEFHE1lbWJlcnMAAAQUY291bnQEIEZyYWN0aW9uAAAIDG5vbQQUZGVub20EREF0TGVhc3RQcm9wb3J0aW9uAAAIDG5vbQQUZGVub20ESE1vcmVUaGFuUHJvcG9ydGlvbgAACAxub20EFGRlbm9tBAIoJFBhcmFjaGFpbgEELEFjY291bnRJZDMyAAAIHG5ldHdvcmuhAQhpZCA4QWNjb3VudEluZGV4NjQAAAgcbmV0d29ya6EBFGluZGV4CDBBY2NvdW50S2V5MjAAAAgcbmV0d29ya6EBDGtleaUBOFBhbGxldEluc3RhbmNlAQQwR2VuZXJhbEluZGV4AQgoR2VuZXJhbEtleQAACBhsZW5ndGgEEGRhdGEgJE9ubHlDaGlsZAABBSRQbHVyYWxpdHkAAAgIaWSpARBwYXJ0rQE8R2xvYmFsQ29uc2Vuc3VzAZ0BBLEBAQgEsQEBDASxAQEQBLEBARQEsQEBGASxAQEcBLEBASACJBBIZXJlAAEFCFgxAbEBCFgyAbUBCFgzAbkBCFg0Ab0BCFg1AcEBCFg2AcUBCFg3AckBCFg4Ac0BAAgccGFyZW50cwQgaW50ZXJpb3LRAQIIOEFzc2V0VHhGZWVQYWlkAAAQDHdobwAoYWN0dWFsX2ZlZQgMdGlwCCBhc3NldF9pZNUBREFzc2V0UmVmdW5kRmFpbGVkAAAESG5hdGl2ZV9hbW91bnRfa2VwdAgCDDhWZXN0aW5nQ3JlYXRlZAAACBxhY2NvdW50ADhzY2hlZHVsZV9pbmRleAQ4VmVzdGluZ1VwZGF0ZWQAAAgcYWNjb3VudAAgdW52ZXN0ZWQIQFZlc3RpbmdDb21wbGV0ZWQAAAQcYWNjb3VudAACBBxDbGFpbWVkAAAMDHdobwBAZXRoZXJldW1fYWRkcmVzc6UBGGFtb3VudAgEAAACKEBOZXdJbnZ1bG5lcmFibGVzAAAENGludnVsbmVyYWJsZXPlAURJbnZ1bG5lcmFibGVBZGRlZAAABChhY2NvdW50X2lkAExJbnZ1bG5lcmFibGVSZW1vdmVkAAAEKGFjY291bnRfaWQAUE5ld0Rlc2lyZWRDYW5kaWRhdGVzAAAESGRlc2lyZWRfY2FuZGlkYXRlcwRATmV3Q2FuZGlkYWN5Qm9uZAAABCxib25kX2Ftb3VudAg4Q2FuZGlkYXRlQWRkZWQAAAgoYWNjb3VudF9pZAAcZGVwb3NpdAhQQ2FuZGlkYXRlQm9uZFVwZGF0ZWQAAAgoYWNjb3VudF9pZAAcZGVwb3NpdAhAQ2FuZGlkYXRlUmVtb3ZlZAAABChhY2NvdW50X2lkAERDYW5kaWRhdGVSZXBsYWNlZAAADAxvbGQADG5ldwAcZGVwb3NpdAhoSW52YWxpZEludnVsbmVyYWJsZVNraXBwZWQAAAQoYWNjb3VudF9pZAACEChOZXdTZXNzaW9uAAAENHNlc3Npb25faW5kZXgEJE5ld1F1ZXVlZAABBURWYWxpZGF0b3JEaXNhYmxlZAAABCR2YWxpZGF0b3IASFZhbGlkYXRvclJlZW5hYmxlZAAABCR2YWxpZGF0b3IAAgQ8WGNtcE1lc3NhZ2VTZW50AAAEMG1lc3NhZ2VfaGFzaCACpCBPdmVyZmxvdwABBTRVbmltcGxlbWVudGVkAAEFYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgABBWRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAEFMExvY2F0aW9uRnVsbAABBVRMb2NhdGlvbk5vdEludmVydGlibGUAAQUkQmFkT3JpZ2luAAEFPEludmFsaWRMb2NhdGlvbgABBTRBc3NldE5vdEZvdW5kAAEFVEZhaWxlZFRvVHJhbnNhY3RBc3NldAABBTxOb3RXaXRoZHJhd2FibGUAAQVITG9jYXRpb25DYW5ub3RIb2xkAAEFVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQABBVhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAAEFJFRyYW5zcG9ydAABBShVbnJvdXRhYmxlAAEFMFVua25vd25DbGFpbQABBThGYWlsZWRUb0RlY29kZQABBUBNYXhXZWlnaHRJbnZhbGlkAAEFOE5vdEhvbGRpbmdGZWVzAAEFMFRvb0V4cGVuc2l2ZQABBRBUcmFwAQhARXhwZWN0YXRpb25GYWxzZQABBThQYWxsZXROb3RGb3VuZAABBTBOYW1lTWlzbWF0Y2gAAQVMVmVyc2lvbkluY29tcGF0aWJsZQABBVBIb2xkaW5nV291bGRPdmVyZmxvdwABBSxFeHBvcnRFcnJvcgABBThSZWFuY2hvckZhaWxlZAABBRhOb0RlYWwAAQUoRmVlc05vdE1ldAABBSRMb2NrRXJyb3IAAQUwTm9QZXJtaXNzaW9uAAEFKFVuYW5jaG9yZWQAAQU4Tm90RGVwb3NpdGFibGUAAQU0VG9vTWFueUFzc2V0cwABBUxVbmhhbmRsZWRYY21WZXJzaW9uAAEFSFdlaWdodExpbWl0UmVhY2hlZAEYHEJhcnJpZXIAAQVMV2VpZ2h0Tm90Q29tcHV0YWJsZQABBURFeGNlZWRzU3RhY2tMaW1pdAABBQAIFGluZGV4BBRlcnJvcvUBAgwgQ29tcGxldGUAAAQQdXNlZBgoSW5jb21wbGV0ZQAACBB1c2VkGBRlcnJvcvkBFEVycm9yAfkBBQEgBQFAAhgkVW5kZWZpbmVkAAEFFEluZGV4AQgYQXJyYXk0ASgYQXJyYXk4AQECHEFycmF5MTYBBQIcQXJyYXkzMgEgAgggRnVuZ2libGUBCCxOb25GdW5naWJsZQEJAgAICGlk1QEMZnVuDQIEEQIAAwgE9QEGGQIAGBRpbmRleAQQbmFtZSQsbW9kdWxlX25hbWUkFG1ham9yBBRtaW5vcgQUcGF0Y2gEBCECAAIMHFN1Y2Nlc3MAAQUURXJyb3IBJDhUcnVuY2F0ZWRFcnJvcgEkAhgQTnVsbAABBRhBc3NldHMBFQI8RXhlY3V0aW9uUmVzdWx0AR0CHFZlcnNpb24BBCxQYWxsZXRzSW5mbwElAjhEaXNwYXRjaFJlc3VsdAEpAgbVAQIQGE5hdGl2ZQABBUBTb3ZlcmVpZ25BY2NvdW50AAEFJFN1cGVydXNlcgABBQxYY20AAQUADCxkZXN0aW5hdGlvbtUBIHF1ZXJ5X2lkCChtYXhfd2VpZ2h0GAIIIEZ1bmdpYmxlAAEFLE5vbkZ1bmdpYmxlAAEFAhAMQWxsAAEFFEFsbE9mAAAICGlk1QEMZnVuPQIoQWxsQ291bnRlZAEEMEFsbE9mQ291bnRlZAAADAhpZNUBDGZ1bj0CFGNvdW50BAIIIERlZmluaXRlARUCEFdpbGQBQQICCCRVbmxpbWl0ZWQAAQUcTGltaXRlZAEYAgwgVGVsZXBvcnQBRQI4UmVzZXJ2ZURlcG9zaXQBRQI8UmVzZXJ2ZVdpdGhkcmF3AUUCBk0CBE0CAAbRAQIEMEFzc2V0Q2xhaW1lcgAABCBsb2NhdGlvbtUBBF0CAALQNFdpdGhkcmF3QXNzZXQBFQJUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkARUCWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQBFQI0UXVlcnlSZXNwb25zZQAAECBxdWVyeV9pZAggcmVzcG9uc2UtAihtYXhfd2VpZ2h0GBxxdWVyaWVyMQI0VHJhbnNmZXJBc3NldAAACBhhc3NldHMVAixiZW5lZmljaWFyedUBUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0AAAMGGFzc2V0cxUCEGRlc3TVAQx4Y21pAiBUcmFuc2FjdAAADCxvcmlnaW5fa2luZDUCTGZhbGxiYWNrX21heF93ZWlnaHRJARBjYWxsJGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0AAAMGHNlbmRlcgRAbWF4X21lc3NhZ2Vfc2l6ZQQwbWF4X2NhcGFjaXR5BExIcm1wQ2hhbm5lbEFjY2VwdGVkAAAEJHJlY2lwaWVudARISHJtcENoYW5uZWxDbG9zaW5nAAAMJGluaXRpYXRvcgQYc2VuZGVyBCRyZWNpcGllbnQELENsZWFyT3JpZ2luAAEFNERlc2NlbmRPcmlnaW4B0QEsUmVwb3J0RXJyb3IBOQIwRGVwb3NpdEFzc2V0AAAIGGFzc2V0c0UCLGJlbmVmaWNpYXJ51QFMRGVwb3NpdFJlc2VydmVBc3NldAAADBhhc3NldHNFAhBkZXN01QEMeGNtaQI0RXhjaGFuZ2VBc3NldAAADBBnaXZlRQIQd2FudBUCHG1heGltYWwUXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3AAAMGGFzc2V0c0UCHHJlc2VydmXVAQx4Y21pAkBJbml0aWF0ZVRlbGVwb3J0AAAMGGFzc2V0c0UCEGRlc3TVAQx4Y21pAjRSZXBvcnRIb2xkaW5nAAAINHJlc3BvbnNlX2luZm85Ahhhc3NldHNFAjBCdXlFeGVjdXRpb24AAAgQZmVlcxECMHdlaWdodF9saW1pdEkCNFJlZnVuZFN1cnBsdXMAAQU8U2V0RXJyb3JIYW5kbGVyAWkCLFNldEFwcGVuZGl4AWkCKENsZWFyRXJyb3IAAQUoQ2xhaW1Bc3NldAAACBhhc3NldHMVAhh0aWNrZXTVARBUcmFwAQhAU3Vic2NyaWJlVmVyc2lvbgAACCBxdWVyeV9pZAhMbWF4X3Jlc3BvbnNlX3dlaWdodBhIVW5zdWJzY3JpYmVWZXJzaW9uAAEFJEJ1cm5Bc3NldAEVAixFeHBlY3RBc3NldAEVAjBFeHBlY3RPcmlnaW4BMQIsRXhwZWN0RXJyb3IBHQJQRXhwZWN0VHJhbnNhY3RTdGF0dXMBKQIsUXVlcnlQYWxsZXQAAAgsbW9kdWxlX25hbWUkNHJlc3BvbnNlX2luZm85AjBFeHBlY3RQYWxsZXQAABQUaW5kZXgEEG5hbWUkLG1vZHVsZV9uYW1lJCxjcmF0ZV9tYWpvcgQ8bWluX2NyYXRlX21pbm9yBFBSZXBvcnRUcmFuc2FjdFN0YXR1cwE5AkxDbGVhclRyYW5zYWN0U3RhdHVzAAEFPFVuaXZlcnNhbE9yaWdpbgGxATRFeHBvcnRNZXNzYWdlAAAMHG5ldHdvcmudASxkZXN0aW5hdGlvbtEBDHhjbWkCJExvY2tBc3NldAAACBRhc3NldBECIHVubG9ja2Vy1QEsVW5sb2NrQXNzZXQAAAgUYXNzZXQRAhh0YXJnZXTVAThOb3RlVW5sb2NrYWJsZQAACBRhc3NldBECFG93bmVy1QE0UmVxdWVzdFVubG9jawAACBRhc3NldBECGGxvY2tlctUBLFNldEZlZXNNb2RlAAAEMGppdF93aXRoZHJhdxQgU2V0VG9waWMBIChDbGVhclRvcGljAAEFLEFsaWFzT3JpZ2luAdUBPFVucGFpZEV4ZWN1dGlvbgAACDB3ZWlnaHRfbGltaXRJAjBjaGVja19vcmlnaW4xAhxQYXlGZWVzAAAEFGFzc2V0EQJASW5pdGlhdGVUcmFuc2ZlcgAAFCxkZXN0aW5hdGlvbtUBLHJlbW90ZV9mZWVzUQI8cHJlc2VydmVfb3JpZ2luFBhhc3NldHNVAihyZW1vdGVfeGNtaQJERXhlY3V0ZVdpdGhPcmlnaW4AAAhEZGVzY2VuZGFudF9vcmlnaW5ZAgx4Y21pAiBTZXRIaW50cwAABBRoaW50c2ECBGUCAAIcNE5vdEFwcGxpY2FibGUAAQUkVHJhbnNwb3J0AAEFKFVucm91dGFibGUAAQVYRGVzdGluYXRpb25VbnN1cHBvcnRlZAABBVRFeGNlZWRzTWF4TWVzc2FnZVNpemUAAQU8TWlzc2luZ0FyZ3VtZW50AAEFEEZlZXMAAQUCLCRCeUdlbmVzaXMBIBhCeUZvcmsAAAgwYmxvY2tfbnVtYmVyCChibG9ja19oYXNoICBQb2xrYWRvdAABBRhLdXNhbWEAAQUcV2VzdGVuZAABBRhSb2NvY28AAQUYV29jb2NvAAEFIEV0aGVyZXVtAAAEIGNoYWluX2lkCCxCaXRjb2luQ29yZQABBSxCaXRjb2luQ2FzaAABBUBQb2xrYWRvdEJ1bGxldGluAAEFBnECAigkUGFyYWNoYWluAQQsQWNjb3VudElkMzIAAAgcbmV0d29ya3UCCGlkIDhBY2NvdW50SW5kZXg2NAAACBxuZXR3b3JrdQIUaW5kZXgIMEFjY291bnRLZXkyMAAACBxuZXR3b3JrdQIMa2V5pQE4UGFsbGV0SW5zdGFuY2UBBDBHZW5lcmFsSW5kZXgBCChHZW5lcmFsS2V5AAAIGGxlbmd0aAQQZGF0YSAkT25seUNoaWxkAAEFJFBsdXJhbGl0eQAACAhpZKkBEHBhcnStATxHbG9iYWxDb25zZW5zdXMBcQICJBBIZXJlAAEFCFgxAXkCCFgyAAR5AgEICFgzAAR5AgEMCFg0AAR5AgEQCFg1AAR5AgEUCFg2AAR5AgEYCFg3AAR5AgEcCFg4AAR5AgEgAAgccGFyZW50cwQgaW50ZXJpb3J9AgIIIENvbmNyZXRlAYECIEFic3RyYWN0ASAACAhpZIUCDGZ1bg0CBIkCAAAICGlkgQIMZnVuDQIEkQIAAgwIVjMBjQIIVjQBlQIIVjUBFQICDAhWMwGBAghWNAGBAghWNQHVAQYIAnQkQXR0ZW1wdGVkAAAEHG91dGNvbWX9ARBTZW50AAAQGG9yaWdpbtUBLGRlc3RpbmF0aW9u1QEcbWVzc2FnZWkCKG1lc3NhZ2VfaWQgKFNlbmRGYWlsZWQAABAYb3JpZ2lu1QEsZGVzdGluYXRpb27VARRlcnJvcm0CKG1lc3NhZ2VfaWQgPFByb2Nlc3NYY21FcnJvcgAADBhvcmlnaW7VARRlcnJvcvUBKG1lc3NhZ2VfaWQgSFVuZXhwZWN0ZWRSZXNwb25zZQAACBhvcmlnaW7VASBxdWVyeV9pZAg0UmVzcG9uc2VSZWFkeQAACCBxdWVyeV9pZAggcmVzcG9uc2UtAiBOb3RpZmllZAAADCBxdWVyeV9pZAgwcGFsbGV0X2luZGV4BChjYWxsX2luZGV4BEBOb3RpZnlPdmVyd2VpZ2h0AAAUIHF1ZXJ5X2lkCDBwYWxsZXRfaW5kZXgEKGNhbGxfaW5kZXgENGFjdHVhbF93ZWlnaHQYTG1heF9idWRnZXRlZF93ZWlnaHQYTE5vdGlmeURpc3BhdGNoRXJyb3IAAAwgcXVlcnlfaWQIMHBhbGxldF9pbmRleAQoY2FsbF9pbmRleARITm90aWZ5RGVjb2RlRmFpbGVkAAAMIHF1ZXJ5X2lkCDBwYWxsZXRfaW5kZXgEKGNhbGxfaW5kZXgEQEludmFsaWRSZXNwb25kZXIAAAwYb3JpZ2lu1QEgcXVlcnlfaWQIRGV4cGVjdGVkX2xvY2F0aW9uMQJcSW52YWxpZFJlc3BvbmRlclZlcnNpb24AAAgYb3JpZ2lu1QEgcXVlcnlfaWQINFJlc3BvbnNlVGFrZW4AAAQgcXVlcnlfaWQINEFzc2V0c1RyYXBwZWQAAAwQaGFzaCAYb3JpZ2lu1QEYYXNzZXRzmQJUVmVyc2lvbkNoYW5nZU5vdGlmaWVkAAAQLGRlc3RpbmF0aW9u1QEYcmVzdWx0BBBjb3N0FQIobWVzc2FnZV9pZCBcU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQAAAggbG9jYXRpb27VARx2ZXJzaW9uBFBOb3RpZnlUYXJnZXRTZW5kRmFpbAAADCBsb2NhdGlvbtUBIHF1ZXJ5X2lkCBRlcnJvcvUBZE5vdGlmeVRhcmdldE1pZ3JhdGlvbkZhaWwAAAggbG9jYXRpb26dAiBxdWVyeV9pZAhUSW52YWxpZFF1ZXJpZXJWZXJzaW9uAAAIGG9yaWdpbtUBIHF1ZXJ5X2lkCDhJbnZhbGlkUXVlcmllcgAAEBhvcmlnaW7VASBxdWVyeV9pZAhAZXhwZWN0ZWRfcXVlcmllctUBUG1heWJlX2FjdHVhbF9xdWVyaWVyMQJQVmVyc2lvbk5vdGlmeVN0YXJ0ZWQAAAwsZGVzdGluYXRpb27VARBjb3N0FQIobWVzc2FnZV9pZCBYVmVyc2lvbk5vdGlmeVJlcXVlc3RlZAAADCxkZXN0aW5hdGlvbtUBEGNvc3QVAihtZXNzYWdlX2lkIGBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQAAAwsZGVzdGluYXRpb27VARBjb3N0FQIobWVzc2FnZV9pZCAgRmVlc1BhaWQAAAgYcGF5aW5n1QEQZmVlcxUCNEFzc2V0c0NsYWltZWQAAAwQaGFzaCAYb3JpZ2lu1QEYYXNzZXRzmQJgVmVyc2lvbk1pZ3JhdGlvbkZpbmlzaGVkAAAEHHZlcnNpb24EPEFsaWFzQXV0aG9yaXplZAAADBxhbGlhc2Vy1QEYdGFyZ2V01QEYZXhwaXJ5oQJkQWxpYXNBdXRob3JpemF0aW9uUmVtb3ZlZAAACBxhbGlhc2Vy1QEYdGFyZ2V01QFwQWxpYXNlc0F1dGhvcml6YXRpb25zUmVtb3ZlZAAABBh0YXJnZXTVAQIMNEludmFsaWRGb3JtYXQBIEhVbnN1cHBvcnRlZFZlcnNpb24BIEBFeGVjdXRlZERvd253YXJkAAMIIP0BAghoRGVsaXZlcnlGZWVGYWN0b3JEZWNyZWFzZWQAAAQkbmV3X3ZhbHVlCGhEZWxpdmVyeUZlZUZhY3RvckluY3JlYXNlZAAABCRuZXdfdmFsdWUIAgwQSGVyZQABBRhQYXJlbnQAAQUcU2libGluZwEEAhgkQmFkRm9ybWF0AAEFHENvcnJ1cHQAAQUsVW5zdXBwb3J0ZWQAAQUoT3ZlcndlaWdodAEYFFlpZWxkAAEFRFN0YWNrTGltaXRSZWFjaGVkAAEFAhBAUHJvY2Vzc2luZ0ZhaWxlZAAADAhpZCAYb3JpZ2lusQIUZXJyb3K1AiRQcm9jZXNzZWQAABAIaWQgGG9yaWdpbrECLHdlaWdodF91c2VkGBxzdWNjZXNzFEhPdmVyd2VpZ2h0RW5xdWV1ZWQAABAIaWQgGG9yaWdpbrECKHBhZ2VfaW5kZXgENG1lc3NhZ2VfaW5kZXgEKFBhZ2VSZWFwZWQAAAgYb3JpZ2lusQIUaW5kZXgEAggYTm9ybWFsAAEFGEhhbHRlZAABBQIILE1lc3NhZ2VTZW50AAAQGG9yaWdpbtUBLGRlc3RpbmF0aW9u1QEcbWVzc2FnZWkCKG1lc3NhZ2VfaWQgaEV4cG9ydE9wZXJhdGluZ01vZGVDaGFuZ2VkAAAEEG1vZGW9AgIgQEJhdGNoSW50ZXJydXB0ZWQAAAgUaW5kZXgEFGVycm9yDQE4QmF0Y2hDb21wbGV0ZWQAAQVgQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAEFNEl0ZW1Db21wbGV0ZWQAAQUoSXRlbUZhaWxlZAAABBRlcnJvcg0BMERpc3BhdGNoZWRBcwAABBhyZXN1bHQpAURJZkVsc2VNYWluU3VjY2VzcwABBVBJZkVsc2VGYWxsYmFja0NhbGxlZAAABChtYWluX2Vycm9yDQEACBhoZWlnaHQEFGluZGV4BAIULE5ld011bHRpc2lnAAAMJGFwcHJvdmluZwAgbXVsdGlzaWcAJGNhbGxfaGFzaCBATXVsdGlzaWdBcHByb3ZhbAAAECRhcHByb3ZpbmcAJHRpbWVwb2ludMkCIG11bHRpc2lnACRjYWxsX2hhc2ggQE11bHRpc2lnRXhlY3V0ZWQAABQkYXBwcm92aW5nACR0aW1lcG9pbnTJAiBtdWx0aXNpZwAkY2FsbF9oYXNoIBhyZXN1bHQpAURNdWx0aXNpZ0NhbmNlbGxlZAAAEChjYW5jZWxsaW5nACR0aW1lcG9pbnTJAiBtdWx0aXNpZwAkY2FsbF9oYXNoIDBEZXBvc2l0UG9rZWQAABAMd2hvACRjYWxsX2hhc2ggLG9sZF9kZXBvc2l0CCxuZXdfZGVwb3NpdAgCNAxBbnkAAQUsTm9uVHJhbnNmZXIAAQUsQ2FuY2VsUHJveHkAAQUYQXNzZXRzAAEFKEFzc2V0T3duZXIAAQUwQXNzZXRNYW5hZ2VyAAEFIENvbGxhdG9yAAEFKEdvdmVybmFuY2UAAQUcU3Rha2luZwABBTxOb21pbmF0aW9uUG9vbHMAAQUcQXVjdGlvbgABBUBQYXJhUmVnaXN0cmF0aW9uAAEFPFN0YWtpbmdPcGVyYXRvcgABBQIIHFByb3hpZXMAAQU0QW5ub3VuY2VtZW50cwABBQIcNFByb3h5RXhlY3V0ZWQAAAQYcmVzdWx0KQEsUHVyZUNyZWF0ZWQAABgQcHVyZQAMd2hvAChwcm94eV90eXBl0QJQZGlzYW1iaWd1YXRpb25faW5kZXgECGF0BDxleHRyaW5zaWNfaW5kZXgEKFB1cmVLaWxsZWQAABAQcHVyZQAcc3Bhd25lcgAocHJveHlfdHlwZdECUGRpc2FtYmlndWF0aW9uX2luZGV4BCRBbm5vdW5jZWQAAAwQcmVhbAAUcHJveHkAJGNhbGxfaGFzaCAoUHJveHlBZGRlZAAAECRkZWxlZ2F0b3IAJGRlbGVnYXRlZQAocHJveHlfdHlwZdECFGRlbGF5BDBQcm94eVJlbW92ZWQAABAkZGVsZWdhdG9yACRkZWxlZ2F0ZWUAKHByb3h5X3R5cGXRAhRkZWxheQQwRGVwb3NpdFBva2VkAAAQDHdobwAQa2luZNUCLG9sZF9kZXBvc2l0CCxuZXdfZGVwb3NpdAgCEDRJbmRleEFzc2lnbmVkAAAIDHdobwAUaW5kZXgEKEluZGV4RnJlZWQAAAQUaW5kZXgELEluZGV4RnJvemVuAAAIFGluZGV4BAx3aG8AMERlcG9zaXRQb2tlZAAAEAx3aG8AFGluZGV4BCxvbGRfZGVwb3NpdAgsbmV3X2RlcG9zaXQIBCUBAAJwHENyZWF0ZWQAAAwgYXNzZXRfaWQEHGNyZWF0b3IAFG93bmVyABhJc3N1ZWQAAAwgYXNzZXRfaWQEFG93bmVyABhhbW91bnQILFRyYW5zZmVycmVkAAAQIGFzc2V0X2lkBBBmcm9tAAh0bwAYYW1vdW50CBhCdXJuZWQAAAwgYXNzZXRfaWQEFG93bmVyABxiYWxhbmNlCCxUZWFtQ2hhbmdlZAAAECBhc3NldF9pZAQYaXNzdWVyABRhZG1pbgAcZnJlZXplcgAwT3duZXJDaGFuZ2VkAAAIIGFzc2V0X2lkBBRvd25lcgAYRnJvemVuAAAIIGFzc2V0X2lkBAx3aG8AGFRoYXdlZAAACCBhc3NldF9pZAQMd2hvACxBc3NldEZyb3plbgAABCBhc3NldF9pZAQsQXNzZXRUaGF3ZWQAAAQgYXNzZXRfaWQEREFjY291bnRzRGVzdHJveWVkAAAMIGFzc2V0X2lkBEhhY2NvdW50c19kZXN0cm95ZWQESGFjY291bnRzX3JlbWFpbmluZwRIQXBwcm92YWxzRGVzdHJveWVkAAAMIGFzc2V0X2lkBExhcHByb3ZhbHNfZGVzdHJveWVkBExhcHByb3ZhbHNfcmVtYWluaW5nBEhEZXN0cnVjdGlvblN0YXJ0ZWQAAAQgYXNzZXRfaWQEJERlc3Ryb3llZAAABCBhc3NldF9pZAQwRm9yY2VDcmVhdGVkAAAIIGFzc2V0X2lkBBRvd25lcgAsTWV0YWRhdGFTZXQAABQgYXNzZXRfaWQEEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhQ8TWV0YWRhdGFDbGVhcmVkAAAEIGFzc2V0X2lkBEBBcHByb3ZlZFRyYW5zZmVyAAAQIGFzc2V0X2lkBBhzb3VyY2UAIGRlbGVnYXRlABhhbW91bnQIREFwcHJvdmFsQ2FuY2VsbGVkAAAMIGFzc2V0X2lkBBRvd25lcgAgZGVsZWdhdGUATFRyYW5zZmVycmVkQXBwcm92ZWQAABQgYXNzZXRfaWQEFG93bmVyACBkZWxlZ2F0ZQAsZGVzdGluYXRpb24AGGFtb3VudAhIQXNzZXRTdGF0dXNDaGFuZ2VkAAAEIGFzc2V0X2lkBFhBc3NldE1pbkJhbGFuY2VDaGFuZ2VkAAAIIGFzc2V0X2lkBDxuZXdfbWluX2JhbGFuY2UIHFRvdWNoZWQAAAwgYXNzZXRfaWQEDHdobwAkZGVwb3NpdG9yABxCbG9ja2VkAAAIIGFzc2V0X2lkBAx3aG8AJERlcG9zaXRlZAAADCBhc3NldF9pZAQMd2hvABhhbW91bnQIJFdpdGhkcmF3bgAADCBhc3NldF9pZAQMd2hvABhhbW91bnQIPFJlc2VydmVzVXBkYXRlZAAACCBhc3NldF9pZAQgcmVzZXJ2ZXPhAjxSZXNlcnZlc1JlbW92ZWQAAAQgYXNzZXRfaWQEBAQABgQGAAJsHENyZWF0ZWQAAAwoY29sbGVjdGlvbgQcY3JlYXRvcgAUb3duZXIAMEZvcmNlQ3JlYXRlZAAACChjb2xsZWN0aW9uBBRvd25lcgAkRGVzdHJveWVkAAAEKGNvbGxlY3Rpb24EGElzc3VlZAAADChjb2xsZWN0aW9uBBBpdGVtBBRvd25lcgAsVHJhbnNmZXJyZWQAABAoY29sbGVjdGlvbgQQaXRlbQQQZnJvbQAIdG8AGEJ1cm5lZAAADChjb2xsZWN0aW9uBBBpdGVtBBRvd25lcgAYRnJvemVuAAAIKGNvbGxlY3Rpb24EEGl0ZW0EGFRoYXdlZAAACChjb2xsZWN0aW9uBBBpdGVtBEBDb2xsZWN0aW9uRnJvemVuAAAEKGNvbGxlY3Rpb24EQENvbGxlY3Rpb25UaGF3ZWQAAAQoY29sbGVjdGlvbgQwT3duZXJDaGFuZ2VkAAAIKGNvbGxlY3Rpb24EJG5ld19vd25lcgAsVGVhbUNoYW5nZWQAABAoY29sbGVjdGlvbgQYaXNzdWVyABRhZG1pbgAcZnJlZXplcgBAQXBwcm92ZWRUcmFuc2ZlcgAAEChjb2xsZWN0aW9uBBBpdGVtBBRvd25lcgAgZGVsZWdhdGUAREFwcHJvdmFsQ2FuY2VsbGVkAAAQKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyACBkZWxlZ2F0ZQBESXRlbVN0YXR1c0NoYW5nZWQAAAQoY29sbGVjdGlvbgRUQ29sbGVjdGlvbk1ldGFkYXRhU2V0AAAMKGNvbGxlY3Rpb24EEGRhdGEkJGlzX2Zyb3plbhRkQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZAAABChjb2xsZWN0aW9uBCxNZXRhZGF0YVNldAAAEChjb2xsZWN0aW9uBBBpdGVtBBBkYXRhJCRpc19mcm96ZW4UPE1ldGFkYXRhQ2xlYXJlZAAACChjb2xsZWN0aW9uBBBpdGVtBCxSZWRlcG9zaXRlZAAACChjb2xsZWN0aW9uBEBzdWNjZXNzZnVsX2l0ZW1z6QIwQXR0cmlidXRlU2V0AAAQKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkFHZhbHVlJEBBdHRyaWJ1dGVDbGVhcmVkAAAMKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkaE93bmVyc2hpcEFjY2VwdGFuY2VDaGFuZ2VkAAAIDHdobwBAbWF5YmVfY29sbGVjdGlvbu0CWENvbGxlY3Rpb25NYXhTdXBwbHlTZXQAAAgoY29sbGVjdGlvbgQobWF4X3N1cHBseQQwSXRlbVByaWNlU2V0AAAQKGNvbGxlY3Rpb24EEGl0ZW0EFHByaWNlCER3aGl0ZWxpc3RlZF9idXllcvECQEl0ZW1QcmljZVJlbW92ZWQAAAgoY29sbGVjdGlvbgQQaXRlbQQoSXRlbUJvdWdodAAAFChjb2xsZWN0aW9uBBBpdGVtBBRwcmljZQgYc2VsbGVyABRidXllcgACEBhQYWxsZXQAAQU8Q29sbGVjdGlvbk93bmVyAAEFJEl0ZW1Pd25lcgABBRxBY2NvdW50AQACCBBTZW5kAAEFHFJlY2VpdmUAAQUACBhhbW91bnQIJGRpcmVjdGlvbv0CBgEDAggsVXNlZFRvQ2xhaW0BBEBUcmFuc2ZlckRpc2FibGVkAAEFApgcQ3JlYXRlZAAADChjb2xsZWN0aW9uBBxjcmVhdG9yABRvd25lcgAwRm9yY2VDcmVhdGVkAAAIKGNvbGxlY3Rpb24EFG93bmVyACREZXN0cm95ZWQAAAQoY29sbGVjdGlvbgQYSXNzdWVkAAAMKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyACxUcmFuc2ZlcnJlZAAAEChjb2xsZWN0aW9uBBBpdGVtBBBmcm9tAAh0bwAYQnVybmVkAAAMKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyAEhJdGVtVHJhbnNmZXJMb2NrZWQAAAgoY29sbGVjdGlvbgQQaXRlbQRQSXRlbVRyYW5zZmVyVW5sb2NrZWQAAAgoY29sbGVjdGlvbgQQaXRlbQRQSXRlbVByb3BlcnRpZXNMb2NrZWQAABAoY29sbGVjdGlvbgQQaXRlbQQ0bG9ja19tZXRhZGF0YRQ8bG9ja19hdHRyaWJ1dGVzFEBDb2xsZWN0aW9uTG9ja2VkAAAEKGNvbGxlY3Rpb24EME93bmVyQ2hhbmdlZAAACChjb2xsZWN0aW9uBCRuZXdfb3duZXIALFRlYW1DaGFuZ2VkAAAQKGNvbGxlY3Rpb24EGGlzc3VlcvECFGFkbWlu8QIcZnJlZXplcvECQFRyYW5zZmVyQXBwcm92ZWQAABQoY29sbGVjdGlvbgQQaXRlbQQUb3duZXIAIGRlbGVnYXRlACBkZWFkbGluZe0CREFwcHJvdmFsQ2FuY2VsbGVkAAAQKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyACBkZWxlZ2F0ZQBUQWxsQXBwcm92YWxzQ2FuY2VsbGVkAAAMKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyAFxDb2xsZWN0aW9uQ29uZmlnQ2hhbmdlZAAABChjb2xsZWN0aW9uBFRDb2xsZWN0aW9uTWV0YWRhdGFTZXQAAAgoY29sbGVjdGlvbgQQZGF0YSRkQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZAAABChjb2xsZWN0aW9uBDxJdGVtTWV0YWRhdGFTZXQAAAwoY29sbGVjdGlvbgQQaXRlbQQQZGF0YSRMSXRlbU1ldGFkYXRhQ2xlYXJlZAAACChjb2xsZWN0aW9uBBBpdGVtBCxSZWRlcG9zaXRlZAAACChjb2xsZWN0aW9uBEBzdWNjZXNzZnVsX2l0ZW1z6QIwQXR0cmlidXRlU2V0AAAUKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkFHZhbHVlJCRuYW1lc3BhY2X5AkBBdHRyaWJ1dGVDbGVhcmVkAAAQKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkJG5hbWVzcGFjZfkCbEl0ZW1BdHRyaWJ1dGVzQXBwcm92YWxBZGRlZAAADChjb2xsZWN0aW9uBBBpdGVtBCBkZWxlZ2F0ZQB0SXRlbUF0dHJpYnV0ZXNBcHByb3ZhbFJlbW92ZWQAAAwoY29sbGVjdGlvbgQQaXRlbQQgZGVsZWdhdGUAaE93bmVyc2hpcEFjY2VwdGFuY2VDaGFuZ2VkAAAIDHdobwBAbWF5YmVfY29sbGVjdGlvbu0CWENvbGxlY3Rpb25NYXhTdXBwbHlTZXQAAAgoY29sbGVjdGlvbgQobWF4X3N1cHBseQR0Q29sbGVjdGlvbk1pbnRTZXR0aW5nc1VwZGF0ZWQAAAQoY29sbGVjdGlvbgRsTmV4dENvbGxlY3Rpb25JZEluY3JlbWVudGVkAAAEHG5leHRfaWTtAjBJdGVtUHJpY2VTZXQAABAoY29sbGVjdGlvbgQQaXRlbQQUcHJpY2UIRHdoaXRlbGlzdGVkX2J1eWVy8QJASXRlbVByaWNlUmVtb3ZlZAAACChjb2xsZWN0aW9uBBBpdGVtBChJdGVtQm91Z2h0AAAUKGNvbGxlY3Rpb24EEGl0ZW0EFHByaWNlCBhzZWxsZXIAFGJ1eWVyABxUaXBTZW50AAAUKGNvbGxlY3Rpb24EEGl0ZW0EGHNlbmRlcgAgcmVjZWl2ZXIAGGFtb3VudAgsU3dhcENyZWF0ZWQAABhIb2ZmZXJlZF9jb2xsZWN0aW9uBDBvZmZlcmVkX2l0ZW0ESGRlc2lyZWRfY29sbGVjdGlvbgQwZGVzaXJlZF9pdGVt7QIUcHJpY2UFAyBkZWFkbGluZQQ0U3dhcENhbmNlbGxlZAAAGEhvZmZlcmVkX2NvbGxlY3Rpb24EMG9mZmVyZWRfaXRlbQRIZGVzaXJlZF9jb2xsZWN0aW9uBDBkZXNpcmVkX2l0ZW3tAhRwcmljZQUDIGRlYWRsaW5lBCxTd2FwQ2xhaW1lZAAAIDxzZW50X2NvbGxlY3Rpb24EJHNlbnRfaXRlbQQ8c2VudF9pdGVtX293bmVyAExyZWNlaXZlZF9jb2xsZWN0aW9uBDRyZWNlaXZlZF9pdGVtBExyZWNlaXZlZF9pdGVtX293bmVyABRwcmljZQUDIGRlYWRsaW5lBFhQcmVTaWduZWRBdHRyaWJ1dGVzU2V0AAAMKGNvbGxlY3Rpb24EEGl0ZW0EJG5hbWVzcGFjZfkCSFBhbGxldEF0dHJpYnV0ZVNldAAAEChjb2xsZWN0aW9uBBBpdGVt7QIkYXR0cmlidXRlCQMUdmFsdWUkAAgccmVzZXJ2ZdUBMHRlbGVwb3J0YWJsZRQEEQMAAnAcQ3JlYXRlZAAADCBhc3NldF9pZNUBHGNyZWF0b3IAFG93bmVyABhJc3N1ZWQAAAwgYXNzZXRfaWTVARRvd25lcgAYYW1vdW50CCxUcmFuc2ZlcnJlZAAAECBhc3NldF9pZNUBEGZyb20ACHRvABhhbW91bnQIGEJ1cm5lZAAADCBhc3NldF9pZNUBFG93bmVyABxiYWxhbmNlCCxUZWFtQ2hhbmdlZAAAECBhc3NldF9pZNUBGGlzc3VlcgAUYWRtaW4AHGZyZWV6ZXIAME93bmVyQ2hhbmdlZAAACCBhc3NldF9pZNUBFG93bmVyABhGcm96ZW4AAAggYXNzZXRfaWTVAQx3aG8AGFRoYXdlZAAACCBhc3NldF9pZNUBDHdobwAsQXNzZXRGcm96ZW4AAAQgYXNzZXRfaWTVASxBc3NldFRoYXdlZAAABCBhc3NldF9pZNUBREFjY291bnRzRGVzdHJveWVkAAAMIGFzc2V0X2lk1QFIYWNjb3VudHNfZGVzdHJveWVkBEhhY2NvdW50c19yZW1haW5pbmcESEFwcHJvdmFsc0Rlc3Ryb3llZAAADCBhc3NldF9pZNUBTGFwcHJvdmFsc19kZXN0cm95ZWQETGFwcHJvdmFsc19yZW1haW5pbmcESERlc3RydWN0aW9uU3RhcnRlZAAABCBhc3NldF9pZNUBJERlc3Ryb3llZAAABCBhc3NldF9pZNUBMEZvcmNlQ3JlYXRlZAAACCBhc3NldF9pZNUBFG93bmVyACxNZXRhZGF0YVNldAAAFCBhc3NldF9pZNUBEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhQ8TWV0YWRhdGFDbGVhcmVkAAAEIGFzc2V0X2lk1QFAQXBwcm92ZWRUcmFuc2ZlcgAAECBhc3NldF9pZNUBGHNvdXJjZQAgZGVsZWdhdGUAGGFtb3VudAhEQXBwcm92YWxDYW5jZWxsZWQAAAwgYXNzZXRfaWTVARRvd25lcgAgZGVsZWdhdGUATFRyYW5zZmVycmVkQXBwcm92ZWQAABQgYXNzZXRfaWTVARRvd25lcgAgZGVsZWdhdGUALGRlc3RpbmF0aW9uABhhbW91bnQISEFzc2V0U3RhdHVzQ2hhbmdlZAAABCBhc3NldF9pZNUBWEFzc2V0TWluQmFsYW5jZUNoYW5nZWQAAAggYXNzZXRfaWTVATxuZXdfbWluX2JhbGFuY2UIHFRvdWNoZWQAAAwgYXNzZXRfaWTVAQx3aG8AJGRlcG9zaXRvcgAcQmxvY2tlZAAACCBhc3NldF9pZNUBDHdobwAkRGVwb3NpdGVkAAAMIGFzc2V0X2lk1QEMd2hvABhhbW91bnQIJFdpdGhkcmF3bgAADCBhc3NldF9pZNUBDHdobwAYYW1vdW50CDxSZXNlcnZlc1VwZGF0ZWQAAAggYXNzZXRfaWTVASByZXNlcnZlcxUDPFJlc2VydmVzUmVtb3ZlZAAABCBhc3NldF9pZNUBBNUBAQgDCNUBCAQhAwACGCxQb29sQ3JlYXRlZAAAEBxjcmVhdG9yABxwb29sX2lkHQMwcG9vbF9hY2NvdW50ACBscF90b2tlbgQ4TGlxdWlkaXR5QWRkZWQAABwMd2hvABxtaW50X3RvABxwb29sX2lkHQNAYW1vdW50MV9wcm92aWRlZAhAYW1vdW50Ml9wcm92aWRlZAggbHBfdG9rZW4EPGxwX3Rva2VuX21pbnRlZAhATGlxdWlkaXR5UmVtb3ZlZAAAIAx3aG8ALHdpdGhkcmF3X3RvABxwb29sX2lkHQMcYW1vdW50MQgcYW1vdW50MgggbHBfdG9rZW4EPGxwX3Rva2VuX2J1cm5lZAg4d2l0aGRyYXdhbF9mZWUEMFN3YXBFeGVjdXRlZAAAFAx3aG8AHHNlbmRfdG8AJGFtb3VudF9pbggoYW1vdW50X291dAgQcGF0aCUDSFN3YXBDcmVkaXRFeGVjdXRlZAAADCRhbW91bnRfaW4IKGFtb3VudF9vdXQIEHBhdGglAxxUb3VjaGVkAAAIHHBvb2xfaWQdAwx3aG8AAgwIVjMAAAggbG9jYXRpb26BAiBhc3NldF9pZIUCCFY0AAAIIGxvY2F0aW9ugQIgYXNzZXRfaWSBAghWNQAACCBsb2NhdGlvbtUBIGFzc2V0X2lk1QECCAhWNAAACCBsb2NhdGlvboECKGFjY291bnRfaWSBAghWNQAACCBsb2NhdGlvbtUBKGFjY291bnRfaWTVAQIwIFNwZW5kaW5nAAAEQGJ1ZGdldF9yZW1haW5pbmcIHEF3YXJkZWQAAAw4cHJvcG9zYWxfaW5kZXgEFGF3YXJkCBxhY2NvdW50ABRCdXJudAAABCxidXJudF9mdW5kcwggUm9sbG92ZXIAAARAcm9sbG92ZXJfYmFsYW5jZQgcRGVwb3NpdAAABBR2YWx1ZQg0U3BlbmRBcHByb3ZlZAAADDhwcm9wb3NhbF9pbmRleAQYYW1vdW50CCxiZW5lZmljaWFyeQA8VXBkYXRlZEluYWN0aXZlAAAILHJlYWN0aXZhdGVkCCxkZWFjdGl2YXRlZAhIQXNzZXRTcGVuZEFwcHJvdmVkAAAYFGluZGV4BChhc3NldF9raW5kLQMYYW1vdW50CCxiZW5lZmljaWFyeTEDKHZhbGlkX2Zyb20EJGV4cGlyZV9hdARAQXNzZXRTcGVuZFZvaWRlZAAABBRpbmRleAQQUGFpZAAACBRpbmRleAQocGF5bWVudF9pZAg0UGF5bWVudEZhaWxlZAAACBRpbmRleAQocGF5bWVudF9pZAg4U3BlbmRQcm9jZXNzZWQAAAQUaW5kZXgEAgwgU3RhbmRhcmQAAAgQdm90ZQQcYmFsYW5jZQgUU3BsaXQAAAgMYXllCAxuYXkIMFNwbGl0QWJzdGFpbgAADAxheWUIDG5heQgcYWJzdGFpbggCFCREZWxlZ2F0ZWQAAwwAAAQsVW5kZWxlZ2F0ZWQAAwgABBRWb3RlZAAADAx3aG8AEHZvdGU5Ayhwb2xsX2luZGV4BCxWb3RlUmVtb3ZlZAAADAx3aG8AEHZvdGU5Ayhwb2xsX2luZGV4BDBWb3RlVW5sb2NrZWQAAAgMd2hvABRjbGFzcwQCDBhMZWdhY3kAAAQQaGFzaCAYSW5saW5lASQYTG9va3VwAAAIEGhhc2ggDGxlbgQADBBheWVzCBBuYXlzCBxzdXBwb3J0CAJAJFN1Ym1pdHRlZAAADBRpbmRleAQUdHJhY2sEIHByb3Bvc2FsQQNURGVjaXNpb25EZXBvc2l0UGxhY2VkAAAMFGluZGV4BAx3aG8AGGFtb3VudAhcRGVjaXNpb25EZXBvc2l0UmVmdW5kZWQAAAwUaW5kZXgEDHdobwAYYW1vdW50CDhEZXBvc2l0U2xhc2hlZAAACAx3aG8AGGFtb3VudAg8RGVjaXNpb25TdGFydGVkAAAQFGluZGV4BBR0cmFjawQgcHJvcG9zYWxBAxR0YWxseUUDOENvbmZpcm1TdGFydGVkAAAEFGluZGV4BDhDb25maXJtQWJvcnRlZAAABBRpbmRleAQkQ29uZmlybWVkAAAIFGluZGV4BBR0YWxseUUDIEFwcHJvdmVkAAAEFGluZGV4BCBSZWplY3RlZAAACBRpbmRleAQUdGFsbHlFAyBUaW1lZE91dAAACBRpbmRleAQUdGFsbHlFAyRDYW5jZWxsZWQAAAgUaW5kZXgEFHRhbGx5RQMYS2lsbGVkAAAIFGluZGV4BBR0YWxseUUDZFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWQAAAwUaW5kZXgEDHdobwAYYW1vdW50CCxNZXRhZGF0YVNldAAACBRpbmRleAQQaGFzaCA8TWV0YWRhdGFDbGVhcmVkAAAIFGluZGV4BBBoYXNoIAAINGFjdHVhbF93ZWlnaHRJASBwYXlzX2ZlZTwACCRwb3N0X2luZm9NAxRlcnJvcg0BB00DUQMCDDxDYWxsV2hpdGVsaXN0ZWQAAAQkY2FsbF9oYXNoIFhXaGl0ZWxpc3RlZENhbGxSZW1vdmVkAAAEJGNhbGxfaGFzaCBkV2hpdGVsaXN0ZWRDYWxsRGlzcGF0Y2hlZAAACCRjYWxsX2hhc2ggGHJlc3VsdFUDAjA4Qm91bnR5UHJvcG9zZWQAAAQUaW5kZXgEOEJvdW50eVJlamVjdGVkAAAIFGluZGV4BBBib25kCEhCb3VudHlCZWNhbWVBY3RpdmUAAAQUaW5kZXgENEJvdW50eUF3YXJkZWQAAAgUaW5kZXgELGJlbmVmaWNpYXJ5ADRCb3VudHlDbGFpbWVkAAAMFGluZGV4BBhwYXlvdXQILGJlbmVmaWNpYXJ5ADhCb3VudHlDYW5jZWxlZAAABBRpbmRleAQ4Qm91bnR5RXh0ZW5kZWQAAAQUaW5kZXgEOEJvdW50eUFwcHJvdmVkAAAEFGluZGV4BDxDdXJhdG9yUHJvcG9zZWQAAAgkYm91bnR5X2lkBBxjdXJhdG9yAERDdXJhdG9yVW5hc3NpZ25lZAAABCRib3VudHlfaWQEPEN1cmF0b3JBY2NlcHRlZAAACCRib3VudHlfaWQEHGN1cmF0b3IAMERlcG9zaXRQb2tlZAAAECRib3VudHlfaWQEIHByb3Bvc2VyACxvbGRfZGVwb3NpdAgsbmV3X2RlcG9zaXQIAhAUQWRkZWQAAAgUaW5kZXgELGNoaWxkX2luZGV4BBxBd2FyZGVkAAAMFGluZGV4BCxjaGlsZF9pbmRleAQsYmVuZWZpY2lhcnkAHENsYWltZWQAABAUaW5kZXgELGNoaWxkX2luZGV4BBhwYXlvdXQILGJlbmVmaWNpYXJ5ACBDYW5jZWxlZAAACBRpbmRleAQsY2hpbGRfaW5kZXgEAgxAQXNzZXRSYXRlQ3JlYXRlZAAACChhc3NldF9raW5kLQMQcmF0ZQhAQXNzZXRSYXRlUmVtb3ZlZAAABChhc3NldF9raW5kLQNAQXNzZXRSYXRlVXBkYXRlZAAADChhc3NldF9raW5kLQMMb2xkCAxuZXcIAjA0Qm91bnR5Q3JlYXRlZAAABBRpbmRleARIQ2hpbGRCb3VudHlDcmVhdGVkAAAIFGluZGV4BCxjaGlsZF9pbmRleARIQm91bnR5QmVjYW1lQWN0aXZlAAAMFGluZGV4BCxjaGlsZF9pbmRleO0CHGN1cmF0b3IANEJvdW50eUF3YXJkZWQAAAwUaW5kZXgELGNoaWxkX2luZGV47QIsYmVuZWZpY2lhcnkxA1RCb3VudHlQYXlvdXRQcm9jZXNzZWQAABQUaW5kZXgELGNoaWxkX2luZGV47QIoYXNzZXRfa2luZC0DFHZhbHVlCCxiZW5lZmljaWFyeTEDWEJvdW50eUZ1bmRpbmdQcm9jZXNzZWQAAAgUaW5kZXgELGNoaWxkX2luZGV47QJUQm91bnR5UmVmdW5kUHJvY2Vzc2VkAAAIFGluZGV4BCxjaGlsZF9pbmRleO0COEJvdW50eUNhbmNlbGVkAAAIFGluZGV4BCxjaGlsZF9pbmRleO0CREN1cmF0b3JVbmFzc2lnbmVkAAAIFGluZGV4BCxjaGlsZF9pbmRleO0CPEN1cmF0b3JQcm9wb3NlZAAADBRpbmRleAQsY2hpbGRfaW5kZXjtAhxjdXJhdG9yADRQYXltZW50RmFpbGVkAAAMFGluZGV4BCxjaGlsZF9pbmRleO0CKHBheW1lbnRfaWQIEFBhaWQAAAwUaW5kZXgELGNoaWxkX2luZGV47QIocGF5bWVudF9pZAgCCBhTaWduZWQAAQUQQXV0bwABBQIQIE1pZ3JhdGVkAAAMDHRvcAQUY2hpbGQEHGNvbXB1dGVtAxxTbGFzaGVkAAAIDHdobwAYYW1vdW50CFRBdXRvTWlncmF0aW9uRmluaXNoZWQAAQUYSGFsdGVkAAAEFGVycm9ywAIMEE9wZW4AAQUcQmxvY2tlZAABBShEZXN0cm95aW5nAAEFAwgEAAZ5AwAIMG1heF9pbmNyZWFzZQQkbWluX2RlbGF5BAIIOFBlcm1pc3Npb25sZXNzAAEFHEFjY291bnQBAAaFAwIQMFBlcm1pc3Npb25lZAABBVhQZXJtaXNzaW9ubGVzc0NvbXBvdW5kAAEFWFBlcm1pc3Npb25sZXNzV2l0aGRyYXcAAQVEUGVybWlzc2lvbmxlc3NBbGwAAQUCXBxDcmVhdGVkAAAIJGRlcG9zaXRvcgAccG9vbF9pZAQYQm9uZGVkAAAQGG1lbWJlcgAccG9vbF9pZAQYYm9uZGVkCBhqb2luZWQUHFBhaWRPdXQAAAwYbWVtYmVyABxwb29sX2lkBBhwYXlvdXQIIFVuYm9uZGVkAAAUGG1lbWJlcgAccG9vbF9pZAQcYmFsYW5jZQgYcG9pbnRzCAxlcmEEJFdpdGhkcmF3bgAAEBhtZW1iZXIAHHBvb2xfaWQEHGJhbGFuY2UIGHBvaW50cwgkRGVzdHJveWVkAAAEHHBvb2xfaWQEMFN0YXRlQ2hhbmdlZAAACBxwb29sX2lkBCRuZXdfc3RhdGV1AzRNZW1iZXJSZW1vdmVkAAAMHHBvb2xfaWQEGG1lbWJlcgBAcmVsZWFzZWRfYmFsYW5jZQgwUm9sZXNVcGRhdGVkAAAMEHJvb3TxAhxib3VuY2Vy8QIkbm9taW5hdG9y8QIsUG9vbFNsYXNoZWQAAAgccG9vbF9pZAQcYmFsYW5jZQhQVW5ib25kaW5nUG9vbFNsYXNoZWQAAAwccG9vbF9pZAQMZXJhBBxiYWxhbmNlCFRQb29sQ29tbWlzc2lvblVwZGF0ZWQAAAgccG9vbF9pZAQcY3VycmVudH0DYFBvb2xNYXhDb21taXNzaW9uVXBkYXRlZAAACBxwb29sX2lkBDhtYXhfY29tbWlzc2lvbgR8UG9vbENvbW1pc3Npb25DaGFuZ2VSYXRlVXBkYXRlZAAACBxwb29sX2lkBCxjaGFuZ2VfcmF0ZYEDkFBvb2xDb21taXNzaW9uQ2xhaW1QZXJtaXNzaW9uVXBkYXRlZAAACBxwb29sX2lkBChwZXJtaXNzaW9uiQNUUG9vbENvbW1pc3Npb25DbGFpbWVkAAAIHHBvb2xfaWQEKGNvbW1pc3Npb24IZE1pbkJhbGFuY2VEZWZpY2l0QWRqdXN0ZWQAAAgccG9vbF9pZAQYYW1vdW50CGBNaW5CYWxhbmNlRXhjZXNzQWRqdXN0ZWQAAAgccG9vbF9pZAQYYW1vdW50CHBNZW1iZXJDbGFpbVBlcm1pc3Npb25VcGRhdGVkAAAIGG1lbWJlcgAocGVybWlzc2lvbo0DPE1ldGFkYXRhVXBkYXRlZAAACBxwb29sX2lkBBhjYWxsZXIASFBvb2xOb21pbmF0aW9uTWFkZQAACBxwb29sX2lkBBhjYWxsZXIAUFBvb2xOb21pbmF0b3JDaGlsbGVkAAAIHHBvb2xfaWQEGGNhbGxlcgBMR2xvYmFsUGFyYW1zVXBkYXRlZAAAGDRtaW5fam9pbl9ib25kCDxtaW5fY3JlYXRlX2JvbmQIJG1heF9wb29sc+0CLG1heF9tZW1iZXJz7QJQbWF4X21lbWJlcnNfcGVyX3Bvb2ztAlRnbG9iYWxfbWF4X2NvbW1pc3Npb27tAgIIIFJlYmFnZ2VkAAAMDHdobwAQZnJvbQgIdG8IMFNjb3JlVXBkYXRlZAAACAx3aG8AJG5ld19zY29yZQgCECREZWxlZ2F0ZWQAAAwUYWdlbnQAJGRlbGVnYXRvcgAYYW1vdW50CCBSZWxlYXNlZAAADBRhZ2VudAAkZGVsZWdhdG9yABhhbW91bnQIHFNsYXNoZWQAAAwUYWdlbnQAJGRlbGVnYXRvcgAYYW1vdW50CEhNaWdyYXRlZERlbGVnYXRpb24AAAwUYWdlbnQAJGRlbGVnYXRvcgAYYW1vdW50CAMICAQGnQMCGHBTZXNzaW9uUmVwb3J0SW50ZWdyaXR5RmFpbGVkAAEFbFZhbGlkYXRvclNldEludGVncml0eUZhaWxlZAABBThTZXNzaW9uU2tpcHBlZAABBVxTZXNzaW9uQWxyZWFkeVByb2Nlc3NlZAABBVhWYWxpZGF0b3JTZXRTZW5kRmFpbGVkAAEFTFZhbGlkYXRvclNldERyb3BwZWQAAQUCEFRTZXNzaW9uUmVwb3J0UmVjZWl2ZWQAABAkZW5kX2luZGV4BFBhY3RpdmF0aW9uX3RpbWVzdGFtcKEDXHZhbGlkYXRvcl9wb2ludHNfY291bnRzBCBsZWZ0b3ZlchQ8T2ZmZW5jZVJlY2VpdmVkAAAINHNsYXNoX3Nlc3Npb24EOG9mZmVuY2VzX2NvdW50BCBGZWVzUGFpZAAACAx3aG8AEGZlZXMIKFVuZXhwZWN0ZWQBpQMCIAxPZmYAAQUYU2lnbmVkAQRAU2lnbmVkVmFsaWRhdGlvbgEEIFVuc2lnbmVkAQQgU25hcHNob3QBBBBEb25lAAEFGEV4cG9ydAEEJEVtZXJnZW5jeQABBQIMRFBoYXNlVHJhbnNpdGlvbmVkAAAIEGZyb22tAwh0b60DeFVuZXhwZWN0ZWRUYXJnZXRTbmFwc2hvdEZhaWxlZAABBXRVbmV4cGVjdGVkVm90ZXJTbmFwc2hvdEZhaWxlZAABBQIoWFNvbHV0aW9uV2VpZ2h0T3ZlcmZsb3cAAQVYU29sdXRpb25UYXJnZXRPdmVyZmxvdwABBVBTb2x1dGlvbkludmFsaWRJbmRleAABBWBTb2x1dGlvbkludmFsaWRQYWdlSW5kZXgAAQU8QXJpdGhtZXRpY0Vycm9yAAEFSEludmFsaWRTdXBwb3J0RWRnZQABBTRUb29NYW55Vm90ZXJzAAEFOEJvdW5kc0V4Y2VlZGVkAAEFOER1cGxpY2F0ZVZvdGVyAAEFPER1cGxpY2F0ZVRhcmdldAABBQIsQFdyb25nV2lubmVyQ291bnQAAQVMU25hcHNob3RVbmF2YWlsYWJsZQABBSxJbnZhbGlkVm90ZQABBTBJbnZhbGlkVm90ZXIAAQU0SW52YWxpZFdpbm5lcgABBTBJbnZhbGlkU2NvcmUAAQUwSW52YWxpZFJvdW5kAAEFLFNjb3JlVG9vTG93AAEFUEZhaWxlZFRvQm91bmRTdXBwb3J0AAEFME5wb3NFbGVjdGlvbgG1AyhJbmNvbXBsZXRlAAEFAAw0bWluaW1hbF9zdGFrZQgkc3VtX3N0YWtlCERzdW1fc3Rha2Vfc3F1YXJlZAgGvQMCDEhWZXJpZmljYXRpb25GYWlsZWQAAwgEuQMgVmVyaWZpZWQABAQBCBhRdWV1ZWQAAwi9A8EDAhwoUmVnaXN0ZXJlZAADDAQAvQMYU3RvcmVkAAMMBAAEIFJld2FyZGVkAAMMBAAIHFNsYXNoZWQAAwwEAAgcRWplY3RlZAADCAQAJERpc2NhcmRlZAADCAQAGEJhaWxlZAADCAQAAhQYU3Rha2VkAAEFFFN0YXNoAAEFKENvbnRyb2xsZXIAAQUcQWNjb3VudAEAEE5vbmUAAQUACChjb21taXNzaW9uBBxibG9ja2VkFAIQKE5vdEZvcmNpbmcAAQUgRm9yY2VOZXcAAQUkRm9yY2VOb25lAAEFLEZvcmNlQWx3YXlzAAEFBwQEAghgRXJhRHVyYXRpb25Cb3VuZEV4Y2VlZGVkAAEFaFVua25vd25WYWxpZGF0b3JBY3RpdmF0aW9uAAEFAmQcRXJhUGFpZAAADCRlcmFfaW5kZXgEQHZhbGlkYXRvcl9wYXlvdXQIJHJlbWFpbmRlcgggUmV3YXJkZWQAAAwUc3Rhc2gAEGRlc3TNAxhhbW91bnQIHFNsYXNoZWQAAAgYc3Rha2VyABhhbW91bnQIaE9sZFNsYXNoaW5nUmVwb3J0RGlzY2FyZGVkAAAENHNlc3Npb25faW5kZXgEGEJvbmRlZAAACBRzdGFzaAAYYW1vdW50CCBVbmJvbmRlZAAACBRzdGFzaAAYYW1vdW50CCRXaXRoZHJhd24AAAgUc3Rhc2gAGGFtb3VudAg0U3Rha2VyUmVtb3ZlZAAABBRzdGFzaAAYS2lja2VkAAAIJG5vbWluYXRvcgAUc3Rhc2gAHENoaWxsZWQAAAQUc3Rhc2gANFBheW91dFN0YXJ0ZWQAABAkZXJhX2luZGV4BDx2YWxpZGF0b3Jfc3Rhc2gAEHBhZ2UEEG5leHTtAkRWYWxpZGF0b3JQcmVmc1NldAAACBRzdGFzaAAUcHJlZnPRA2hTbmFwc2hvdFZvdGVyc1NpemVFeGNlZWRlZAAABBBzaXplBGxTbmFwc2hvdFRhcmdldHNTaXplRXhjZWVkZWQAAAQQc2l6ZQQgRm9yY2VFcmEAAAQQbW9kZdUDZENvbnRyb2xsZXJCYXRjaERlcHJlY2F0ZWQAAAQgZmFpbHVyZXMEQEN1cnJlbmN5TWlncmF0ZWQAAAgUc3Rhc2gAOGZvcmNlX3dpdGhkcmF3CFhQYWdlZEVsZWN0aW9uUHJvY2VlZGVkAAAIEHBhZ2UEGHJlc3VsdNkDPE9mZmVuY2VSZXBvcnRlZAAADCxvZmZlbmNlX2VyYQQkdmFsaWRhdG9yACBmcmFjdGlvbgQ0U2xhc2hDb21wdXRlZAAAECxvZmZlbmNlX2VyYQQkc2xhc2hfZXJhBCBvZmZlbmRlcgAQcGFnZQQ4U2xhc2hDYW5jZWxsZWQAAAgkc2xhc2hfZXJhBCR2YWxpZGF0b3IAOFNlc3Npb25Sb3RhdGVkAAAMQHN0YXJ0aW5nX3Nlc3Npb24EKGFjdGl2ZV9lcmEELHBsYW5uZWRfZXJhBChVbmV4cGVjdGVkAd0DNE9mZmVuY2VUb29PbGQAAAwsb2ZmZW5jZV9lcmEEJHZhbGlkYXRvcgAgZnJhY3Rpb24EJEVyYVBydW5lZAAABBRpbmRleAQEIAACDDxDb250cmFjdEVtaXR0ZWQAAAwgY29udHJhY3SlARBkYXRhJBh0b3BpY3PlAzBJbnN0YW50aWF0ZWQAAAggZGVwbG95ZXKlASBjb250cmFjdKUBSEV0aEV4dHJpbnNpY1JldmVydAAABDhkaXNwYXRjaF9lcnJvcg0BAhAUU3VkaWQAAAQsc3Vkb19yZXN1bHQpAShLZXlDaGFuZ2VkAAAIDG9sZPECDG5ldwAoS2V5UmVtb3ZlZAABBShTdWRvQXNEb25lAAAELHN1ZG9fcmVzdWx0KQECEFxMZWFzZVVucmVzZXJ2ZVJlbWFpbmluZwAADCRkZXBvc2l0b3IAHHBhcmFfaWQEJHJlbWFpbmluZwhsQ3Jvd2Rsb2FuVW5yZXNlcnZlUmVtYWluaW5nAAAMJGRlcG9zaXRvcgAccGFyYV9pZAQkcmVtYWluaW5nCERTb3ZlcmVpZ25NaWdyYXRlZAAAEBxwYXJhX2lkBBBmcm9tAAh0bwA8ZGVyaXZhdGlvbl9wYXRo6QIwRmFpbGVkVG9Cb25kAAAIHGFjY291bnQAGGFtb3VudAgCEBxQZW5kaW5nAAEFUERhdGFNaWdyYXRpb25PbmdvaW5nAAEFNE1pZ3JhdGlvbkRvbmUAAQUcQ29vbE9mZgAABBhlbmRfYXQEAmwoQXNzZXRSYXRlcwABBSBCYWdzTGlzdAABBSBCYWxhbmNlcwABBSBCb3VudGllcwABBTRDaGlsZEJvdW50aWVzAAEFGENsYWltcwABBUBDb252aWN0aW9uVm90aW5nAAEFJENyb3dkbG9hbgABBUBEZWxlZ2F0ZWRTdGFraW5nAAEFHEluZGljZXMAAQUgTXVsdGlzaWcAAQUgTm9tUG9vbHMAAQU0UHJlaW1hZ2VDaHVuawABBVBQcmVpbWFnZUxlZ2FjeVN0YXR1cwABBVRQcmVpbWFnZVJlcXVlc3RTdGF0dXMAAQVIUHJveHlBbm5vdW5jZW1lbnRzAAEFMFByb3h5UHJveGllcwABBSBSZWNvdmVyeQABBURSZWZlcmVuZGFNZXRhZGF0YQABBVBSZWZlcmVuZGFSZWZlcmVuZHVtcwABBTxSZWZlcmVuZGFWYWx1ZXMAAQUkU2NoZWR1bGVyAAEFPFNjaGVkdWxlckFnZW5kYQABBRxTdGFraW5nAAEFIFRyZWFzdXJ5AAEFHFZlc3RpbmcAAQUcU29jaWV0eQABBQIMGENvbmZpZwABBThPdmVycmlkZUNvbmZpZwAEBAEIIERpc2FibGVkAAEFAkA8U3RhZ2VUcmFuc2l0aW9uAAAIDG9sZPUDDG5ld/UDNEJhdGNoUmVjZWl2ZWQAAAgYcGFsbGV0+QMUY291bnQEOEJhdGNoUHJvY2Vzc2VkAAAMGHBhbGxldPkDKGNvdW50X2dvb2QEJGNvdW50X2JhZARgQXNzZXRIdWJNaWdyYXRpb25TdGFydGVkAAEFZEFzc2V0SHViTWlncmF0aW9uRmluaXNoZWQAAQVMRG1wUXVldWVQcmlvcml0eVNldAAADCxwcmlvcml0aXplZBQsY3ljbGVfYmxvY2sEMGN5Y2xlX3BlcmlvZARkRG1wUXVldWVQcmlvcml0eUNvbmZpZ1NldAAACAxvbGT9AwxuZXf9A1xCYWxhbmNlc0JlZm9yZVJlY29yZFNldAAACEBjaGVja2luZ19hY2NvdW50CDh0b3RhbF9pc3N1YW5jZQhwQmFsYW5jZXNCZWZvcmVSZWNvcmRDb25zdW1lZAAACEBjaGVja2luZ19hY2NvdW50CDh0b3RhbF9pc3N1YW5jZQhIUmVmZXJlbmR1bUNhbmNlbGVkAAAECGlkBChNYW5hZ2VyU2V0AAAIDG9sZPECDG5ld/ECjEFjY291bnRUcmFuc2xhdGVkUGFyYWNoYWluU292ZXJlaWduAAAIEGZyb20ACHRvAKhBY2NvdW50VHJhbnNsYXRlZFBhcmFjaGFpblNvdmVyZWlnbkRlcml2ZWQAAAwQZnJvbQAIdG8AQGRlcml2YXRpb25faW5kZXgEHFhjbVNlbnQAABAYb3JpZ2lu1QEsZGVzdGluYXRpb27VARxtZXNzYWdlaQIobWVzc2FnZV9pZCCARmFpbGVkVG9VbnJlc2VydmVNdWx0aXNpZ0RlcG9zaXQAAAw8ZXhwZWN0ZWRfYW1vdW50CDhtaXNzaW5nX2Ftb3VudAgcYWNjb3VudACARmFpbGVkVG9VbnJlc2VydmVQcmVpbWFnZURlcG9zaXQAAAw8ZXhwZWN0ZWRfYW1vdW50CDhtaXNzaW5nX2Ftb3VudAgcYWNjb3VudAACyBhTeXN0ZW0BEQE8UGFyYWNoYWluU3lzdGVtARkBIFByZWltYWdlAR0BJFNjaGVkdWxlcgEtAShQYXJhbWV0ZXJzAVkBUE11bHRpQmxvY2tNaWdyYXRpb25zAWEBIEJhbGFuY2VzAZUBSFRyYW5zYWN0aW9uUGF5bWVudAGZAThBc3NldFR4UGF5bWVudAHZARxWZXN0aW5nAd0BGENsYWltcwHhAURDb2xsYXRvclNlbGVjdGlvbgHpARxTZXNzaW9uAe0BJFhjbXBRdWV1ZQHxASxQb2xrYWRvdFhjbQGlAihDdW11bHVzWGNtAakCRFRvS3VzYW1hWGNtUm91dGVyAa0CME1lc3NhZ2VRdWV1ZQG5AmBTbm93YnJpZGdlU3lzdGVtRnJvbnRlbmQBwQIcVXRpbGl0eQHFAiBNdWx0aXNpZwHNAhRQcm94eQHZAhxJbmRpY2VzAd0CGEFzc2V0cwHlAhxVbmlxdWVzAfUCEE5mdHMBDQM0Rm9yZWlnbkFzc2V0cwEZAyhQb29sQXNzZXRzAeUCPEFzc2V0Q29udmVyc2lvbgEpAyBUcmVhc3VyeQE1A0BDb252aWN0aW9uVm90aW5nAT0DJFJlZmVyZW5kYQFJAyRXaGl0ZWxpc3QBWQMgQm91bnRpZXMBXQM0Q2hpbGRCb3VudGllcwFhAyRBc3NldFJhdGUBZQNITXVsdGlBc3NldEJvdW50aWVzAWkDSFN0YXRlVHJpZU1pZ3JhdGlvbgFxAzxOb21pbmF0aW9uUG9vbHMBkQMkVm90ZXJMaXN0AZUDQERlbGVnYXRlZFN0YWtpbmcBmQM8U3Rha2luZ1JjQ2xpZW50AakDSE11bHRpQmxvY2tFbGVjdGlvbgGxA2hNdWx0aUJsb2NrRWxlY3Rpb25WZXJpZmllcgHFA2BNdWx0aUJsb2NrRWxlY3Rpb25TaWduZWQByQMcU3Rha2luZwHhAxhSZXZpdmUB6QMQU3VkbwHtAxRBaE9wcwHxAyhBaE1pZ3JhdG9yAQEEAAwUcGhhc2U0FGV2ZW50BQQYdG9waWNz5QMECQQABCEBAAEBAAgwc3BlY192ZXJzaW9uBCRzcGVjX25hbWUVBAAIJGNvZGVfaGFzaCA0Y2hlY2tfdmVyc2lvbhQAEDhiYXNlX2V4dHJpbnNpYxg0bWF4X2V4dHJpbnNpY0kBJG1heF90b3RhbEkBIHJlc2VydmVkSQEADBhub3JtYWwhBCxvcGVyYXRpb25hbCEEJG1hbmRhdG9yeSEEAAwoYmFzZV9ibG9jaxgkbWF4X2Jsb2NrGCRwZXJfY2xhc3MlBAAMGG5vcm1hbAQsb3BlcmF0aW9uYWwEJG1hbmRhdG9yeQQACBByZWFkCBR3cml0ZQgDCAECBAQ1BAAAICRzcGVjX25hbWUVBCRpbXBsX25hbWUVBERhdXRob3JpbmdfdmVyc2lvbgQwc3BlY192ZXJzaW9uBDBpbXBsX3ZlcnNpb24EEGFwaXM5BEx0cmFuc2FjdGlvbl92ZXJzaW9uBDhzeXN0ZW1fdmVyc2lvbgQEJAEIBEEEAAQkAAAIJG1zZ19jb3VudAQsdG90YWxfYnl0ZXMEAwgETQQEUQQAAAw0dW1wX21zZ19jb3VudAQ8dW1wX3RvdGFsX2J5dGVzBDRocm1wX291dGdvaW5nVQQCCBRBYm9ydAABBRxHb0FoZWFkAAEFBl0EAAw4dXNlZF9iYW5kd2lkdGhZBDhwYXJhX2hlYWRfaGFzaBUBYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbGEEBGUEAAAMOHVzZWRfYmFuZHdpZHRoWQQ4aHJtcF93YXRlcm1hcmvtAmBjb25zdW1lZF9nb19haGVhZF9zaWduYWxhBAAQLHBhcmVudF9oZWFkJExyZWxheV9wYXJlbnRfbnVtYmVyBGRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290IDBtYXhfcG92X3NpemUEAgQcUHJlc2VudAABBQZ1BAAIPHJlbWFpbmluZ19jb3VudAQ4cmVtYWluaW5nX3NpemUEABgwbWF4X2NhcGFjaXR5BDhtYXhfdG90YWxfc2l6ZQRAbWF4X21lc3NhZ2Vfc2l6ZQQkbXNnX2NvdW50BCh0b3RhbF9zaXplBCBtcWNfaGVhZBUBAwgEgQQEhQQAABAwZG1xX21xY19oZWFkIJxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHl9BEBpbmdyZXNzX2NoYW5uZWxziQQ8ZWdyZXNzX2NoYW5uZWxziQQACExtYXhfY2FuZGlkYXRlX2RlcHRoBFBhbGxvd2VkX2FuY2VzdHJ5X2xlbgQAKDRtYXhfY29kZV9zaXplBEhtYXhfaGVhZF9kYXRhX3NpemUEWG1heF91cHdhcmRfcXVldWVfY291bnQEVG1heF91cHdhcmRfcXVldWVfc2l6ZQRcbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemUEkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZQSIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZQRsdmFsaWRhdGlvbl91cGdyYWRlX2Nvb2xkb3duBGB2YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXkEUGFzeW5jX2JhY2tpbmdfcGFyYW1zkQQDCAQgBJkEAAAIHHNlbnRfYXQELHJldmVyc2VfaWR4BAAIJHJlY2lwaWVudAQQZGF0YSQEpQQAABQscGFyZW50X2hhc2ggGG51bWJlcgQoc3RhdGVfcm9vdCA8ZXh0cmluc2ljc19yb290IBhkaWdlc3QwBK0EAAAQPHZhbGlkYXRpb25fZGF0YXEERHJlbGF5X2NoYWluX3N0YXRlSQRgcmVsYXlfcGFyZW50X2Rlc2NlbmRhbnRzsQRAY29sbGF0b3JfcGVlcl9pZF0BAAgcc2VudF9hdAQMbXNnJAS5BAAACBxzZW50X2F0BCBtc2dfaGFzaCAEwQQAAAg0ZnVsbF9tZXNzYWdlc70EPGhhc2hlZF9tZXNzYWdlc8UEAAgcc2VudF9hdAQQZGF0YSQDCATNBATRBAADCATBBATZBAAACDRmdWxsX21lc3NhZ2Vz1QQ8aGFzaGVkX21lc3NhZ2Vz3QQACERkb3dud2FyZF9tZXNzYWdlc8kETGhvcml6b250YWxfbWVzc2FnZXPhBAMIAAgG6QQCCCxVbnJlcXVlc3RlZAAACBxkZXBvc2l06QQMbGVuBCRSZXF1ZXN0ZWQAAAwcZGVwb3NpdO0EFGNvdW50BAxsZW7tAgIILFVucmVxdWVzdGVkAAAIGHRpY2tldOkEDGxlbgQkUmVxdWVzdGVkAAAMMG1heWJlX3RpY2tldO0EFGNvdW50BCRtYXliZV9sZW7tAgMIIAQGIQECEBBSb290AAEFGFNpZ25lZAEAEE5vbmUAAQUoQXV0aG9yaXplZAABBQIIDFhjbQHVASBSZXNwb25zZQHVAQIIFFJlbGF5AAEFQFNpYmxpbmdQYXJhY2hhaW4BBAI8MFN0YWtpbmdBZG1pbgABBSRUcmVhc3VyZXIAAQU8RmVsbG93c2hpcEFkbWluAAEFMEdlbmVyYWxBZG1pbgABBTBBdWN0aW9uQWRtaW4AAQUoTGVhc2VBZG1pbgABBUxSZWZlcmVuZHVtQ2FuY2VsbGVyAAEFQFJlZmVyZW5kdW1LaWxsZXIAAQUsU21hbGxUaXBwZXIAAQUkQmlnVGlwcGVyAAEFMFNtYWxsU3BlbmRlcgABBTRNZWRpdW1TcGVuZGVyAAEFKEJpZ1NwZW5kZXIAAQVEV2hpdGVsaXN0ZWRDYWxsZXIAAQU0V2lzaEZvckNoYW5nZQABBQIEOEV0aFRyYW5zYWN0aW9uAQACFBhzeXN0ZW0BAQUsUG9sa2Fkb3RYY20BBQUoQ3VtdWx1c1hjbQEJBRxPcmlnaW5zAQ0FGFJldml2ZQERBQAUIG1heWJlX2lkFQEgcHJpb3JpdHkEEGNhbGxBAzhtYXliZV9wZXJpb2RpY/0EGG9yaWdpbhUFBhkFBB0FAAAMNHRvdGFsX3JldHJpZXMEJHJlbWFpbmluZwQYcGVyaW9kBAIwGHJlbWFyawAABBhyZW1hcmskOHNldF9oZWFwX3BhZ2VzAAAEFHBhZ2VzCCBzZXRfY29kZQAABBBjb2RlJFxzZXRfY29kZV93aXRob3V0X2NoZWNrcwAABBBjb2RlJCxzZXRfc3RvcmFnZQAABBRpdGVtc0UEMGtpbGxfc3RvcmFnZQAABBBrZXlzSQQsa2lsbF9wcmVmaXgAAAgYcHJlZml4JBxzdWJrZXlzBERyZW1hcmtfd2l0aF9ldmVudAAABBhyZW1hcmskHGRvX3Rhc2sAAABEYXV0aG9yaXplX3VwZ3JhZGUAAAQkY29kZV9oYXNoIIBhdXRob3JpemVfdXBncmFkZV93aXRob3V0X2NoZWNrcwAABCRjb2RlX2hhc2ggYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQAABBBjb2RlJAIITHNldF92YWxpZGF0aW9uX2RhdGEAAAgQZGF0YbUEVGluYm91bmRfbWVzc2FnZXNfZGF0YeUEYHN1ZG9fc2VuZF91cHdhcmRfbWVzc2FnZQAABBxtZXNzYWdlJAIEDHNldAAABAxub3cIAhQ0bm90ZV9wcmVpbWFnZQAABBRieXRlcyQ8dW5ub3RlX3ByZWltYWdlAAAEEGhhc2ggQHJlcXVlc3RfcHJlaW1hZ2UAAAQQaGFzaCBIdW5yZXF1ZXN0X3ByZWltYWdlAAAEEGhhc2ggOGVuc3VyZV91cGRhdGVkAAAEGGhhc2hlc+UDAiggc2NoZWR1bGUAABAQd2hlbgQ4bWF5YmVfcGVyaW9kaWP9BCBwcmlvcml0eQQQY2FsbAkKGGNhbmNlbAAACBB3aGVuBBRpbmRleAQ4c2NoZWR1bGVfbmFtZWQAABQIaWQgEHdoZW4EOG1heWJlX3BlcmlvZGlj/QQgcHJpb3JpdHkEEGNhbGwJCjBjYW5jZWxfbmFtZWQAAAQIaWQgOHNjaGVkdWxlX2FmdGVyAAAQFGFmdGVyBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQpQc2NoZWR1bGVfbmFtZWRfYWZ0ZXIAABQIaWQgFGFmdGVyBDhtYXliZV9wZXJpb2RpY/0EIHByaW9yaXR5BBBjYWxsCQokc2V0X3JldHJ5AAAMEHRhc2shARxyZXRyaWVzBBhwZXJpb2QEPHNldF9yZXRyeV9uYW1lZAAADAhpZCAccmV0cmllcwQYcGVyaW9kBDBjYW5jZWxfcmV0cnkAAAQQdGFzayEBSGNhbmNlbF9yZXRyeV9uYW1lZAAABAhpZCACHCxTaWduZWRQaGFzZQAE7QIBBFBNYXhTaWduZWRTdWJtaXNzaW9ucwAE7QIBBDRVbnNpZ25lZFBoYXNlAATtAgEEKE1pbmVyUGFnZXMABO0CAQRETWF4RWxlY3RpbmdWb3RlcnMABO0CAQRYVGFyZ2V0U25hcHNob3RQZXJCbG9jawAE7QIBBDhNYXhFcmFEdXJhdGlvbgAEoQIBBAIIUE1heFNjaGVkdWxlZFBlckJsb2NrAATtAgEENE1heGltdW1XZWlnaHQABEkBAQQGSQECCDxNYXhPbkluaXRXZWlnaHQABEUFAQQ8TWF4T25JZGxlV2VpZ2h0AARFBQEEAgw8U3Rha2luZ0VsZWN0aW9uAT0FJFNjaGVkdWxlcgFBBTBNZXNzYWdlUXVldWUBSQUCBDRzZXRfcGFyYW1ldGVyAAAEJGtleV92YWx1ZU0FAAwUaW5kZXgEMGlubmVyX2N1cnNvcl0BKHN0YXJ0ZWRfYXQEAggYQWN0aXZlAVUFFFN0dWNrAAEFBlkFAgggU3BlY2lmaWMBSQQgV2lsZGNhcmQAAAgUbGltaXTtAjxwcmV2aW91c19jdXJzb3JdAQIQQGZvcmNlX3NldF9jdXJzb3IAAAQYY3Vyc29yXQVcZm9yY2Vfc2V0X2FjdGl2ZV9jdXJzb3IAAAwUaW5kZXgEMGlubmVyX2N1cnNvcl0BKHN0YXJ0ZWRfYXTtAkhmb3JjZV9vbmJvYXJkX21ibXMAAQU4Y2xlYXJfaGlzdG9yaWMAAAQgc2VsZWN0b3JhBQIUCElkAQAUSW5kZXgBJQEMUmF3ASQkQWRkcmVzczMyASAkQWRkcmVzczIwAaUBAgggSW5jcmVhc2UAAQUgRGVjcmVhc2UAAQUCJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAAACBBkZXN0aQUUdmFsdWUIOGZvcmNlX3RyYW5zZmVyAAAMGHNvdXJjZWkFEGRlc3RpBRR2YWx1ZQhMdHJhbnNmZXJfa2VlcF9hbGl2ZQAACBBkZXN0aQUUdmFsdWUIMHRyYW5zZmVyX2FsbAAACBBkZXN0aQUoa2VlcF9hbGl2ZRQ8Zm9yY2VfdW5yZXNlcnZlAAAIDHdob2kFGGFtb3VudAhAdXBncmFkZV9hY2NvdW50cwAABAx3aG/lAURmb3JjZV9zZXRfYmFsYW5jZQAACAx3aG9pBSBuZXdfZnJlZQhsZm9yY2VfYWRqdXN0X3RvdGFsX2lzc3VhbmNlAAAIJGRpcmVjdGlvbm0FFGRlbHRhCBBidXJuAAAIFHZhbHVlCChrZWVwX2FsaXZlFAAMGGxvY2tlZAgkcGVyX2Jsb2NrCDhzdGFydGluZ19ibG9jawQCGBB2ZXN0AAEFKHZlc3Rfb3RoZXIAAAQYdGFyZ2V0aQU8dmVzdGVkX3RyYW5zZmVyAAAIGHRhcmdldGkFIHNjaGVkdWxldQVUZm9yY2VfdmVzdGVkX3RyYW5zZmVyAAAMGHNvdXJjZWkFGHRhcmdldGkFIHNjaGVkdWxldQU8bWVyZ2Vfc2NoZWR1bGVzAAAIPHNjaGVkdWxlMV9pbmRleAQ8c2NoZWR1bGUyX2luZGV4BHRmb3JjZV9yZW1vdmVfdmVzdGluZ19zY2hlZHVsZQAACBh0YXJnZXRpBThzY2hlZHVsZV9pbmRleAQFAQUBAwwICAQGgQUCCBxSZWd1bGFyAAEFEFNhZnQAAQUGiQUCFBRjbGFpbQAACBBkZXN0AEhldGhlcmV1bV9zaWduYXR1cmV9BShtaW50X2NsYWltAAAQDHdob6UBFHZhbHVlCEB2ZXN0aW5nX3NjaGVkdWxlhQUkc3RhdGVtZW50jQUwY2xhaW1fYXR0ZXN0AAAMEGRlc3QASGV0aGVyZXVtX3NpZ25hdHVyZX0FJHN0YXRlbWVudCQYYXR0ZXN0AAAEJHN0YXRlbWVudCQobW92ZV9jbGFpbQAADAxvbGSlAQxuZXelAThtYXliZV9wcmVjbGFpbfECAiREc2V0X2ludnVsbmVyYWJsZXMAAAQMbmV35QFYc2V0X2Rlc2lyZWRfY2FuZGlkYXRlcwAABAxtYXgESHNldF9jYW5kaWRhY3lfYm9uZAAABBBib25kCFRyZWdpc3Rlcl9hc19jYW5kaWRhdGUAAQUwbGVhdmVfaW50ZW50AAEFQGFkZF9pbnZ1bG5lcmFibGUAAAQMd2hvAExyZW1vdmVfaW52dWxuZXJhYmxlAAAEDHdobwAsdXBkYXRlX2JvbmQAAAQsbmV3X2RlcG9zaXQITHRha2VfY2FuZGlkYXRlX3Nsb3QAAAgcZGVwb3NpdAgYdGFyZ2V0AAIIIHNldF9rZXlzAAAIEGtleXMgFHByb29mJChwdXJnZV9rZXlzAAEFAhRUc3VzcGVuZF94Y21fZXhlY3V0aW9uAAEFUHJlc3VtZV94Y21fZXhlY3V0aW9uAAEFYHVwZGF0ZV9zdXNwZW5kX3RocmVzaG9sZAAABAxuZXcEVHVwZGF0ZV9kcm9wX3RocmVzaG9sZAAABAxuZXcEXHVwZGF0ZV9yZXN1bWVfdGhyZXNob2xkAAAEDG5ldwQCoCBPdmVyZmxvdwABBTRVbmltcGxlbWVudGVkAAEFYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgABBWRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAEFMExvY2F0aW9uRnVsbAABBVRMb2NhdGlvbk5vdEludmVydGlibGUAAQUkQmFkT3JpZ2luAAEFPEludmFsaWRMb2NhdGlvbgABBTRBc3NldE5vdEZvdW5kAAEFVEZhaWxlZFRvVHJhbnNhY3RBc3NldAABBTxOb3RXaXRoZHJhd2FibGUAAQVITG9jYXRpb25DYW5ub3RIb2xkAAEFVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQABBVhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAAEFJFRyYW5zcG9ydAABBShVbnJvdXRhYmxlAAEFMFVua25vd25DbGFpbQABBThGYWlsZWRUb0RlY29kZQABBUBNYXhXZWlnaHRJbnZhbGlkAAEFOE5vdEhvbGRpbmdGZWVzAAEFMFRvb0V4cGVuc2l2ZQABBRBUcmFwAQhARXhwZWN0YXRpb25GYWxzZQABBThQYWxsZXROb3RGb3VuZAABBTBOYW1lTWlzbWF0Y2gAAQVMVmVyc2lvbkluY29tcGF0aWJsZQABBVBIb2xkaW5nV291bGRPdmVyZmxvdwABBSxFeHBvcnRFcnJvcgABBThSZWFuY2hvckZhaWxlZAABBRhOb0RlYWwAAQUoRmVlc05vdE1ldAABBSRMb2NrRXJyb3IAAQUwTm9QZXJtaXNzaW9uAAEFKFVuYW5jaG9yZWQAAQU4Tm90RGVwb3NpdGFibGUAAQVMVW5oYW5kbGVkWGNtVmVyc2lvbgABBUhXZWlnaHRMaW1pdFJlYWNoZWQBGBxCYXJyaWVyAAEFTFdlaWdodE5vdENvbXB1dGFibGUAAQVERXhjZWVkc1N0YWNrTGltaXQAAQUDCAShBQalBQIYEE51bGwAAQUYQXNzZXRzAY0CPEV4ZWN1dGlvblJlc3VsdAGpBRxWZXJzaW9uAQQsUGFsbGV0c0luZm8BJQI4RGlzcGF0Y2hSZXN1bHQBKQIGgQIADCxkZXN0aW5hdGlvboECIHF1ZXJ5X2lkCChtYXhfd2VpZ2h0GAIQDEFsbAABBRRBbGxPZgAACAhpZIUCDGZ1bj0CKEFsbENvdW50ZWQBBDBBbGxPZkNvdW50ZWQAAAwIaWSFAgxmdW49AhRjb3VudAQCCCBEZWZpbml0ZQGNAhBXaWxkAbkFAsA0V2l0aGRyYXdBc3NldAGNAlRSZXNlcnZlQXNzZXREZXBvc2l0ZWQBjQJYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAGNAjRRdWVyeVJlc3BvbnNlAAAQIHF1ZXJ5X2lkCCByZXNwb25zZa0FKG1heF93ZWlnaHQYHHF1ZXJpZXKxBTRUcmFuc2ZlckFzc2V0AAAIGGFzc2V0c40CLGJlbmVmaWNpYXJ5gQJQVHJhbnNmZXJSZXNlcnZlQXNzZXQAAAwYYXNzZXRzjQIQZGVzdIECDHhjbcUFIFRyYW5zYWN0AAAMLG9yaWdpbl9raW5kNQJYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdBgQY2FsbCRkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAAADBhzZW5kZXIEQG1heF9tZXNzYWdlX3NpemUEMG1heF9jYXBhY2l0eQRMSHJtcENoYW5uZWxBY2NlcHRlZAAABCRyZWNpcGllbnQESEhybXBDaGFubmVsQ2xvc2luZwAADCRpbml0aWF0b3IEGHNlbmRlcgQkcmVjaXBpZW50BCxDbGVhck9yaWdpbgABBTREZXNjZW5kT3JpZ2luAX0CLFJlcG9ydEVycm9yAbUFMERlcG9zaXRBc3NldAAACBhhc3NldHO9BSxiZW5lZmljaWFyeYECTERlcG9zaXRSZXNlcnZlQXNzZXQAAAwYYXNzZXRzvQUQZGVzdIECDHhjbcUFNEV4Y2hhbmdlQXNzZXQAAAwQZ2l2Zb0FEHdhbnSNAhxtYXhpbWFsFFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwAADBhhc3NldHO9BRxyZXNlcnZlgQIMeGNtxQVASW5pdGlhdGVUZWxlcG9ydAAADBhhc3NldHO9BRBkZXN0gQIMeGNtxQU0UmVwb3J0SG9sZGluZwAACDRyZXNwb25zZV9pbmZvtQUYYXNzZXRzvQUwQnV5RXhlY3V0aW9uAAAIEGZlZXOJAjB3ZWlnaHRfbGltaXRJAjRSZWZ1bmRTdXJwbHVzAAEFPFNldEVycm9ySGFuZGxlcgHFBSxTZXRBcHBlbmRpeAHFBShDbGVhckVycm9yAAEFKENsYWltQXNzZXQAAAgYYXNzZXRzjQIYdGlja2V0gQIQVHJhcAEIQFN1YnNjcmliZVZlcnNpb24AAAggcXVlcnlfaWQITG1heF9yZXNwb25zZV93ZWlnaHQYSFVuc3Vic2NyaWJlVmVyc2lvbgABBSRCdXJuQXNzZXQBjQIsRXhwZWN0QXNzZXQBjQIwRXhwZWN0T3JpZ2luAbEFLEV4cGVjdEVycm9yAakFUEV4cGVjdFRyYW5zYWN0U3RhdHVzASkCLFF1ZXJ5UGFsbGV0AAAILG1vZHVsZV9uYW1lJDRyZXNwb25zZV9pbmZvtQUwRXhwZWN0UGFsbGV0AAAUFGluZGV4BBBuYW1lJCxtb2R1bGVfbmFtZSQsY3JhdGVfbWFqb3IEPG1pbl9jcmF0ZV9taW5vcgRQUmVwb3J0VHJhbnNhY3RTdGF0dXMBtQVMQ2xlYXJUcmFuc2FjdFN0YXR1cwABBTxVbml2ZXJzYWxPcmlnaW4BeQI0RXhwb3J0TWVzc2FnZQAADBxuZXR3b3JrcQIsZGVzdGluYXRpb259Agx4Y23FBSRMb2NrQXNzZXQAAAgUYXNzZXSJAiB1bmxvY2tlcoECLFVubG9ja0Fzc2V0AAAIFGFzc2V0iQIYdGFyZ2V0gQI4Tm90ZVVubG9ja2FibGUAAAgUYXNzZXSJAhRvd25lcoECNFJlcXVlc3RVbmxvY2sAAAgUYXNzZXSJAhhsb2NrZXKBAixTZXRGZWVzTW9kZQAABDBqaXRfd2l0aGRyYXcUIFNldFRvcGljASAoQ2xlYXJUb3BpYwABBSxBbGlhc09yaWdpbgGBAjxVbnBhaWRFeGVjdXRpb24AAAgwd2VpZ2h0X2xpbWl0SQIwY2hlY2tfb3JpZ2lusQUEwQUAAhgQTnVsbAABBRhBc3NldHMBlQI8RXhlY3V0aW9uUmVzdWx0AakFHFZlcnNpb24BBCxQYWxsZXRzSW5mbwElAjhEaXNwYXRjaFJlc3VsdAEpAgIQDEFsbAABBRRBbGxPZgAACAhpZIECDGZ1bj0CKEFsbENvdW50ZWQBBDBBbGxPZkNvdW50ZWQAAAwIaWSBAgxmdW49AhRjb3VudAQCCCBEZWZpbml0ZQGVAhBXaWxkAc0FAsA0V2l0aGRyYXdBc3NldAGVAlRSZXNlcnZlQXNzZXREZXBvc2l0ZWQBlQJYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAGVAjRRdWVyeVJlc3BvbnNlAAAQIHF1ZXJ5X2lkCCByZXNwb25zZckFKG1heF93ZWlnaHQYHHF1ZXJpZXKxBTRUcmFuc2ZlckFzc2V0AAAIGGFzc2V0c5UCLGJlbmVmaWNpYXJ5gQJQVHJhbnNmZXJSZXNlcnZlQXNzZXQAAAwYYXNzZXRzlQIQZGVzdIECDHhjbdkFIFRyYW5zYWN0AAAMLG9yaWdpbl9raW5kNQJYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdBgQY2FsbCRkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAAADBhzZW5kZXIEQG1heF9tZXNzYWdlX3NpemUEMG1heF9jYXBhY2l0eQRMSHJtcENoYW5uZWxBY2NlcHRlZAAABCRyZWNpcGllbnQESEhybXBDaGFubmVsQ2xvc2luZwAADCRpbml0aWF0b3IEGHNlbmRlcgQkcmVjaXBpZW50BCxDbGVhck9yaWdpbgABBTREZXNjZW5kT3JpZ2luAX0CLFJlcG9ydEVycm9yAbUFMERlcG9zaXRBc3NldAAACBhhc3NldHPRBSxiZW5lZmljaWFyeYECTERlcG9zaXRSZXNlcnZlQXNzZXQAAAwYYXNzZXRz0QUQZGVzdIECDHhjbdkFNEV4Y2hhbmdlQXNzZXQAAAwQZ2l2ZdEFEHdhbnSVAhxtYXhpbWFsFFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwAADBhhc3NldHPRBRxyZXNlcnZlgQIMeGNt2QVASW5pdGlhdGVUZWxlcG9ydAAADBhhc3NldHPRBRBkZXN0gQIMeGNt2QU0UmVwb3J0SG9sZGluZwAACDRyZXNwb25zZV9pbmZvtQUYYXNzZXRz0QUwQnV5RXhlY3V0aW9uAAAIEGZlZXORAjB3ZWlnaHRfbGltaXRJAjRSZWZ1bmRTdXJwbHVzAAEFPFNldEVycm9ySGFuZGxlcgHZBSxTZXRBcHBlbmRpeAHZBShDbGVhckVycm9yAAEFKENsYWltQXNzZXQAAAgYYXNzZXRzlQIYdGlja2V0gQIQVHJhcAEIQFN1YnNjcmliZVZlcnNpb24AAAggcXVlcnlfaWQITG1heF9yZXNwb25zZV93ZWlnaHQYSFVuc3Vic2NyaWJlVmVyc2lvbgABBSRCdXJuQXNzZXQBlQIsRXhwZWN0QXNzZXQBlQIwRXhwZWN0T3JpZ2luAbEFLEV4cGVjdEVycm9yAakFUEV4cGVjdFRyYW5zYWN0U3RhdHVzASkCLFF1ZXJ5UGFsbGV0AAAILG1vZHVsZV9uYW1lJDRyZXNwb25zZV9pbmZvtQUwRXhwZWN0UGFsbGV0AAAUFGluZGV4BBBuYW1lJCxtb2R1bGVfbmFtZSQsY3JhdGVfbWFqb3IEPG1pbl9jcmF0ZV9taW5vcgRQUmVwb3J0VHJhbnNhY3RTdGF0dXMBtQVMQ2xlYXJUcmFuc2FjdFN0YXR1cwABBTxVbml2ZXJzYWxPcmlnaW4BeQI0RXhwb3J0TWVzc2FnZQAADBxuZXR3b3JrcQIsZGVzdGluYXRpb259Agx4Y23ZBSRMb2NrQXNzZXQAAAgUYXNzZXSRAiB1bmxvY2tlcoECLFVubG9ja0Fzc2V0AAAIFGFzc2V0kQIYdGFyZ2V0gQI4Tm90ZVVubG9ja2FibGUAAAgUYXNzZXSRAhRvd25lcoECNFJlcXVlc3RVbmxvY2sAAAgUYXNzZXSRAhhsb2NrZXKBAixTZXRGZWVzTW9kZQAABDBqaXRfd2l0aGRyYXcUIFNldFRvcGljASAoQ2xlYXJUb3BpYwABBSxBbGlhc09yaWdpbgGBAjxVbnBhaWRFeGVjdXRpb24AAAgwd2VpZ2h0X2xpbWl0SQIwY2hlY2tfb3JpZ2lusQUE1QUAAgwIVjMBxQUIVjQB2QUIVjUBaQICECBUZWxlcG9ydAABBTBMb2NhbFJlc2VydmUAAQVIRGVzdGluYXRpb25SZXNlcnZlAAEFNFJlbW90ZVJlc2VydmUBnQICDAhWMwGFAghWNAGBAghWNQHVAQJEEHNlbmQAAAgQZGVzdJ0CHG1lc3NhZ2XdBTx0ZWxlcG9ydF9hc3NldHMAABAQZGVzdJ0CLGJlbmVmaWNpYXJ5nQIYYXNzZXRzmQI4ZmVlX2Fzc2V0X2l0ZW0EXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzAAAQEGRlc3SdAixiZW5lZmljaWFyeZ0CGGFzc2V0c5kCOGZlZV9hc3NldF9pdGVtBBxleGVjdXRlAAAIHG1lc3NhZ2XdBShtYXhfd2VpZ2h0GERmb3JjZV94Y21fdmVyc2lvbgAACCBsb2NhdGlvbtUBHHZlcnNpb24EZGZvcmNlX2RlZmF1bHRfeGNtX3ZlcnNpb24AAAREbWF5YmVfeGNtX3ZlcnNpb27tAnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkAAAQgbG9jYXRpb26dAoBmb3JjZV91bnN1YnNjcmliZV92ZXJzaW9uX25vdGlmeQAABCBsb2NhdGlvbp0CfGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMAABQQZGVzdJ0CLGJlbmVmaWNpYXJ5nQIYYXNzZXRzmQI4ZmVlX2Fzc2V0X2l0ZW0EMHdlaWdodF9saW1pdEkCXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzAAAUEGRlc3SdAixiZW5lZmljaWFyeZ0CGGFzc2V0c5kCOGZlZV9hc3NldF9pdGVtBDB3ZWlnaHRfbGltaXRJAkBmb3JjZV9zdXNwZW5zaW9uAAAEJHN1c3BlbmRlZBQ8dHJhbnNmZXJfYXNzZXRzAAAUEGRlc3SdAixiZW5lZmljaWFyeZ0CGGFzc2V0c5kCOGZlZV9hc3NldF9pdGVtBDB3ZWlnaHRfbGltaXRJAjBjbGFpbV9hc3NldHMAAAgYYXNzZXRzmQIsYmVuZWZpY2lhcnmdAox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbgAAHBBkZXN0nQIYYXNzZXRzmQJQYXNzZXRzX3RyYW5zZmVyX3R5cGXhBThyZW1vdGVfZmVlc19pZOUFSGZlZXNfdHJhbnNmZXJfdHlwZeEFSGN1c3RvbV94Y21fb25fZGVzdN0FMHdlaWdodF9saW1pdEkCUGFkZF9hdXRob3JpemVkX2FsaWFzAAAIHGFsaWFzZXKdAhxleHBpcmVzoQJccmVtb3ZlX2F1dGhvcml6ZWRfYWxpYXMAAAQcYWxpYXNlcp0CdHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzAAEFAgRQcmVwb3J0X2JyaWRnZV9zdGF0dXMAAAgkYnJpZGdlX2lkIDBpc19jb25nZXN0ZWQUAggkcmVhcF9wYWdlAAAIOG1lc3NhZ2Vfb3JpZ2lusQIocGFnZV9pbmRleARIZXhlY3V0ZV9vdmVyd2VpZ2h0AAAQOG1lc3NhZ2Vfb3JpZ2lusQIQcGFnZQQUaW5kZXgEMHdlaWdodF9saW1pdBgADBBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBAIIHEluYm91bmQBCCBPdXRib3VuZAEIAgxIc2V0X29wZXJhdGluZ19tb2RlAAAEEG1vZGW9AjhyZWdpc3Rlcl90b2tlbgAADCBhc3NldF9pZJ0CIG1ldGFkYXRh9QUkZmVlX2Fzc2V0EQIcYWRkX3RpcAAACChtZXNzYWdlX2lk+QUUYXNzZXQRAgQJCgACIBRiYXRjaAAABBRjYWxscwEGNGFzX2Rlcml2YXRpdmUAAAgUaW5kZXgEEGNhbGwJCiRiYXRjaF9hbGwAAAQUY2FsbHMBBixkaXNwYXRjaF9hcwAACCRhc19vcmlnaW4VBRBjYWxsCQosZm9yY2VfYmF0Y2gAAAQUY2FsbHMBBix3aXRoX3dlaWdodAAACBBjYWxsCQoYd2VpZ2h0GBxpZl9lbHNlAAAIEG1haW4JCiBmYWxsYmFjawkKUGRpc3BhdGNoX2FzX2ZhbGxpYmxlAAAIJGFzX29yaWdpbhUFEGNhbGwJCgbJAgIUUGFzX211bHRpX3RocmVzaG9sZF8xAAAIRG90aGVyX3NpZ25hdG9yaWVz5QEQY2FsbAkKIGFzX211bHRpAAAUJHRocmVzaG9sZAREb3RoZXJfc2lnbmF0b3JpZXPlATxtYXliZV90aW1lcG9pbnQJBhBjYWxsCQoobWF4X3dlaWdodBhAYXBwcm92ZV9hc19tdWx0aQAAFCR0aHJlc2hvbGQERG90aGVyX3NpZ25hdG9yaWVz5QE8bWF5YmVfdGltZXBvaW50CQYkY2FsbF9oYXNoIChtYXhfd2VpZ2h0GDxjYW5jZWxfYXNfbXVsdGkAABAkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc+UBJHRpbWVwb2ludMkCJGNhbGxfaGFzaCAwcG9rZV9kZXBvc2l0AAAMJHRocmVzaG9sZAREb3RoZXJfc2lnbmF0b3JpZXPlASRjYWxsX2hhc2ggBtECAiwUcHJveHkAAAwQcmVhbGkFQGZvcmNlX3Byb3h5X3R5cGURBhBjYWxsCQokYWRkX3Byb3h5AAAMIGRlbGVnYXRlaQUocHJveHlfdHlwZdECFGRlbGF5BDByZW1vdmVfcHJveHkAAAwgZGVsZWdhdGVpBShwcm94eV90eXBl0QIUZGVsYXkEOHJlbW92ZV9wcm94aWVzAAEFLGNyZWF0ZV9wdXJlAAAMKHByb3h5X3R5cGXRAhRkZWxheQQUaW5kZXgEJGtpbGxfcHVyZQAAFBxzcGF3bmVyaQUocHJveHlfdHlwZdECFGluZGV4BBhoZWlnaHQEJGV4dF9pbmRleAQgYW5ub3VuY2UAAAgQcmVhbGkFJGNhbGxfaGFzaCBMcmVtb3ZlX2Fubm91bmNlbWVudAAACBByZWFsaQUkY2FsbF9oYXNoIExyZWplY3RfYW5ub3VuY2VtZW50AAAIIGRlbGVnYXRlaQUkY2FsbF9oYXNoIDxwcm94eV9hbm5vdW5jZWQAABAgZGVsZWdhdGVpBRByZWFsaQVAZm9yY2VfcHJveHlfdHlwZREGEGNhbGwJCjBwb2tlX2RlcG9zaXQAAQUCGBRjbGFpbQAABBRpbmRleAQgdHJhbnNmZXIAAAgMbmV3aQUUaW5kZXgEEGZyZWUAAAQUaW5kZXgEOGZvcmNlX3RyYW5zZmVyAAAMDG5ld2kFFGluZGV4BBhmcmVlemUUGGZyZWV6ZQAABBRpbmRleAQwcG9rZV9kZXBvc2l0AAAEFGluZGV4BAKIGGNyZWF0ZQAADAhpZAQUYWRtaW5pBSxtaW5fYmFsYW5jZQgwZm9yY2VfY3JlYXRlAAAQCGlkBBRvd25lcmkFNGlzX3N1ZmZpY2llbnQULG1pbl9iYWxhbmNlCDRzdGFydF9kZXN0cm95AAAECGlkBEBkZXN0cm95X2FjY291bnRzAAAECGlkBERkZXN0cm95X2FwcHJvdmFscwAABAhpZAQ4ZmluaXNoX2Rlc3Ryb3kAAAQIaWQEEG1pbnQAAAwIaWQELGJlbmVmaWNpYXJ5aQUYYW1vdW50CBBidXJuAAAMCGlkBAx3aG9pBRhhbW91bnQIIHRyYW5zZmVyAAAMCGlkBBh0YXJnZXRpBRhhbW91bnQITHRyYW5zZmVyX2tlZXBfYWxpdmUAAAwIaWQEGHRhcmdldGkFGGFtb3VudAg4Zm9yY2VfdHJhbnNmZXIAABAIaWQEGHNvdXJjZWkFEGRlc3RpBRhhbW91bnQIGGZyZWV6ZQAACAhpZAQMd2hvaQUQdGhhdwAACAhpZAQMd2hvaQUwZnJlZXplX2Fzc2V0AAAECGlkBCh0aGF3X2Fzc2V0AAAECGlkBEh0cmFuc2Zlcl9vd25lcnNoaXAAAAgIaWQEFG93bmVyaQUgc2V0X3RlYW0AABAIaWQEGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFMHNldF9tZXRhZGF0YQAAEAhpZAQQbmFtZSQYc3ltYm9sJCBkZWNpbWFscwQ4Y2xlYXJfbWV0YWRhdGEAAAQIaWQESGZvcmNlX3NldF9tZXRhZGF0YQAAFAhpZAQQbmFtZSQYc3ltYm9sJCBkZWNpbWFscwQkaXNfZnJvemVuFFBmb3JjZV9jbGVhcl9tZXRhZGF0YQAABAhpZARIZm9yY2VfYXNzZXRfc3RhdHVzAAAgCGlkBBRvd25lcmkFGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFLG1pbl9iYWxhbmNlCDRpc19zdWZmaWNpZW50FCRpc19mcm96ZW4UQGFwcHJvdmVfdHJhbnNmZXIAAAwIaWQEIGRlbGVnYXRlaQUYYW1vdW50CDxjYW5jZWxfYXBwcm92YWwAAAgIaWQEIGRlbGVnYXRlaQVUZm9yY2VfY2FuY2VsX2FwcHJvdmFsAAAMCGlkBBRvd25lcmkFIGRlbGVnYXRlaQVEdHJhbnNmZXJfYXBwcm92ZWQAABAIaWQEFG93bmVyaQUsZGVzdGluYXRpb25pBRhhbW91bnQIFHRvdWNoAAAECGlkBBhyZWZ1bmQAAAgIaWQEKGFsbG93X2J1cm4UPHNldF9taW5fYmFsYW5jZQAACAhpZAQsbWluX2JhbGFuY2UILHRvdWNoX290aGVyAAAICGlkBAx3aG9pBTByZWZ1bmRfb3RoZXIAAAgIaWQEDHdob2kFFGJsb2NrAAAICGlkBAx3aG9pBTB0cmFuc2Zlcl9hbGwAAAwIaWQEEGRlc3RpBShrZWVwX2FsaXZlFDBzZXRfcmVzZXJ2ZXMAAAgIaWQEIHJlc2VydmVz4QIADBRpdGVtcwQ4aXRlbV9tZXRhZGF0YXMEKGF0dHJpYnV0ZXMEBmkFAmgYY3JlYXRlAAAIKGNvbGxlY3Rpb24EFGFkbWluaQUwZm9yY2VfY3JlYXRlAAAMKGNvbGxlY3Rpb24EFG93bmVyaQUwZnJlZV9ob2xkaW5nFBxkZXN0cm95AAAIKGNvbGxlY3Rpb24EHHdpdG5lc3MhBhBtaW50AAAMKGNvbGxlY3Rpb24EEGl0ZW0EFG93bmVyaQUQYnVybgAADChjb2xsZWN0aW9uBBBpdGVtBCxjaGVja19vd25lciUGIHRyYW5zZmVyAAAMKGNvbGxlY3Rpb24EEGl0ZW0EEGRlc3RpBSRyZWRlcG9zaXQAAAgoY29sbGVjdGlvbgQUaXRlbXPpAhhmcmVlemUAAAgoY29sbGVjdGlvbgQQaXRlbQQQdGhhdwAACChjb2xsZWN0aW9uBBBpdGVtBERmcmVlemVfY29sbGVjdGlvbgAABChjb2xsZWN0aW9uBDx0aGF3X2NvbGxlY3Rpb24AAAQoY29sbGVjdGlvbgRIdHJhbnNmZXJfb3duZXJzaGlwAAAIKGNvbGxlY3Rpb24EJG5ld19vd25lcmkFIHNldF90ZWFtAAAQKGNvbGxlY3Rpb24EGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFQGFwcHJvdmVfdHJhbnNmZXIAAAwoY29sbGVjdGlvbgQQaXRlbQQgZGVsZWdhdGVpBTxjYW5jZWxfYXBwcm92YWwAAAwoY29sbGVjdGlvbgQQaXRlbQRQbWF5YmVfY2hlY2tfZGVsZWdhdGUlBkRmb3JjZV9pdGVtX3N0YXR1cwAAHChjb2xsZWN0aW9uBBRvd25lcmkFGGlzc3VlcmkFFGFkbWluaQUcZnJlZXplcmkFMGZyZWVfaG9sZGluZxQkaXNfZnJvemVuFDRzZXRfYXR0cmlidXRlAAAQKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAgxrZXkkFHZhbHVlJDxjbGVhcl9hdHRyaWJ1dGUAAAwoY29sbGVjdGlvbgQobWF5YmVfaXRlbe0CDGtleSQwc2V0X21ldGFkYXRhAAAQKGNvbGxlY3Rpb24EEGl0ZW0EEGRhdGEkJGlzX2Zyb3plbhQ4Y2xlYXJfbWV0YWRhdGEAAAgoY29sbGVjdGlvbgQQaXRlbQRcc2V0X2NvbGxlY3Rpb25fbWV0YWRhdGEAAAwoY29sbGVjdGlvbgQQZGF0YSQkaXNfZnJvemVuFGRjbGVhcl9jb2xsZWN0aW9uX21ldGFkYXRhAAAEKGNvbGxlY3Rpb24EUHNldF9hY2NlcHRfb3duZXJzaGlwAAAEQG1heWJlX2NvbGxlY3Rpb27tAmRzZXRfY29sbGVjdGlvbl9tYXhfc3VwcGx5AAAIKGNvbGxlY3Rpb24EKG1heF9zdXBwbHkEJHNldF9wcmljZQAAEChjb2xsZWN0aW9uBBBpdGVtBBRwcmljZaECRHdoaXRlbGlzdGVkX2J1eWVyJQYgYnV5X2l0ZW0AAAwoY29sbGVjdGlvbgQQaXRlbQQkYmlkX3ByaWNlCAIMGElzc3VlcgABBRhQdWJsaWMAAQUgSG9sZGVyT2YBBAAUJG1pbnRfdHlwZS0GFHByaWNloQIsc3RhcnRfYmxvY2vtAiRlbmRfYmxvY2vtAlRkZWZhdWx0X2l0ZW1fc2V0dGluZ3MIAAwgc2V0dGluZ3MIKG1heF9zdXBwbHntAjRtaW50X3NldHRpbmdzMQYADDhpdGVtX21ldGFkYXRhcwQwaXRlbV9jb25maWdzBChhdHRyaWJ1dGVzBAAIKG93bmVkX2l0ZW3tAihtaW50X3ByaWNloQIGPQYAEChjb2xsZWN0aW9uBBBpdGVtBCByZWNlaXZlcgAYYW1vdW50CARFBgAAHChjb2xsZWN0aW9uBBBpdGVtBChhdHRyaWJ1dGVzRQQgbWV0YWRhdGEkMG9ubHlfYWNjb3VudPECIGRlYWRsaW5lBChtaW50X3ByaWNloQIFAQEBAhAcRWQyNTUxOQFRBhxTcjI1NTE5AVEGFEVjZHNhAX0FDEV0aAF9BQAUKGNvbGxlY3Rpb24EEGl0ZW0EKGF0dHJpYnV0ZXNFBCRuYW1lc3BhY2X5AiBkZWFkbGluZQQCnBhjcmVhdGUAAAgUYWRtaW5pBRhjb25maWc1BjBmb3JjZV9jcmVhdGUAAAgUb3duZXJpBRhjb25maWc1BhxkZXN0cm95AAAIKGNvbGxlY3Rpb24EHHdpdG5lc3M5BhBtaW50AAAQKGNvbGxlY3Rpb24EEGl0ZW0EHG1pbnRfdG9pBTB3aXRuZXNzX2RhdGFBBihmb3JjZV9taW50AAAQKGNvbGxlY3Rpb24EEGl0ZW0EHG1pbnRfdG9pBSxpdGVtX2NvbmZpZwgQYnVybgAACChjb2xsZWN0aW9uBBBpdGVtBCB0cmFuc2ZlcgAADChjb2xsZWN0aW9uBBBpdGVtBBBkZXN0aQUkcmVkZXBvc2l0AAAIKGNvbGxlY3Rpb24EFGl0ZW1z6QJIbG9ja19pdGVtX3RyYW5zZmVyAAAIKGNvbGxlY3Rpb24EEGl0ZW0EUHVubG9ja19pdGVtX3RyYW5zZmVyAAAIKGNvbGxlY3Rpb24EEGl0ZW0EPGxvY2tfY29sbGVjdGlvbgAACChjb2xsZWN0aW9uBDRsb2NrX3NldHRpbmdzCEh0cmFuc2Zlcl9vd25lcnNoaXAAAAgoY29sbGVjdGlvbgQkbmV3X293bmVyaQUgc2V0X3RlYW0AABAoY29sbGVjdGlvbgQYaXNzdWVyJQYUYWRtaW4lBhxmcmVlemVyJQZYZm9yY2VfY29sbGVjdGlvbl9vd25lcgAACChjb2xsZWN0aW9uBBRvd25lcmkFXGZvcmNlX2NvbGxlY3Rpb25fY29uZmlnAAAIKGNvbGxlY3Rpb24EGGNvbmZpZzUGQGFwcHJvdmVfdHJhbnNmZXIAABAoY29sbGVjdGlvbgQQaXRlbQQgZGVsZWdhdGVpBThtYXliZV9kZWFkbGluZe0CPGNhbmNlbF9hcHByb3ZhbAAADChjb2xsZWN0aW9uBBBpdGVtBCBkZWxlZ2F0ZWkFcGNsZWFyX2FsbF90cmFuc2Zlcl9hcHByb3ZhbHMAAAgoY29sbGVjdGlvbgQQaXRlbQRQbG9ja19pdGVtX3Byb3BlcnRpZXMAABAoY29sbGVjdGlvbgQQaXRlbQQ0bG9ja19tZXRhZGF0YRQ8bG9ja19hdHRyaWJ1dGVzFDRzZXRfYXR0cmlidXRlAAAUKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAiRuYW1lc3BhY2X5AgxrZXkkFHZhbHVlJExmb3JjZV9zZXRfYXR0cmlidXRlAAAYGHNldF9hc/ECKGNvbGxlY3Rpb24EKG1heWJlX2l0ZW3tAiRuYW1lc3BhY2X5AgxrZXkkFHZhbHVlJDxjbGVhcl9hdHRyaWJ1dGUAABAoY29sbGVjdGlvbgQobWF5YmVfaXRlbe0CJG5hbWVzcGFjZfkCDGtleSRcYXBwcm92ZV9pdGVtX2F0dHJpYnV0ZXMAAAwoY29sbGVjdGlvbgQQaXRlbQQgZGVsZWdhdGVpBXxjYW5jZWxfaXRlbV9hdHRyaWJ1dGVzX2FwcHJvdmFsAAAQKGNvbGxlY3Rpb24EEGl0ZW0EIGRlbGVnYXRlaQUcd2l0bmVzcwQwc2V0X21ldGFkYXRhAAAMKGNvbGxlY3Rpb24EEGl0ZW0EEGRhdGEkOGNsZWFyX21ldGFkYXRhAAAIKGNvbGxlY3Rpb24EEGl0ZW0EXHNldF9jb2xsZWN0aW9uX21ldGFkYXRhAAAIKGNvbGxlY3Rpb24EEGRhdGEkZGNsZWFyX2NvbGxlY3Rpb25fbWV0YWRhdGEAAAQoY29sbGVjdGlvbgRQc2V0X2FjY2VwdF9vd25lcnNoaXAAAARAbWF5YmVfY29sbGVjdGlvbu0CZHNldF9jb2xsZWN0aW9uX21heF9zdXBwbHkAAAgoY29sbGVjdGlvbgQobWF4X3N1cHBseQRQdXBkYXRlX21pbnRfc2V0dGluZ3MAAAgoY29sbGVjdGlvbgQ0bWludF9zZXR0aW5nczEGJHNldF9wcmljZQAAEChjb2xsZWN0aW9uBBBpdGVtBBRwcmljZaECRHdoaXRlbGlzdGVkX2J1eWVyJQYgYnV5X2l0ZW0AAAwoY29sbGVjdGlvbgQQaXRlbQQkYmlkX3ByaWNlCCBwYXlfdGlwcwAABBB0aXBzSQYsY3JlYXRlX3N3YXAAABhIb2ZmZXJlZF9jb2xsZWN0aW9uBDBvZmZlcmVkX2l0ZW0ESGRlc2lyZWRfY29sbGVjdGlvbgRIbWF5YmVfZGVzaXJlZF9pdGVt7QIsbWF5YmVfcHJpY2UFAyBkdXJhdGlvbgQsY2FuY2VsX3N3YXAAAAhIb2ZmZXJlZF9jb2xsZWN0aW9uBDBvZmZlcmVkX2l0ZW0EKGNsYWltX3N3YXAAABQ8c2VuZF9jb2xsZWN0aW9uBCRzZW5kX2l0ZW0ESHJlY2VpdmVfY29sbGVjdGlvbgQwcmVjZWl2ZV9pdGVtBDR3aXRuZXNzX3ByaWNlBQM8bWludF9wcmVfc2lnbmVkAAAMJG1pbnRfZGF0YU0GJHNpZ25hdHVyZVUGGHNpZ25lcgBkc2V0X2F0dHJpYnV0ZXNfcHJlX3NpZ25lZAAADBBkYXRhWQYkc2lnbmF0dXJlVQYYc2lnbmVyAAKIGGNyZWF0ZQAADAhpZNUBFGFkbWluaQUsbWluX2JhbGFuY2UIMGZvcmNlX2NyZWF0ZQAAEAhpZNUBFG93bmVyaQU0aXNfc3VmZmljaWVudBQsbWluX2JhbGFuY2UINHN0YXJ0X2Rlc3Ryb3kAAAQIaWTVAUBkZXN0cm95X2FjY291bnRzAAAECGlk1QFEZGVzdHJveV9hcHByb3ZhbHMAAAQIaWTVAThmaW5pc2hfZGVzdHJveQAABAhpZNUBEG1pbnQAAAwIaWTVASxiZW5lZmljaWFyeWkFGGFtb3VudAgQYnVybgAADAhpZNUBDHdob2kFGGFtb3VudAggdHJhbnNmZXIAAAwIaWTVARh0YXJnZXRpBRhhbW91bnQITHRyYW5zZmVyX2tlZXBfYWxpdmUAAAwIaWTVARh0YXJnZXRpBRhhbW91bnQIOGZvcmNlX3RyYW5zZmVyAAAQCGlk1QEYc291cmNlaQUQZGVzdGkFGGFtb3VudAgYZnJlZXplAAAICGlk1QEMd2hvaQUQdGhhdwAACAhpZNUBDHdob2kFMGZyZWV6ZV9hc3NldAAABAhpZNUBKHRoYXdfYXNzZXQAAAQIaWTVAUh0cmFuc2Zlcl9vd25lcnNoaXAAAAgIaWTVARRvd25lcmkFIHNldF90ZWFtAAAQCGlk1QEYaXNzdWVyaQUUYWRtaW5pBRxmcmVlemVyaQUwc2V0X21ldGFkYXRhAAAQCGlk1QEQbmFtZSQYc3ltYm9sJCBkZWNpbWFscwQ4Y2xlYXJfbWV0YWRhdGEAAAQIaWTVAUhmb3JjZV9zZXRfbWV0YWRhdGEAABQIaWTVARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UUGZvcmNlX2NsZWFyX21ldGFkYXRhAAAECGlk1QFIZm9yY2VfYXNzZXRfc3RhdHVzAAAgCGlk1QEUb3duZXJpBRhpc3N1ZXJpBRRhZG1pbmkFHGZyZWV6ZXJpBSxtaW5fYmFsYW5jZQg0aXNfc3VmZmljaWVudBQkaXNfZnJvemVuFEBhcHByb3ZlX3RyYW5zZmVyAAAMCGlk1QEgZGVsZWdhdGVpBRhhbW91bnQIPGNhbmNlbF9hcHByb3ZhbAAACAhpZNUBIGRlbGVnYXRlaQVUZm9yY2VfY2FuY2VsX2FwcHJvdmFsAAAMCGlk1QEUb3duZXJpBSBkZWxlZ2F0ZWkFRHRyYW5zZmVyX2FwcHJvdmVkAAAQCGlk1QEUb3duZXJpBSxkZXN0aW5hdGlvbmkFGGFtb3VudAgUdG91Y2gAAAQIaWTVARhyZWZ1bmQAAAgIaWTVAShhbGxvd19idXJuFDxzZXRfbWluX2JhbGFuY2UAAAgIaWTVASxtaW5fYmFsYW5jZQgsdG91Y2hfb3RoZXIAAAgIaWTVAQx3aG9pBTByZWZ1bmRfb3RoZXIAAAgIaWTVAQx3aG9pBRRibG9jawAACAhpZNUBDHdob2kFMHRyYW5zZmVyX2FsbAAADAhpZNUBEGRlc3RpBShrZWVwX2FsaXZlFDBzZXRfcmVzZXJ2ZXMAAAgIaWTVASByZXNlcnZlcxUDBNUBAAIYLGNyZWF0ZV9wb29sAAAIGGFzc2V0MdUBGGFzc2V0MtUBNGFkZF9saXF1aWRpdHkAABwYYXNzZXQx1QEYYXNzZXQy1QE8YW1vdW50MV9kZXNpcmVkCDxhbW91bnQyX2Rlc2lyZWQILGFtb3VudDFfbWluCCxhbW91bnQyX21pbggcbWludF90bwBAcmVtb3ZlX2xpcXVpZGl0eQAAGBhhc3NldDHVARhhc3NldDLVATRscF90b2tlbl9idXJuCExhbW91bnQxX21pbl9yZWNlaXZlCExhbW91bnQyX21pbl9yZWNlaXZlCCx3aXRoZHJhd190bwBwc3dhcF9leGFjdF90b2tlbnNfZm9yX3Rva2VucwAAFBBwYXRoZQYkYW1vdW50X2luCDhhbW91bnRfb3V0X21pbggcc2VuZF90bwAoa2VlcF9hbGl2ZRRwc3dhcF90b2tlbnNfZm9yX2V4YWN0X3Rva2VucwAAFBBwYXRoZQYoYW1vdW50X291dAg0YW1vdW50X2luX21heAgcc2VuZF90bwAoa2VlcF9hbGl2ZRQUdG91Y2gAAAgYYXNzZXQx1QEYYXNzZXQy1QECGCxzcGVuZF9sb2NhbAAACBhhbW91bnQILGJlbmVmaWNpYXJ5aQU8cmVtb3ZlX2FwcHJvdmFsAAAELHByb3Bvc2FsX2lkBBRzcGVuZAAAEChhc3NldF9raW5kLQMYYW1vdW50CCxiZW5lZmljaWFyeTEDKHZhbGlkX2Zyb23tAhhwYXlvdXQAAAQUaW5kZXgEMGNoZWNrX3N0YXR1cwAABBRpbmRleAQodm9pZF9zcGVuZAAABBRpbmRleAQCHBBOb25lAAEFIExvY2tlZDF4AAEFIExvY2tlZDJ4AAEFIExvY2tlZDN4AAEFIExvY2tlZDR4AAEFIExvY2tlZDV4AAEFIExvY2tlZDZ4AAEFAhgQdm90ZQAACChwb2xsX2luZGV4BBB2b3RlOQMgZGVsZWdhdGUAABAUY2xhc3MECHRvaQUoY29udmljdGlvbnEGHGJhbGFuY2UIKHVuZGVsZWdhdGUAAAQUY2xhc3MEGHVubG9jawAACBRjbGFzcwQYdGFyZ2V0aQUscmVtb3ZlX3ZvdGUAAAgUY2xhc3PtAhRpbmRleAREcmVtb3ZlX290aGVyX3ZvdGUAAAwYdGFyZ2V0aQUUY2xhc3MEFGluZGV4BAIICEF0AQQUQWZ0ZXIBBAIkGHN1Ym1pdAAADDxwcm9wb3NhbF9vcmlnaW4VBSBwcm9wb3NhbEEDQGVuYWN0bWVudF9tb21lbnR5BlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0AAAEFGluZGV4BFxyZWZ1bmRfZGVjaXNpb25fZGVwb3NpdAAABBRpbmRleAQYY2FuY2VsAAAEFGluZGV4BBBraWxsAAAEFGluZGV4BEBudWRnZV9yZWZlcmVuZHVtAAAEFGluZGV4BEhvbmVfZmV3ZXJfZGVjaWRpbmcAAAQUdHJhY2sEZHJlZnVuZF9zdWJtaXNzaW9uX2RlcG9zaXQAAAQUaW5kZXgEMHNldF9tZXRhZGF0YQAACBRpbmRleAQobWF5YmVfaGFzaBUBAhA4d2hpdGVsaXN0X2NhbGwAAAQkY2FsbF9oYXNoIFxyZW1vdmVfd2hpdGVsaXN0ZWRfY2FsbAAABCRjYWxsX2hhc2ggZGRpc3BhdGNoX3doaXRlbGlzdGVkX2NhbGwAAAwkY2FsbF9oYXNoIEBjYWxsX2VuY29kZWRfbGVuBExjYWxsX3dlaWdodF93aXRuZXNzGJxkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsX3dpdGhfcHJlaW1hZ2UAAAQQY2FsbAkKAiw4cHJvcG9zZV9ib3VudHkAAAgUdmFsdWUILGRlc2NyaXB0aW9uJDhhcHByb3ZlX2JvdW50eQAABCRib3VudHlfaWQEPHByb3Bvc2VfY3VyYXRvcgAADCRib3VudHlfaWQEHGN1cmF0b3JpBQxmZWUIQHVuYXNzaWduX2N1cmF0b3IAAAQkYm91bnR5X2lkBDhhY2NlcHRfY3VyYXRvcgAABCRib3VudHlfaWQEMGF3YXJkX2JvdW50eQAACCRib3VudHlfaWQELGJlbmVmaWNpYXJ5aQUwY2xhaW1fYm91bnR5AAAEJGJvdW50eV9pZAQwY2xvc2VfYm91bnR5AAAEJGJvdW50eV9pZARQZXh0ZW5kX2JvdW50eV9leHBpcnkAAAgkYm91bnR5X2lkBBhyZW1hcmskbGFwcHJvdmVfYm91bnR5X3dpdGhfY3VyYXRvcgAADCRib3VudHlfaWQEHGN1cmF0b3JpBQxmZWUIMHBva2VfZGVwb3NpdAAABCRib3VudHlfaWQEAhxAYWRkX2NoaWxkX2JvdW50eQAADEBwYXJlbnRfYm91bnR5X2lkBBR2YWx1ZQgsZGVzY3JpcHRpb24kPHByb3Bvc2VfY3VyYXRvcgAAEEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWQEHGN1cmF0b3JpBQxmZWUIOGFjY2VwdF9jdXJhdG9yAAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZARAdW5hc3NpZ25fY3VyYXRvcgAACEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWQESGF3YXJkX2NoaWxkX2JvdW50eQAADEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWQELGJlbmVmaWNpYXJ5aQVIY2xhaW1fY2hpbGRfYm91bnR5AAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZARIY2xvc2VfY2hpbGRfYm91bnR5AAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZAQCDBhjcmVhdGUAAAgoYXNzZXRfa2luZC0DEHJhdGUIGHVwZGF0ZQAACChhc3NldF9raW5kLQMQcmF0ZQgYcmVtb3ZlAAAEKGFzc2V0X2tpbmQtAwIkLGZ1bmRfYm91bnR5AAAQKGFzc2V0X2tpbmQtAxR2YWx1ZQgcY3VyYXRvcmkFIG1ldGFkYXRhIERmdW5kX2NoaWxkX2JvdW50eQAAEEBwYXJlbnRfYm91bnR5X2lkBBR2YWx1ZQggbWV0YWRhdGEgHGN1cmF0b3IlBjxwcm9wb3NlX2N1cmF0b3IAAAxAcGFyZW50X2JvdW50eV9pZAQ8Y2hpbGRfYm91bnR5X2lk7QIcY3VyYXRvcmkFOGFjY2VwdF9jdXJhdG9yAAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZO0CQHVuYXNzaWduX2N1cmF0b3IAAAhAcGFyZW50X2JvdW50eV9pZAQ8Y2hpbGRfYm91bnR5X2lk7QIwYXdhcmRfYm91bnR5AAAMQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZO0CLGJlbmVmaWNpYXJ5MQMwY2xvc2VfYm91bnR5AAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZO0CMGNoZWNrX3N0YXR1cwAACEBwYXJlbnRfYm91bnR5X2lkBDxjaGlsZF9ib3VudHlfaWTtAjRyZXRyeV9wYXltZW50AAAIQHBhcmVudF9ib3VudHlfaWQEPGNoaWxkX2JvdW50eV9pZO0CAAgQc2l6ZQQQaXRlbQQGlQYCDBxUb1N0YXJ0AAEFHExhc3RLZXkBJCBDb21wbGV0ZQABBQAUMHByb2dyZXNzX3RvcJ0GOHByb2dyZXNzX2NoaWxknQYQc2l6ZQQkdG9wX2l0ZW1zBCxjaGlsZF9pdGVtcwQCGFhjb250cm9sX2F1dG9fbWlncmF0aW9uAAAEMG1heWJlX2NvbmZpZ5kGQGNvbnRpbnVlX21pZ3JhdGUAAAwYbGltaXRzlQY8cmVhbF9zaXplX3VwcGVyBDB3aXRuZXNzX3Rhc2uhBkhtaWdyYXRlX2N1c3RvbV90b3AAAAgQa2V5c0kEMHdpdG5lc3Nfc2l6ZQRQbWlncmF0ZV9jdXN0b21fY2hpbGQAAAwQcm9vdCQoY2hpbGRfa2V5c0kEKHRvdGFsX3NpemUEVHNldF9zaWduZWRfbWF4X2xpbWl0cwAABBhsaW1pdHOVBkhmb3JjZV9zZXRfcHJvZ3Jlc3MAAAgwcHJvZ3Jlc3NfdG9wnQY4cHJvZ3Jlc3NfY2hpbGSdBgIILEZyZWVCYWxhbmNlAQgcUmV3YXJkcwABBQIMEE5vb3AAAQUMU2V0AQgYUmVtb3ZlAAEFAgwQTm9vcAABBQxTZXQBBBhSZW1vdmUAAQUCDBBOb29wAAEFDFNldAEAGFJlbW92ZQABBQJoEGpvaW4AAAgYYW1vdW50CBxwb29sX2lkBChib25kX2V4dHJhAAAEFGV4dHJhqQYwY2xhaW1fcGF5b3V0AAEFGHVuYm9uZAAACDhtZW1iZXJfYWNjb3VudGkFQHVuYm9uZGluZ19wb2ludHMIWHBvb2xfd2l0aGRyYXdfdW5ib25kZWQAAAgccG9vbF9pZARIbnVtX3NsYXNoaW5nX3NwYW5zBER3aXRoZHJhd191bmJvbmRlZAAACDhtZW1iZXJfYWNjb3VudGkFSG51bV9zbGFzaGluZ19zcGFucwQYY3JlYXRlAAAQGGFtb3VudAgQcm9vdGkFJG5vbWluYXRvcmkFHGJvdW5jZXJpBUxjcmVhdGVfd2l0aF9wb29sX2lkAAAUGGFtb3VudAgQcm9vdGkFJG5vbWluYXRvcmkFHGJvdW5jZXJpBRxwb29sX2lkBCBub21pbmF0ZQAACBxwb29sX2lkBCh2YWxpZGF0b3Jz5QEkc2V0X3N0YXRlAAAIHHBvb2xfaWQEFHN0YXRldQMwc2V0X21ldGFkYXRhAAAIHHBvb2xfaWQEIG1ldGFkYXRhJCxzZXRfY29uZmlncwAAGDRtaW5fam9pbl9ib25krQY8bWluX2NyZWF0ZV9ib25krQYkbWF4X3Bvb2xzsQYsbWF4X21lbWJlcnOxBlBtYXhfbWVtYmVyc19wZXJfcG9vbLEGVGdsb2JhbF9tYXhfY29tbWlzc2lvbrEGMHVwZGF0ZV9yb2xlcwAAEBxwb29sX2lkBCBuZXdfcm9vdLUGNG5ld19ub21pbmF0b3K1BixuZXdfYm91bmNlcrUGFGNoaWxsAAAEHHBvb2xfaWQEQGJvbmRfZXh0cmFfb3RoZXIAAAgYbWVtYmVyaQUUZXh0cmGpBlBzZXRfY2xhaW1fcGVybWlzc2lvbgAABChwZXJtaXNzaW9ujQNIY2xhaW1fcGF5b3V0X290aGVyAAAEFG90aGVyADhzZXRfY29tbWlzc2lvbgAACBxwb29sX2lkBDhuZXdfY29tbWlzc2lvbn0DSHNldF9jb21taXNzaW9uX21heAAACBxwb29sX2lkBDhtYXhfY29tbWlzc2lvbgRoc2V0X2NvbW1pc3Npb25fY2hhbmdlX3JhdGUAAAgccG9vbF9pZAQsY2hhbmdlX3JhdGWBA0BjbGFpbV9jb21taXNzaW9uAAAEHHBvb2xfaWQETGFkanVzdF9wb29sX2RlcG9zaXQAAAQccG9vbF9pZAR8c2V0X2NvbW1pc3Npb25fY2xhaW1fcGVybWlzc2lvbgAACBxwb29sX2lkBChwZXJtaXNzaW9uiQMsYXBwbHlfc2xhc2gAAAQ4bWVtYmVyX2FjY291bnRpBUhtaWdyYXRlX2RlbGVnYXRpb24AAAQ4bWVtYmVyX2FjY291bnRpBXhtaWdyYXRlX3Bvb2xfdG9fZGVsZWdhdGVfc3Rha2UAAAQccG9vbF9pZAQCDBRyZWJhZwAABChkaXNsb2NhdGVkaQU8cHV0X2luX2Zyb250X29mAAAEHGxpZ2h0ZXJpBVRwdXRfaW5fZnJvbnRfb2Zfb3RoZXIAAAgcaGVhdmllcmkFHGxpZ2h0ZXJpBQMIAAQEwQYAABAkZW5kX2luZGV4BEB2YWxpZGF0b3JfcG9pbnRzxQZQYWN0aXZhdGlvbl90aW1lc3RhbXChAyBsZWZ0b3ZlchQADCBvZmZlbmRlcgAkcmVwb3J0ZXJz5QE4c2xhc2hfZnJhY3Rpb24EAwgEzQYE0QYAAhBQcmVsYXlfc2Vzc2lvbl9yZXBvcnQAAAQYcmVwb3J0yQZccmVsYXlfbmV3X29mZmVuY2VfcGFnZWQAAAQgb2ZmZW5jZXPVBiBzZXRfa2V5cwAADBBrZXlzJBRwcm9vZiSUbWF4X2RlbGl2ZXJ5X2FuZF9yZW1vdGVfZXhlY3V0aW9uX2ZlZaECKHB1cmdlX2tleXMAAASUbWF4X2RlbGl2ZXJ5X2FuZF9yZW1vdGVfZXhlY3V0aW9uX2ZlZaECAgxARm9yY2VSb3RhdGVSb3VuZAABBTRGb3JjZVNldFBoYXNlAa0DREVtZXJnZW5jeUZhbGxiYWNrAAEFBOkEAAAIFHRvdGFsCBh2b3RlcnPhBgMIAOUGBOkGAAIIUEVtZXJnZW5jeVNldFNvbHV0aW9uAAMI7Qa9A1BTZXRNaW5VbnRydXN0ZWRTY29yZQG9AwIIGG1hbmFnZQAABAhvcN0GFGFkbWluAAAECG9w8QYDCAQEBPkGAAMMBPkGBAQBBwAE+QYBCAMMBAkHBAQNBwAE+QYBDAMMBBUHBAQZBwAE+QYBEAMMBCEHBAQlBwAE+QYBFAMMBC0HBAQxBwAE+QYBGAMMBDkHBAQ9BwAE+QYBHAMMBEUHBARJBwAE+QYBIAMMBFEHBARVBwAE+QYBJAMMBF0HBARhBwAE+QYBKAMMBGkHBARtBwAE+QYBLAMMBHUHBAR5BwAE+QYBMAMMBIEHBASFBwAE+QYBNAMMBI0HBASRBwAE+QYBOAMMBJkHBASdBwAE+QYBPAMMBKUHBASpBwAAQBh2b3RlczH9Bhh2b3RlczIFBxh2b3RlczMRBxh2b3RlczQdBxh2b3RlczUpBxh2b3RlczY1Bxh2b3RlczdBBxh2b3RlczhNBxh2b3RlczlZBxx2b3RlczEwZQccdm90ZXMxMXEHHHZvdGVzMTJ9Bxx2b3RlczEziQccdm90ZXMxNJUHHHZvdGVzMTWhBxx2b3RlczE2rQcEsQcAAAw4c29sdXRpb25fcGFnZXO1BxRzY29yZb0DFHJvdW5kBAIEPHN1Ym1pdF91bnNpZ25lZAAABDhwYWdlZF9zb2x1dGlvbrkHBrEHAhQgcmVnaXN0ZXIAAAQ0Y2xhaW1lZF9zY29yZb0DLHN1Ym1pdF9wYWdlAAAIEHBhZ2UEOG1heWJlX3NvbHV0aW9uwQcQYmFpbAABBVBjbGVhcl9vbGRfcm91bmRfZGF0YQAACBRyb3VuZAQ0d2l0bmVzc19wYWdlcwREc2V0X2ludnVsbmVyYWJsZXMAAAQMaW525QEEaQUAAgwQTm9vcAABBQxTZXQBFBhSZW1vdmUAAQUACBR2YWx1ZQgMZXJhBATRBwAG1QcDDAAEBAKEEGJvbmQAAAgUdmFsdWUIFHBheWVlzQMoYm9uZF9leHRyYQAABDhtYXhfYWRkaXRpb25hbAgYdW5ib25kAAAEFHZhbHVlCER3aXRoZHJhd191bmJvbmRlZAAABEhudW1fc2xhc2hpbmdfc3BhbnMEIHZhbGlkYXRlAAAEFHByZWZz0QMgbm9taW5hdGUAAAQcdGFyZ2V0c8kHFGNoaWxsAAEFJHNldF9wYXllZQAABBRwYXllZc0DOHNldF9jb250cm9sbGVyAAEFTHNldF92YWxpZGF0b3JfY291bnQAAAQMbmV3BGBpbmNyZWFzZV92YWxpZGF0b3JfY291bnQAAAQoYWRkaXRpb25hbARUc2NhbGVfdmFsaWRhdG9yX2NvdW50AAAEGGZhY3RvcgQ0Zm9yY2Vfbm9fZXJhcwABBTRmb3JjZV9uZXdfZXJhAAEFRHNldF9pbnZ1bG5lcmFibGVzAAAENGludnVsbmVyYWJsZXPlATRmb3JjZV91bnN0YWtlAAAIFHN0YXNoAEhudW1fc2xhc2hpbmdfc3BhbnMEUGZvcmNlX25ld19lcmFfYWx3YXlzAAEFVGNhbmNlbF9kZWZlcnJlZF9zbGFzaAAACAxlcmEERHZhbGlkYXRvcl9zbGFzaGVzxQY4cGF5b3V0X3N0YWtlcnMAAAg8dmFsaWRhdG9yX3N0YXNoAAxlcmEEGHJlYm9uZAAABBR2YWx1ZQgocmVhcF9zdGFzaAAACBRzdGFzaABIbnVtX3NsYXNoaW5nX3NwYW5zBBBraWNrAAAEDHdob8kHTHNldF9zdGFraW5nX2NvbmZpZ3MAACBIbWluX25vbWluYXRvcl9ib25krQZIbWluX3ZhbGlkYXRvcl9ib25krQZMbWF4X25vbWluYXRvcl9jb3VudLEGTG1heF92YWxpZGF0b3JfY291bnSxBjxjaGlsbF90aHJlc2hvbGSxBjhtaW5fY29tbWlzc2lvbrEGSG1heF9zdGFrZWRfcmV3YXJkc7EGYGFyZV9ub21pbmF0b3JzX3NsYXNoYWJsZc0HLGNoaWxsX290aGVyAAAEFHN0YXNoAGhmb3JjZV9hcHBseV9taW5fY29tbWlzc2lvbgAABDx2YWxpZGF0b3Jfc3Rhc2gASHNldF9taW5fY29tbWlzc2lvbgAABAxuZXcEWHBheW91dF9zdGFrZXJzX2J5X3BhZ2UAAAw8dmFsaWRhdG9yX3N0YXNoAAxlcmEEEHBhZ2UEMHVwZGF0ZV9wYXllZQAABChjb250cm9sbGVyAGhkZXByZWNhdGVfY29udHJvbGxlcl9iYXRjaAAABCxjb250cm9sbGVyc+UBOHJlc3RvcmVfbGVkZ2VyAAAQFHN0YXNoAEBtYXliZV9jb250cm9sbGVy8QIsbWF5YmVfdG90YWyhAjxtYXliZV91bmxvY2tpbmfZB0BtaWdyYXRlX2N1cnJlbmN5AAAEFHN0YXNoACxhcHBseV9zbGFzaAAACCRzbGFzaF9lcmEEJHNsYXNoX2tled0HOHBydW5lX2VyYV9zdGVwAAAEDGVyYQQECAEQAjQwZXRoX3RyYW5zYWN0AAAEHHBheWxvYWQkEGNhbGwAABQQZGVzdKUBFHZhbHVlCDB3ZWlnaHRfbGltaXQYVHN0b3JhZ2VfZGVwb3NpdF9saW1pdAgQZGF0YSQsaW5zdGFudGlhdGUAABgUdmFsdWUIMHdlaWdodF9saW1pdBhUc3RvcmFnZV9kZXBvc2l0X2xpbWl0CCRjb2RlX2hhc2ggEGRhdGEkEHNhbHQVAVRpbnN0YW50aWF0ZV93aXRoX2NvZGUAABgUdmFsdWUIMHdlaWdodF9saW1pdBhUc3RvcmFnZV9kZXBvc2l0X2xpbWl0CBBjb2RlJBBkYXRhJBBzYWx0FQFkZXRoX2luc3RhbnRpYXRlX3dpdGhfY29kZQAAIBR2YWx1ZeUHMHdlaWdodF9saW1pdBg0ZXRoX2dhc19saW1pdOUHEGNvZGUkEGRhdGEkTHRyYW5zYWN0aW9uX2VuY29kZWQkTGVmZmVjdGl2ZV9nYXNfcHJpY2XlByxlbmNvZGVkX2xlbgQgZXRoX2NhbGwAACAQZGVzdKUBFHZhbHVl5Qcwd2VpZ2h0X2xpbWl0GDRldGhfZ2FzX2xpbWl05QcQZGF0YSRMdHJhbnNhY3Rpb25fZW5jb2RlZCRMZWZmZWN0aXZlX2dhc19wcmljZeUHLGVuY29kZWRfbGVuBEhldGhfc3Vic3RyYXRlX2NhbGwAAAgQY2FsbAkKTHRyYW5zYWN0aW9uX2VuY29kZWQkLHVwbG9hZF9jb2RlAAAIEGNvZGUkVHN0b3JhZ2VfZGVwb3NpdF9saW1pdAgscmVtb3ZlX2NvZGUAAAQkY29kZV9oYXNoICBzZXRfY29kZQAACBBkZXN0pQEkY29kZV9oYXNoICxtYXBfYWNjb3VudAABBTR1bm1hcF9hY2NvdW50AAEFcGRpc3BhdGNoX2FzX2ZhbGxiYWNrX2FjY291bnQAAAQQY2FsbAkKAhQQc3VkbwAABBBjYWxsCQpUc3Vkb191bmNoZWNrZWRfd2VpZ2h0AAAIEGNhbGwJChh3ZWlnaHQYHHNldF9rZXkAAAQMbmV3aQUcc3Vkb19hcwAACAx3aG9pBRBjYWxsCQoocmVtb3ZlX2tleQABBQIUXHVucmVzZXJ2ZV9sZWFzZV9kZXBvc2l0AAAMFGJsb2NrBCRkZXBvc2l0b3LxAhxwYXJhX2lkBHx3aXRoZHJhd19jcm93ZGxvYW5fY29udHJpYnV0aW9uAAAMFGJsb2NrBCRkZXBvc2l0b3LxAhxwYXJhX2lkBGx1bnJlc2VydmVfY3Jvd2Rsb2FuX3Jlc2VydmUAAAwUYmxvY2sEJGRlcG9zaXRvcvECHHBhcmFfaWQEjHRyYW5zZmVyX3RvX3Bvc3RfbWlncmF0aW9uX3RyZWFzdXJ5AAAEIGFzc2V0X2lk1QHEdHJhbnNsYXRlX3BhcmFfc292ZXJlaWduX2NoaWxkX3RvX3NpYmxpbmdfZGVyaXZlZAAAEBxwYXJhX2lkBDxkZXJpdmF0aW9uX3BhdGjpAixvbGRfYWNjb3VudAAsbmV3X2FjY291bnQAAhggUHJlaW1hZ2UBaQEcU3Rha2luZwGFAUhTdGF0ZVRyaWVNaWdyYXRpb24BeQFARGVsZWdhdGVkU3Rha2luZwF9ARxTZXNzaW9uAW0BJFhjbVBhbGxldAFxAQAICGlk9QcYYW1vdW50CAT5BwACBDhQb29sTWluQmFsYW5jZQABBQIEPE5vbWluYXRpb25Qb29scwEBCAAICGlkBQgYYW1vdW50CAQJCAACDAxGZWUAAQUQTWlzYwABBQxBbGwAAQUADAhpZAECGGFtb3VudAgccmVhc29ucxEIBBUIAAAoDHdobwAQZnJlZQggcmVzZXJ2ZWQIGGZyb3plbggUaG9sZHP9BxxmcmVlemVzDQgUbG9ja3MZCDx1bm5hbWVkX3Jlc2VydmUIJGNvbnN1bWVycwQkcHJvdmlkZXJzBAQdCAAACBxjcmVhdG9yABxkZXBvc2l0CAQlCAACJAxBbnkAAQUsTm9uVHJhbnNmZXIAAQUoR292ZXJuYW5jZQABBRxTdGFraW5nAAEFLENhbmNlbFByb3h5AAEFHEF1Y3Rpb24AAQU8Tm9taW5hdGlvblBvb2xzAAEFQFBhcmFSZWdpc3RyYXRpb24AAQU8U3Rha2luZ09wZXJhdG9yAAEFAAwgZGVsZWdhdGUAKHByb3h5X3R5cGUtCBRkZWxheQQEMQgAAAwkZGVsZWdhdG9yABxkZXBvc2l0CBxwcm94aWVzNQgEOQgAAAgkZGVwb3NpdG9yABxkZXBvc2l0CARBCAAAEDRwcmVpbWFnZV9oYXNoIDBwcmVpbWFnZV9sZW4ERGNodW5rX2J5dGVfb2Zmc2V0BCxjaHVua19ieXRlcyQESQgAAwgAJAZRCAIILFVucmVxdWVzdGVkAAAIGHRpY2tldFEIDGxlbgQkUmVxdWVzdGVkAAAMMG1heWJlX3RpY2tldFUIFGNvdW50BCRtYXliZV9sZW7tAgAIEGhhc2ggOHJlcXVlc3Rfc3RhdHVzWQgEXQgAAAwQaGFzaCAkZGVwb3NpdG9yABxkZXBvc2l0CARlCAAAIEh0b3RhbF92YWx1ZV9sb2NrZWShAjRtaW5fam9pbl9ib25koQI8bWluX2NyZWF0ZV9ib25koQIkbWF4X3Bvb2xz7QJAbWF4X3Bvb2xfbWVtYmVyc+0CZG1heF9wb29sX21lbWJlcnNfcGVyX3Bvb2ztAlRnbG9iYWxfbWF4X2NvbW1pc3Npb27tAjBsYXN0X3Bvb2xfaWTtAgMIBAgEcQgAABAccG9vbF9pZAQYcG9pbnRzCHBsYXN0X3JlY29yZGVkX3Jld2FyZF9jb3VudGVyCDh1bmJvbmRpbmdfZXJhc3UIAwgAeQgGgQMAFBxjdXJyZW50fQMMbWF47QIsY2hhbmdlX3JhdGWBCDR0aHJvdHRsZV9mcm9t7QJAY2xhaW1fcGVybWlzc2lvbokDABAkZGVwb3NpdG9yABByb2908QIkbm9taW5hdG9y8QIcYm91bmNlcvECABQoY29tbWlzc2lvboUIOG1lbWJlcl9jb3VudGVyBBhwb2ludHMIFHJvbGVziQgUc3RhdGV1AwMIBI0IABRwbGFzdF9yZWNvcmRlZF9yZXdhcmRfY291bnRlcghsbGFzdF9yZWNvcmRlZF90b3RhbF9wYXlvdXRzCFR0b3RhbF9yZXdhcmRzX2NsYWltZWQIYHRvdGFsX2NvbW1pc3Npb25fcGVuZGluZwhgdG90YWxfY29tbWlzc2lvbl9jbGFpbWVkCAMIBJUIAAgYcG9pbnRzCBxiYWxhbmNlCAMIBJ0IBKEIAAAIGG5vX2VyYZ0IIHdpdGhfZXJhpQgDCASpCAMIBCQDCACNAwIgNFN0b3JhZ2VWYWx1ZXMAAAQYdmFsdWVzbQgsUG9vbE1lbWJlcnMAAAQYbWVtYmVyfQgsQm9uZGVkUG9vbHMAAAQQcG9vbJEILFJld2FyZFBvb2xzAAAEHHJld2FyZHOZCDxTdWJQb29sc1N0b3JhZ2UAAAQkc3ViX3Bvb2xzrQggTWV0YWRhdGEAAAQQbWV0YbEITFJldmVyc2VQb29sSWRMb29rdXAAAAQcbG9va3Vwc8EGQENsYWltUGVybWlzc2lvbnMAAAQUcGVybXO1CAS5CAAEdQUAAAgMd2hvACRzY2hlZHVsZXPBCATFCAADCAR1CATNCAAADEByZWZlcmVuZHVtX2NvdW507QI4ZGVjaWRpbmdfY291bnT9Bix0cmFja19xdWV1ZdEIBNUIAAIIGHN5c3RlbQEBBRxPcmlnaW5zAQ0FAAgMd2hvABhhbW91bnQIBuEIAAgUc2luY2UEKGNvbmZpcm1pbmftAgbpCAMIBCEBBvEIACwUdHJhY2sEGG9yaWdpbt0IIHByb3Bvc2FsQQMkZW5hY3RtZW50eQYkc3VibWl0dGVkBEhzdWJtaXNzaW9uX2RlcG9zaXThCEBkZWNpc2lvbl9kZXBvc2l05QggZGVjaWRpbmftCBR0YWxseUUDIGluX3F1ZXVlFBRhbGFybfUIAhgcT25nb2luZwH5CCBBcHByb3ZlZAADDATlCOUIIFJlamVjdGVkAAMMBOUI5QgkQ2FuY2VsbGVkAAMMBOUI5QggVGltZWRPdXQAAwwE5QjlCBhLaWxsZWQBBAMIBP0IBAEJAAMIpQEIAwilAYkFAwgApQECFDRTdG9yYWdlVmFsdWVzAAAEFHRvdGFsCBhDbGFpbXMBCQkcVmVzdGluZwAACAx3aG+lASBzY2hlZHVsZYEFHFNpZ25pbmcBDQkkUHJlY2xhaW1zAREJBBUJAAAUCGlkABBwcmV28QIQbmV4dPECJGJhZ191cHBlcggUc2NvcmUIAAwQaGVhZPECEHRhaWzxAiRiYWdfdXBwZXIIAggQTm9kZQAACAhpZAAQbm9kZR0JDEJhZwAACBRzY29yZQgMYmFnIQkEJQkAAwghASUFAwggIQECDDxJbmNvbXBsZXRlU2luY2UBBBxSZXRyaWVzAS0JGExvb2t1cAExCQQ1CQAAEBRpbmRleAQMd2hvABxkZXBvc2l0CBhmcm96ZW4UBD0JAAMIBDkDBEUJAAAIFHZvdGVzCBxjYXBpdGFsCAAMFHZvdGVzSQksZGVsZWdhdGlvbnNNCRRwcmlvcnEIABQcYmFsYW5jZQgYdGFyZ2V0AChjb252aWN0aW9ucQYsZGVsZWdhdGlvbnNNCRRwcmlvcnEIAggcQ2FzdGluZwFRCShEZWxlZ2F0aW5nAVUJAggkVm90aW5nRm9yAAMMAARZCTRDbGFzc0xvY2tzRm9yAAMIAHUIBF0JAAIcIFByb3Bvc2VkAAEFIEFwcHJvdmVkAAEFGEZ1bmRlZAABBTxDdXJhdG9yUHJvcG9zZWQAAAQcY3VyYXRvcgAYQWN0aXZlAAAIHGN1cmF0b3IAKHVwZGF0ZV9kdWUENFBlbmRpbmdQYXlvdXQAAAwcY3VyYXRvcgAsYmVuZWZpY2lhcnkAJHVubG9ja19hdARMQXBwcm92ZWRXaXRoQ3VyYXRvcgAABBxjdXJhdG9yAAAYIHByb3Bvc2VyABR2YWx1ZQgMZmVlCDxjdXJhdG9yX2RlcG9zaXQIEGJvbmQIGHN0YXR1c2UJAwgEaQkCECxCb3VudHlDb3VudAEEPEJvdW50eUFwcHJvdmFscwHpAkhCb3VudHlEZXNjcmlwdGlvbnMBsQggQm91bnRpZXMBbQkEcQkAAwgtAwgEeQkAAgwwTGVhc2VSZXNlcnZlAAAQPHVucmVzZXJ2ZV9ibG9jawQcYWNjb3VudAAccGFyYV9pZAQYYW1vdW50CFRDcm93ZGxvYW5Db250cmlidXRpb24AABQ4d2l0aGRyYXdfYmxvY2sELGNvbnRyaWJ1dG9yABxwYXJhX2lkBBhhbW91bnQIRGNyb3dkbG9hbl9hY2NvdW50AEBDcm93ZGxvYW5SZXNlcnZlAAAQPHVucmVzZXJ2ZV9ibG9jawQkZGVwb3NpdG9yABxwYXJhX2lkBBhhbW91bnQIBIEJAAAQIHByb3Bvc2VyABR2YWx1ZQgsYmVuZWZpY2lhcnkAEGJvbmQIAwgEiQkCDBxQZW5kaW5nAAEFJEF0dGVtcHRlZAAABAhpZAgYRmFpbGVkAAEFABgoYXNzZXRfa2luZC0DGGFtb3VudAgsYmVuZWZpY2lhcnmdAih2YWxpZF9mcm9tBCRleHBpcmVfYXQEGHN0YXR1c5EJAhw0UHJvcG9zYWxDb3VudAEEJFByb3Bvc2FscwGNCSRBcHByb3ZhbHMB6QIoU3BlbmRDb3VudAEEGFNwZW5kcwAACAhpZAQYc3RhdHVzlQk8TGFzdFNwZW5kUGVyaW9kAe0CFEZ1bmRzAAEFBJkJAAAUIG1heWJlX2lkFQEgcHJpb3JpdHkEEGNhbGxBAzhtYXliZV9wZXJpb2RpY/0EGG9yaWdpbt0IBqEJBKUJAAAIFGJsb2NrBBhhZ2VuZGGpCQStCQACCChEZWxlZ2F0b3JzAAAMJGRlbGVnYXRvcgAUYWdlbnQAGGFtb3VudAgYQWdlbnRzAAAUFGFnZW50ABRwYXllZQA8dG90YWxfZGVsZWdhdGVkCFR1bmNsYWltZWRfd2l0aGRyYXdhbHMINHBlbmRpbmdfc2xhc2gIBLUJAAIQFEFkZGVkAAEFPEN1cmF0b3JQcm9wb3NlZAAABBxjdXJhdG9yABhBY3RpdmUAAAQcY3VyYXRvcgA0UGVuZGluZ1BheW91dAAADBxjdXJhdG9yACxiZW5lZmljaWFyeQAkdW5sb2NrX2F0BAAUNHBhcmVudF9ib3VudHkEFHZhbHVlCAxmZWUIPGN1cmF0b3JfZGVwb3NpdAgYc3RhdHVzvQkCHEBDaGlsZEJvdW50eUNvdW50AQRMUGFyZW50Q2hpbGRCb3VudGllcwAEBAEIYFBhcmVudFRvdGFsQ2hpbGRCb3VudGllcwAEBAEILENoaWxkQm91bnR5AAAMJHBhcmVudF9pZAQgY2hpbGRfaWQEMGNoaWxkX2JvdW50ecEJZENoaWxkQm91bnR5RGVzY3JpcHRpb25zVjEAAAwkcGFyZW50X2lkBCBjaGlsZF9pZAQsZGVzY3JpcHRpb24kUFYwVG9WMUNoaWxkQm91bnR5SWRzAAAMLHYwX2NoaWxkX2lkBCRwYXJlbnRfaWQELHYxX2NoaWxkX2lkBExDaGlsZHJlbkN1cmF0b3JGZWVzAAAIIGNoaWxkX2lkBBhhbW91bnQIBMUJAAAIFGluZGV4BBRzdGFydKECBs0JBtUDAEA8dmFsaWRhdG9yX2NvdW507QJMbWluX3ZhbGlkYXRvcl9jb3VudO0CSG1pbl9ub21pbmF0b3JfYm9uZKECSG1pbl92YWxpZGF0b3JfYm9uZKECQG1pbl9hY3RpdmVfc3Rha2WhAjhtaW5fY29tbWlzc2lvbu0CUG1heF92YWxpZGF0b3JzX2NvdW507QJQbWF4X25vbWluYXRvcnNfY291bnTtAixjdXJyZW50X2VyYe0CKGFjdGl2ZV9lcmHRCSRmb3JjZV9lcmHVCUhtYXhfc3Rha2VkX3Jld2FyZHPtAlRzbGFzaF9yZXdhcmRfZnJhY3Rpb27tAlRjYW5jZWxlZF9zbGFzaF9wYXlvdXShAlxjdXJyZW50X3BsYW5uZWRfc2Vzc2lvbu0CPGNoaWxsX3RocmVzaG9sZO0CABAUc3Rhc2gAFHRvdGFsCBhhY3RpdmUIJHVubG9ja2luZ9UHAAwcdGFyZ2V0c+UBMHN1Ym1pdHRlZF9pbgQoc3VwcHJlc3NlZBQAEBR0b3RhbAgMb3duCDxub21pbmF0b3JfY291bnQEKHBhZ2VfY291bnQEAAgMd2hvABR2YWx1ZQgE6QkAAAgocGFnZV90b3RhbAgYb3RoZXJz7QkACBR0b3RhbAQoaW5kaXZpZHVhbMUGABQkdmFsaWRhdG9yAAxvd24IGG90aGVyc+EGJHJlcG9ydGVyc+UBGHBheW91dAgCSBhWYWx1ZXMB2Qk0SW52dWxuZXJhYmxlcwHlARhCb25kZWQAAAgUc3Rhc2gAKGNvbnRyb2xsZXIAGExlZGdlcgAACChjb250cm9sbGVyABhsZWRnZXLdCRRQYXllZQAACBRzdGFzaAAccGF5bWVudM0DKFZhbGlkYXRvcnMAAAgUc3Rhc2gAKHZhbGlkYXRvcnPRAyhOb21pbmF0b3JzAAAIFHN0YXNoACxub21pbmF0aW9uc+EJOFZpcnR1YWxTdGFrZXJzAQBMRXJhc1N0YWtlcnNPdmVydmlldwAADAxlcmEEJHZhbGlkYXRvcgAgZXhwb3N1cmXlCUBFcmFzU3Rha2Vyc1BhZ2VkAAAQDGVyYQQkdmFsaWRhdG9yABBwYWdlBCBleHBvc3VyZfEJOENsYWltZWRSZXdhcmRzAAAMDGVyYQQkdmFsaWRhdG9yABxyZXdhcmRz6QJIRXJhc1ZhbGlkYXRvclByZWZzAAAMDGVyYQQkdmFsaWRhdG9yABRwcmVmc9EDTEVyYXNWYWxpZGF0b3JSZXdhcmQAAAgMZXJhBBhyZXdhcmQIQEVyYXNSZXdhcmRQb2ludHMAAAgMZXJhBBhwb2ludHP1CThFcmFzVG90YWxTdGFrZQAACAxlcmEELHRvdGFsX3N0YWtlCEBVbmFwcGxpZWRTbGFzaGVzAAAIDGVyYQQUc2xhc2j5CShCb25kZWRFcmFzAREETFZhbGlkYXRvclNsYXNoSW5FcmEAAAwMZXJhBCR2YWxpZGF0b3IAFHNsYXNocQgE/QkAAnxAcmVjZWl2ZV9hY2NvdW50cwAABCBhY2NvdW50cyEIRHJlY2VpdmVfbXVsdGlzaWdzAAAEIGFjY291bnRzKQhUcmVjZWl2ZV9wcm94eV9wcm94aWVzAAAEHHByb3hpZXM9CGxyZWNlaXZlX3Byb3h5X2Fubm91bmNlbWVudHMAAAQ0YW5ub3VuY2VtZW50c0UIXHJlY2VpdmVfcHJlaW1hZ2VfY2h1bmtzAAAEGGNodW5rc00IfHJlY2VpdmVfcHJlaW1hZ2VfcmVxdWVzdF9zdGF0dXMAAAQ4cmVxdWVzdF9zdGF0dXNhCHhyZWNlaXZlX3ByZWltYWdlX2xlZ2FjeV9zdGF0dXMAAAQ0bGVnYWN5X3N0YXR1c2kIaHJlY2VpdmVfbm9tX3Bvb2xzX21lc3NhZ2VzAAAEIG1lc3NhZ2VzvQhkcmVjZWl2ZV92ZXN0aW5nX3NjaGVkdWxlcwAABCRzY2hlZHVsZXPJCGByZWNlaXZlX3JlZmVyZW5kYV92YWx1ZXMAAAQYdmFsdWVz2QhMcmVjZWl2ZV9yZWZlcmVuZHVtcwAABCxyZWZlcmVuZHVtcwUJOHJlY2VpdmVfY2xhaW1zAAAEIG1lc3NhZ2VzGQlocmVjZWl2ZV9iYWdzX2xpc3RfbWVzc2FnZXMAAAQgbWVzc2FnZXMpCWhyZWNlaXZlX3NjaGVkdWxlcl9tZXNzYWdlcwAABCBtZXNzYWdlczkJPHJlY2VpdmVfaW5kaWNlcwAABBxpbmRpY2VzQQmIcmVjZWl2ZV9jb252aWN0aW9uX3ZvdGluZ19tZXNzYWdlcwAABCBtZXNzYWdlc2EJZHJlY2VpdmVfYm91bnRpZXNfbWVzc2FnZXMAAAQgbWVzc2FnZXN1CUxyZWNlaXZlX2Fzc2V0X3JhdGVzAAAEFHJhdGVzfQlocmVjZWl2ZV9jcm93ZGxvYW5fbWVzc2FnZXMAAAQgbWVzc2FnZXOFCWhyZWNlaXZlX3JlZmVyZW5kYV9tZXRhZGF0YQAABCBtZXRhZGF0YZ0EZHJlY2VpdmVfdHJlYXN1cnlfbWVzc2FnZXMAAAQgbWVzc2FnZXOdCYRyZWNlaXZlX3NjaGVkdWxlcl9hZ2VuZGFfbWVzc2FnZXMAAAQgbWVzc2FnZXOxCYhyZWNlaXZlX2RlbGVnYXRlZF9zdGFraW5nX21lc3NhZ2VzAAAEIG1lc3NhZ2VzuQl8cmVjZWl2ZV9jaGlsZF9ib3VudGllc19tZXNzYWdlcwAABCBtZXNzYWdlc8kJYHJlY2VpdmVfc3Rha2luZ19tZXNzYWdlcwAABCBtZXNzYWdlcwEKPGZvcmNlX3NldF9zdGFnZQAABBRzdGFnZfUDPHN0YXJ0X21pZ3JhdGlvbgABBVhzZXRfZG1wX3F1ZXVlX3ByaW9yaXR5AAAEDG5ld/0DLHNldF9tYW5hZ2VyAAAEDG5ld/ECQGZpbmlzaF9taWdyYXRpb24AAAgQZGF0YaECPGNvb2xfb2ZmX2VuZF9hdARAc2VuZF94Y21fbWVzc2FnZQAACBBkZXN0nQIcbWVzc2FnZd0FAsgYU3lzdGVtASkFPFBhcmFjaGFpblN5c3RlbQEtBSRUaW1lc3RhbXABMQU0UGFyYWNoYWluSW5mbwElASBQcmVpbWFnZQE1BSRTY2hlZHVsZXIBOQUoUGFyYW1ldGVycwFRBVBNdWx0aUJsb2NrTWlncmF0aW9ucwFlBSBCYWxhbmNlcwFxBRxWZXN0aW5nAXkFGENsYWltcwGRBURDb2xsYXRvclNlbGVjdGlvbgGVBRxTZXNzaW9uAZkFJFhjbXBRdWV1ZQGdBSxQb2xrYWRvdFhjbQHpBShDdW11bHVzWGNtASUBRFRvS3VzYW1hWGNtUm91dGVyAe0FME1lc3NhZ2VRdWV1ZQHxBWBTbm93YnJpZGdlU3lzdGVtRnJvbnRlbmQB/QUcVXRpbGl0eQEFBiBNdWx0aXNpZwENBhRQcm94eQEVBhxJbmRpY2VzARkGGEFzc2V0cwEdBhxVbmlxdWVzASkGEE5mdHMBXQY0Rm9yZWlnbkFzc2V0cwFhBihQb29sQXNzZXRzAR0GPEFzc2V0Q29udmVyc2lvbgFpBiBUcmVhc3VyeQFtBkBDb252aWN0aW9uVm90aW5nAXUGJFJlZmVyZW5kYQF9BiRXaGl0ZWxpc3QBgQYgQm91bnRpZXMBhQY0Q2hpbGRCb3VudGllcwGJBiRBc3NldFJhdGUBjQZITXVsdGlBc3NldEJvdW50aWVzAZEGSFN0YXRlVHJpZU1pZ3JhdGlvbgGlBjxOb21pbmF0aW9uUG9vbHMBuQYkVm90ZXJMaXN0Ab0GPFN0YWtpbmdSY0NsaWVudAHZBkhNdWx0aUJsb2NrRWxlY3Rpb24B9QZoTXVsdGlCbG9ja0VsZWN0aW9uVmVyaWZpZXIBJQFoTXVsdGlCbG9ja0VsZWN0aW9uVW5zaWduZWQBvQdgTXVsdGlCbG9ja0VsZWN0aW9uU2lnbmVkAcUHHFN0YWtpbmcB4QcYUmV2aXZlAekHEFN1ZG8B7QcUQWhPcHMB8QcoQWhNaWdyYXRvcgEFCgAICGlkAQIYYW1vdW50CAQNCgAACAhpZI0BGGFtb3VudAgEFQoAAggkVjFBbmNpZW50AAEFCFYyAAEFAggIVjAAAQUIVjEAAQUACAx3aG8AHGRlcG9zaXQIBCUKAAMIACAELQoAAwgoJAIICE9rAAEFJFN1c3BlbmRlZAABBQAUJHJlY2lwaWVudAQUc3RhdGU5CjRzaWduYWxzX2V4aXN0FCxmaXJzdF9pbmRleAQobGFzdF9pbmRleAQEPQoAAAxEc3VzcGVuZF90aHJlc2hvbGQEOGRyb3BfdGhyZXNob2xkBEByZXN1bWVfdGhyZXNob2xkBAadAgUBCAZNCgIMCFYzAa0FCFY0AckFCFY1AS0CAgwcUGVuZGluZwAAECRyZXNwb25kZXKdAkxtYXliZV9tYXRjaF9xdWVyaWVySQowbWF5YmVfbm90aWZ5UQocdGltZW91dAQ8VmVyc2lvbk5vdGlmaWVyAAAIGG9yaWdpbp0CJGlzX2FjdGl2ZRQUUmVhZHkAAAggcmVzcG9uc2VVCghhdAQDCASdAgMMCBgEAwidAgQEZQoAAhBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAQVcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQVQTm90aWZ5Q3VycmVudFRhcmdldHMBXQFoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAQUDDAQA5QUDCCUBCAR1CgAAEBhhbW91bnQIFG93bmVynQIYbG9ja2VynQIkY29uc3VtZXJzeQoDCAidAgSBCgAACCBsb2NhdGlvbp0CGGV4cGlyeaECBIkKAAAIIGFsaWFzZXJzjQoYdGlja2V0CAAITGRlbGl2ZXJ5X2ZlZV9mYWN0b3IIMGlzX2Nvbmdlc3RlZBQACBBwcmV2sQIQbmV4dLECBpkKABgUYmVnaW4EDGVuZAQUY291bnQEQHJlYWR5X25laWdoYm91cnOdCjRtZXNzYWdlX2NvdW50CBBzaXplCAMIsQIEABgkcmVtYWluaW5nBDhyZW1haW5pbmdfc2l6ZQQsZmlyc3RfaW5kZXgEFGZpcnN0BBBsYXN0BBBoZWFwJAAQEHdoZW7JAhxkZXBvc2l0CCRkZXBvc2l0b3IAJGFwcHJvdmFsc+UBAAwgZGVsZWdhdGUAKHByb3h5X3R5cGXRAhRkZWxheQQEsQoAAwi1CggADBByZWFsACRjYWxsX2hhc2ggGGhlaWdodAQEvQoAAwjBCggDDAAIFAIMEExpdmUAAQUYRnJvemVuAAEFKERlc3Ryb3lpbmcAAQUAMBRvd25lcgAYaXNzdWVyABRhZG1pbgAcZnJlZXplcgAYc3VwcGx5CBxkZXBvc2l0CCxtaW5fYmFsYW5jZQg0aXNfc3VmZmljaWVudBQgYWNjb3VudHMELHN1ZmZpY2llbnRzBCRhcHByb3ZhbHMEGHN0YXR1c80KAgwYTGlxdWlkAAEFGEZyb3plbgABBRxCbG9ja2VkAAEFAhQgQ29uc3VtZXIAAQUoU3VmZmljaWVudAABBSxEZXBvc2l0SGVsZAEIPERlcG9zaXRSZWZ1bmRlZAABBSxEZXBvc2l0RnJvbQADCAAIAAwcYmFsYW5jZQgYc3RhdHVz1QoYcmVhc29u2QoDDAQAAAAIGGFtb3VudAgcZGVwb3NpdAgAFBxkZXBvc2l0CBBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UBtEKBukKACgUb3duZXIAGGlzc3VlcgAUYWRtaW4AHGZyZWV6ZXIANHRvdGFsX2RlcG9zaXQIMGZyZWVfaG9sZGluZxQUaXRlbXMEOGl0ZW1fbWV0YWRhdGFzBChhdHRyaWJ1dGVzBCRpc19mcm96ZW4UABAUb3duZXIAIGFwcHJvdmVk8QIkaXNfZnJvemVuFBxkZXBvc2l0CAAMHGRlcG9zaXQIEGRhdGEkJGlzX2Zyb3plbhQDDATtAiQDCCQIAwgI8QIAGBRvd25lcgA0b3duZXJfZGVwb3NpdAgUaXRlbXMEOGl0ZW1fbWV0YWRhdGFzBDBpdGVtX2NvbmZpZ3MEKGF0dHJpYnV0ZXMEAwgA7QIEEQsAAAgcYWNjb3VudAAYYW1vdW50CAAMFG93bmVyACRhcHByb3ZhbHMVCxxkZXBvc2l0GQsACBxkZXBvc2l0CBBkYXRhJAAIHGFjY291bnTxAhhhbW91bnQIAAgcZGVwb3NpdCULEGRhdGEkAxAE7QL5AiQDCCQlCwAQSGRlc2lyZWRfY29sbGVjdGlvbgQwZGVzaXJlZF9pdGVt7QIUcHJpY2UFAyBkZWFkbGluZQQDCNUBAAMM1QEAAAQIAQgHQQucABgoYXNzZXRfa2luZC0DGGFtb3VudAgsYmVuZWZpY2lhcnkxAyh2YWxpZF9mcm9tBCRleHBpcmVfYXQEGHN0YXR1c5EJACwUdHJhY2sEGG9yaWdpbhUFIHByb3Bvc2FsQQMkZW5hY3RtZW50eQYkc3VibWl0dGVkBEhzdWJtaXNzaW9uX2RlcG9zaXThCEBkZWNpc2lvbl9kZXBvc2l05QggZGVjaWRpbmftCBR0YWxseUUDIGluX3F1ZXVlFBRhbGFybfUIAhgcT25nb2luZwFNCyBBcHByb3ZlZAADDATlCOUIIFJlamVjdGVkAAMMBOUI5QgkQ2FuY2VsbGVkAAMMBOUI5QggVGltZWRPdXQAAwwE5QjlCBhLaWxsZWQBBAIMQExpbmVhckRlY3JlYXNpbmcAAAwYbGVuZ3RoBBRmbG9vcgQQY2VpbAREU3RlcHBlZERlY3JlYXNpbmcAABAUYmVnaW4EDGVuZAQQc3RlcAQYcGVyaW9kBChSZWNpcHJvY2FsAAAMGGZhY3RvcgggeF9vZmZzZXQIIHlfb2Zmc2V0CAAkEG5hbWUVBDBtYXhfZGVjaWRpbmcEQGRlY2lzaW9uX2RlcG9zaXQIOHByZXBhcmVfcGVyaW9kBDxkZWNpc2lvbl9wZXJpb2QEOGNvbmZpcm1fcGVyaW9kBFBtaW5fZW5hY3RtZW50X3BlcmlvZAQwbWluX2FwcHJvdmFsVQssbWluX3N1cHBvcnRVCwMIBFkLBF0LAAIQHFBlbmRpbmcAAQUkQXR0ZW1wdGVkAAAECGlkCBhGYWlsZWQAAQUkU3VjY2VlZGVkAAEFAhhARnVuZGluZ0F0dGVtcHRlZAAACBxjdXJhdG9yADhwYXltZW50X3N0YXR1c2ULGEZ1bmRlZAAABBxjdXJhdG9yAERDdXJhdG9yVW5hc3NpZ25lZAABBRhBY3RpdmUAAAQcY3VyYXRvcgA8UmVmdW5kQXR0ZW1wdGVkAAAIHGN1cmF0b3LxAjhwYXltZW50X3N0YXR1c2ULPFBheW91dEF0dGVtcHRlZAAADBxjdXJhdG9yACxiZW5lZmljaWFyeTEDOHBheW1lbnRfc3RhdHVzZQsAEChhc3NldF9raW5kLQMUdmFsdWUIIG1ldGFkYXRhIBhzdGF0dXNpCwAQNHBhcmVudF9ib3VudHkEFHZhbHVlCCBtZXRhZGF0YSAYc3RhdHVzaQsDCATtAgAIEGhlYWTxAhB0YWls8QIECAAEoQIBCAAIFGFnZW50ABhhbW91bnQIABAUcGF5ZWUAPHRvdGFsX2RlbGVnYXRlZAhUdW5jbGFpbWVkX3dpdGhkcmF3YWxzCDRwZW5kaW5nX3NsYXNoCAAQRG5ld192YWxpZGF0b3Jfc2V05QEIaWQELHBydW5lX3VwX3Rv7QIgbGVmdG92ZXIUAwiNCwQDDAAI5QEElQsAAggEWAABBQRZAAEFAAgUdG90YWwIHGJhY2tlcnMEAwgAoQsEpQsAAggcT25nb2luZwEEHE5vdGhpbmcAAQUDCAC9AwSxCwADDAQABAQUAAAUHGRlcG9zaXQIDGZlZQgYcmV3YXJkCDRjbGFpbWVkX3Njb3JlvQMUcGFnZXO9CwAUIHJlcG9ydGVy8QIwcmVwb3J0ZWRfZXJhBDRleHBvc3VyZV9wYWdlBDhzbGFzaF9mcmFjdGlvbgRQcHJpb3Jfc2xhc2hfZnJhY3Rpb24EAwwEAMULAwgE3QcAFCR2YWxpZGF0b3IADG93bggYb3RoZXJz4QYgcmVwb3J0ZXLxAhhwYXlvdXQIAgwcT25nb2luZwEAIENvbnN1bWVkAAEFHFdhaXRpbmcAAQUCIEBFcmFzU3Rha2Vyc1BhZ2VkAAEFTEVyYXNTdGFrZXJzT3ZlcnZpZXcAAQVIRXJhc1ZhbGlkYXRvclByZWZzAAEFOENsYWltZWRSZXdhcmRzAAEFTEVyYXNWYWxpZGF0b3JSZXdhcmQAAQVARXJhc1Jld2FyZFBvaW50cwABBUxTaW5nbGVFbnRyeUNsZWFudXBzAAEFTFZhbGlkYXRvclNsYXNoSW5FcmEAAQUCCAxQdm0AAQUMRXZtAAEFABgUb3duZXIAHGRlcG9zaXQIIHJlZmNvdW50CCBjb2RlX2xlbgQkY29kZV90eXBl3QtEYmVoYXZpb3VyX3ZlcnNpb24EACAcdHJpZV9pZCQkY29kZV9oYXNoIDRzdG9yYWdlX2J5dGVzBDRzdG9yYWdlX2l0ZW1zBFBzdG9yYWdlX2J5dGVfZGVwb3NpdAhQc3RvcmFnZV9pdGVtX2RlcG9zaXQIUHN0b3JhZ2VfYmFzZV9kZXBvc2l0CEhpbW11dGFibGVfZGF0YV9sZW4EAgggQ29udHJhY3QB5QsMRU9BAAEFAAgwYWNjb3VudF90eXBl6QsQZHVzdAQACDhpbnNlcnRfY291bnRlcgQ4ZGVsZXRlX2NvdW50ZXIEBQEBBAblBwAIHGFkZHJlc3OlATBzdG9yYWdlX2tleXPlAwT9CwAAGCBjaGFpbl9pZOUHHGFkZHJlc3OlARRub25jZeUHIHlfcGFyaXR55QcEcuUHBHPlBwQFDAAAMCxhY2Nlc3NfbGlzdAEMSGF1dGhvcml6YXRpb25fbGlzdAkMIGNoYWluX2lk5QcMZ2Fz5QckZ2FzX3ByaWNl5QcUaW5wdXQkPG1heF9mZWVfcGVyX2dhc+UHYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UHFG5vbmNl5QcIdG+lARhyI3R5cGUEFHZhbHVl5QcAFGR0cmFuc2FjdGlvbl83NzAyX3Vuc2lnbmVkDQwEcuUHBHPlBwR2+QsgeV9wYXJpdHnlBwAwLGFjY2Vzc19saXN0AQxUYmxvYl92ZXJzaW9uZWRfaGFzaGVz5QMgY2hhaW5faWTlBwxnYXPlBxRpbnB1dCRQbWF4X2ZlZV9wZXJfYmxvYl9nYXPlBzxtYXhfZmVlX3Blcl9nYXPlB2BtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPlBxRub25jZeUHCHRvpQEYciN0eXBlBBR2YWx1ZeUHABBkdHJhbnNhY3Rpb25fNDg0NF91bnNpZ25lZBUMBHLlBwRz5QcgeV9wYXJpdHnlBwalAQAsLGFjY2Vzc19saXN0AQwgY2hhaW5faWTlBwxnYXPlByRnYXNfcHJpY2XlBxRpbnB1dCQ8bWF4X2ZlZV9wZXJfZ2Fz5QdgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QcUbm9uY2XlBwh0bx0MGHIjdHlwZQQUdmFsdWXlBwAUZHRyYW5zYWN0aW9uXzE1NTlfdW5zaWduZWQhDARy5QcEc+UHBHb5CyB5X3Bhcml0eeUHACQsYWNjZXNzX2xpc3QBDCBjaGFpbl9pZOUHDGdhc+UHJGdhc19wcmljZeUHFGlucHV0JBRub25jZeUHCHRvHQwYciN0eXBlBBR2YWx1ZeUHABRkdHJhbnNhY3Rpb25fMjkzMF91bnNpZ25lZCkMBHLlBwRz5QcEdvkLIHlfcGFyaXR55QcAICBjaGFpbl9pZPkLDGdhc+UHJGdhc19wcmljZeUHFGlucHV0JBRub25jZeUHCHRvHQwYciN0eXBlBBR2YWx1ZeUHABBsdHJhbnNhY3Rpb25fbGVnYWN5X3Vuc2lnbmVkMQwEcuUHBHPlBwR25QcCFFRUcmFuc2FjdGlvbjc3MDJTaWduZWQBEQxUVHJhbnNhY3Rpb240ODQ0U2lnbmVkARkMVFRyYW5zYWN0aW9uMTU1OVNpZ25lZAElDFRUcmFuc2FjdGlvbjI5MzBTaWduZWQBLQxcVHJhbnNhY3Rpb25MZWdhY3lTaWduZWQBNQwAGChibG9ja19oYXNoIDBibG9ja19udW1iZXLlBxBmcm9tpQEQaGFzaCBEdHJhbnNhY3Rpb25faW5kZXjlB0h0cmFuc2FjdGlvbl9zaWduZWQ5DAQ9DAACCBhIYXNoZXMB5QNAVHJhbnNhY3Rpb25JbmZvcwFBDAAQHGFkZHJlc3OlARhhbW91bnTlBxRpbmRleOUHPHZhbGlkYXRvcl9pbmRleOUHBEkMAABsQGJhc2VfZmVlX3Blcl9nYXPlBzRibG9iX2dhc191c2Vk5QcoZGlmZmljdWx0eeUHPGV4Y2Vzc19ibG9iX2dhc+UHKGV4dHJhX2RhdGEkJGdhc19saW1pdOUHIGdhc191c2Vk5QcQaGFzaCAobG9nc19ibG9vbfULFG1pbmVypQEgbWl4X2hhc2ggFG5vbmNlAQIYbnVtYmVy5QdgcGFyZW50X2JlYWNvbl9ibG9ja19yb290FQEscGFyZW50X2hhc2ggNHJlY2VpcHRzX3Jvb3QgNHJlcXVlc3RzX2hhc2gVATBzaGFfM191bmNsZXMgEHNpemXlByhzdGF0ZV9yb290ICR0aW1lc3RhbXDlB0B0b3RhbF9kaWZmaWN1bHR5+QswdHJhbnNhY3Rpb25zRQxEdHJhbnNhY3Rpb25zX3Jvb3QgGHVuY2xlc+UDLHdpdGhkcmF3YWxzTQxAd2l0aGRyYXdhbHNfcm9vdCAACCBnYXNfdXNlZOUHTGVmZmVjdGl2ZV9nYXNfcHJpY2XlBwRVDAAAKAxrZXkkKHZhbHVlX3R5cGUENGJ1aWxkZXJfdmFsdWUkFHN0YWNrSQQsc3RhdGVfbWFza3PpAih0cmVlX21hc2tz6QIoaGFzaF9tYXNrc+kCSHN0b3JlZF9pbl9kYXRhYmFzZRQccmxwX2J1ZiQUaW5kZXgIACBgdHJhbnNhY3Rpb25fcm9vdF9idWlsZGVyXQxUcmVjZWlwdHNfcm9vdF9idWlsZGVyXQxAYmFzZV9mZWVfcGVyX2dhc+UHPGJsb2NrX2dhc19saW1pdOUHIGdhc191c2Vk5QcobG9nc19ibG9vbfULJHR4X2hhc2hlc+UDIGdhc19pbmZvWQwGQQQADHRhbGxvd191bmxpbWl0ZWRfY29udHJhY3Rfc2l6ZRQ8YnlwYXNzX2VpcF8zNjA3FCBwdm1fbG9ncxQDDAQEAAAIQGNoZWNraW5nX2FjY291bnQIOHRvdGFsX2lzc3VhbmNlCAAIGGhlYWRlcq0EKGV4dHJpbnNpY3NJBAIINEFsbEV4dHJpbnNpY3MAAQU0T25seUluaGVyZW50cwABBQI0EENhbGwAAQUcUGF5bWVudAABBRhGdXR1cmUAAQUUU3RhbGUAAQUgQmFkUHJvb2YAAQVEQW5jaWVudEJpcnRoQmxvY2sAAQVERXhoYXVzdHNSZXNvdXJjZXMAAQUYQ3VzdG9tAQQwQmFkTWFuZGF0b3J5AAEFTE1hbmRhdG9yeVZhbGlkYXRpb24AAQUkQmFkU2lnbmVyAAEFVEluZGV0ZXJtaW5hdGVJbXBsaWNpdAABBTRVbmtub3duT3JpZ2luAAEFAgwwQ2Fubm90TG9va3VwAAEFTE5vVW5zaWduZWRWYWxpZGF0b3IAAQUYQ3VzdG9tAQQCCBxJbnZhbGlkAX0MHFVua25vd24BgQwHKQGFDAMIAQIkBI0MAAAMEG9rYXkULGZhdGFsX2Vycm9yFBhlcnJvcnORDAIMHEluQmxvY2sAAQUUTG9jYWwAAQUgRXh0ZXJuYWwAAQUAFCBwcmlvcml0eQggcmVxdWlyZXNJBCBwcm92aWRlc0kEJGxvbmdldml0eQgkcHJvcGFnYXRlFAedDIUMAwgkKASlDAAGqQwACBhwcmVmaXgFAhhzdWZmaXgFAgIMOE5vdEltcGxlbWVudGVkAAEFIE5vdEZvdW5kAbEMFENvZGVjAAEFByS1DAAMGHdlaWdodBgUY2xhc3M4LHBhcnRpYWxfZmVlCAAMIGJhc2VfZmVlCBxsZW5fZmVlCExhZGp1c3RlZF93ZWlnaHRfZmVlCAbBDAAINGluY2x1c2lvbl9mZWXFDAx0aXAIBOUFAAIYNFVuaW1wbGVtZW50ZWQAAQVkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABBUxXZWlnaHROb3RDb21wdXRhYmxlAAEFTFVuaGFuZGxlZFhjbVZlcnNpb24AAQU0QXNzZXROb3RGb3VuZAABBShVbnJvdXRhYmxlAAEFB80M0QwHGNEMBwjRDAeZAtEMBAUEAAbdBQTdBQADCJ0C7QwE8QwAABBAZXhlY3V0aW9uX3Jlc3VsdFUDOGVtaXR0ZWRfZXZlbnRz5QwkbG9jYWxfeGNt6Qw4Zm9yd2FyZGVkX3hjbXP1DAIINFVuaW1wbGVtZW50ZWQAAQVkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABBQf5DP0MAAxAZXhlY3V0aW9uX3Jlc3VsdP0BOGVtaXR0ZWRfZXZlbnRz5Qw4Zm9yd2FyZGVkX3hjbXP1DAcFDf0MAggsVW5zdXBwb3J0ZWQAAQVkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABBQcADQ0CDAhWMwGJAghWNAGRAghWNQERAgIIeFZlcnNpb25lZEFzc2V0Q29udmVyc2lvbkZhaWxlZAABBYRWZXJzaW9uZWRMb2NhdGlvbkNvbnZlcnNpb25GYWlsZWQAAQUHFBkNAgR8TG9jYXRpb25WZXJzaW9uQ29udmVyc2lvbkZhaWxlZAABBQeNCiENBxQhDQIIXEFzc2V0SWRDb252ZXJzaW9uRmFpbGVkAAEFfEFtb3VudFRvQmFsYW5jZUNvbnZlcnNpb25GYWlsZWQAAQUHmQItDQAYPHVwd2FyZF9tZXNzYWdlc0kETGhvcml6b250YWxfbWVzc2FnZXOpBExuZXdfdmFsaWRhdGlvbl9jb2RlXQFscHJvY2Vzc2VkX2Rvd253YXJkX21lc3NhZ2VzBDhocm1wX3dhdGVybWFyawQkaGVhZF9kYXRhJAclARUEBhUEBBUEAAZBCwQAAQgACCBpc3N1YW5jZQgkbmV4dF9taW50QQsCCBhSZWZ1bmQBCBhDaGFyZ2UBCAAIFGZsYWdzBBBkYXRhJAdVDQ0BABg8d2VpZ2h0X2NvbnN1bWVkGDx3ZWlnaHRfcmVxdWlyZWQYPHN0b3JhZ2VfZGVwb3NpdFENTG1heF9zdG9yYWdlX2RlcG9zaXRRDTBnYXNfY29uc3VtZWQIGHJlc3VsdFkNAggYVXBsb2FkASQgRXhpc3RpbmcBIAAIGHJlc3VsdFUNEGFkZHKlAQdlDQ0BABg8d2VpZ2h0X2NvbnN1bWVkGDx3ZWlnaHRfcmVxdWlyZWQYPHN0b3JhZ2VfZGVwb3NpdFENTG1heF9zdG9yYWdlX2RlcG9zaXRRDTBnYXNfY29uc3VtZWQIGHJlc3VsdGkNBgEMAAgUaW5wdXRdARBkYXRhXQEAQCxhY2Nlc3NfbGlzdHENSGF1dGhvcml6YXRpb25fbGlzdAkMVGJsb2JfdmVyc2lvbmVkX2hhc2hlc+UDFGJsb2JzSQQgY2hhaW5faWT5CxBmcm9tHQwMZ2Fz+QskZ2FzX3ByaWNl+QsUaW5wdXR1DVBtYXhfZmVlX3Blcl9ibG9iX2dhc/kLPG1heF9mZWVfcGVyX2dhc/kLYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc/kLFG5vbmNl+QsIdG8dDBhyI3R5cGXtAhR2YWx1ZfkLABQ8d2VpZ2h0X3JlcXVpcmVkGDxzdG9yYWdlX2RlcG9zaXQITG1heF9zdG9yYWdlX2RlcG9zaXQIHGV0aF9nYXPlBxBkYXRhJAIIEERhdGEBJBxNZXNzYWdlARUEB30NgQ0ACEh0aW1lc3RhbXBfb3ZlcnJpZGWhAiByZXNlcnZlZBQACCRjb2RlX2hhc2ggHGRlcG9zaXQIB40NDQECDCxEb2VzbnRFeGlzdAABBURLZXlEZWNvZGluZ0ZhaWxlZAABBUhTdG9yYWdlV3JpdGVGYWlsZWQBDQEHXQGVDQAIJHdpdGhfbG9ncxQ0b25seV90b3BfY2FsbBQGnQ0ADCRkaWZmX21vZGUUPGRpc2FibGVfc3RvcmFnZRQwZGlzYWJsZV9jb2RlFAalDQIIKENhbGxUcmFjZXIBoQ04UHJlc3RhdGVUcmFjZXIBqQ0EwQ0AABAcYWRkcmVzc6UBGHRvcGljc+UDEGRhdGEkIHBvc2l0aW9uBAS1DQACGBBDYWxsAAEFKFN0YXRpY0NhbGwAAQUwRGVsZWdhdGVDYWxsAAEFGENyZWF0ZQABBRxDcmVhdGUyAAEFMFNlbGZkZXN0cnVjdAABBQA0EGZyb22lAQxnYXPlByBnYXNfdXNlZOUHCHRvpQEUaW5wdXQkGG91dHB1dCQUZXJyb3I9DTRyZXZlcnRfcmVhc29uPQ0UY2FsbHOxDRBsb2dzuQ0UdmFsdWX5CyRjYWxsX3R5cGW9DUBjaGlsZF9jYWxsX2NvdW50BAMIJF0BBMUNAAAQHGJhbGFuY2X5CxRub25jZe0CEGNvZGVdARxzdG9yYWdlyQ0DCKUBzQ0E0Q0AAgggUHJlc3RhdGUB1Q0gRGlmZk1vZGUAAAgMcHJl1Q0QcG9zdNUNAggQQ2FsbAHBDSBQcmVzdGF0ZQHZDQMIBN0NBOENAAbdDQfdDYENAggUVmFsdWUAAQUQRHVzdAABBQedA/EN";
|
|
68
|
+
metadataTypes_default = content;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// generated/src/paseo_asset_hub_metadata.ts
|
|
73
|
+
var paseo_asset_hub_metadata_exports = {};
|
|
74
|
+
__export(paseo_asset_hub_metadata_exports, {
|
|
75
|
+
default: () => paseo_asset_hub_metadata_default
|
|
76
|
+
});
|
|
77
|
+
var binMeta, paseo_asset_hub_metadata_default;
|
|
78
|
+
var init_paseo_asset_hub_metadata = __esm({
|
|
79
|
+
"generated/src/paseo_asset_hub_metadata.ts"() {
|
|
80
|
+
"use strict";
|
|
81
|
+
binMeta = "bWV0YRAxEwAMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQQwQWNjb3VudEluZGV4ARABFAhJZAQABAEkQWNjb3VudElkAAAAFEluZGV4BAAUATBBY2NvdW50SW5kZXgAAQAMUmF3BAAYARxWZWM8dTg+AAIAJEFkZHJlc3MzMgQACAEgW3U4OyAzMl0AAwAkQWRkcmVzczIwBAAcASBbdTg7IDIwXQAEAAAEDBxzcF9jb3JlGGNyeXB0byxBY2NvdW50SWQzMgAABAAIASBbdTg7IDMyXQAACAAAAyAAAAAMAAwAAAUDABAAAAQAABQAAAYQABgAAAIMABwAAAMUAAAADAAgCFxhc3NldF9odWJfcGFzZW9fcnVudGltZSxSdW50aW1lQ2FsbAAByBhTeXN0ZW0EACQBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAEQB0QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluU3lzdGVtLCBSdW50aW1lPgABACRUaW1lc3RhbXAEALQBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADADRQYXJhY2hhaW5JbmZvBAC8AckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpbkluZm8sIFJ1bnRpbWU+AAQAIFByZWltYWdlBADAAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgAFACRTY2hlZHVsZXIEAMgBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NoZWR1bGVyLCBSdW50aW1lPgAGAChQYXJhbWV0ZXJzBADUAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFtZXRlcnMsIFJ1bnRpbWU+AAcAUE11bHRpQmxvY2tNaWdyYXRpb25zBAApAQHlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aUJsb2NrTWlncmF0aW9ucywgUnVudGltZT4ACAAgQmFsYW5jZXMEAFEBAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJhbGFuY2VzLCBSdW50aW1lPgAKABxWZXN0aW5nBABpAQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWZXN0aW5nLCBSdW50aW1lPgAOABhDbGFpbXMEAHEBAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENsYWltcywgUnVudGltZT4ADwBEQ29sbGF0b3JTZWxlY3Rpb24EAJUBAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbGxhdG9yU2VsZWN0aW9uLCBSdW50aW1lPgAVABxTZXNzaW9uBACZAQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgAWACRYY21wUXVldWUEAKUBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbXBRdWV1ZSwgUnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAKkBAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgAfAChDdW11bHVzWGNtBACpAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgAgAERUb0t1c2FtYVhjbVJvdXRlcgQArQMB2QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VG9LdXNhbWFYY21Sb3V0ZXIsIFJ1bnRpbWU+ACIAME1lc3NhZ2VRdWV1ZQQAsQMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TWVzc2FnZVF1ZXVlLCBSdW50aW1lPgAjAGBTbm93YnJpZGdlU3lzdGVtRnJvbnRlbmQEALkDAfUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNub3dicmlkZ2VTeXN0ZW1Gcm9udGVuZCwgUnVudGltZT4AJAAcVXRpbGl0eQQAzQMBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AKAAgTXVsdGlzaWcEAPUDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgApABRQcm94eQQAAQQBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+ACoAHEluZGljZXMEAA0EAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEluZGljZXMsIFJ1bnRpbWU+ACsAGEFzc2V0cwQAEQQBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRzLCBSdW50aW1lPgAyABxVbmlxdWVzBAAdBAGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxVbmlxdWVzLCBSdW50aW1lPgAzABBOZnRzBAA1BAGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxOZnRzLCBSdW50aW1lPgA0ADRGb3JlaWduQXNzZXRzBACVBAHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxGb3JlaWduQXNzZXRzLCBSdW50aW1lPgA1AChQb29sQXNzZXRzBAClBAG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQb29sQXNzZXRzLCBSdW50aW1lPgA2ADxBc3NldENvbnZlcnNpb24EAKkEAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFzc2V0Q29udmVyc2lvbiwgUnVudGltZT4ANwAgVHJlYXN1cnkEALEEAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgA8AEBDb252aWN0aW9uVm90aW5nBAC9BAHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb252aWN0aW9uVm90aW5nLCBSdW50aW1lPgA9ACRSZWZlcmVuZGEEANEEAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVyZW5kYSwgUnVudGltZT4APgAkV2hpdGVsaXN0BADlBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxXaGl0ZWxpc3QsIFJ1bnRpbWU+AEAAIEJvdW50aWVzBADpBAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCb3VudGllcywgUnVudGltZT4AQQA0Q2hpbGRCb3VudGllcwQA7QQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q2hpbGRCb3VudGllcywgUnVudGltZT4AQgAkQXNzZXRSYXRlBADxBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBc3NldFJhdGUsIFJ1bnRpbWU+AEMASE11bHRpQXNzZXRCb3VudGllcwQA+QQB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlBc3NldEJvdW50aWVzLCBSdW50aW1lPgBEAEhTdGF0ZVRyaWVNaWdyYXRpb24EAP0EAd0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN0YXRlVHJpZU1pZ3JhdGlvbiwgUnVudGltZT4ARgA8Tm9taW5hdGlvblBvb2xzBAAVBQHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxOb21pbmF0aW9uUG9vbHMsIFJ1bnRpbWU+AFAAJFZvdGVyTGlzdAQATQUBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Vm90ZXJMaXN0LCBSdW50aW1lPgBSADxTdGFraW5nUmNDbGllbnQEAFEFAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN0YWtpbmdSY0NsaWVudCwgUnVudGltZT4AVABITXVsdGlCbG9ja0VsZWN0aW9uBAB1BQHdAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aUJsb2NrRWxlY3Rpb24sIFJ1bnRpbWU+AFUAaE11bHRpQmxvY2tFbGVjdGlvblZlcmlmaWVyBACpBQH9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aUJsb2NrRWxlY3Rpb25WZXJpZmllciwgUnVudGltZT4AVgBoTXVsdGlCbG9ja0VsZWN0aW9uVW5zaWduZWQEAK0FAf0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tFbGVjdGlvblVuc2lnbmVkLCBSdW50aW1lPgBXAGBNdWx0aUJsb2NrRWxlY3Rpb25TaWduZWQEAIUGAfUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tFbGVjdGlvblNpZ25lZCwgUnVudGltZT4AWAAcU3Rha2luZwQAjQYBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3Rha2luZywgUnVudGltZT4AWQAYUmV2aXZlBADZBgGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZXZpdmUsIFJ1bnRpbWU+AGQAEFN1ZG8EAO0GAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN1ZG8sIFJ1bnRpbWU+APsAFEFoT3BzBADxBgGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBaE9wcywgUnVudGltZT4A/gAoQWhNaWdyYXRvcgQA+QYBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QWhNaWdyYXRvciwgUnVudGltZT4A/wAAJAwwZnJhbWVfc3lzdGVtGHBhbGxldBBDYWxsBARUAAEwGHJlbWFyawQBGHJlbWFyaxgBHFZlYzx1OD4AAAxoTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyay4AiENhbiBiZSBleGVjdXRlZCBieSBldmVyeSBgb3JpZ2luYC44c2V0X2hlYXBfcGFnZXMEARRwYWdlcygBDHU2NAABBPhTZXQgdGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgV2ViQXNzZW1ibHkgZW52aXJvbm1lbnQncyBoZWFwLiBzZXRfY29kZQQBEGNvZGUYARxWZWM8dTg+AAIEZFNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZS5cc2V0X2NvZGVfd2l0aG91dF9jaGVja3MEARBjb2RlGAEcVmVjPHU4PgADEBkBU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlIHdpdGhvdXQgZG9pbmcgYW55IGNoZWNrcyBvZiB0aGUgZ2l2ZW4gYGNvZGVgLgBRAU5vdGUgdGhhdCBydW50aW1lIHVwZ3JhZGVzIHdpbGwgbm90IHJ1biBpZiB0aGlzIGlzIGNhbGxlZCB3aXRoIGEgbm90LWluY3JlYXNpbmcgc3BlYyB2ZXJzaW9uISxzZXRfc3RvcmFnZQQBFGl0ZW1zLAE0VmVjPEtleVZhbHVlPgAEBGhTZXQgc29tZSBpdGVtcyBvZiBzdG9yYWdlLjBraWxsX3N0b3JhZ2UEARBrZXlzNAEgVmVjPEtleT4ABQR0S2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4sa2lsbF9wcmVmaXgIARhwcmVmaXgYAQxLZXkAARxzdWJrZXlzOAEMdTMyAAYQEQFLaWxsIGFsbCBzdG9yYWdlIGl0ZW1zIHdpdGggYSBrZXkgdGhhdCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LgA5ASoqTk9URToqKiBXZSByZWx5IG9uIHRoZSBSb290IG9yaWdpbiB0byBwcm92aWRlIHVzIHRoZSBudW1iZXIgb2Ygc3Via2V5cyB1bmRlcj0BdGhlIHByZWZpeCB3ZSBhcmUgcmVtb3ZpbmcgdG8gYWNjdXJhdGVseSBjYWxjdWxhdGUgdGhlIHdlaWdodCBvZiB0aGlzIGZ1bmN0aW9uLkRyZW1hcmtfd2l0aF9ldmVudAQBGHJlbWFyaxgBHFZlYzx1OD4ABwSkTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyayBhbmQgZW1pdCBldmVudC4cZG9fdGFzawQBEHRhc2s8AThUOjpSdW50aW1lVGFzawAIAERhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaEABHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoQAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlGAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLigAAAUGACwAAAIwADAAAAQIGBgANAAAAhgAOAAABQUAPAhcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWUsUnVudGltZVRhc2sAAQAAQAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQACAEgW3U4OyAzMl0AAEQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAAQhMc2V0X3ZhbGlkYXRpb25fZGF0YQgBEGRhdGFIAWhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQABVGluYm91bmRfbWVzc2FnZXNfZGF0YYABTEluYm91bmRNZXNzYWdlc0RhdGEAACSAU2V0IHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZGF0YS4AQQFUaGlzIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbohwaGFzZSBpZiB0aGUgY2FsbCB3YXMgbm90IGludm9rZWQuANBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgSW5oZXJlbnRgACEBQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiB1cGdyYWRlcyB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGZ1bmN0aW9uhGlmIHRoZSBhcHByb3ByaWF0ZSB0aW1lIGhhcyBjb21lLmBzdWRvX3NlbmRfdXB3YXJkX21lc3NhZ2UEARxtZXNzYWdlGAE0VXB3YXJkTWVzc2FnZQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5IDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudGhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQAAEAE8dmFsaWRhdGlvbl9kYXRhTAFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZVQBVHNwX3RyaWU6OlN0b3JhZ2VQcm9vZgABYHJlbGF5X3BhcmVudF9kZXNjZW5kYW50c1wBQFZlYzxSZWxheUhlYWRlcj4AAUBjb2xsYXRvcl9wZWVyX2lkeAFYT3B0aW9uPEFwcHJvdmVkUGVlcklkPgAATAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OVxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAFABE4BOAAQASxwYXJlbnRfaGVhZFABIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlcjgBBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290QAEESAABMG1heF9wb3Zfc2l6ZTgBDHUzMgAAUAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAAYARxWZWM8dTg+AABUDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzWAFEQlRyZWVTZXQ8VmVjPHU4Pj4AAFgEIEJUcmVlU2V0BARUARgABAA0AAAAXAAAAmAAYBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgE4EEhhc2gAABQBLHBhcmVudF9oYXNoQAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVyZAEYTnVtYmVyAAEoc3RhdGVfcm9vdEABMEhhc2g6Ok91dHB1dAABPGV4dHJpbnNpY3Nfcm9vdEABMEhhc2g6Ok91dHB1dAABGGRpZ2VzdGgBGERpZ2VzdAAAZAAABjgAaBAoc3BfcnVudGltZRxnZW5lcmljGGRpZ2VzdBhEaWdlc3QAAAQBEGxvZ3NsATxWZWM8RGlnZXN0SXRlbT4AAGwAAAJwAHAQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCAB0AURDb25zZW5zdXNFbmdpbmVJZAAAGAEcVmVjPHU4PgAGACRDb25zZW5zdXMIAHQBRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAQAEFNlYWwIAHQBRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAUAFE90aGVyBAAYARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAAdAAAAwQAAAAMAHgEGE9wdGlvbgQEVAF8AQgQTm9uZQAAABBTb21lBAB8AAABAAB8DExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAgAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnRMSW5ib3VuZE1lc3NhZ2VzRGF0YQAACAFEZG93bndhcmRfbWVzc2FnZXOEAXxBYnJpZGdlZEluYm91bmREb3dud2FyZE1lc3NhZ2VzAAFMaG9yaXpvbnRhbF9tZXNzYWdlc5gBbEFicmlkZ2VkSW5ib3VuZEhybXBNZXNzYWdlcwAAhAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnSEQWJyaWRnZWRJbmJvdW5kTWVzc2FnZXNDb2xsZWN0aW9uBBxNZXNzYWdlAYgACAE0ZnVsbF9tZXNzYWdlc4wBMFZlYzxNZXNzYWdlPgABPGhhc2hlZF9tZXNzYWdlc5ABfFZlYzxNZXNzYWdlOjpDb21wcmVzc2VkTWVzc2FnZT4AAIgIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgE4AAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABDG1zZxgBPERvd253YXJkTWVzc2FnZQAAjAAAAogAkAAAApQAlAiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudDRIYXNoZWRNZXNzYWdlAAAIARxzZW50X2F0OAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEgbXNnX2hhc2hAATRzcF9jb3JlOjpIMjU2AACYDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudIRBYnJpZGdlZEluYm91bmRNZXNzYWdlc0NvbGxlY3Rpb24EHE1lc3NhZ2UBnAAIATRmdWxsX21lc3NhZ2VzqAEwVmVjPE1lc3NhZ2U+AAE8aGFzaGVkX21lc3NhZ2VzrAF8VmVjPE1lc3NhZ2U6OkNvbXByZXNzZWRNZXNzYWdlPgAAnAAABAigpACgDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEADgBDHUzMgAApAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBOAAIARxzZW50X2F0OAEsQmxvY2tOdW1iZXIAARBkYXRhGAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAqAAAApwArAAAArAAsAAABAiglAC0DEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vd7gBJFQ6Ok1vbWVudAAATFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnloW2BDb25maWc6Ok1pbmltdW1QZXJpb2RgXS4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUQFUaGlzIGRpc3BhdGNoIGNsYXNzIGlzIF9NYW5kYXRvcnlfIHRvIGVuc3VyZSBpdCBnZXRzIGV4ZWN1dGVkIGluIHRoZSBibG9jay4gQmUgYXdhcmVRAXRoYXQgY2hhbmdpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjYWxsIGNvdWxkIHJlc3VsdCBleGhhdXN0aW5nIHRoZSByZXNvdXJjZXMgaW4gYYRibG9jayB0byBleGVjdXRlIGFueSBvdGhlciBjYWxscy4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClVAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgIGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy64AAAGKAC8DFhzdGFnaW5nX3BhcmFjaGFpbl9pbmZvGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsAMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQQQ2FsbAQEVAABFDRub3RlX3ByZWltYWdlBAEUYnl0ZXMYARxWZWM8dTg+AAAQdFJlZ2lzdGVyIGEgcHJlaW1hZ2Ugb24tY2hhaW4uAFUBSWYgdGhlIHByZWltYWdlIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCwgbm8gZmVlcyBvciBkZXBvc2l0cyBhcmUgdGFrZW4gZm9yIHByb3ZpZGluZ1UBdGhlIHByZWltYWdlLiBPdGhlcndpc2UsIGEgZGVwb3NpdCBpcyB0YWtlbiBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgdGhlIHByZWltYWdlLjx1bm5vdGVfcHJlaW1hZ2UEARBoYXNoQAEcVDo6SGFzaAABGNxDbGVhciBhbiB1bnJlcXVlc3RlZCBwcmVpbWFnZSBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuAPxJZiBgbGVuYCBpcyBwcm92aWRlZCwgdGhlbiBpdCB3aWxsIGJlIGEgbXVjaCBjaGVhcGVyIG9wZXJhdGlvbi4AAQEtIGBoYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByZWltYWdlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmUuuC0gYGxlbmA6IFRoZSBsZW5ndGggb2YgdGhlIHByZWltYWdlIG9mIGBoYXNoYC5AcmVxdWVzdF9wcmVpbWFnZQQBEGhhc2hAARxUOjpIYXNoAAIQQQFSZXF1ZXN0IGEgcHJlaW1hZ2UgYmUgdXBsb2FkZWQgdG8gdGhlIGNoYWluIHdpdGhvdXQgcGF5aW5nIGFueSBmZWVzIG9yIGRlcG9zaXRzLgBVAUlmIHRoZSBwcmVpbWFnZSByZXF1ZXN0cyBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIG9uLWNoYWluLCB3ZSB1bnJlc2VydmUgYW55IGRlcG9zaXQ5AWEgdXNlciBtYXkgaGF2ZSBwYWlkLCBhbmQgdGFrZSB0aGUgY29udHJvbCBvZiB0aGUgcHJlaW1hZ2Ugb3V0IG9mIHRoZWlyIGhhbmRzLkh1bnJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoQAEcVDo6SGFzaAADDLxDbGVhciBhIHByZXZpb3VzbHkgbWFkZSByZXF1ZXN0IGZvciBhIHByZWltYWdlLgAtAU5PVEU6IFRISVMgTVVTVCBOT1QgQkUgQ0FMTEVEIE9OIGBoYXNoYCBNT1JFIFRJTUVTIFRIQU4gYHJlcXVlc3RfcHJlaW1hZ2VgLjhlbnN1cmVfdXBkYXRlZAQBGGhhc2hlc8QBMFZlYzxUOjpIYXNoPgAEDLxFbnN1cmUgdGhhdCB0aGUgYnVsayBvZiBwcmUtaW1hZ2VzIGlzIHVwZ3JhZGVkLgA9AVRoZSBjYWxsZXIgcGF5cyBubyBmZWUgaWYgYXQgbGVhc3QgOTAlIG9mIHByZS1pbWFnZXMgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuxAAAAkAAyAxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQQQ2FsbAQEVAABKCBzY2hlZHVsZRABEHdoZW44AURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljzAGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5DAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuOAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleDgBDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQIASBUYXNrTmFtZQABEHdoZW44AURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljzAGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5DAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAgRYU2NoZWR1bGUgYSBuYW1lZCB0YXNrLjBjYW5jZWxfbmFtZWQEAQhpZAgBIFRhc2tOYW1lAAMEeENhbmNlbCBhIG5hbWVkIHNjaGVkdWxlZCB0YXNrLjhzY2hlZHVsZV9hZnRlchABFGFmdGVyOAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY8wBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQwBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQEqEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzayBhZnRlciBhIGRlbGF5LlBzY2hlZHVsZV9uYW1lZF9hZnRlchQBCGlkCAEgVGFza05hbWUAARRhZnRlcjgBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPMAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkMAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFza9ABeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABHHJldHJpZXMMAQh1OAABGHBlcmlvZDgBREJsb2NrTnVtYmVyRm9yPFQ+AAYwWQFTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBhIHRhc2sgc28gdGhhdCwgaW4gY2FzZSBpdHMgc2NoZWR1bGVkIHJ1biBmYWlscywgaXQgd2lsbFUBYmUgcmV0cmllZCBhZnRlciBgcGVyaW9kYCBibG9ja3MsIGZvciBhIHRvdGFsIGFtb3VudCBvZiBgcmV0cmllc2AgcmV0cmllcyBvciB1bnRpbCBpdCRzdWNjZWVkcy4AVQFUYXNrcyB3aGljaCBuZWVkIHRvIGJlIHNjaGVkdWxlZCBmb3IgYSByZXRyeSBhcmUgc3RpbGwgc3ViamVjdCB0byB3ZWlnaHQgbWV0ZXJpbmcgYW5kUQFhZ2VuZGEgc3BhY2UsIHNhbWUgYXMgYSByZWd1bGFyIHRhc2suIElmIGEgcGVyaW9kaWMgdGFzayBmYWlscywgaXQgd2lsbCBiZSBzY2hlZHVsZWSQbm9ybWFsbHkgd2hpbGUgdGhlIHRhc2sgaXMgcmV0cnlpbmcuAFEBVGFza3Mgc2NoZWR1bGVkIGFzIGEgcmVzdWx0IG9mIGEgcmV0cnkgZm9yIGEgcGVyaW9kaWMgdGFzayBhcmUgdW5uYW1lZCwgbm9uLXBlcmlvZGljPQFjbG9uZXMgb2YgdGhlIG9yaWdpbmFsIHRhc2suIFRoZWlyIHJldHJ5IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlTQFvcmlnaW5hbCB0YXNrJ3MgY29uZmlndXJhdGlvbiwgYnV0IHdpbGwgaGF2ZSBhIGxvd2VyIHZhbHVlIGZvciBgcmVtYWluaW5nYCB0aGFuIHRoZWRvcmlnaW5hbCBgdG90YWxfcmV0cmllc2AuPHNldF9yZXRyeV9uYW1lZAwBCGlkCAEgVGFza05hbWUAARxyZXRyaWVzDAEIdTgAARhwZXJpb2Q4AURCbG9ja051bWJlckZvcjxUPgAHMF0BU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSBuYW1lZCB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0XQF3aWxsIGJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwwaXQgc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjBjYW5jZWxfcmV0cnkEARB0YXNr0AF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAgEqFJlbW92ZXMgdGhlIHJldHJ5IGNvbmZpZ3VyYXRpb24gb2YgYSB0YXNrLkhjYW5jZWxfcmV0cnlfbmFtZWQEAQhpZAgBIFRhc2tOYW1lAAkEvENhbmNlbCB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIG5hbWVkIHRhc2suBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLswEGE9wdGlvbgQEVAHQAQgQTm9uZQAAABBTb21lBADQAAABAADQAAAECDg4ANQMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBBDYWxsBARUAAEENHNldF9wYXJhbWV0ZXIEASRrZXlfdmFsdWXYAVBUOjpSdW50aW1lUGFyYW1ldGVycwAAEHRTZXQgdGhlIHZhbHVlIG9mIGEgcGFyYW1ldGVyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYEFkbWluT3JpZ2luYCBmb3IgdGhlIGdpdmVuIGBrZXlgLiBWYWx1ZXMgYmWIZGVsZXRlZCBieSBzZXR0aW5nIHRoZW0gdG8gYE5vbmVgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7YCFxhc3NldF9odWJfcGFzZW9fcnVudGltZURSdW50aW1lUGFyYW1ldGVycwABDDxTdGFraW5nRWxlY3Rpb24EANwBsGR5bmFtaWNfcGFyYW1zOjpzdGFraW5nX2VsZWN0aW9uOjpQYXJhbWV0ZXJzAAAAJFNjaGVkdWxlcgQABQEBlGR5bmFtaWNfcGFyYW1zOjpzY2hlZHVsZXI6OlBhcmFtZXRlcnMAAQAwTWVzc2FnZVF1ZXVlBAAZAQGkZHluYW1pY19wYXJhbXM6Om1lc3NhZ2VfcXVldWU6OlBhcmFtZXRlcnMAAgAA3BBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXNAc3Rha2luZ19lbGVjdGlvbihQYXJhbWV0ZXJzAAEcLFNpZ25lZFBoYXNlCADgASxTaWduZWRQaGFzZQAA5AFMT3B0aW9uPEJsb2NrTnVtYmVyPgAAAFBNYXhTaWduZWRTdWJtaXNzaW9ucwgA6AFQTWF4U2lnbmVkU3VibWlzc2lvbnMAAOQBLE9wdGlvbjx1MzI+AAEANFVuc2lnbmVkUGhhc2UIAOwBNFVuc2lnbmVkUGhhc2UAAOQBTE9wdGlvbjxCbG9ja051bWJlcj4AAgAoTWluZXJQYWdlcwgA8AEoTWluZXJQYWdlcwAA5AEsT3B0aW9uPHUzMj4AAwBETWF4RWxlY3RpbmdWb3RlcnMIAPQBRE1heEVsZWN0aW5nVm90ZXJzAADkASxPcHRpb248dTMyPgAEAFhUYXJnZXRTbmFwc2hvdFBlckJsb2NrCAD4AVhUYXJnZXRTbmFwc2hvdFBlckJsb2NrAADkASxPcHRpb248dTMyPgAFADhNYXhFcmFEdXJhdGlvbggA/AE4TWF4RXJhRHVyYXRpb24AAAEBASxPcHRpb248dTY0PgAGAADgEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtc0BzdGFraW5nX2VsZWN0aW9uLFNpZ25lZFBoYXNlAAAAAOQEGE9wdGlvbgQEVAE4AQgQTm9uZQAAABBTb21lBAA4AAABAADoEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtc0BzdGFraW5nX2VsZWN0aW9uUE1heFNpZ25lZFN1Ym1pc3Npb25zAAAAAOwQXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zQHN0YWtpbmdfZWxlY3Rpb240VW5zaWduZWRQaGFzZQAAAADwEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtc0BzdGFraW5nX2VsZWN0aW9uKE1pbmVyUGFnZXMAAAAA9BBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXNAc3Rha2luZ19lbGVjdGlvbkRNYXhFbGVjdGluZ1ZvdGVycwAAAAD4EFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtc0BzdGFraW5nX2VsZWN0aW9uWFRhcmdldFNuYXBzaG90UGVyQmxvY2sAAAAA/BBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXNAc3Rha2luZ19lbGVjdGlvbjhNYXhFcmFEdXJhdGlvbgAAAAABAQQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAAAUBEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtcyRzY2hlZHVsZXIoUGFyYW1ldGVycwABCFBNYXhTY2hlZHVsZWRQZXJCbG9jawgACQEBUE1heFNjaGVkdWxlZFBlckJsb2NrAADkASxPcHRpb248dTMyPgAAADRNYXhpbXVtV2VpZ2h0CAANAQE0TWF4aW11bVdlaWdodAAAEQEBOE9wdGlvbjxXZWlnaHQ+AAEAAAkBEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtcyRzY2hlZHVsZXJQTWF4U2NoZWR1bGVkUGVyQmxvY2sAAAAADQEQXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zJHNjaGVkdWxlcjRNYXhpbXVtV2VpZ2h0AAAAABEBBBhPcHRpb24EBFQBFQEBCBBOb25lAAAAEFNvbWUEABUBAAABAAAVAQwoc3Bfd2VpZ2h0cyR3ZWlnaHRfdjIYV2VpZ2h0AAAIASByZWZfdGltZbgBDHU2NAABKHByb29mX3NpemW4AQx1NjQAABkBEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtczRtZXNzYWdlX3F1ZXVlKFBhcmFtZXRlcnMAAQg8TWF4T25Jbml0V2VpZ2h0CAAdAQE8TWF4T25Jbml0V2VpZ2h0AAAhAQFYT3B0aW9uPE9wdGlvbjxXZWlnaHQ+PgAAADxNYXhPbklkbGVXZWlnaHQIACUBATxNYXhPbklkbGVXZWlnaHQAACEBAVhPcHRpb248T3B0aW9uPFdlaWdodD4+AAEAAB0BEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtczRtZXNzYWdlX3F1ZXVlPE1heE9uSW5pdFdlaWdodAAAAAAhAQQYT3B0aW9uBARUAREBAQgQTm9uZQAAABBTb21lBAARAQAAAQAAJQEQXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zNG1lc3NhZ2VfcXVldWU8TWF4T25JZGxlV2VpZ2h0AAAAACkBDERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQQQ2FsbAQEVAABEEBmb3JjZV9zZXRfY3Vyc29yBAEYY3Vyc29yLQEBTE9wdGlvbjxDdXJzb3JPZjxUPj4AABRdAUFsbG93cyByb290IHRvIHNldCBhIGN1cnNvciB0byBmb3JjZWZ1bGx5IHN0YXJ0LCBzdG9wIG9yIGZvcndhcmQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgBJAVNob3VsZCBub3JtYWxseSBub3QgYmUgbmVlZGVkIGFuZCBpcyBvbmx5IGluIHBsYWNlIGFzIGVtZXJnZW5jeSBtZWFzdXJlLiBOb3RlIHRoYXQFAXJlc3RhcnRpbmcgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzIGluIHRoaXMgbWFubmVyIHdpbGwgbm90IGNhbGwgdGhlLQFbYE1pZ3JhdGlvblN0YXR1c0hhbmRsZXI6OnN0YXJ0ZWRgXSBob29rIG9yIGVtaXQgYW4gYFVwZ3JhZGVTdGFydGVkYCBldmVudC5cZm9yY2Vfc2V0X2FjdGl2ZV9jdXJzb3IMARRpbmRleDgBDHUzMgABMGlubmVyX2N1cnNvcj0BAVhPcHRpb248UmF3Q3Vyc29yT2Y8VD4+AAEoc3RhcnRlZF9hdOQBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AARhZAUFsbG93cyByb290IHRvIHNldCBhbiBhY3RpdmUgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQvZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEUBVGhpcyBpcyBhbiBlZGdlLWNhc2UgdmVyc2lvbiBvZiBbYFNlbGY6OmZvcmNlX3NldF9jdXJzb3JgXSB0aGF0IGFsbG93cyB0byBzZXQgdGhlYQFgc3RhcnRlZF9hdGAgdmFsdWUgdG8gdGhlIG5leHQgYmxvY2sgbnVtYmVyLiBPdGhlcndpc2UgdGhpcyB3b3VsZCBub3QgYmUgcG9zc2libGUsIHNpbmNlRQFgZm9yY2Vfc2V0X2N1cnNvcmAgdGFrZXMgYW4gYWJzb2x1dGUgYmxvY2sgbnVtYmVyLiBTZXR0aW5nIGBzdGFydGVkX2F0YCB0byBgTm9uZWABAWluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBwbHVzIG9uZSBzaG91bGQgYmUgdXNlZC5IZm9yY2Vfb25ib2FyZF9tYm1zAAIQoEZvcmNlcyB0aGUgb25ib2FyZGluZyBvZiB0aGUgbWlncmF0aW9ucy4AXQFUaGlzIHByb2Nlc3MgaGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIGEgcnVudGltZSB1cGdyYWRlLiBJdCBpcyBpbiBwbGFjZSBhcyBhbiBlbWVyZ2VuY3n8bWVhc3VyZW1lbnQuIFRoZSBjdXJzb3IgbmVlZHMgdG8gYmUgYE5vbmVgIGZvciB0aGlzIHRvIHN1Y2NlZWQuOGNsZWFyX2hpc3RvcmljBAEgc2VsZWN0b3JBAQGgSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3I8SWRlbnRpZmllck9mPFQ+PgADFGhDbGVhcnMgdGhlIGBIaXN0b3JpY2Agc2V0LgANAWBtYXBfY3Vyc29yYCBtdXN0IGJlIHNldCB0byB0aGUgbGFzdCB2YWx1ZSB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGVdAWBIaXN0b3JpY0NsZWFyZWRgIGV2ZW50LiBUaGUgZmlyc3QgdGltZSBgTm9uZWAgY2FuIGJlIHVzZWQuIGBsaW1pdGAgbXVzdCBiZSBjaG9zZW4gaW4gYah3YXkgdGhhdCB3aWxsIHJlc3VsdCBpbiBhIHNlbnNpYmxlIHdlaWdodC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQEEGE9wdGlvbgQEVAExAQEIEE5vbmUAAAAQU29tZQQAMQEAAAEAADEBCERwYWxsZXRfbWlncmF0aW9uczxNaWdyYXRpb25DdXJzb3IIGEN1cnNvcgE1ASxCbG9ja051bWJlcgE4AQgYQWN0aXZlBAA5AQGEQWN0aXZlQ3Vyc29yPEN1cnNvciwgQmxvY2tOdW1iZXI+AAAAFFN0dWNrAAEAADUBDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAOQEIRHBhbGxldF9taWdyYXRpb25zMEFjdGl2ZUN1cnNvcggYQ3Vyc29yATUBLEJsb2NrTnVtYmVyATgADAEUaW5kZXg4AQx1MzIAATBpbm5lcl9jdXJzb3I9AQE4T3B0aW9uPEN1cnNvcj4AAShzdGFydGVkX2F0OAEsQmxvY2tOdW1iZXIAAD0BBBhPcHRpb24EBFQBNQEBCBBOb25lAAAAEFNvbWUEADUBAAABAABBAQhEcGFsbGV0X21pZ3JhdGlvbnNcSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3IECElkAUUBAQggU3BlY2lmaWMEAEkBARxWZWM8SWQ+AAAAIFdpbGRjYXJkCAEUbGltaXTkASxPcHRpb248dTMyPgABPHByZXZpb3VzX2N1cnNvck0BATxPcHRpb248VmVjPHU4Pj4AAQAARQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AABJAQAAAkUBAE0BBBhPcHRpb24EBFQBGAEIEE5vbmUAAAAQU29tZQQAGAAAAQAAUQEMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlVQEBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2UAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlVQEBKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlVQEBKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmVdAQEQYm9vbAAEPAUBVHJhbnNmZXIgdGhlIGVudGlyZSB0cmFuc2ZlcmFibGUgYmFsYW5jZSBmcm9tIHRoZSBjYWxsZXIgYWNjb3VudC4AWQFOT1RFOiBUaGlzIGZ1bmN0aW9uIG9ubHkgYXR0ZW1wdHMgdG8gdHJhbnNmZXIgX3RyYW5zZmVyYWJsZV8gYmFsYW5jZXMuIFRoaXMgbWVhbnMgdGhhdGEBYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsIGRlcG9zaXRzICh3aGVuIGBrZWVwX2FsaXZlYCBpcyBgdHJ1ZWApLCB3aWxsIG5vdCBiZV0BdHJhbnNmZXJyZWQgYnkgdGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVkIGFjY291bnQsRQF5b3UgbWlnaHQgbmVlZCB0byBwcmVwYXJlIHRoZSBhY2NvdW50IGJ5IHJlbW92aW5nIGFueSByZWZlcmVuY2UgY291bnRlcnMsIHN0b3JhZ2VAZGVwb3NpdHMsIGV0Yy4uLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIuWQEtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbE0BICBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3JZASAgdHJhbnNmZXIgZXZlcnl0aGluZyBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLjxmb3JjZV91bnJlc2VydmUIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFkBAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob2EBAURWZWM8VDo6QWNjb3VudElkPgAGIHBVcGdyYWRlIGEgc3BlY2lmaWVkIGFjY291bnQuAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1cGdyYWRlZC4AVQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiBhdCBsZWFzdCBhbGwgYnV0IDEwJSBvZiB0aGUgYWNjb3VudHMgbmVlZGVkIHRvQQFiZSB1cGdyYWRlZC4gKFdlIGxldCBzb21lIG5vdCBoYXZlIHRvIGJlIHVwZ3JhZGVkIGp1c3QgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZVhwb3NzaWJpbGl0eSBvZiBjaHVybikuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZVUBAShUOjpCYWxhbmNlAAgMrFNldCB0aGUgcmVndWxhciBiYWxhbmNlIG9mIGEgZ2l2ZW4gYWNjb3VudC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAubGZvcmNlX2FkanVzdF90b3RhbF9pc3N1YW5jZQgBJGRpcmVjdGlvbmUBAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGFVAQEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWVVAQEoVDo6QmFsYW5jZQABKGtlZXBfYWxpdmVdAQEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5VAQAABlkBAFkBAAAFBwBdAQAABQAAYQEAAAIEAGUBDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAABpAQw4cGFsbGV0X3Zlc3RpbmcYcGFsbGV0EENhbGwEBFQAARgQdmVzdAAAJLhVbmxvY2sgYW55IHZlc3RlZCBmdW5kcyBvZiB0aGUgc2VuZGVyIGFjY291bnQuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGZ1bmRzIHN0aWxsZGxvY2tlZCB1bmRlciB0aGlzIHBhbGxldC4A0EVtaXRzIGVpdGhlciBgVmVzdGluZ0NvbXBsZXRlZGAgb3IgYFZlc3RpbmdVcGRhdGVkYC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuKHZlc3Rfb3RoZXIEARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLLhVbmxvY2sgYW55IHZlc3RlZCBmdW5kcyBvZiBhIGB0YXJnZXRgIGFjY291bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AUQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB3aG9zZSB2ZXN0ZWQgZnVuZHMgc2hvdWxkIGJlIHVubG9ja2VkLiBNdXN0IGhhdmUgZnVuZHMgc3RpbGxkbG9ja2VkIHVuZGVyIHRoaXMgcGFsbGV0LgDQRW1pdHMgZWl0aGVyIGBWZXN0aW5nQ29tcGxldGVkYCBvciBgVmVzdGluZ1VwZGF0ZWRgLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC48dmVzdGVkX3RyYW5zZmVyCAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBzY2hlZHVsZW0BAbBWZXN0aW5nSW5mbzxCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+PgACNGRDcmVhdGUgYSB2ZXN0ZWQgdHJhbnNmZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AzC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHJlY2VpdmluZyB0aGUgdmVzdGVkIGZ1bmRzLvAtIGBzY2hlZHVsZWA6IFRoZSB2ZXN0aW5nIHNjaGVkdWxlIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2Zlci4AXEVtaXRzIGBWZXN0aW5nQ3JlYXRlZGAuAPxOT1RFOiBUaGlzIHdpbGwgdW5sb2NrIGFsbCBzY2hlZHVsZXMgdGhyb3VnaCB0aGUgY3VycmVudCBibG9jay4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuVGZvcmNlX3Zlc3RlZF90cmFuc2ZlcgwBGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBzY2hlZHVsZW0BAbBWZXN0aW5nSW5mbzxCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+PgADOGBGb3JjZSBhIHZlc3RlZCB0cmFuc2Zlci4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4A6C0gYHNvdXJjZWA6IFRoZSBhY2NvdW50IHdob3NlIGZ1bmRzIHNob3VsZCBiZSB0cmFuc2ZlcnJlZC4RAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRoYXQgc2hvdWxkIGJlIHRyYW5zZmVycmVkIHRoZSB2ZXN0ZWQgZnVuZHMu8C0gYHNjaGVkdWxlYDogVGhlIHZlc3Rpbmcgc2NoZWR1bGUgYXR0YWNoZWQgdG8gdGhlIHRyYW5zZmVyLgBcRW1pdHMgYFZlc3RpbmdDcmVhdGVkYC4A/E5PVEU6IFRoaXMgd2lsbCB1bmxvY2sgYWxsIHNjaGVkdWxlcyB0aHJvdWdoIHRoZSBjdXJyZW50IGJsb2NrLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC48bWVyZ2Vfc2NoZWR1bGVzCAE8c2NoZWR1bGUxX2luZGV4OAEMdTMyAAE8c2NoZWR1bGUyX2luZGV4OAEMdTMyAARUXQFNZXJnZSB0d28gdmVzdGluZyBzY2hlZHVsZXMgdG9nZXRoZXIsIGNyZWF0aW5nIGEgbmV3IHZlc3Rpbmcgc2NoZWR1bGUgdGhhdCB1bmxvY2tzIG92ZXJVAXRoZSBoaWdoZXN0IHBvc3NpYmxlIHN0YXJ0IGFuZCBlbmQgYmxvY2tzLiBJZiBib3RoIHNjaGVkdWxlcyBoYXZlIGFscmVhZHkgc3RhcnRlZCB0aGVZAWN1cnJlbnQgYmxvY2sgd2lsbCBiZSB1c2VkIGFzIHRoZSBzY2hlZHVsZSBzdGFydDsgd2l0aCB0aGUgY2F2ZWF0IHRoYXQgaWYgb25lIHNjaGVkdWxlXQFpcyBmaW5pc2hlZCBieSB0aGUgY3VycmVudCBibG9jaywgdGhlIG90aGVyIHdpbGwgYmUgdHJlYXRlZCBhcyB0aGUgbmV3IG1lcmdlZCBzY2hlZHVsZSwsdW5tb2RpZmllZC4A+E5PVEU6IElmIGBzY2hlZHVsZTFfaW5kZXggPT0gc2NoZWR1bGUyX2luZGV4YCB0aGlzIGlzIGEgbm8tb3AuQQFOT1RFOiBUaGlzIHdpbGwgdW5sb2NrIGFsbCBzY2hlZHVsZXMgdGhyb3VnaCB0aGUgY3VycmVudCBibG9jayBwcmlvciB0byBtZXJnaW5nLmEBTk9URTogSWYgYm90aCBzY2hlZHVsZXMgaGF2ZSBlbmRlZCBieSB0aGUgY3VycmVudCBibG9jaywgbm8gbmV3IHNjaGVkdWxlIHdpbGwgYmUgY3JlYXRlZGRhbmQgYm90aCB3aWxsIGJlIHJlbW92ZWQuAGxNZXJnZWQgc2NoZWR1bGUgYXR0cmlidXRlczo1AS0gYHN0YXJ0aW5nX2Jsb2NrYDogYE1BWChzY2hlZHVsZTEuc3RhcnRpbmdfYmxvY2ssIHNjaGVkdWxlZDIuc3RhcnRpbmdfYmxvY2ssSCAgY3VycmVudF9ibG9jaylgLiEBLSBgZW5kaW5nX2Jsb2NrYDogYE1BWChzY2hlZHVsZTEuZW5kaW5nX2Jsb2NrLCBzY2hlZHVsZTIuZW5kaW5nX2Jsb2NrKWAuWQEtIGBsb2NrZWRgOiBgc2NoZWR1bGUxLmxvY2tlZF9hdChjdXJyZW50X2Jsb2NrKSArIHNjaGVkdWxlMi5sb2NrZWRfYXQoY3VycmVudF9ibG9jaylgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAOgtIGBzY2hlZHVsZTFfaW5kZXhgOiBpbmRleCBvZiB0aGUgZmlyc3Qgc2NoZWR1bGUgdG8gbWVyZ2Uu7C0gYHNjaGVkdWxlMl9pbmRleGA6IGluZGV4IG9mIHRoZSBzZWNvbmQgc2NoZWR1bGUgdG8gbWVyZ2UudGZvcmNlX3JlbW92ZV92ZXN0aW5nX3NjaGVkdWxlCAEYdGFyZ2V0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAAThzY2hlZHVsZV9pbmRleDgBDHUzMgAFGHxGb3JjZSByZW1vdmUgYSB2ZXN0aW5nIHNjaGVkdWxlAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uAMgtIGB0YXJnZXRgOiBBbiBhY2NvdW50IHRoYXQgaGFzIGEgdmVzdGluZyBzY2hlZHVsZRUBLSBgc2NoZWR1bGVfaW5kZXhgOiBUaGUgdmVzdGluZyBzY2hlZHVsZSBpbmRleCB0aGF0IHNob3VsZCBiZSByZW1vdmVkBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLm0BDDhwYWxsZXRfdmVzdGluZzB2ZXN0aW5nX2luZm8sVmVzdGluZ0luZm8IHEJhbGFuY2UBWQEsQmxvY2tOdW1iZXIBOAAMARhsb2NrZWRZAQEcQmFsYW5jZQABJHBlcl9ibG9ja1kBARxCYWxhbmNlAAE4c3RhcnRpbmdfYmxvY2s4ASxCbG9ja051bWJlcgAAcQEQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltcxhwYWxsZXQQQ2FsbAQEVAABFBRjbGFpbQgBEGRlc3QEATBUOjpBY2NvdW50SWQAAUhldGhlcmV1bV9zaWduYXR1cmV1AQE4RWNkc2FTaWduYXR1cmUAAGCITWFrZSBhIGNsYWltIHRvIGNvbGxlY3QgeW91ciBET1RzLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX05vbmVfLgBQVW5zaWduZWQgVmFsaWRhdGlvbjoFAUEgY2FsbCB0byBjbGFpbSBpcyBkZWVtZWQgdmFsaWQgaWYgdGhlIHNpZ25hdHVyZSBwcm92aWRlZCBtYXRjaGVzfHRoZSBleHBlY3RlZCBzaWduZWQgbWVzc2FnZSBvZjoAaD4gRXRoZXJldW0gU2lnbmVkIE1lc3NhZ2U6lD4gKGNvbmZpZ3VyZWQgcHJlZml4IHN0cmluZykoYWRkcmVzcykApGFuZCBgYWRkcmVzc2AgbWF0Y2hlcyB0aGUgYGRlc3RgIGFjY291bnQuACxQYXJhbWV0ZXJzOtgtIGBkZXN0YDogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgdG8gcGF5b3V0IHRoZSBjbGFpbS5dAS0gYGV0aGVyZXVtX3NpZ25hdHVyZWA6IFRoZSBzaWduYXR1cmUgb2YgYW4gZXRoZXJldW0gc2lnbmVkIG1lc3NhZ2UgbWF0Y2hpbmcgdGhlIGZvcm1hdEggIGRlc2NyaWJlZCBhYm92ZS4AIDx3ZWlnaHQ+/FRoZSB3ZWlnaHQgb2YgdGhpcyBjYWxsIGlzIGludmFyaWFudCBvdmVyIHRoZSBpbnB1dCBwYXJhbWV0ZXJzLuBXZWlnaHQgaW5jbHVkZXMgbG9naWMgdG8gdmFsaWRhdGUgdW5zaWduZWQgYGNsYWltYCBjYWxsLgBYVG90YWwgQ29tcGxleGl0eTogTygxKSQ8L3dlaWdodD4obWludF9jbGFpbRABDHdob30BATxFdGhlcmV1bUFkZHJlc3MAARR2YWx1ZVkBATBCYWxhbmNlT2Y8VD4AAUB2ZXN0aW5nX3NjaGVkdWxlgQEB3E9wdGlvbjwoQmFsYW5jZU9mPFQ+LCBCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+KT4AASRzdGF0ZW1lbnSJAQFUT3B0aW9uPFN0YXRlbWVudEtpbmQ+AAE8hE1pbnQgYSBuZXcgY2xhaW0gdG8gY29sbGVjdCBET1RzLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgAsUGFyYW1ldGVyczrwLSBgd2hvYDogVGhlIEV0aGVyZXVtIGFkZHJlc3MgYWxsb3dlZCB0byBjb2xsZWN0IHRoaXMgY2xhaW0uzC0gYHZhbHVlYDogVGhlIG51bWJlciBvZiBET1RzIHRoYXQgd2lsbCBiZSBjbGFpbWVkLgkBLSBgdmVzdGluZ19zY2hlZHVsZWA6IEFuIG9wdGlvbmFsIHZlc3Rpbmcgc2NoZWR1bGUgZm9yIHRoZXNlIERPVHMuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy4dAVdlIGFzc3VtZSB3b3JzdCBjYXNlIHRoYXQgYm90aCB2ZXN0aW5nIGFuZCBzdGF0ZW1lbnQgaXMgYmVpbmcgaW5zZXJ0ZWQuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0PjBjbGFpbV9hdHRlc3QMARBkZXN0BAEwVDo6QWNjb3VudElkAAFIZXRoZXJldW1fc2lnbmF0dXJldQEBOEVjZHNhU2lnbmF0dXJlAAEkc3RhdGVtZW50GAEcVmVjPHU4PgACbORNYWtlIGEgY2xhaW0gdG8gY29sbGVjdCB5b3VyIERPVHMgYnkgc2lnbmluZyBhIHN0YXRlbWVudC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUFVuc2lnbmVkIFZhbGlkYXRpb246KQFBIGNhbGwgdG8gYGNsYWltX2F0dGVzdGAgaXMgZGVlbWVkIHZhbGlkIGlmIHRoZSBzaWduYXR1cmUgcHJvdmlkZWQgbWF0Y2hlc3x0aGUgZXhwZWN0ZWQgc2lnbmVkIG1lc3NhZ2Ugb2Y6AGg+IEV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOsA+IChjb25maWd1cmVkIHByZWZpeCBzdHJpbmcpKGFkZHJlc3MpKHN0YXRlbWVudCkASQFhbmQgYGFkZHJlc3NgIG1hdGNoZXMgdGhlIGBkZXN0YCBhY2NvdW50OyB0aGUgYHN0YXRlbWVudGAgbXVzdCBtYXRjaCB0aGF0IHdoaWNoIGlzwGV4cGVjdGVkIGFjY29yZGluZyB0byB5b3VyIHB1cmNoYXNlIGFycmFuZ2VtZW50LgAsUGFyYW1ldGVyczrYLSBgZGVzdGA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IHRvIHBheW91dCB0aGUgY2xhaW0uXQEtIGBldGhlcmV1bV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlIG9mIGFuIGV0aGVyZXVtIHNpZ25lZCBtZXNzYWdlIG1hdGNoaW5nIHRoZSBmb3JtYXRIICBkZXNjcmliZWQgYWJvdmUuOQEtIGBzdGF0ZW1lbnRgOiBUaGUgaWRlbnRpdHkgb2YgdGhlIHN0YXRlbWVudCB3aGljaCBpcyBiZWluZyBhdHRlc3RlZCB0byBpbiB0aGUwICBzaWduYXR1cmUuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy78V2VpZ2h0IGluY2x1ZGVzIGxvZ2ljIHRvIHZhbGlkYXRlIHVuc2lnbmVkIGBjbGFpbV9hdHRlc3RgIGNhbGwuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0PhhhdHRlc3QEASRzdGF0ZW1lbnQYARxWZWM8dTg+AANM9EF0dGVzdCB0byBhIHN0YXRlbWVudCwgbmVlZGVkIHRvIGZpbmFsaXplIHRoZSBjbGFpbXMgcHJvY2Vzcy4AGQFXQVJOSU5HOiBJbnNlY3VyZSB1bmxlc3MgeW91ciBjaGFpbiBpbmNsdWRlcyBgUHJldmFsaWRhdGVBdHRlc3RzYCBhcyBhXGBUcmFuc2FjdGlvbkV4dGVuc2lvbmAuAFBVbnNpZ25lZCBWYWxpZGF0aW9uOikBQSBjYWxsIHRvIGF0dGVzdCBpcyBkZWVtZWQgdmFsaWQgaWYgdGhlIHNlbmRlciBoYXMgYSBgUHJlY2xhaW1gIHJlZ2lzdGVyZWT0YW5kIHByb3ZpZGVzIGEgYHN0YXRlbWVudGAgd2hpY2ggaXMgZXhwZWN0ZWQgZm9yIHRoZSBhY2NvdW50LgAsUGFyYW1ldGVyczo5AS0gYHN0YXRlbWVudGA6IFRoZSBpZGVudGl0eSBvZiB0aGUgc3RhdGVtZW50IHdoaWNoIGlzIGJlaW5nIGF0dGVzdGVkIHRvIGluIHRoZTAgIHNpZ25hdHVyZS4AIDx3ZWlnaHQ+/FRoZSB3ZWlnaHQgb2YgdGhpcyBjYWxsIGlzIGludmFyaWFudCBvdmVyIHRoZSBpbnB1dCBwYXJhbWV0ZXJzLvBXZWlnaHQgaW5jbHVkZXMgbG9naWMgdG8gZG8gcHJlLXZhbGlkYXRpb24gb24gYGF0dGVzdGAgY2FsbC4AWFRvdGFsIENvbXBsZXhpdHk6IE8oMSkkPC93ZWlnaHQ+KG1vdmVfY2xhaW0MAQxvbGR9AQE8RXRoZXJldW1BZGRyZXNzAAEMbmV3fQEBPEV0aGVyZXVtQWRkcmVzcwABOG1heWJlX3ByZWNsYWltkQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAQABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnUBDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXM4RWNkc2FTaWduYXR1cmUAAAQAeQEBIFt1ODsgNjVdAAB5AQAAA0EAAAAMAH0BDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXM8RXRoZXJldW1BZGRyZXNzAAAEABwBIFt1ODsgMjBdAACBAQQYT3B0aW9uBARUAYUBAQgQTm9uZQAAABBTb21lBACFAQAAAQAAhQEAAAQMWQFZATgAiQEEGE9wdGlvbgQEVAGNAQEIEE5vbmUAAAAQU29tZQQAjQEAAAEAAI0BDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXM0U3RhdGVtZW50S2luZAABCBxSZWd1bGFyAAAAEFNhZnQAAQAAkQEEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAACVAQxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQQQ2FsbAQEVAABJERzZXRfaW52dWxuZXJhYmxlcwQBDG5ld2EBAURWZWM8VDo6QWNjb3VudElkPgAANDEBU2V0IHRoZSBsaXN0IG9mIGludnVsbmVyYWJsZSAoZml4ZWQpIGNvbGxhdG9ycy4gVGhlc2UgY29sbGF0b3JzIG11c3QgZG8gc29tZdBwcmVwYXJhdGlvbiwgbmFtZWx5IHRvIGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuAFkBVGhlIGNhbGwgd2lsbCByZW1vdmUgYW55IGFjY291bnRzIHRoYXQgaGF2ZSBub3QgcmVnaXN0ZXJlZCBrZXlzIGZyb20gdGhlIHNldC4gVGhhdCBpcyxdAWl0IGlzIG5vbi1hdG9taWM7IHRoZSBjYWxsZXIgYWNjZXB0cyBhbGwgYEFjY291bnRJZGBzIHBhc3NlZCBpbiBgbmV3YCBfaW5kaXZpZHVhbGx5XyBhczEBYWNjZXB0YWJsZSBJbnZ1bG5lcmFibGVzLCBhbmQgaXMgbm90IHByb3Bvc2luZyBhIF9zZXRfIG9mIG5ldyBJbnZ1bG5lcmFibGVzLgBZAVRoaXMgY2FsbCBkb2VzIG5vdCBtYWludGFpbiBtdXR1YWwgZXhjbHVzaXZpdHkgb2YgYEludnVsbmVyYWJsZXNgIGFuZCBgQ2FuZGlkYXRlc2AuIEl0YQFpcyByZWNvbW1lbmRlZCB0byB1c2UgYSBiYXRjaCBvZiBgYWRkX2ludnVsbmVyYWJsZWAgYW5kIGByZW1vdmVfaW52dWxuZXJhYmxlYCBpbnN0ZWFkLiBBUQFgYmF0Y2hfYWxsYCBjYW4gYWxzbyBiZSB1c2VkIHRvIGVuZm9yY2UgYXRvbWljaXR5LiBJZiBhbnkgY2FuZGlkYXRlcyBhcmUgaW5jbHVkZWQgaW5NAWBuZXdgLCB0aGV5IHNob3VsZCBiZSByZW1vdmVkIHdpdGggYHJlbW92ZV9pbnZ1bG5lcmFibGVfY2FuZGlkYXRlYCBhZnRlciBleGVjdXRpb24uAJRNdXN0IGJlIGNhbGxlZCBieSB0aGUgYFVwZGF0ZU9yaWdpbmAuWHNldF9kZXNpcmVkX2NhbmRpZGF0ZXMEAQxtYXg4AQx1MzIAARRVAVNldCB0aGUgaWRlYWwgbnVtYmVyIG9mIG5vbi1pbnZ1bG5lcmFibGUgY29sbGF0b3JzLiBJZiBsb3dlcmluZyB0aGlzIG51bWJlciwgdGhlbiB0aGVhAW51bWJlciBvZiBydW5uaW5nIGNvbGxhdG9ycyBjb3VsZCBiZSBoaWdoZXIgdGhhbiB0aGlzIGZpZ3VyZS4gQXNpZGUgZnJvbSB0aGF0IGVkZ2UgY2FzZSw1AXRoZXJlIHNob3VsZCBiZSBubyBvdGhlciB3YXkgdG8gaGF2ZSBtb3JlIGNhbmRpZGF0ZXMgdGhhbiB0aGUgZGVzaXJlZCBudW1iZXIuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuSHNldF9jYW5kaWRhY3lfYm9uZAQBEGJvbmRZAQEwQmFsYW5jZU9mPFQ+AAIceFNldCB0aGUgY2FuZGlkYWN5IGJvbmQgYW1vdW50LgBRAUlmIHRoZSBjYW5kaWRhY3kgYm9uZCBpcyBpbmNyZWFzZWQgYnkgdGhpcyBjYWxsLCBhbGwgY3VycmVudCBjYW5kaWRhdGVzIHdoaWNoIGhhdmUgYU0BZGVwb3NpdCBsb3dlciB0aGFuIHRoZSBuZXcgYm9uZCB3aWxsIGJlIGtpY2tlZCBmcm9tIHRoZSBsaXN0IGFuZCBnZXQgdGhlaXIgZGVwb3NpdHMUYmFjay4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5UcmVnaXN0ZXJfYXNfY2FuZGlkYXRlAAMQQQFSZWdpc3RlciB0aGlzIGFjY291bnQgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIFRoZSBhY2NvdW50IG11c3QgKGEpIGFscmVhZHkgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMgYW5kIChiKSBiZSBhYmxlIHRvIHJlc2VydmUgdGhlIGBDYW5kaWRhY3lCb25kYC4A3FRoaXMgY2FsbCBpcyBub3QgYXZhaWxhYmxlIHRvIGBJbnZ1bG5lcmFibGVgIGNvbGxhdG9ycy4wbGVhdmVfaW50ZW50AAQUVQFEZXJlZ2lzdGVyIGBvcmlnaW5gIGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBOb3RlIHRoYXQgdGhlIGNvbGxhdG9yIGNhbiBvbmx5IGxlYXZlIG9uDQFzZXNzaW9uIGNoYW5nZS4gVGhlIGBDYW5kaWRhY3lCb25kYCB3aWxsIGJlIHVucmVzZXJ2ZWQgaW1tZWRpYXRlbHkuABkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgd291bGQgZHJvcCBiZWxvd1xgTWluRWxpZ2libGVDb2xsYXRvcnNgLkBhZGRfaW52dWxuZXJhYmxlBAEMd2hvBAEwVDo6QWNjb3VudElkAAUQRQFBZGQgYSBuZXcgYWNjb3VudCBgd2hvYCB0byB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgd2hvYCBtdXN0IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLiBJZiBgd2hvYCBpcyBhIGNhbmRpZGF0ZSwgdGhleSB3aWxsIGJlIHJlbW92ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuTHJlbW92ZV9pbnZ1bG5lcmFibGUEAQx3aG8EATBUOjpBY2NvdW50SWQABhBhAVJlbW92ZSBhbiBhY2NvdW50IGB3aG9gIGZyb20gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYEludnVsbmVyYWJsZXNgIG11c3QoYmUgc29ydGVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLix1cGRhdGVfYm9uZAQBLG5ld19kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgAHHF0BVXBkYXRlIHRoZSBjYW5kaWRhY3kgYm9uZCBvZiBjb2xsYXRvciBjYW5kaWRhdGUgYG9yaWdpbmAgdG8gYSBuZXcgYW1vdW50IGBuZXdfZGVwb3NpdGAuAEEBU2V0dGluZyBhIGBuZXdfZGVwb3NpdGAgdGhhdCBpcyBsb3dlciB0aGFuIHRoZSBjdXJyZW50IGRlcG9zaXQgd2hpbGUgYG9yaWdpbmAgaXPgb2NjdXB5aW5nIGEgdG9wLWBEZXNpcmVkQ2FuZGlkYXRlc2Agc2xvdCBpcyBub3QgYWxsb3dlZC4AWQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIGBvcmlnaW5gIGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSwgdGhlIHVwZGF0ZWQgYm9uZCBpcyBsb3dlchkBdGhhbiB0aGUgbWluaW11bSBjYW5kaWRhY3kgYm9uZCwgYW5kL29yIHRoZSBhbW91bnQgY2Fubm90IGJlIHJlc2VydmVkLkx0YWtlX2NhbmRpZGF0ZV9zbG90CAEcZGVwb3NpdFkBATBCYWxhbmNlT2Y8VD4AARh0YXJnZXQEATBUOjpBY2NvdW50SWQACBxNAVRoZSBjYWxsZXIgYG9yaWdpbmAgcmVwbGFjZXMgYSBjYW5kaWRhdGUgYHRhcmdldGAgaW4gdGhlIGNvbGxhdG9yIGNhbmRpZGF0ZSBsaXN0IGJ5VQFyZXNlcnZpbmcgYGRlcG9zaXRgLiBUaGUgYW1vdW50IGBkZXBvc2l0YCByZXNlcnZlZCBieSB0aGUgY2FsbGVyIG11c3QgYmUgZ3JlYXRlciB0aGFu4HRoZSBleGlzdGluZyBib25kIG9mIHRoZSB0YXJnZXQgaXQgaXMgdHJ5aW5nIHRvIHJlcGxhY2UuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgY2FsbGVyIGlzIGFscmVhZHkgYSBjb2xsYXRvciBjYW5kaWRhdGUgb3IgaW52dWxuZXJhYmxlLCB0aGVVAWNhbGxlciBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLCB0aGUgdGFyZ2V0IGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSy8YW5kL29yIHRoZSBgZGVwb3NpdGAgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMumQEMOHBhbGxldF9zZXNzaW9uGHBhbGxldBBDYWxsBARUAAEIIHNldF9rZXlzCAEQa2V5c50BARxUOjpLZXlzAAEUcHJvb2YYARxWZWM8dTg+AAAk5FNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleXNgLh0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uANBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuADQjIyBDb21wbGV4aXR5WQEtIGBPKDEpYC4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZiBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyAgIGZpeGVkLihwdXJnZV9rZXlzAAEwyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuADQjIyBDb21wbGV4aXR5PQEtIGBPKDEpYCBpbiBudW1iZXIgb2Yga2V5IHR5cGVzLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mmCAgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgZml4ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLp0BCFxhc3NldF9odWJfcGFzZW9fcnVudGltZSxTZXNzaW9uS2V5cwAABAEQYXVyYaEBAcQ8QXVyYSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAChARBEc3BfY29uc2Vuc3VzX2F1cmEcc3IyNTUxOSxhcHBfc3IyNTUxORhQdWJsaWMAAAQACAE8c3IyNTUxOTo6UHVibGljAAClAQxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQQQ2FsbAQEVAABFFRzdXNwZW5kX3hjbV9leGVjdXRpb24AAQxJAVN1c3BlbmRzIGFsbCBYQ00gZXhlY3V0aW9ucyBmb3IgdGhlIFhDTVAgcXVldWUsIHJlZ2FyZGxlc3Mgb2YgdGhlIHNlbmRlcidzIG9yaWdpbi4ApC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgQ29udHJvbGxlck9yaWdpbmAuUHJlc3VtZV94Y21fZXhlY3V0aW9uAAIUuFJlc3VtZXMgYWxsIFhDTSBleGVjdXRpb25zIGZvciB0aGUgWENNUCBxdWV1ZS4APQFOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGNoYW5nZSB0aGUgc3RhdHVzIG9mIHRoZSBpbi9vdXQgYm91bmQgY2hhbm5lbHMuAKQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYENvbnRyb2xsZXJPcmlnaW5gLmB1cGRhdGVfc3VzcGVuZF90aHJlc2hvbGQEAQxuZXc4AQx1MzIAAxRJAU92ZXJ3cml0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCBtdXN0IGJlIGluIHRoZSBxdWV1ZSBmb3IgdGhlIG90aGVyIHNpZGUgdG8gYmV4dG9sZCB0byBzdXNwZW5kIHRoZWlyIHNlbmRpbmcuAHQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYFJvb3RgLugtIGBuZXdgOiBEZXNpcmVkIHZhbHVlIGZvciBgUXVldWVDb25maWdEYXRhLnN1c3BlbmRfdmFsdWVgVHVwZGF0ZV9kcm9wX3RocmVzaG9sZAQBDG5ldzgBDHUzMgAEFEUBT3ZlcndyaXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIG11c3QgYmUgaW4gdGhlIHF1ZXVlIGFmdGVyIHdoaWNoIHdlIGRyb3AgYW55iGZ1cnRoZXIgbWVzc2FnZXMgZnJvbSB0aGUgY2hhbm5lbC4AdC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgUm9vdGAu7C0gYG5ld2A6IERlc2lyZWQgdmFsdWUgZm9yIGBRdWV1ZUNvbmZpZ0RhdGEuZHJvcF90aHJlc2hvbGRgXHVwZGF0ZV9yZXN1bWVfdGhyZXNob2xkBAEMbmV3OAEMdTMyAAUUTQFPdmVyd3JpdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgd2hpY2ggdGhlIHF1ZXVlIG11c3QgYmUgcmVkdWNlZCB0byBiZWZvcmUgaXQgc2lnbmFscwEBdGhhdCBtZXNzYWdlIHNlbmRpbmcgbWF5IHJlY29tbWVuY2UgYWZ0ZXIgaXQgaGFzIGJlZW4gc3VzcGVuZGVkLgB0LSBgb3JpZ2luYDogTXVzdCBwYXNzIGBSb290YC70LSBgbmV3YDogRGVzaXJlZCB2YWx1ZSBmb3IgYFF1ZXVlQ29uZmlnRGF0YS5yZXN1bWVfdGhyZXNob2xkYAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pAQwocGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABRBBzZW5kCAEQZGVzdK0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcbWVzc2FnZTUCAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AAAA8dGVsZXBvcnRfYXNzZXRzEAEQZGVzdK0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmtAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c3EDAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAFIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgAdASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5ccmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMQARBkZXN0rQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzcQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW04AQx1MzIAAnhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgA9ASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLhxleGVjdXRlCAEcbWVzc2FnZXUDAbRCb3g8VmVyc2lvbmVkWGNtPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPj4AAShtYXhfd2VpZ2h0FQEBGFdlaWdodAADINBFeGVjdXRlIGFuIFhDTSBtZXNzYWdlIGZyb20gYSBsb2NhbCwgc2lnbmVkLCBvcmlnaW4uAE0BQW4gZXZlbnQgaXMgZGVwb3NpdGVkIGluZGljYXRpbmcgd2hldGhlciBgbXNnYCBjb3VsZCBiZSBleGVjdXRlZCBjb21wbGV0ZWx5IG9yIG9ubHkocGFydGlhbGx5LgBdAU5vIG1vcmUgdGhhbiBgbWF4X3dlaWdodGAgd2lsbCBiZSB1c2VkIGluIGl0cyBhdHRlbXB0ZWQgZXhlY3V0aW9uLiBJZiB0aGlzIGlzIGxlc3MgdGhhbkEBdGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCB0aGF0IHRoZSBtZXNzYWdlIGNvdWxkIHRha2UgdG8gYmUgZXhlY3V0ZWQsIHRoZW4gbm98ZXhlY3V0aW9uIGF0dGVtcHQgd2lsbCBiZSBtYWRlLkRmb3JjZV94Y21fdmVyc2lvbggBIGxvY2F0aW9uAQIBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb27kAUhPcHRpb248WGNtVmVyc2lvbj4ABRRZAVNldCBhIHNhZmUgWENNIHZlcnNpb24gKHRoZSB2ZXJzaW9uIHRoYXQgWENNIHNob3VsZCBiZSBlbmNvZGVkIHdpdGggaWYgdGhlIG1vc3QgcmVjZW50tHZlcnNpb24gYSBkZXN0aW5hdGlvbiBjYW4gYWNjZXB0IGlzIHVua25vd24pLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLjkBLSBgbWF5YmVfeGNtX3ZlcnNpb25gOiBUaGUgZGVmYXVsdCBYQ00gZW5jb2RpbmcgdmVyc2lvbiwgb3IgYE5vbmVgIHRvIGRpc2FibGUueGZvcmNlX3N1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9urQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABhA5AUFzayBhIGxvY2F0aW9uIHRvIG5vdGlmeSB1cyByZWdhcmRpbmcgdGhlaXIgWENNIHZlcnNpb24gYW5kIGFueSBjaGFuZ2VzIHRvIGl0LgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLlkBLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2Ugc2hvdWxkIHN1YnNjcmliZSBmb3IgWENNIHZlcnNpb24gbm90aWZpY2F0aW9ucy6AZm9yY2VfdW5zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbq0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAcYSQFSZXF1aXJlIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIHNob3VsZCBubyBsb25nZXIgbm90aWZ5IHVzIHJlZ2FyZGluZyBhbnkgWENNQHZlcnNpb24gY2hhbmdlcy4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi49AS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCBmb3IgWENNIHZlcnNpb26oICBub3RpZmljYXRpb25zIHdoaWNoIHdlIG5vIGxvbmdlciBkZXNpcmUufGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMUARBkZXN0rQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzcQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW04AQx1MzIAATB3ZWlnaHRfbGltaXSpAgEsV2VpZ2h0TGltaXQACHhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5cbGltaXRlZF90ZWxlcG9ydF9hc3NldHMUARBkZXN0rQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzcQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW04AQx1MzIAATB3ZWlnaHRfbGltaXSpAgEsV2VpZ2h0TGltaXQACUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLkBmb3JjZV9zdXNwZW5zaW9uBAEkc3VzcGVuZGVkXQEBEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3StAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5rQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHNxAwFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABMHdlaWdodF9saW1pdKkCASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRzcQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnmtAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0rQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHNxAwFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZaEDAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkpQMBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZaEDAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdDUCAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXSpAgEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuUGFkZF9hdXRob3JpemVkX2FsaWFzCAEcYWxpYXNlcq0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcZXhwaXJlcwEBASxPcHRpb248dTY0PgAOLF0BQXV0aG9yaXplIGFub3RoZXIgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwuKQFUaGUgYGFsaWFzZXJgIGlzIG9ubHkgYXV0aG9yaXplZCB1bnRpbCB0aGUgcHJvdmlkZWQgYGV4cGlyeWAgYmxvY2sgbnVtYmVyLkkBVGhlIGNhbGwgY2FuIGFsc28gYmUgdXNlZCBmb3IgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYWxpYXMgaW4gb3JkZXIgdG8gdXBkYXRlIGl0c1hgZXhwaXJ5YCBibG9jayBudW1iZXIuAFEBVXN1YWxseSB1c2VmdWwgdG8gYWxsb3cgeW91ciBsb2NhbCBhY2NvdW50IHRvIGJlIGFsaWFzZWQgaW50byBmcm9tIGEgcmVtb3RlIGxvY2F0aW9u9GFsc28gdW5kZXIgeW91ciBjb250cm9sIChsaWtlIHlvdXIgYWNjb3VudCBvbiBhbm90aGVyIGNoYWluKS4AUQFXQVJOSU5HOiBtYWtlIHN1cmUgdGhlIGNhbGxlciBgb3JpZ2luYCAoeW91KSB0cnVzdHMgdGhlIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhY3QgaW5ZAXRoZWlyL3lvdXIgbmFtZS4gT25jZSBhdXRob3JpemVkIHVzaW5nIHRoaXMgY2FsbCwgdGhlIGBhbGlhc2VyYCBjYW4gZnJlZWx5IGltcGVyc29uYXRl1GBvcmlnaW5gIGluIFhDTSBwcm9ncmFtcyBleGVjdXRlZCBvbiB0aGUgbG9jYWwgY2hhaW4uXHJlbW92ZV9hdXRob3JpemVkX2FsaWFzBAEcYWxpYXNlcq0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AA8IXQFSZW1vdmUgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgIGZyb20gdGhlIGxpc3Qgb2YgbG9jYXRpb25zIHRoYXQgY2FuIGFsaWFzIGludG+QdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwudHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzABAISQFSZW1vdmUgYWxsIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmBzIHRoYXQgY2FuIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gRG1ha2luZyB0aGlzIGNhbGwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLq0BCAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjMEALEBAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAzQEBMHY0OjpMb2NhdGlvbgAEAAhWNQQAAQIBMHY1OjpMb2NhdGlvbgAFAACxARAsc3RhZ2luZ194Y20IdjM0bXVsdGlsb2NhdGlvbjRNdWx0aUxvY2F0aW9uAAAIARxwYXJlbnRzDAEIdTgAASBpbnRlcmlvcrUBASRKdW5jdGlvbnMAALUBEAx4Y20IdjMkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBAC5AQEgSnVuY3Rpb24AAQAIWDIIALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAIACFgzDAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAMACFg0EAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24ABAAIWDUUALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAUACFg2GAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAYACFg3HAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24ABwAIWDggALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAC5AQEgSnVuY3Rpb24AALkBASBKdW5jdGlvbgAAuQEBIEp1bmN0aW9uAAgAALkBEAx4Y20IdjMganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABkAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrvQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmu9AQFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLgBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrvQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAVQEBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAwBCHU4AAEQZGF0YQgBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZMUBARhCb2R5SWQAARBwYXJ0yQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAwQEBJE5ldHdvcmtJZAAJAAC9AQQYT3B0aW9uBARUAcEBAQgQTm9uZQAAABBTb21lBADBAQAAAQAAwQEQDHhjbQh2MyBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAIASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIoAQx1NjQAAShibG9ja19oYXNoCAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkuAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAxQEQDHhjbQh2MyBqdW5jdGlvbhhCb2R5SWQAASgQVW5pdAAAABxNb25pa2VyBAB0ARxbdTg7IDRdAAEAFEluZGV4BABkAQx1MzIAAgAkRXhlY3V0aXZlAAMAJFRlY2huaWNhbAAEACxMZWdpc2xhdGl2ZQAFACBKdWRpY2lhbAAGABxEZWZlbnNlAAcAOEFkbWluaXN0cmF0aW9uAAgAIFRyZWFzdXJ5AAkAAMkBEAx4Y20IdjMganVuY3Rpb24gQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW50ZAEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tZAEMdTMyAAEUZGVub21kAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub21kAQx1MzIAARRkZW5vbWQBDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub21kAQx1MzIAARRkZW5vbWQBDHUzMgAEAADNARAsc3RhZ2luZ194Y20IdjQgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9y0QEBJEp1bmN0aW9ucwAA0QEQLHN0YWdpbmdfeGNtCHY0JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQA1QEBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQA5QEBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQA6QEBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQA7QEBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQA8QEBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQA9QEBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQA+QEBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQA/QEBSEFyYzxbSnVuY3Rpb247IDhdPgAIAADVAQAAAwEAAADZAQDZARAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABkAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr3QEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmvdAQFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLgBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3Jr3QEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAVQEBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAwBCHU4AAEQZGF0YQgBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZMUBARhCb2R5SWQAARBwYXJ0yQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQA4QEBJE5ldHdvcmtJZAAJAADdAQQYT3B0aW9uBARUAeEBAQgQTm9uZQAAABBTb21lBADhAQAAAQAA4QEQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWS4AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAADlAQAAAwIAAADZAQDpAQAAAwMAAADZAQDtAQAAAwQAAADZAQDxAQAAAwUAAADZAQD1AQAAAwYAAADZAQD5AQAAAwcAAADZAQD9AQAAAwgAAADZAQABAhAsc3RhZ2luZ194Y20IdjUgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9yBQIBJEp1bmN0aW9ucwAABQIQLHN0YWdpbmdfeGNtCHY1JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQACQIBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAGQIBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQAHQIBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQAIQIBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQAJQIBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQAKQIBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQALQIBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQAMQIBSEFyYzxbSnVuY3Rpb247IDhdPgAIAAAJAgAAAwEAAAANAgANAhAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABkAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrEQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmsRAgFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLgBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrEQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAVQEBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAwBCHU4AAEQZGF0YQgBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZMUBARhCb2R5SWQAARBwYXJ0yQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAFQIBJE5ldHdvcmtJZAAJAAARAgQYT3B0aW9uBARUARUCAQgQTm9uZQAAABBTb21lBAAVAgAAAQAAFQIQLHN0YWdpbmdfeGNtCHY1IGp1bmN0aW9uJE5ldHdvcmtJZAABICRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAgRXRoZXJldW0EASBjaGFpbl9pZLgBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAABkCAAADAgAAAA0CAB0CAAADAwAAAA0CACECAAADBAAAAA0CACUCAAADBQAAAA0CACkCAAADBgAAAA0CAC0CAAADBwAAAA0CADECAAADCAAAAA0CADUCCAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMwQAOQIBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BACtAgFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAIVjUEAPkCAVB2NTo6WGNtPFJ1bnRpbWVDYWxsPgAFAAA5AgwMeGNtCHYzDFhjbQQQQ2FsbAAABAA9AgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAPQIAAAJBAgBBAgwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAEUCASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAEUCASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BABFAgEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkuAEcUXVlcnlJZAABIHJlc3BvbnNlZQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodBUBARhXZWlnaHQAARxxdWVyaWVyjQIBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzRQIBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnmxAQE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c0UCASxNdWx0aUFzc2V0cwABEGRlc3SxAQE0TXVsdGlMb2NhdGlvbgABDHhjbTkCARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmSRAgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QVAQEYV2VpZ2h0AAEQY2FsbJUCAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJkAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplZAEMdTMyAAEwbWF4X2NhcGFjaXR5ZAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRkAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yZAEMdTMyAAEYc2VuZGVyZAEMdTMyAAEkcmVjaXBpZW50ZAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EALUBAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAJkCAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHOdAgFATXVsdGlBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5sQEBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c50CAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdLEBATRNdWx0aUxvY2F0aW9uAAEMeGNtOQIBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWdAgFATXVsdGlBc3NldEZpbHRlcgABEHdhbnRFAgEsTXVsdGlBc3NldHMAARxtYXhpbWFsXQEBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHOdAgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmWxAQE0TXVsdGlMb2NhdGlvbgABDHhjbTkCARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOdAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxAQE0TXVsdGlMb2NhdGlvbgABDHhjbTkCARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvmQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRznQIBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc00CAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAA5AgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAA5AgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c0UCASxNdWx0aUFzc2V0cwABGHRpY2tldLEBATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEALgBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS4ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodBUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQARQIBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BABFAgEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBACNAgFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABpAgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAIUCAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+ZAgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhkAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yZAEMdTMyAAE8bWluX2NyYXRlX21pbm9yZAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBACZAgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EALkBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya8EBASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbrUBAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y205AgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldE0CAShNdWx0aUFzc2V0AAEgdW5sb2NrZXKxAQE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0TQIBKE11bHRpQXNzZXQAARh0YXJnZXSxAQE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0TQIBKE11bHRpQXNzZXQAARRvd25lcrEBATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldE0CAShNdWx0aUFzc2V0AAEYbG9ja2VysQEBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXddAQEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAsQEBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lujQIBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAABFAhAMeGNtCHYzKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQASQIBPFZlYzxNdWx0aUFzc2V0PgAASQIAAAJNAgBNAhAMeGNtCHYzKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWRRAgEcQXNzZXRJZAABDGZ1blUCASxGdW5naWJpbGl0eQAAUQIQDHhjbQh2MyhtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEALEBATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAAIASBbdTg7IDMyXQABAABVAhAMeGNtCHYzKG11bHRpYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAFUBARB1MTI4AAAALE5vbkZ1bmdpYmxlBABZAgE0QXNzZXRJbnN0YW5jZQABAABZAhAMeGNtCHYzKG11bHRpYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAFUBARB1MTI4AAEAGEFycmF5NAQAdAEcW3U4OyA0XQACABhBcnJheTgEAF0CARxbdTg7IDhdAAMAHEFycmF5MTYEAGECASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAABdAgAAAwgAAAAMAGECAAADEAAAAAwAZQIMDHhjbQh2MyBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQARQIBLE11bHRpQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAaQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EADgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBAB1AgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAIUCAThNYXliZUVycm9yQ29kZQAFAABpAgQYT3B0aW9uBARUAW0CAQgQTm9uZQAAABBTb21lBABtAgAAAQAAbQIAAAQIOHECAHECEAx4Y20IdjMYdHJhaXRzFEVycm9yAAGgIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEACgBDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiAExVbmhhbmRsZWRYY21WZXJzaW9uACMASFdlaWdodExpbWl0UmVhY2hlZAQAFQEBGFdlaWdodAAkABxCYXJyaWVyACUATFdlaWdodE5vdENvbXB1dGFibGUAJgBERXhjZWVkc1N0YWNrTGltaXQAJwAAdQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF5AgRTAAAEAIECARhWZWM8VD4AAHkCDAx4Y20IdjMoUGFsbGV0SW5mbwAAGAEUaW5kZXhkAQx1MzIAARBuYW1lfQIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWV9AgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmQBDHUzMgABFG1pbm9yZAEMdTMyAAEUcGF0Y2hkAQx1MzIAAH0CDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAgQIAAAJ5AgCFAgwMeGNtCHYzOE1heWJlRXJyb3JDb2RlAAEMHFN1Y2Nlc3MAAAAURXJyb3IEAIkCAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgABADhUcnVuY2F0ZWRFcnJvcgQAiQIBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAIAAIkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAjQIEGE9wdGlvbgQEVAGxAQEIEE5vbmUAAAAQU29tZQQAsQEAAAEAAJECDAx4Y20IdjMoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAJUCDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBgBHFZlYzx1OD4AAJkCDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9usQEBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZLgBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h0FQEBGFdlaWdodAAAnQIQDHhjbQh2MyhtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAEUCASxNdWx0aUFzc2V0cwAAABBXaWxkBAChAgE4V2lsZE11bHRpQXNzZXQAAQAAoQIQDHhjbQh2MyhtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkUQIBHEFzc2V0SWQAAQxmdW6lAgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGQBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZFECARxBc3NldElkAAEMZnVupQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50ZAEMdTMyAAMAAKUCEAx4Y20IdjMobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAqQIMDHhjbQh2MyxXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQAFQEBGFdlaWdodAABAACtAgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEALECAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AACxAgAAArUCALUCDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAC5AgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAuQIBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAC5AgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLgBHFF1ZXJ5SWQAASByZXNwb25zZdECASBSZXNwb25zZQABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AAEccXVlcmllcuUCAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHO5AgEYQXNzZXRzAAEsYmVuZWZpY2lhcnnNAQEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHO5AgEYQXNzZXRzAAEQZGVzdM0BASBMb2NhdGlvbgABDHhjba0CARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmSRAgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QVAQEYV2VpZ2h0AAEQY2FsbJUCAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJkAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplZAEMdTMyAAEwbWF4X2NhcGFjaXR5ZAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRkAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yZAEMdTMyAAEYc2VuZGVyZAEMdTMyAAEkcmVjaXBpZW50ZAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EANEBAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADpAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz7QIBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnnNAQEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c+0CASxBc3NldEZpbHRlcgABEGRlc3TNAQEgTG9jYXRpb24AAQx4Y22tAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2Ze0CASxBc3NldEZpbHRlcgABEHdhbnS5AgEYQXNzZXRzAAEcbWF4aW1hbF0BARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRz7QIBLEFzc2V0RmlsdGVyAAEccmVzZXJ2Zc0BASBMb2NhdGlvbgABDHhjba0CARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPtAgEsQXNzZXRGaWx0ZXIAARBkZXN0zQEBIExvY2F0aW9uAAEMeGNtrQIBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm/pAgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHPtAgEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc8ECARRBc3NldAABMHdlaWdodF9saW1pdKkCASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQArQIBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQArQIBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHO5AgEYQXNzZXRzAAEYdGlja2V0zQEBIExvY2F0aW9uABgAEFRyYXAEALgBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS4ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodBUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAuQIBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAuQIBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAOUCAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABpAgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAIUCAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/pAgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhkAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yZAEMdTMyAAE8bWluX2NyYXRlX21pbm9yZAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBADpAgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EANkBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya+EBASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbtEBAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtrQIBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTBAgEUQXNzZXQAASB1bmxvY2tlcs0BASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0wQIBFEFzc2V0AAEYdGFyZ2V0zQEBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXTBAgEUQXNzZXQAARRvd25lcs0BASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTBAgEUQXNzZXQAARhsb2NrZXLNAQEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXddAQEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAzQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdKkCASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbuUCAUBPcHRpb248TG9jYXRpb24+AC8AALkCECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAvQIBKFZlYzxBc3NldD4AAL0CAAACwQIAwQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZMUCARxBc3NldElkAAEMZnVuyQIBLEZ1bmdpYmlsaXR5AADFAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABADNAQEgTG9jYXRpb24AAMkCECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAVQEBEHUxMjgAAAAsTm9uRnVuZ2libGUEAM0CATRBc3NldEluc3RhbmNlAAEAAM0CECxzdGFnaW5nX3hjbQh2NBRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQAVQEBEHUxMjgAAQAYQXJyYXk0BAB0ARxbdTg7IDRdAAIAGEFycmF5OAQAXQIBHFt1ODsgOF0AAwAcQXJyYXkxNgQAYQIBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAgBIFt1ODsgMzJdAAUAANECDCxzdGFnaW5nX3hjbQh2NCBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAuQIBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAGkCAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAA4AThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQA1QIBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BACFAgE4TWF5YmVFcnJvckNvZGUABQAA1QIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHZAgRTAAAEAOECARhWZWM8VD4AANkCDCxzdGFnaW5nX3hjbQh2NChQYWxsZXRJbmZvAAAYARRpbmRleGQBDHUzMgABEG5hbWXdAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZd0CAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yZAEMdTMyAAEUbWlub3JkAQx1MzIAARRwYXRjaGQBDHUzMgAA3QIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADhAgAAAtkCAOUCBBhPcHRpb24EBFQBzQEBCBBOb25lAAAAEFNvbWUEAM0BAAABAADpAgwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uzQEBIExvY2F0aW9uAAEgcXVlcnlfaWS4ARxRdWVyeUlkAAEobWF4X3dlaWdodBUBARhXZWlnaHQAAO0CECxzdGFnaW5nX3hjbQh2NBRhc3NldCxBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAuQIBGEFzc2V0cwAAABBXaWxkBADxAgEkV2lsZEFzc2V0AAEAAPECECxzdGFnaW5nX3hjbQh2NBRhc3NldCRXaWxkQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWTFAgEcQXNzZXRJZAABDGZ1bvUCATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAZAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkxQIBHEFzc2V0SWQAAQxmdW71AgE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRkAQx1MzIAAwAA9QIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAD5Agwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAP0CAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAD9AgAAAgEDAAEDDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BAAFAwEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQABQMBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAFAwEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLgBHFF1ZXJ5SWQAASByZXNwb25zZR0DASBSZXNwb25zZQABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AAEccXVlcmllcj0DAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMFAwEYQXNzZXRzAAEsYmVuZWZpY2lhcnkBAgEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMFAwEYQXNzZXRzAAEQZGVzdAECASBMb2NhdGlvbgABDHhjbfkCARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmSRAgEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHQRAQE4T3B0aW9uPFdlaWdodD4AARBjYWxslQIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmQBDHUzMgABQG1heF9tZXNzYWdlX3NpemVkAQx1MzIAATBtYXhfY2FwYWNpdHlkAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JkAQx1MzIAARhzZW5kZXJkAQx1MzIAASRyZWNpcGllbnRkAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQABQIBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAEEDAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNFAwEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeQECASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzRQMBLEFzc2V0RmlsdGVyAAEQZGVzdAECASBMb2NhdGlvbgABDHhjbfkCARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlRQMBLEFzc2V0RmlsdGVyAAEQd2FudAUDARhBc3NldHMAARxtYXhpbWFsXQEBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNFAwEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlAQIBIExvY2F0aW9uAAEMeGNt+QIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c0UDASxBc3NldEZpbHRlcgABEGRlc3QBAgEgTG9jYXRpb24AAQx4Y235AgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb0EDAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c0UDASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzDQMBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAD5AgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAD5AgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cwUDARhBc3NldHMAARh0aWNrZXQBAgEgTG9jYXRpb24AGAAQVHJhcAQAuAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZLgBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0FQEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAFAwEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAAFAwEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAPQMBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACEDAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAhQIBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb0EDAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGQBDHUzMgABEG5hbWUYARxWZWM8dTg+AAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JkAQx1MzIAATxtaW5fY3JhdGVfbWlub3JkAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAEEDAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQADQIBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrFQIBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uBQIBQEludGVyaW9yTG9jYXRpb24AAQx4Y235AgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldA0DARRBc3NldAABIHVubG9ja2VyAQIBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQNAwEUQXNzZXQAARh0YXJnZXQBAgEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldA0DARRBc3NldAABFG93bmVyAQIBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldA0DARRBc3NldAABGGxvY2tlcgECASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd10BARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBAABAgEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luPQMBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0DQMBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzUQMBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbl0BARBib29sAAEYYXNzZXRzWQMB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbfkCARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW5hAwFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNt+QIBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzZQMBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAAAFAxAsc3RhZ2luZ194Y20IdjUUYXNzZXQYQXNzZXRzAAAEAAkDAShWZWM8QXNzZXQ+AAAJAwAAAg0DAA0DECxzdGFnaW5nX3hjbQh2NRRhc3NldBRBc3NldAAACAEIaWQRAwEcQXNzZXRJZAABDGZ1bhUDASxGdW5naWJpbGl0eQAAEQMQLHN0YWdpbmdfeGNtCHY1FGFzc2V0HEFzc2V0SWQAAAQAAQIBIExvY2F0aW9uAAAVAxAsc3RhZ2luZ194Y20IdjUUYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAFUBARB1MTI4AAAALE5vbkZ1bmdpYmxlBAAZAwE0QXNzZXRJbnN0YW5jZQABAAAZAxAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAFUBARB1MTI4AAEAGEFycmF5NAQAdAEcW3U4OyA0XQACABhBcnJheTgEAF0CARxbdTg7IDhdAAMAHEFycmF5MTYEAGECASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAAAdAwwsc3RhZ2luZ194Y20IdjUgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAAUDARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAAhAwFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAOAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAC0DAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAhQIBOE1heWJlRXJyb3JDb2RlAAUAACEDBBhPcHRpb24EBFQBJQMBCBBOb25lAAAAEFNvbWUEACUDAAABAAAlAwAABAg4KQMAKQMQDHhjbQh2NRh0cmFpdHMURXJyb3IAAaQgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAKAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIANFRvb01hbnlBc3NldHMAIwBMVW5oYW5kbGVkWGNtVmVyc2lvbgAkAEhXZWlnaHRMaW1pdFJlYWNoZWQEABUBARhXZWlnaHQAJQAcQmFycmllcgAmAExXZWlnaHROb3RDb21wdXRhYmxlACcAREV4Y2VlZHNTdGFja0xpbWl0ACgAAC0DDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBMQMEUwAABAA5AwEYVmVjPFQ+AAAxAwwsc3RhZ2luZ194Y20IdjUoUGFsbGV0SW5mbwAAGAEUaW5kZXhkAQx1MzIAARBuYW1lNQMBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWU1AwGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmQBDHUzMgABFG1pbm9yZAEMdTMyAAEUcGF0Y2hkAQx1MzIAADUDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAOQMAAAIxAwA9AwQYT3B0aW9uBARUAQECAQgQTm9uZQAAABBTb21lBAABAgAAAQAAQQMMLHN0YWdpbmdfeGNtCHY1RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABIHF1ZXJ5X2lkuAEcUXVlcnlJZAABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AABFAxAsc3RhZ2luZ194Y20IdjUUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAAUDARhBc3NldHMAAAAQV2lsZAQASQMBJFdpbGRBc3NldAABAABJAxAsc3RhZ2luZ194Y20IdjUUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkEQMBHEFzc2V0SWQAAQxmdW5NAwE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGQBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZBEDARxBc3NldElkAAEMZnVuTQMBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50ZAEMdTMyAAMAAE0DECxzdGFnaW5nX3hjbQh2NRRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAUQMEGE9wdGlvbgQEVAFVAwEIEE5vbmUAAAAQU29tZQQAVQMAAAEAAFUDECxzdGFnaW5nX3hjbQh2NRRhc3NldExBc3NldFRyYW5zZmVyRmlsdGVyAAEMIFRlbGVwb3J0BABFAwEsQXNzZXRGaWx0ZXIAAAA4UmVzZXJ2ZURlcG9zaXQEAEUDASxBc3NldEZpbHRlcgABADxSZXNlcnZlV2l0aGRyYXcEAEUDASxBc3NldEZpbHRlcgACAABZAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAVUDBFMAAAQAXQMBGFZlYzxUPgAAXQMAAAJVAwBhAwQYT3B0aW9uBARUAQUCAQgQTm9uZQAAABBTb21lBAAFAgAAAQAAZQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFpAwRTAAAEAG0DARhWZWM8VD4AAGkDDCxzdGFnaW5nX3hjbQh2NRBIaW50AAEEMEFzc2V0Q2xhaW1lcgQBIGxvY2F0aW9uAQIBIExvY2F0aW9uAAAAAG0DAAACaQMAcQMIDHhjbTxWZXJzaW9uZWRBc3NldHMAAQwIVjMEAEUCATx2Mzo6TXVsdGlBc3NldHMAAwAIVjQEALkCASh2NDo6QXNzZXRzAAQACFY1BAAFAwEodjU6OkFzc2V0cwAFAAB1AwgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAHkDAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAiQMBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BACVAwFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAeQMMDHhjbQh2MwxYY20EEENhbGwAAAQAfQMBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAH0DAAACgQMAgQMMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BABFAgEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBABFAgEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQARQIBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLgBHFF1ZXJ5SWQAASByZXNwb25zZWUCASBSZXNwb25zZQABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AAEccXVlcmllco0CAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c0UCASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5sQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNFAgEsTXVsdGlBc3NldHMAARBkZXN0sQEBNE11bHRpTG9jYXRpb24AAQx4Y205AgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kkQIBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0FQEBGFdlaWdodAABEGNhbGyFAwFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyZAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWQBDHUzMgABMG1heF9jYXBhY2l0eWQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50ZAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmQBDHUzMgABGHNlbmRlcmQBDHUzMgABJHJlY2lwaWVudGQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAC1AQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBACZAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRznQIBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyebEBATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOdAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxAQE0TXVsdGlMb2NhdGlvbgABDHhjbTkCARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlnQIBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50RQIBLE11bHRpQXNzZXRzAAEcbWF4aW1hbF0BARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRznQIBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlsQEBNE11bHRpTG9jYXRpb24AAQx4Y205AgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRznQIBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0sQEBNE11bHRpTG9jYXRpb24AAQx4Y205AgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb5kCAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c50CAUBNdWx0aUFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXNNAgEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdKkCASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAeQMBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQAeQMBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHNFAgEsTXVsdGlBc3NldHMAARh0aWNrZXSxAQE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAC4AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkuAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAEUCASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQARQIBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAjQIBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAaQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBACFAgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvmQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4ZAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmQBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAmQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAC5AQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmvBAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb261AQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtOQIBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXRNAgEoTXVsdGlBc3NldAABIHVubG9ja2VysQEBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldE0CAShNdWx0aUFzc2V0AAEYdGFyZ2V0sQEBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldE0CAShNdWx0aUFzc2V0AAEUb3duZXKxAQE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXRNAgEoTXVsdGlBc3NldAABGGxvY2tlcrEBATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3XQEBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EALEBATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdKkCASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbo0CAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAAhQMMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkGAEcVmVjPHU4PgAAiQMMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABACNAwFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAjQMAAAKRAwCRAwwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAuQIBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEALkCARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAuQIBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWS4ARxRdWVyeUlkAAEgcmVzcG9uc2XRAgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0FQEBGFdlaWdodAABHHF1ZXJpZXLlAgFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzuQIBGEFzc2V0cwABLGJlbmVmaWNpYXJ5zQEBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzuQIBGEFzc2V0cwABEGRlc3TNAQEgTG9jYXRpb24AAQx4Y22tAgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kkQIBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0FQEBGFdlaWdodAABEGNhbGyFAwFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyZAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWQBDHUzMgABMG1heF9jYXBhY2l0eWQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50ZAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmQBDHUzMgABGHNlbmRlcmQBDHUzMgABJHJlY2lwaWVudGQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADRAQFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQA6QIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c+0CASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5zQEBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPtAgEsQXNzZXRGaWx0ZXIAARBkZXN0zQEBIExvY2F0aW9uAAEMeGNtrQIBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmXtAgEsQXNzZXRGaWx0ZXIAARB3YW50uQIBGEFzc2V0cwABHG1heGltYWxdAQEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c+0CASxBc3NldEZpbHRlcgABHHJlc2VydmXNAQEgTG9jYXRpb24AAQx4Y22tAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRz7QIBLEFzc2V0RmlsdGVyAAEQZGVzdM0BASBMb2NhdGlvbgABDHhjba0CARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv6QIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz7QIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPBAgEUQXNzZXQAATB3ZWlnaHRfbGltaXSpAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAIkDASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAIkDASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzuQIBGEFzc2V0cwABGHRpY2tldM0BASBMb2NhdGlvbgAYABBUcmFwBAC4AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkuAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEALkCARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEALkCARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADlAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAaQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBACFAgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZv6QIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4ZAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmQBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQA6QIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADZAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmvhAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27RAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjba0CARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0wQIBFEFzc2V0AAEgdW5sb2NrZXLNAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldMECARRBc3NldAABGHRhcmdldM0BASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0wQIBFEFzc2V0AAEUb3duZXLNAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0wQIBFEFzc2V0AAEYbG9ja2VyzQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3XQEBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAM0BASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXSpAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7lAgFAT3B0aW9uPExvY2F0aW9uPgAvAACVAwwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAJkDAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AACZAwAAAp0DAJ0DDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BAAFAwEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQABQMBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAFAwEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLgBHFF1ZXJ5SWQAASByZXNwb25zZR0DASBSZXNwb25zZQABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AAEccXVlcmllcj0DAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMFAwEYQXNzZXRzAAEsYmVuZWZpY2lhcnkBAgEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMFAwEYQXNzZXRzAAEQZGVzdAECASBMb2NhdGlvbgABDHhjbfkCARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmSRAgEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHQRAQE4T3B0aW9uPFdlaWdodD4AARBjYWxshQMBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmQBDHUzMgABQG1heF9tZXNzYWdlX3NpemVkAQx1MzIAATBtYXhfY2FwYWNpdHlkAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JkAQx1MzIAARhzZW5kZXJkAQx1MzIAASRyZWNpcGllbnRkAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQABQIBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAEEDAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNFAwEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeQECASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzRQMBLEFzc2V0RmlsdGVyAAEQZGVzdAECASBMb2NhdGlvbgABDHhjbfkCARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlRQMBLEFzc2V0RmlsdGVyAAEQd2FudAUDARhBc3NldHMAARxtYXhpbWFsXQEBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNFAwEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlAQIBIExvY2F0aW9uAAEMeGNt+QIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c0UDASxBc3NldEZpbHRlcgABEGRlc3QBAgEgTG9jYXRpb24AAQx4Y235AgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb0EDAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c0UDASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzDQMBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACVAwEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACVAwEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cwUDARhBc3NldHMAARh0aWNrZXQBAgEgTG9jYXRpb24AGAAQVHJhcAQAuAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZLgBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0FQEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAFAwEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAAFAwEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAPQMBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACEDAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAhQIBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb0EDAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGQBDHUzMgABEG5hbWUYARxWZWM8dTg+AAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JkAQx1MzIAATxtaW5fY3JhdGVfbWlub3JkAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAEEDAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQADQIBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrFQIBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uBQIBQEludGVyaW9yTG9jYXRpb24AAQx4Y235AgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldA0DARRBc3NldAABIHVubG9ja2VyAQIBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQNAwEUQXNzZXQAARh0YXJnZXQBAgEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldA0DARRBc3NldAABFG93bmVyAQIBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldA0DARRBc3NldAABGGxvY2tlcgECASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd10BARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBAABAgEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0qQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luPQMBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0DQMBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzUQMBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbl0BARBib29sAAEYYXNzZXRzWQMB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbfkCARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW5hAwFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNtlQMBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzZQMBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAAChAxBQc3RhZ2luZ194Y21fZXhlY3V0b3IYdHJhaXRzOGFzc2V0X3RyYW5zZmVyMFRyYW5zZmVyVHlwZQABECBUZWxlcG9ydAAAADBMb2NhbFJlc2VydmUAAQBIRGVzdGluYXRpb25SZXNlcnZlAAIANFJlbW90ZVJlc2VydmUEAK0BAURWZXJzaW9uZWRMb2NhdGlvbgADAAClAwgMeGNtQFZlcnNpb25lZEFzc2V0SWQAAQwIVjMEAFECASx2Mzo6QXNzZXRJZAADAAhWNAQAxQIBLHY0OjpBc3NldElkAAQACFY1BAARAwEsdjU6OkFzc2V0SWQABQAAqQMMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6tAwxwcGFsbGV0X3hjbV9icmlkZ2VfaHViX3JvdXRlchhwYWxsZXQQQ2FsbAgEVAAESQABBFByZXBvcnRfYnJpZGdlX3N0YXR1cwgBJGJyaWRnZV9pZEABEEgyNTYAATBpc19jb25nZXN0ZWRdAQEQYm9vbAAABKhOb3RpZmljYXRpb24gYWJvdXQgY29uZ2VzdGVkIGJyaWRnZSBxdWV1ZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMusQMMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEIJHJlYXBfcGFnZQgBOG1lc3NhZ2Vfb3JpZ2lutQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAAAQ9AVJlbW92ZSBhIHBhZ2Ugd2hpY2ggaGFzIG5vIG1vcmUgbWVzc2FnZXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBvciBpcyBzdGFsZS5IZXhlY3V0ZV9vdmVyd2VpZ2h0EAE4bWVzc2FnZV9vcmlnaW61AwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEQcGFnZTgBJFBhZ2VJbmRleAABFGluZGV4OAEcVDo6U2l6ZQABMHdlaWdodF9saW1pdBUBARhXZWlnaHQAATR4RXhlY3V0ZSBhbiBvdmVyd2VpZ2h0IG1lc3NhZ2UuAE0BVGVtcG9yYXJ5IHByb2Nlc3NpbmcgZXJyb3JzIHdpbGwgYmUgcHJvcGFnYXRlZCB3aGVyZWFzIHBlcm1hbmVudCBlcnJvcnMgYXJlIHRyZWF0ZWRUYXMgc3VjY2VzcyBjb25kaXRpb24uAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLjUBLSBgbWVzc2FnZV9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgYXJyaXZlZC49AS0gYHBhZ2VgOiBUaGUgcGFnZSBpbiB0aGUgcXVldWUgaW4gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgaXMgc2l0dGluZy4JAS0gYGluZGV4YDogVGhlIGluZGV4IGludG8gdGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkLlkBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBhbGxvd2VkIHRvIGJlIGNvbnN1bWVkIGluIHRoZSBleGVjdXRpb25EICBvZiB0aGUgbWVzc2FnZS4A9EJlbmNobWFyayBjb21wbGV4aXR5IGNvbnNpZGVyYXRpb25zOiBPKGluZGV4ICsgd2VpZ2h0X2xpbWl0KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMutQMIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQAoAEYUGFyYUlkAAIAALkDDIRzbm93YnJpZGdlX3BhbGxldF9zeXN0ZW1fZnJvbnRlbmQYcGFsbGV0EENhbGwEBFQAAQxIc2V0X29wZXJhdGluZ19tb2RlBAEQbW9kZb0DATRPcGVyYXRpbmdNb2RlAAAE6FNldCB0aGUgb3BlcmF0aW5nIG1vZGUgZm9yIGV4cG9ydGluZyBtZXNzYWdlcyB0byBFdGhlcmV1bS44cmVnaXN0ZXJfdG9rZW4MASBhc3NldF9pZK0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEgbWV0YWRhdGHBAwE0QXNzZXRNZXRhZGF0YQABJGZlZV9hc3NldA0DARRBc3NldAABHEkBSW5pdGlhdGVzIHRoZSByZWdpc3RyYXRpb24gZm9yIGEgUG9sa2Fkb3QtbmF0aXZlIHRva2VuIGFzIGEgd3JhcHBlZCBFUkMyMCB0b2tlbiBvbiRFdGhlcmV1bS6MLSBgYXNzZXRfaWRgOiBMb2NhdGlvbiBvZiB0aGUgYXNzZXRBAS0gYG1ldGFkYXRhYDogTWV0YWRhdGEgdG8gaW5jbHVkZSBpbiB0aGUgaW5zdGFudGlhdGVkIEVSQzIwIGNvbnRyYWN0IG9uIEV0aGVyZXVtAF0BQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQsIGhvd2V2ZXIgYGFzc2V0X2lkYCBtdXN0IGJlIGEgbG9jYXRpb24gbmVzdGVkIHdpdGhpbiB0aGUgb3JpZ2luRGNvbnNlbnN1cyBzeXN0ZW0uHGFkZF90aXAIAShtZXNzYWdlX2lkyQMBJE1lc3NhZ2VJZAABFGFzc2V0DQMBFEFzc2V0AAIIRQFBZGQgYW4gYWRkaXRpb25hbCByZWxheWVyIHRpcCBmb3IgYSBjb21taXR0ZWQgbWVzc2FnZSBpZGVudGlmaWVkIGJ5IGBtZXNzYWdlX2lkYC6gVGhlIHRpcCBhc3NldCB3aWxsIGJlIHN3YXBwZWQgZm9yIGV0aGVyLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy69Aww8c25vd2JyaWRnZV9jb3JlOG9wZXJhdGluZ19tb2RlSEJhc2ljT3BlcmF0aW5nTW9kZQABCBhOb3JtYWwAAAAYSGFsdGVkAAEAAMEDCDxzbm93YnJpZGdlX2NvcmU0QXNzZXRNZXRhZGF0YQAADAEQbmFtZcUDAcBCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNRVRBREFUQV9GSUVMRF9NQVhfTEVOPj4AARhzeW1ib2zFAwHAQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUVUQURBVEFfRklFTERfTUFYX0xFTj4+AAEgZGVjaW1hbHMMAQh1OAAAxQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADJAww8c25vd2JyaWRnZV9jb3JlGHJld2FyZCRNZXNzYWdlSWQAAQgcSW5ib3VuZAQAKAEMdTY0AAAAIE91dGJvdW5kBAAoAQx1NjQAAQAAzQMMOHBhbGxldF91dGlsaXR5GHBhbGxldBBDYWxsBARUAAEgFGJhdGNoBAEUY2FsbHPRAwF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAASHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuAFUBVGhpcyB3aWxsIHJldHVybiBgT2tgIGluIGFsbCBjaXJjdW1zdGFuY2VzLiBUbyBkZXRlcm1pbmUgdGhlIHN1Y2Nlc3Mgb2YgdGhlIGJhdGNoLCBhbjEBZXZlbnQgaXMgZGVwb3NpdGVkLiBJZiBhIGNhbGwgZmFpbGVkIGFuZCB0aGUgYmF0Y2ggd2FzIGludGVycnVwdGVkLCB0aGVuIHRoZVUBYEJhdGNoSW50ZXJydXB0ZWRgIGV2ZW50IGlzIGRlcG9zaXRlZCwgYWxvbmcgd2l0aCB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgY2FsbHMgbWFkZU0BYW5kIHRoZSBlcnJvciBvZiB0aGUgZmFpbGVkIGNhbGwuIElmIGFsbCB3ZXJlIHN1Y2Nlc3NmdWwsIHRoZW4gdGhlIGBCYXRjaENvbXBsZXRlZGBMZXZlbnQgaXMgZGVwb3NpdGVkLjRhc19kZXJpdmF0aXZlCAEUaW5kZXjVAwEMdTE2AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AATTcU2VuZCBhIGNhbGwgdGhyb3VnaCBhbiBpbmRleGVkIHBzZXVkb255bSBvZiB0aGUgc2VuZGVyLgBVAUZpbHRlciBmcm9tIG9yaWdpbiBhcmUgcGFzc2VkIGFsb25nLiBUaGUgY2FsbCB3aWxsIGJlIGRpc3BhdGNoZWQgd2l0aCBhbiBvcmlnaW4gd2hpY2i8dXNlIHRoZSBzYW1lIGZpbHRlciBhcyB0aGUgb3JpZ2luIG9mIHRoaXMgY2FsbC4ARQFOT1RFOiBJZiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgYWNjb3VudC1iYXNlZCBmaWx0ZXJpbmcgaXMgbm90IGhvbm9yZWQgKGkuZS5hAWJlY2F1c2UgeW91IGV4cGVjdCBgcHJveHlgIHRvIGhhdmUgYmVlbiB1c2VkIHByaW9yIGluIHRoZSBjYWxsIHN0YWNrIGFuZCB5b3UgZG8gbm90IHdhbnRRAXRoZSBjYWxsIHJlc3RyaWN0aW9ucyB0byBhcHBseSB0byBhbnkgc3ViLWFjY291bnRzKSwgdGhlbiB1c2UgYGFzX211bHRpX3RocmVzaG9sZF8xYHxpbiB0aGUgTXVsdGlzaWcgcGFsbGV0IGluc3RlYWQuAPROT1RFOiBQcmlvciB0byB2ZXJzaW9uICoxMiwgdGhpcyB3YXMgY2FsbGVkIGBhc19saW1pdGVkX3N1YmAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4kYmF0Y2hfYWxsBAEUY2FsbHPRAwF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACNOxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiEBVGhlIHdob2xlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2sgYW5kIGZhaWwgaWYgYW55IG9mIHRoZSBjYWxscyBmYWlsZWQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLGRpc3BhdGNoX2FzCAEkYXNfb3JpZ2lu2QMBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAMYyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADQjIyBDb21wbGV4aXR5HC0gTygxKS4sZm9yY2VfYmF0Y2gEARRjYWxsc9EDAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQ0fFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy7UVW5saWtlIGBiYXRjaGAsIGl0IGFsbG93cyBlcnJvcnMgYW5kIHdvbid0IGludGVycnVwdC4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4ATQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2ggd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLHdpdGhfd2VpZ2h0CAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AARh3ZWlnaHQVAQEYV2VpZ2h0AAUYxERpc3BhdGNoIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgc3BlY2lmaWVkIHdlaWdodC4ALQFUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwsIGFuZCBpbnN0ZWFkIGFsbG93cyB0aGW4Um9vdCBvcmlnaW4gdG8gc3BlY2lmeSB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLhxpZl9lbHNlCAEQbWFpbiABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AASBmYWxsYmFjayABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABlwVAURpc3BhdGNoIGEgZmFsbGJhY2sgY2FsbCBpbiB0aGUgZXZlbnQgdGhlIG1haW4gY2FsbCBmYWlscyB0byBleGVjdXRlLrBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgDkVGhpcyBmdW5jdGlvbiBmaXJzdCBhdHRlbXB0cyB0byBkaXNwYXRjaCB0aGUgYG1haW5gIGNhbGwu1ElmIHRoZSBgbWFpbmAgY2FsbCBmYWlscywgdGhlIGBmYWxsYmFja2AgaXMgYXR0ZW10ZWQuFQFpZiB0aGUgZmFsbGJhY2sgaXMgc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQsIHRoZSB3ZWlnaHRzIG9mIGJvdGggY2FsbHMlAWFyZSBhY2N1bXVsYXRlZCBhbmQgYW4gZXZlbnQgY29udGFpbmluZyB0aGUgbWFpbiBjYWxsIGVycm9yIGlzIGRlcG9zaXRlZC4A3EluIHRoZSBldmVudCBvZiBhIGZhbGxiYWNrIGZhaWx1cmUgdGhlIHdob2xlIGNhbGwgZmFpbHNod2l0aCB0aGUgd2VpZ2h0cyByZXR1cm5lZC4AQQEtIGBtYWluYDogVGhlIG1haW4gY2FsbCB0byBiZSBkaXNwYXRjaGVkLiBUaGlzIGlzIHRoZSBwcmltYXJ5IGFjdGlvbiB0byBleGVjdXRlLj0BLSBgZmFsbGJhY2tgOiBUaGUgZmFsbGJhY2sgY2FsbCB0byBiZSBkaXNwYXRjaGVkIGluIGNhc2UgdGhlIGBtYWluYCBjYWxsIGZhaWxzLgBEIyMgRGlzcGF0Y2ggTG9naWNBAS0gSWYgdGhlIG9yaWdpbiBpcyBgcm9vdGAsIGJvdGggdGhlIG1haW4gYW5kIGZhbGxiYWNrIGNhbGxzIGFyZSBleGVjdXRlZCB3aXRob3V0eCAgYXBwbHlpbmcgYW55IG9yaWdpbiBmaWx0ZXJzLkkBLSBJZiB0aGUgb3JpZ2luIGlzIG5vdCBgcm9vdGAsIHRoZSBvcmlnaW4gZmlsdGVyIGlzIGFwcGxpZWQgdG8gYm90aCB0aGUgYG1haW5gIGFuZEwgIGBmYWxsYmFja2AgY2FsbHMuACwjIyBVc2UgQ2FzZVkBLSBTb21lIHVzZSBjYXNlcyBtaWdodCBpbnZvbHZlIHN1Ym1pdHRpbmcgYSBgYmF0Y2hgIHR5cGUgY2FsbCBpbiBlaXRoZXIgbWFpbiwgZmFsbGJhY2soICBvciBib3RoLlBkaXNwYXRjaF9hc19mYWxsaWJsZQgBJGFzX29yaWdpbtkDAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAHFMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgBRAUFsbW9zdCB0aGUgc2FtZSBhcyBbYFBhbGxldDo6ZGlzcGF0Y2hfYXNgXSBidXQgZm9yd2FyZHMgYW55IGVycm9yIG9mIHRoZSBpbm5lciBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RAwAAAiAA1QMAAAUEANkDCFxhc3NldF9odWJfcGFzZW9fcnVudGltZTBPcmlnaW5DYWxsZXIAARQYc3lzdGVtBADdAwF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAsUG9sa2Fkb3RYY20EAOEDAUhwYWxsZXRfeGNtOjpPcmlnaW4AHwAoQ3VtdWx1c1hjbQQA5QMBaGN1bXVsdXNfcGFsbGV0X3hjbTo6T3JpZ2luACAAHE9yaWdpbnMEAOkDAXRwYWxsZXRfY3VzdG9tX29yaWdpbnM6Ok9yaWdpbgA/ABhSZXZpdmUEAO0DAXhwYWxsZXRfcmV2aXZlOjpPcmlnaW48UnVudGltZT4AZAAA3QMMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBBAEQEFJvb3QAAAAYU2lnbmVkBAAEASRBY2NvdW50SWQAAQAQTm9uZQACAChBdXRob3JpemVkAAMAAOEDDChwYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgMWGNtBAABAgEgTG9jYXRpb24AAAAgUmVzcG9uc2UEAAECASBMb2NhdGlvbgABAADlAwxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgUUmVsYXkAAABAU2libGluZ1BhcmFjaGFpbgQAoAEYUGFyYUlkAAEAAOkDFFxhc3NldF9odWJfcGFzZW9fcnVudGltZShnb3Zlcm5hbmNlHG9yaWdpbnNUcGFsbGV0X2N1c3RvbV9vcmlnaW5zGE9yaWdpbgABPDBTdGFraW5nQWRtaW4AAAAkVHJlYXN1cmVyAAEAPEZlbGxvd3NoaXBBZG1pbgACADBHZW5lcmFsQWRtaW4AAwAwQXVjdGlvbkFkbWluAAQAKExlYXNlQWRtaW4ABQBMUmVmZXJlbmR1bUNhbmNlbGxlcgAGAEBSZWZlcmVuZHVtS2lsbGVyAAcALFNtYWxsVGlwcGVyAAgAJEJpZ1RpcHBlcgAJADBTbWFsbFNwZW5kZXIACgA0TWVkaXVtU3BlbmRlcgALAChCaWdTcGVuZGVyAAwARFdoaXRlbGlzdGVkQ2FsbGVyAA0ANFdpc2hGb3JDaGFuZ2UADgAA7QMMNHBhbGxldF9yZXZpdmUYcGFsbGV0GE9yaWdpbgQEVAHxAwEEOEV0aFRyYW5zYWN0aW9uBAAEATBUOjpBY2NvdW50SWQAAAAA8QMIXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lHFJ1bnRpbWUAAAAA9QMMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQQQ2FsbAQEVAABFFBhc19tdWx0aV90aHJlc2hvbGRfMQgBRG90aGVyX3NpZ25hdG9yaWVzYQEBRFZlYzxUOjpBY2NvdW50SWQ+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xk1QMBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzYQEBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW50+QMBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEobWF4X3dlaWdodBUBARhXZWlnaHQAAZxVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4AsElmIHRoZXJlIGFyZSBlbm91Z2gsIHRoZW4gZGlzcGF0Y2ggdGhlIGNhbGwuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuAB0BTk9URTogVW5sZXNzIHRoaXMgaXMgdGhlIGZpbmFsIGFwcHJvdmFsLCB5b3Ugd2lsbCBnZW5lcmFsbHkgd2FudCB0byB1c2UZAWBhcHByb3ZlX2FzX211bHRpYCBpbnN0ZWFkLCBzaW5jZSBpdCBvbmx5IHJlcXVpcmVzIGEgaGFzaCBvZiB0aGUgY2FsbC4AWQFSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQgaWYgYHRocmVzaG9sZGAgaXMgZXhhY3RseSBgMWAuIE90aGVyd2lzZVUBb24gc3VjY2VzcywgcmVzdWx0IGlzIGBPa2AgYW5kIHRoZSByZXN1bHQgZnJvbSB0aGUgaW50ZXJpb3IgY2FsbCwgaWYgaXQgd2FzIGV4ZWN1dGVkLNxtYXkgYmUgZm91bmQgaW4gdGhlIGRlcG9zaXRlZCBgTXVsdGlzaWdFeGVjdXRlZGAgZXZlbnQuADQjIyBDb21wbGV4aXR5UC0gYE8oUyArIFogKyBDYWxsKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuIQEtIE9uZSBjYWxsIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhaKWAgd2hlcmUgYFpgIGlzIHR4LWxlbi68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQubC0gVGhlIHdlaWdodCBvZiB0aGUgYGNhbGxgLk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC5AYXBwcm92ZV9hc19tdWx0aRQBJHRocmVzaG9sZNUDAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc2EBAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludPkDAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASRjYWxsX2hhc2gIASBbdTg7IDMyXQABKG1heF93ZWlnaHQVAQEYV2VpZ2h0AAJ4VQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANQFOT1RFOiBJZiB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgd2FudCB0byB1c2UgYGFzX211bHRpYCBpbnN0ZWFkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLjxjYW5jZWxfYXNfbXVsdGkQASR0aHJlc2hvbGTVAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXNhAQFEVmVjPFQ6OkFjY291bnRJZD4AASR0aW1lcG9pbnT9AwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABJGNhbGxfaGFzaAgBIFt1ODsgMzJdAANUVQFDYW5jZWwgYSBwcmUtZXhpc3RpbmcsIG9uLWdvaW5nIG11bHRpc2lnIHRyYW5zYWN0aW9uLiBBbnkgZGVwb3NpdCByZXNlcnZlZCBwcmV2aW91c2x5xGZvciB0aGlzIG9wZXJhdGlvbiB3aWxsIGJlIHVucmVzZXJ2ZWQgb24gc3VjY2Vzcy4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5Ll0BLSBgdGltZXBvaW50YDogVGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZCB0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFseHRyYW5zYWN0aW9uIGZvciB0aGlzIGRpc3BhdGNoLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAuMC0gT25lIGV2ZW50LoQtIEkvTzogMSByZWFkIGBPKFMpYCwgb25lIHJlbW92ZS5wLSBTdG9yYWdlOiByZW1vdmVzIG9uZSBpdGVtLjBwb2tlX2RlcG9zaXQMASR0aHJlc2hvbGTVAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXNhAQFEVmVjPFQ6OkFjY291bnRJZD4AASRjYWxsX2hhc2gIASBbdTg7IDMyXQAENPRQb2tlIHRoZSBkZXBvc2l0IHJlc2VydmVkIGZvciBhbiBleGlzdGluZyBtdWx0aXNpZyBvcGVyYXRpb24uAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgdGhlIG9yaWdpbmFsIGRlcG9zaXRvciBvZlx0aGUgbXVsdGlzaWcgb3BlcmF0aW9uLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AGQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBuZWVkZWQgZm9yIHRoaXMgbXVsdGlzaWcuPQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gYXJlIHBhcnQgb2YgdGhlLCAgbXVsdGlzaWcuBQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0aGlzIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgZm9yLgCMRW1pdHMgYERlcG9zaXRQb2tlZGAgaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu+QMEGE9wdGlvbgQEVAH9AwEIEE5vbmUAAAAQU29tZQQA/QMAAAEAAP0DCDxwYWxsZXRfbXVsdGlzaWckVGltZXBvaW50BCxCbG9ja051bWJlcgE4AAgBGGhlaWdodDgBLEJsb2NrTnVtYmVyAAEUaW5kZXg4AQx1MzIAAAEEDDBwYWxsZXRfcHJveHkYcGFsbGV0EENhbGwEBFQAASwUcHJveHkMARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBlBQQBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AACRNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLmEBLSBgZm9yY2VfcHJveHlfdHlwZWA6IFNwZWNpZnkgdGhlIGV4YWN0IHByb3h5IHR5cGUgdG8gYmUgdXNlZCBhbmQgY2hlY2tlZCBmb3IgdGhpcyBjYWxsLtAtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuJGFkZF9wcm94eQwBIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlCQQBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4AASRFAVJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOhEBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIG1ha2UgYSBwcm94eS78LSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBhbGxvd2VkIGZvciB0aGlzIHByb3h5IGFjY291bnQuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLjByZW1vdmVfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZQkEATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAIcqFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOiUBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIHJlbW92ZSBhcyBhIHByb3h5LkEBLSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgdGhlIHJlbW92ZWQgcHJveHkgYWNjb3VudC44cmVtb3ZlX3Byb3hpZXMAAxi0VW5yZWdpc3RlciBhbGwgcHJveHkgYWNjb3VudHMgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AXQFXQVJOSU5HOiBUaGlzIG1heSBiZSBjYWxsZWQgb24gYWNjb3VudHMgY3JlYXRlZCBieSBgY3JlYXRlX3B1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZQkEATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXjVAwEMdTE2AARIOQFTcGF3biBhIGZyZXNoIG5ldyBhY2NvdW50IHRoYXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvdGhlcndpc2UgaW5hY2Nlc3NpYmxlLCBhbmT8aW5pdGlhbGl6ZSBpdCB3aXRoIGEgcHJveHkgb2YgYHByb3h5X3R5cGVgIGZvciBgb3JpZ2luYCBzZW5kZXIuAGxSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbi4AUQEtIGBwcm94eV90eXBlYDogVGhlIHR5cGUgb2YgdGhlIHByb3h5IHRoYXQgdGhlIHNlbmRlciB3aWxsIGJlIHJlZ2lzdGVyZWQgYXMgb3ZlciB0aGVNAW5ldyBhY2NvdW50LiBUaGlzIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB0aGUgbW9zdCBwZXJtaXNzaXZlIGBQcm94eVR5cGVgIHBvc3NpYmxlIHRveGFsbG93IGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LlEBLSBgaW5kZXhgOiBBIGRpc2FtYmlndWF0aW9uIGluZGV4LCBpbiBjYXNlIHRoaXMgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBzYW1lXQF0cmFuc2FjdGlvbiAoZS5nLiB3aXRoIGB1dGlsaXR5OjpiYXRjaGApLiBVbmxlc3MgeW91J3JlIHVzaW5nIGBiYXRjaGAgeW91IHByb2JhYmx5IGp1c3RAd2FudCB0byB1c2UgYDBgLk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4AUQFGYWlscyB3aXRoIGBEdXBsaWNhdGVgIGlmIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgaW4gdGhpcyB0cmFuc2FjdGlvbiwgZnJvbSB0aGWYc2FtZSBzZW5kZXIsIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycy4A5EZhaWxzIGlmIHRoZXJlIGFyZSBpbnN1ZmZpY2llbnQgZnVuZHMgdG8gcGF5IGZvciBkZXBvc2l0LiRraWxsX3B1cmUUARxzcGF3bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlCQQBMFQ6OlByb3h5VHlwZQABFGluZGV41QMBDHUxNgABGGhlaWdodGQBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZXh0X2luZGV4ZAEMdTMyAAVAoFJlbW92ZXMgYSBwcmV2aW91c2x5IHNwYXduZWQgcHVyZSBwcm94eS4ASQFXQVJOSU5HOiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKiBBbnkgZnVuZHMgaGVsZCBpbiBpdCB3aWxsIGJlNGluYWNjZXNzaWJsZS4AWQFSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbiwgYW5kIHRoZSBzZW5kZXIgYWNjb3VudCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGEgY2FsbCB0b7BgY3JlYXRlX3B1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgBVAS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBjcmVhdGVfcHVyZWAgdG8gY3JlYXRlIHRoaXMgYWNjb3VudC5VAS0gYGluZGV4YDogVGhlIGRpc2FtYmlndWF0aW9uIGluZGV4IG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBjcmVhdGVfcHVyZWAuIFByb2JhYmx5IGAwYC4JAS0gYHByb3h5X3R5cGVgOiBUaGUgcHJveHkgdHlwZSBvcmlnaW5hbGx5IHBhc3NlZCB0byBgY3JlYXRlX3B1cmVgLkUBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgY3JlYXRlX3B1cmVgIHdhcyBwcm9jZXNzZWQuUQEtIGBleHRfaW5kZXhgOiBUaGUgZXh0cmluc2ljIGluZGV4IGluIHdoaWNoIHRoZSBjYWxsIHRvIGBjcmVhdGVfcHVyZWAgd2FzIHByb2Nlc3NlZC4ANQFGYWlscyB3aXRoIGBOb1Blcm1pc3Npb25gIGluIGNhc2UgdGhlIGNhbGxlciBpcyBub3QgYSBwcmV2aW91c2x5IGNyZWF0ZWQgcHVyZfhhY2NvdW50IHdob3NlIGBjcmVhdGVfcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaEABNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2hAATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaEABNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGUFBAFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LjBwb2tlX2RlcG9zaXQACiBJAVBva2UgLyBBZGp1c3QgZGVwb3NpdHMgbWFkZSBmb3IgcHJveGllcyBhbmQgYW5ub3VuY2VtZW50cyBiYXNlZCBvbiBjdXJyZW50IHZhbHVlcy4NAVRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gcG9zc2libHkgbG93ZXIgdGhlaXIgbG9ja2VkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgUEBBhPcHRpb24EBFQBCQQBCBBOb25lAAAAEFNvbWUEAAkEAAABAAAJBAhcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWUkUHJveHlUeXBlAAE0DEFueQAAACxOb25UcmFuc2ZlcgABACxDYW5jZWxQcm94eQACABhBc3NldHMAAwAoQXNzZXRPd25lcgAEADBBc3NldE1hbmFnZXIABQAgQ29sbGF0b3IABgAoR292ZXJuYW5jZQAHABxTdGFraW5nAAgAPE5vbWluYXRpb25Qb29scwAJABxBdWN0aW9uAAoAQFBhcmFSZWdpc3RyYXRpb24ACwA8U3Rha2luZ09wZXJhdG9yAAwAAA0EDDhwYWxsZXRfaW5kaWNlcxhwYWxsZXQQQ2FsbAQEVAABGBRjbGFpbQQBFGluZGV4OAE8VDo6QWNjb3VudEluZGV4AAAwmEFzc2lnbiBhbiBwcmV2aW91c2x5IHVuYXNzaWduZWQgaW5kZXguANxQYXltZW50OiBgRGVwb3NpdGAgaXMgcmVzZXJ2ZWQgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A8C0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIGNsYWltZWQuIFRoaXMgbXVzdCBub3QgYmUgaW4gdXNlLgCQRW1pdHMgYEluZGV4QXNzaWduZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLiB0cmFuc2ZlcggBDG5ldwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXg4ATxUOjpBY2NvdW50SW5kZXgAATBdAUFzc2lnbiBhbiBpbmRleCBhbHJlYWR5IG93bmVkIGJ5IHRoZSBzZW5kZXIgdG8gYW5vdGhlciBhY2NvdW50LiBUaGUgYmFsYW5jZSByZXNlcnZhdGlvbrhpcyBlZmZlY3RpdmVseSB0cmFuc2ZlcnJlZCB0byB0aGUgbmV3IGFjY291bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AJQEtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSByZS1hc3NpZ25lZC4gVGhpcyBtdXN0IGJlIG93bmVkIGJ5IHRoZSBzZW5kZXIuXQEtIGBuZXdgOiB0aGUgbmV3IG93bmVyIG9mIHRoZSBpbmRleC4gVGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGlmIGl0IGlzIGVxdWFsIHRvIHNlbmRlci4AkEVtaXRzIGBJbmRleEFzc2lnbmVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4QZnJlZQQBFGluZGV4OAE8VDo6QWNjb3VudEluZGV4AAIwlEZyZWUgdXAgYW4gaW5kZXggb3duZWQgYnkgdGhlIHNlbmRlci4AXQFQYXltZW50OiBBbnkgcHJldmlvdXMgZGVwb3NpdCBwbGFjZWQgZm9yIHRoZSBpbmRleCBpcyB1bnJlc2VydmVkIGluIHRoZSBzZW5kZXIgYWNjb3VudC4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IG93biB0aGUgaW5kZXguAA0BLSBgaW5kZXhgOiB0aGUgaW5kZXggdG8gYmUgZnJlZWQuIFRoaXMgbXVzdCBiZSBvd25lZCBieSB0aGUgc2VuZGVyLgCERW1pdHMgYEluZGV4RnJlZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLjhmb3JjZV90cmFuc2ZlcgwBDG5ldwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXg4ATxUOjpBY2NvdW50SW5kZXgAARhmcmVlemVdAQEQYm9vbAADNFUBRm9yY2UgYW4gaW5kZXggdG8gYW4gYWNjb3VudC4gVGhpcyBkb2Vzbid0IHJlcXVpcmUgYSBkZXBvc2l0LiBJZiB0aGUgaW5kZXggaXMgYWxyZWFkeehoZWxkLCB0aGVuIGFueSBkZXBvc2l0IGlzIHJlaW1idXJzZWQgdG8gaXRzIGN1cnJlbnQgb3duZXIuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uAKQtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSAocmUtKWFzc2lnbmVkLl0BLSBgbmV3YDogdGhlIG5ldyBvd25lciBvZiB0aGUgaW5kZXguIFRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcCBpZiBpdCBpcyBlcXVhbCB0byBzZW5kZXIuQQEtIGBmcmVlemVgOiBpZiBzZXQgdG8gYHRydWVgLCB3aWxsIGZyZWV6ZSB0aGUgaW5kZXggc28gaXQgY2Fubm90IGJlIHRyYW5zZmVycmVkLgCQRW1pdHMgYEluZGV4QXNzaWduZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLhhmcmVlemUEARRpbmRleDgBPFQ6OkFjY291bnRJbmRleAAEMEEBRnJlZXplIGFuIGluZGV4IHNvIGl0IHdpbGwgYWx3YXlzIHBvaW50IHRvIHRoZSBzZW5kZXIgYWNjb3VudC4gVGhpcyBjb25zdW1lcyB0aGUgZGVwb3NpdC4AWQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGhhdmUgYWxub24tZnJvemVuIGFjY291bnQgYGluZGV4YC4ArC0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIGZyb3plbiBpbiBwbGFjZS4AiEVtaXRzIGBJbmRleEZyb3plbmAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuMHBva2VfZGVwb3NpdAQBFGluZGV4OAE8VDo6QWNjb3VudEluZGV4AAUonFBva2UgdGhlIGRlcG9zaXQgcmVzZXJ2ZWQgZm9yIGFuIGluZGV4LgBZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgaGF2ZSBhbG5vbi1mcm96ZW4gYWNjb3VudCBgaW5kZXhgLgBZAVRoZSB0cmFuc2FjdGlvbiBmZWVzIGlzIHdhaXZlZCBpZiB0aGUgZGVwb3NpdCBpcyBjaGFuZ2VkIGFmdGVyIHBva2luZy9yZWNvbnNpZGVyYXRpb24uAPwtIGBpbmRleGA6IHRoZSBpbmRleCB3aG9zZSBkZXBvc2l0IGlzIHRvIGJlIHBva2VkL3JlY29uc2lkZXJlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhEEDDRwYWxsZXRfYXNzZXRzGHBhbGxldBBDYWxsCARUAARJAAGIGGNyZWF0ZQwBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASxtaW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlAABM6Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHVibGljIG9yaWdpbi4AJQFUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgC8RnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBieSBgQXNzZXREZXBvc2l0YC4ALFBhcmFtZXRlcnM6WQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2icbWVtYmVyIG9mIHRoZSBhc3NldCBjbGFzcydzIGFkbWluIHRlYW0uTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZRABCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50XQEBEGJvb2wAASxtaW5fYmFsYW5jZVUBAShUOjpCYWxhbmNlAAFM+Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHJpdmlsZWdlZCBvcmlnaW4uALRUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseS4ApFRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAuAJxVbmxpa2UgYGNyZWF0ZWAsIG5vIGZ1bmRzIGFyZSByZXNlcnZlZC4AWQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgb3duZXJgOiBUaGUgb3duZXIgb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBvd25lciBoYXMgZnVsbCBzdXBlcnVzZXIgcGVybWlzc2lvbnMlAW92ZXIgdGhpcyBhc3NldCwgYnV0IG1heSBsYXRlciBjaGFuZ2UgYW5kIGNvbmZpZ3VyZSB0aGUgcGVybWlzc2lvbnMgdXNpbmeQYHRyYW5zZmVyX293bmVyc2hpcGAgYW5kIGBzZXRfdGVhbWAuTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCsRW1pdHMgYEZvcmNlQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWA0c3RhcnRfZGVzdHJveQQBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgACMNxTdGFydCB0aGUgcHJvY2VzcyBvZiBkZXN0cm95aW5nIGEgZnVuZ2libGUgYXNzZXQgY2xhc3MuAFkBYHN0YXJ0X2Rlc3Ryb3lgIGlzIHRoZSBmaXJzdCBpbiBhIHNlcmllcyBvZiBleHRyaW5zaWNzIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCwgdG8gYWxsb3d4ZGVzdHJ1Y3Rpb24gb2YgYW4gYXNzZXQgY2xhc3MuAFEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSBhc3NldCdzIGBvd25lcmAuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4ASQFJdCB3aWxsIGZhaWwgd2l0aCBlaXRoZXIgW2BFcnJvcjo6Q29udGFpbnNIb2xkc2BdIG9yIFtgRXJyb3I6OkNvbnRhaW5zRnJlZXplc2BdIGlmuGFuIGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS5AZGVzdHJveV9hY2NvdW50cwQBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgADMMxEZXN0cm95IGFsbCBhY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBhc3NldC4AXQFgZGVzdHJveV9hY2NvdW50c2Agc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGWEYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuAF0BRHVlIHRvIHdlaWdodCByZXN0cmljdGlvbnMsIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGZ1bGx5MQFkZXN0cm95IGFsbCBhY2NvdW50cy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhY2NvdW50cyBhdCBhIHRpbWUuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A1EVhY2ggY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRBY2NvdW50c2AgZXZlbnQuRGRlc3Ryb3lfYXBwcm92YWxzBAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAQwYQFEZXN0cm95IGFsbCBhcHByb3ZhbHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQgdXAgdG8gdGhlIG1heCAoVDo6UmVtb3ZlSXRlbXNMaW1pdCkuAGEBYGRlc3Ryb3lfYXBwcm92YWxzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHk5AWRlc3Ryb3kgYWxsIGFwcHJvdmFscy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhcHByb3ZhbHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANhFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQXBwcm92YWxzYCBldmVudC44ZmluaXNoX2Rlc3Ryb3kEAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIABSjEQ29tcGxldGUgZGVzdHJveWluZyBhc3NldCBhbmQgdW5yZXNlcnZlIGN1cnJlbmN5LgBVAWBmaW5pc2hfZGVzdHJveWAgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGVZAWFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLiBBbGwgYWNjb3VudHMgb3IgYXBwcm92YWxzIHNob3VsZCBiZSBkZXN0cm95ZWQgYmVmb3JlFGhhbmQuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A4EVhY2ggc3VjY2Vzc2Z1bCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZGAgZXZlbnQuEG1pbnQMAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxiZW5lZmljaWFyeQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UABjCITWludCBhc3NldHMgb2YgYSBwYXJ0aWN1bGFyIGNsYXNzLgA5AVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBhc3NldCBgaWRgLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBtaW50ZWQuDQEtIGBiZW5lZmljaWFyeWA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkIHdpdGggdGhlIG1pbnRlZCBhc3NldHMuxC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIGFzc2V0IHRvIGJlIG1pbnRlZC4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgVQFNb2RlczogUHJlLWV4aXN0aW5nIGJhbGFuY2Ugb2YgYGJlbmVmaWNpYXJ5YDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mIGBiZW5lZmljaWFyeWAuEGJ1cm4MAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAc8RQFSZWR1Y2UgdGhlIGJhbGFuY2Ugb2YgYHdob2AgYnkgYXMgbXVjaCBhcyBwb3NzaWJsZSB1cCB0byBgYW1vdW50YCBhc3NldHMgb2YgYGlkYC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBNYW5hZ2VyIG9mIHRoZSBhc3NldCBgaWRgLgDQQmFpbHMgd2l0aCBgTm9BY2NvdW50YCBpZiB0aGUgYHdob2AgaXMgYWxyZWFkeSBkZWFkLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBidXJuZWQuoC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGRlYml0ZWQgZnJvbS4pAS0gYGFtb3VudGA6IFRoZSBtYXhpbXVtIGFtb3VudCBieSB3aGljaCBgd2hvYCdzIGJhbGFuY2Ugc2hvdWxkIGJlIHJlZHVjZWQuAFEBRW1pdHMgYEJ1cm5lZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCBidXJuZWQuIElmIHRoaXMgdGFrZXMgdGhlIGJhbGFuY2UgdG8gYmVsb3cgdGhlOQFtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCBidXJuZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgCQFNb2RlczogUG9zdC1leGlzdGVuY2Ugb2YgYHdob2A7IFByZSAmIHBvc3QgWm9tYmllLXN0YXR1cyBvZiBgd2hvYC4gdHJhbnNmZXIMAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAhI0E1vdmUgc29tZSBhc3NldHMgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQgdG8gYW5vdGhlci4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLkx0cmFuc2Zlcl9rZWVwX2FsaXZlDAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRVAQEoVDo6QmFsYW5jZQAJSFkBTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLCBrZWVwaW5nIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZS4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLjhmb3JjZV90cmFuc2ZlchABCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UACky0TW92ZSBzb21lIGFzc2V0cyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6YLSBgc291cmNlYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZC6ULSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgYHNvdXJjZWAncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRZAWBkZXN0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluTQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgYHNvdXJjZWAgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dNRiZWxvdyB0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGBkZXN0YDsgUG9zdC1leGlzdGVuY2Ugb2YgYHNvdXJjZWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZhxgZGVzdGAuGGZyZWV6ZQgBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAswVQFEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgb2YgYW4gYXNzZXQgYGlkYCBmcm9tIGFuIGFjY291bnQgYHdob2AuIGB3aG9gTQFtdXN0IGFscmVhZHkgZXhpc3QgYXMgYW4gZW50cnkgaW4gYEFjY291bnRgcyBvZiB0aGUgYXNzZXQuIElmIHlvdSB3YW50IHRvIGZyZWV6ZSBhbvRhY2NvdW50IHRoYXQgZG9lcyBub3QgaGF2ZSBhbiBlbnRyeSwgdXNlIGB0b3VjaF9vdGhlcmAgZmlyc3QuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6ILSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZnJvemVuLgA8RW1pdHMgYEZyb3plbmAuADhXZWlnaHQ6IGBPKDEpYBB0aGF3CAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADCjoQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyB0byBhbmQgZnJvbSBhbiBhY2NvdW50IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1bmZyb3plbi4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWAwZnJlZXplX2Fzc2V0BAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAA0k8ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGNsYXNzLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgKHRoYXdfYXNzZXQEAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADiTEQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgdGhhd2VkLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA8odENoYW5nZSB0aGUgT3duZXIgb2YgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQuAFRFbWl0cyBgT3duZXJDaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgIHNldF90ZWFtEAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4ABFAeFNldCB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDYRnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE6UQFgTWV0YWRhdGFEZXBvc2l0QmFzZSArIE1ldGFkYXRhRGVwb3NpdFBlckJ5dGUgKiAobmFtZS5sZW4gKyBzeW1ib2wubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgA4V2VpZ2h0OiBgTygxKWA4Y2xlYXJfbWV0YWRhdGEEAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAEiyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4ApEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgYXNzZXQgb3duZXIuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2Vfc2V0X21ldGFkYXRhFAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbl0BARBib29sABM4uEZvcmNlIHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQgdG8gc29tZSB2YWx1ZS4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBoQW55IGRlcG9zaXQgaXMgbGVmdCBhbG9uZS4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgBRAVdlaWdodDogYE8oTiArIFMpYCB3aGVyZSBOIGFuZCBTIGFyZSB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIGFuZCBzeW1ib2wgcmVzcGVjdGl2ZWx5LlBmb3JjZV9jbGVhcl9tZXRhZGF0YQQBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAULIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGBBbnkgZGVwb3NpdCBpcyByZXR1cm5lZC4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9hc3NldF9zdGF0dXMgAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2VVAQEoVDo6QmFsYW5jZQABNGlzX3N1ZmZpY2llbnRdAQEQYm9vbAABJGlzX2Zyb3plbl0BARBib29sABVYmEFsdGVyIHRoZSBhdHRyaWJ1dGVzIG9mIGEgZ2l2ZW4gYXNzZXQuAHRPcmlnaW4gbXVzdCBiZSBgRm9yY2VPcmlnaW5gLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQunC0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGFzc2V0LqQtIGBpc3N1ZXJgOiBUaGUgbmV3IElzc3VlciBvZiB0aGlzIGFzc2V0LpwtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBhc3NldC6sLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGFzc2V0Lk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby5RAS0gYGlzX3N1ZmZpY2llbnRgOiBXaGV0aGVyIGEgbm9uLXplcm8gYmFsYW5jZSBvZiB0aGlzIGFzc2V0IGlzIGRlcG9zaXQgb2Ygc3VmZmljaWVudE0BdmFsdWUgdG8gYWNjb3VudCBmb3IgdGhlIHN0YXRlIGJsb2F0IGFzc29jaWF0ZWQgd2l0aCBpdHMgYmFsYW5jZSBzdG9yYWdlLiBJZiBzZXQgdG9VAWB0cnVlYCwgdGhlbiBub24temVybyBiYWxhbmNlcyBtYXkgYmUgc3RvcmVkIHdpdGhvdXQgYSBgY29uc3VtZXJgIHJlZmVyZW5jZSAoYW5kIHRodXNNAWFuIEVEIGluIHRoZSBCYWxhbmNlcyBwYWxsZXQgb3Igd2hhdGV2ZXIgZWxzZSBpcyB1c2VkIHRvIGNvbnRyb2wgdXNlci1hY2NvdW50IHN0YXRlIGdyb3d0aCkuPQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoaXMgYXNzZXQgY2xhc3MgaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A6EVtaXRzIGBBc3NldFN0YXR1c0NoYW5nZWRgIHdpdGggdGhlIGlkZW50aXR5IG9mIHRoZSBhc3NldC4AOFdlaWdodDogYE8oMSlgQGFwcHJvdmVfdHJhbnNmZXIMAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AFzRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZXJlIG11c3QgYmUgYW4gYXBwcm92YWwgaW4gcGxhY2UgYmV0d2VlbiBzaWduZXIgYW5kLGBkZWxlZ2F0ZWAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBUZm9yY2VfY2FuY2VsX2FwcHJvdmFsDAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsZGVzdGluYXRpb24AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlABlITQFUcmFuc2ZlciBzb21lIGFzc2V0IGJhbGFuY2UgZnJvbSBhIHByZXZpb3VzbHkgZGVsZWdhdGVkIGFjY291bnQgdG8gc29tZSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBieSB0aGUgYG93bmVyYCB0byB0aGUcc2lnbmVyLgBZAUlmIHRoZSBlbnRpcmUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2ZlciBpcyB0cmFuc2ZlcnJlZCwgdGhlbiBhbnkgZGVwb3NpdCBwcmV2aW91c2x5tHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBpcyB1bnJlc2VydmVkLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuYQEtIGBvd25lcmA6IFRoZSBhY2NvdW50IHdoaWNoIHByZXZpb3VzbHkgYXBwcm92ZWQgZm9yIGEgdHJhbnNmZXIgb2YgYXQgbGVhc3QgYGFtb3VudGAgYW5kvGZyb20gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugd2lsbCBiZSB3aXRoZHJhd24uYQEtIGBkZXN0aW5hdGlvbmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIG9mIGBhbW91bnRgIHdpbGwgYmUgdHJhbnNmZXJyZWQutC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgYXNzZXRzIHRvIHRyYW5zZmVyLgCcRW1pdHMgYFRyYW5zZmVycmVkQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYBR0b3VjaAQBCGlkZAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAaJMBDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3Igbm9uLXByb3ZpZGVyIGFzc2V0cy4AwEEgZGVwb3NpdCB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHNpZ25lciBhY2NvdW50LgBdAS0gYG9yaWdpbmA6IE11c3QgYmUgU2lnbmVkOyB0aGUgc2lnbmVyIGFjY291bnQgbXVzdCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZm9yIGEgZGVwb3NpdDggIHRvIGJlIHRha2VuLgkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IHRvIGJlIGNyZWF0ZWQuAJhFbWl0cyBgVG91Y2hlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLhhyZWZ1bmQIAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAShhbGxvd19idXJuXQEBEGJvb2wAGzRZAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhbiBhc3NldCBhY2NvdW50IG9yIGEgY29uc3VtZXIgcmVmZXJlbmNlIChpZiBhbnkpIG9mIGFuIGFjY291bnQuAGhUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLgA9AS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB3aGljaCB0aGUgY2FsbGVyIHdvdWxkIGxpa2UgdGhlIGRlcG9zaXQsICByZWZ1bmRlZC5dAS0gYGFsbG93X2J1cm5gOiBJZiBgdHJ1ZWAgdGhlbiBhc3NldHMgbWF5IGJlIGRlc3Ryb3llZCBpbiBvcmRlciB0byBjb21wbGV0ZSB0aGUgcmVmdW5kLgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWbUdGhlIGFzc2V0IGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS4AnEVtaXRzIGBSZWZ1bmRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxzZXRfbWluX2JhbGFuY2UIAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxtaW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlABwwlFNldHMgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBhbiBhc3NldC4AIQFPbmx5IHdvcmtzIGlmIHRoZXJlIGFyZW4ndCBhbnkgYWNjb3VudHMgdGhhdCBhcmUgaG9sZGluZyB0aGUgYXNzZXQgb3IgaWbgdGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgIGlzIGxlc3MgdGhhbiB0aGUgb2xkIG9uZS4A/E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBoYXMgdG8gYmUgdGhlIE93bmVyIG9mIHRoZSxhc3NldCBgaWRgLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuwC0gYG1pbl9iYWxhbmNlYDogVGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4sdG91Y2hfb3RoZXIIAQhpZGQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAdLIhDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3IgYHdob2AuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi5hAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLCB0aGUgYXNzZXQgc3RhdHVzIG11c3QoICBiZSBsaXZlLowtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wcmVmdW5kX290aGVyCAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHjRdAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhIHRhcmdldCBhc3NldCBhY2NvdW50LiBVc2VmdWwgaWYgeW91IGFyZSB0aGUgZGVwb3NpdG9yLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIGVpdGhlciB0aGUgYWNjb3VudCBvd25lciwgZGVwb3NpdG9yLCBvciBhc3NldCBgQWRtaW5gLiBJbmEBb3JkZXIgdG8gYnVybiBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhlIGFzc2V0LCB0aGUgY2FsbGVyIG11c3QgYmUgdGhlIGFjY291bnQgYW5kIHNob3VsZDR1c2UgYHJlZnVuZGAuABkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IGhvbGRpbmcgYSBkZXBvc2l0LnwtIGB3aG9gOiBUaGUgYWNjb3VudCB0byByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuFGJsb2NrCAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHyhZAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYHdob2AuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjY291bnQncyBhc3NldC6ULSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdW5ibG9ja2VkLgBARW1pdHMgYEJsb2NrZWRgLgA4V2VpZ2h0OiBgTygxKWAwdHJhbnNmZXJfYWxsDAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZV0BARBib29sACBAHQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhc3NldCBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0PQFhbnkgaGVsZCwgZnJvemVuLCBvciBtaW5pbXVtIGJhbGFuY2UgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AGQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgaG9sZGluZyBhIGRlcG9zaXQuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYXNzZXQgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IHRvIGJlIGtpbGxlZEUBICAoZmFsc2UpLCBvciB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgbWluaW11bSBiYWxhbmNlLCB3aGljaCB3aWxs6CAgZ3VhcmFudGVlIHRvIGtlZXAgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IGFsaXZlICh0cnVlKS4wc2V0X3Jlc2VydmVzCAEIaWRkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEgcmVzZXJ2ZXMVBAHIQm91bmRlZFZlYzxUOjpSZXNlcnZlRGF0YSwgQ29uc3RVMzI8TUFYX1JFU0VSVkVTPj4AISTEU2V0cyB0aGUgdHJ1c3RlZCByZXNlcnZlIGluZm9ybWF0aW9uIG9mIGFuIGFzc2V0LgBVAU9yaWdpbiBtdXN0IGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4gVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQlAWBDcmVhdGVPcmlnaW5gIG9yIGJlIHRoZSBzaWduZWQgYG93bmVyYCBjb25maWd1cmVkIGR1cmluZyBhc3NldCBjcmVhdGlvbi4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LvAtIGByZXNlcnZlc2A6IFRoZSBmdWxsIGxpc3Qgb2YgdHJ1c3RlZCByZXNlcnZlcyBpbmZvcm1hdGlvbi4A1EVtaXRzIGBBc3NldE1pbkJhbGFuY2VDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEARTAAAEABkEARhWZWM8VD4AABkEAAACEAAdBAw4cGFsbGV0X3VuaXF1ZXMYcGFsbGV0EENhbGwIBFQABEkAAWgYY3JlYXRlCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAEAJAUlzc3VlIGEgbmV3IGNvbGxlY3Rpb24gb2Ygbm9uLWZ1bmdpYmxlIGl0ZW1zIGZyb20gYSBwdWJsaWMgb3JpZ2luLgAdAVRoaXMgbmV3IGNvbGxlY3Rpb24gaGFzIG5vIGl0ZW1zIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgCsYEl0ZW1EZXBvc2l0YCBmdW5kcyBvZiBzZW5kZXIgYXJlIHJlc2VydmVkLgAsUGFyYW1ldGVyczphAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGNvbGxlY3Rpb24uIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZS5FAS0gYGFkbWluYDogVGhlIGFkbWluIG9mIHRoaXMgY29sbGVjdGlvbi4gVGhlIGFkbWluIGlzIHRoZSBpbml0aWFsIGFkZHJlc3Mgb2YgZWFjaJhtZW1iZXIgb2YgdGhlIGNvbGxlY3Rpb24ncyBhZG1pbiB0ZWFtLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZQwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEwZnJlZV9ob2xkaW5nXQEBEGJvb2wAAUQZAUlzc3VlIGEgbmV3IGNvbGxlY3Rpb24gb2Ygbm9uLWZ1bmdpYmxlIGl0ZW1zIGZyb20gYSBwcml2aWxlZ2VkIG9yaWdpbi4ArFRoaXMgbmV3IGNvbGxlY3Rpb24gaGFzIG5vIGl0ZW1zIGluaXRpYWxseS4ApFRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAuAJxVbmxpa2UgYGNyZWF0ZWAsIG5vIGZ1bmRzIGFyZSByZXNlcnZlZC4ASQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBpdGVtLiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UuOQEtIGBvd25lcmA6IFRoZSBvd25lciBvZiB0aGlzIGNvbGxlY3Rpb24gb2YgaXRlbXMuIFRoZSBvd25lciBoYXMgZnVsbCBzdXBlcnVzZXI0ICBwZXJtaXNzaW9ucyEBb3ZlciB0aGlzIGl0ZW0sIGJ1dCBtYXkgbGF0ZXIgY2hhbmdlIGFuZCBjb25maWd1cmUgdGhlIHBlcm1pc3Npb25zIHVzaW5nkGB0cmFuc2Zlcl9vd25lcnNoaXBgIGFuZCBgc2V0X3RlYW1gLgCsRW1pdHMgYEZvcmNlQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAcZGVzdHJveQgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARx3aXRuZXNzIQQBOERlc3Ryb3lXaXRuZXNzAAI8nERlc3Ryb3kgYSBjb2xsZWN0aW9uIG9mIGZ1bmdpYmxlIGl0ZW1zLgBdAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAgb3IgbXVzdCBiZSBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZWhvd25lciBvZiB0aGUgYGNvbGxlY3Rpb25gLgAFAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB0byBiZSBkZXN0cm95ZWQuMQEtIGB3aXRuZXNzYDogSW5mb3JtYXRpb24gb24gdGhlIGl0ZW1zIG1pbnRlZCBpbiB0aGUgY29sbGVjdGlvbi4gVGhpcyBtdXN0IGJlIGNvcnJlY3QuAKBFbWl0cyBgRGVzdHJveWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGRXZWlnaHQ6IGBPKG4gKyBtKWAgd2hlcmU6VC0gYG4gPSB3aXRuZXNzLml0ZW1zYHgtIGBtID0gd2l0bmVzcy5pdGVtX21ldGFkYXRhc2BoLSBgYSA9IHdpdG5lc3MuYXR0cmlidXRlc2AQbWludAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgADLKBNaW50IGFuIGl0ZW0gb2YgYSBwYXJ0aWN1bGFyIGNvbGxlY3Rpb24uAEEBVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBJc3N1ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A4C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSBtaW50ZWQuyC0gYGl0ZW1gOiBUaGUgaXRlbSB2YWx1ZSBvZiB0aGUgaXRlbSB0byBiZSBtaW50ZWQu2C0gYGJlbmVmaWNpYXJ5YDogVGhlIGluaXRpYWwgb3duZXIgb2YgdGhlIG1pbnRlZCBpdGVtLgCURW1pdHMgYElzc3VlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAQYnVybgwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEsY2hlY2tfb3duZXIlBAFwT3B0aW9uPEFjY291bnRJZExvb2t1cE9mPFQ+PgAEPFhEZXN0cm95IGEgc2luZ2xlIGl0ZW0uAPRPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZSBlaXRoZXI6gC0gdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA7aC0gdGhlIE93bmVyIG9mIHRoZSBgaXRlbWA7AOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYnVybmVkLrAtIGBpdGVtYDogVGhlIGl0ZW0gb2YgdGhlIGl0ZW0gdG8gYmUgYnVybmVkLlEBLSBgY2hlY2tfb3duZXJgOiBJZiBgU29tZWAgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIGBXcm9uZ093bmVyYCB1bmxlc3MgdGhleCAgaXRlbSBpcyBvd25lZCBieSB0aGlzIHZhbHVlLgC0RW1pdHMgYEJ1cm5lZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCBidXJuZWQuADhXZWlnaHQ6IGBPKDEpYHxNb2RlczogYGNoZWNrX293bmVyLmlzX3NvbWUoKWAuIHRyYW5zZmVyDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ABUTATW92ZSBhbiBpdGVtIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIuALRUaGlzIHJlc2V0cyB0aGUgYXBwcm92ZWQgYWNjb3VudCBvZiB0aGUgaXRlbS4A9E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlIGVpdGhlcjqALSB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYDtoLSB0aGUgT3duZXIgb2YgdGhlIGBpdGVtYDs1AS0gdGhlIGFwcHJvdmVkIGRlbGVnYXRlIGZvciB0aGUgYGl0ZW1gIChpbiB0aGlzIGNhc2UsIHRoZSBhcHByb3ZhbCBpcyByZXNldCkuAChBcmd1bWVudHM69C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSB0cmFuc2ZlcnJlZC7ELSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIHRyYW5zZmVycmVkLtwtIGBkZXN0YDogVGhlIGFjY291bnQgdG8gcmVjZWl2ZSBvd25lcnNoaXAgb2YgdGhlIGl0ZW0uAFBFbWl0cyBgVHJhbnNmZXJyZWRgLgA4V2VpZ2h0OiBgTygxKWAkcmVkZXBvc2l0CAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABFGl0ZW1zKQQBOFZlYzxUOjpJdGVtSWQ+AAZEmFJlZXZhbHVhdGUgdGhlIGRlcG9zaXRzIG9uIHNvbWUgaXRlbXMuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSBmcm96ZW4uKQEtIGBpdGVtc2A6IFRoZSBpdGVtcyBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBkZXBvc2l0cyB3aWxsIGJlIHJlZXZhbHVhdGVkLgAtAU5PVEU6IFRoaXMgZXhpc3RzIGFzIGEgYmVzdC1lZmZvcnQgZnVuY3Rpb24uIEFueSBpdGVtcyB3aGljaCBhcmUgdW5rbm93biBvcjkBaW4gdGhlIGNhc2UgdGhhdCB0aGUgb3duZXIgYWNjb3VudCBkb2VzIG5vdCBoYXZlIHJlc2VydmFibGUgZnVuZHMgdG8gcGF5IGZvciBhTQFkZXBvc2l0IGluY3JlYXNlIGFyZSBpZ25vcmVkLiBHZW5lcmFsbHkgdGhlIG93bmVyIGlzbid0IGdvaW5nIHRvIGNhbGwgdGhpcyBvbiBpdGVtc1UBd2hvc2UgZXhpc3RpbmcgZGVwb3NpdCBpcyBsZXNzIHRoYW4gdGhlIHJlZnJlc2hlZCBkZXBvc2l0IGFzIGl0IHdvdWxkIG9ubHkgY29zdCB0aGVtLHhzbyBpdCdzIG9mIGxpdHRsZSBjb25zZXF1ZW5jZS4AWQFJdCB3aWxsIHN0aWxsIHJldHVybiBhbiBlcnJvciBpbiB0aGUgY2FzZSB0aGF0IHRoZSBjb2xsZWN0aW9uIGlzIHVua25vd24gb2YgdGhlIHNpZ25lcnBpcyBub3QgcGVybWl0dGVkIHRvIGNhbGwgaXQuAGBXZWlnaHQ6IGBPKGl0ZW1zLmxlbigpKWAYZnJlZXplCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAByjIRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXIgb2YgYW4gaXRlbS4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgZnJvemVuLrAtIGBpdGVtYDogVGhlIGl0ZW0gb2YgdGhlIGl0ZW0gdG8gYmUgZnJvemVuLgA8RW1pdHMgYEZyb3plbmAuADhXZWlnaHQ6IGBPKDEpYBB0aGF3CAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQACCioUmUtYWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVyIG9mIGFuIGl0ZW0uAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIHRoYXdlZC6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIHRoYXdlZC4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWBEZnJlZXplX2NvbGxlY3Rpb24EAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAkk/ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgYSB3aG9sZSBjb2xsZWN0aW9uLgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSBmcm96ZW4uAGRFbWl0cyBgQ29sbGVjdGlvbkZyb3plbmAuADhXZWlnaHQ6IGBPKDEpYDx0aGF3X2NvbGxlY3Rpb24EAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAok3FJlLWFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIGEgd2hvbGUgY29sbGVjdGlvbi4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZiB0aGUgYGNvbGxlY3Rpb25gLgCwLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIHRvIGJlIHRoYXdlZC4AZEVtaXRzIGBDb2xsZWN0aW9uVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgSHRyYW5zZmVyX293bmVyc2hpcAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAASRuZXdfb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgALLIRDaGFuZ2UgdGhlIE93bmVyIG9mIGEgY29sbGVjdGlvbi4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYGNvbGxlY3Rpb25gLgD0LSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIHdob3NlIG93bmVyIHNob3VsZCBiZSBjaGFuZ2VkLgkBLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgY29sbGVjdGlvbi4gVGhleSBtdXN0IGhhdmUgY2FsbGVkSQEgIGBzZXRfYWNjZXB0X293bmVyc2hpcGAgd2l0aCBgY29sbGVjdGlvbmAgaW4gb3JkZXIgZm9yIHRoaXMgb3BlcmF0aW9uIHRvIHN1Y2NlZWQuAFRFbWl0cyBgT3duZXJDaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgIHNldF90ZWFtEAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABGGlzc3VlcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGZyZWV6ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAMMNRDaGFuZ2UgdGhlIElzc3VlciwgQWRtaW4gYW5kIEZyZWV6ZXIgb2YgYSBjb2xsZWN0aW9uLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAPAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gd2hvc2UgdGVhbSBzaG91bGQgYmUgY2hhbmdlZC64LSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBjb2xsZWN0aW9uLrAtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBjb2xsZWN0aW9uLsAtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgY29sbGVjdGlvbi4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYEBhcHByb3ZlX3RyYW5zZmVyDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AA04FQFBcHByb3ZlIGFuIGl0ZW0gdG8gYmUgdHJhbnNmZXJyZWQgYnkgYSBkZWxlZ2F0ZWQgdGhpcmQtcGFydHkgYWNjb3VudC4ATQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZfhlaXRoZXIgdGhlIG93bmVyIG9mIHRoZSBgaXRlbWAgb3IgdGhlIGFkbWluIG9mIHRoZSBjb2xsZWN0aW9uLgBFAS0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyLhUBLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGFwcHJvdmVkIGZvciBkZWxlZ2F0ZWQgdHJhbnNmZXIuGQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgdGhlIGl0ZW0uABkBSW1wb3J0YW50IE5PVEU6IFRoZSBgYXBwcm92ZWRgIGFjY291bnQgZ2V0cyByZXNldCBhZnRlciBlYWNoIHRyYW5zZmVyLgCQRW1pdHMgYEFwcHJvdmVkVHJhbnNmZXJgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYDxjYW5jZWxfYXBwcm92YWwMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABUG1heWJlX2NoZWNrX2RlbGVnYXRlJQQBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4ADkARAUNhbmNlbCB0aGUgcHJpb3IgYXBwcm92YWwgZm9yIHRoZSB0cmFuc2ZlciBvZiBhbiBpdGVtIGJ5IGEgZGVsZWdhdGUuAFhPcmlnaW4gbXVzdCBiZSBlaXRoZXI6VC0gdGhlIGBGb3JjZWAgb3JpZ2luO/wtIGBTaWduZWRgIHdpdGggdGhlIHNpZ25lciBiZWluZyB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYDvkLSBgU2lnbmVkYCB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIE93bmVyIG9mIHRoZSBgaXRlbWA7AChBcmd1bWVudHM6PQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gb2Ygd2hvc2UgYXBwcm92YWwgd2lsbCBiZSBjYW5jZWxsZWQuDQEtIGBpdGVtYDogVGhlIGl0ZW0gb2YgdGhlIGl0ZW0gb2Ygd2hvc2UgYXBwcm92YWwgd2lsbCBiZSBjYW5jZWxsZWQuUQEtIGBtYXliZV9jaGVja19kZWxlZ2F0ZWA6IElmIGBTb21lYCB3aWxsIGVuc3VyZSB0aGF0IHRoZSBnaXZlbiBhY2NvdW50IGlzIHRoZSBvbmUgdG+wICB3aGljaCBwZXJtaXNzaW9uIG9mIHRyYW5zZmVyIGlzIGRlbGVnYXRlZC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgRGZvcmNlX2l0ZW1fc3RhdHVzHAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATBmcmVlX2hvbGRpbmddAQEQYm9vbAABJGlzX2Zyb3plbl0BARBib29sAA9AlEFsdGVyIHRoZSBhdHRyaWJ1dGVzIG9mIGEgZ2l2ZW4gaXRlbS4AdE9yaWdpbiBtdXN0IGJlIGBGb3JjZU9yaWdpbmAuAKwtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0umC0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGl0ZW0uoC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgaXRlbS6YLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgaXRlbS6oLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGl0ZW0uUQEtIGBmcmVlX2hvbGRpbmdgOiBXaGV0aGVyIGEgZGVwb3NpdCBpcyB0YWtlbiBmb3IgaG9sZGluZyBhbiBpdGVtIG9mIHRoaXMgY29sbGVjdGlvbi45AS0gYGlzX2Zyb3plbmA6IFdoZXRoZXIgdGhpcyBjb2xsZWN0aW9uIGlzIGZyb3plbiBleGNlcHQgZm9yIHBlcm1pc3Npb25lZC9hZG1pbjRpbnN0cnVjdGlvbnMuAOBFbWl0cyBgSXRlbVN0YXR1c0NoYW5nZWRgIHdpdGggdGhlIGlkZW50aXR5IG9mIHRoZSBpdGVtLgA4V2VpZ2h0OiBgTygxKWA0c2V0X2F0dHJpYnV0ZRABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXnFAwFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWV8AXRCb3VuZGVkVmVjPHU4LCBUOjpWYWx1ZUxpbWl0PgAQRKhTZXQgYW4gYXR0cmlidXRlIGZvciBhIGNvbGxlY3Rpb24gb3IgaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgBRAUlmIHRoZSBvcmlnaW4gaXMgU2lnbmVkLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOikBYE1ldGFkYXRhRGVwb3NpdEJhc2UgKyBEZXBvc2l0UGVyQnl0ZSAqIChrZXkubGVuICsgdmFsdWUubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AOQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIHNldC4FAS0gYG1heWJlX2l0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBzZXQuiC0gYGtleWA6IFRoZSBrZXkgb2YgdGhlIGF0dHJpYnV0ZS7MLSBgdmFsdWVgOiBUaGUgdmFsdWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBhdHRyaWJ1dGUuAFRFbWl0cyBgQXR0cmlidXRlU2V0YC4AOFdlaWdodDogYE8oMSlgPGNsZWFyX2F0dHJpYnV0ZQwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXnFAwFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+ABE4sENsZWFyIGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlNGBjb2xsZWN0aW9uYC4AwEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgY29sbGVjdGlvbidzIG93bmVyLgBBAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtJ3MgbWV0YWRhdGEgdG8gY2xlYXIuDQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuiC0gYGtleWA6IFRoZSBrZXkgb2YgdGhlIGF0dHJpYnV0ZS4AZEVtaXRzIGBBdHRyaWJ1dGVDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgMHNldF9tZXRhZGF0YRABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEQZGF0YS0EAXhCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5dAQEQYm9vbAASRHRTZXQgdGhlIG1ldGFkYXRhIGZvciBhbiBpdGVtLgBdAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZTRgY29sbGVjdGlvbmAuAFEBSWYgdGhlIG9yaWdpbiBpcyBTaWduZWQsIHRoZW4gZnVuZHMgb2Ygc2lnbmVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE69GBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiBkYXRhLmxlbmAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AOQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIHNldC7sLSBgaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHNldC5NAS0gYGRhdGFgOiBUaGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBvZiB0aGlzIGl0ZW0uIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuNQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoZSBtZXRhZGF0YSBzaG91bGQgYmUgZnJvemVuIGFnYWluc3QgZnVydGhlciBjaGFuZ2VzLgBQRW1pdHMgYE1ldGFkYXRhU2V0YC4AOFdlaWdodDogYE8oMSlgOGNsZWFyX21ldGFkYXRhCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAEzR8Q2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBpdGVtLgBdAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZRxgaXRlbWAuAMBBbnkgZGVwb3NpdCBpcyBmcmVlZCBmb3IgdGhlIGNvbGxlY3Rpb24ncyBvd25lci4AQQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIGNsZWFyLvQtIGBpdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuAGBFbWl0cyBgTWV0YWRhdGFDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgXHNldF9jb2xsZWN0aW9uX21ldGFkYXRhDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGRhdGEtBAF4Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuXQEBEGJvb2wAFECIU2V0IHRoZSBtZXRhZGF0YSBmb3IgYSBjb2xsZWN0aW9uLgBVAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2ZEdGhlIGBjb2xsZWN0aW9uYC4AWQFJZiB0aGUgb3JpZ2luIGlzIGBTaWduZWRgLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuABEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHVwZGF0ZS5NAS0gYGRhdGFgOiBUaGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBvZiB0aGlzIGl0ZW0uIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuNQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoZSBtZXRhZGF0YSBzaG91bGQgYmUgZnJvemVuIGFnYWluc3QgZnVydGhlciBjaGFuZ2VzLgB4RW1pdHMgYENvbGxlY3Rpb25NZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYGRjbGVhcl9jb2xsZWN0aW9uX21ldGFkYXRhBAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAAVMJBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGEgY29sbGVjdGlvbi4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAMBBbnkgZGVwb3NpdCBpcyBmcmVlZCBmb3IgdGhlIGNvbGxlY3Rpb24ncyBvd25lci4AJQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuAIhFbWl0cyBgQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFBzZXRfYWNjZXB0X293bmVyc2hpcAQBQG1heWJlX2NvbGxlY3Rpb27kAVxPcHRpb248VDo6Q29sbGVjdGlvbklkPgAWKBEBU2V0IChvciByZXNldCkgdGhlIGFjY2VwdGFuY2Ugb2Ygb3duZXJzaGlwIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudC4AYQFPcmlnaW4gbXVzdCBiZSBgU2lnbmVkYCBhbmQgaWYgYG1heWJlX2NvbGxlY3Rpb25gIGlzIGBTb21lYCwgdGhlbiB0aGUgc2lnbmVyIG11c3QgaGF2ZSBhTHByb3ZpZGVyIHJlZmVyZW5jZS4AUQEtIGBtYXliZV9jb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2Ugb3duZXJzaGlwIHRoZSBzaWduZXIgaXNhASAgd2lsbGluZyB0byBhY2NlcHQsIG9yIGlmIGBOb25lYCwgYW4gaW5kaWNhdGlvbiB0aGF0IHRoZSBzaWduZXIgaXMgd2lsbGluZyB0byBhY2NlcHQgbm9cICBvd25lcnNoaXAgdHJhbnNmZXJhbC4AjEVtaXRzIGBPd25lcnNoaXBBY2NlcHRhbmNlQ2hhbmdlZGAuZHNldF9jb2xsZWN0aW9uX21heF9zdXBwbHkIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF4X3N1cHBseTgBDHUzMgAXLOBTZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBjb3VsZCBoYXZlLgBVAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2ZEdGhlIGBjb2xsZWN0aW9uYC4A5E5vdGU6IFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgc3VjY2VlZCBvbmNlIHBlciBjb2xsZWN0aW9uLgDsLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHRvIGNoYW5nZS4RAS0gYG1heF9zdXBwbHlgOiBUaGUgbWF4aW11bSBhbW91bnQgb2YgaXRlbXMgYSBjb2xsZWN0aW9uIGNvdWxkIGhhdmUuANRFbWl0cyBgQ29sbGVjdGlvbk1heFN1cHBseVNldGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLiRzZXRfcHJpY2UQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABFHByaWNlMQQBXE9wdGlvbjxJdGVtUHJpY2U8VCwgST4+AAFEd2hpdGVsaXN0ZWRfYnV5ZXIlBAFwT3B0aW9uPEFjY291bnRJZExvb2t1cE9mPFQ+PgAYLJRTZXQgKG9yIHJlc2V0KSB0aGUgcHJpY2UgZm9yIGFuIGl0ZW0uAAEBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUgYXNzZXQgYGl0ZW1gLgCsLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtLqAtIGBpdGVtYDogVGhlIGl0ZW0gdG8gc2V0IHRoZSBwcmljZSBmb3IuDQEtIGBwcmljZWA6IFRoZSBwcmljZSBmb3IgdGhlIGl0ZW0uIFBhc3MgYE5vbmVgLCB0byByZXNldCB0aGUgcHJpY2Uu9C0gYGJ1eWVyYDogUmVzdHJpY3RzIHRoZSBidXkgb3BlcmF0aW9uIHRvIGEgc3BlY2lmaWMgYWNjb3VudC4A7EVtaXRzIGBJdGVtUHJpY2VTZXRgIG9uIHN1Y2Nlc3MgaWYgdGhlIHByaWNlIGlzIG5vdCBgTm9uZWAu7EVtaXRzIGBJdGVtUHJpY2VSZW1vdmVkYCBvbiBzdWNjZXNzIGlmIHRoZSBwcmljZSBpcyBgTm9uZWAuIGJ1eV9pdGVtDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAASRiaWRfcHJpY2VZAQE8SXRlbVByaWNlPFQsIEk+ABkkqEFsbG93cyB0byBidXkgYW4gaXRlbSBpZiBpdCdzIHVwIGZvciBzYWxlLgD4T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IG5vdCBiZSB0aGUgb3duZXIgb2YgdGhlIGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6sLSBgaXRlbWA6IFRoZSBpdGVtIHRoZSBzZW5kZXIgd2FudHMgdG8gYnV5LtgtIGBiaWRfcHJpY2VgOiBUaGUgcHJpY2UgdGhlIHNlbmRlciBpcyB3aWxsaW5nIHRvIHBheS4AeEVtaXRzIGBJdGVtQm91Z2h0YCBvbiBzdWNjZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4hBAw4cGFsbGV0X3VuaXF1ZXMUdHlwZXM4RGVzdHJveVdpdG5lc3MAAAwBFGl0ZW1zZAEMdTMyAAE4aXRlbV9tZXRhZGF0YXNkAQx1MzIAAShhdHRyaWJ1dGVzZAEMdTMyAAAlBAQYT3B0aW9uBARUAQABCBBOb25lAAAAEFNvbWUEAAAAAAEAACkEAAACOAAtBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AADEEBBhPcHRpb24EBFQBWQEBCBBOb25lAAAAEFNvbWUEAFkBAAABAAA1BAwscGFsbGV0X25mdHMYcGFsbGV0EENhbGwIBFQABEkAAZwYY3JlYXRlCAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGNvbmZpZzkEAWRDb2xsZWN0aW9uQ29uZmlnRm9yPFQsIEk+AAA8CQFJc3N1ZSBhIG5ldyBjb2xsZWN0aW9uIG9mIG5vbi1mdW5naWJsZSBpdGVtcyBmcm9tIGEgcHVibGljIG9yaWdpbi4AHQFUaGlzIG5ldyBjb2xsZWN0aW9uIGhhcyBubyBpdGVtcyBpbml0aWFsbHkgYW5kIGl0cyBvd25lciBpcyB0aGUgb3JpZ2luLgAlAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZnJlZS4AxGBDb2xsZWN0aW9uRGVwb3NpdGAgZnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZC4ALFBhcmFtZXRlcnM6RQEtIGBhZG1pbmA6IFRoZSBhZG1pbiBvZiB0aGlzIGNvbGxlY3Rpb24uIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2iYbWVtYmVyIG9mIHRoZSBjb2xsZWN0aW9uJ3MgYWRtaW4gdGVhbS4AmEVtaXRzIGBDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYDBmb3JjZV9jcmVhdGUIARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYY29uZmlnOQQBZENvbGxlY3Rpb25Db25maWdGb3I8VCwgST4AATwZAUlzc3VlIGEgbmV3IGNvbGxlY3Rpb24gb2Ygbm9uLWZ1bmdpYmxlIGl0ZW1zIGZyb20gYSBwcml2aWxlZ2VkIG9yaWdpbi4ArFRoaXMgbmV3IGNvbGxlY3Rpb24gaGFzIG5vIGl0ZW1zIGluaXRpYWxseS4ApFRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAuAJxVbmxpa2UgYGNyZWF0ZWAsIG5vIGZ1bmRzIGFyZSByZXNlcnZlZC4AOQEtIGBvd25lcmA6IFRoZSBvd25lciBvZiB0aGlzIGNvbGxlY3Rpb24gb2YgaXRlbXMuIFRoZSBvd25lciBoYXMgZnVsbCBzdXBlcnVzZXJZASAgcGVybWlzc2lvbnMgb3ZlciB0aGlzIGl0ZW0sIGJ1dCBtYXkgbGF0ZXIgY2hhbmdlIGFuZCBjb25maWd1cmUgdGhlIHBlcm1pc3Npb25zIHVzaW5nmCAgYHRyYW5zZmVyX293bmVyc2hpcGAgYW5kIGBzZXRfdGVhbWAuAKxFbWl0cyBgRm9yY2VDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYBxkZXN0cm95CAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABHHdpdG5lc3NVBAE4RGVzdHJveVdpdG5lc3MAAkScRGVzdHJveSBhIGNvbGxlY3Rpb24gb2YgZnVuZ2libGUgaXRlbXMuAF0BVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlaG93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuANxOT1RFOiBUaGUgY29sbGVjdGlvbiBtdXN0IGhhdmUgMCBpdGVtcyB0byBiZSBkZXN0cm95ZWQuAAUBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGRlc3Ryb3llZC4xAS0gYHdpdG5lc3NgOiBJbmZvcm1hdGlvbiBvbiB0aGUgaXRlbXMgbWludGVkIGluIHRoZSBjb2xsZWN0aW9uLiBUaGlzIG11c3QgYmUgY29ycmVjdC4AoEVtaXRzIGBEZXN0cm95ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AdFdlaWdodDogYE8obSArIGMgKyBhKWAgd2hlcmU6eC0gYG0gPSB3aXRuZXNzLml0ZW1fbWV0YWRhdGFzYHAtIGBjID0gd2l0bmVzcy5pdGVtX2NvbmZpZ3NgaC0gYGEgPSB3aXRuZXNzLmF0dHJpYnV0ZXNgEG1pbnQQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABHG1pbnRfdG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABMHdpdG5lc3NfZGF0YVkEAdhPcHRpb248TWludFdpdG5lc3M8VDo6SXRlbUlkLCBEZXBvc2l0QmFsYW5jZU9mPFQsIEk+Pj4AA0CgTWludCBhbiBpdGVtIG9mIGEgcGFydGljdWxhciBjb2xsZWN0aW9uLgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBjb21wbHkgd2l0aCB0aGUgYG1pbnRfc2V0dGluZ3NgIHJ1bGVzLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIG1pbnRlZC6gLSBgaXRlbWA6IEFuIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBpdGVtLuAtIGBtaW50X3RvYDogQWNjb3VudCBpbnRvIHdoaWNoIHRoZSBpdGVtIHdpbGwgYmUgbWludGVkLkUBLSBgd2l0bmVzc19kYXRhYDogV2hlbiB0aGUgbWludCB0eXBlIGlzIGBIb2xkZXJPZihjb2xsZWN0aW9uX2lkKWAsIHRoZW4gdGhlIG93bmVkWQEgIGl0ZW1faWQgZnJvbSB0aGF0IGNvbGxlY3Rpb24gbmVlZHMgdG8gYmUgcHJvdmlkZWQgd2l0aGluIHRoZSB3aXRuZXNzIGRhdGEgb2JqZWN0LiBJZmEBICB0aGUgbWludCBwcmljZSBpcyBzZXQsIHRoZW4gaXQgc2hvdWxkIGJlIGFkZGl0aW9uYWxseSBjb25maXJtZWQgaW4gdGhlIGB3aXRuZXNzX2RhdGFgLgBRAU5vdGU6IHRoZSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgYG9yaWdpbmAgYW5kIG5vdCB0aGUgYG93bmVyYCBvZiB0aGUgYGl0ZW1gLgCURW1pdHMgYElzc3VlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAoZm9yY2VfbWludBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEcbWludF90bwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsaXRlbV9jb25maWdhBAEoSXRlbUNvbmZpZwAENAUBTWludCBhbiBpdGVtIG9mIGEgcGFydGljdWxhciBjb2xsZWN0aW9uIGZyb20gYSBwcml2aWxlZ2VkIG9yaWdpbi4AXQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGVsSXNzdWVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgbWludGVkLqAtIGBpdGVtYDogQW4gaWRlbnRpZmllciBvZiB0aGUgbmV3IGl0ZW0u4C0gYG1pbnRfdG9gOiBBY2NvdW50IGludG8gd2hpY2ggdGhlIGl0ZW0gd2lsbCBiZSBtaW50ZWQuqC0gYGl0ZW1fY29uZmlnYDogQSBjb25maWcgb2YgdGhlIG5ldyBpdGVtLgCURW1pdHMgYElzc3VlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAQYnVybggBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAUsWERlc3Ryb3kgYSBzaW5nbGUgaXRlbS4AXQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3RsYmUgdGhlIG93bmVyIG9mIHRoZSBgaXRlbWAuAOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYnVybmVkLoAtIGBpdGVtYDogVGhlIGl0ZW0gdG8gYmUgYnVybmVkLgA8RW1pdHMgYEJ1cm5lZGAuADhXZWlnaHQ6IGBPKDEpYCB0cmFuc2ZlcgwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAY4wE1vdmUgYW4gaXRlbSBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLgD0T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmUgZWl0aGVyOmgtIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOzUBLSB0aGUgYXBwcm92ZWQgZGVsZWdhdGUgZm9yIHRoZSBgaXRlbWAgKGluIHRoaXMgY2FzZSwgdGhlIGFwcHJvdmFsIGlzIHJlc2V0KS4AKEFyZ3VtZW50czr0LSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIHRyYW5zZmVycmVkLpQtIGBpdGVtYDogVGhlIGl0ZW0gdG8gYmUgdHJhbnNmZXJyZWQu3C0gYGRlc3RgOiBUaGUgYWNjb3VudCB0byByZWNlaXZlIG93bmVyc2hpcCBvZiB0aGUgaXRlbS4AUEVtaXRzIGBUcmFuc2ZlcnJlZGAuADhXZWlnaHQ6IGBPKDEpYCRyZWRlcG9zaXQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEUaXRlbXMpBAE4VmVjPFQ6Okl0ZW1JZD4AB0ScUmUtZXZhbHVhdGUgdGhlIGRlcG9zaXRzIG9uIHNvbWUgaXRlbXMuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A+C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbXMgdG8gYmUgcmVldmFsdWF0ZWQuKQEtIGBpdGVtc2A6IFRoZSBpdGVtcyBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBkZXBvc2l0cyB3aWxsIGJlIHJlZXZhbHVhdGVkLgAtAU5PVEU6IFRoaXMgZXhpc3RzIGFzIGEgYmVzdC1lZmZvcnQgZnVuY3Rpb24uIEFueSBpdGVtcyB3aGljaCBhcmUgdW5rbm93biBvcjkBaW4gdGhlIGNhc2UgdGhhdCB0aGUgb3duZXIgYWNjb3VudCBkb2VzIG5vdCBoYXZlIHJlc2VydmFibGUgZnVuZHMgdG8gcGF5IGZvciBhTQFkZXBvc2l0IGluY3JlYXNlIGFyZSBpZ25vcmVkLiBHZW5lcmFsbHkgdGhlIG93bmVyIGlzbid0IGdvaW5nIHRvIGNhbGwgdGhpcyBvbiBpdGVtc1UBd2hvc2UgZXhpc3RpbmcgZGVwb3NpdCBpcyBsZXNzIHRoYW4gdGhlIHJlZnJlc2hlZCBkZXBvc2l0IGFzIGl0IHdvdWxkIG9ubHkgY29zdCB0aGVtLHhzbyBpdCdzIG9mIGxpdHRsZSBjb25zZXF1ZW5jZS4AWQFJdCB3aWxsIHN0aWxsIHJldHVybiBhbiBlcnJvciBpbiB0aGUgY2FzZSB0aGF0IHRoZSBjb2xsZWN0aW9uIGlzIHVua25vd24gb3IgdGhlIHNpZ25lcnBpcyBub3QgcGVybWl0dGVkIHRvIGNhbGwgaXQuAGBXZWlnaHQ6IGBPKGl0ZW1zLmxlbigpKWBIbG9ja19pdGVtX3RyYW5zZmVyCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQACCjIRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXIgb2YgYW4gaXRlbS4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAOQtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgY2hhbmdlZC64LSBgaXRlbWA6IFRoZSBpdGVtIHRvIGJlY29tZSBub24tdHJhbnNmZXJhYmxlLgBsRW1pdHMgYEl0ZW1UcmFuc2ZlckxvY2tlZGAuADhXZWlnaHQ6IGBPKDEpYFB1bmxvY2tfaXRlbV90cmFuc2ZlcggBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAkoqFJlLWFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlciBvZiBhbiBpdGVtLgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A5C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSBjaGFuZ2VkLqgtIGBpdGVtYDogVGhlIGl0ZW0gdG8gYmVjb21lIHRyYW5zZmVyYWJsZS4AdEVtaXRzIGBJdGVtVHJhbnNmZXJVbmxvY2tlZGAuADhXZWlnaHQ6IGBPKDEpYDxsb2NrX2NvbGxlY3Rpb24IAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAE0bG9ja19zZXR0aW5ncz0EAUhDb2xsZWN0aW9uU2V0dGluZ3MACjDYRGlzYWxsb3dzIHNwZWNpZmllZCBzZXR0aW5ncyBmb3IgdGhlIHdob2xlIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSBsb2NrZWQutC0gYGxvY2tfc2V0dGluZ3NgOiBUaGUgc2V0dGluZ3MgdG8gYmUgbG9ja2VkLgAdAU5vdGU6IGl0J3MgcG9zc2libGUgdG8gb25seSBsb2NrKHNldCkgdGhlIHNldHRpbmcsIGJ1dCBub3QgdG8gdW5zZXQgaXQuAGRFbWl0cyBgQ29sbGVjdGlvbkxvY2tlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACyyEQ2hhbmdlIHRoZSBPd25lciBvZiBhIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A9C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB3aG9zZSBvd25lciBzaG91bGQgYmUgY2hhbmdlZC4JAS0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGNvbGxlY3Rpb24uIFRoZXkgbXVzdCBoYXZlIGNhbGxlZEkBICBgc2V0X2FjY2VwdF9vd25lcnNoaXBgIHdpdGggYGNvbGxlY3Rpb25gIGluIG9yZGVyIGZvciB0aGlzIG9wZXJhdGlvbiB0byBzdWNjZWVkLgBURW1pdHMgYE93bmVyQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYCBzZXRfdGVhbRABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIlBAFwT3B0aW9uPEFjY291bnRJZExvb2t1cE9mPFQ+PgABFGFkbWluJQQBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4AARxmcmVlemVyJQQBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4ADEDUQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGEgY29sbGVjdGlvbi4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgBRAU5vdGU6IGJ5IHNldHRpbmcgdGhlIHJvbGUgdG8gYE5vbmVgIG9ubHkgdGhlIGBGb3JjZU9yaWdpbmAgd2lsbCBiZSBhYmxlIHRvIGNoYW5nZSBpdGRhZnRlciB0byBgU29tZShhY2NvdW50KWAuAPAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gd2hvc2UgdGVhbSBzaG91bGQgYmUgY2hhbmdlZC64LSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBjb2xsZWN0aW9uLrAtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBjb2xsZWN0aW9uLsAtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgY29sbGVjdGlvbi4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYFhmb3JjZV9jb2xsZWN0aW9uX293bmVyCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADSiEQ2hhbmdlIHRoZSBPd25lciBvZiBhIGNvbGxlY3Rpb24uAHRPcmlnaW4gbXVzdCBiZSBgRm9yY2VPcmlnaW5gLgDELSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uLrAtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBjb2xsZWN0aW9uLgBURW1pdHMgYE93bmVyQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYFxmb3JjZV9jb2xsZWN0aW9uX2NvbmZpZwgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARhjb25maWc5BAFkQ29sbGVjdGlvbkNvbmZpZ0ZvcjxULCBJPgAOKIhDaGFuZ2UgdGhlIGNvbmZpZyBvZiBhIGNvbGxlY3Rpb24uAHRPcmlnaW4gbXVzdCBiZSBgRm9yY2VPcmlnaW5gLgDELSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uLrgtIGBjb25maWdgOiBUaGUgbmV3IGNvbmZpZyBvZiB0aGlzIGNvbGxlY3Rpb24uAIBFbWl0cyBgQ29sbGVjdGlvbkNvbmZpZ0NoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlchABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABOG1heWJlX2RlYWRsaW5l5AFwT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQsIEk+PgAPOBUBQXBwcm92ZSBhbiBpdGVtIHRvIGJlIHRyYW5zZmVycmVkIGJ5IGEgZGVsZWdhdGVkIHRoaXJkLXBhcnR5IGFjY291bnQuAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlHGBpdGVtYC4ARQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2Zlci7kLSBgaXRlbWA6IFRoZSBpdGVtIHRvIGJlIGFwcHJvdmVkIGZvciBkZWxlZ2F0ZWQgdHJhbnNmZXIuGQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgdGhlIGl0ZW0uSQEtIGBtYXliZV9kZWFkbGluZWA6IE9wdGlvbmFsIGRlYWRsaW5lIGZvciB0aGUgYXBwcm92YWwuIFNwZWNpZmllZCBieSBwcm92aWRpbmcgdGhl2AludW1iZXIgb2YgYmxvY2tzIGFmdGVyIHdoaWNoIHRoZSBhcHByb3ZhbCB3aWxsIGV4cGlyZQCQRW1pdHMgYFRyYW5zZmVyQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYDxjYW5jZWxfYXBwcm92YWwMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEDjkQ2FuY2VsIG9uZSBvZiB0aGUgdHJhbnNmZXIgYXBwcm92YWxzIGZvciBhIHNwZWNpZmljIGl0ZW0uAFhPcmlnaW4gbXVzdCBiZSBlaXRoZXI6VC0gdGhlIGBGb3JjZWAgb3JpZ2luO+QtIGBTaWduZWRgIHdpdGggdGhlIHNpZ25lciBiZWluZyB0aGUgT3duZXIgb2YgdGhlIGBpdGVtYDsAKEFyZ3VtZW50czo9AS0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSBvZiB3aG9zZSBhcHByb3ZhbCB3aWxsIGJlIGNhbmNlbGxlZC4lAS0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgY29sbGVjdGlvbiBvZiB3aG9zZSBhcHByb3ZhbCB3aWxsIGJlIGNhbmNlbGxlZC4BAS0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBpcyBnb2luZyB0byBsb29zZSB0aGVpciBhcHByb3ZhbC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgcGNsZWFyX2FsbF90cmFuc2Zlcl9hcHByb3ZhbHMIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAARNLBDYW5jZWwgYWxsIHRoZSBhcHByb3ZhbHMgb2YgYSBzcGVjaWZpYyBpdGVtLgBYT3JpZ2luIG11c3QgYmUgZWl0aGVyOlQtIHRoZSBgRm9yY2VgIG9yaWdpbjvkLSBgU2lnbmVkYCB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIE93bmVyIG9mIHRoZSBgaXRlbWA7AChBcmd1bWVudHM6OQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gb2Ygd2hvc2UgYXBwcm92YWxzIHdpbGwgYmUgY2xlYXJlZC4hAS0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgY29sbGVjdGlvbiBvZiB3aG9zZSBhcHByb3ZhbHMgd2lsbCBiZSBjbGVhcmVkLgCkRW1pdHMgYEFsbEFwcHJvdmFsc0NhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgUGxvY2tfaXRlbV9wcm9wZXJ0aWVzEAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAATRsb2NrX21ldGFkYXRhXQEBEGJvb2wAATxsb2NrX2F0dHJpYnV0ZXNdAQEQYm9vbAASROhEaXNhbGxvd3MgY2hhbmdpbmcgdGhlIG1ldGFkYXRhIG9yIGF0dHJpYnV0ZXMgb2YgdGhlIGl0ZW0uAEEBT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW5Qb2YgdGhlIGBjb2xsZWN0aW9uYC4AtC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBpZiB0aGUgYGl0ZW1gLnwtIGBpdGVtYDogQW4gaXRlbSB0byBiZSBsb2NrZWQuDQEtIGBsb2NrX21ldGFkYXRhYDogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIG1ldGFkYXRhIHNob3VsZCBiZSBsb2NrZWQuYQEtIGBsb2NrX2F0dHJpYnV0ZXNgOiBTcGVjaWZpZXMgd2hldGhlciB0aGUgYXR0cmlidXRlcyBpbiB0aGUgYENvbGxlY3Rpb25Pd25lcmAgbmFtZXNwYWNlTCAgc2hvdWxkIGJlIGxvY2tlZC4AXQFOb3RlOiBgbG9ja19hdHRyaWJ1dGVzYCBhZmZlY3RzIHRoZSBhdHRyaWJ1dGVzIGluIHRoZSBgQ29sbGVjdGlvbk93bmVyYCBuYW1lc3BhY2Ugb25seS5FAVdoZW4gdGhlIG1ldGFkYXRhIG9yIGF0dHJpYnV0ZXMgYXJlIGxvY2tlZCwgaXQgd29uJ3QgYmUgcG9zc2libGUgdGhlIHVubG9jayB0aGVtLgB0RW1pdHMgYEl0ZW1Qcm9wZXJ0aWVzTG9ja2VkYC4AOFdlaWdodDogYE8oMSlgNHNldF9hdHRyaWJ1dGUUAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbeQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEkbmFtZXNwYWNlZQQBgEF0dHJpYnV0ZU5hbWVzcGFjZTxUOjpBY2NvdW50SWQ+AAEMa2V5fAFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWVFAQF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AE1ioU2V0IGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAAEBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IGNvbmZvcm0gdG8gdGhlIG5hbWVzcGFjZSBydWxlc2V0Oj0BLSBgQ29sbGVjdGlvbk93bmVyYCBuYW1lc3BhY2UgY291bGQgYmUgbW9kaWZpZWQgYnkgdGhlIGBjb2xsZWN0aW9uYCBBZG1pbiBvbmx5O1kBLSBgSXRlbU93bmVyYCBuYW1lc3BhY2UgY291bGQgYmUgbW9kaWZpZWQgYnkgdGhlIGBtYXliZV9pdGVtYCBvd25lciBvbmx5LiBgbWF5YmVfaXRlbWB0ICBzaG91bGQgYmUgc2V0IGluIHRoYXQgY2FzZTtVAS0gYEFjY291bnQoQWNjb3VudElkKWAgbmFtZXNwYWNlIGNvdWxkIGJlIG1vZGlmaWVkIG9ubHkgd2hlbiB0aGUgYG9yaWdpbmAgd2FzIGdpdmVuIGFYICBwZXJtaXNzaW9uIHRvIGRvIHNvOwDwVGhlIGZ1bmRzIG9mIGBvcmlnaW5gIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE6LQFgQXR0cmlidXRlRGVwb3NpdEJhc2UgKyBEZXBvc2l0UGVyQnl0ZSAqIChrZXkubGVuICsgdmFsdWUubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AOQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIHNldC4FAS0gYG1heWJlX2l0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBzZXQulC0gYG5hbWVzcGFjZWA6IEF0dHJpYnV0ZSdzIG5hbWVzcGFjZS6ILSBga2V5YDogVGhlIGtleSBvZiB0aGUgYXR0cmlidXRlLswtIGB2YWx1ZWA6IFRoZSB2YWx1ZSB0byB3aGljaCB0byBzZXQgdGhlIGF0dHJpYnV0ZS4AVEVtaXRzIGBBdHRyaWJ1dGVTZXRgLgA4V2VpZ2h0OiBgTygxKWBMZm9yY2Vfc2V0X2F0dHJpYnV0ZRgBGHNldF9hc5EBAVBPcHRpb248VDo6QWNjb3VudElkPgABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AASRuYW1lc3BhY2VlBAGAQXR0cmlidXRlTmFtZXNwYWNlPFQ6OkFjY291bnRJZD4AAQxrZXl8AWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AARR2YWx1ZUUBAXRCb3VuZGVkVmVjPHU4LCBUOjpWYWx1ZUxpbWl0PgAURMBGb3JjZS1zZXQgYW4gYXR0cmlidXRlIGZvciBhIGNvbGxlY3Rpb24gb3IgaXRlbS4AdE9yaWdpbiBtdXN0IGJlIGBGb3JjZU9yaWdpbmAuADkBSWYgdGhlIGF0dHJpYnV0ZSBhbHJlYWR5IGV4aXN0cyBhbmQgaXQgd2FzIHNldCBieSBhbm90aGVyIGFjY291bnQsIHRoZSBkZXBvc2l0nHdpbGwgYmUgcmV0dXJuZWQgdG8gdGhlIHByZXZpb3VzIG93bmVyLgC8LSBgc2V0X2FzYDogQW4gb3B0aW9uYWwgb3duZXIgb2YgdGhlIGF0dHJpYnV0ZS45AS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtJ3MgbWV0YWRhdGEgdG8gc2V0LgUBLSBgbWF5YmVfaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHNldC6ULSBgbmFtZXNwYWNlYDogQXR0cmlidXRlJ3MgbmFtZXNwYWNlLogtIGBrZXlgOiBUaGUga2V5IG9mIHRoZSBhdHRyaWJ1dGUuzC0gYHZhbHVlYDogVGhlIHZhbHVlIHRvIHdoaWNoIHRvIHNldCB0aGUgYXR0cmlidXRlLgBURW1pdHMgYEF0dHJpYnV0ZVNldGAuADhXZWlnaHQ6IGBPKDEpYDxjbGVhcl9hdHRyaWJ1dGUQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbeQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEkbmFtZXNwYWNlZQQBgEF0dHJpYnV0ZU5hbWVzcGFjZTxUOjpBY2NvdW50SWQ+AAEMa2V5fAFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+ABU8sENsZWFyIGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlKGF0dHJpYnV0ZS4AwEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgY29sbGVjdGlvbidzIG93bmVyLgBBAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtJ3MgbWV0YWRhdGEgdG8gY2xlYXIuDQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIulC0gYG5hbWVzcGFjZWA6IEF0dHJpYnV0ZSdzIG5hbWVzcGFjZS6ILSBga2V5YDogVGhlIGtleSBvZiB0aGUgYXR0cmlidXRlLgBkRW1pdHMgYEF0dHJpYnV0ZUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBcYXBwcm92ZV9pdGVtX2F0dHJpYnV0ZXMMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AFiQtAUFwcHJvdmUgaXRlbSdzIGF0dHJpYnV0ZXMgdG8gYmUgY2hhbmdlZCBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgDkT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IGJlIGFuIG93bmVyIG9mIHRoZSBgaXRlbWAuAKQtIGBjb2xsZWN0aW9uYDogQSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtLqQtIGBpdGVtYDogVGhlIGl0ZW0gdGhhdCBob2xkcyBhdHRyaWJ1dGVzLkkBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIGNoYW5nZSBhdHRyaWJ1dGVzIG9mIHRoZSBpdGVtLgC8RW1pdHMgYEl0ZW1BdHRyaWJ1dGVzQXBwcm92YWxBZGRlZGAgb24gc3VjY2Vzcy58Y2FuY2VsX2l0ZW1fYXR0cmlidXRlc19hcHByb3ZhbBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHHdpdG5lc3NpBAF8Q2FuY2VsQXR0cmlidXRlc0FwcHJvdmFsV2l0bmVzcwAXKBEBQ2FuY2VsIHRoZSBwcmV2aW91c2x5IHByb3ZpZGVkIGFwcHJvdmFsIHRvIGNoYW5nZSBpdGVtJ3MgYXR0cmlidXRlcy4RAUFsbCB0aGUgcHJldmlvdXNseSBzZXQgYXR0cmlidXRlcyBieSB0aGUgYGRlbGVnYXRlYCB3aWxsIGJlIHJlbW92ZWQuAORPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIG11c3QgYmUgYW4gb3duZXIgb2YgdGhlIGBpdGVtYC4A9C0gYGNvbGxlY3Rpb25gOiBDb2xsZWN0aW9uIHRoYXQgdGhlIGl0ZW0gaXMgY29udGFpbmVkIHdpdGhpbi6kLSBgaXRlbWA6IFRoZSBpdGVtIHRoYXQgaG9sZHMgYXR0cmlidXRlcy7gLSBgZGVsZWdhdGVgOiBUaGUgcHJldmlvdXNseSBhcHByb3ZlZCBhY2NvdW50IHRvIHJlbW92ZS4AxEVtaXRzIGBJdGVtQXR0cmlidXRlc0FwcHJvdmFsUmVtb3ZlZGAgb24gc3VjY2Vzcy4wc2V0X21ldGFkYXRhDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARBkYXRhRQEBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgAYQHRTZXQgdGhlIG1ldGFkYXRhIGZvciBhbiBpdGVtLgBdAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZTRgY29sbGVjdGlvbmAuAFEBSWYgdGhlIG9yaWdpbiBpcyBTaWduZWQsIHRoZW4gZnVuZHMgb2Ygc2lnbmVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE69GBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiBkYXRhLmxlbmAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AOQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIHNldC7sLSBgaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHNldC5NAS0gYGRhdGFgOiBUaGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBvZiB0aGlzIGl0ZW0uIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuAGBFbWl0cyBgSXRlbU1ldGFkYXRhU2V0YC4AOFdlaWdodDogYE8oMSlgOGNsZWFyX21ldGFkYXRhCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAGTR8Q2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBpdGVtLgBdAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZTRgY29sbGVjdGlvbmAuAMBBbnkgZGVwb3NpdCBpcyBmcmVlZCBmb3IgdGhlIGNvbGxlY3Rpb24ncyBvd25lci4AQQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgaXRlbSdzIG1ldGFkYXRhIHRvIGNsZWFyLvQtIGBpdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuAHBFbWl0cyBgSXRlbU1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFxzZXRfY29sbGVjdGlvbl9tZXRhZGF0YQgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBkYXRhRQEBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgAaPIhTZXQgdGhlIG1ldGFkYXRhIGZvciBhIGNvbGxlY3Rpb24uAFUBT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZkR0aGUgYGNvbGxlY3Rpb25gLgBZAUlmIHRoZSBvcmlnaW4gaXMgYFNpZ25lZGAsIHRoZW4gZnVuZHMgb2Ygc2lnbmVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE69GBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiBkYXRhLmxlbmAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AEQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gdXBkYXRlLk0BLSBgZGF0YWA6IFRoZSBnZW5lcmFsIGluZm9ybWF0aW9uIG9mIHRoaXMgaXRlbS4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC4AeEVtaXRzIGBDb2xsZWN0aW9uTWV0YWRhdGFTZXRgLgA4V2VpZ2h0OiBgTygxKWBkY2xlYXJfY29sbGVjdGlvbl9tZXRhZGF0YQQBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAGzCQQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhIGNvbGxlY3Rpb24uAFUBT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZkR0aGUgYGNvbGxlY3Rpb25gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuACUBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIG1ldGFkYXRhIHRvIGNsZWFyLgCIRW1pdHMgYENvbGxlY3Rpb25NZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBQc2V0X2FjY2VwdF9vd25lcnNoaXAEAUBtYXliZV9jb2xsZWN0aW9u5AFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AHCgRAVNldCAob3IgcmVzZXQpIHRoZSBhY2NlcHRhbmNlIG9mIG93bmVyc2hpcCBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQuAGEBT3JpZ2luIG11c3QgYmUgYFNpZ25lZGAgYW5kIGlmIGBtYXliZV9jb2xsZWN0aW9uYCBpcyBgU29tZWAsIHRoZW4gdGhlIHNpZ25lciBtdXN0IGhhdmUgYUxwcm92aWRlciByZWZlcmVuY2UuAFEBLSBgbWF5YmVfY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIG93bmVyc2hpcCB0aGUgc2lnbmVyIGlzYQEgIHdpbGxpbmcgdG8gYWNjZXB0LCBvciBpZiBgTm9uZWAsIGFuIGluZGljYXRpb24gdGhhdCB0aGUgc2lnbmVyIGlzIHdpbGxpbmcgdG8gYWNjZXB0IG5vXCAgb3duZXJzaGlwIHRyYW5zZmVyYWwuAIxFbWl0cyBgT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWRgLmRzZXRfY29sbGVjdGlvbl9tYXhfc3VwcGx5CAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABKG1heF9zdXBwbHk4AQx1MzIAHSTgU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gY291bGQgaGF2ZS4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAOwtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gdG8gY2hhbmdlLhEBLSBgbWF4X3N1cHBseWA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gY291bGQgaGF2ZS4A1EVtaXRzIGBDb2xsZWN0aW9uTWF4U3VwcGx5U2V0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuUHVwZGF0ZV9taW50X3NldHRpbmdzCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABNG1pbnRfc2V0dGluZ3NFBAEVAU1pbnRTZXR0aW5nczxCYWxhbmNlT2Y8VCwgST4sIEJsb2NrTnVtYmVyRm9yPFQsIEk+LCBUOjoKQ29sbGVjdGlvbklkPgAeJFRVcGRhdGUgbWludCBzZXR0aW5ncy4ATQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIElzc3VlclBvZiB0aGUgYGNvbGxlY3Rpb25gLgDsLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHRvIGNoYW5nZS6kLSBgbWludF9zZXR0aW5nc2A6IFRoZSBuZXcgbWludCBzZXR0aW5ncy4A8EVtaXRzIGBDb2xsZWN0aW9uTWludFNldHRpbmdzVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLiRzZXRfcHJpY2UQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABFHByaWNlMQQBXE9wdGlvbjxJdGVtUHJpY2U8VCwgST4+AAFEd2hpdGVsaXN0ZWRfYnV5ZXIlBAFwT3B0aW9uPEFjY291bnRJZExvb2t1cE9mPFQ+PgAfLJRTZXQgKG9yIHJlc2V0KSB0aGUgcHJpY2UgZm9yIGFuIGl0ZW0uAOhPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBgaXRlbWAuAKwtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0uoC0gYGl0ZW1gOiBUaGUgaXRlbSB0byBzZXQgdGhlIHByaWNlIGZvci4NAS0gYHByaWNlYDogVGhlIHByaWNlIGZvciB0aGUgaXRlbS4gUGFzcyBgTm9uZWAsIHRvIHJlc2V0IHRoZSBwcmljZS70LSBgYnV5ZXJgOiBSZXN0cmljdHMgdGhlIGJ1eSBvcGVyYXRpb24gdG8gYSBzcGVjaWZpYyBhY2NvdW50LgDsRW1pdHMgYEl0ZW1QcmljZVNldGAgb24gc3VjY2VzcyBpZiB0aGUgcHJpY2UgaXMgbm90IGBOb25lYC7sRW1pdHMgYEl0ZW1QcmljZVJlbW92ZWRgIG9uIHN1Y2Nlc3MgaWYgdGhlIHByaWNlIGlzIGBOb25lYC4gYnV5X2l0ZW0MAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABJGJpZF9wcmljZVkBATxJdGVtUHJpY2U8VCwgST4AICSoQWxsb3dzIHRvIGJ1eSBhbiBpdGVtIGlmIGl0J3MgdXAgZm9yIHNhbGUuAPhPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIG11c3Qgbm90IGJlIHRoZSBvd25lciBvZiB0aGUgYGl0ZW1gLgCsLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtLqwtIGBpdGVtYDogVGhlIGl0ZW0gdGhlIHNlbmRlciB3YW50cyB0byBidXku2C0gYGJpZF9wcmljZWA6IFRoZSBwcmljZSB0aGUgc2VuZGVyIGlzIHdpbGxpbmcgdG8gcGF5LgB4RW1pdHMgYEl0ZW1Cb3VnaHRgIG9uIHN1Y2Nlc3MuIHBheV90aXBzBAEQdGlwc20EAZxCb3VuZGVkVmVjPEl0ZW1UaXBPZjxULCBJPiwgVDo6TWF4VGlwcz4AIRxcQWxsb3dzIHRvIHBheSB0aGUgdGlwcy4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AVC0gYHRpcHNgOiBUaXBzIGFycmF5LgCYRW1pdHMgYFRpcFNlbnRgIG9uIGV2ZXJ5IHRpcCB0cmFuc2Zlci4sY3JlYXRlX3N3YXAYAUhvZmZlcmVkX2NvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAATBvZmZlcmVkX2l0ZW04ASRUOjpJdGVtSWQAAUhkZXNpcmVkX2NvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAUhtYXliZV9kZXNpcmVkX2l0ZW3kAURPcHRpb248VDo6SXRlbUlkPgABLG1heWJlX3ByaWNleQQBrE9wdGlvbjxQcmljZVdpdGhEaXJlY3Rpb248SXRlbVByaWNlPFQsIEk+Pj4AASBkdXJhdGlvbjgBUEJsb2NrTnVtYmVyRm9yPFQsIEk+ACJAUQFSZWdpc3RlciBhIG5ldyBhdG9taWMgc3dhcCwgZGVjbGFyaW5nIGFuIGludGVudGlvbiB0byBzZW5kIGFuIGBpdGVtYCBpbiBleGNoYW5nZSBmb3L8YGRlc2lyZWRfaXRlbWAgZnJvbSBvcmlnaW4gdG8gdGFyZ2V0IG9uIHRoZSBjdXJyZW50IGJsb2NrY2hhaW4uTQFUaGUgdGFyZ2V0IGNhbiBleGVjdXRlIHRoZSBzd2FwIGR1cmluZyB0aGUgc3BlY2lmaWVkIGBkdXJhdGlvbmAgb2YgYmxvY2tzIChpZiBzZXQpLvBBZGRpdGlvbmFsbHksIHRoZSBwcmljZSBjb3VsZCBiZSBzZXQgZm9yIHRoZSBkZXNpcmVkIGBpdGVtYC4A5E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgbXVzdCBiZSBhbiBvd25lciBvZiB0aGUgYGl0ZW1gLgCsLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtLqgtIGBpdGVtYDogVGhlIGl0ZW0gYW4gb3duZXIgd2FudHMgdG8gZ2l2ZS7sLSBgZGVzaXJlZF9jb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGRlc2lyZWQgaXRlbS70LSBgZGVzaXJlZF9pdGVtYDogVGhlIGRlc2lyZWQgaXRlbSBhbiBvd25lciB3YW50cyB0byByZWNlaXZlLmEBLSBgbWF5YmVfcHJpY2VgOiBUaGUgcHJpY2UgYW4gb3duZXIgaXMgd2lsbGluZyB0byBwYXkgb3IgcmVjZWl2ZSBmb3IgdGhlIGRlc2lyZWQgYGl0ZW1gLkkBLSBgZHVyYXRpb25gOiBBIGRlYWRsaW5lIGZvciB0aGUgc3dhcC4gU3BlY2lmaWVkIGJ5IHByb3ZpZGluZyB0aGUgbnVtYmVyIG9mIGJsb2Nrc4gJYWZ0ZXIgd2hpY2ggdGhlIHN3YXAgd2lsbCBleHBpcmUuAHxFbWl0cyBgU3dhcENyZWF0ZWRgIG9uIHN1Y2Nlc3MuLGNhbmNlbF9zd2FwCAFIb2ZmZXJlZF9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEwb2ZmZXJlZF9pdGVtOAEkVDo6SXRlbUlkACMkWENhbmNlbCBhbiBhdG9taWMgc3dhcC4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4VAU9yaWdpbiBtdXN0IGJlIGFuIG93bmVyIG9mIHRoZSBgaXRlbWAgaWYgdGhlIGRlYWRsaW5lIGhhc24ndCBleHBpcmVkLgCsLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtLqgtIGBpdGVtYDogVGhlIGl0ZW0gYW4gb3duZXIgd2FudHMgdG8gZ2l2ZS4AhEVtaXRzIGBTd2FwQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLihjbGFpbV9zd2FwFAE8c2VuZF9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEkc2VuZF9pdGVtOAEkVDo6SXRlbUlkAAFIcmVjZWl2ZV9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEwcmVjZWl2ZV9pdGVtOAEkVDo6SXRlbUlkAAE0d2l0bmVzc19wcmljZXkEAaxPcHRpb248UHJpY2VXaXRoRGlyZWN0aW9uPEl0ZW1QcmljZTxULCBJPj4+ACQwVENsYWltIGFuIGF0b21pYyBzd2FwLjkBVGhpcyBtZXRob2QgZXhlY3V0ZXMgYSBwZW5kaW5nIHN3YXAsIHRoYXQgd2FzIGNyZWF0ZWQgYnkgYSBjb3VudGVycGFydCBiZWZvcmUuAORPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIG11c3QgYmUgYW4gb3duZXIgb2YgdGhlIGBpdGVtYC4A7C0gYHNlbmRfY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIHNlbnQujC0gYHNlbmRfaXRlbWA6IFRoZSBpdGVtIHRvIGJlIHNlbnQuCQEtIGByZWNlaXZlX2NvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSByZWNlaXZlZC6oLSBgcmVjZWl2ZV9pdGVtYDogVGhlIGl0ZW0gdG8gYmUgcmVjZWl2ZWQu5C0gYHdpdG5lc3NfcHJpY2VgOiBBIHByaWNlIHRoYXQgd2FzIHByZXZpb3VzbHkgYWdyZWVkIG9uLgB8RW1pdHMgYFN3YXBDbGFpbWVkYCBvbiBzdWNjZXNzLjxtaW50X3ByZV9zaWduZWQMASRtaW50X2RhdGGFBAFoQm94PFByZVNpZ25lZE1pbnRPZjxULCBJPj4AASRzaWduYXR1cmWJBAFQVDo6T2ZmY2hhaW5TaWduYXR1cmUAARhzaWduZXIEATBUOjpBY2NvdW50SWQAJTTITWludCBhbiBpdGVtIGJ5IHByb3ZpZGluZyB0aGUgcHJlLXNpZ25lZCBhcHByb3ZhbC4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AXQEtIGBtaW50X2RhdGFgOiBUaGUgcHJlLXNpZ25lZCBhcHByb3ZhbCB0aGF0IGNvbnNpc3RzIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaXRlbSxRASAgaXRzIG1ldGFkYXRhLCBhdHRyaWJ1dGVzLCB3aG8gY2FuIG1pbnQgaXQgKGBOb25lYCBmb3IgYW55b25lKSBhbmQgdW50aWwgd2hhdCBibG9jayQgIG51bWJlci7ILSBgc2lnbmF0dXJlYDogVGhlIHNpZ25hdHVyZSBvZiB0aGUgYGRhdGFgIG9iamVjdC45AS0gYHNpZ25lcmA6IFRoZSBgZGF0YWAgb2JqZWN0J3Mgc2lnbmVyLiBTaG91bGQgYmUgYW4gSXNzdWVyIG9mIHRoZSBjb2xsZWN0aW9uLgBoRW1pdHMgYElzc3VlZGAgb24gc3VjY2Vzcy7URW1pdHMgYEF0dHJpYnV0ZVNldGAgaWYgdGhlIGF0dHJpYnV0ZXMgd2VyZSBwcm92aWRlZC7YRW1pdHMgYEl0ZW1NZXRhZGF0YVNldGAgaWYgdGhlIG1ldGFkYXRhIHdhcyBub3QgZW1wdHkuZHNldF9hdHRyaWJ1dGVzX3ByZV9zaWduZWQMARBkYXRhkQQBbFByZVNpZ25lZEF0dHJpYnV0ZXNPZjxULCBJPgABJHNpZ25hdHVyZYkEAVBUOjpPZmZjaGFpblNpZ25hdHVyZQABGHNpZ25lcgQBMFQ6OkFjY291bnRJZAAmNAEBU2V0IGF0dHJpYnV0ZXMgZm9yIGFuIGl0ZW0gYnkgcHJvdmlkaW5nIHRoZSBwcmUtc2lnbmVkIGFwcHJvdmFsLgD4T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IGJlIGFuIG93bmVyIG9mIHRoZSBgZGF0YS5pdGVtYC4ASQEtIGBkYXRhYDogVGhlIHByZS1zaWduZWQgYXBwcm92YWwgdGhhdCBjb25zaXN0cyBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGl0ZW0szCAgYXR0cmlidXRlcyB0byB1cGRhdGUgYW5kIHVudGlsIHdoYXQgYmxvY2sgbnVtYmVyLsgtIGBzaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlIG9mIHRoZSBgZGF0YWAgb2JqZWN0LlEBLSBgc2lnbmVyYDogVGhlIGBkYXRhYCBvYmplY3QncyBzaWduZXIuIFNob3VsZCBiZSBhbiBBZG1pbiBvZiB0aGUgY29sbGVjdGlvbiBmb3IgdGhleCAgYENvbGxlY3Rpb25Pd25lcmAgbmFtZXNwYWNlLgDERW1pdHMgYEF0dHJpYnV0ZVNldGAgZm9yIGVhY2ggcHJvdmlkZWQgYXR0cmlidXRlLhkBRW1pdHMgYEl0ZW1BdHRyaWJ1dGVzQXBwcm92YWxBZGRlZGAgaWYgdGhlIGFwcHJvdmFsIHdhc24ndCBzZXQgYmVmb3JlLqhFbWl0cyBgUHJlU2lnbmVkQXR0cmlidXRlc1NldGAgb24gc3VjY2Vzcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQQMLHBhbGxldF9uZnRzFHR5cGVzQENvbGxlY3Rpb25Db25maWcMFFByaWNlAVkBLEJsb2NrTnVtYmVyATgwQ29sbGVjdGlvbklkATgADAEgc2V0dGluZ3M9BAFIQ29sbGVjdGlvblNldHRpbmdzAAEobWF4X3N1cHBseeQBLE9wdGlvbjx1MzI+AAE0bWludF9zZXR0aW5nc0UEAbhNaW50U2V0dGluZ3M8UHJpY2UsIEJsb2NrTnVtYmVyLCBDb2xsZWN0aW9uSWQ+AAA9BAwscGFsbGV0X25mdHMUdHlwZXMgQml0RmxhZ3MEBFQBQQQABAAoAURDb2xsZWN0aW9uU2V0dGluZwAAQQQMLHBhbGxldF9uZnRzFHR5cGVzRENvbGxlY3Rpb25TZXR0aW5nAAEURFRyYW5zZmVyYWJsZUl0ZW1zAAEAQFVubG9ja2VkTWV0YWRhdGEAAgBIVW5sb2NrZWRBdHRyaWJ1dGVzAAQARFVubG9ja2VkTWF4U3VwcGx5AAgAPERlcG9zaXRSZXF1aXJlZAAQAABFBAwscGFsbGV0X25mdHMUdHlwZXMwTWludFNldHRpbmdzDBRQcmljZQFZASxCbG9ja051bWJlcgE4MENvbGxlY3Rpb25JZAE4ABQBJG1pbnRfdHlwZUkEAVhNaW50VHlwZTxDb2xsZWN0aW9uSWQ+AAEUcHJpY2UxBAE0T3B0aW9uPFByaWNlPgABLHN0YXJ0X2Jsb2Nr5AFMT3B0aW9uPEJsb2NrTnVtYmVyPgABJGVuZF9ibG9ja+QBTE9wdGlvbjxCbG9ja051bWJlcj4AAVRkZWZhdWx0X2l0ZW1fc2V0dGluZ3NNBAEwSXRlbVNldHRpbmdzAABJBAwscGFsbGV0X25mdHMUdHlwZXMgTWludFR5cGUEMENvbGxlY3Rpb25JZAE4AQwYSXNzdWVyAAAAGFB1YmxpYwABACBIb2xkZXJPZgQAOAEwQ29sbGVjdGlvbklkAAIAAE0EDCxwYWxsZXRfbmZ0cxR0eXBlcyBCaXRGbGFncwQEVAFRBAAEACgBLEl0ZW1TZXR0aW5nAABRBAwscGFsbGV0X25mdHMUdHlwZXMsSXRlbVNldHRpbmcAAQwwVHJhbnNmZXJhYmxlAAEAQFVubG9ja2VkTWV0YWRhdGEAAgBIVW5sb2NrZWRBdHRyaWJ1dGVzAAQAAFUEDCxwYWxsZXRfbmZ0cxR0eXBlczhEZXN0cm95V2l0bmVzcwAADAE4aXRlbV9tZXRhZGF0YXNkAQx1MzIAATBpdGVtX2NvbmZpZ3NkAQx1MzIAAShhdHRyaWJ1dGVzZAEMdTMyAABZBAQYT3B0aW9uBARUAV0EAQgQTm9uZQAAABBTb21lBABdBAAAAQAAXQQMLHBhbGxldF9uZnRzFHR5cGVzLE1pbnRXaXRuZXNzCBhJdGVtSWQBOBxCYWxhbmNlAVkBAAgBKG93bmVkX2l0ZW3kAThPcHRpb248SXRlbUlkPgABKG1pbnRfcHJpY2UxBAE8T3B0aW9uPEJhbGFuY2U+AABhBAwscGFsbGV0X25mdHMUdHlwZXMoSXRlbUNvbmZpZwAABAEgc2V0dGluZ3NNBAEwSXRlbVNldHRpbmdzAABlBAwscGFsbGV0X25mdHMUdHlwZXNIQXR0cmlidXRlTmFtZXNwYWNlBCRBY2NvdW50SWQBBAEQGFBhbGxldAAAADxDb2xsZWN0aW9uT3duZXIAAQAkSXRlbU93bmVyAAIAHEFjY291bnQEAAQBJEFjY291bnRJZAADAABpBAwscGFsbGV0X25mdHMUdHlwZXN8Q2FuY2VsQXR0cmlidXRlc0FwcHJvdmFsV2l0bmVzcwAABAFIYWNjb3VudF9hdHRyaWJ1dGVzOAEMdTMyAABtBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAXEEBFMAAAQAdQQBGFZlYzxUPgAAcQQMLHBhbGxldF9uZnRzFHR5cGVzHEl0ZW1UaXAQMENvbGxlY3Rpb25JZAE4GEl0ZW1JZAE4JEFjY291bnRJZAEEGEFtb3VudAFZAQAQAShjb2xsZWN0aW9uOAEwQ29sbGVjdGlvbklkAAEQaXRlbTgBGEl0ZW1JZAABIHJlY2VpdmVyBAEkQWNjb3VudElkAAEYYW1vdW50WQEBGEFtb3VudAAAdQQAAAJxBAB5BAQYT3B0aW9uBARUAX0EAQgQTm9uZQAAABBTb21lBAB9BAAAAQAAfQQMLHBhbGxldF9uZnRzFHR5cGVzSFByaWNlV2l0aERpcmVjdGlvbgQYQW1vdW50AVkBAAgBGGFtb3VudFkBARhBbW91bnQAASRkaXJlY3Rpb26BBAE4UHJpY2VEaXJlY3Rpb24AAIEEDCxwYWxsZXRfbmZ0cxR0eXBlczhQcmljZURpcmVjdGlvbgABCBBTZW5kAAAAHFJlY2VpdmUAAQAAhQQMLHBhbGxldF9uZnRzFHR5cGVzNFByZVNpZ25lZE1pbnQUMENvbGxlY3Rpb25JZAE4GEl0ZW1JZAE4JEFjY291bnRJZAEEIERlYWRsaW5lATgcQmFsYW5jZQFZAQAcAShjb2xsZWN0aW9uOAEwQ29sbGVjdGlvbklkAAEQaXRlbTgBGEl0ZW1JZAABKGF0dHJpYnV0ZXMsAVxWZWM8KFZlYzx1OD4sIFZlYzx1OD4pPgABIG1ldGFkYXRhGAEcVmVjPHU4PgABMG9ubHlfYWNjb3VudJEBAURPcHRpb248QWNjb3VudElkPgABIGRlYWRsaW5lOAEgRGVhZGxpbmUAAShtaW50X3ByaWNlMQQBPE9wdGlvbjxCYWxhbmNlPgAAiQQIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAARAcRWQyNTUxOQQAjQQBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BACNBAFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBAB5AQFAZWNkc2E6OlNpZ25hdHVyZQACAAxFdGgEAHkBAVhlY2RzYTo6S2VjY2FrU2lnbmF0dXJlAAMAAI0EAAADQAAAAAwAkQQMLHBhbGxldF9uZnRzFHR5cGVzTFByZVNpZ25lZEF0dHJpYnV0ZXMQMENvbGxlY3Rpb25JZAE4GEl0ZW1JZAE4JEFjY291bnRJZAEEIERlYWRsaW5lATgAFAEoY29sbGVjdGlvbjgBMENvbGxlY3Rpb25JZAABEGl0ZW04ARhJdGVtSWQAAShhdHRyaWJ1dGVzLAFcVmVjPChWZWM8dTg+LCBWZWM8dTg+KT4AASRuYW1lc3BhY2VlBAF0QXR0cmlidXRlTmFtZXNwYWNlPEFjY291bnRJZD4AASBkZWFkbGluZTgBIERlYWRsaW5lAACVBAw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQQQ2FsbAgEVAAESQABiBhjcmVhdGUMAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNlWQEBKFQ6OkJhbGFuY2UAAEzoSXNzdWUgYSBuZXcgY2xhc3Mgb2YgZnVuZ2libGUgYXNzZXRzIGZyb20gYSBwdWJsaWMgb3JpZ2luLgAlAVRoaXMgbmV3IGFzc2V0IGNsYXNzIGhhcyBubyBhc3NldHMgaW5pdGlhbGx5IGFuZCBpdHMgb3duZXIgaXMgdGhlIG9yaWdpbi4AYQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCBgQ3JlYXRlT3JpZ2luYCBhbmQgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZyZWUuALxGdW5kcyBvZiBzZW5kZXIgYXJlIHJlc2VydmVkIGJ5IGBBc3NldERlcG9zaXRgLgAsUGFyYW1ldGVyczpZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldC4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlIHRvIGlkZW50aWZ5MQFhbiBleGlzdGluZyBhc3NldC4gSWYgW2BOZXh0QXNzZXRJZGBdIGlzIHNldCwgdGhlbiB0aGlzIG11c3QgYmUgZXF1YWwgdG8gaXQuWQEtIGBhZG1pbmA6IFRoZSBhZG1pbiBvZiB0aGlzIGNsYXNzIG9mIGFzc2V0cy4gVGhlIGFkbWluIGlzIHRoZSBpbml0aWFsIGFkZHJlc3Mgb2YgZWFjaJxtZW1iZXIgb2YgdGhlIGFzc2V0IGNsYXNzJ3MgYWRtaW4gdGVhbS5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uAJhFbWl0cyBgQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAwZm9yY2VfY3JlYXRlEAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50XQEBEGJvb2wAASxtaW5fYmFsYW5jZVUBAShUOjpCYWxhbmNlAAFM+Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHJpdmlsZWdlZCBvcmlnaW4uALRUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseS4ApFRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAuAJxVbmxpa2UgYGNyZWF0ZWAsIG5vIGZ1bmRzIGFyZSByZXNlcnZlZC4AWQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgb3duZXJgOiBUaGUgb3duZXIgb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBvd25lciBoYXMgZnVsbCBzdXBlcnVzZXIgcGVybWlzc2lvbnMlAW92ZXIgdGhpcyBhc3NldCwgYnV0IG1heSBsYXRlciBjaGFuZ2UgYW5kIGNvbmZpZ3VyZSB0aGUgcGVybWlzc2lvbnMgdXNpbmeQYHRyYW5zZmVyX293bmVyc2hpcGAgYW5kIGBzZXRfdGVhbWAuTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCsRW1pdHMgYEZvcmNlQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWA0c3RhcnRfZGVzdHJveQQBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAjDcU3RhcnQgdGhlIHByb2Nlc3Mgb2YgZGVzdHJveWluZyBhIGZ1bmdpYmxlIGFzc2V0IGNsYXNzLgBZAWBzdGFydF9kZXN0cm95YCBpcyB0aGUgZmlyc3QgaW4gYSBzZXJpZXMgb2YgZXh0cmluc2ljcyB0aGF0IHNob3VsZCBiZSBjYWxsZWQsIHRvIGFsbG93eGRlc3RydWN0aW9uIG9mIGFuIGFzc2V0IGNsYXNzLgBRAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAgb3IgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgYXNzZXQncyBgb3duZXJgLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZrhhbiBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuQGRlc3Ryb3lfYWNjb3VudHMEAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAMwzERlc3Ryb3kgYWxsIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0LgBdAWBkZXN0cm95X2FjY291bnRzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHkxAWRlc3Ryb3kgYWxsIGFjY291bnRzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFjY291bnRzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDURWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFjY291bnRzYCBldmVudC5EZGVzdHJveV9hcHByb3ZhbHMEAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAQwYQFEZXN0cm95IGFsbCBhcHByb3ZhbHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQgdXAgdG8gdGhlIG1heCAoVDo6UmVtb3ZlSXRlbXNMaW1pdCkuAGEBYGRlc3Ryb3lfYXBwcm92YWxzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHk5AWRlc3Ryb3kgYWxsIGFwcHJvdmFscy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhcHByb3ZhbHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANhFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQXBwcm92YWxzYCBldmVudC44ZmluaXNoX2Rlc3Ryb3kEAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAUoxENvbXBsZXRlIGRlc3Ryb3lpbmcgYXNzZXQgYW5kIHVucmVzZXJ2ZSBjdXJyZW5jeS4AVQFgZmluaXNoX2Rlc3Ryb3lgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlWQFhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4gQWxsIGFjY291bnRzIG9yIGFwcHJvdmFscyBzaG91bGQgYmUgZGVzdHJveWVkIGJlZm9yZRRoYW5kLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAOBFYWNoIHN1Y2Nlc3NmdWwgY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRgIGV2ZW50LhBtaW50DAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABLGJlbmVmaWNpYXJ5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRVAQEoVDo6QmFsYW5jZQAGMIhNaW50IGFzc2V0cyBvZiBhIHBhcnRpY3VsYXIgY2xhc3MuADkBVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBJc3N1ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAPwtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IG1pbnRlZC4NAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQgd2l0aCB0aGUgbWludGVkIGFzc2V0cy7ELSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiB0aGUgYXNzZXQgdG8gYmUgbWludGVkLgCURW1pdHMgYElzc3VlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWBVAU1vZGVzOiBQcmUtZXhpc3RpbmcgYmFsYW5jZSBvZiBgYmVuZWZpY2lhcnlgOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YgYGJlbmVmaWNpYXJ5YC4QYnVybgwBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAc8RQFSZWR1Y2UgdGhlIGJhbGFuY2Ugb2YgYHdob2AgYnkgYXMgbXVjaCBhcyBwb3NzaWJsZSB1cCB0byBgYW1vdW50YCBhc3NldHMgb2YgYGlkYC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBNYW5hZ2VyIG9mIHRoZSBhc3NldCBgaWRgLgDQQmFpbHMgd2l0aCBgTm9BY2NvdW50YCBpZiB0aGUgYHdob2AgaXMgYWxyZWFkeSBkZWFkLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBidXJuZWQuoC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGRlYml0ZWQgZnJvbS4pAS0gYGFtb3VudGA6IFRoZSBtYXhpbXVtIGFtb3VudCBieSB3aGljaCBgd2hvYCdzIGJhbGFuY2Ugc2hvdWxkIGJlIHJlZHVjZWQuAFEBRW1pdHMgYEJ1cm5lZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCBidXJuZWQuIElmIHRoaXMgdGFrZXMgdGhlIGJhbGFuY2UgdG8gYmVsb3cgdGhlOQFtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCBidXJuZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgCQFNb2RlczogUG9zdC1leGlzdGVuY2Ugb2YgYHdob2A7IFByZSAmIHBvc3QgWm9tYmllLXN0YXR1cyBvZiBgd2hvYC4gdHJhbnNmZXIMAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRVAQEoVDo6QmFsYW5jZQAISNBNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQwBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAlIWQFNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIsIGtlZXBpbmcgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlLgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgARAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgdHJhbnNmZXJyZWQunC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlEBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgc2VuZGVyJ3MgYmFsYW5jZSBvZiBhc3NldHMgc2hvdWxkIGJlIHJlZHVjZWQgYW5kYQFgdGFyZ2V0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluXQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgc2VuZGVyIGJhbGFuY2UgYWJvdmUgemVybyBidXQgYmVsb3e8dGhlIG1pbmltdW0gYmFsYW5jZS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AYQFFbWl0cyBgVHJhbnNmZXJyZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgdHJhbnNmZXJyZWQuIElmIHRoaXMgdGFrZXMgdGhlIHNvdXJjZSBiYWxhbmNlXQF0byBiZWxvdyB0aGUgbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgdHJhbnNmZXJyZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgUQFNb2RlczogUHJlLWV4aXN0ZW5jZSBvZiBgdGFyZ2V0YDsgUG9zdC1leGlzdGVuY2Ugb2Ygc2VuZGVyOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YkYHRhcmdldGAuOGZvcmNlX3RyYW5zZmVyEAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UACky0TW92ZSBzb21lIGFzc2V0cyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6YLSBgc291cmNlYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZC6ULSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgYHNvdXJjZWAncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRZAWBkZXN0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluTQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgYHNvdXJjZWAgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dNRiZWxvdyB0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGBkZXN0YDsgUG9zdC1leGlzdGVuY2Ugb2YgYHNvdXJjZWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZhxgZGVzdGAuGGZyZWV6ZQgBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgALMFUBRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIG9mIGFuIGFzc2V0IGBpZGAgZnJvbSBhbiBhY2NvdW50IGB3aG9gLiBgd2hvYE0BbXVzdCBhbHJlYWR5IGV4aXN0IGFzIGFuIGVudHJ5IGluIGBBY2NvdW50YHMgb2YgdGhlIGFzc2V0LiBJZiB5b3Ugd2FudCB0byBmcmVlemUgYW70YWNjb3VudCB0aGF0IGRvZXMgbm90IGhhdmUgYW4gZW50cnksIHVzZSBgdG91Y2hfb3RoZXJgIGZpcnN0LgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uiC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAQdGhhdwgBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAMKOhBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4ukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuZnJvemVuLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYDBmcmVlemVfYXNzZXQEAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAA0k8ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGNsYXNzLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgKHRoYXdfYXNzZXQEAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAA4kxEFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIHRoZSBhc3NldCBhZ2Fpbi4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIHRoYXdlZC4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWBIdHJhbnNmZXJfb3duZXJzaGlwCAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADyh0Q2hhbmdlIHRoZSBPd25lciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC4AVEVtaXRzIGBPd25lckNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWAgc2V0X3RlYW0QAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAARQHhTZXQgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4A2EZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOlEBYE1ldGFkYXRhRGVwb3NpdEJhc2UgKyBNZXRhZGF0YURlcG9zaXRQZXJCeXRlICogKG5hbWUubGVuICsgc3ltYm9sLmxlbilgIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuALgtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byB1cGRhdGUuTQEtIGBuYW1lYDogVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLk0BLSBgc3ltYm9sYDogVGhlIGV4Y2hhbmdlIHN5bWJvbCBmb3IgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC4tAS0gYGRlY2ltYWxzYDogVGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGlzIGFzc2V0IHVzZXMgdG8gcmVwcmVzZW50IG9uZSB1bml0LgBQRW1pdHMgYE1ldGFkYXRhU2V0YC4AOFdlaWdodDogYE8oMSlgOGNsZWFyX21ldGFkYXRhBAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgASLIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgCkQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBhc3NldCBvd25lci4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9zZXRfbWV0YWRhdGEUAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbl0BARBib29sABM4uEZvcmNlIHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQgdG8gc29tZSB2YWx1ZS4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBoQW55IGRlcG9zaXQgaXMgbGVmdCBhbG9uZS4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgBRAVdlaWdodDogYE8oTiArIFMpYCB3aGVyZSBOIGFuZCBTIGFyZSB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIGFuZCBzeW1ib2wgcmVzcGVjdGl2ZWx5LlBmb3JjZV9jbGVhcl9tZXRhZGF0YQQBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAFCyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBgQW55IGRlcG9zaXQgaXMgcmV0dXJuZWQuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2VfYXNzZXRfc3RhdHVzIAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASxtaW5fYmFsYW5jZVUBAShUOjpCYWxhbmNlAAE0aXNfc3VmZmljaWVudF0BARBib29sAAEkaXNfZnJvemVuXQEBEGJvb2wAFViYQWx0ZXIgdGhlIGF0dHJpYnV0ZXMgb2YgYSBnaXZlbiBhc3NldC4AdE9yaWdpbiBtdXN0IGJlIGBGb3JjZU9yaWdpbmAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQupC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgYXNzZXQunC0gYGFkbWluYDogVGhlIG5ldyBBZG1pbiBvZiB0aGlzIGFzc2V0LqwtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgYXNzZXQuTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLlEBLSBgaXNfc3VmZmljaWVudGA6IFdoZXRoZXIgYSBub24temVybyBiYWxhbmNlIG9mIHRoaXMgYXNzZXQgaXMgZGVwb3NpdCBvZiBzdWZmaWNpZW50TQF2YWx1ZSB0byBhY2NvdW50IGZvciB0aGUgc3RhdGUgYmxvYXQgYXNzb2NpYXRlZCB3aXRoIGl0cyBiYWxhbmNlIHN0b3JhZ2UuIElmIHNldCB0b1UBYHRydWVgLCB0aGVuIG5vbi16ZXJvIGJhbGFuY2VzIG1heSBiZSBzdG9yZWQgd2l0aG91dCBhIGBjb25zdW1lcmAgcmVmZXJlbmNlIChhbmQgdGh1c00BYW4gRUQgaW4gdGhlIEJhbGFuY2VzIHBhbGxldCBvciB3aGF0ZXZlciBlbHNlIGlzIHVzZWQgdG8gY29udHJvbCB1c2VyLWFjY291bnQgc3RhdGUgZ3Jvd3RoKS49AS0gYGlzX2Zyb3plbmA6IFdoZXRoZXIgdGhpcyBhc3NldCBjbGFzcyBpcyBmcm96ZW4gZXhjZXB0IGZvciBwZXJtaXNzaW9uZWQvYWRtaW40aW5zdHJ1Y3Rpb25zLgDoRW1pdHMgYEFzc2V0U3RhdHVzQ2hhbmdlZGAgd2l0aCB0aGUgaWRlbnRpdHkgb2YgdGhlIGFzc2V0LgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlcgwBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABc0SQFDYW5jZWwgYWxsIG9mIHNvbWUgYXNzZXQgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2ZlciBieSBhIHRoaXJkLXBhcnR5IGFjY291bnQuAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGVyZSBtdXN0IGJlIGFuIGFwcHJvdmFsIGluIHBsYWNlIGJldHdlZW4gc2lnbmVyIGFuZCxgZGVsZWdhdGVgLgBJAVVucmVzZXJ2ZXMgYW55IGRlcG9zaXQgcHJldmlvdXNseSByZXNlcnZlZCBieSBgYXBwcm92ZV90cmFuc2ZlcmAgZm9yIHRoZSBhcHByb3ZhbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgUBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCBkZWxlZ2F0ZWQgcGVybWlzc2lvbiB0byB0cmFuc2ZlciBhc3NldC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgVGZvcmNlX2NhbmNlbF9hcHByb3ZhbAwBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAYNEkBQ2FuY2VsIGFsbCBvZiBzb21lIGFzc2V0IGFwcHJvdmVkIGZvciBkZWxlZ2F0ZWQgdHJhbnNmZXIgYnkgYSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBGb3JjZU9yaWdpbiBvciBTaWduZWQgb3JpZ2luIHdpdGggdGhlIHNpZ25lciBiZWluZyB0aGUgQWRtaW5oYWNjb3VudCBvZiB0aGUgYXNzZXQgYGlkYC4ASQFVbnJlc2VydmVzIGFueSBkZXBvc2l0IHByZXZpb3VzbHkgcmVzZXJ2ZWQgYnkgYGFwcHJvdmVfdHJhbnNmZXJgIGZvciB0aGUgYXBwcm92YWwuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC4FAS0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgZGVsZWdhdGVkIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuAJRFbWl0cyBgQXBwcm92YWxDYW5jZWxsZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYER0cmFuc2Zlcl9hcHByb3ZlZBABCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsZGVzdGluYXRpb24AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlABlITQFUcmFuc2ZlciBzb21lIGFzc2V0IGJhbGFuY2UgZnJvbSBhIHByZXZpb3VzbHkgZGVsZWdhdGVkIGFjY291bnQgdG8gc29tZSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBieSB0aGUgYG93bmVyYCB0byB0aGUcc2lnbmVyLgBZAUlmIHRoZSBlbnRpcmUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2ZlciBpcyB0cmFuc2ZlcnJlZCwgdGhlbiBhbnkgZGVwb3NpdCBwcmV2aW91c2x5tHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBpcyB1bnJlc2VydmVkLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuYQEtIGBvd25lcmA6IFRoZSBhY2NvdW50IHdoaWNoIHByZXZpb3VzbHkgYXBwcm92ZWQgZm9yIGEgdHJhbnNmZXIgb2YgYXQgbGVhc3QgYGFtb3VudGAgYW5kvGZyb20gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugd2lsbCBiZSB3aXRoZHJhd24uYQEtIGBkZXN0aW5hdGlvbmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIG9mIGBhbW91bnRgIHdpbGwgYmUgdHJhbnNmZXJyZWQutC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgYXNzZXRzIHRvIHRyYW5zZmVyLgCcRW1pdHMgYFRyYW5zZmVycmVkQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYBR0b3VjaAQBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAGiTAQ3JlYXRlIGFuIGFzc2V0IGFjY291bnQgZm9yIG5vbi1wcm92aWRlciBhc3NldHMuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi4JAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4YcmVmdW5kCAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABKGFsbG93X2J1cm5dAQEQYm9vbAAbNFkBUmV0dXJuIHRoZSBkZXBvc2l0IChpZiBhbnkpIG9mIGFuIGFzc2V0IGFjY291bnQgb3IgYSBjb25zdW1lciByZWZlcmVuY2UgKGlmIGFueSkgb2YgYW4gYWNjb3VudC4AaFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQuAD0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHdoaWNoIHRoZSBjYWxsZXIgd291bGQgbGlrZSB0aGUgZGVwb3NpdCwgIHJlZnVuZGVkLl0BLSBgYWxsb3dfYnVybmA6IElmIGB0cnVlYCB0aGVuIGFzc2V0cyBtYXkgYmUgZGVzdHJveWVkIGluIG9yZGVyIHRvIGNvbXBsZXRlIHRoZSByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHNldF9taW5fYmFsYW5jZQgBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxtaW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlABwwlFNldHMgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBhbiBhc3NldC4AIQFPbmx5IHdvcmtzIGlmIHRoZXJlIGFyZW4ndCBhbnkgYWNjb3VudHMgdGhhdCBhcmUgaG9sZGluZyB0aGUgYXNzZXQgb3IgaWbgdGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgIGlzIGxlc3MgdGhhbiB0aGUgb2xkIG9uZS4A/E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBoYXMgdG8gYmUgdGhlIE93bmVyIG9mIHRoZSxhc3NldCBgaWRgLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuwC0gYG1pbl9iYWxhbmNlYDogVGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4sdG91Y2hfb3RoZXIIAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHSyIQ3JlYXRlIGFuIGFzc2V0IGFjY291bnQgZm9yIGB3aG9gLgDAQSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyIGFjY291bnQuAF0BLSBgb3JpZ2luYDogTXVzdCBiZSBTaWduZWQ7IHRoZSBzaWduZXIgYWNjb3VudCBtdXN0IGhhdmUgc3VmZmljaWVudCBmdW5kcyBmb3IgYSBkZXBvc2l0OCAgdG8gYmUgdGFrZW4uYQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZCwgdGhlIGFzc2V0IHN0YXR1cyBtdXN0KCAgYmUgbGl2ZS6MLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZC4AmEVtaXRzIGBUb3VjaGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuMHJlZnVuZF9vdGhlcggBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAeNF0BUmV0dXJuIHRoZSBkZXBvc2l0IChpZiBhbnkpIG9mIGEgdGFyZ2V0IGFzc2V0IGFjY291bnQuIFVzZWZ1bCBpZiB5b3UgYXJlIHRoZSBkZXBvc2l0b3IuAF0BVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgZWl0aGVyIHRoZSBhY2NvdW50IG93bmVyLCBkZXBvc2l0b3IsIG9yIGFzc2V0IGBBZG1pbmAuIEluYQFvcmRlciB0byBidXJuIGEgbm9uLXplcm8gYmFsYW5jZSBvZiB0aGUgYXNzZXQsIHRoZSBjYWxsZXIgbXVzdCBiZSB0aGUgYWNjb3VudCBhbmQgc2hvdWxkNHVzZSBgcmVmdW5kYC4AGQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgaG9sZGluZyBhIGRlcG9zaXQufC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIHJlZnVuZC4ASQFJdCB3aWxsIGZhaWwgd2l0aCBlaXRoZXIgW2BFcnJvcjo6Q29udGFpbnNIb2xkc2BdIG9yIFtgRXJyb3I6OkNvbnRhaW5zRnJlZXplc2BdIGlm1HRoZSBhc3NldCBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuAJxFbWl0cyBgUmVmdW5kZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4UYmxvY2sIAQhpZAECAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHyhZAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYHdob2AuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjY291bnQncyBhc3NldC6ULSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdW5ibG9ja2VkLgBARW1pdHMgYEJsb2NrZWRgLgA4V2VpZ2h0OiBgTygxKWAwdHJhbnNmZXJfYWxsDAEIaWQBAgFMVDo6QXNzZXRJZFBhcmFtZXRlcgABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmVdAQEQYm9vbAAgQB0BVHJhbnNmZXIgdGhlIGVudGlyZSB0cmFuc2ZlcmFibGUgYmFsYW5jZSBmcm9tIHRoZSBjYWxsZXIgYXNzZXQgYWNjb3VudC4AWQFOT1RFOiBUaGlzIGZ1bmN0aW9uIG9ubHkgYXR0ZW1wdHMgdG8gdHJhbnNmZXIgX3RyYW5zZmVyYWJsZV8gYmFsYW5jZXMuIFRoaXMgbWVhbnMgdGhhdD0BYW55IGhlbGQsIGZyb3plbiwgb3IgbWluaW11bSBiYWxhbmNlICh3aGVuIGBrZWVwX2FsaXZlYCBpcyBgdHJ1ZWApLCB3aWxsIG5vdCBiZV0BdHJhbnNmZXJyZWQgYnkgdGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVkIGFjY291bnQsRQF5b3UgbWlnaHQgbmVlZCB0byBwcmVwYXJlIHRoZSBhY2NvdW50IGJ5IHJlbW92aW5nIGFueSByZWZlcmVuY2UgY291bnRlcnMsIHN0b3JhZ2VAZGVwb3NpdHMsIGV0Yy4uLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQuABkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IGhvbGRpbmcgYSBkZXBvc2l0LqAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIuWQEtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbE0BICBvZiB0aGUgZnVuZHMgdGhlIGFzc2V0IGFjY291bnQgaGFzLCBjYXVzaW5nIHRoZSBzZW5kZXIgYXNzZXQgYWNjb3VudCB0byBiZSBraWxsZWRFASAgKGZhbHNlKSwgb3IgdHJhbnNmZXIgZXZlcnl0aGluZyBleGNlcHQgYXQgbGVhc3QgdGhlIG1pbmltdW0gYmFsYW5jZSwgd2hpY2ggd2lsbOggIGd1YXJhbnRlZSB0byBrZWVwIHRoZSBzZW5kZXIgYXNzZXQgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuMHNldF9yZXNlcnZlcwgBCGlkAQIBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASByZXNlcnZlc5kEAchCb3VuZGVkVmVjPFQ6OlJlc2VydmVEYXRhLCBDb25zdFUzMjxNQVhfUkVTRVJWRVM+PgAhJMRTZXRzIHRoZSB0cnVzdGVkIHJlc2VydmUgaW5mb3JtYXRpb24gb2YgYW4gYXNzZXQuAFUBT3JpZ2luIG11c3QgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLiBUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCUBYENyZWF0ZU9yaWdpbmAgb3IgYmUgdGhlIHNpZ25lZCBgb3duZXJgIGNvbmZpZ3VyZWQgZHVyaW5nIGFzc2V0IGNyZWF0aW9uLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQu8C0gYHJlc2VydmVzYDogVGhlIGZ1bGwgbGlzdCBvZiB0cnVzdGVkIHJlc2VydmVzIGluZm9ybWF0aW9uLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMumQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGdBARTAAAEAKEEARhWZWM8VD4AAJ0EDDRhc3NldHNfY29tbW9uYGxvY2FsX2FuZF9mb3JlaWduX2Fzc2V0c1xGb3JlaWduQXNzZXRSZXNlcnZlRGF0YQAACAEccmVzZXJ2ZQECASBMb2NhdGlvbgABMHRlbGVwb3J0YWJsZV0BARBib29sAAChBAAAAp0EAKUEDDRwYWxsZXRfYXNzZXRzGHBhbGxldBBDYWxsCARUAARJAAGIGGNyZWF0ZQwBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASxtaW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlAABM6Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHVibGljIG9yaWdpbi4AJQFUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgC8RnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBieSBgQXNzZXREZXBvc2l0YC4ALFBhcmFtZXRlcnM6WQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2icbWVtYmVyIG9mIHRoZSBhc3NldCBjbGFzcydzIGFkbWluIHRlYW0uTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZRABCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50XQEBEGJvb2wAASxtaW5fYmFsYW5jZVUBAShUOjpCYWxhbmNlAAFM+Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHJpdmlsZWdlZCBvcmlnaW4uALRUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseS4ApFRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAuAJxVbmxpa2UgYGNyZWF0ZWAsIG5vIGZ1bmRzIGFyZSByZXNlcnZlZC4AWQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgb3duZXJgOiBUaGUgb3duZXIgb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBvd25lciBoYXMgZnVsbCBzdXBlcnVzZXIgcGVybWlzc2lvbnMlAW92ZXIgdGhpcyBhc3NldCwgYnV0IG1heSBsYXRlciBjaGFuZ2UgYW5kIGNvbmZpZ3VyZSB0aGUgcGVybWlzc2lvbnMgdXNpbmeQYHRyYW5zZmVyX293bmVyc2hpcGAgYW5kIGBzZXRfdGVhbWAuTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCsRW1pdHMgYEZvcmNlQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWA0c3RhcnRfZGVzdHJveQQBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgACMNxTdGFydCB0aGUgcHJvY2VzcyBvZiBkZXN0cm95aW5nIGEgZnVuZ2libGUgYXNzZXQgY2xhc3MuAFkBYHN0YXJ0X2Rlc3Ryb3lgIGlzIHRoZSBmaXJzdCBpbiBhIHNlcmllcyBvZiBleHRyaW5zaWNzIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCwgdG8gYWxsb3d4ZGVzdHJ1Y3Rpb24gb2YgYW4gYXNzZXQgY2xhc3MuAFEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSBhc3NldCdzIGBvd25lcmAuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4ASQFJdCB3aWxsIGZhaWwgd2l0aCBlaXRoZXIgW2BFcnJvcjo6Q29udGFpbnNIb2xkc2BdIG9yIFtgRXJyb3I6OkNvbnRhaW5zRnJlZXplc2BdIGlmuGFuIGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS5AZGVzdHJveV9hY2NvdW50cwQBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgADMMxEZXN0cm95IGFsbCBhY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBhc3NldC4AXQFgZGVzdHJveV9hY2NvdW50c2Agc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGWEYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuAF0BRHVlIHRvIHdlaWdodCByZXN0cmljdGlvbnMsIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGZ1bGx5MQFkZXN0cm95IGFsbCBhY2NvdW50cy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhY2NvdW50cyBhdCBhIHRpbWUuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A1EVhY2ggY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRBY2NvdW50c2AgZXZlbnQuRGRlc3Ryb3lfYXBwcm92YWxzBAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAQwYQFEZXN0cm95IGFsbCBhcHByb3ZhbHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQgdXAgdG8gdGhlIG1heCAoVDo6UmVtb3ZlSXRlbXNMaW1pdCkuAGEBYGRlc3Ryb3lfYXBwcm92YWxzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHk5AWRlc3Ryb3kgYWxsIGFwcHJvdmFscy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhcHByb3ZhbHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANhFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQXBwcm92YWxzYCBldmVudC44ZmluaXNoX2Rlc3Ryb3kEAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIABSjEQ29tcGxldGUgZGVzdHJveWluZyBhc3NldCBhbmQgdW5yZXNlcnZlIGN1cnJlbmN5LgBVAWBmaW5pc2hfZGVzdHJveWAgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGVZAWFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLiBBbGwgYWNjb3VudHMgb3IgYXBwcm92YWxzIHNob3VsZCBiZSBkZXN0cm95ZWQgYmVmb3JlFGhhbmQuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A4EVhY2ggc3VjY2Vzc2Z1bCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZGAgZXZlbnQuEG1pbnQMAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxiZW5lZmljaWFyeQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UABjCITWludCBhc3NldHMgb2YgYSBwYXJ0aWN1bGFyIGNsYXNzLgA5AVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBhc3NldCBgaWRgLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBtaW50ZWQuDQEtIGBiZW5lZmljaWFyeWA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkIHdpdGggdGhlIG1pbnRlZCBhc3NldHMuxC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIGFzc2V0IHRvIGJlIG1pbnRlZC4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgVQFNb2RlczogUHJlLWV4aXN0aW5nIGJhbGFuY2Ugb2YgYGJlbmVmaWNpYXJ5YDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mIGBiZW5lZmljaWFyeWAuEGJ1cm4MAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAc8RQFSZWR1Y2UgdGhlIGJhbGFuY2Ugb2YgYHdob2AgYnkgYXMgbXVjaCBhcyBwb3NzaWJsZSB1cCB0byBgYW1vdW50YCBhc3NldHMgb2YgYGlkYC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBNYW5hZ2VyIG9mIHRoZSBhc3NldCBgaWRgLgDQQmFpbHMgd2l0aCBgTm9BY2NvdW50YCBpZiB0aGUgYHdob2AgaXMgYWxyZWFkeSBkZWFkLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBidXJuZWQuoC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGRlYml0ZWQgZnJvbS4pAS0gYGFtb3VudGA6IFRoZSBtYXhpbXVtIGFtb3VudCBieSB3aGljaCBgd2hvYCdzIGJhbGFuY2Ugc2hvdWxkIGJlIHJlZHVjZWQuAFEBRW1pdHMgYEJ1cm5lZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCBidXJuZWQuIElmIHRoaXMgdGFrZXMgdGhlIGJhbGFuY2UgdG8gYmVsb3cgdGhlOQFtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCBidXJuZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgCQFNb2RlczogUG9zdC1leGlzdGVuY2Ugb2YgYHdob2A7IFByZSAmIHBvc3QgWm9tYmllLXN0YXR1cyBvZiBgd2hvYC4gdHJhbnNmZXIMAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlAAhI0E1vdmUgc29tZSBhc3NldHMgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQgdG8gYW5vdGhlci4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLkx0cmFuc2Zlcl9rZWVwX2FsaXZlDAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRVAQEoVDo6QmFsYW5jZQAJSFkBTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLCBrZWVwaW5nIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZS4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLjhmb3JjZV90cmFuc2ZlchABCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UACky0TW92ZSBzb21lIGFzc2V0cyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6YLSBgc291cmNlYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZC6ULSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgYHNvdXJjZWAncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRZAWBkZXN0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluTQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgYHNvdXJjZWAgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dNRiZWxvdyB0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGBkZXN0YDsgUG9zdC1leGlzdGVuY2Ugb2YgYHNvdXJjZWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZhxgZGVzdGAuGGZyZWV6ZQgBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAswVQFEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgb2YgYW4gYXNzZXQgYGlkYCBmcm9tIGFuIGFjY291bnQgYHdob2AuIGB3aG9gTQFtdXN0IGFscmVhZHkgZXhpc3QgYXMgYW4gZW50cnkgaW4gYEFjY291bnRgcyBvZiB0aGUgYXNzZXQuIElmIHlvdSB3YW50IHRvIGZyZWV6ZSBhbvRhY2NvdW50IHRoYXQgZG9lcyBub3QgaGF2ZSBhbiBlbnRyeSwgdXNlIGB0b3VjaF9vdGhlcmAgZmlyc3QuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6ILSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZnJvemVuLgA8RW1pdHMgYEZyb3plbmAuADhXZWlnaHQ6IGBPKDEpYBB0aGF3CAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADCjoQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyB0byBhbmQgZnJvbSBhbiBhY2NvdW50IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1bmZyb3plbi4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWAwZnJlZXplX2Fzc2V0BAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAA0k8ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGNsYXNzLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgKHRoYXdfYXNzZXQEAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADiTEQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgdGhhd2VkLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA8odENoYW5nZSB0aGUgT3duZXIgb2YgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQuAFRFbWl0cyBgT3duZXJDaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgIHNldF90ZWFtEAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4ABFAeFNldCB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDYRnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE6UQFgTWV0YWRhdGFEZXBvc2l0QmFzZSArIE1ldGFkYXRhRGVwb3NpdFBlckJ5dGUgKiAobmFtZS5sZW4gKyBzeW1ib2wubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgA4V2VpZ2h0OiBgTygxKWA4Y2xlYXJfbWV0YWRhdGEEAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAEiyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4ApEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgYXNzZXQgb3duZXIuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2Vfc2V0X21ldGFkYXRhFAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbl0BARBib29sABM4uEZvcmNlIHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQgdG8gc29tZSB2YWx1ZS4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBoQW55IGRlcG9zaXQgaXMgbGVmdCBhbG9uZS4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgBRAVdlaWdodDogYE8oTiArIFMpYCB3aGVyZSBOIGFuZCBTIGFyZSB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIGFuZCBzeW1ib2wgcmVzcGVjdGl2ZWx5LlBmb3JjZV9jbGVhcl9tZXRhZGF0YQQBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAULIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGBBbnkgZGVwb3NpdCBpcyByZXR1cm5lZC4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9hc3NldF9zdGF0dXMgAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2VVAQEoVDo6QmFsYW5jZQABNGlzX3N1ZmZpY2llbnRdAQEQYm9vbAABJGlzX2Zyb3plbl0BARBib29sABVYmEFsdGVyIHRoZSBhdHRyaWJ1dGVzIG9mIGEgZ2l2ZW4gYXNzZXQuAHRPcmlnaW4gbXVzdCBiZSBgRm9yY2VPcmlnaW5gLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQunC0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGFzc2V0LqQtIGBpc3N1ZXJgOiBUaGUgbmV3IElzc3VlciBvZiB0aGlzIGFzc2V0LpwtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBhc3NldC6sLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGFzc2V0Lk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby5RAS0gYGlzX3N1ZmZpY2llbnRgOiBXaGV0aGVyIGEgbm9uLXplcm8gYmFsYW5jZSBvZiB0aGlzIGFzc2V0IGlzIGRlcG9zaXQgb2Ygc3VmZmljaWVudE0BdmFsdWUgdG8gYWNjb3VudCBmb3IgdGhlIHN0YXRlIGJsb2F0IGFzc29jaWF0ZWQgd2l0aCBpdHMgYmFsYW5jZSBzdG9yYWdlLiBJZiBzZXQgdG9VAWB0cnVlYCwgdGhlbiBub24temVybyBiYWxhbmNlcyBtYXkgYmUgc3RvcmVkIHdpdGhvdXQgYSBgY29uc3VtZXJgIHJlZmVyZW5jZSAoYW5kIHRodXNNAWFuIEVEIGluIHRoZSBCYWxhbmNlcyBwYWxsZXQgb3Igd2hhdGV2ZXIgZWxzZSBpcyB1c2VkIHRvIGNvbnRyb2wgdXNlci1hY2NvdW50IHN0YXRlIGdyb3d0aCkuPQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoaXMgYXNzZXQgY2xhc3MgaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A6EVtaXRzIGBBc3NldFN0YXR1c0NoYW5nZWRgIHdpdGggdGhlIGlkZW50aXR5IG9mIHRoZSBhc3NldC4AOFdlaWdodDogYE8oMSlgQGFwcHJvdmVfdHJhbnNmZXIMAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50VQEBKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AFzRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZXJlIG11c3QgYmUgYW4gYXBwcm92YWwgaW4gcGxhY2UgYmV0d2VlbiBzaWduZXIgYW5kLGBkZWxlZ2F0ZWAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBUZm9yY2VfY2FuY2VsX2FwcHJvdmFsDAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsZGVzdGluYXRpb24AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudFUBAShUOjpCYWxhbmNlABlITQFUcmFuc2ZlciBzb21lIGFzc2V0IGJhbGFuY2UgZnJvbSBhIHByZXZpb3VzbHkgZGVsZWdhdGVkIGFjY291bnQgdG8gc29tZSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBieSB0aGUgYG93bmVyYCB0byB0aGUcc2lnbmVyLgBZAUlmIHRoZSBlbnRpcmUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2ZlciBpcyB0cmFuc2ZlcnJlZCwgdGhlbiBhbnkgZGVwb3NpdCBwcmV2aW91c2x5tHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBpcyB1bnJlc2VydmVkLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuYQEtIGBvd25lcmA6IFRoZSBhY2NvdW50IHdoaWNoIHByZXZpb3VzbHkgYXBwcm92ZWQgZm9yIGEgdHJhbnNmZXIgb2YgYXQgbGVhc3QgYGFtb3VudGAgYW5kvGZyb20gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugd2lsbCBiZSB3aXRoZHJhd24uYQEtIGBkZXN0aW5hdGlvbmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIG9mIGBhbW91bnRgIHdpbGwgYmUgdHJhbnNmZXJyZWQutC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgYXNzZXRzIHRvIHRyYW5zZmVyLgCcRW1pdHMgYFRyYW5zZmVycmVkQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYBR0b3VjaAQBCGlkOAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAaJMBDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3Igbm9uLXByb3ZpZGVyIGFzc2V0cy4AwEEgZGVwb3NpdCB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHNpZ25lciBhY2NvdW50LgBdAS0gYG9yaWdpbmA6IE11c3QgYmUgU2lnbmVkOyB0aGUgc2lnbmVyIGFjY291bnQgbXVzdCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZm9yIGEgZGVwb3NpdDggIHRvIGJlIHRha2VuLgkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IHRvIGJlIGNyZWF0ZWQuAJhFbWl0cyBgVG91Y2hlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLhhyZWZ1bmQIAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAShhbGxvd19idXJuXQEBEGJvb2wAGzRZAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhbiBhc3NldCBhY2NvdW50IG9yIGEgY29uc3VtZXIgcmVmZXJlbmNlIChpZiBhbnkpIG9mIGFuIGFjY291bnQuAGhUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLgA9AS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB3aGljaCB0aGUgY2FsbGVyIHdvdWxkIGxpa2UgdGhlIGRlcG9zaXQsICByZWZ1bmRlZC5dAS0gYGFsbG93X2J1cm5gOiBJZiBgdHJ1ZWAgdGhlbiBhc3NldHMgbWF5IGJlIGRlc3Ryb3llZCBpbiBvcmRlciB0byBjb21wbGV0ZSB0aGUgcmVmdW5kLgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWbUdGhlIGFzc2V0IGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS4AnEVtaXRzIGBSZWZ1bmRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxzZXRfbWluX2JhbGFuY2UIAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxtaW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlABwwlFNldHMgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBhbiBhc3NldC4AIQFPbmx5IHdvcmtzIGlmIHRoZXJlIGFyZW4ndCBhbnkgYWNjb3VudHMgdGhhdCBhcmUgaG9sZGluZyB0aGUgYXNzZXQgb3IgaWbgdGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgIGlzIGxlc3MgdGhhbiB0aGUgb2xkIG9uZS4A/E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBoYXMgdG8gYmUgdGhlIE93bmVyIG9mIHRoZSxhc3NldCBgaWRgLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuwC0gYG1pbl9iYWxhbmNlYDogVGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4sdG91Y2hfb3RoZXIIAQhpZDgBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAdLIhDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3IgYHdob2AuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi5hAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLCB0aGUgYXNzZXQgc3RhdHVzIG11c3QoICBiZSBsaXZlLowtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wcmVmdW5kX290aGVyCAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHjRdAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhIHRhcmdldCBhc3NldCBhY2NvdW50LiBVc2VmdWwgaWYgeW91IGFyZSB0aGUgZGVwb3NpdG9yLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIGVpdGhlciB0aGUgYWNjb3VudCBvd25lciwgZGVwb3NpdG9yLCBvciBhc3NldCBgQWRtaW5gLiBJbmEBb3JkZXIgdG8gYnVybiBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhlIGFzc2V0LCB0aGUgY2FsbGVyIG11c3QgYmUgdGhlIGFjY291bnQgYW5kIHNob3VsZDR1c2UgYHJlZnVuZGAuABkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IGhvbGRpbmcgYSBkZXBvc2l0LnwtIGB3aG9gOiBUaGUgYWNjb3VudCB0byByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuFGJsb2NrCAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHyhZAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYHdob2AuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjY291bnQncyBhc3NldC6ULSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdW5ibG9ja2VkLgBARW1pdHMgYEJsb2NrZWRgLgA4V2VpZ2h0OiBgTygxKWAwdHJhbnNmZXJfYWxsDAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZV0BARBib29sACBAHQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhc3NldCBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0PQFhbnkgaGVsZCwgZnJvemVuLCBvciBtaW5pbXVtIGJhbGFuY2UgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AGQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgaG9sZGluZyBhIGRlcG9zaXQuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYXNzZXQgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IHRvIGJlIGtpbGxlZEUBICAoZmFsc2UpLCBvciB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgbWluaW11bSBiYWxhbmNlLCB3aGljaCB3aWxs6CAgZ3VhcmFudGVlIHRvIGtlZXAgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IGFsaXZlICh0cnVlKS4wc2V0X3Jlc2VydmVzCAEIaWQ4AUxUOjpBc3NldElkUGFyYW1ldGVyAAEgcmVzZXJ2ZXMVBAHIQm91bmRlZFZlYzxUOjpSZXNlcnZlRGF0YSwgQ29uc3RVMzI8TUFYX1JFU0VSVkVTPj4AISTEU2V0cyB0aGUgdHJ1c3RlZCByZXNlcnZlIGluZm9ybWF0aW9uIG9mIGFuIGFzc2V0LgBVAU9yaWdpbiBtdXN0IGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4gVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQlAWBDcmVhdGVPcmlnaW5gIG9yIGJlIHRoZSBzaWduZWQgYG93bmVyYCBjb25maWd1cmVkIGR1cmluZyBhc3NldCBjcmVhdGlvbi4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LvAtIGByZXNlcnZlc2A6IFRoZSBmdWxsIGxpc3Qgb2YgdHJ1c3RlZCByZXNlcnZlcyBpbmZvcm1hdGlvbi4A1EVtaXRzIGBBc3NldE1pbkJhbGFuY2VDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkEDFxwYWxsZXRfYXNzZXRfY29udmVyc2lvbhhwYWxsZXQQQ2FsbAQEVAABGCxjcmVhdGVfcG9vbAgBGGFzc2V0MQECAURCb3g8VDo6QXNzZXRLaW5kPgABGGFzc2V0MgECAURCb3g8VDo6QXNzZXRLaW5kPgAAEBkBQ3JlYXRlcyBhbiBlbXB0eSBsaXF1aWRpdHkgcG9vbCBhbmQgYW4gYXNzb2NpYXRlZCBuZXcgYGxwX3Rva2VuYCBhc3NldAEBKHRoZSBpZCBvZiB3aGljaCBpcyByZXR1cm5lZCBpbiB0aGUgYEV2ZW50OjpQb29sQ3JlYXRlZGAgZXZlbnQpLgARAU9uY2UgYSBwb29sIGlzIGNyZWF0ZWQsIHNvbWVvbmUgbWF5IFtgUGFsbGV0OjphZGRfbGlxdWlkaXR5YF0gdG8gaXQuNGFkZF9saXF1aWRpdHkcARhhc3NldDEBAgFEQm94PFQ6OkFzc2V0S2luZD4AARhhc3NldDIBAgFEQm94PFQ6OkFzc2V0S2luZD4AATxhbW91bnQxX2Rlc2lyZWRZAQEoVDo6QmFsYW5jZQABPGFtb3VudDJfZGVzaXJlZFkBAShUOjpCYWxhbmNlAAEsYW1vdW50MV9taW5ZAQEoVDo6QmFsYW5jZQABLGFtb3VudDJfbWluWQEBKFQ6OkJhbGFuY2UAARxtaW50X3RvBAEwVDo6QWNjb3VudElkAAE45FByb3ZpZGUgbGlxdWlkaXR5IGludG8gdGhlIHBvb2wgb2YgYGFzc2V0MWAgYW5kIGBhc3NldDJgLg0BTk9URTogYW4gb3B0aW1hbCBhbW91bnQgb2YgYXNzZXQxIGFuZCBhc3NldDIgd2lsbCBiZSBjYWxjdWxhdGVkIGFuZCEBbWlnaHQgYmUgZGlmZmVyZW50IHRoYW4gdGhlIHByb3ZpZGVkIGBhbW91bnQxX2Rlc2lyZWRgL2BhbW91bnQyX2Rlc2lyZWRg/HRodXMgeW91IHNob3VsZCBwcm92aWRlIHRoZSBtaW4gYW1vdW50IHlvdSdyZSBoYXBweSB0byBwcm92aWRlLshQYXJhbXMgYGFtb3VudDFfbWluYC9gYW1vdW50Ml9taW5gIHJlcHJlc2VudCB0aGF0LkkBYG1pbnRfdG9gIHdpbGwgYmUgc2VudCB0aGUgbGlxdWlkaXR5IHRva2VucyB0aGF0IHJlcHJlc2VudCB0aGlzIHNoYXJlIG9mIHRoZSBwb29sLgBdAU5PVEU6IHdoZW4gZW5jb3VudGVyaW5nIGFuIGluY29ycmVjdCBleGNoYW5nZSByYXRlIGFuZCBub24td2l0aGRyYXdhYmxlIHBvb2wgbGlxdWlkaXR5LNxiYXRjaCBhbiBhdG9taWMgY2FsbCB3aXRoIFtgUGFsbGV0OjphZGRfbGlxdWlkaXR5YF0gYW5kUQFbYFBhbGxldDo6c3dhcF9leGFjdF90b2tlbnNfZm9yX3Rva2Vuc2BdIG9yIFtgUGFsbGV0Ojpzd2FwX3Rva2Vuc19mb3JfZXhhY3RfdG9rZW5zYF0lAWNhbGxzIHRvIHJlbmRlciB0aGUgbGlxdWlkaXR5IHdpdGhkcmF3YWJsZSBhbmQgcmVjdGlmeSB0aGUgZXhjaGFuZ2UgcmF0ZS4A2E9uY2UgbGlxdWlkaXR5IGlzIGFkZGVkLCBzb21lb25lIG1heSBzdWNjZXNzZnVsbHkgY2FsbKRbYFBhbGxldDo6c3dhcF9leGFjdF90b2tlbnNfZm9yX3Rva2Vuc2BdLkByZW1vdmVfbGlxdWlkaXR5GAEYYXNzZXQxAQIBREJveDxUOjpBc3NldEtpbmQ+AAEYYXNzZXQyAQIBREJveDxUOjpBc3NldEtpbmQ+AAE0bHBfdG9rZW5fYnVyblkBAShUOjpCYWxhbmNlAAFMYW1vdW50MV9taW5fcmVjZWl2ZVkBAShUOjpCYWxhbmNlAAFMYW1vdW50Ml9taW5fcmVjZWl2ZVkBAShUOjpCYWxhbmNlAAEsd2l0aGRyYXdfdG8EATBUOjpBY2NvdW50SWQAAgxNAUFsbG93cyB5b3UgdG8gcmVtb3ZlIGxpcXVpZGl0eSBieSBwcm92aWRpbmcgdGhlIGBscF90b2tlbl9idXJuYCB0b2tlbnMgdGhhdCB3aWxsIGJlUQFidXJuZWQgaW4gdGhlIHByb2Nlc3MuIFdpdGggdGhlIHVzYWdlIG9mIGBhbW91bnQxX21pbl9yZWNlaXZlYC9gYW1vdW50Ml9taW5fcmVjZWl2ZWA1AWl0J3MgcG9zc2libGUgdG8gY29udHJvbCB0aGUgbWluIGFtb3VudCBvZiByZXR1cm5lZCB0b2tlbnMgeW91J3JlIGhhcHB5IHdpdGgucHN3YXBfZXhhY3RfdG9rZW5zX2Zvcl90b2tlbnMUARBwYXRorQQBWFZlYzxCb3g8VDo6QXNzZXRLaW5kPj4AASRhbW91bnRfaW5ZAQEoVDo6QmFsYW5jZQABOGFtb3VudF9vdXRfbWluWQEBKFQ6OkJhbGFuY2UAARxzZW5kX3RvBAEwVDo6QWNjb3VudElkAAEoa2VlcF9hbGl2ZV0BARBib29sAAMYwFN3YXAgdGhlIGV4YWN0IGFtb3VudCBvZiBgYXNzZXQxYCBpbnRvIGBhc3NldDJgLi0BYGFtb3VudF9vdXRfbWluYCBwYXJhbSBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIG1pbiBhbW91bnQgb2YgdGhlIGBhc3NldDJgYHlvdSdyZSBoYXBweSB0byByZWNlaXZlLgBZAVtgQXNzZXRDb252ZXJzaW9uQXBpOjpxdW90ZV9wcmljZV9leGFjdF90b2tlbnNfZm9yX3Rva2Vuc2BdIHJ1bnRpbWUgY2FsbCBjYW4gYmUgY2FsbGVkMGZvciBhIHF1b3RlLnBzd2FwX3Rva2Vuc19mb3JfZXhhY3RfdG9rZW5zFAEQcGF0aK0EAVhWZWM8Qm94PFQ6OkFzc2V0S2luZD4+AAEoYW1vdW50X291dFkBAShUOjpCYWxhbmNlAAE0YW1vdW50X2luX21heFkBAShUOjpCYWxhbmNlAAEcc2VuZF90bwQBMFQ6OkFjY291bnRJZAABKGtlZXBfYWxpdmVdAQEQYm9vbAAEGAEBU3dhcCBhbnkgYW1vdW50IG9mIGBhc3NldDFgIHRvIGdldCB0aGUgZXhhY3QgYW1vdW50IG9mIGBhc3NldDJgLhkBYGFtb3VudF9pbl9tYXhgIHBhcmFtIGFsbG93cyB0byBzcGVjaWZ5IHRoZSBtYXggYW1vdW50IG9mIHRoZSBgYXNzZXQxYGB5b3UncmUgaGFwcHkgdG8gcHJvdmlkZS4AWQFbYEFzc2V0Q29udmVyc2lvbkFwaTo6cXVvdGVfcHJpY2VfdG9rZW5zX2Zvcl9leGFjdF90b2tlbnNgXSBydW50aW1lIGNhbGwgY2FuIGJlIGNhbGxlZDBmb3IgYSBxdW90ZS4UdG91Y2gIARhhc3NldDEBAgFEQm94PFQ6OkFzc2V0S2luZD4AARhhc3NldDIBAgFEQm94PFQ6OkFzc2V0S2luZD4ABSxNAVRvdWNoIGFuIGV4aXN0aW5nIHBvb2wgdG8gZnVsZmlsbCBwcmVyZXF1aXNpdGVzIGJlZm9yZSBwcm92aWRpbmcgbGlxdWlkaXR5LCBzdWNoIGFzSQFlbnN1cmluZyB0aGF0IHRoZSBwb29sJ3MgYWNjb3VudHMgYXJlIGluIHBsYWNlLiBJdCBpcyB0eXBpY2FsbHkgdXNlZnVsIHdoZW4gYSBwb29sVQFjcmVhdG9yIHJlbW92ZXMgdGhlIHBvb2wncyBhY2NvdW50cyBhbmQgZG9lcyBub3QgcHJvdmlkZSBhIGxpcXVpZGl0eS4gVGhpcyBhY3Rpb24gbWF5VQFpbnZvbHZlIGhvbGRpbmcgYXNzZXRzIGZyb20gdGhlIGNhbGxlciBhcyBhIGRlcG9zaXQgZm9yIGNyZWF0aW5nIHRoZSBwb29sJ3MgYWNjb3VudHMuAGhUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLgApAS0gYGFzc2V0MWA6IFRoZSBhc3NldCBJRCBvZiBhbiBleGlzdGluZyBwb29sIHdpdGggYSBwYWlyIChhc3NldDEsIGFzc2V0MikuKQEtIGBhc3NldDJgOiBUaGUgYXNzZXQgSUQgb2YgYW4gZXhpc3RpbmcgcG9vbCB3aXRoIGEgcGFpciAoYXNzZXQxLCBhc3NldDIpLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EcFBhbGxldCdzIGNhbGxhYmxlIGZ1bmN0aW9ucy6tBAAAAgECALEEDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0EENhbGwIBFQABEkAARgsc3BlbmRfbG9jYWwIARhhbW91bnRVAQE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgADRLhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4ARQFNdXN0IGJlIFtgQ29uZmlnOjpTcGVuZE9yaWdpbmBdIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdCBgYW1vdW50YC4ALCMjIyBEZXRhaWxzRQFOT1RFOiBGb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMsIHRoZSBwcm9wb3NlciBpcyBkZWVtZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUwYmVuZWZpY2lhcnkuADgjIyMgUGFyYW1ldGVyc0EBLSBgYW1vdW50YDogVGhlIGFtb3VudCB0byBiZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSB0cmVhc3VyeSB0byB0aGUgYGJlbmVmaWNpYXJ5YC7oLSBgYmVuZWZpY2lhcnlgOiBUaGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIHRyYW5zZmVyLgAkIyMgRXZlbnRzALRFbWl0cyBbYEV2ZW50OjpTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC48cmVtb3ZlX2FwcHJvdmFsBAEscHJvcG9zYWxfaWRkATRQcm9wb3NhbEluZGV4AARULQFGb3JjZSBhIHByZXZpb3VzbHkgYXBwcm92ZWQgcHJvcG9zYWwgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcHByb3ZhbCBxdWV1ZS4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAMBUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIG5vIGxvbmdlciBiZSByZXR1cm5lZC4AOCMjIyBQYXJhbWV0ZXJzoC0gYHByb3Bvc2FsX2lkYDogVGhlIGluZGV4IG9mIGEgcHJvcG9zYWwAOCMjIyBDb21wbGV4aXR5rC0gTyhBKSB3aGVyZSBgQWAgaXMgdGhlIG51bWJlciBvZiBhcHByb3ZhbHMAKCMjIyBFcnJvcnNFAS0gW2BFcnJvcjo6UHJvcG9zYWxOb3RBcHByb3ZlZGBdOiBUaGUgYHByb3Bvc2FsX2lkYCBzdXBwbGllZCB3YXMgbm90IGZvdW5kIGluIHRoZVEBICBhcHByb3ZhbCBxdWV1ZSwgaS5lLiwgdGhlIHByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC4gVGhpcyBjb3VsZCBhbHNvIG1lYW4gdGhlWQEgIHByb3Bvc2FsIGRvZXMgbm90IGV4aXN0IGFsdG9nZXRoZXIsIHRodXMgdGhlcmUgaXMgbm8gd2F5IGl0IHdvdWxkIGhhdmUgYmVlbiBhcHByb3ZlZFQgIGluIHRoZSBmaXJzdCBwbGFjZS4Uc3BlbmQQAShhc3NldF9raW5ktQQBREJveDxUOjpBc3NldEtpbmQ+AAEYYW1vdW50VQEBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnm5BAF4Qm94PEJlbmVmaWNpYXJ5TG9va3VwT2Y8VCwgST4+AAEodmFsaWRfZnJvbeQBcE9wdGlvbjxCbG9ja051bWJlckZvcjxULCBJPj4ABWi4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAB0BTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3RVAWBhbW91bnRgIG9mIGBhc3NldF9raW5kYCBpbiB0aGUgbmF0aXZlIGFzc2V0LiBUaGUgYW1vdW50IG9mIGBhc3NldF9raW5kYCBpcyBjb252ZXJ0ZWTUZm9yIGFzc2VydGlvbiB1c2luZyB0aGUgW2BDb25maWc6OkJhbGFuY2VDb252ZXJ0ZXJgXS4AKCMjIERldGFpbHMASQFDcmVhdGUgYW4gYXBwcm92ZWQgc3BlbmQgZm9yIHRyYW5zZmVycmluZyBhIHNwZWNpZmljIGBhbW91bnRgIG9mIGBhc3NldF9raW5kYCB0byBhYQFkZXNpZ25hdGVkIGJlbmVmaWNpYXJ5LiBUaGUgc3BlbmQgbXVzdCBiZSBjbGFpbWVkIHVzaW5nIHRoZSBgcGF5b3V0YCBkaXNwYXRjaGFibGUgd2l0aGludHRoZSBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uADgjIyMgUGFyYW1ldGVycxUBLSBgYXNzZXRfa2luZGA6IEFuIGluZGljYXRvciBvZiB0aGUgc3BlY2lmaWMgYXNzZXQgY2xhc3MgdG8gYmUgc3BlbnQuQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLrgtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBvZiB0aGUgc3BlbmQuVQEtIGB2YWxpZF9mcm9tYDogVGhlIGJsb2NrIG51bWJlciBmcm9tIHdoaWNoIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZC4gSXQgY2FuIHJlZmVyIHRvGQEgIHRoZSBwYXN0IGlmIHRoZSByZXN1bHRpbmcgc3BlbmQgaGFzIG5vdCB5ZXQgZXhwaXJlZCBhY2NvcmRpbmcgdG8gdGhlRQEgIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4gSWYgYE5vbmVgLCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQgaW1tZWRpYXRlbHkgYWZ0ZXIsICBhcHByb3ZhbC4AJCMjIEV2ZW50cwDIRW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC4YcGF5b3V0BAEUaW5kZXg4AShTcGVuZEluZGV4AAZMOENsYWltIGEgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AOE11c3QgYmUgc2lnbmVkACgjIyBEZXRhaWxzAFUBU3BlbmRzIG11c3QgYmUgY2xhaW1lZCB3aXRoaW4gc29tZSB0ZW1wb3JhbCBib3VuZHMuIEEgc3BlbmQgbWF5IGJlIGNsYWltZWQgd2l0aGluIG9uZdRbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0gZnJvbSB0aGUgYHZhbGlkX2Zyb21gIGJsb2NrLlUBSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgc3BlbmQgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZSBgY2hlY2tfc3RhdHVzYNxkaXNwYXRjaGFibGUgYmVmb3JlIHJldHJ5aW5nIHdpdGggdGhlIGN1cnJlbnQgZnVuY3Rpb24uADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwCQRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNoZWNrX3N0YXR1cwQBFGluZGV4OAEoU3BlbmRJbmRleAAHTCkBQ2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3BlbmQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzdG9yYWdlIGlmIHByb2Nlc3NlZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAAEBVGhlIHN0YXR1cyBjaGVjayBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgcmV0cnlpbmcgYSBmYWlsZWQgcGF5b3V0LkkBSWYgYSBzcGVuZCBoYXMgZWl0aGVyIHN1Y2NlZWRlZCBvciBleHBpcmVkLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UgYnkgdGhpc+xmdW5jdGlvbi4gSW4gc3VjaCBpbnN0YW5jZXMsIHRyYW5zYWN0aW9uIGZlZXMgYXJlIHJlZnVuZGVkLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMA+EVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBmYWlsZWQuAQFFbWl0cyBbYEV2ZW50OjpTcGVuZFByb2Nlc3NlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIHN1Y2NlZWQuKHZvaWRfc3BlbmQEARRpbmRleDgBKFNwZW5kSW5kZXgACEB8Vm9pZCBwcmV2aW91c2x5IGFwcHJvdmVkIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAHQFBIHNwZW5kIHZvaWQgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcGF5b3V0IGhhcyBub3QgYmVlbiBhdHRlbXB0ZWQgeWV0LgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAwEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRWb2lkZWRgXSBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy61BAxccG9sa2Fkb3RfcnVudGltZV9jb21tb24UaW1wbHNcVmVyc2lvbmVkTG9jYXRhYmxlQXNzZXQAAQwIVjMIASBsb2NhdGlvbrEBAUR4Y206OnYzOjpMb2NhdGlvbgABIGFzc2V0X2lkUQIBQHhjbTo6djM6OkFzc2V0SWQAAwAIVjQIASBsb2NhdGlvbs0BAUR4Y206OnY0OjpMb2NhdGlvbgABIGFzc2V0X2lkxQIBQHhjbTo6djQ6OkFzc2V0SWQABAAIVjUIASBsb2NhdGlvbgECAUR4Y206OnY1OjpMb2NhdGlvbgABIGFzc2V0X2lkEQMBQHhjbTo6djU6OkFzc2V0SWQABQAAuQQMRHBhcmFjaGFpbnNfY29tbW9uDHBheWRWZXJzaW9uZWRMb2NhdGFibGVBY2NvdW50AAEICFY0CAEgbG9jYXRpb27NAQFEeGNtOjp2NDo6TG9jYXRpb24AAShhY2NvdW50X2lkzQEBRHhjbTo6djQ6OkxvY2F0aW9uAAQACFY1CAEgbG9jYXRpb24BAgFEeGNtOjp2NTo6TG9jYXRpb24AAShhY2NvdW50X2lkAQIBRHhjbTo6djU6OkxvY2F0aW9uAAUAAL0EDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0EENhbGwIBFQABEkAARgQdm90ZQgBKHBvbGxfaW5kZXhkAURQb2xsSW5kZXhPZjxULCBJPgABEHZvdGXBBAFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgAAJBkBVm90ZSBpbiBhIHBvbGwuIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3QgdGhlIHByb3Bvc2FsO7hvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDILSBgcG9sbF9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcG9sbCB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uABUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBoYXMgdm90ZWQgb24uIGRlbGVnYXRlEAEUY2xhc3PVAwE0Q2xhc3NPZjxULCBJPgABCHRvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShjb252aWN0aW9uyQQBKENvbnZpY3Rpb24AARxiYWxhbmNlWQEBPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzc9UDATRDbGFzc09mPFQsIEk+AAI4TQFVbmRlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgb2YgdGhlIHNlbmRpbmcgYWNjb3VudCBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHBvbGxzLgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZAkBb2YgdGhlIGNvbnZpY3Rpb24gd2l0aCB3aGljaCB0aGUgZGVsZWdhdGlvbiB3YXMgaXNzdWVkIGhhcyBwYXNzZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgDwLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0aW9uIGZyb20uAFBFbWl0cyBgVW5kZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuGHVubG9jawgBFGNsYXNz1QMBNENsYXNzT2Y8VCwgST4AARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgADJF0BUmVtb3ZlIHRoZSBsb2NrIGNhdXNlZCBieSBwcmlvciB2b3RpbmcvZGVsZWdhdGluZyB3aGljaCBoYXMgZXhwaXJlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyGGNsYXNzLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AoC0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHBvbGxzIHRvIHVubG9jay64LSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gcmVtb3ZlIHRoZSBsb2NrIG9uLgC8V2VpZ2h0OiBgTyhSKWAgd2l0aCBSIG51bWJlciBvZiB2b3RlIG9mIHRhcmdldC4scmVtb3ZlX3ZvdGUIARRjbGFzc80EAVRPcHRpb248Q2xhc3NPZjxULCBJPj4AARRpbmRleDgBRFBvbGxJbmRleE9mPFQsIEk+AAR0ZFJlbW92ZSBhIHZvdGUgZm9yIGEgcG9sbC4ADElmOnAtIHRoZSBwb2xsIHdhcyBjYW5jZWxsZWQsIG9yZC0gdGhlIHBvbGwgaXMgb25nb2luZywgb3J4LSB0aGUgcG9sbCBoYXMgZW5kZWQgc3VjaCB0aGF0/CAgLSB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCB3YXMgaW4gb3Bwb3NpdGlvbiB0byB0aGUgcmVzdWx0OyBvctQgIC0gdGhlcmUgd2FzIG5vIGNvbnZpY3Rpb24gdG8gdGhlIGFjY291bnQncyB2b3RlOyBvcoQgIC0gdGhlIGFjY291bnQgbWFkZSBhIHNwbGl0IHZvdGVdAS4uLnRoZW4gdGhlIHZvdGUgaXMgcmVtb3ZlZCBjbGVhbmx5IGFuZCBhIGZvbGxvd2luZyBjYWxsIHRvIGB1bmxvY2tgIG1heSByZXN1bHQgaW4gbW9yZVhmdW5kcyBiZWluZyBhdmFpbGFibGUuAJBJZiwgaG93ZXZlciwgdGhlIHBvbGwgaGFzIGVuZGVkIGFuZDrsLSBpdCBmaW5pc2hlZCBjb3JyZXNwb25kaW5nIHRvIHRoZSB2b3RlIG9mIHRoZSBhY2NvdW50LCBhbmTcLSB0aGUgYWNjb3VudCBtYWRlIGEgc3RhbmRhcmQgdm90ZSB3aXRoIGNvbnZpY3Rpb24sIGFuZLwtIHRoZSBsb2NrIHBlcmlvZCBvZiB0aGUgY29udmljdGlvbiBpcyBub3Qgb3ZlclkBLi4udGhlbiB0aGUgbG9jayB3aWxsIGJlIGFnZ3JlZ2F0ZWQgaW50byB0aGUgb3ZlcmFsbCBhY2NvdW50J3MgbG9jaywgd2hpY2ggbWF5IGludm9sdmVZASpvdmVybG9ja2luZyogKHdoZXJlIHRoZSB0d28gbG9ja3MgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgbG9jayB0aGF0IGlzIHRoZSBtYXhpbXVt5G9mIGJvdGggdGhlIGFtb3VudCBsb2NrZWQgYW5kIHRoZSB0aW1lIGlzIGl0IGxvY2tlZCBmb3IpLgBJAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8sIGFuZCB0aGUgc2lnbmVyIG11c3QgaGF2ZSBhIHZvdGVwcmVnaXN0ZXJlZCBmb3IgcG9sbCBgaW5kZXhgLgDcLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcG9sbCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLlUBLSBgY2xhc3NgOiBPcHRpb25hbCBwYXJhbWV0ZXIsIGlmIGdpdmVuIGl0IGluZGljYXRlcyB0aGUgY2xhc3Mgb2YgdGhlIHBvbGwuIEZvciBwb2xsc/AgIHdoaWNoIGhhdmUgZmluaXNoZWQgb3IgYXJlIGNhbmNlbGxlZCwgdGhpcyBtdXN0IGJlIGBTb21lYC4ARQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuRHJlbW92ZV9vdGhlcl92b3RlDAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRjbGFzc9UDATRDbGFzc09mPFQsIEk+AAEUaW5kZXg4AURQb2xsSW5kZXhPZjxULCBJPgAFQGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAE0BSWYgdGhlIGB0YXJnZXRgIGlzIGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8tAWByZW1vdmVfdm90ZWAuIElmIG5vdCBlcXVhbCB0byB0aGUgc2lnbmVyLCB0aGVuIHRoZSB2b3RlIG11c3QgaGF2ZSBleHBpcmVkLCUBZWl0aGVyIGJlY2F1c2UgdGhlIHBvbGwgd2FzIGNhbmNlbGxlZCwgYmVjYXVzZSB0aGUgdm90ZXIgbG9zdCB0aGUgcG9sbCBvcphiZWNhdXNlIHRoZSBjb252aWN0aW9uIHBlcmlvZCBpcyBvdmVyLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AYQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvciBwb2xsKCAgYGluZGV4YC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcG9sbCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLoQtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiB0aGUgcG9sbC4ARQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsEEDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSxBY2NvdW50Vm90ZQQcQmFsYW5jZQFZAQEMIFN0YW5kYXJkCAEQdm90ZcUEARBWb3RlAAEcYmFsYW5jZVkBARxCYWxhbmNlAAAAFFNwbGl0CAEMYXllWQEBHEJhbGFuY2UAAQxuYXlZAQEcQmFsYW5jZQABADBTcGxpdEFic3RhaW4MAQxheWVZAQEcQmFsYW5jZQABDG5heVkBARxCYWxhbmNlAAEcYWJzdGFpblkBARxCYWxhbmNlAAIAAMUEDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRBWb3RlAAAEAAwAAADJBAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nKGNvbnZpY3Rpb24oQ29udmljdGlvbgABHBBOb25lAAAAIExvY2tlZDF4AAEAIExvY2tlZDJ4AAIAIExvY2tlZDN4AAMAIExvY2tlZDR4AAQAIExvY2tlZDV4AAUAIExvY2tlZDZ4AAYAAM0EBBhPcHRpb24EBFQB1QMBCBBOb25lAAAAEFNvbWUEANUDAAABAADRBAxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQQQ2FsbAgEVAAESQABJBhzdWJtaXQMATxwcm9wb3NhbF9vcmlnaW7ZAwFcQm94PFBhbGxldHNPcmlnaW5PZjxUPj4AASBwcm9wb3NhbNUEAUxCb3VuZGVkQ2FsbE9mPFQsIEk+AAFAZW5hY3RtZW50X21vbWVudN0EAYhEaXNwYXRjaFRpbWU8QmxvY2tOdW1iZXJGb3I8VCwgST4+AAAksFByb3Bvc2UgYSByZWZlcmVuZHVtIG9uIGEgcHJpdmlsZWdlZCBhY3Rpb24uAFkBLSBgb3JpZ2luYDogbXVzdCBiZSBgU3VibWl0T3JpZ2luYCBhbmQgdGhlIGFjY291bnQgbXVzdCBoYXZlIGBTdWJtaXNzaW9uRGVwb3NpdGAgZnVuZHMwICBhdmFpbGFibGUuLQEtIGBwcm9wb3NhbF9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIHByb3Bvc2FsIHNob3VsZCBiZSBleGVjdXRlZC5sLSBgcHJvcG9zYWxgOiBUaGUgcHJvcG9zYWwuFQEtIGBlbmFjdG1lbnRfbW9tZW50YDogVGhlIG1vbWVudCB0aGF0IHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZW5hY3RlZC4ASEVtaXRzIGBTdWJtaXR0ZWRgLlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgAASCsUG9zdCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSByZWZlcmVuZHVtLgA5AS0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBmdW5kcyBhdmFpbGFibGUgZm9yIHRoZaAgIHJlZmVyZW5kdW0ncyB0cmFjaydzIERlY2lzaW9uIERlcG9zaXQuUQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgc3VibWl0dGVkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBpcyB5ZXQgdG8gYmUkICBwb3N0ZWQuAHhFbWl0cyBgRGVjaXNpb25EZXBvc2l0UGxhY2VkYC5ccmVmdW5kX2RlY2lzaW9uX2RlcG9zaXQEARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleAACHCkBUmVmdW5kIHRoZSBEZWNpc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLk0BLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBEZWNpc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AgEVtaXRzIGBEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZGAuGGNhbmNlbAQBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4AAMYdENhbmNlbCBhbiBvbmdvaW5nIHJlZmVyZW5kdW0uAJwtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgQ2FuY2VsT3JpZ2luYC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gYmUgY2FuY2VsbGVkLgBIRW1pdHMgYENhbmNlbGxlZGAuEGtpbGwEARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleAAEGNBDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAJQtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgS2lsbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4AkEVtaXRzIGBLaWxsZWRgIGFuZCBgRGVwb3NpdFNsYXNoZWRgLkBudWRnZV9yZWZlcmVuZHVtBAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgABRAdAUFkdmFuY2UgYSByZWZlcmVuZHVtIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6kLSBgaW5kZXhgOiB0aGUgcmVmZXJlbmR1bSB0byBiZSBhZHZhbmNlZC5Ib25lX2Zld2VyX2RlY2lkaW5nBAEUdHJhY2vVAwE8VHJhY2tJZE9mPFQsIEk+AAYkCQFBZHZhbmNlIGEgdHJhY2sgb250byBpdHMgbmV4dCBsb2dpY2FsIHN0YXRlLiBPbmx5IHVzZWQgaW50ZXJuYWxseS4AbC0gYG9yaWdpbmA6IG11c3QgYmUgYFJvb3RgLpAtIGB0cmFja2A6IHRoZSB0cmFjayB0byBiZSBhZHZhbmNlZC4AUQFBY3Rpb24gaXRlbSBmb3Igd2hlbiB0aGVyZSBpcyBub3cgb25lIGZld2VyIHJlZmVyZW5kdW0gaW4gdGhlIGRlY2lkaW5nIHBoYXNlIGFuZCB0aGUVAWBEZWNpZGluZ0NvdW50YCBpcyBub3QgeWV0IHVwZGF0ZWQuIFRoaXMgbWVhbnMgdGhhdCB3ZSBzaG91bGQgZWl0aGVyOiUBLSBiZWdpbiBkZWNpZGluZyBhbm90aGVyIHJlZmVyZW5kdW0gKGFuZCBsZWF2ZSBgRGVjaWRpbmdDb3VudGAgYWxvbmUpOyBvcnAtIGRlY3JlbWVudCBgRGVjaWRpbmdDb3VudGAuZHJlZnVuZF9zdWJtaXNzaW9uX2RlcG9zaXQEARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleAAHHDEBUmVmdW5kIHRoZSBTdWJtaXNzaW9uIERlcG9zaXQgZm9yIGEgY2xvc2VkIHJlZmVyZW5kdW0gYmFjayB0byB0aGUgZGVwb3NpdG9yLgCcLSBgb3JpZ2luYDogbXVzdCBiZSBgU2lnbmVkYCBvciBgUm9vdGAuVQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBhIGNsb3NlZCByZWZlcmVuZHVtIHdob3NlIFN1Ym1pc3Npb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIhFbWl0cyBgU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZGAuMHNldF9tZXRhZGF0YQgBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4AAEobWF5YmVfaGFzaOEEATxPcHRpb248VDo6SGFzaD4ACByYU2V0IG9yIGNsZWFyIG1ldGFkYXRhIG9mIGEgcmVmZXJlbmR1bS4ALFBhcmFtZXRlcnM6RQEtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgIGJ5IGEgY3JlYXRvciBvZiBhIHJlZmVyZW5kdW0gb3IgYnkgYW55b25lIHRvIGNsZWFyIGGQICBtZXRhZGF0YSBvZiBhIGZpbmlzaGVkIHJlZmVyZW5kdW0uDQEtIGBpbmRleGA6ICBUaGUgaW5kZXggb2YgYSByZWZlcmVuZHVtIHRvIHNldCBvciBjbGVhciBtZXRhZGF0YSBmb3IuUQEtIGBtYXliZV9oYXNoYDogVGhlIGhhc2ggb2YgYW4gb24tY2hhaW4gc3RvcmVkIHByZWltYWdlLiBgTm9uZWAgdG8gY2xlYXIgYSBtZXRhZGF0YS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu1QQQNGZyYW1lX3N1cHBvcnQYdHJhaXRzJHByZWltYWdlcxxCb3VuZGVkCARUASAESAHZBAEMGExlZ2FjeQQBEGhhc2hAASRIOjpPdXRwdXQAAAAYSW5saW5lBAAtBAE0Qm91bmRlZElubGluZQABABhMb29rdXAIARBoYXNoQAEkSDo6T3V0cHV0AAEMbGVuOAEMdTMyAAIAANkEDChzcF9ydW50aW1lGHRyYWl0cyxCbGFrZVR3bzI1NgAAAADdBBA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMgc2NoZWR1bGUwRGlzcGF0Y2hUaW1lBCxCbG9ja051bWJlcgE4AQgIQXQEADgBLEJsb2NrTnVtYmVyAAAAFEFmdGVyBAA4ASxCbG9ja051bWJlcgABAADhBAQYT3B0aW9uBARUAUABCBBOb25lAAAAEFNvbWUEAEAAAAEAAOUEDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBBDYWxsBARUAAEQOHdoaXRlbGlzdF9jYWxsBAEkY2FsbF9oYXNoQAEcVDo6SGFzaAAAAFxyZW1vdmVfd2hpdGVsaXN0ZWRfY2FsbAQBJGNhbGxfaGFzaEABHFQ6Okhhc2gAAQBkZGlzcGF0Y2hfd2hpdGVsaXN0ZWRfY2FsbAwBJGNhbGxfaGFzaEABHFQ6Okhhc2gAAUBjYWxsX2VuY29kZWRfbGVuOAEMdTMyAAFMY2FsbF93ZWlnaHRfd2l0bmVzcxUBARhXZWlnaHQAAgCcZGlzcGF0Y2hfd2hpdGVsaXN0ZWRfY2FsbF93aXRoX3ByZWltYWdlBAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu6QQMPHBhbGxldF9ib3VudGllcxhwYWxsZXQQQ2FsbAgEVAAESQABLDhwcm9wb3NlX2JvdW50eQgBFHZhbHVlVQEBPEJhbGFuY2VPZjxULCBJPgABLGRlc2NyaXB0aW9uGAEcVmVjPHU4PgAAMFRQcm9wb3NlIGEgbmV3IGJvdW50eS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBRAVBheW1lbnQ6IGBUaXBSZXBvcnREZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudCwgYXMgd2VsbCBhc1EBYERhdGFEZXBvc2l0UGVyQnl0ZWAgZm9yIGVhY2ggYnl0ZSBpbiBgcmVhc29uYC4gSXQgd2lsbCBiZSB1bnJlc2VydmVkIHVwb24gYXBwcm92YWwsZG9yIHNsYXNoZWQgd2hlbiByZWplY3RlZC4A+C0gYGN1cmF0b3JgOiBUaGUgY3VyYXRvciBhY2NvdW50IHdob20gd2lsbCBtYW5hZ2UgdGhpcyBib3VudHkuZC0gYGZlZWA6IFRoZSBjdXJhdG9yIGZlZS4lAS0gYHZhbHVlYDogVGhlIHRvdGFsIHBheW1lbnQgYW1vdW50IG9mIHRoaXMgYm91bnR5LCBjdXJhdG9yIGZlZSBpbmNsdWRlZC7ALSBgZGVzY3JpcHRpb25gOiBUaGUgZGVzY3JpcHRpb24gb2YgdGhpcyBib3VudHkuOGFwcHJvdmVfYm91bnR5BAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARxdAUFwcHJvdmUgYSBib3VudHkgcHJvcG9zYWwuIEF0IGEgbGF0ZXIgdGltZSwgdGhlIGJvdW50eSB3aWxsIGJlIGZ1bmRlZCBhbmQgYmVjb21lIGFjdGl2ZahhbmQgdGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSByZXR1cm5lZC4ApE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBUOjpTcGVuZE9yaWdpbmAuADQjIyBDb21wbGV4aXR5HC0gTygxKS48cHJvcG9zZV9jdXJhdG9yDAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARxjdXJhdG9yAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAQxmZWVVAQE8QmFsYW5jZU9mPFQsIEk+AAIYlFByb3Bvc2UgYSBjdXJhdG9yIHRvIGEgZnVuZGVkIGJvdW50eS4ApE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBUOjpTcGVuZE9yaWdpbmAuADQjIyBDb21wbGV4aXR5HC0gTygxKS5AdW5hc3NpZ25fY3VyYXRvcgQBJGJvdW50eV9pZGQBLEJvdW50eUluZGV4AANEfFVuYXNzaWduIGN1cmF0b3IgZnJvbSBhIGJvdW50eS4AHQFUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgYFJlamVjdE9yaWdpbmAgYSBzaWduZWQgb3JpZ2luLgA9AUlmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBgUmVqZWN0T3JpZ2luYCwgd2UgYXNzdW1lIHRoYXQgdGhlIGN1cmF0b3IgaXMxAW1hbGljaW91cyBvciBpbmFjdGl2ZS4gQXMgYSByZXN1bHQsIHdlIHdpbGwgc2xhc2ggdGhlIGN1cmF0b3Igd2hlbiBwb3NzaWJsZS4AYQFJZiB0aGUgb3JpZ2luIGlzIHRoZSBjdXJhdG9yLCB3ZSB0YWtlIHRoaXMgYXMgYSBzaWduIHRoZXkgYXJlIHVuYWJsZSB0byBkbyB0aGVpciBqb2IgYW5kXQF0aGV5IHdpbGxpbmdseSBnaXZlIHVwLiBXZSBjb3VsZCBzbGFzaCB0aGVtLCBidXQgZm9yIG5vdyB3ZSBhbGxvdyB0aGVtIHRvIHJlY292ZXIgdGhlaXI1AWRlcG9zaXQgYW5kIGV4aXQgd2l0aG91dCBpc3N1ZS4gKFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGlmIGl0IGlzIGFidXNlZC4pAF0BRmluYWxseSwgdGhlIG9yaWdpbiBjYW4gYmUgYW55b25lIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJhdG9yIGlzICJpbmFjdGl2ZSIuIFRoaXMgYWxsb3dzYQFhbnlvbmUgaW4gdGhlIGNvbW11bml0eSB0byBjYWxsIG91dCB0aGF0IGEgY3VyYXRvciBpcyBub3QgZG9pbmcgdGhlaXIgZHVlIGRpbGlnZW5jZSwgYW5kOQF3ZSBzaG91bGQgcGljayBhIG5ldyBjdXJhdG9yLiBJbiB0aGlzIGNhc2UgdGhlIGN1cmF0b3Igc2hvdWxkIGFsc28gYmUgc2xhc2hlZC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjhhY2NlcHRfY3VyYXRvcgQBJGJvdW50eV9pZGQBLEJvdW50eUluZGV4AAQclEFjY2VwdCB0aGUgY3VyYXRvciByb2xlIGZvciBhIGJvdW50eS4pAUEgZGVwb3NpdCB3aWxsIGJlIHJlc2VydmVkIGZyb20gY3VyYXRvciBhbmQgcmVmdW5kIHVwb24gc3VjY2Vzc2Z1bCBwYXlvdXQuAJBNYXkgb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY3VyYXRvci4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjBhd2FyZF9ib3VudHkIASRib3VudHlfaWRkASxCb3VudHlJbmRleAABLGJlbmVmaWNpYXJ5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ABShZAUF3YXJkIGJvdW50eSB0byBhIGJlbmVmaWNpYXJ5IGFjY291bnQuIFRoZSBiZW5lZmljaWFyeSB3aWxsIGJlIGFibGUgdG8gY2xhaW0gdGhlIGZ1bmRzOGFmdGVyIGEgZGVsYXkuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGN1cmF0b3Igb2YgdGhpcyBib3VudHkuAIgtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gYXdhcmQuGQEtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBhY2NvdW50IHdob20gd2lsbCByZWNlaXZlIHRoZSBwYXlvdXQuADQjIyBDb21wbGV4aXR5HC0gTygxKS4wY2xhaW1fYm91bnR5BAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgABiDsQ2xhaW0gdGhlIHBheW91dCBmcm9tIGFuIGF3YXJkZWQgYm91bnR5IGFmdGVyIHBheW91dCBkZWxheS4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYmVuZWZpY2lhcnkgb2YgdGhpcyBib3VudHkuAIgtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gY2xhaW0uADQjIyBDb21wbGV4aXR5HC0gTygxKS4wY2xvc2VfYm91bnR5BAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAByQ5AUNhbmNlbCBhIHByb3Bvc2VkIG9yIGFjdGl2ZSBib3VudHkuIEFsbCB0aGUgZnVuZHMgd2lsbCBiZSBzZW50IHRvIHRyZWFzdXJ5IGFuZMx0aGUgY3VyYXRvciBkZXBvc2l0IHdpbGwgYmUgdW5yZXNlcnZlZCBpZiBwb3NzaWJsZS4AyE9ubHkgYFQ6OlJlamVjdE9yaWdpbmAgaXMgYWJsZSB0byBjYW5jZWwgYSBib3VudHkuAIwtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gY2FuY2VsLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuUGV4dGVuZF9ib3VudHlfZXhwaXJ5CAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARhyZW1hcmsYARxWZWM8dTg+AAgkrEV4dGVuZCB0aGUgZXhwaXJ5IHRpbWUgb2YgYW4gYWN0aXZlIGJvdW50eS4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY3VyYXRvciBvZiB0aGlzIGJvdW50eS4AjC0gYGJvdW50eV9pZGA6IEJvdW50eSBJRCB0byBleHRlbmQujC0gYHJlbWFya2A6IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uADQjIyBDb21wbGV4aXR5HC0gTygxKS5sYXBwcm92ZV9ib3VudHlfd2l0aF9jdXJhdG9yDAEkYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARxjdXJhdG9yAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAQxmZWVVAQE8QmFsYW5jZU9mPFQsIEk+AAks1EFwcHJvdmUgYm91bnRyeSBhbmQgcHJvcG9zZSBhIGN1cmF0b3Igc2ltdWx0YW5lb3VzbHkuVQFUaGlzIGNhbGwgaXMgYSBzaG9ydGN1dCB0byBjYWxsaW5nIGBhcHByb3ZlX2JvdW50eWAgYW5kIGBwcm9wb3NlX2N1cmF0b3JgIHNlcGFyYXRlbHkuAKRNYXkgb25seSBiZSBjYWxsZWQgZnJvbSBgVDo6U3BlbmRPcmlnaW5gLgCQLSBgYm91bnR5X2lkYDogQm91bnR5IElEIHRvIGFwcHJvdmUu+C0gYGN1cmF0b3JgOiBUaGUgY3VyYXRvciBhY2NvdW50IHdob20gd2lsbCBtYW5hZ2UgdGhpcyBib3VudHkuZC0gYGZlZWA6IFRoZSBjdXJhdG9yIGZlZS4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjBwb2tlX2RlcG9zaXQEASRib3VudHlfaWRkASxCb3VudHlJbmRleAAKPORQb2tlIHRoZSBkZXBvc2l0IHJlc2VydmVkIGZvciBjcmVhdGluZyBhIGJvdW50eSBwcm9wb3NhbC4A9FRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gdXBkYXRlIHRoZWlyIHJlc2VydmVkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczr0LSBgYm91bnR5X2lkYDogVGhlIGJvdW50eSBpZCBmb3Igd2hpY2ggdG8gYWRqdXN0IHRoZSBkZXBvc2l0LgA5AUlmIHRoZSBkZXBvc2l0IGlzIHVwZGF0ZWQsIHRoZSBkaWZmZXJlbmNlIHdpbGwgYmUgcmVzZXJ2ZWQvdW5yZXNlcnZlZCBmcm9tIHRoZUxwcm9wb3NlcidzIGFjY291bnQuACkBVGhlIHRyYW5zYWN0aW9uIGlzIG1hZGUgZnJlZSBpZiB0aGUgZGVwb3NpdCBpcyB1cGRhdGVkIGFuZCBwYWlkIG90aGVyd2lzZS4AvEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHRoZSBkZXBvc2l0IGlzIHVwZGF0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLu0EDFRwYWxsZXRfY2hpbGRfYm91bnRpZXMYcGFsbGV0EENhbGwEBFQAARxAYWRkX2NoaWxkX2JvdW50eQwBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABFHZhbHVlVQEBMEJhbGFuY2VPZjxUPgABLGRlc2NyaXB0aW9uGAEcVmVjPHU4PgAATFxBZGQgYSBuZXcgY2hpbGQtYm91bnR5LgD8VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGN1cmF0b3Igb2YgcGFyZW503GJvdW50eSBhbmQgdGhlIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbiAiYWN0aXZlIiBzdGF0ZS4ABQFDaGlsZC1ib3VudHkgZ2V0cyBhZGRlZCBzdWNjZXNzZnVsbHkgJiBmdW5kIGdldHMgdHJhbnNmZXJyZWQgZnJvbQkBcGFyZW50IGJvdW50eSB0byBjaGlsZC1ib3VudHkgYWNjb3VudCwgaWYgcGFyZW50IGJvdW50eSBoYXMgZW5vdWdobGZ1bmRzLCBlbHNlIHRoZSBjYWxsIGZhaWxzLgANAVVwcGVyIGJvdW5kIHRvIG1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSAgY2hpbGQgYm91bnRpZXMgdGhhdCBjYW4gYmWoYWRkZWQgYXJlIG1hbmFnZWQgdmlhIHJ1bnRpbWUgdHJhaXQgY29uZmlnmFtgQ29uZmlnOjpNYXhBY3RpdmVDaGlsZEJvdW50eUNvdW50YF0uAAEBSWYgdGhlIGNhbGwgaXMgc3VjY2VzcywgdGhlIHN0YXR1cyBvZiBjaGlsZC1ib3VudHkgaXMgdXBkYXRlZCB0byAiQWRkZWQiLgBNAS0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5IGZvciB3aGljaCBjaGlsZC1ib3VudHkgaXMgYmVpbmcgYWRkZWQusC0gYHZhbHVlYDogVmFsdWUgZm9yIGV4ZWN1dGluZyB0aGUgcHJvcG9zYWwu3C0gYGRlc2NyaXB0aW9uYDogVGV4dCBkZXNjcmlwdGlvbiBmb3IgdGhlIGNoaWxkLWJvdW50eS48cHJvcG9zZV9jdXJhdG9yEAFAcGFyZW50X2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARxjdXJhdG9yAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAQxmZWVVAQEwQmFsYW5jZU9mPFQ+AAE8oFByb3Bvc2UgY3VyYXRvciBmb3IgZnVuZGVkIGNoaWxkLWJvdW50eS4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBjdXJhdG9yIG9mIHBhcmVudCBib3VudHkuABEBUGFyZW50IGJvdW50eSBtdXN0IGJlIGluIGFjdGl2ZSBzdGF0ZSwgZm9yIHRoaXMgY2hpbGQtYm91bnR5IGNhbGwgdG8Ud29yay4ADQFDaGlsZC1ib3VudHkgbXVzdCBiZSBpbiAiQWRkZWQiIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGUgY2FsbC4gQW5kBQFzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gIkN1cmF0b3JQcm9wb3NlZCIgb24gc3VjY2Vzc2Z1bEBjYWxsIGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5LrQtIGBjdXJhdG9yYDogQWRkcmVzcyBvZiBjaGlsZC1ib3VudHkgY3VyYXRvci7sLSBgZmVlYDogcGF5bWVudCBmZWUgdG8gY2hpbGQtYm91bnR5IGN1cmF0b3IgZm9yIGV4ZWN1dGlvbi44YWNjZXB0X2N1cmF0b3IIAUBwYXJlbnRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWRkASxCb3VudHlJbmRleAACTLRBY2NlcHQgdGhlIGN1cmF0b3Igcm9sZSBmb3IgdGhlIGNoaWxkLWJvdW50eS4A9FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBjdXJhdG9yIG9mIHRoaXM0Y2hpbGQtYm91bnR5LgDsQSBkZXBvc2l0IHdpbGwgYmUgcmVzZXJ2ZWQgZnJvbSB0aGUgY3VyYXRvciBhbmQgcmVmdW5kIHVwb26Ic3VjY2Vzc2Z1bCBwYXlvdXQgb3IgY2FuY2VsbGF0aW9uLgD4RmVlIGZvciBjdXJhdG9yIGlzIGRlZHVjdGVkIGZyb20gY3VyYXRvciBmZWUgb2YgcGFyZW50IGJvdW50eS4AEQFQYXJlbnQgYm91bnR5IG11c3QgYmUgaW4gYWN0aXZlIHN0YXRlLCBmb3IgdGhpcyBjaGlsZC1ib3VudHkgY2FsbCB0bxR3b3JrLgANAUNoaWxkLWJvdW50eSBtdXN0IGJlIGluICJDdXJhdG9yUHJvcG9zZWQiIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGUJAWNhbGwuIEFuZCBzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gIkFjdGl2ZSIgb24gc3VjY2Vzc2Z1bEBjYWxsIGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5LkB1bmFzc2lnbl9jdXJhdG9yCAFAcGFyZW50X2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAA4iUVW5hc3NpZ24gY3VyYXRvciBmcm9tIGEgY2hpbGQtYm91bnR5LgAJAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBjYW4gYmUgZWl0aGVyIGBSZWplY3RPcmlnaW5gLCBvctx0aGUgY3VyYXRvciBvZiB0aGUgcGFyZW50IGJvdW50eSwgb3IgYW55IHNpZ25lZCBvcmlnaW4uAPhGb3IgdGhlIG9yaWdpbiBvdGhlciB0aGFuIFQ6OlJlamVjdE9yaWdpbiBhbmQgdGhlIGNoaWxkLWJvdW50eQEBY3VyYXRvciwgcGFyZW50IGJvdW50eSBtdXN0IGJlIGluIGFjdGl2ZSBzdGF0ZSwgZm9yIHRoaXMgY2FsbCB0bwkBd29yay4gV2UgYWxsb3cgY2hpbGQtYm91bnR5IGN1cmF0b3IgYW5kIFQ6OlJlamVjdE9yaWdpbiB0byBleGVjdXRlyHRoaXMgY2FsbCBpcnJlc3BlY3RpdmUgb2YgdGhlIHBhcmVudCBib3VudHkgc3RhdGUuANxJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgYFJlamVjdE9yaWdpbmAgb3IgdGhlBQFwYXJlbnQgYm91bnR5IGN1cmF0b3IsIHdlIGFzc3VtZSB0aGF0IHRoZSBjaGlsZC1ib3VudHkgY3VyYXRvciBpcw0BbWFsaWNpb3VzIG9yIGluYWN0aXZlLiBBcyBhIHJlc3VsdCwgY2hpbGQtYm91bnR5IGN1cmF0b3IgZGVwb3NpdCBpcyBzbGFzaGVkLgAFAUlmIHRoZSBvcmlnaW4gaXMgdGhlIGNoaWxkLWJvdW50eSBjdXJhdG9yLCB3ZSB0YWtlIHRoaXMgYXMgYSBzaWduCQF0aGF0IHRoZXkgYXJlIHVuYWJsZSB0byBkbyB0aGVpciBqb2IsIGFuZCBhcmUgd2lsbGluZ2x5IGdpdmluZyB1cC4JAVdlIGNvdWxkIHNsYXNoIHRoZSBkZXBvc2l0LCBidXQgZm9yIG5vdyB3ZSBhbGxvdyB0aGVtIHRvIHVucmVzZXJ2ZREBdGhlaXIgZGVwb3NpdCBhbmQgZXhpdCB3aXRob3V0IGlzc3VlLiAoV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaWY4aXQgaXMgYWJ1c2VkLikABQFGaW5hbGx5LCB0aGUgb3JpZ2luIGNhbiBiZSBhbnlvbmUgaWZmIHRoZSBjaGlsZC1ib3VudHkgY3VyYXRvciBpcwkBImluYWN0aXZlIi4gRXhwaXJ5IHVwZGF0ZSBkdWUgb2YgcGFyZW50IGJvdW50eSBpcyB1c2VkIHRvIGVzdGltYXRlnGluYWN0aXZlIHN0YXRlIG9mIGNoaWxkLWJvdW50eSBjdXJhdG9yLgANAVRoaXMgYWxsb3dzIGFueW9uZSBpbiB0aGUgY29tbXVuaXR5IHRvIGNhbGwgb3V0IHRoYXQgYSBjaGlsZC1ib3VudHkJAWN1cmF0b3IgaXMgbm90IGRvaW5nIHRoZWlyIGR1ZSBkaWxpZ2VuY2UsIGFuZCB3ZSBzaG91bGQgcGljayBhIG5ld/hvbmUuIEluIHRoaXMgY2FzZSB0aGUgY2hpbGQtYm91bnR5IGN1cmF0b3IgZGVwb3NpdCBpcyBzbGFzaGVkLgABAVN0YXRlIG9mIGNoaWxkLWJvdW50eSBpcyBtb3ZlZCB0byBBZGRlZCBzdGF0ZSBvbiBzdWNjZXNzZnVsIGNhbGwsY29tcGxldGlvbi4AtC0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5LqwtIGBjaGlsZF9ib3VudHlfaWRgOiBJbmRleCBvZiBjaGlsZCBib3VudHkuSGF3YXJkX2NoaWxkX2JvdW50eQwBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAEsYmVuZWZpY2lhcnkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAERJBBd2FyZCBjaGlsZC1ib3VudHkgdG8gYSBiZW5lZmljaWFyeS4A+FRoZSBiZW5lZmljaWFyeSB3aWxsIGJlIGFibGUgdG8gY2xhaW0gdGhlIGZ1bmRzIGFmdGVyIGEgZGVsYXkuAPxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgcGFyZW50IGN1cmF0b3Igb3J0Y3VyYXRvciBvZiB0aGlzIGNoaWxkLWJvdW50eS4AEQFQYXJlbnQgYm91bnR5IG11c3QgYmUgaW4gYWN0aXZlIHN0YXRlLCBmb3IgdGhpcyBjaGlsZC1ib3VudHkgY2FsbCB0bxR3b3JrLgAJAUNoaWxkLWJvdW50eSBtdXN0IGJlIGluIGFjdGl2ZSBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhlIGNhbGwuIEFuZBEBc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIG1vdmVkIHRvICJQZW5kaW5nUGF5b3V0IiBvbiBzdWNjZXNzZnVsIGNhbGwsY29tcGxldGlvbi4AtC0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5LqwtIGBjaGlsZF9ib3VudHlfaWRgOiBJbmRleCBvZiBjaGlsZCBib3VudHkulC0gYGJlbmVmaWNpYXJ5YDogQmVuZWZpY2lhcnkgYWNjb3VudC5IY2xhaW1fY2hpbGRfYm91bnR5CAFAcGFyZW50X2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgABUAFAUNsYWltIHRoZSBwYXlvdXQgZnJvbSBhbiBhd2FyZGVkIGNoaWxkLWJvdW50eSBhZnRlciBwYXlvdXQgZGVsYXkuAOxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbWF5IGJlIGFueSBzaWduZWQgb3JpZ2luLgAFAUNhbGwgd29ya3MgaW5kZXBlbmRlbnQgb2YgcGFyZW50IGJvdW50eSBzdGF0ZSwgTm8gbmVlZCBmb3IgcGFyZW50dGJvdW50eSB0byBiZSBpbiBhY3RpdmUgc3RhdGUuABEBVGhlIEJlbmVmaWNpYXJ5IGlzIHBhaWQgb3V0IHdpdGggYWdyZWVkIGJvdW50eSB2YWx1ZS4gQ3VyYXRvciBmZWUgaXOUcGFpZCAmIGN1cmF0b3IgZGVwb3NpdCBpcyB1bnJlc2VydmVkLgAFAUNoaWxkLWJvdW50eSBtdXN0IGJlIGluICJQZW5kaW5nUGF5b3V0IiBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhl/GNhbGwuIEFuZCBpbnN0YW5jZSBvZiBjaGlsZC1ib3VudHkgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGF0ZSBvbmxzdWNjZXNzZnVsIGNhbGwgY29tcGxldGlvbi4AtC0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5LqwtIGBjaGlsZF9ib3VudHlfaWRgOiBJbmRleCBvZiBjaGlsZCBib3VudHkuSGNsb3NlX2NoaWxkX2JvdW50eQgBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAZYEQFDYW5jZWwgYSBwcm9wb3NlZCBvciBhY3RpdmUgY2hpbGQtYm91bnR5LiBDaGlsZC1ib3VudHkgYWNjb3VudCBmdW5kcwkBYXJlIHRyYW5zZmVycmVkIHRvIHBhcmVudCBib3VudHkgYWNjb3VudC4gVGhlIGNoaWxkLWJvdW50eSBjdXJhdG9ymGRlcG9zaXQgbWF5IGJlIHVucmVzZXJ2ZWQgaWYgcG9zc2libGUuAAkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgZWl0aGVyIHBhcmVudCBjdXJhdG9yIG9ySGBUOjpSZWplY3RPcmlnaW5gLgDwSWYgdGhlIHN0YXRlIG9mIGNoaWxkLWJvdW50eSBpcyBgQWN0aXZlYCwgY3VyYXRvciBkZXBvc2l0IGlzLHVucmVzZXJ2ZWQuAPRJZiB0aGUgc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIGBQZW5kaW5nUGF5b3V0YCwgY2FsbCBmYWlscyAmeHJldHVybnMgYFBlbmRpbmdQYXlvdXRgIGVycm9yLgANAUZvciB0aGUgb3JpZ2luIG90aGVyIHRoYW4gVDo6UmVqZWN0T3JpZ2luLCBwYXJlbnQgYm91bnR5IG11c3QgYmUgaW7wYWN0aXZlIHN0YXRlLCBmb3IgdGhpcyBjaGlsZC1ib3VudHkgY2FsbCB0byB3b3JrLiBGb3Igb3JpZ2lukFQ6OlJlamVjdE9yaWdpbiBleGVjdXRpb24gaXMgZm9yY2VkLgABAUluc3RhbmNlIG9mIGNoaWxkLWJvdW50eSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YXRlIG9uIHN1Y2Nlc3NmdWxAY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu8QQMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBBDYWxsBARUAAEMGGNyZWF0ZQgBKGFzc2V0X2tpbmS1BAFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRl9QQBJEZpeGVkVTEyOAAAEA0BSW5pdGlhbGl6ZSBhIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYdXBkYXRlCAEoYXNzZXRfa2luZLUEAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGX1BAEkRml4ZWRVMTI4AAEQBQFVcGRhdGUgdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYcmVtb3ZlBAEoYXNzZXRfa2luZLUEAURCb3g8VDo6QXNzZXRLaW5kPgACECUBUmVtb3ZlIGFuIGV4aXN0aW5nIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu9QQMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEAFkBARB1MTI4AAD5BAxscGFsbGV0X211bHRpX2Fzc2V0X2JvdW50aWVzGHBhbGxldBBDYWxsCARUAARJAAEkLGZ1bmRfYm91bnR5EAEoYXNzZXRfa2luZLUEAURCb3g8VDo6QXNzZXRLaW5kPgABFHZhbHVlVQEBKFQ6OkJhbGFuY2UAARxjdXJhdG9yAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBtZXRhZGF0YUABHFQ6Okhhc2gAAGgpAUZ1bmQgYSBuZXcgYm91bnR5IHdpdGggYSBwcm9wb3NlZCBjdXJhdG9yLCBpbml0aWF0aW5nIHRoZSBwYXltZW50IGZyb20gdGhluGZ1bmRpbmcgc291cmNlIHRvIHRoZSBib3VudHkgYWNjb3VudC9sb2NhdGlvbi4ASCMjIERpc3BhdGNoIE9yaWdpbgAdAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0QQF0aGUgYm91bnR5IHZhbHVlIGNvbnZlcnRlZCB0byBuYXRpdmUgYmFsYW5jZSB1c2luZyBbYENvbmZpZzo6QmFsYW5jZUNvbnZlcnRlcmBdLjUBVGhlIGNvbnZlcnRlZCBuYXRpdmUgYW1vdW50IGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBtYXhpbXVtIHNwZW5kYWJsZSBhbW91bnSQcmV0dXJuZWQgYnkgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0uACgjIyBEZXRhaWxzACEBLSBUaGUgYFNwZW5kT3JpZ2luYCBtdXN0IGhhdmUgc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byBmdW5kIHRoZSBib3VudHkuWQEtIFRoZSBib3VudHkgYHZhbHVlYCAoaW4gYXNzZXQgYmFsYW5jZSkgaXMgY29udmVydGVkIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB2YWxpZGF0aW9uLikBLSBJbiBjYXNlIG9mIGEgZnVuZGluZyBmYWlsdXJlLCB0aGUgYm91bnR5IHN0YXR1cyBtdXN0IGJlIHVwZGF0ZWQgd2l0aCB0aGUBASAgYGNoZWNrX3N0YXR1c2AgY2FsbCBiZWZvcmUgcmV0cnlpbmcgd2l0aCBgcmV0cnlfcGF5bWVudGAgY2FsbC4AOCMjIyBQYXJhbWV0ZXJzGQEtIGBhc3NldF9raW5kYDogQW4gaW5kaWNhdG9yIG9mIHRoZSBzcGVjaWZpYyBhc3NldCBjbGFzcyB0byBiZSBmdW5kZWQuzC0gYHZhbHVlYDogVGhlIHRvdGFsIHBheW1lbnQgYW1vdW50IG9mIHRoaXMgYm91bnR5LpwtIGBjdXJhdG9yYDogQWRkcmVzcyBvZiBib3VudHkgY3VyYXRvci4tAS0gYG1ldGFkYXRhYDogVGhlIGhhc2ggb2YgYW4gb24tY2hhaW4gc3RvcmVkIHByZWltYWdlIHdpdGggYm91bnR5IG1ldGFkYXRhLgAkIyMgRXZlbnRzAAUBRW1pdHMgW2BFdmVudDo6Qm91bnR5Q3JlYXRlZGBdIGFuZCBbYEV2ZW50OjpQYWlkYF0gaWYgc3VjY2Vzc2Z1bC5EZnVuZF9jaGlsZF9ib3VudHkQAUBwYXJlbnRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAARR2YWx1ZVUBAShUOjpCYWxhbmNlAAEgbWV0YWRhdGFAARxUOjpIYXNoAAEcY3VyYXRvciUEAXBPcHRpb248QWNjb3VudElkTG9va3VwT2Y8VD4+AAFgXQFGdW5kIGEgbmV3IGNoaWxkLWJvdW50eSB3aXRoIGEgcHJvcG9zZWQgY3VyYXRvciwgaW5pdGlhdGluZyB0aGUgcGF5bWVudCBmcm9tIHRoZSBwYXJlbnSwYm91bnR5IHRvIHRoZSBjaGlsZC1ib3VudHkgYWNjb3VudC9sb2NhdGlvbi4ASCMjIERpc3BhdGNoIE9yaWdpbgCUTXVzdCBiZSBzaWduZWQgYnkgdGhlIHBhcmVudCBjdXJhdG9yLgAoIyMgRGV0YWlscwBFAS0gSWYgYGN1cmF0b3JgIGlzIG5vdCBwcm92aWRlZCwgdGhlIGNoaWxkLWJvdW50eSB3aWxsIGRlZmF1bHQgdG8gdXNpbmcgdGhlIHBhcmVudDUBICBjdXJhdG9yLCBhbGxvd2luZyB0aGUgcGFyZW50IGN1cmF0b3IgdG8gaW1tZWRpYXRlbHkgY2FsbCBgY2hlY2tfc3RhdHVzYCBhbmSwICBgYXdhcmRfYm91bnR5YCB0byBwYXlvdXQgdGhlIGNoaWxkLWJvdW50eS5FAS0gSW4gY2FzZSBvZiBhIGZ1bmRpbmcgZmFpbHVyZSwgdGhlIGNoaWxkLS9ib3VudHkgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZQEBICBgY2hlY2tfc3RhdHVzYCBjYWxsIGJlZm9yZSByZXRyeWluZyB3aXRoIGByZXRyeV9wYXltZW50YCBjYWxsLgA4IyMjIFBhcmFtZXRlcnNNAS0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5IGZvciB3aGljaCBjaGlsZC1ib3VudHkgaXMgYmVpbmcgYWRkZWQuzC0gYHZhbHVlYDogVGhlIHBheW1lbnQgYW1vdW50IG9mIHRoaXMgY2hpbGQtYm91bnR5LkUBLSBgbWV0YWRhdGFgOiBUaGUgaGFzaCBvZiBhbiBvbi1jaGFpbiBzdG9yZWQgcHJlaW1hZ2Ugd2l0aCBjaGlsZC1ib3VudHkgbWV0YWRhdGEutC0gYGN1cmF0b3JgOiBBZGRyZXNzIG9mIGNoaWxkLWJvdW50eSBjdXJhdG9yLgAkIyMgRXZlbnRzABkBRW1pdHMgW2BFdmVudDo6Q2hpbGRCb3VudHlDcmVhdGVkYF0gYW5kIFtgRXZlbnQ6OlBhaWRgXSBpZiBzdWNjZXNzZnVsLjxwcm9wb3NlX2N1cmF0b3IMAUBwYXJlbnRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTkAUxPcHRpb248Qm91bnR5SW5kZXg+AAEcY3VyYXRvcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAJUMQFQcm9wb3NlIGEgbmV3IGN1cmF0b3IgZm9yIGEgY2hpbGQtL2JvdW50eSBhZnRlciB0aGUgcHJldmlvdXMgd2FzIHVuYXNzaWduZWQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AQQFNdXN0IGJlIHNpZ25lZCBieSBgVDo6U3BlbmRPcmlnaW5gIGZvciBhIGJvdW50eSwgb3IgYnkgdGhlIHBhcmVudCBib3VudHkgY3VyYXRvckxmb3IgYSBjaGlsZC1ib3VudHkuACgjIyBEZXRhaWxzAPQtIFRoZSBjaGlsZC0vYm91bnR5IG11c3QgYmUgaW4gdGhlIGBDdXJhdG9yVW5hc3NpZ25lZGAgc3RhdGUuRQEtIEZvciBhIGJvdW50eSwgdGhlIGBTcGVuZE9yaWdpbmAgbXVzdCBoYXZlIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMgdG8gcHJvcG9zZSB0aGUoICBjdXJhdG9yLgA4IyMjIFBhcmFtZXRlcnOYLSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQtYm91bnR5LswtIGBjdXJhdG9yYDogQWNjb3VudCB0byBiZSBwcm9wb3NlZCBhcyB0aGUgY3VyYXRvci4AJCMjIEV2ZW50cwC8RW1pdHMgW2BFdmVudDo6Q3VyYXRvclByb3Bvc2VkYF0gaWYgc3VjY2Vzc2Z1bC44YWNjZXB0X2N1cmF0b3IIAUBwYXJlbnRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTkAUxPcHRpb248Qm91bnR5SW5kZXg+AANMsEFjY2VwdCB0aGUgY3VyYXRvciByb2xlIGZvciBhIGNoaWxkLS9ib3VudHkuAEgjIyBEaXNwYXRjaCBPcmlnaW4AnE11c3QgYmUgc2lnbmVkIGJ5IHRoZSBwcm9wb3NlZCBjdXJhdG9yLgAoIyMgRGV0YWlscwDILSBUaGUgY2hpbGQtL2JvdW50eSBtdXN0IGJlIGluIHRoZSBgRnVuZGVkYCBzdGF0ZS7wLSBUaGUgY3VyYXRvciBtdXN0IGFjY2VwdCB0aGUgcm9sZSBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uSQEtIEEgZGVwb3NpdCB3aWxsIGJlIHJlc2VydmVkIGZyb20gdGhlIGN1cmF0b3IgYW5kIHJlZnVuZGVkIHVwb24gc3VjY2Vzc2Z1bCBwYXlvdXQuADgjIyMgUGFyYW1ldGVyc7QtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQtYm91bnR5LgAkIyMgRXZlbnRzAMhFbWl0cyBbYEV2ZW50OjpCb3VudHlCZWNhbWVBY3RpdmVgXSBpZiBzdWNjZXNzZnVsLkB1bmFzc2lnbl9jdXJhdG9yCAFAcGFyZW50X2JvdW50eV9pZGQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk5AFMT3B0aW9uPEJvdW50eUluZGV4PgAEZJhVbmFzc2lnbiBjdXJhdG9yIGZyb20gYSBjaGlsZC0vYm91bnR5LgBIIyMgRGlzcGF0Y2ggT3JpZ2luAFEBVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIGBSZWplY3RPcmlnaW5gIG9yIHRoZSBjaGlsZC0vYm91bnR5IGN1cmF0b3IuACgjIyBEZXRhaWxzAGEBLSBJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgYFJlamVjdE9yaWdpbmAsIG9yIGJ5IHRoZSBwYXJlbnQgY3VyYXRvciBpbiB0aGUgY2FzZVkBICBvZiBhIGNoaWxkIGJvdW50eSwgd2UgYXNzdW1lIHRoYXQgdGhlIGN1cmF0b3IgaXMgbWFsaWNpb3VzIG9yIGluYWN0aXZlLiBBcyBhIHJlc3VsdCyoICB3ZSB3aWxsIHNsYXNoIHRoZSBjdXJhdG9yIHdoZW4gcG9zc2libGUuXQEtIElmIHRoZSBvcmlnaW4gaXMgdGhlIGNoaWxkLS9ib3VudHkgY3VyYXRvciwgd2UgdGFrZSB0aGlzIGFzIGEgc2lnbiB0aGV5IGFyZSB1bmFibGUgdG9RASAgZG8gdGhlaXIgam9iIGFuZCB0aGV5IHdpbGxpbmdseSBnaXZlIHVwLiBXZSBjb3VsZCBzbGFzaCB0aGVtLCBidXQgZm9yIG5vdyB3ZSBhbGxvd1kBICB0aGVtIHRvIHJlY292ZXIgdGhlaXIgZGVwb3NpdCBhbmQgZXhpdCB3aXRob3V0IGlzc3VlLiAoV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaWZAICBpdCBpcyBhYnVzZWQpLj0BLSBJZiBzdWNjZXNzZnVsLCB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgaXMgdXBkYXRlZCB0byBgQ3VyYXRvclVuYXNzaWduZWRgLiBUb0UBICByZWFjdGl2YXRlIHRoZSBib3VudHksIGEgbmV3IGN1cmF0b3IgbXVzdCBiZSBwcm9wb3NlZCBhbmQgbXVzdCBhY2NlcHQgdGhlIHJvbGUuADgjIyMgUGFyYW1ldGVyc7QtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQtYm91bnR5LgAkIyMgRXZlbnRzAMRFbWl0cyBbYEV2ZW50OjpDdXJhdG9yVW5hc3NpZ25lZGBdIGlmIHN1Y2Nlc3NmdWwuMGF3YXJkX2JvdW50eQwBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZOQBTE9wdGlvbjxCb3VudHlJbmRleD4AASxiZW5lZmljaWFyebkEAWRCZW5lZmljaWFyeUxvb2t1cE9mPFQsIEk+AAVg7EF3YXJkcyB0aGUgY2hpbGQtL2JvdW50eSB0byBhIGJlbmVmaWNpYXJ5IGFjY291bnQvbG9jYXRpb24sHQFpbml0aWF0aW5nIHRoZSBwYXlvdXQgcGF5bWVudHMgdG8gYm90aCB0aGUgYmVuZWZpY2lhcnkgYW5kIHRoZSBjdXJhdG9yLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAFEBVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIGBSZWplY3RPcmlnaW5gIG9yIHRoZSBjaGlsZC0vYm91bnR5IGN1cmF0b3IuACgjIyBEZXRhaWxzAMgtIFRoZSBjaGlsZC0vYm91bnR5IG11c3QgYmUgaW4gdGhlIGBBY3RpdmVgIHN0YXRlLj0BLSBpZiBhd2FyZGluZyBhIHBhcmVudCBib3VudHkgaXQgbXVzdCBub3QgaGF2ZSBhY3RpdmUgb3IgZnVuZGVkIGNoaWxkIGJvdW50aWVzLlkBLSBJbml0aWF0ZXMgcGF5b3V0IHBheW1lbnQgZnJvbSB0aGUgY2hpbGQtL2JvdW50eSB0byB0aGUgYmVuZWZpY2lhcnkgYWNjb3VudC9sb2NhdGlvbi4lAS0gSWYgc3VjY2Vzc2Z1bCB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgaXMgdXBkYXRlZCB0byBgUGF5b3V0QXR0ZW1wdGVkYC4xAS0gSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgbXVzdCBiZSB1cGRhdGVkIHdpdGj4YGNoZWNrX3N0YXR1c2AgY2FsbCBiZWZvcmUgcmV0cnlpbmcgd2l0aCBgcmV0cnlfcGF5bWVudGAgY2FsbC4AOCMjIyBQYXJhbWV0ZXJztC0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5LqwtIGBjaGlsZF9ib3VudHlfaWRgOiBJbmRleCBvZiBjaGlsZC1ib3VudHkuCQEtIGBiZW5lZmljaWFyeWA6IEFjY291bnQvbG9jYXRpb24gdG8gYmUgYXdhcmRlZCB0aGUgY2hpbGQtL2JvdW50eS4AJCMjIEV2ZW50cwAFAUVtaXRzIFtgRXZlbnQ6OkJvdW50eUF3YXJkZWRgXSBhbmQgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNsb3NlX2JvdW50eQgBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZOQBTE9wdGlvbjxCb3VudHlJbmRleD4ABlxhAUNhbmNlbCBhbiBhY3RpdmUgY2hpbGQtL2JvdW50eS4gQSBwYXltZW50IHRvIHNlbmQgYWxsIHRoZSBmdW5kcyB0byB0aGUgZnVuZGluZyBzb3VyY2UgaXMwaW5pdGlhbGl6ZWQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AUQFUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgYFJlamVjdE9yaWdpbmAgb3IgdGhlIHBhcmVudCBib3VudHkgY3VyYXRvci4AKCMjIERldGFpbHMAPQEtIElmIHRoZSBjaGlsZC0vYm91bnR5IGlzIGluIHRoZSBgRnVuZGVkYCBzdGF0ZSwgYSByZWZ1bmQgcGF5bWVudCBpcyBpbml0aWF0ZWQuWQEtIElmIHRoZSBjaGlsZC0vYm91bnR5IGlzIGluIHRoZSBgQWN0aXZlYCBzdGF0ZSwgYSByZWZ1bmQgcGF5bWVudCBpcyBpbml0aWF0ZWQgYW5kIHRoZREBICBjaGlsZC0vYm91bnR5IHN0YXR1cyBpcyB1cGRhdGVkIHdpdGggdGhlIGN1cmF0b3IgYWNjb3VudC9sb2NhdGlvbi5BAS0gSWYgdGhlIGNoaWxkLS9ib3VudHkgaXMgaW4gdGhlIGZ1bmRpbmcgb3IgcGF5b3V0IHBoYXNlLCBpdCBjYW5ub3QgYmUgY2FuY2VsZWQuQQEtIEluIGNhc2Ugb2YgYSByZWZ1bmQgZmFpbHVyZSwgdGhlIGNoaWxkLS9ib3VudHkgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZfhgY2hlY2tfc3RhdHVzYCBjYWxsIGJlZm9yZSByZXRyeWluZyB3aXRoIGByZXRyeV9wYXltZW50YCBjYWxsLgA4IyMjIFBhcmFtZXRlcnO0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkLWJvdW50eS4AJCMjIEV2ZW50cwAJAUVtaXRzIFtgRXZlbnQ6OkJvdW50eUNhbmNlbGVkYF0gYW5kIFtgRXZlbnQ6OlBhaWRgXSBpZiBzdWNjZXNzZnVsLjBjaGVja19zdGF0dXMIAUBwYXJlbnRfYm91bnR5X2lkZAEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTkAUxPcHRpb248Qm91bnR5SW5kZXg+AAdk3ENoZWNrIGFuZCB1cGRhdGUgdGhlIHBheW1lbnQgc3RhdHVzIG9mIGEgY2hpbGQtL2JvdW50eS4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAFUBLSBJZiB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgaXMgYEZ1bmRpbmdBdHRlbXB0ZWRgLCBpdCBjaGVja3MgaWYgdGhlIGZ1bmRpbmcgcGF5bWVudA0BICBoYXMgc3VjY2VlZGVkLiBJZiBzdWNjZXNzZnVsLCB0aGUgYm91bnR5IHN0YXR1cyBiZWNvbWVzIGBGdW5kZWRgLl0BLSBJZiB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgaXMgYFJlZnVuZEF0dGVtcHRlZGAsIGl0IGNoZWNrcyBpZiB0aGUgcmVmdW5kIHBheW1lbnQgaGFzGQEgIHN1Y2NlZWRlZC4gSWYgc3VjY2Vzc2Z1bCwgdGhlIGNoaWxkLS9ib3VudHkgaXMgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuXQEtIElmIHRoZSBjaGlsZC0vYm91bnR5IHN0YXR1cyBpcyBgUGF5b3V0QXR0ZW1wdGVkYCwgaXQgY2hlY2tzIGlmIHRoZSBwYXlvdXQgcGF5bWVudCBoYXMZASAgc3VjY2VlZGVkLiBJZiBzdWNjZXNzZnVsLCB0aGUgY2hpbGQtL2JvdW50eSBpcyByZW1vdmVkIGZyb20gc3RvcmFnZS4AOCMjIyBQYXJhbWV0ZXJztC0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5LqwtIGBjaGlsZF9ib3VudHlfaWRgOiBJbmRleCBvZiBjaGlsZC1ib3VudHkuACQjIyBFdmVudHMAXQFFbWl0cyBbYEV2ZW50OjpCb3VudHlCZWNhbWVBY3RpdmVgXSBpZiB0aGUgY2hpbGQvYm91bnR5IHN0YXR1cyB0cmFuc2l0aW9ucyB0byBgQWN0aXZlYC4lAUVtaXRzIFtgRXZlbnQ6OkJvdW50eVJlZnVuZFByb2Nlc3NlZGBdIGlmIHRoZSByZWZ1bmQgcGF5bWVudCBoYXMgc3VjY2VlZC4lAUVtaXRzIFtgRXZlbnQ6OkJvdW50eVBheW91dFByb2Nlc3NlZGBdIGlmIHRoZSBwYXlvdXQgcGF5bWVudCBoYXMgc3VjY2VlZC5VAUVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgZnVuZGluZywgcmVmdW5kIG91ciBwYXltZW50IHBheW1lbnQgaGFzIGZhaWxlZC40cmV0cnlfcGF5bWVudAgBQHBhcmVudF9ib3VudHlfaWRkASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZOQBTE9wdGlvbjxCb3VudHlJbmRleD4ACFi0UmV0cnkgdGhlIGZ1bmRpbmcsIHJlZnVuZCBvciBwYXlvdXQgcGF5bWVudHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4APE11c3QgYmUgc2lnbmVkLgAoIyMgRGV0YWlscwBhAS0gSWYgdGhlIGNoaWxkLS9ib3VudHkgc3RhdHVzIGlzIGBGdW5kaW5nQXR0ZW1wdGVkYCwgaXQgcmV0cmllcyB0aGUgZnVuZGluZyBwYXltZW50IGZyb23QICBmdW5kaW5nIHNvdXJjZSB0aGUgY2hpbGQtL2JvdW50eSBhY2NvdW50L2xvY2F0aW9uLlkBLSBJZiB0aGUgY2hpbGQtL2JvdW50eSBzdGF0dXMgaXMgYFJlZnVuZEF0dGVtcHRlZGAsIGl0IHJldHJpZXMgdGhlIHJlZnVuZCBwYXltZW50IGZyb23sICB0aGUgY2hpbGQtL2JvdW50eSBhY2NvdW50L2xvY2F0aW9uIHRvIHRoZSBmdW5kaW5nIHNvdXJjZS5ZAS0gSWYgdGhlIGNoaWxkLS9ib3VudHkgc3RhdHVzIGlzIGBQYXlvdXRBdHRlbXB0ZWRgLCBpdCByZXRyaWVzIHRoZSBwYXlvdXQgcGF5bWVudCBmcm9tJQEgIHRoZSBjaGlsZC0vYm91bnR5IGFjY291bnQvbG9jYXRpb24gdG8gdGhlIGJlbmVmaWNpYXJ5IGFjY291bnQvbG9jYXRpb24uADgjIyMgUGFyYW1ldGVyc7QtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQtYm91bnR5LgAkIyMgRXZlbnRzADUBRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHRoZSBmdW5kaW5nLCByZWZ1bmQgb3IgcGF5b3V0IHBheW1lbnQgaGFzIGluaXRpYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu/QQMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQQQ2FsbAQEVAABGFhjb250cm9sX2F1dG9fbWlncmF0aW9uBAEwbWF5YmVfY29uZmlnAQUBXE9wdGlvbjxNaWdyYXRpb25MaW1pdHM+AAAMgENvbnRyb2wgdGhlIGF1dG9tYXRpYyBtaWdyYXRpb24uAA0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBbYENvbmZpZzo6Q29udHJvbE9yaWdpbmBdLkBjb250aW51ZV9taWdyYXRlDAEYbGltaXRzBQUBPE1pZ3JhdGlvbkxpbWl0cwABPHJlYWxfc2l6ZV91cHBlcjgBDHUzMgABMHdpdG5lc3NfdGFzawkFAUBNaWdyYXRpb25UYXNrPFQ+AAFUuENvbnRpbnVlIHRoZSBtaWdyYXRpb24gZm9yIHRoZSBnaXZlbiBgbGltaXRzYC4A7FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIGNhbiBiZSBhbnkgc2lnbmVkIGFjY291bnQuAF0BVGhpcyB0cmFuc2FjdGlvbiBoYXMgTk8gTU9ORVRBUlkgSU5DRU5USVZFUy4gY2FsbGluZyBpdCB3aWxsIG5vdCByZXdhcmQgYW55b25lLiBBbGJlaXQs7FVwb24gc3VjY2Vzc2Z1bCBleGVjdXRpb24sIHRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgcmV0dXJuZWQuAEEBVGhlIChwb3RlbnRpYWxseSBvdmVyLWVzdGltYXRlZCkgb2YgdGhlIGJ5dGUgbGVuZ3RoIG9mIGFsbCB0aGUgZGF0YSByZWFkIG11c3QgYmVZAXByb3ZpZGVkIGZvciB1cC1mcm9udCBmZWUtcGF5bWVudCBhbmQgd2VpZ2hpbmcuIEluIGVzc2VuY2UsIHRoZSBjYWxsZXIgaXMgZ3VhcmFudGVlaW5nSQF0aGF0IGV4ZWN1dGluZyB0aGUgY3VycmVudCBgTWlncmF0aW9uVGFza2Agd2l0aCB0aGUgZ2l2ZW4gYGxpbWl0c2Agd2lsbCBub3QgZXhjZWVklGByZWFsX3NpemVfdXBwZXJgIGJ5dGVzIG9mIHJlYWQgZGF0YS4ARQFUaGUgYHdpdG5lc3NfdGFza2AgaXMgbWVyZWx5IGEgaGVscGVyIHRvIHByZXZlbnQgdGhlIGNhbGxlciBmcm9tIGJlaW5nIHNsYXNoZWQgb3JdAWdlbmVyYWxseSB0cmlnZ2VyIGEgbWlncmF0aW9uIHRoYXQgdGhleSBkbyBub3QgaW50ZW5kLiBUaGlzIHBhcmFtZXRlciBpcyBqdXN0IGEgbWVzc2FnZT0BZnJvbSBjYWxsZXIsIHNheWluZyB0aGF0IHRoZXkgYmVsaWV2ZWQgYHdpdG5lc3NfdGFza2Agd2FzIHRoZSBsYXN0IHN0YXRlIG9mIHRoZVkBbWlncmF0aW9uLCBhbmQgdGhleSBvbmx5IHdpc2ggZm9yIHRoZWlyIHRyYW5zYWN0aW9uIHRvIGRvIGFueXRoaW5nLCBpZiB0aGlzIGFzc3VtcHRpb24RAWhvbGRzLiBJbiBjYXNlIGB3aXRuZXNzX3Rhc2tgIGRvZXMgbm90IG1hdGNoLCB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuADkBQmFzZWQgb24gdGhlIGRvY3VtZW50YXRpb24gb2YgW2BNaWdyYXRpb25UYXNrOjptaWdyYXRlX3VudGlsX2V4aGF1c3Rpb25gXSwgdGhlTQFyZWNvbW1lbmRlZCB3YXkgb2YgZG9pbmcgdGhpcyBpcyB0byBwYXNzIGEgYGxpbWl0YCB0aGF0IG9ubHkgYm91bmRzIGBjb3VudGAsIGFzIHRoZZxgc2l6ZWAgbGltaXQgY2FuIGFsd2F5cyBiZSBvdmVyd3JpdHRlbi5IbWlncmF0ZV9jdXN0b21fdG9wCAEQa2V5czQBMFZlYzxWZWM8dTg+PgABMHdpdG5lc3Nfc2l6ZTgBDHUzMgACEAkBTWlncmF0ZSB0aGUgbGlzdCBvZiB0b3Aga2V5cyBieSBpdGVyYXRpbmcgZWFjaCBvZiB0aGVtIG9uZSBieSBvbmUuAFUBVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGdsb2JhbCBtaWdyYXRpb24gcHJvY2VzcyB0cmFja2VyIChbYE1pZ3JhdGlvblByb2Nlc3NgXSksIGFuZPxzaG91bGQgb25seSBiZSB1c2VkIGluIGNhc2UgYW55IGtleXMgYXJlIGxlZnRvdmVyIGR1ZSB0byBhIGJ1Zy5QbWlncmF0ZV9jdXN0b21fY2hpbGQMARByb290GAEcVmVjPHU4PgABKGNoaWxkX2tleXM0ATBWZWM8VmVjPHU4Pj4AASh0b3RhbF9zaXplOAEMdTMyAAMYEQFNaWdyYXRlIHRoZSBsaXN0IG9mIGNoaWxkIGtleXMgYnkgaXRlcmF0aW5nIGVhY2ggb2YgdGhlbSBvbmUgYnkgb25lLgANAUFsbCBvZiB0aGUgZ2l2ZW4gY2hpbGQga2V5cyBtdXN0IGJlIHByZXNlbnQgdW5kZXIgb25lIGBjaGlsZF9yb290YC4AVQFUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBwcm9jZXNzIHRyYWNrZXIgKFtgTWlncmF0aW9uUHJvY2Vzc2BdKSwgYW5k/HNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY2FzZSBhbnkga2V5cyBhcmUgbGVmdG92ZXIgZHVlIHRvIGEgYnVnLlRzZXRfc2lnbmVkX21heF9saW1pdHMEARhsaW1pdHMFBQE8TWlncmF0aW9uTGltaXRzAAQEuFNldCB0aGUgbWF4aW11bSBsaW1pdCBvZiB0aGUgc2lnbmVkIG1pZ3JhdGlvbi5IZm9yY2Vfc2V0X3Byb2dyZXNzCAEwcHJvZ3Jlc3NfdG9wDQUBNFByb2dyZXNzT2Y8VD4AAThwcm9ncmVzc19jaGlsZA0FATRQcm9ncmVzc09mPFQ+AAUkyEZvcmNlZnVsbHkgc2V0IHRoZSBwcm9ncmVzcyB0aGUgcnVubmluZyBtaWdyYXRpb24uAF0BVGhpcyBpcyBvbmx5IHVzZWZ1bCBpbiBvbmUgY2FzZTogdGhlIG5leHQga2V5IHRvIG1pZ3JhdGUgaXMgdG9vIGJpZyB0byBiZSBtaWdyYXRlZCB3aXRoVQFhIHNpZ25lZCBhY2NvdW50LCBpbiBhIHBhcmFjaGFpbiBjb250ZXh0LCBhbmQgd2Ugc2ltcGx5IHdhbnQgdG8gc2tpcCBpdC4gQSByZWFzb25hYmxlYQFleGFtcGxlIG9mIHRoaXMgd291bGQgYmUgYDpjb2RlOmAsIHdoaWNoIGlzIGJvdGggdmVyeSBleHBlbnNpdmUgdG8gbWlncmF0ZSwgYW5kIGNvbW1vbmx5pHVzZWQsIHNvIHByb2JhYmx5IGl0IGlzIGFscmVhZHkgbWlncmF0ZWQuAF0BSW4gY2FzZSB5b3UgbWVzcyB0aGluZ3MgdXAsIHlvdSBjYW4gYWxzbywgaW4gcHJpbmNpcGxlLCB1c2UgdGhpcyB0byByZXNldCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgEFBBhPcHRpb24EBFQBBQUBCBBOb25lAAAAEFNvbWUEAAUFAAABAAAFBQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldDxNaWdyYXRpb25MaW1pdHMAAAgBEHNpemU4AQx1MzIAARBpdGVtOAEMdTMyAAAJBQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldDRNaWdyYXRpb25UYXNrBARUAAAUATBwcm9ncmVzc190b3ANBQE0UHJvZ3Jlc3NPZjxUPgABOHByb2dyZXNzX2NoaWxkDQUBNFByb2dyZXNzT2Y8VD4AARBzaXplOAEMdTMyAAEkdG9wX2l0ZW1zOAEMdTMyAAEsY2hpbGRfaXRlbXM4AQx1MzIAAA0FDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0IFByb2dyZXNzBCRNYXhLZXlMZW4AAQwcVG9TdGFydAAAABxMYXN0S2V5BAARBQFkQm91bmRlZFZlYzx1OCwgTWF4S2V5TGVuPgABACBDb21wbGV0ZQACAAARBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AABUFDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQQQ2FsbAQEVAABaBBqb2luCAEYYW1vdW50VQEBMEJhbGFuY2VPZjxUPgABHHBvb2xfaWQ4ARhQb29sSWQAAEBFAVN0YWtlIGZ1bmRzIHdpdGggYSBwb29sLiBUaGUgYW1vdW50IHRvIGJvbmQgaXMgZGVsZWdhdGVkIChvciB0cmFuc2ZlcnJlZCBiYXNlZCBvbk0BW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZWBdKSBmcm9tIHRoZSBtZW1iZXIgdG8gdGhlIHBvb2wgYWNjb3VudCBhbmQgaW1tZWRpYXRlbHloaW5jcmVhc2VzIHRoZSBwb29sJ3MgYm9uZC4AKQFUaGUgbWV0aG9kIG9mIHRyYW5zZmVycmluZyB0aGUgYW1vdW50IHRvIHRoZSBwb29sIGFjY291bnQgaXMgZGV0ZXJtaW5lZCBieQEBW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZWBdLiBJZiB0aGUgcG9vbCBpcyBjb25maWd1cmVkIHRvIHVzZTEBW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXSwgdGhlIGZ1bmRzIHJlbWFpbiBpbiB0aGUgYWNjb3VudCBvZjEBdGhlIGBvcmlnaW5gLCB3aGlsZSB0aGUgcG9vbCBnYWlucyB0aGUgcmlnaHQgdG8gdXNlIHRoZXNlIGZ1bmRzIGZvciBzdGFraW5nLgAYIyBOb3RlAMwqIEFuIGFjY291bnQgY2FuIG9ubHkgYmUgYSBtZW1iZXIgb2YgYSBzaW5nbGUgcG9vbC7YKiBBbiBhY2NvdW50IGNhbm5vdCBqb2luIHRoZSBzYW1lIHBvb2wgbXVsdGlwbGUgdGltZXMuQQEqIFRoaXMgY2FsbCB3aWxsICpub3QqIGR1c3QgdGhlIG1lbWJlciBhY2NvdW50LCBzbyB0aGUgbWVtYmVyIG11c3QgaGF2ZSBhdCBsZWFzdMggIGBleGlzdGVudGlhbCBkZXBvc2l0ICsgYW1vdW50YCBpbiB0aGVpciBhY2NvdW50LtAqIE9ubHkgYSBwb29sIHdpdGggW2BQb29sU3RhdGU6Ok9wZW5gXSBjYW4gYmUgam9pbmVkKGJvbmRfZXh0cmEEARRleHRyYRkFAVxCb25kRXh0cmE8QmFsYW5jZU9mPFQ+PgABHEUBQm9uZCBgZXh0cmFgIG1vcmUgZnVuZHMgZnJvbSBgb3JpZ2luYCBpbnRvIHRoZSBwb29sIHRvIHdoaWNoIHRoZXkgYWxyZWFkeSBiZWxvbmcuAEkBQWRkaXRpb25hbCBmdW5kcyBjYW4gY29tZSBmcm9tIGVpdGhlciB0aGUgZnJlZSBiYWxhbmNlIG9mIHRoZSBhY2NvdW50LCBvZiBmcm9tIHRoZZxhY2N1bXVsYXRlZCByZXdhcmRzLCBzZWUgW2BCb25kRXh0cmFgXS4APQFCb25kaW5nIGV4dHJhIGZ1bmRzIGltcGxpZXMgYW4gYXV0b21hdGljIHBheW91dCBvZiBhbGwgcGVuZGluZyByZXdhcmRzIGFzIHdlbGwuCQFTZWUgYGJvbmRfZXh0cmFfb3RoZXJgIHRvIGJvbmQgcGVuZGluZyByZXdhcmRzIG9mIGBvdGhlcmAgbWVtYmVycy4wY2xhaW1fcGF5b3V0AAIgVQFBIGJvbmRlZCBtZW1iZXIgY2FuIHVzZSB0aGlzIHRvIGNsYWltIHRoZWlyIHBheW91dCBiYXNlZCBvbiB0aGUgcmV3YXJkcyB0aGF0IHRoZSBwb29sYQFoYXMgYWNjdW11bGF0ZWQgc2luY2UgdGhlaXIgbGFzdCBjbGFpbWVkIHBheW91dCAoT1Igc2luY2Ugam9pbmluZyBpZiB0aGlzIGlzIHRoZWlyIGZpcnN0PQF0aW1lIGNsYWltaW5nIHJld2FyZHMpLiBUaGUgcGF5b3V0IHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIG1lbWJlcidzIGFjY291bnQuAEkBVGhlIG1lbWJlciB3aWxsIGVhcm4gcmV3YXJkcyBwcm8gcmF0YSBiYXNlZCBvbiB0aGUgbWVtYmVycyBzdGFrZSB2cyB0aGUgc3VtIG9mIHRoZdBtZW1iZXJzIGluIHRoZSBwb29scyBzdGFrZS4gUmV3YXJkcyBkbyBub3QgImV4cGlyZSIuAEEBU2VlIGBjbGFpbV9wYXlvdXRfb3RoZXJgIHRvIGNsYWltIHJld2FyZHMgb24gYmVoYWxmIG9mIHNvbWUgYG90aGVyYCBwb29sIG1lbWJlci4YdW5ib25kCAE4bWVtYmVyX2FjY291bnQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQHVuYm9uZGluZ19wb2ludHNVAQEwQmFsYW5jZU9mPFQ+AAN8RQFVbmJvbmQgdXAgdG8gYHVuYm9uZGluZ19wb2ludHNgIG9mIHRoZSBgbWVtYmVyX2FjY291bnRgJ3MgZnVuZHMgZnJvbSB0aGUgcG9vbC4gSXRFAWltcGxpY2l0bHkgY29sbGVjdHMgdGhlIHJld2FyZHMgb25lIGxhc3QgdGltZSwgc2luY2Ugbm90IGRvaW5nIHNvIHdvdWxkIG1lYW4gc29tZWxyZXdhcmRzIHdvdWxkIGJlIGZvcmZlaXRlZC4ATQFVbmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIHRoaXMgY2FsbCBjYW4gYmUgZGlzcGF0Y2hlZCBwZXJtaXNzaW9ubGVzc2x5IChpLmUuIGJ5IGFueSRhY2NvdW50KS4ArCMgQ29uZGl0aW9ucyBmb3IgYSBwZXJtaXNzaW9ubGVzcyBkaXNwYXRjaC4AXQEqIFRoZSBwb29sIGlzIGJsb2NrZWQgYW5kIHRoZSBjYWxsZXIgaXMgZWl0aGVyIHRoZSByb290IG9yIGJvdW5jZXIuIFRoaXMgaXMgcmVmZXJlZWQgdG8wICBhcyBhIGtpY2su9CogVGhlIHBvb2wgaXMgZGVzdHJveWluZyBhbmQgdGhlIG1lbWJlciBpcyBub3QgdGhlIGRlcG9zaXRvci5VASogVGhlIHBvb2wgaXMgZGVzdHJveWluZywgdGhlIG1lbWJlciBpcyB0aGUgZGVwb3NpdG9yIGFuZCBubyBvdGhlciBtZW1iZXJzIGFyZSBpbiB0aGUcICBwb29sLgARASMjIENvbmRpdGlvbnMgZm9yIHBlcm1pc3Npb25lZCBkaXNwYXRjaCAoaS5lLiB0aGUgY2FsbGVyIGlzIGFsc28gdGhlSGBtZW1iZXJfYWNjb3VudGApOgCIKiBUaGUgY2FsbGVyIGlzIG5vdCB0aGUgZGVwb3NpdG9yLlUBKiBUaGUgY2FsbGVyIGlzIHRoZSBkZXBvc2l0b3IsIHRoZSBwb29sIGlzIGRlc3Ryb3lpbmcgYW5kIG5vIG90aGVyIG1lbWJlcnMgYXJlIGluIHRoZRwgIHBvb2wuABgjIE5vdGUAHQFJZiB0aGVyZSBhcmUgdG9vIG1hbnkgdW5sb2NraW5nIGNodW5rcyB0byB1bmJvbmQgd2l0aCB0aGUgcG9vbCBhY2NvdW50LFEBW2BDYWxsOjpwb29sX3dpdGhkcmF3X3VuYm9uZGVkYF0gY2FuIGJlIGNhbGxlZCB0byB0cnkgYW5kIG1pbmltaXplIHVubG9ja2luZyBjaHVua3MuWQFUaGUgW2BTdGFraW5nSW50ZXJmYWNlOjp1bmJvbmRgXSB3aWxsIGltcGxpY2l0bHkgY2FsbCBbYENhbGw6OnBvb2xfd2l0aGRyYXdfdW5ib25kZWRgXVUBdG8gdHJ5IHRvIGZyZWUgY2h1bmtzIGlmIG5lY2Vzc2FyeSAoaWUuIGlmIHVuYm91bmQgd2FzIGNhbGxlZCBhbmQgbm8gdW5sb2NraW5nIGNodW5rc2EBYXJlIGF2YWlsYWJsZSkuIEhvd2V2ZXIsIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gcmVsZWFzZSB0aGUgY3VycmVudCB1bmxvY2tpbmcgY2h1bmtzLF0BaW4gd2hpY2ggY2FzZSwgdGhlIHJlc3VsdCBvZiB0aGlzIGNhbGwgd2lsbCBsaWtlbHkgYmUgdGhlIGBOb01vcmVDaHVua3NgIGVycm9yIGZyb20gdGhlPHN0YWtpbmcgc3lzdGVtLlhwb29sX3dpdGhkcmF3X3VuYm9uZGVkCAEccG9vbF9pZDgBGFBvb2xJZAABSG51bV9zbGFzaGluZ19zcGFuczgBDHUzMgAEGFUBQ2FsbCBgd2l0aGRyYXdfdW5ib25kZWRgIGZvciB0aGUgcG9vbHMgYWNjb3VudC4gVGhpcyBjYWxsIGNhbiBiZSBtYWRlIGJ5IGFueSBhY2NvdW50LgBBAVRoaXMgaXMgdXNlZnVsIGlmIHRoZXJlIGFyZSB0b28gbWFueSB1bmxvY2tpbmcgY2h1bmtzIHRvIGNhbGwgYHVuYm9uZGAsIGFuZCBzb21lYQFjYW4gYmUgY2xlYXJlZCBieSB3aXRoZHJhd2luZy4gSW4gdGhlIGNhc2UgdGhlcmUgYXJlIHRvbyBtYW55IHVubG9ja2luZyBjaHVua3MsIHRoZSB1c2VyUQF3b3VsZCBwcm9iYWJseSBzZWUgYW4gZXJyb3IgbGlrZSBgTm9Nb3JlQ2h1bmtzYCBlbWl0dGVkIGZyb20gdGhlIHN0YWtpbmcgc3lzdGVtIHdoZW5cdGhleSBhdHRlbXB0IHRvIHVuYm9uZC5Ed2l0aGRyYXdfdW5ib25kZWQIAThtZW1iZXJfYWNjb3VudAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAFIbnVtX3NsYXNoaW5nX3NwYW5zOAEMdTMyAAVYVQFXaXRoZHJhdyB1bmJvbmRlZCBmdW5kcyBmcm9tIGBtZW1iZXJfYWNjb3VudGAuIElmIG5vIGJvbmRlZCBmdW5kcyBjYW4gYmUgdW5ib25kZWQsIGFuSGVycm9yIGlzIHJldHVybmVkLgBNAVVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgdGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHkgKGkuZS4gYnkgYW55JGFjY291bnQpLgCoIyBDb25kaXRpb25zIGZvciBhIHBlcm1pc3Npb25sZXNzIGRpc3BhdGNoAAkBKiBUaGUgcG9vbCBpcyBpbiBkZXN0cm95IG1vZGUgYW5kIHRoZSB0YXJnZXQgaXMgbm90IHRoZSBkZXBvc2l0b3IuMQEqIFRoZSB0YXJnZXQgaXMgdGhlIGRlcG9zaXRvciBhbmQgdGhleSBhcmUgdGhlIG9ubHkgbWVtYmVyIGluIHRoZSBzdWIgcG9vbHMuDQEqIFRoZSBwb29sIGlzIGJsb2NrZWQgYW5kIHRoZSBjYWxsZXIgaXMgZWl0aGVyIHRoZSByb290IG9yIGJvdW5jZXIuAJgjIENvbmRpdGlvbnMgZm9yIHBlcm1pc3Npb25lZCBkaXNwYXRjaADoKiBUaGUgY2FsbGVyIGlzIHRoZSB0YXJnZXQgYW5kIHRoZXkgYXJlIG5vdCB0aGUgZGVwb3NpdG9yLgAYIyBOb3RlAPQtIElmIHRoZSB0YXJnZXQgaXMgdGhlIGRlcG9zaXRvciwgdGhlIHBvb2wgd2lsbCBiZSBkZXN0cm95ZWQuYQEtIElmIHRoZSBwb29sIGhhcyBhbnkgcGVuZGluZyBzbGFzaCwgd2UgYWxzbyB0cnkgdG8gc2xhc2ggdGhlIG1lbWJlciBiZWZvcmUgbGV0dGluZyB0aGVtXQF3aXRoZHJhdy4gVGhpcyBjYWxjdWxhdGlvbiBhZGRzIHNvbWUgd2VpZ2h0IG92ZXJoZWFkIGFuZCBpcyBvbmx5IGRlZmVuc2l2ZS4gSW4gcmVhbGl0eSxVAXBvb2wgc2xhc2hlcyBtdXN0IGhhdmUgYmVlbiBhbHJlYWR5IGFwcGxpZWQgdmlhIHBlcm1pc3Npb25sZXNzIFtgQ2FsbDo6YXBwbHlfc2xhc2hgXS4YY3JlYXRlEAEYYW1vdW50VQEBMEJhbGFuY2VPZjxUPgABEHJvb3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJG5vbWluYXRvcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcYm91bmNlcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAZEdENyZWF0ZSBhIG5ldyBkZWxlZ2F0aW9uIHBvb2wuACwjIEFyZ3VtZW50cwBVASogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIGZ1bmRzIHRvIGRlbGVnYXRlIHRvIHRoZSBwb29sLiBUaGlzIGFsc28gYWN0cyBvZiBhIHNvcnQgb2ZNASAgZGVwb3NpdCBzaW5jZSB0aGUgcG9vbHMgY3JlYXRvciBjYW5ub3QgZnVsbHkgdW5ib25kIGZ1bmRzIHVudGlsIHRoZSBwb29sIGlzIGJlaW5nMCAgZGVzdHJveWVkLlEBKiBgaW5kZXhgIC0gQSBkaXNhbWJpZ3VhdGlvbiBpbmRleCBmb3IgY3JlYXRpbmcgdGhlIGFjY291bnQuIExpa2VseSBvbmx5IHVzZWZ1bCB3aGVuwCAgY3JlYXRpbmcgbXVsdGlwbGUgcG9vbHMgaW4gdGhlIHNhbWUgZXh0cmluc2ljLtQqIGByb290YCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyBbYFBvb2xSb2xlczo6cm9vdGBdLg0BKiBgbm9taW5hdG9yYCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyB0aGUgW2BQb29sUm9sZXM6Om5vbWluYXRvcmBdLvwqIGBib3VuY2VyYCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyB0aGUgW2BQb29sUm9sZXM6OmJvdW5jZXJgXS4AGCMgTm90ZQBhAUluIGFkZGl0aW9uIHRvIGBhbW91bnRgLCB0aGUgY2FsbGVyIHdpbGwgdHJhbnNmZXIgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQ7IHNvIHRoZSBjYWxsZXINAW5lZWRzIGF0IGhhdmUgYXQgbGVhc3QgYGFtb3VudCArIGV4aXN0ZW50aWFsX2RlcG9zaXRgIHRyYW5zZmVyYWJsZS5MY3JlYXRlX3dpdGhfcG9vbF9pZBQBGGFtb3VudFUBATBCYWxhbmNlT2Y8VD4AARByb290AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRub21pbmF0b3IAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGJvdW5jZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHHBvb2xfaWQ4ARhQb29sSWQABxjsQ3JlYXRlIGEgbmV3IGRlbGVnYXRpb24gcG9vbCB3aXRoIGEgcHJldmlvdXNseSB1c2VkIHBvb2wgaWQALCMgQXJndW1lbnRzAJhzYW1lIGFzIGBjcmVhdGVgIHdpdGggdGhlIGluY2x1c2lvbiBvZngqIGBwb29sX2lkYCAtIGBBIHZhbGlkIFBvb2xJZC4gbm9taW5hdGUIARxwb29sX2lkOAEYUG9vbElkAAEodmFsaWRhdG9yc2EBAURWZWM8VDo6QWNjb3VudElkPgAIMHxOb21pbmF0ZSBvbiBiZWhhbGYgb2YgdGhlIHBvb2wuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIHBvb2wgbm9taW5hdG9yIG9yIHRoZSBwb29sKHJvb3Qgcm9sZS4ARQFUaGlzIGRpcmVjdGx5IGZvcndhcmRzIHRoZSBjYWxsIHRvIGFuIGltcGxlbWVudGF0aW9uIG9mIGBTdGFraW5nSW50ZXJmYWNlYCAoZS5nLixFAWBwYWxsZXQtc3Rha2luZ2ApIHRocm91Z2ggW2BDb25maWc6OlN0YWtlQWRhcHRlcmBdLCBvbiBiZWhhbGYgb2YgdGhlIGJvbmRlZCBwb29sLgAYIyBOb3RlAFkBSW4gYWRkaXRpb24gdG8gYSBgcm9vdGAgb3IgYG5vbWluYXRvcmAgcm9sZSBvZiBgb3JpZ2luYCwgdGhlIHBvb2wncyBkZXBvc2l0b3IgbmVlZHMgdG8NAWhhdmUgYXQgbGVhc3QgYGRlcG9zaXRvcl9taW5fYm9uZGAgaW4gdGhlIHBvb2wgdG8gc3RhcnQgbm9taW5hdGluZy4kc2V0X3N0YXRlCAEccG9vbF9pZDgBGFBvb2xJZAABFHN0YXRlHQUBJFBvb2xTdGF0ZQAJKHRTZXQgYSBuZXcgc3RhdGUgZm9yIHRoZSBwb29sLgBVAUlmIGEgcG9vbCBpcyBhbHJlYWR5IGluIHRoZSBgRGVzdHJveWluZ2Agc3RhdGUsIHRoZW4gdW5kZXIgbm8gY29uZGl0aW9uIGNhbiBpdHMgc3RhdGU0Y2hhbmdlIGFnYWluLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBlaXRoZXI6ANwxLiBzaWduZWQgYnkgdGhlIGJvdW5jZXIsIG9yIHRoZSByb290IHJvbGUgb2YgdGhlIHBvb2wsXQEyLiBpZiB0aGUgcG9vbCBjb25kaXRpb25zIHRvIGJlIG9wZW4gYXJlIE5PVCBtZXQgKGFzIGRlc2NyaWJlZCBieSBgb2tfdG9fYmVfb3BlbmApLCBhbmQ5ASAgIHRoZW4gdGhlIHN0YXRlIG9mIHRoZSBwb29sIGNhbiBiZSBwZXJtaXNzaW9ubGVzc2x5IGNoYW5nZWQgdG8gYERlc3Ryb3lpbmdgLjBzZXRfbWV0YWRhdGEIARxwb29sX2lkOAEYUG9vbElkAAEgbWV0YWRhdGEYARxWZWM8dTg+AAoQgFNldCBhIG5ldyBtZXRhZGF0YSBmb3IgdGhlIHBvb2wuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIGJvdW5jZXIsIG9yIHRoZSByb290IHJvbGUgb2YgdGhlFHBvb2wuLHNldF9jb25maWdzGAE0bWluX2pvaW5fYm9uZCEFAVhDb25maWdPcDxCYWxhbmNlT2Y8VD4+AAE8bWluX2NyZWF0ZV9ib25kIQUBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AASRtYXhfcG9vbHMlBQE0Q29uZmlnT3A8dTMyPgABLG1heF9tZW1iZXJzJQUBNENvbmZpZ09wPHUzMj4AAVBtYXhfbWVtYmVyc19wZXJfcG9vbCUFATRDb25maWdPcDx1MzI+AAFUZ2xvYmFsX21heF9jb21taXNzaW9uKQUBRENvbmZpZ09wPFBlcmJpbGw+AAssQQFVcGRhdGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBub21pbmF0aW9uIHBvb2xzLiBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZWBbYENvbmZpZzo6QWRtaW5PcmlnaW5gXS4ALCMgQXJndW1lbnRzAKAqIGBtaW5fam9pbl9ib25kYCAtIFNldCBbYE1pbkpvaW5Cb25kYF0usCogYG1pbl9jcmVhdGVfYm9uZGAgLSBTZXQgW2BNaW5DcmVhdGVCb25kYF0uhCogYG1heF9wb29sc2AgLSBTZXQgW2BNYXhQb29sc2BdLqQqIGBtYXhfbWVtYmVyc2AgLSBTZXQgW2BNYXhQb29sTWVtYmVyc2BdLuQqIGBtYXhfbWVtYmVyc19wZXJfcG9vbGAgLSBTZXQgW2BNYXhQb29sTWVtYmVyc1BlclBvb2xgXS7gKiBgZ2xvYmFsX21heF9jb21taXNzaW9uYCAtIFNldCBbYEdsb2JhbE1heENvbW1pc3Npb25gXS4wdXBkYXRlX3JvbGVzEAEccG9vbF9pZDgBGFBvb2xJZAABIG5ld19yb290MQUBWENvbmZpZ09wPFQ6OkFjY291bnRJZD4AATRuZXdfbm9taW5hdG9yMQUBWENvbmZpZ09wPFQ6OkFjY291bnRJZD4AASxuZXdfYm91bmNlcjEFAVhDb25maWdPcDxUOjpBY2NvdW50SWQ+AAwcdFVwZGF0ZSB0aGUgcm9sZXMgb2YgdGhlIHBvb2wuAD0BVGhlIHJvb3QgaXMgdGhlIG9ubHkgZW50aXR5IHRoYXQgY2FuIGNoYW5nZSBhbnkgb2YgdGhlIHJvbGVzLCBpbmNsdWRpbmcgaXRzZWxmLLhleGNsdWRpbmcgdGhlIGRlcG9zaXRvciwgd2hvIGNhbiBuZXZlciBjaGFuZ2UuAFEBSXQgZW1pdHMgYW4gZXZlbnQsIG5vdGlmeWluZyBVSXMgb2YgdGhlIHJvbGUgY2hhbmdlLiBUaGlzIGV2ZW50IGlzIHF1aXRlIHJlbGV2YW50IHRvHQFtb3N0IHBvb2wgbWVtYmVycyBhbmQgdGhleSBzaG91bGQgYmUgaW5mb3JtZWQgb2YgY2hhbmdlcyB0byBwb29sIHJvbGVzLhRjaGlsbAQBHHBvb2xfaWQ4ARhQb29sSWQADURwQ2hpbGwgb24gYmVoYWxmIG9mIHRoZSBwb29sLgBBAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIGNhbiBiZSBzaWduZWQgYnkgdGhlIHBvb2wgbm9taW5hdG9yIG9yIHRoZSBwb29soHJvb3Qgcm9sZSwgc2FtZSBhcyBbYFBhbGxldDo6bm9taW5hdGVgXS4ARQFUaGlzIGRpcmVjdGx5IGZvcndhcmRzIHRoZSBjYWxsIHRvIGFuIGltcGxlbWVudGF0aW9uIG9mIGBTdGFraW5nSW50ZXJmYWNlYCAoZS5nLixFAWBwYWxsZXQtc3Rha2luZ2ApIHRocm91Z2ggW2BDb25maWc6OlN0YWtlQWRhcHRlcmBdLCBvbiBiZWhhbGYgb2YgdGhlIGJvbmRlZCBwb29sLgBNAVVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgdGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHkgKGkuZS4gYnkgYW55JGFjY291bnQpLgCsIyBDb25kaXRpb25zIGZvciBhIHBlcm1pc3Npb25sZXNzIGRpc3BhdGNoOlUBKiBXaGVuIHBvb2wgZGVwb3NpdG9yIGhhcyBsZXNzIHRoYW4gYE1pbk5vbWluYXRvckJvbmRgIHN0YWtlZCwgb3RoZXJ3aXNlIHBvb2wgbWVtYmVyc1wgIGFyZSB1bmFibGUgdG8gdW5ib25kLgCcIyBDb25kaXRpb25zIGZvciBwZXJtaXNzaW9uZWQgZGlzcGF0Y2g6tCogVGhlIGNhbGxlciBpcyB0aGUgcG9vbCdzIG5vbWluYXRvciBvciByb290LkBib25kX2V4dHJhX290aGVyCAEYbWVtYmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRleHRyYRkFAVxCb25kRXh0cmE8QmFsYW5jZU9mPFQ+PgAOJFUBYG9yaWdpbmAgYm9uZHMgZnVuZHMgZnJvbSBgZXh0cmFgIGZvciBzb21lIHBvb2wgbWVtYmVyIGBtZW1iZXJgIGludG8gdGhlaXIgcmVzcGVjdGl2ZRhwb29scy4ASQFgb3JpZ2luYCBjYW4gYm9uZCBleHRyYSBmdW5kcyBmcm9tIGZyZWUgYmFsYW5jZSBvciBwZW5kaW5nIHJld2FyZHMgd2hlbiBgb3JpZ2luID09HG90aGVyYC4ARQFJbiB0aGUgY2FzZSBvZiBgb3JpZ2luICE9IG90aGVyYCwgYG9yaWdpbmAgY2FuIG9ubHkgYm9uZCBleHRyYSBwZW5kaW5nIHJld2FyZHMgb2YVAWBvdGhlcmAgbWVtYmVycyBhc3N1bWluZyBzZXRfY2xhaW1fcGVybWlzc2lvbiBmb3IgdGhlIGdpdmVuIG1lbWJlciBpc8BgUGVybWlzc2lvbmxlc3NDb21wb3VuZGAgb3IgYFBlcm1pc3Npb25sZXNzQWxsYC5Qc2V0X2NsYWltX3Blcm1pc3Npb24EAShwZXJtaXNzaW9uNQUBPENsYWltUGVybWlzc2lvbgAPHEkBQWxsb3dzIGEgcG9vbCBtZW1iZXIgdG8gc2V0IGEgY2xhaW0gcGVybWlzc2lvbiB0byBhbGxvdyBvciBkaXNhbGxvdyBwZXJtaXNzaW9ubGVzc2Bib25kaW5nIGFuZCB3aXRoZHJhd2luZy4ALCMgQXJndW1lbnRzAHgqIGBvcmlnaW5gIC0gTWVtYmVyIG9mIGEgcG9vbC64KiBgcGVybWlzc2lvbmAgLSBUaGUgcGVybWlzc2lvbiB0byBiZSBhcHBsaWVkLkhjbGFpbV9wYXlvdXRfb3RoZXIEARRvdGhlcgQBMFQ6OkFjY291bnRJZAAQEAEBYG9yaWdpbmAgY2FuIGNsYWltIHBheW91dHMgb24gc29tZSBwb29sIG1lbWJlciBgb3RoZXJgJ3MgYmVoYWxmLgBVAVBvb2wgbWVtYmVyIGBvdGhlcmAgbXVzdCBoYXZlIGEgYFBlcm1pc3Npb25sZXNzV2l0aGRyYXdgIG9yIGBQZXJtaXNzaW9ubGVzc0FsbGAgY2xhaW2ocGVybWlzc2lvbiBmb3IgdGhpcyBjYWxsIHRvIGJlIHN1Y2Nlc3NmdWwuOHNldF9jb21taXNzaW9uCAEccG9vbF9pZDgBGFBvb2xJZAABOG5ld19jb21taXNzaW9uOQUBfE9wdGlvbjwoUGVyYmlsbCwgVDo6QWNjb3VudElkKT4AERR0U2V0IHRoZSBjb21taXNzaW9uIG9mIGEgcG9vbC5VAUJvdGggYSBjb21taXNzaW9uIHBlcmNlbnRhZ2UgYW5kIGEgY29tbWlzc2lvbiBwYXllZSBtdXN0IGJlIHByb3ZpZGVkIGluIHRoZSBgY3VycmVudGBdAXR1cGxlLiBXaGVyZSBhIGBjdXJyZW50YCBvZiBgTm9uZWAgaXMgcHJvdmlkZWQsIGFueSBjdXJyZW50IGNvbW1pc3Npb24gd2lsbCBiZSByZW1vdmVkLgBNAS0gSWYgYSBgTm9uZWAgaXMgc3VwcGxpZWQgdG8gYG5ld19jb21taXNzaW9uYCwgZXhpc3RpbmcgY29tbWlzc2lvbiB3aWxsIGJlIHJlbW92ZWQuSHNldF9jb21taXNzaW9uX21heAgBHHBvb2xfaWQ4ARhQb29sSWQAAThtYXhfY29tbWlzc2lvbi0FARxQZXJiaWxsABIUlFNldCB0aGUgbWF4aW11bSBjb21taXNzaW9uIG9mIGEgcG9vbC4AOQEtIEluaXRpYWwgbWF4IGNhbiBiZSBzZXQgdG8gYW55IGBQZXJiaWxsYCwgYW5kIG9ubHkgc21hbGxlciB2YWx1ZXMgdGhlcmVhZnRlci41AS0gQ3VycmVudCBjb21taXNzaW9uIHdpbGwgYmUgbG93ZXJlZCBpbiB0aGUgZXZlbnQgaXQgaXMgaGlnaGVyIHRoYW4gYSBuZXcgbWF4NCAgY29tbWlzc2lvbi5oc2V0X2NvbW1pc3Npb25fY2hhbmdlX3JhdGUIARxwb29sX2lkOAEYUG9vbElkAAEsY2hhbmdlX3JhdGVBBQGcQ29tbWlzc2lvbkNoYW5nZVJhdGU8QmxvY2tOdW1iZXJGb3I8VD4+ABMQqFNldCB0aGUgY29tbWlzc2lvbiBjaGFuZ2UgcmF0ZSBmb3IgYSBwb29sLgA9AUluaXRpYWwgY2hhbmdlIHJhdGUgaXMgbm90IGJvdW5kZWQsIHdoZXJlYXMgc3Vic2VxdWVudCB1cGRhdGVzIGNhbiBvbmx5IGJlIG1vcmV0cmVzdHJpY3RpdmUgdGhhbiB0aGUgY3VycmVudC5AY2xhaW1fY29tbWlzc2lvbgQBHHBvb2xfaWQ4ARhQb29sSWQAFEBkQ2xhaW0gcGVuZGluZyBjb21taXNzaW9uLgA9AVRoZSBgcm9vdGAgcm9sZSBvZiB0aGUgcG9vbCBpcyBfYWx3YXlzXyBhbGxvd2VkIHRvIGNsYWltIHRoZSBwb29sJ3MgY29tbWlzc2lvbi4AVQFJZiB0aGUgcG9vbCBoYXMgc2V0IGBDb21taXNzaW9uQ2xhaW1QZXJtaXNzaW9uOjpQZXJtaXNzaW9ubGVzc2AsIHRoZW4gYW55IGFjY291bnQgY2Fu2HRyaWdnZXIgdGhlIHByb2Nlc3Mgb2YgY2xhaW1pbmcgdGhlIHBvb2wncyBjb21taXNzaW9uLgBBAUlmIHRoZSBwb29sIGhhcyBzZXQgaXRzIGBDb21taXNzaW9uQ2xhaW1QZXJtaXNzaW9uYCB0byBgQWNjb3VudChhY2MpYCwgdGhlbiBvbmx5IGFjY291bnRzMCogYGFjY2AsIGFuZGQqIHRoZSBwb29sJ3Mgcm9vdCBhY2NvdW50ALhtYXkgY2FsbCB0aGlzIGV4dHJpbnNpYyBvbiBiZWhhbGYgb2YgdGhlIHBvb2wuAC0BUGVuZGluZyBjb21taXNzaW9ucyBhcmUgcGFpZCBvdXQgYW5kIGFkZGVkIHRvIHRoZSB0b3RhbCBjbGFpbWVkIGNvbW1pc3Npb24uuFRoZSB0b3RhbCBwZW5kaW5nIGNvbW1pc3Npb24gaXMgcmVzZXQgdG8gemVyby5MYWRqdXN0X3Bvb2xfZGVwb3NpdAQBHHBvb2xfaWQ4ARhQb29sSWQAFRzsVG9wIHVwIHRoZSBkZWZpY2l0IG9yIHdpdGhkcmF3IHRoZSBleGNlc3MgRUQgZnJvbSB0aGUgcG9vbC4AUQFXaGVuIGEgcG9vbCBpcyBjcmVhdGVkLCB0aGUgcG9vbCBkZXBvc2l0b3IgdHJhbnNmZXJzIEVEIHRvIHRoZSByZXdhcmQgYWNjb3VudCBvZiB0aGVVAXBvb2wuIEVEIGlzIHN1YmplY3QgdG8gY2hhbmdlIGFuZCBvdmVyIHRpbWUsIHRoZSBkZXBvc2l0IGluIHRoZSByZXdhcmQgYWNjb3VudCBtYXkgYmVRAWluc3VmZmljaWVudCB0byBjb3ZlciB0aGUgRUQgZGVmaWNpdCBvZiB0aGUgcG9vbCBvciB2aWNlLXZlcnNhIHdoZXJlIHRoZXJlIGlzIGV4Y2VzczEBZGVwb3NpdCB0byB0aGUgcG9vbC4gVGhpcyBjYWxsIGFsbG93cyBhbnlvbmUgdG8gYWRqdXN0IHRoZSBFRCBkZXBvc2l0IG9mIHRoZfRwb29sIGJ5IGVpdGhlciB0b3BwaW5nIHVwIHRoZSBkZWZpY2l0IG9yIGNsYWltaW5nIHRoZSBleGNlc3MufHNldF9jb21taXNzaW9uX2NsYWltX3Blcm1pc3Npb24IARxwb29sX2lkOAEYUG9vbElkAAEocGVybWlzc2lvbkUFAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAWEMxTZXQgb3IgcmVtb3ZlIGEgcG9vbCdzIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbi4AYQFEZXRlcm1pbmVzIHdobyBjYW4gY2xhaW0gdGhlIHBvb2wncyBwZW5kaW5nIGNvbW1pc3Npb24uIE9ubHkgdGhlIGBSb290YCByb2xlIG9mIHRoZSBwb29syGlzIGFibGUgdG8gY29uZmlndXJlIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbnMuLGFwcGx5X3NsYXNoBAE4bWVtYmVyX2FjY291bnQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAXJIhBcHBseSBhIHBlbmRpbmcgc2xhc2ggb24gYSBtZW1iZXIuACUBRmFpbHMgdW5sZXNzIFtgY3JhdGU6OnBhbGxldDo6Q29uZmlnOjpTdGFrZUFkYXB0ZXJgXSBpcyBvZiBzdHJhdGVneSB0eXBlOqRbYGFkYXB0ZXI6OlN0YWtlU3RyYXRlZ3lUeXBlOjpEZWxlZ2F0ZWBdLgBdAVRoZSBwZW5kaW5nIHNsYXNoIGFtb3VudCBvZiB0aGUgbWVtYmVyIG11c3QgYmUgZXF1YWwgb3IgbW9yZSB0aGFuIGBFeGlzdGVudGlhbERlcG9zaXRgLlEBVGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHkgKGkuZS4gYnkgYW55IGFjY291bnQpLiBJZiB0aGUgZXhlY3V0aW9uSQFpcyBzdWNjZXNzZnVsLCBmZWUgaXMgcmVmdW5kZWQgYW5kIGNhbGxlciBtYXkgYmUgcmV3YXJkZWQgd2l0aCBhIHBhcnQgb2YgdGhlIHNsYXNoDQFiYXNlZCBvbiB0aGUgW2BjcmF0ZTo6cGFsbGV0OjpDb25maWc6OlN0YWtlQWRhcHRlcmBdIGNvbmZpZ3VyYXRpb24uSG1pZ3JhdGVfZGVsZWdhdGlvbgQBOG1lbWJlcl9hY2NvdW50AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AGCQdAU1pZ3JhdGVzIGRlbGVnYXRlZCBmdW5kcyBmcm9tIHRoZSBwb29sIGFjY291bnQgdG8gdGhlIGBtZW1iZXJfYWNjb3VudGAuACUBRmFpbHMgdW5sZXNzIFtgY3JhdGU6OnBhbGxldDo6Q29uZmlnOjpTdGFrZUFkYXB0ZXJgXSBpcyBvZiBzdHJhdGVneSB0eXBlOqRbYGFkYXB0ZXI6OlN0YWtlU3RyYXRlZ3lUeXBlOjpEZWxlZ2F0ZWBdLgApAVRoaXMgaXMgYSBwZXJtaXNzaW9uLWxlc3MgY2FsbCBhbmQgcmVmdW5kcyBhbnkgZmVlIGlmIGNsYWltIGlzIHN1Y2Nlc3NmdWwuAF0BSWYgdGhlIHBvb2wgaGFzIG1pZ3JhdGVkIHRvIGRlbGVnYXRpb24gYmFzZWQgc3Rha2luZywgdGhlIHN0YWtlZCB0b2tlbnMgb2YgcG9vbCBtZW1iZXJzKQFjYW4gYmUgbW92ZWQgYW5kIGhlbGQgaW4gdGhlaXIgb3duIGFjY291bnQuIFNlZSBbYGFkYXB0ZXI6OkRlbGVnYXRlU3Rha2VgXXhtaWdyYXRlX3Bvb2xfdG9fZGVsZWdhdGVfc3Rha2UEARxwb29sX2lkOAEYUG9vbElkABkk9E1pZ3JhdGUgcG9vbCBmcm9tIFtgYWRhcHRlcjo6U3Rha2VTdHJhdGVneVR5cGU6OlRyYW5zZmVyYF0gdG+kW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXS4AJQFGYWlscyB1bmxlc3MgW2BjcmF0ZTo6cGFsbGV0OjpDb25maWc6OlN0YWtlQWRhcHRlcmBdIGlzIG9mIHN0cmF0ZWd5IHR5cGU6pFtgYWRhcHRlcjo6U3Rha2VTdHJhdGVneVR5cGU6OkRlbGVnYXRlYF0uAEEBVGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHksIGFuZCByZWZ1bmRzIGFueSBmZWUgaWYgc3VjY2Vzc2Z1bC4ASQFJZiB0aGUgcG9vbCBoYXMgYWxyZWFkeSBtaWdyYXRlZCB0byBkZWxlZ2F0aW9uIGJhc2VkIHN0YWtpbmcsIHRoaXMgY2FsbCB3aWxsIGZhaWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhkFCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyRCb25kRXh0cmEEHEJhbGFuY2UBWQEBCCxGcmVlQmFsYW5jZQQAWQEBHEJhbGFuY2UAAAAcUmV3YXJkcwABAAAdBQhccGFsbGV0X25vbWluYXRpb25fcG9vbHMkUG9vbFN0YXRlAAEMEE9wZW4AAAAcQmxvY2tlZAABAChEZXN0cm95aW5nAAIAACEFCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBDb25maWdPcAQEVAFZAQEMEE5vb3AAAAAMU2V0BABZAQEEVAABABhSZW1vdmUAAgAAJQUIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzIENvbmZpZ09wBARUATgBDBBOb29wAAAADFNldAQAOAEEVAABABhSZW1vdmUAAgAAKQUIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzIENvbmZpZ09wBARUAS0FAQwQTm9vcAAAAAxTZXQEAC0FAQRUAAEAGFJlbW92ZQACAAAtBQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAOAEMdTMyAAAxBQhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgQ29uZmlnT3AEBFQBBAEMEE5vb3AAAAAMU2V0BAAEAQRUAAEAGFJlbW92ZQACAAA1BQhccGFsbGV0X25vbWluYXRpb25fcG9vbHM8Q2xhaW1QZXJtaXNzaW9uAAEQMFBlcm1pc3Npb25lZAAAAFhQZXJtaXNzaW9ubGVzc0NvbXBvdW5kAAEAWFBlcm1pc3Npb25sZXNzV2l0aGRyYXcAAgBEUGVybWlzc2lvbmxlc3NBbGwAAwAAOQUEGE9wdGlvbgQEVAE9BQEIEE5vbmUAAAAQU29tZQQAPQUAAAEAAD0FAAAECC0FBABBBQhccGFsbGV0X25vbWluYXRpb25fcG9vbHNQQ29tbWlzc2lvbkNoYW5nZVJhdGUELEJsb2NrTnVtYmVyATgACAEwbWF4X2luY3JlYXNlLQUBHFBlcmJpbGwAASRtaW5fZGVsYXk4ASxCbG9ja051bWJlcgAARQUEGE9wdGlvbgQEVAFJBQEIEE5vbmUAAAAQU29tZQQASQUAAAEAAEkFCFxwYWxsZXRfbm9taW5hdGlvbl9wb29sc2RDb21taXNzaW9uQ2xhaW1QZXJtaXNzaW9uBCRBY2NvdW50SWQBBAEIOFBlcm1pc3Npb25sZXNzAAAAHEFjY291bnQEAAQBJEFjY291bnRJZAABAABNBQxAcGFsbGV0X2JhZ3NfbGlzdBhwYWxsZXQQQ2FsbAgEVAAESQABDBRyZWJhZwQBKGRpc2xvY2F0ZWQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAKFkBRGVjbGFyZSB0aGF0IHNvbWUgYGRpc2xvY2F0ZWRgIGFjY291bnQgaGFzLCB0aHJvdWdoIHJld2FyZHMgb3IgcGVuYWx0aWVzLCBzdWZmaWNpZW50bHlRAWNoYW5nZWQgaXRzIHNjb3JlIHRoYXQgaXQgc2hvdWxkIHByb3Blcmx5IGZhbGwgaW50byBhIGRpZmZlcmVudCBiYWcgdGhhbiBpdHMgY3VycmVudBBvbmUuAB0BQW55b25lIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gYWJvdXQgYW55IHBvdGVudGlhbGx5IGRpc2xvY2F0ZWQgYWNjb3VudC4ASQFXaWxsIGFsd2F5cyB1cGRhdGUgdGhlIHN0b3JlZCBzY29yZSBvZiBgZGlzbG9jYXRlZGAgdG8gdGhlIGNvcnJlY3Qgc2NvcmUsIGJhc2VkIG9uQGBTY29yZVByb3ZpZGVyYC4A1ElmIGBkaXNsb2NhdGVkYCBkb2VzIG5vdCBleGlzdHMsIGl0IHJldHVybnMgYW4gZXJyb3IuPHB1dF9pbl9mcm9udF9vZgQBHGxpZ2h0ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKNBNb3ZlIHRoZSBjYWxsZXIncyBJZCBkaXJlY3RseSBpbiBmcm9udCBvZiBgbGlnaHRlcmAuAFkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgSWQgb2Y1AXRoZSBhY2NvdW50IGdvaW5nIGluIGZyb250IG9mIGBsaWdodGVyYC4gRmVlIGlzIHBheWVkIGJ5IHRoZSBvcmlnaW4gdW5kZXIgYWxsOGNpcmN1bXN0YW5jZXMuADhPbmx5IHdvcmtzIGlmOgCULSBib3RoIG5vZGVzIGFyZSB3aXRoaW4gdGhlIHNhbWUgYmFnLNAtIGFuZCBgb3JpZ2luYCBoYXMgYSBncmVhdGVyIGBTY29yZWAgdGhhbiBgbGlnaHRlcmAuVHB1dF9pbl9mcm9udF9vZl9vdGhlcggBHGhlYXZpZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGxpZ2h0ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgACDBEBU2FtZSBhcyBbYFBhbGxldDo6cHV0X2luX2Zyb250X29mYF0sIGJ1dCBpdCBjYW4gYmUgY2FsbGVkIGJ5IGFueW9uZS4AyEZlZSBpcyBwYWlkIGJ5IHRoZSBvcmlnaW4gdW5kZXIgYWxsIGNpcmN1bXN0YW5jZXMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlEFDHhwYWxsZXRfc3Rha2luZ19hc3luY19yY19jbGllbnQYcGFsbGV0EENhbGwEBFQAARBQcmVsYXlfc2Vzc2lvbl9yZXBvcnQEARhyZXBvcnRVBQFsU2Vzc2lvblJlcG9ydDxUOjpBY2NvdW50SWQ+AAAEBQFDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIHN0YXJ0IG9mIGEgbmV3IHNlc3Npb24gb24gdGhlIHJlbGF5IGNoYWluLlxyZWxheV9uZXdfb2ZmZW5jZV9wYWdlZAQBIG9mZmVuY2VzaQUBqFZlYzwoU2Vzc2lvbkluZGV4LCBPZmZlbmNlPFQ6OkFjY291bnRJZD4pPgABACBzZXRfa2V5cwwBEGtleXMYARxWZWM8dTg+AAEUcHJvb2YYARxWZWM8dTg+AAGUbWF4X2RlbGl2ZXJ5X2FuZF9yZW1vdGVfZXhlY3V0aW9uX2ZlZTEEAVBPcHRpb248QmFsYW5jZU9mPFQ+PgAKhFUBU2V0IHNlc3Npb24ga2V5cyBmb3IgYSB2YWxpZGF0b3IuIEtleXMgYXJlIHZhbGlkYXRlZCBvbiBBc3NldEh1YiBhbmQgZm9yd2FyZGVkIHRvIFJDLgBVAU9uIHRoZSBmaXJzdCBjYWxsLCBhIGRlcG9zaXQgb2YgYEtleURlcG9zaXRgIGlzIGhlbGQgZnJvbSB0aGUgc3Rhc2guIFN1YnNlcXVlbnQgY2FsbHP0ZG8gbm90IGNoYXJnZSBhZ2Fpbi4gVGhlIGRlcG9zaXQgaXMgcmVsZWFzZWQgb24gYHB1cmdlX2tleXNgLgBsKipWYWxpZGF0aW9uIG9uIEFzc2V0SHViOioqTQEtIEtleXMgYXJlIGRlY29kZWQgYXMgYFQ6OlJlbGF5Q2hhaW5TZXNzaW9uS2V5c2AgdG8gZW5zdXJlIHRoZXkgbWF0Y2ggUkMncyBleHBlY3RlZCQgIGZvcm1hdC4AQQFJZiB2YWxpZGF0aW9uIHBhc3Nlcywgb25seSB0aGUgdmFsaWRhdGVkIGtleXMgYXJlIHNlbnQgdG8gUkMgKHdpdGggZW1wdHkgcHJvb2YpLIBzaW5jZSBSQyB0cnVzdHMgQUgncyB2YWxpZGF0aW9uLgA1AU5vdGU6IE93bmVyc2hpcCBwcm9vZiB2YWxpZGF0aW9uIHJlcXVpcmVzIFBSICMxNzM5IHdoaWNoIGlzIG5vdCBiYWNrcG9ydGVkIHRvJQFzdGFibGUyNTEyLiBUaGUgcHJvb2YgcGFyYW1ldGVyIHdpbGwgYmUgYWRkZWQgd2hlbiB0aGF0IFBSIGlzIGJhY2twb3J0ZWQuACQqKkZlZXM6KipVAVRoZSBhY3R1YWwgY29zdCBvZiB0aGlzIGNhbGwgaXMgaGlnaGVyIHRoYW4gd2hhdCB0aGUgd2VpZ2h0LWJhc2VkIGZlZSBlc3RpbWF0ZSBzaG93cy5RAUluIGFkZGl0aW9uIHRvIHRoZSBsb2NhbCB0cmFuc2FjdGlvbiB3ZWlnaHQgZmVlLCB0aGUgc3Rhc2ggYWNjb3VudCBpcyBjaGFyZ2VkIGFuIFhDTUkBZmVlIChkZWxpdmVyeSArIFJDIGV4ZWN1dGlvbiBjb3N0KSB2aWEgYFhjbUV4ZWN1dG9yOjpjaGFyZ2VfZmVlc2AuIFRoZSByZWxheSBjaGFpbj0BdXNlcyBgVW5wYWlkRXhlY3V0aW9uYCwgc28gdGhlIGZ1bGwgcmVtb3RlIGNvc3QgaXMgY2hhcmdlZCB1cGZyb250IG9uIEFzc2V0SHViLgAtAVdoZW4gY2FsbGVkIHZpYSBhIHN0YWtpbmcgcHJveHksIHRoZSBwcm94eSBwYXlzIHRoZSB0cmFuc2FjdGlvbiB3ZWlnaHQgZmVlLNh3aGlsZSB0aGUgc3Rhc2ggKGRlbGVnYXRpbmcgYWNjb3VudCkgcGF5cyB0aGUgWENNIGZlZS4ASCoqTWF4IEZlZSBMaW1pdDoqKkUBVXNlcnMgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBgbWF4X2RlbGl2ZXJ5X2FuZF9yZW1vdGVfZXhlY3V0aW9uX2ZlZWAgdG8gbGltaXQgdGhlXQFkZWxpdmVyeSArIFJDIGV4ZWN1dGlvbiBmZWUuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSB0aGUgbG9jYWwgdHJhbnNhY3Rpb24gd2VpZ2h0IGZlZS4gSWZdAXRoZSBmZWUgZXhjZWVkcyB0aGlzIGxpbWl0LCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggYEZlZXNFeGNlZWRlZE1heGAuIFBhc3MgYE5vbmVgIGZvckx1bmxpbWl0ZWQgKG5vIGNhcCkuAFkBTk9URTogdW5saWtlIHRoZSBjdXJyZW50IGZsb3cgZm9yIG5ldyB2YWxpZGF0b3JzIG9uIFJDIChib25kIC0+IHNldF9rZXlzIC0+IHZhbGlkYXRlKSxVAXVzZXJzIG9uIEFzc2V0IEh1YiBNVVNUIGNhbGwgYm9uZCBhbmQgdmFsaWRhdGUgQkVGT1JFIGNhbGxpbmcgc2V0X2tleXMuIEF0dGVtcHRpbmcgdG8lAXNldCBrZXlzIGJlZm9yZSBkZWNsYXJpbmcgaW50ZW50IHRvIHZhbGlkYXRlIHdpbGwgZmFpbCB3aXRoIE5vdFZhbGlkYXRvci4ocHVyZ2Vfa2V5cwQBlG1heF9kZWxpdmVyeV9hbmRfcmVtb3RlX2V4ZWN1dGlvbl9mZWUxBAFQT3B0aW9uPEJhbGFuY2VPZjxUPj4AC2gBAVJlbW92ZSBzZXNzaW9uIGtleXMgZm9yIGEgdmFsaWRhdG9yIGFuZCByZWxlYXNlIHRoZSBrZXkgZGVwb3NpdC4AqFRoaXMgcHVyZ2VzIHRoZSBrZXlzIGZyb20gdGhlIFJlbGF5IENoYWluLgBFAVVubGlrZSBgc2V0X2tleXNgLCB0aGlzIGRvZXMgbm90IHJlcXVpcmUgdGhlIGNhbGxlciB0byBiZSBhIHJlZ2lzdGVyZWQgdmFsaWRhdG9yLkkBVGhpcyBpcyBpbnRlbnRpb25hbDogYSB2YWxpZGF0b3Igd2hvIGhhcyBjaGlsbGVkIChzdG9wcGVkIHZhbGlkYXRpbmcpIHNob3VsZCBzdGlsbDkBYmUgYWJsZSB0byBwdXJnZSB0aGVpciBzZXNzaW9uIGtleXMuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIG9yaWdpbmFs8GBwYWxsZXQtc2Vzc2lvbjo6cHVyZ2Vfa2V5c2Agd2hpY2ggYWxsb3dzIGFueW9uZSB0byBjYWxsIGl0LgA5AVRoZSBSZWxheSBDaGFpbiB3aWxsIHJlamVjdCB0aGUgY2FsbCB3aXRoIGBOb0tleXNgIGVycm9yIGlmIHRoZSBhY2NvdW50IGhhcyBubyRrZXlzIHNldC4AJCoqRmVlczoqKlUBVGhlIGFjdHVhbCBjb3N0IG9mIHRoaXMgY2FsbCBpcyBoaWdoZXIgdGhhbiB3aGF0IHRoZSB3ZWlnaHQtYmFzZWQgZmVlIGVzdGltYXRlIHNob3dzLkUBSW4gYWRkaXRpb24gdG8gdGhlIGxvY2FsIHRyYW5zYWN0aW9uIHdlaWdodCBmZWUsIHRoZSBjYWxsZXIgaXMgY2hhcmdlZCBhbiBYQ00gZmVlTQEoZGVsaXZlcnkgKyBSQyBleGVjdXRpb24gY29zdCkgdmlhIGBYY21FeGVjdXRvcjo6Y2hhcmdlX2ZlZXNgLiBUaGUgcmVsYXkgY2hhaW4gdXNlcykBYFVucGFpZEV4ZWN1dGlvbmAsIHNvIHRoZSBmdWxsIHJlbW90ZSBjb3N0IGlzIGNoYXJnZWQgdXBmcm9udCBvbiBBc3NldEh1Yi4ALQFXaGVuIGNhbGxlZCB2aWEgYSBzdGFraW5nIHByb3h5LCB0aGUgcHJveHkgcGF5cyB0aGUgdHJhbnNhY3Rpb24gd2VpZ2h0IGZlZSy4d2hpbGUgdGhlIGRlbGVnYXRpbmcgYWNjb3VudCBwYXlzIHRoZSBYQ00gZmVlLgBIKipNYXggRmVlIExpbWl0OioqRQFVc2VycyBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGBtYXhfZGVsaXZlcnlfYW5kX3JlbW90ZV9leGVjdXRpb25fZmVlYCB0byBsaW1pdCB0aGVdAWRlbGl2ZXJ5ICsgUkMgZXhlY3V0aW9uIGZlZS4gVGhpcyBkb2VzIG5vdCBpbmNsdWRlIHRoZSBsb2NhbCB0cmFuc2FjdGlvbiB3ZWlnaHQgZmVlLiBJZl0BdGhlIGZlZSBleGNlZWRzIHRoaXMgbGltaXQsIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCBgRmVlc0V4Y2VlZGVkTWF4YC4gUGFzcyBgTm9uZWAgZm9yTHVubGltaXRlZCAobm8gY2FwKS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuVQUIeHBhbGxldF9zdGFraW5nX2FzeW5jX3JjX2NsaWVudDRTZXNzaW9uUmVwb3J0BCRBY2NvdW50SWQBBAAQASRlbmRfaW5kZXg4ATBTZXNzaW9uSW5kZXgAAUB2YWxpZGF0b3JfcG9pbnRzWQUBVFZlYzwoQWNjb3VudElkLCB1MzIpPgABUGFjdGl2YXRpb25fdGltZXN0YW1wYQUBSE9wdGlvbjwodTY0LCB1MzIpPgABIGxlZnRvdmVyXQEBEGJvb2wAAFkFAAACXQUAXQUAAAQIBDgAYQUEGE9wdGlvbgQEVAFlBQEIEE5vbmUAAAAQU29tZQQAZQUAAAEAAGUFAAAECCg4AGkFAAACbQUAbQUAAAQIOHEFAHEFCHhwYWxsZXRfc3Rha2luZ19hc3luY19yY19jbGllbnQcT2ZmZW5jZQQkQWNjb3VudElkAQQADAEgb2ZmZW5kZXIEASRBY2NvdW50SWQAASRyZXBvcnRlcnNhAQE4VmVjPEFjY291bnRJZD4AAThzbGFzaF9mcmFjdGlvbi0FARxQZXJiaWxsAAB1BQyQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrGHBhbGxldBBDYWxsBARUAAEIGG1hbmFnZQQBCG9weQUBTE1hbmFnZXJPcGVyYXRpb248VD4AABRMTWFuYWdlIHRoaXMgcGFsbGV0LgDoVGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdLgAJAVNlZSBbYE1hbmFnZXJPcGVyYXRpb25gXSBmb3IgdmFyaW91cyBvcGVyYXRpb25zIHRoYXQgYXJlIHBvc3NpYmxlLhRhZG1pbgQBCG9wgQUBREFkbWluT3BlcmF0aW9uPFQ+AAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnkFCJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2tATWFuYWdlck9wZXJhdGlvbgQEVAABDEBGb3JjZVJvdGF0ZVJvdW5kAAAANEZvcmNlU2V0UGhhc2UEAH0FASBQaGFzZTxUPgABAERFbWVyZ2VuY3lGYWxsYmFjawACAAB9BQyQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrFHR5cGVzFFBoYXNlBARUAAEgDE9mZgAAABhTaWduZWQEADgBREJsb2NrTnVtYmVyRm9yPFQ+AAEAQFNpZ25lZFZhbGlkYXRpb24EADgBREJsb2NrTnVtYmVyRm9yPFQ+AAIAIFVuc2lnbmVkBAA4AURCbG9ja051bWJlckZvcjxUPgADACBTbmFwc2hvdAQAOAEkUGFnZUluZGV4AAQAEERvbmUABQAYRXhwb3J0BAA4ASRQYWdlSW5kZXgABgAkRW1lcmdlbmN5AAcAAIEFCJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2s4QWRtaW5PcGVyYXRpb24EBFQAAQhQRW1lcmdlbmN5U2V0U29sdXRpb24IAIUFAYRCb3g8Qm91bmRlZFN1cHBvcnRzT2Y8UGFsbGV0PFQ+Pj4AAKUFATRFbGVjdGlvblNjb3JlAAAAUFNldE1pblVudHJ1c3RlZFNjb3JlBAClBQE0RWxlY3Rpb25TY29yZQABAACFBQh8ZnJhbWVfZWxlY3Rpb25fcHJvdmlkZXJfc3VwcG9ydDxCb3VuZGVkU3VwcG9ydHMMJEFjY291bnRJZAEEGEJPdXRlcgAYQklubmVyAAAEAIkFAQkBQm91bmRlZFZlYzwoQWNjb3VudElkLCBCb3VuZGVkU3VwcG9ydDxBY2NvdW50SWQsIEJJbm5lcj4pLCBCT3V0ZXI+AACJBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAY0FBFMAAAQAoQUBGFZlYzxUPgAAjQUAAAQIBJEFAJEFCHxmcmFtZV9lbGVjdGlvbl9wcm92aWRlcl9zdXBwb3J0OEJvdW5kZWRTdXBwb3J0CCRBY2NvdW50SWQBBBRCb3VuZAAACAEUdG90YWxZAQE8RXh0ZW5kZWRCYWxhbmNlAAEYdm90ZXJzlQUBvEJvdW5kZWRWZWM8KEFjY291bnRJZCwgRXh0ZW5kZWRCYWxhbmNlKSwgQm91bmQ+AACVBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZkFBFMAAAQAnQUBGFZlYzxUPgAAmQUAAAQIBFkBAJ0FAAACmQUAoQUAAAKNBQClBQhEc3BfbnBvc19lbGVjdGlvbnM0RWxlY3Rpb25TY29yZQAADAE0bWluaW1hbF9zdGFrZVkBATxFeHRlbmRlZEJhbGFuY2UAASRzdW1fc3Rha2VZAQE8RXh0ZW5kZWRCYWxhbmNlAAFEc3VtX3N0YWtlX3NxdWFyZWRZAQE8RXh0ZW5kZWRCYWxhbmNlAACpBRSQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrIHZlcmlmaWVyFGltcGxzGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLq0FEJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sgdW5zaWduZWQYcGFsbGV0EENhbGwEBFQAAQQ8c3VibWl0X3Vuc2lnbmVkBAE4cGFnZWRfc29sdXRpb26xBQGUQm94PFBhZ2VkUmF3U29sdXRpb248VDo6TWluZXJDb25maWc+PgAAPHBTdWJtaXQgYW4gdW5zaWduZWQgc29sdXRpb24uAFUBVGhpcyB3b3JrcyB2ZXJ5IG11Y2ggbGlrZSBhbiBpbmhlcmVudCwgYXMgb25seSB0aGUgdmFsaWRhdG9ycyBhcmUgcGVybWl0dGVkIHRvIHN1Ym1pdFkBYW55dGhpbmcuIEJ5IGRlZmF1bHQgdmFsaWRhdG9ycyB3aWxsIGNvbXB1dGUgdGhpcyBjYWxsIGluIHRoZWlyIGBvZmZjaGFpbl93b3JrZXJgIGhvb2tsYW5kIHRyeSBhbmQgc3VibWl0IGl0IGJhY2suAEUBVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBzaWduZWQgcGFnZSBzdWJtaXNzaW9uIG1haW5seSBpbiB0aGF0IHRoZSBzb2x1dGlvbiBwYWdlIGlzUHZlcmlmaWVkIG9uIHRoZSBmbHkuAD0BVGhlIGBwYWdlZF9zb2x1dGlvbmAgbWF5IGNvbnRhaW4gYXQgbW9zdCBbYENvbmZpZzo6TWluZXJQYWdlc2BdIHBhZ2VzLiBUaGV5IGFyZQ0BaW50ZXJwcmV0ZWQgYXMgbXNwIC0+IGxzcCwgYXMgcGVyIFtgY3JhdGU6OlBhbGxldDo6bXNwX3JhbmdlX2ZvcmBdLgBdAUZvciBleGFtcGxlLCBpZiBgUGFnZXMgPSA0YCwgYW5kIGBNaW5lclBhZ2VzID0gMmAsIG91ciBmdWxsIHNuYXBzaG90IHJhbmdlIHdvdWxkIGJlIFswLFUBMSwgMiwgM10sIHdpdGggMyBiZWluZyBtc3AuIEJ1dCwgaW4gdGhpcyBjYXNlLCB0aGVuIHRoZSBgcGFnZWRfcmF3X3NvbHV0aW9uLnBhZ2VzYCBpc9xleHBlY3RlZCB0byBjb3JyZXNwb25kIHRvIGBbc25hcHNob3QoMiksIHNuYXBzaG90KDMpXWAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrEFDJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sUdHlwZXNAUGFnZWRSYXdTb2x1dGlvbgQEVAAADAE4c29sdXRpb25fcGFnZXO1BQFIVmVjPFNvbHV0aW9uT2Y8VD4+AAEUc2NvcmWlBQE0RWxlY3Rpb25TY29yZQABFHJvdW5kOAEMdTMyAAC1BQAAArkFALkFDFxhc3NldF9odWJfcGFzZW9fcnVudGltZRxzdGFraW5nVE5wb3NDb21wYWN0U29sdXRpb24xNgAAQAEYdm90ZXMxvQUAAAEYdm90ZXMyyQUAAAEYdm90ZXMz3QUAAAEYdm90ZXM06QUAAAEYdm90ZXM19QUAAAEYdm90ZXM2AQYAAAEYdm90ZXM3DQYAAAEYdm90ZXM4GQYAAAEYdm90ZXM5JQYAAAEcdm90ZXMxMDEGAAABHHZvdGVzMTE9BgAAARx2b3RlczEySQYAAAEcdm90ZXMxM1UGAAABHHZvdGVzMTRhBgAAARx2b3RlczE1bQYAAAEcdm90ZXMxNnkGAAAAvQUAAALBBQDBBQAABAhkxQUAxQUAAAbVAwDJBQAAAs0FAM0FAAAEDGTRBcUFANEFAAAECMUF1QUA1QUAAAbZBQDZBQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzGFBlclUxNgAABADVAwEMdTE2AADdBQAAAuEFAOEFAAAEDGTlBcUFAOUFAAADAgAAANEFAOkFAAAC7QUA7QUAAAQMZPEFxQUA8QUAAAMDAAAA0QUA9QUAAAL5BQD5BQAABAxk/QXFBQD9BQAAAwQAAADRBQABBgAAAgUGAAUGAAAEDGQJBsUFAAkGAAADBQAAANEFAA0GAAACEQYAEQYAAAQMZBUGxQUAFQYAAAMGAAAA0QUAGQYAAAIdBgAdBgAABAxkIQbFBQAhBgAAAwcAAADRBQAlBgAAAikGACkGAAAEDGQtBsUFAC0GAAADCAAAANEFADEGAAACNQYANQYAAAQMZDkGxQUAOQYAAAMJAAAA0QUAPQYAAAJBBgBBBgAABAxkRQbFBQBFBgAAAwoAAADRBQBJBgAAAk0GAE0GAAAEDGRRBsUFAFEGAAADCwAAANEFAFUGAAACWQYAWQYAAAQMZF0GxQUAXQYAAAMMAAAA0QUAYQYAAAJlBgBlBgAABAxkaQbFBQBpBgAAAw0AAADRBQBtBgAAAnEGAHEGAAAEDGR1BsUFAHUGAAADDgAAANEFAHkGAAACfQYAfQYAAAQMZIEGxQUAgQYAAAMPAAAA0QUAhQYQkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jaxhzaWduZWQYcGFsbGV0EENhbGwEBFQAARQgcmVnaXN0ZXIEATRjbGFpbWVkX3Njb3JlpQUBNEVsZWN0aW9uU2NvcmUAAATEUmVnaXN0ZXIgb25lc2VsZiBmb3IgYW4gdXBjb21pbmcgc2lnbmVkIGVsZWN0aW9uLixzdWJtaXRfcGFnZQgBEHBhZ2U4ASRQYWdlSW5kZXgAAThtYXliZV9zb2x1dGlvbokGAZxPcHRpb248Qm94PFNvbHV0aW9uT2Y8VDo6TWluZXJDb25maWc+Pj4AASCMU3VibWl0IGEgc2luZ2xlIHBhZ2Ugb2YgYSBzb2x1dGlvbi4AsE11c3QgYWx3YXlzIGNvbWUgYWZ0ZXIgW2BQYWxsZXQ6OnJlZ2lzdGVyYF0uAOBgbWF5YmVfc29sdXRpb25gIGNhbiBiZSBzZXQgdG8gYE5vbmVgIHRvIGVyYXNlIHRoZSBwYWdlLgA1AUNvbGxlY3RzIGRlcG9zaXRzIGZyb20gdGhlIHNpZ25lZCBvcmlnaW4gYmFzZWQgb24gW2BDb25maWc6OkRlcG9zaXRCYXNlYF0gYW5kbFtgQ29uZmlnOjpEZXBvc2l0UGVyUGFnZWBdLhBiYWlsAAIUVFJldHJhY3QgYSBzdWJtaXNzaW9uLgBNAUEgcG9ydGlvbiBvZiB0aGUgZGVwb3NpdCBtYXkgYmUgcmV0dXJuZWQsIGJhc2VkIG9uIHRoZSBbYENvbmZpZzo6RWplY3RHcmFjZVJhdGlvYF0uAMRUaGlzIHdpbGwgZnVsbHkgcmVtb3ZlIHRoZSBzb2x1dGlvbiBmcm9tIHN0b3JhZ2UuUGNsZWFyX29sZF9yb3VuZF9kYXRhCAEUcm91bmQ4AQx1MzIAATR3aXRuZXNzX3BhZ2VzOAEMdTMyAAMYwENsZWFyIHRoZSBkYXRhIG9mIGEgc3VibWl0dGVyIGZvcm0gYW4gb2xkIHJvdW5kLgAxAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgc2lnbmVkLCBhbmQgdGhlIG9yaWdpbmFsIHN1Ym1pdHRlci4AXQFUaGlzIGNhbiBvbmx5IGJlIGNhbGxlZCBmb3Igc3VibWlzc2lvbnMgdGhhdCBlbmQgdXAgYmVpbmcgZGlzY2FyZGVkLCBhcyBpbiB0aGV5IGFyZSBub3TEcHJvY2Vzc2VkIGFuZCB0aGV5IGVuZCB1cCBsaW5nZXJpbmcgaW4gdGhlIHF1ZXVlLkRzZXRfaW52dWxuZXJhYmxlcwQBDGludmEBAURWZWM8VDo6QWNjb3VudElkPgAEDGhTZXQgdGhlIGludnVsbmVyYWJsZSBsaXN0LgARAURpc3BhdGNoIG9yaWdpbiBtdXN0IHRoZSB0aGUgc2FtZSBhcyBbYGNyYXRlOjpDb25maWc6OkFkbWluT3JpZ2luYF0uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLokGBBhPcHRpb24EBFQBuQUBCBBOb25lAAAAEFNvbWUEALkFAAABAACNBhBQcGFsbGV0X3N0YWtpbmdfYXN5bmMYcGFsbGV0GHBhbGxldBBDYWxsBARUAAGEEGJvbmQIARR2YWx1ZVUBATBCYWxhbmNlT2Y8VD4AARRwYXllZZEGAXxSZXdhcmREZXN0aW5hdGlvbjxUOjpBY2NvdW50SWQ+AAAwYQFUYWtlIHRoZSBvcmlnaW4gYWNjb3VudCBhcyBhIHN0YXNoIGFuZCBsb2NrIHVwIGB2YWx1ZWAgb2YgaXRzIGJhbGFuY2UuIGBjb250cm9sbGVyYCB3aWxsgGJlIHRoZSBhY2NvdW50IHRoYXQgY29udHJvbHMgaXQuAC0BYHZhbHVlYCBtdXN0IGJlIG1vcmUgdGhhbiB0aGUgYG1pbmltdW1fYmFsYW5jZWAgc3BlY2lmaWVkIGJ5IGBUOjpDdXJyZW5jeWAuACEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoIGFjY291bnQuADxFbWl0cyBgQm9uZGVkYC4ATQFOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZFkBdW5sZXNzIHRoZSBgb3JpZ2luYCBmYWxscyBiZWxvdyBfZXhpc3RlbnRpYWwgZGVwb3NpdF8gKG9yIGVxdWFsIHRvIDApIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4oYm9uZF9leHRyYQQBOG1heF9hZGRpdGlvbmFsVQEBMEJhbGFuY2VPZjxUPgABKGEBQWRkIHNvbWUgZXh0cmEgYW1vdW50IHRoYXQgaGF2ZSBhcHBlYXJlZCBpbiB0aGUgc3Rhc2ggYGZyZWVfYmFsYW5jZWAgaW50byB0aGUgYmFsYW5jZSB1cDBmb3Igc3Rha2luZy4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgc3Rhc2gsIG5vdCB0aGUgY29udHJvbGxlci4ATQFVc2UgdGhpcyBpZiB0aGVyZSBhcmUgYWRkaXRpb25hbCBmdW5kcyBpbiB5b3VyIHN0YXNoIGFjY291bnQgdGhhdCB5b3Ugd2lzaCB0byBib25kLlUBVW5saWtlIFtgYm9uZGBdKFNlbGY6OmJvbmQpIG9yIFtgdW5ib25kYF0oU2VsZjo6dW5ib25kKSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGltcG9zZbxhbnkgbGltaXRhdGlvbiBvbiB0aGUgYW1vdW50IHRoYXQgY2FuIGJlIGFkZGVkLgA8RW1pdHMgYEJvbmRlZGAuGHVuYm9uZAQBFHZhbHVlVQEBMEJhbGFuY2VPZjxUPgACTFEBU2NoZWR1bGUgYSBwb3J0aW9uIG9mIHRoZSBzdGFzaCB0byBiZSB1bmxvY2tlZCByZWFkeSBmb3IgdHJhbnNmZXIgb3V0IGFmdGVyIHRoZSBib25k/HBlcmlvZCBlbmRzLiBJZiB0aGlzIGxlYXZlcyBhbiBhbW91bnQgYWN0aXZlbHkgYm9uZGVkIGxlc3MgdGhhbiEBW2Bhc3NldDo6ZXhpc3RlbnRpYWxfZGVwb3NpdGBdLCB0aGVuIGl0IGlzIGluY3JlYXNlZCB0byB0aGUgZnVsbCBhbW91bnQuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAEUBT25jZSB0aGUgdW5sb2NrIHBlcmlvZCBpcyBkb25lLCB5b3UgY2FuIGNhbGwgYHdpdGhkcmF3X3VuYm9uZGVkYCB0byBhY3R1YWxseSBtb3ZlvHRoZSBmdW5kcyBvdXQgb2YgbWFuYWdlbWVudCByZWFkeSBmb3IgdHJhbnNmZXIuADEBTm8gbW9yZSB0aGFuIGEgbGltaXRlZCBudW1iZXIgb2YgdW5sb2NraW5nIGNodW5rcyAoc2VlIGBNYXhVbmxvY2tpbmdDaHVua3NgKUEBY2FuIGNvLWV4aXN0cyBhdCB0aGUgc2FtZSB0aW1lLiBJZiB0aGVyZSBhcmUgbm8gdW5sb2NraW5nIGNodW5rcyBzbG90cyBhdmFpbGFibGVFAVtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXSBpcyBjYWxsZWQgdG8gcmVtb3ZlIHNvbWUgb2YgdGhlIGNodW5rcyAoaWYgcG9zc2libGUpLgA5AUlmIGEgdXNlciBlbmNvdW50ZXJzIHRoZSBgSW5zdWZmaWNpZW50Qm9uZGAgZXJyb3Igd2hlbiBjYWxsaW5nIHRoaXMgZXh0cmluc2ljLBkBdGhleSBzaG91bGQgY2FsbCBgY2hpbGxgIGZpcnN0IGluIG9yZGVyIHRvIGZyZWUgdXAgdGhlaXIgYm9uZGVkIGZ1bmRzLgBERW1pdHMgYFVuYm9uZGVkYC4AlFNlZSBhbHNvIFtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXS5Ed2l0aGRyYXdfdW5ib25kZWQEAUhudW1fc2xhc2hpbmdfc3BhbnM4AQx1MzIAA0wpAVJlbW92ZSBhbnkgc3Rha2UgdGhhdCBoYXMgYmVlbiBmdWxseSB1bmJvbmRlZCBhbmQgaXMgcmVhZHkgZm9yIHdpdGhkcmF3YWwuAFUBU3Rha2UgaXMgY29uc2lkZXJlZCBmdWxseSB1bmJvbmRlZCBvbmNlIFtgQ29uZmlnOjpCb25kaW5nRHVyYXRpb25gXSBoYXMgZWxhcHNlZCBzaW5jZV0BdGhlIHVuYm9uZGluZyB3YXMgaW5pdGlhdGVkLiBJbiByYXJlIGNhc2Vz4oCUc3VjaCBhcyB3aGVuIG9mZmVuY2VzIGZvciB0aGUgdW5ib25kZWQgZXJhVQFoYXZlIGJlZW4gcmVwb3J0ZWQgYnV0IG5vdCB5ZXQgcHJvY2Vzc2Vk4oCUd2l0aGRyYXdhbCBpcyByZXN0cmljdGVkIHRvIGVyYXMgZm9yIHdoaWNohGFsbCBvZmZlbmNlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkLgAlAVRoZSB1bmxvY2tlZCBzdGFrZSB3aWxsIGJlIHJldHVybmVkIGFzIGZyZWUgYmFsYW5jZSBpbiB0aGUgc3Rhc2ggYWNjb3VudC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlci4ASEVtaXRzIGBXaXRoZHJhd25gLgBoU2VlIGFsc28gW2BDYWxsOjp1bmJvbmRgXS4ANCMjIFBhcmFtZXRlcnMAWQEtIGBudW1fc2xhc2hpbmdfc3BhbnNgOiAqKkRlcHJlY2F0ZWQqKi4gUmV0YWluZWQgb25seSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eTsgdGhpc2ggIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0LiB2YWxpZGF0ZQQBFHByZWZzlQYBOFZhbGlkYXRvclByZWZzAAQU5ERlY2xhcmUgdGhlIGRlc2lyZSB0byB2YWxpZGF0ZSBmb3IgdGhlIG9yaWdpbiBjb250cm9sbGVyLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guIG5vbWluYXRlBAEcdGFyZ2V0c50GAWRWZWM8QWNjb3VudElkTG9va3VwT2Y8VD4+AAUUDQFEZWNsYXJlIHRoZSBkZXNpcmUgdG8gbm9taW5hdGUgYHRhcmdldHNgIGZvciB0aGUgb3JpZ2luIGNvbnRyb2xsZXIuANhFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4UY2hpbGwABijERGVjbGFyZSBubyBkZXNpcmUgdG8gZWl0aGVyIHZhbGlkYXRlIG9yIG5vbWluYXRlLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guADQjIyBDb21wbGV4aXR55C0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LlAtIENvbnRhaW5zIG9uZSByZWFkLsQtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuJHNldF9wYXllZQQBFHBheWVlkQYBfFJld2FyZERlc3RpbmF0aW9uPFQ6OkFjY291bnRJZD4ABxS0KFJlLSlzZXQgdGhlIHBheW1lbnQgdGFyZ2V0IGZvciBhIGNvbnRyb2xsZXIuAFEBRWZmZWN0cyB3aWxsIGJlIGZlbHQgaW5zdGFudGx5IChhcyBzb29uIGFzIHRoaXMgZnVuY3Rpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guOHNldF9jb250cm9sbGVyAAggRQEoUmUtKXNldHMgdGhlIGNvbnRyb2xsZXIgb2YgYSBzdGFzaCB0byB0aGUgc3Rhc2ggaXRzZWxmLiBUaGlzIGZ1bmN0aW9uIHByZXZpb3VzbHlNAWFjY2VwdGVkIGEgYGNvbnRyb2xsZXJgIGFyZ3VtZW50IHRvIHNldCB0aGUgY29udHJvbGxlciB0byBhbiBhY2NvdW50IG90aGVyIHRoYW4gdGhlWQFzdGFzaCBpdHNlbGYuIFRoaXMgZnVuY3Rpb25hbGl0eSBoYXMgbm93IGJlZW4gcmVtb3ZlZCwgbm93IG9ubHkgc2V0dGluZyB0aGUgY29udHJvbGxlcox0byB0aGUgc3Rhc2gsIGlmIGl0IGlzIG5vdCBhbHJlYWR5LgBRAUVmZmVjdHMgd2lsbCBiZSBmZWx0IGluc3RhbnRseSAoYXMgc29vbiBhcyB0aGlzIGZ1bmN0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCwgbm90IHRoZSBjb250cm9sbGVyLkxzZXRfdmFsaWRhdG9yX2NvdW50BAEMbmV3ZAEMdTMyAAkMkFNldHMgdGhlIGlkZWFsIG51bWJlciBvZiB2YWxpZGF0b3JzLgCEVGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIFJvb3QuYGluY3JlYXNlX3ZhbGlkYXRvcl9jb3VudAQBKGFkZGl0aW9uYWxkAQx1MzIAChDoSW5jcmVtZW50cyB0aGUgaWRlYWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMgdXAgdG8gbWF4aW11bSBvZlRgVDo6TWF4VmFsaWRhdG9yU2V0YC4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LlRzY2FsZV92YWxpZGF0b3JfY291bnQEARhmYWN0b3KhBgEcUGVyY2VudAALEBEBU2NhbGUgdXAgdGhlIGlkZWFsIG51bWJlciBvZiB2YWxpZGF0b3JzIGJ5IGEgZmFjdG9yIHVwIHRvIG1heGltdW0gb2ZUYFQ6Ok1heFZhbGlkYXRvclNldGAuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC40Zm9yY2Vfbm9fZXJhcwAMJKxGb3JjZSB0aGVyZSB0byBiZSBubyBuZXcgZXJhcyBpbmRlZmluaXRlbHkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS45AVRodXMgdGhlIGVsZWN0aW9uIHByb2Nlc3MgbWF5IGJlIG9uZ29pbmcgd2hlbiB0aGlzIGlzIGNhbGxlZC4gSW4gdGhpcyBjYXNlIHRoZdxlbGVjdGlvbiB3aWxsIGNvbnRpbnVlIHVudGlsIHRoZSBuZXh0IGVyYSBpcyB0cmlnZ2VyZWQuNGZvcmNlX25ld19lcmEADShJAUZvcmNlIHRoZXJlIHRvIGJlIGEgbmV3IGVyYSBhdCB0aGUgZW5kIG9mIHRoZSBuZXh0IHNlc3Npb24uIEFmdGVyIHRoaXMsIGl0IHdpbGwgYmWccmVzZXQgdG8gbm9ybWFsIChub24tZm9yY2VkKSBiZWhhdmlvdXIuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS5JAUlmIHRoaXMgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIGEgbmV3IGVyYSBpcyB0cmlnZ2VyZWQsIHRoZSBlbGVjdGlvbiBwcm9jZXNzIG1heSBub3SMaGF2ZSBlbm91Z2ggYmxvY2tzIHRvIGdldCBhIHJlc3VsdC5Ec2V0X2ludnVsbmVyYWJsZXMEATRpbnZ1bG5lcmFibGVzYQEBRFZlYzxUOjpBY2NvdW50SWQ+AA4MyFNldCB0aGUgdmFsaWRhdG9ycyB3aG8gY2Fubm90IGJlIHNsYXNoZWQgKGlmIGFueSkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC40Zm9yY2VfdW5zdGFrZQgBFHN0YXNoBAEwVDo6QWNjb3VudElkAAFIbnVtX3NsYXNoaW5nX3NwYW5zOAEMdTMyAA8gCQFGb3JjZSBhIGN1cnJlbnQgc3Rha2VyIHRvIGJlY29tZSBjb21wbGV0ZWx5IHVuc3Rha2VkLCBpbW1lZGlhdGVseS4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LjQjIyBQYXJhbWV0ZXJzALAtIGBzdGFzaGA6IFRoZSBzdGFzaCBhY2NvdW50IHRvIGJlIHVuc3Rha2VkLj0BLSBgbnVtX3NsYXNoaW5nX3NwYW5zYDogKipEZXByZWNhdGVkKiouIFRoaXMgcGFyYW1ldGVyIGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZKxjb21wYXRpYmlsaXR5LiBJdCBubyBsb25nZXIgaGFzIGFueSBlZmZlY3QuUGZvcmNlX25ld19lcmFfYWx3YXlzABAkAQFGb3JjZSB0aGVyZSB0byBiZSBhIG5ldyBlcmEgYXQgdGhlIGVuZCBvZiBzZXNzaW9ucyBpbmRlZmluaXRlbHkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS5JAUlmIHRoaXMgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIGEgbmV3IGVyYSBpcyB0cmlnZ2VyZWQsIHRoZSBlbGVjdGlvbiBwcm9jZXNzIG1heSBub3SMaGF2ZSBlbm91Z2ggYmxvY2tzIHRvIGdldCBhIHJlc3VsdC5UY2FuY2VsX2RlZmVycmVkX3NsYXNoCAEMZXJhOAEgRXJhSW5kZXgAAUR2YWxpZGF0b3Jfc2xhc2hlc6UGAXBWZWM8KFQ6OkFjY291bnRJZCwgUGVyYmlsbCk+ABEsCQFDYW5jZWxzIHNjaGVkdWxlZCBzbGFzaGVzIGZvciBhIGdpdmVuIGVyYSBiZWZvcmUgdGhleSBhcmUgYXBwbGllZC4AYQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBgVDo6QWRtaW5PcmlnaW5gIHRvIGNhbmNlbCBwZW5kaW5nIHNsYXNoZXMgZm9yIHNwZWNpZmllZCB2YWxpZGF0b3JzSQFpbiBhIGdpdmVuIGVyYS4gVGhlIGNhbmNlbGxlZCBzbGFzaGVzIGFyZSBzdG9yZWQgYW5kIHdpbGwgYmUgY2hlY2tlZCB3aGVuIGFwcGx5aW5nIHNsYXNoZXMuADQjIyBQYXJhbWV0ZXJzVQEtIGBlcmFgOiBUaGUgc3Rha2luZyBlcmEgZm9yIHdoaWNoIHNsYXNoZXMgc2hvdWxkIGJlIGNhbmNlbGxlZC4gVGhpcyBpcyB0aGUgZXJhIHdoZXJlNQEgIHRoZSBzbGFzaCB3b3VsZCBiZSBhcHBsaWVkLCBub3QgdGhlIGVyYSBpbiB3aGljaCB0aGUgb2ZmZW5jZSB3YXMgY29tbWl0dGVkLlkBLSBgdmFsaWRhdG9yX3NsYXNoZXNgOiBBIGxpc3Qgb2YgdmFsaWRhdG9yIHN0YXNoIGFjY291bnRzIGFuZCB0aGVpciBzbGFzaCBmcmFjdGlvbnMgdG88ICBiZSBjYW5jZWxsZWQuOHBheW91dF9zdGFrZXJzCAE8dmFsaWRhdG9yX3N0YXNoBAEwVDo6QWNjb3VudElkAAEMZXJhOAEgRXJhSW5kZXgAEjQZAVBheSBvdXQgbmV4dCBwYWdlIG9mIHRoZSBzdGFrZXJzIGJlaGluZCBhIHZhbGlkYXRvciBmb3IgdGhlIGdpdmVuIGVyYS4A6C0gYHZhbGlkYXRvcl9zdGFzaGAgaXMgdGhlIHN0YXNoIGFjY291bnQgb2YgdGhlIHZhbGlkYXRvci4xAS0gYGVyYWAgbWF5IGJlIGFueSBlcmEgYmV0d2VlbiBgW2N1cnJlbnRfZXJhIC0gaGlzdG9yeV9kZXB0aDsgY3VycmVudF9lcmFdYC4AVQFUaGUgb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiBBbnkgYWNjb3VudCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLCBldmVuIGlmdGl0IGlzIG5vdCBvbmUgb2YgdGhlIHN0YWtlcnMuAEkBVGhlIHJld2FyZCBwYXlvdXQgY291bGQgYmUgcGFnZWQgaW4gY2FzZSB0aGVyZSBhcmUgdG9vIG1hbnkgbm9taW5hdG9ycyBiYWNraW5nIHRoZV0BYHZhbGlkYXRvcl9zdGFzaGAuIFRoaXMgY2FsbCB3aWxsIHBheW91dCB1bnBhaWQgcGFnZXMgaW4gYW4gYXNjZW5kaW5nIG9yZGVyLiBUbyBjbGFpbSBhtHNwZWNpZmljIHBhZ2UsIHVzZSBgcGF5b3V0X3N0YWtlcnNfYnlfcGFnZWAuYADwSWYgYWxsIHBhZ2VzIGFyZSBjbGFpbWVkLCBpdCByZXR1cm5zIGFuIGVycm9yIGBJbnZhbGlkUGFnZWAuGHJlYm9uZAQBFHZhbHVlVQEBMEJhbGFuY2VPZjxUPgATDNxSZWJvbmQgYSBwb3J0aW9uIG9mIHRoZSBzdGFzaCBzY2hlZHVsZWQgdG8gYmUgdW5sb2NrZWQuANRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IHRoZSBjb250cm9sbGVyLihyZWFwX3N0YXNoCAEUc3Rhc2gEATBUOjpBY2NvdW50SWQAAUhudW1fc2xhc2hpbmdfc3BhbnM4AQx1MzIAFEhdAVJlbW92ZSBhbGwgZGF0YSBzdHJ1Y3R1cmVzIGNvbmNlcm5pbmcgYSBzdGFrZXIvc3Rhc2ggb25jZSBpdCBpcyBhdCBhIHN0YXRlIHdoZXJlIGl0IGNhbgUBYmUgY29uc2lkZXJlZCBgZHVzdGAgaW4gdGhlIHN0YWtpbmcgc3lzdGVtLiBUaGUgcmVxdWlyZW1lbnRzIGFyZToALQExLiB0aGUgYHRvdGFsX2JhbGFuY2VgIG9mIHRoZSBzdGFzaCBpcyBiZWxvdyBgbWluX2NoaWxsZWRfYm9uZGAgb3IgaXMgemVyby45ATIuIG9yLCB0aGUgYGxlZGdlci50b3RhbGAgb2YgdGhlIHN0YXNoIGlzIGJlbG93IGBtaW5fY2hpbGxlZF9ib25kYCBvciBpcyB6ZXJvLgBVAVRoZSBmb3JtZXIgY2FuIGhhcHBlbiBpbiBjYXNlcyBsaWtlIGEgc2xhc2g7IHRoZSBsYXR0ZXIgd2hlbiBhIGZ1bGx5IHVuYm9uZGVkIGFjY291bnQJAWlzIHN0aWxsIHJlY2VpdmluZyBzdGFraW5nIHJld2FyZHMgaW4gYFJld2FyZERlc3RpbmF0aW9uOjpTdGFrZWRgLgAxAUl0IGNhbiBiZSBjYWxsZWQgYnkgYW55b25lLCBhcyBsb25nIGFzIGBzdGFzaGAgbWVldHMgdGhlIGFib3ZlIHJlcXVpcmVtZW50cy4A3FJlZnVuZHMgdGhlIHRyYW5zYWN0aW9uIGZlZXMgdXBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbi4ANCMjIFBhcmFtZXRlcnMAqC0gYHN0YXNoYDogVGhlIHN0YXNoIGFjY291bnQgdG8gYmUgcmVhcGVkLj0BLSBgbnVtX3NsYXNoaW5nX3NwYW5zYDogKipEZXByZWNhdGVkKiouIFRoaXMgcGFyYW1ldGVyIGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZKxjb21wYXRpYmlsaXR5LiBJdCBubyBsb25nZXIgaGFzIGFueSBlZmZlY3QuEGtpY2sEAQx3aG+dBgFkVmVjPEFjY291bnRJZExvb2t1cE9mPFQ+PgAVLOBSZW1vdmUgdGhlIGdpdmVuIG5vbWluYXRpb25zIGZyb20gdGhlIGNhbGxpbmcgdmFsaWRhdG9yLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAE0BLSBgd2hvYDogQSBsaXN0IG9mIG5vbWluYXRvciBzdGFzaCBhY2NvdW50cyB3aG8gYXJlIG5vbWluYXRpbmcgdGhpcyB2YWxpZGF0b3Igd2hpY2jAICBzaG91bGQgbm8gbG9uZ2VyIGJlIG5vbWluYXRpbmcgdGhpcyB2YWxpZGF0b3IuAFUBTm90ZTogTWFraW5nIHRoaXMgY2FsbCBvbmx5IG1ha2VzIHNlbnNlIGlmIHlvdSBmaXJzdCBzZXQgdGhlIHZhbGlkYXRvciBwcmVmZXJlbmNlcyB0b3hibG9jayBhbnkgZnVydGhlciBub21pbmF0aW9ucy5Mc2V0X3N0YWtpbmdfY29uZmlncyABSG1pbl9ub21pbmF0b3JfYm9uZK0GAVhDb25maWdPcDxCYWxhbmNlT2Y8VD4+AAFIbWluX3ZhbGlkYXRvcl9ib25krQYBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AAUxtYXhfbm9taW5hdG9yX2NvdW50sQYBNENvbmZpZ09wPHUzMj4AAUxtYXhfdmFsaWRhdG9yX2NvdW50sQYBNENvbmZpZ09wPHUzMj4AATxjaGlsbF90aHJlc2hvbGS1BgFEQ29uZmlnT3A8UGVyY2VudD4AAThtaW5fY29tbWlzc2lvbrkGAURDb25maWdPcDxQZXJiaWxsPgABSG1heF9zdGFrZWRfcmV3YXJkc7UGAURDb25maWdPcDxQZXJjZW50PgABYGFyZV9ub21pbmF0b3JzX3NsYXNoYWJsZb0GAThDb25maWdPcDxib29sPgAWRKxVcGRhdGUgdGhlIHZhcmlvdXMgc3Rha2luZyBjb25maWd1cmF0aW9ucyAuACUBKiBgbWluX25vbWluYXRvcl9ib25kYDogVGhlIG1pbmltdW0gYWN0aXZlIGJvbmQgbmVlZGVkIHRvIGJlIGEgbm9taW5hdG9yLiUBKiBgbWluX3ZhbGlkYXRvcl9ib25kYDogVGhlIG1pbmltdW0gYWN0aXZlIGJvbmQgbmVlZGVkIHRvIGJlIGEgdmFsaWRhdG9yLlUBKiBgbWF4X25vbWluYXRvcl9jb3VudGA6IFRoZSBtYXggbnVtYmVyIG9mIHVzZXJzIHdobyBjYW4gYmUgYSBub21pbmF0b3IgYXQgb25jZS4gV2hlbpggIHNldCB0byBgTm9uZWAsIG5vIGxpbWl0IGlzIGVuZm9yY2VkLlUBKiBgbWF4X3ZhbGlkYXRvcl9jb3VudGA6IFRoZSBtYXggbnVtYmVyIG9mIHVzZXJzIHdobyBjYW4gYmUgYSB2YWxpZGF0b3IgYXQgb25jZS4gV2hlbpggIHNldCB0byBgTm9uZWAsIG5vIGxpbWl0IGlzIGVuZm9yY2VkLlkBKiBgY2hpbGxfdGhyZXNob2xkYDogVGhlIHJhdGlvIG9mIGBtYXhfbm9taW5hdG9yX2NvdW50YCBvciBgbWF4X3ZhbGlkYXRvcl9jb3VudGAgd2hpY2gZASAgc2hvdWxkIGJlIGZpbGxlZCBpbiBvcmRlciBmb3IgdGhlIGBjaGlsbF9vdGhlcmAgdHJhbnNhY3Rpb24gdG8gd29yay5hASogYG1pbl9jb21taXNzaW9uYDogVGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbW1pc3Npb24gdGhhdCBlYWNoIHZhbGlkYXRvcnMgbXVzdCBtYWludGFpbi5VASAgVGhpcyBpcyBjaGVja2VkIG9ubHkgdXBvbiBjYWxsaW5nIGB2YWxpZGF0ZWAuIEV4aXN0aW5nIHZhbGlkYXRvcnMgYXJlIG5vdCBhZmZlY3RlZC4AxFJ1bnRpbWVPcmlnaW4gbXVzdCBiZSBSb290IHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4ANQFOT1RFOiBFeGlzdGluZyBub21pbmF0b3JzIGFuZCB2YWxpZGF0b3JzIHdpbGwgbm90IGJlIGFmZmVjdGVkIGJ5IHRoaXMgdXBkYXRlLhEBdG8ga2ljayBwZW9wbGUgdW5kZXIgdGhlIG5ldyBsaW1pdHMsIGBjaGlsbF9vdGhlcmAgc2hvdWxkIGJlIGNhbGxlZC4sY2hpbGxfb3RoZXIEARRzdGFzaAQBMFQ6OkFjY291bnRJZAAXaEEBRGVjbGFyZSBhIGBjb250cm9sbGVyYCB0byBzdG9wIHBhcnRpY2lwYXRpbmcgYXMgZWl0aGVyIGEgdmFsaWRhdG9yIG9yIG5vbWluYXRvci4A2EVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBBAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBidXQgY2FuIGJlIGNhbGxlZCBieSBhbnlvbmUuAFkBSWYgdGhlIGNhbGxlciBpcyB0aGUgc2FtZSBhcyB0aGUgY29udHJvbGxlciBiZWluZyB0YXJnZXRlZCwgdGhlbiBubyBmdXJ0aGVyIGNoZWNrcyBhcmXYZW5mb3JjZWQsIGFuZCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMganVzdCBsaWtlIGBjaGlsbGAuAF0BSWYgdGhlIGNhbGxlciBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgY29udHJvbGxlciBiZWluZyB0YXJnZXRlZCwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zMG11c3QgYmUgbWV0OgAdASogYGNvbnRyb2xsZXJgIG11c3QgYmVsb25nIHRvIGEgbm9taW5hdG9yIHdobyBoYXMgYmVjb21lIG5vbi1kZWNvZGFibGUsAAxPcjoAPQEqIEEgYENoaWxsVGhyZXNob2xkYCBtdXN0IGJlIHNldCBhbmQgY2hlY2tlZCB3aGljaCBkZWZpbmVzIGhvdyBjbG9zZSB0byB0aGUgbWF4VQEgIG5vbWluYXRvcnMgb3IgdmFsaWRhdG9ycyB3ZSBtdXN0IHJlYWNoIGJlZm9yZSB1c2VycyBjYW4gc3RhcnQgY2hpbGxpbmcgb25lLWFub3RoZXIuWQEqIEEgYE1heE5vbWluYXRvckNvdW50YCBhbmQgYE1heFZhbGlkYXRvckNvdW50YCBtdXN0IGJlIHNldCB3aGljaCBpcyB1c2VkIHRvIGRldGVybWluZZAgIGhvdyBjbG9zZSB3ZSBhcmUgdG8gdGhlIHRocmVzaG9sZC5dASogQSBgTWluTm9taW5hdG9yQm9uZGAgYW5kIGBNaW5WYWxpZGF0b3JCb25kYCBtdXN0IGJlIHNldCBhbmQgY2hlY2tlZCwgd2hpY2ggZGV0ZXJtaW5lc1EBICBpZiB0aGlzIGlzIGEgcGVyc29uIHRoYXQgc2hvdWxkIGJlIGNoaWxsZWQgYmVjYXVzZSB0aGV5IGhhdmUgbm90IG1ldCB0aGUgdGhyZXNob2xkQCAgYm9uZCByZXF1aXJlZC4AVQFUaGlzIGNhbiBiZSBoZWxwZnVsIGlmIGJvbmQgcmVxdWlyZW1lbnRzIGFyZSB1cGRhdGVkLCBhbmQgd2UgbmVlZCB0byByZW1vdmUgb2xkIHVzZXJzmHdobyBkbyBub3Qgc2F0aXNmeSB0aGVzZSByZXF1aXJlbWVudHMuaGZvcmNlX2FwcGx5X21pbl9jb21taXNzaW9uBAE8dmFsaWRhdG9yX3N0YXNoBAEwVDo6QWNjb3VudElkABgMRQFGb3JjZSBhIHZhbGlkYXRvciB0byBoYXZlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGNvbW1pc3Npb24uIFRoaXMgd2lsbCBub3QgYWZmZWN0IGFhAXZhbGlkYXRvciB3aG8gYWxyZWFkeSBoYXMgYSBjb21taXNzaW9uIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bS4gQW55IGFjY291bnQ4Y2FuIGNhbGwgdGhpcy5Ic2V0X21pbl9jb21taXNzaW9uBAEMbmV3LQUBHFBlcmJpbGwAGRAlAVNldHMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbW1pc3Npb24gdGhhdCBlYWNoIHZhbGlkYXRvcnMgbXVzdCBtYWludGFpbi4AWQFUaGlzIGNhbGwgaGFzIGxvd2VyIHByaXZpbGVnZSByZXF1aXJlbWVudHMgdGhhbiBgc2V0X3N0YWtpbmdfY29uZmlnYCBhbmQgY2FuIGJlIGNhbGxlZMxieSB0aGUgYFQ6OkFkbWluT3JpZ2luYC4gUm9vdCBjYW4gYWx3YXlzIGNhbGwgdGhpcy5YcGF5b3V0X3N0YWtlcnNfYnlfcGFnZQwBPHZhbGlkYXRvcl9zdGFzaAQBMFQ6OkFjY291bnRJZAABDGVyYTgBIEVyYUluZGV4AAEQcGFnZTgBEFBhZ2UAGkQxAVBheSBvdXQgYSBwYWdlIG9mIHRoZSBzdGFrZXJzIGJlaGluZCBhIHZhbGlkYXRvciBmb3IgdGhlIGdpdmVuIGVyYSBhbmQgcGFnZS4A6C0gYHZhbGlkYXRvcl9zdGFzaGAgaXMgdGhlIHN0YXNoIGFjY291bnQgb2YgdGhlIHZhbGlkYXRvci4xAS0gYGVyYWAgbWF5IGJlIGFueSBlcmEgYmV0d2VlbiBgW2N1cnJlbnRfZXJhIC0gaGlzdG9yeV9kZXB0aDsgY3VycmVudF9lcmFdYC4xAS0gYHBhZ2VgIGlzIHRoZSBwYWdlIGluZGV4IG9mIG5vbWluYXRvcnMgdG8gcGF5IG91dCB3aXRoIHZhbHVlIGJldHdlZW4gMCBhbmSwICBgbnVtX25vbWluYXRvcnMgLyBUOjpNYXhFeHBvc3VyZVBhZ2VTaXplYC4AVQFUaGUgb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiBBbnkgYWNjb3VudCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLCBldmVuIGlmdGl0IGlzIG5vdCBvbmUgb2YgdGhlIHN0YWtlcnMuAD0BSWYgYSB2YWxpZGF0b3IgaGFzIG1vcmUgdGhhbiBbYENvbmZpZzo6TWF4RXhwb3N1cmVQYWdlU2l6ZWBdIG5vbWluYXRvcnMgYmFja2luZykBdGhlbSwgdGhlbiB0aGUgbGlzdCBvZiBub21pbmF0b3JzIGlzIHBhZ2VkLCB3aXRoIGVhY2ggcGFnZSBiZWluZyBjYXBwZWQgYXRVAVtgQ29uZmlnOjpNYXhFeHBvc3VyZVBhZ2VTaXplYC5dIElmIGEgdmFsaWRhdG9yIGhhcyBtb3JlIHRoYW4gb25lIHBhZ2Ugb2Ygbm9taW5hdG9ycyxJAXRoZSBjYWxsIG5lZWRzIHRvIGJlIG1hZGUgZm9yIGVhY2ggcGFnZSBzZXBhcmF0ZWx5IGluIG9yZGVyIGZvciBhbGwgdGhlIG5vbWluYXRvcnNVAWJhY2tpbmcgYSB2YWxpZGF0b3IgdG8gcmVjZWl2ZSB0aGUgcmV3YXJkLiBUaGUgbm9taW5hdG9ycyBhcmUgbm90IHNvcnRlZCBhY3Jvc3MgcGFnZXNhAWFuZCBzbyBpdCBzaG91bGQgbm90IGJlIGFzc3VtZWQgdGhlIGhpZ2hlc3Qgc3Rha2VyIHdvdWxkIGJlIG9uIHRoZSB0b3Btb3N0IHBhZ2UgYW5kIHZpY2VJAXZlcnNhLiBJZiByZXdhcmRzIGFyZSBub3QgY2xhaW1lZCBpbiBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcywgdGhleSBhcmUgbG9zdC4wdXBkYXRlX3BheWVlBAEoY29udHJvbGxlcgQBMFQ6OkFjY291bnRJZAAbGOBNaWdyYXRlcyBhbiBhY2NvdW50J3MgYFJld2FyZERlc3RpbmF0aW9uOjpDb250cm9sbGVyYCB0b6RgUmV3YXJkRGVzdGluYXRpb246OkFjY291bnQoY29udHJvbGxlcilgLgBRAUVmZmVjdHMgd2lsbCBiZSBmZWx0IGluc3RhbnRseSAoYXMgc29vbiBhcyB0aGlzIGZ1bmN0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpLgAxAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIHRoZSBgcGF5ZWVgIGlzIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZC5oZGVwcmVjYXRlX2NvbnRyb2xsZXJfYmF0Y2gEASxjb250cm9sbGVyc8EGAfRCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6TWF4Q29udHJvbGxlcnNJbkRlcHJlY2F0aW9uQmF0Y2g+ABwcXQFVcGRhdGVzIGEgYmF0Y2ggb2YgY29udHJvbGxlciBhY2NvdW50cyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHN0YXNoIGFjY291bnQgaWYgdGhleSBhcmVhAW5vdCB0aGUgc2FtZS4gSWdub3JlcyBhbnkgY29udHJvbGxlciBhY2NvdW50cyB0aGF0IGRvIG5vdCBleGlzdCwgYW5kIGRvZXMgbm90IG9wZXJhdGUgaWa4dGhlIHN0YXNoIGFuZCBjb250cm9sbGVyIGFyZSBhbHJlYWR5IHRoZSBzYW1lLgBRAUVmZmVjdHMgd2lsbCBiZSBmZWx0IGluc3RhbnRseSAoYXMgc29vbiBhcyB0aGlzIGZ1bmN0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpLgC0VGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIGBUOjpBZG1pbk9yaWdpbmAuOHJlc3RvcmVfbGVkZ2VyEAEUc3Rhc2gEATBUOjpBY2NvdW50SWQAAUBtYXliZV9jb250cm9sbGVykQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEsbWF5YmVfdG90YWwxBAFQT3B0aW9uPEJhbGFuY2VPZjxUPj4AATxtYXliZV91bmxvY2tpbmfFBgEVAU9wdGlvbjxCb3VuZGVkVmVjPFVubG9ja0NodW5rPEJhbGFuY2VPZjxUPj4sIFQ6OgpNYXhVbmxvY2tpbmdDaHVua3M+PgAdLAUBUmVzdG9yZXMgdGhlIHN0YXRlIG9mIGEgbGVkZ2VyIHdoaWNoIGlzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4A3FRoZSByZXF1aXJlbWVudHMgdG8gcmVzdG9yZSBhIGxlZGdlciBhcmUgdGhlIGZvbGxvd2luZzpkKiBUaGUgc3Rhc2ggaXMgYm9uZGVkOyBvcg0BKiBUaGUgc3Rhc2ggaXMgbm90IGJvbmRlZCBidXQgaXQgaGFzIGEgc3Rha2luZyBsb2NrIGxlZnQgYmVoaW5kOyBvciUBKiBJZiB0aGUgc3Rhc2ggaGFzIGFuIGFzc29jaWF0ZWQgbGVkZ2VyIGFuZCBpdHMgc3RhdGUgaXMgaW5jb25zaXN0ZW50OyBvch0BKiBJZiB0aGUgbGVkZ2VyIGlzIG5vdCBjb3JydXB0ZWQgKmJ1dCogaXRzIHN0YWtpbmcgbG9jayBpcyBvdXQgb2Ygc3luYy4AYQFUaGUgYG1heWJlXypgIGlucHV0IHBhcmFtZXRlcnMgd2lsbCBvdmVyd3JpdGUgdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBhbmQgbWV0YWRhdGEgb2YgdGhlWQFsZWRnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFzaC4gSWYgdGhlIGlucHV0IHBhcmFtZXRlcnMgYXJlIG5vdCBzZXQsIHRoZSBsZWRnZXIgd2lsbJBiZSByZXNldCB2YWx1ZXMgZnJvbSBvbi1jaGFpbiBzdGF0ZS5AbWlncmF0ZV9jdXJyZW5jeQQBFHN0YXNoBAEwVDo6QWNjb3VudElkAB4c2E1pZ3JhdGVzIHBlcm1pc3Npb25sZXNzbHkgYSBzdGFzaCBmcm9tIGxvY2tzIHRvIGhvbGRzLgBJAVRoaXMgcmVtb3ZlcyB0aGUgb2xkIGxvY2sgb24gdGhlIHN0YWtlIGFuZCBjcmVhdGVzIGEgaG9sZCBvbiBpdCBhdG9taWNhbGx5LiBJZiBhbGxhAXN0YWtlIGNhbm5vdCBiZSBoZWxkLCB0aGUgYmVzdCBlZmZvcnQgaXMgbWFkZSB0byBob2xkIGFzIG11Y2ggYXMgcG9zc2libGUuIFRoZSByZW1haW5pbmeEc3Rha2UgaXMgcmVtb3ZlZCBmcm9tIHRoZSBsZWRnZXIuAMRUaGUgZmVlIGlzIHdhaXZlZCBpZiB0aGUgbWlncmF0aW9uIGlzIHN1Y2Nlc3NmdWwuLGFwcGx5X3NsYXNoCAEkc2xhc2hfZXJhOAEgRXJhSW5kZXgAASRzbGFzaF9rZXnVBgFwKFQ6OkFjY291bnRJZCwgUGVyYmlsbCwgdTMyKQAfhB0BTWFudWFsbHkgYW5kIHBlcm1pc3Npb25sZXNzbHkgYXBwbGllcyBhIGRlZmVycmVkIHNsYXNoIGZvciBhIGdpdmVuIGVyYS4AXQFOb3JtYWxseSwgc2xhc2hlcyBhcmUgYXV0b21hdGljYWxseSBhcHBsaWVkIHNob3J0bHkgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBgc2xhc2hfZXJhYC5ZAVRoZSBhdXRvbWF0aWMgYXBwbGljYXRpb24gb2Ygc2xhc2hlcyBpcyBoYW5kbGVkIGJ5IHRoZSBwYWxsZXQncyBpbnRlcm5hbCBsb2dpYywgYW5kIGl0zHRyaWVzIHRvIGFwcGx5IG9uZSBzbGFzaCBwYWdlIHBlciBibG9jayBvZiB0aGUgZXJhLlUBSWYgZm9yIHNvbWUgcmVhc29uLCBvbmUgZXJhIGlzIG5vdCBlbm91Z2ggZm9yIGFwcGx5aW5nIGFsbCBzbGFzaCBwYWdlcywgdGhlIHJlbWFpbmluZ9xzbGFzaGVzIG5lZWQgdG8gYmUgbWFudWFsbHkgKHBlcm1pc3Npb25sZXNzbHkpIGFwcGxpZWQuAEkBRm9yIGEgZ2l2ZW4gZXJhIHgsIGlmIGF0IGVyYSB4KzEsIHNsYXNoZXMgYXJlIHN0aWxsIHVuYXBwbGllZCwgYWxsIHdpdGhkcmF3YWxzIGdldCEBYmxvY2tlZCwgYW5kIHRoZXNlIG5lZWQgdG8gYmUgbWFudWFsbHkgYXBwbGllZCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uTQFUaGlzIGZ1bmN0aW9uIGV4aXN0cyBhcyBhICoqZmFsbGJhY2sgbWVjaGFuaXNtKiogZm9yIHRoaXMgZXh0cmVtZSBzaXR1YXRpb24sIGJ1dCB3ZcxuZXZlciBleHBlY3QgdG8gZW5jb3VudGVyIHRoaXMgaW4gbm9ybWFsIHNjZW5hcmlvcy4AYQFUaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBjYWxsIGNhbiBiZSBxdWVyaWVkIGJ5IGxvb2tpbmcgYXQgdGhlIGBVbmFwcGxpZWRTbGFzaGVzYCBzdG9yYWdljGZvciBlcmFzIG9sZGVyIHRoYW4gdGhlIGFjdGl2ZSBlcmEuADQjIyBQYXJhbWV0ZXJzLQEtIGBzbGFzaF9lcmFgOiBUaGUgc3Rha2luZyBlcmEgaW4gd2hpY2ggdGhlIHNsYXNoIHdhcyBvcmlnaW5hbGx5IHNjaGVkdWxlZC4lAS0gYHNsYXNoX2tleWA6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzbGFzaCwgcmVwcmVzZW50ZWQgYXMgYSB0dXBsZTr4ICAtIGBzdGFzaGA6IFRoZSBzdGFzaCBhY2NvdW50IG9mIHRoZSB2YWxpZGF0b3IgYmVpbmcgc2xhc2hlZC4FASAgLSBgc2xhc2hfZnJhY3Rpb25gOiBUaGUgZnJhY3Rpb24gb2YgdGhlIHN0YWtlIHRoYXQgd2FzIHNsYXNoZWQuBQEgIC0gYHBhZ2VfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIGV4cG9zdXJlIHBhZ2UgYmVpbmcgcHJvY2Vzc2VkLgAsIyMgQmVoYXZpb3LoLSBUaGUgZnVuY3Rpb24gaXMgKipwZXJtaXNzaW9ubGVzcyoq4oCUYW55b25lIGNhbiBjYWxsIGl0LvAtIFRoZSBgc2xhc2hfZXJhYCAqKm11c3QgYmUgdGhlIGN1cnJlbnQgZXJhIG9yIGEgcGFzdCBlcmEqKi5sSWYgaXQgaXMgaW4gdGhlIGZ1dHVyZSwgdGhliCAgY2FsbCBmYWlscyB3aXRoIGBFcmFOb3RTdGFydGVkYC7kLSBUaGUgZmVlIGlzIHdhaXZlZCBpZiB0aGUgc2xhc2ggaXMgc3VjY2Vzc2Z1bGx5IGFwcGxpZWQuAFQjIyBGdXR1cmUgSW1wcm92ZW1lbnRhAS0gSW1wbGVtZW50IGFuICoqb2ZmLWNoYWluIHdvcmtlciAoT0NXKSB0YXNrKiogdG8gYXV0b21hdGljYWxseSBhcHBseSBzbGFzaGVzIHdoZW4gdGhlcmW4ICBpcyB1bnVzZWQgYmxvY2sgc3BhY2UsIGltcHJvdmluZyBlZmZpY2llbmN5LjhwcnVuZV9lcmFfc3RlcAQBDGVyYTgBIEVyYUluZGV4ACAsYQFQZXJmb3JtIG9uZSBzdGVwIG9mIGVyYSBwcnVuaW5nIHRvIHByZXZlbnQgUG9WIHNpemUgZXhoYXVzdGlvbiBmcm9tIHVuYm91bmRlZCBkZWxldGlvbnMuADEBVGhpcyBleHRyaW5zaWMgZW5hYmxlcyBwZXJtaXNzaW9ubGVzcyBsYXp5IHBydW5pbmcgb2YgZXJhIGRhdGEgYnkgcGVyZm9ybWluZy0BaW5jcmVtZW50YWwgZGVsZXRpb24gb2Ygc3RvcmFnZSBpdGVtcy4gRWFjaCBjYWxsIHByb2Nlc3NlcyBhIGxpbWl0ZWQgbnVtYmVyJQFvZiBpdGVtcyBiYXNlZCBvbiBhdmFpbGFibGUgYmxvY2sgd2VpZ2h0IHRvIGF2b2lkIGV4Y2VlZGluZyBibG9jayBsaW1pdHMuADUBUmV0dXJucyBgUGF5czo6Tm9gIHdoZW4gd29yayBpcyBwZXJmb3JtZWQgdG8gaW5jZW50aXZpemUgcmVndWxhciBtYWludGVuYW5jZS4FAUFueW9uZSBjYW4gY2FsbCB0aGlzIHRvIGhlbHAgbWFpbnRhaW4gdGhlIGNoYWluJ3Mgc3RvcmFnZSBoZWFsdGguAA0BVGhlIGVyYSBtdXN0IGJlIGVsaWdpYmxlIGZvciBwcnVuaW5nIChvbGRlciB0aGFuIEhpc3RvcnlEZXB0aCArIDEpLjkBQ2hlY2sgYEVyYVBydW5pbmdTdGF0ZWAgc3RvcmFnZSB0byBzZWUgaWYgYW4gZXJhIG5lZWRzIHBydW5pbmcgYmVmb3JlIGNhbGxpbmcuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpEGCFBwYWxsZXRfc3Rha2luZ19hc3luY0RSZXdhcmREZXN0aW5hdGlvbgQkQWNjb3VudElkAQQBFBhTdGFrZWQAAAAUU3Rhc2gAAQAoQ29udHJvbGxlcgACABxBY2NvdW50BAAEASRBY2NvdW50SWQAAwAQTm9uZQAEAACVBghQcGFsbGV0X3N0YWtpbmdfYXN5bmM4VmFsaWRhdG9yUHJlZnMAAAgBKGNvbW1pc3Npb26ZBgEcUGVyYmlsbAABHGJsb2NrZWRdAQEQYm9vbAAAmQYAAAYtBQCdBgAAAgAAoQYMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJjZW50AAAEAAwBCHU4AAClBgAAAqkGAKkGAAAECAQtBQCtBhBQcGFsbGV0X3N0YWtpbmdfYXN5bmMYcGFsbGV0GHBhbGxldCBDb25maWdPcAQEVAFZAQEMEE5vb3AAAAAMU2V0BABZAQEEVAABABhSZW1vdmUAAgAAsQYQUHBhbGxldF9zdGFraW5nX2FzeW5jGHBhbGxldBhwYWxsZXQgQ29uZmlnT3AEBFQBOAEMEE5vb3AAAAAMU2V0BAA4AQRUAAEAGFJlbW92ZQACAAC1BhBQcGFsbGV0X3N0YWtpbmdfYXN5bmMYcGFsbGV0GHBhbGxldCBDb25maWdPcAQEVAGhBgEMEE5vb3AAAAAMU2V0BAChBgEEVAABABhSZW1vdmUAAgAAuQYQUHBhbGxldF9zdGFraW5nX2FzeW5jGHBhbGxldBhwYWxsZXQgQ29uZmlnT3AEBFQBLQUBDBBOb29wAAAADFNldAQALQUBBFQAAQAYUmVtb3ZlAAIAAL0GEFBwYWxsZXRfc3Rha2luZ19hc3luYxhwYWxsZXQYcGFsbGV0IENvbmZpZ09wBARUAV0BAQwQTm9vcAAAAAxTZXQEAF0BAQRUAAEAGFJlbW92ZQACAADBBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQQEUwAABABhAQEYVmVjPFQ+AADFBgQYT3B0aW9uBARUAckGAQgQTm9uZQAAABBTb21lBADJBgAAAQAAyQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHNBgRTAAAEANEGARhWZWM8VD4AAM0GDFBwYWxsZXRfc3Rha2luZ19hc3luYxhsZWRnZXIsVW5sb2NrQ2h1bmsEHEJhbGFuY2UBWQEACAEUdmFsdWVVAQEcQmFsYW5jZQABDGVyYWQBIEVyYUluZGV4AADRBgAAAs0GANUGAAAEDAQtBTgA2QYMNHBhbGxldF9yZXZpdmUYcGFsbGV0EENhbGwEBFQAATQwZXRoX3RyYW5zYWN0BAEccGF5bG9hZBgBHFZlYzx1OD4AADAtAUEgcmF3IEVWTSB0cmFuc2FjdGlvbiwgdHlwaWNhbGx5IGRpc3BhdGNoZWQgYnkgYW4gRXRoZXJldW0gSlNPTi1SUEMgc2VydmVyLgAwIyBQYXJhbWV0ZXJzAOwqIGBwYXlsb2FkYDogVGhlIGVuY29kZWQgW2BjcmF0ZTo6ZXZtOjpUcmFuc2FjdGlvblNpZ25lZGBdLgAYIyBOb3RlAFEBVGhpcyBjYWxsIGNhbm5vdCBiZSBkaXNwYXRjaGVkIGRpcmVjdGx5OyBhdHRlbXB0aW5nIHRvIGRvIHNvIHdpbGwgcmVzdWx0IGluIGEgZmFpbGVkUQF0cmFuc2FjdGlvbi4gSXQgc2VydmVzIGFzIGEgd3JhcHBlciBmb3IgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24uIFdoZW4gc3VibWl0dGVkLCB0aGVZAXJ1bnRpbWUgY29udmVydHMgaXQgaW50byBhIFtgc3BfcnVudGltZTo6Z2VuZXJpYzo6Q2hlY2tlZEV4dHJpbnNpY2BdIGJ5IHJlY292ZXJpbmcgdGhlmHNpZ25lciBhbmQgdmFsaWRhdGluZyB0aGUgdHJhbnNhY3Rpb24uEGNhbGwUARBkZXN03QYBEEgxNjAAARR2YWx1ZVUBATBCYWxhbmNlT2Y8VD4AATB3ZWlnaHRfbGltaXQVAQEYV2VpZ2h0AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0VQEBMEJhbGFuY2VPZjxUPgABEGRhdGEYARxWZWM8dTg+AAFABQFNYWtlcyBhIGNhbGwgdG8gYW4gYWNjb3VudCwgb3B0aW9uYWxseSB0cmFuc2ZlcnJpbmcgc29tZSBiYWxhbmNlLgAwIyBQYXJhbWV0ZXJzAKgqIGBkZXN0YDogQWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gY2FsbC78KiBgdmFsdWVgOiBUaGUgYmFsYW5jZSB0byB0cmFuc2ZlciBmcm9tIHRoZSBgb3JpZ2luYCB0byBgZGVzdGAuLQEqIGB3ZWlnaHRfbGltaXRgOiBUaGUgd2VpZ2h0IGxpbWl0IGVuZm9yY2VkIHdoZW4gZXhlY3V0aW5nIHRoZSBjb25zdHJ1Y3Rvci5VASogYHN0b3JhZ2VfZGVwb3NpdF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiBiYWxhbmNlIHRoYXQgY2FuIGJlIGNoYXJnZWQgZnJvbSB0aGWkICBjYWxsZXIgdG8gcGF5IGZvciB0aGUgc3RvcmFnZSBjb25zdW1lZC7EKiBgZGF0YWA6IFRoZSBpbnB1dCBkYXRhIHRvIHBhc3MgdG8gdGhlIGNvbnRyYWN0LgAlASogSWYgdGhlIGFjY291bnQgaXMgYSBzbWFydC1jb250cmFjdCBhY2NvdW50LCB0aGUgYXNzb2NpYXRlZCBjb2RlIHdpbGwgYmWsZXhlY3V0ZWQgYW5kIGFueSB2YWx1ZSB3aWxsIGJlIHRyYW5zZmVycmVkLhUBKiBJZiB0aGUgYWNjb3VudCBpcyBhIHJlZ3VsYXIgYWNjb3VudCwgYW55IHZhbHVlIHdpbGwgYmUgdHJhbnNmZXJyZWQuRQEqIElmIG5vIGFjY291bnQgZXhpc3RzIGFuZCB0aGUgY2FsbCB2YWx1ZSBpcyBub3QgbGVzcyB0aGFuIGBleGlzdGVudGlhbF9kZXBvc2l0YCwRAWEgcmVndWxhciBhY2NvdW50IHdpbGwgYmUgY3JlYXRlZCBhbmQgYW55IHZhbHVlIHdpbGwgYmUgdHJhbnNmZXJyZWQuLGluc3RhbnRpYXRlGAEUdmFsdWVVAQEwQmFsYW5jZU9mPFQ+AAEwd2VpZ2h0X2xpbWl0FQEBGFdlaWdodAABVHN0b3JhZ2VfZGVwb3NpdF9saW1pdFUBATBCYWxhbmNlT2Y8VD4AASRjb2RlX2hhc2hAATRzcF9jb3JlOjpIMjU2AAEQZGF0YRgBHFZlYzx1OD4AARBzYWx04QYBQE9wdGlvbjxbdTg7IDMyXT4AAhT0SW5zdGFudGlhdGVzIGEgY29udHJhY3QgZnJvbSBhIHByZXZpb3VzbHkgZGVwbG95ZWQgdm0gYmluYXJ5LgA1AVRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIFtgU2VsZjo6aW5zdGFudGlhdGVfd2l0aF9jb2RlYF0gYnV0IHdpdGhvdXQgdGhlQQFjb2RlIGRlcGxveW1lbnQgc3RlcC4gSW5zdGVhZCwgdGhlIGBjb2RlX2hhc2hgIG9mIGFuIG9uLWNoYWluIGRlcGxveWVkIHZtIGJpbmFyeURtdXN0IGJlIHN1cHBsaWVkLlRpbnN0YW50aWF0ZV93aXRoX2NvZGUYARR2YWx1ZVUBATBCYWxhbmNlT2Y8VD4AATB3ZWlnaHRfbGltaXQVAQEYV2VpZ2h0AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0VQEBMEJhbGFuY2VPZjxUPgABEGNvZGUYARxWZWM8dTg+AAEQZGF0YRgBHFZlYzx1OD4AARBzYWx04QYBQE9wdGlvbjxbdTg7IDMyXT4AA2wxAUluc3RhbnRpYXRlcyBhIG5ldyBjb250cmFjdCBmcm9tIHRoZSBzdXBwbGllZCBgY29kZWAgb3B0aW9uYWxseSB0cmFuc2ZlcnJpbmc0c29tZSBiYWxhbmNlLgAhAVRoaXMgZGlzcGF0Y2hhYmxlIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgY2FsbGluZyBbYFNlbGY6OnVwbG9hZF9jb2RlYF0gKz0BW2BTZWxmOjppbnN0YW50aWF0ZWBdLiBCdW5kbGluZyB0aGVtIHRvZ2V0aGVyIHByb3ZpZGVzIGVmZmljaWVuY3kgZ2FpbnMuIFBsZWFzZdhhbHNvIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uIG9mIFtgU2VsZjo6dXBsb2FkX2NvZGVgXS4AMCMgUGFyYW1ldGVycwBNASogYHZhbHVlYDogVGhlIGJhbGFuY2UgdG8gdHJhbnNmZXIgZnJvbSB0aGUgYG9yaWdpbmAgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgY29udHJhY3QuLQEqIGB3ZWlnaHRfbGltaXRgOiBUaGUgd2VpZ2h0IGxpbWl0IGVuZm9yY2VkIHdoZW4gZXhlY3V0aW5nIHRoZSBjb25zdHJ1Y3Rvci5VASogYHN0b3JhZ2VfZGVwb3NpdF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiBiYWxhbmNlIHRoYXQgY2FuIGJlIGNoYXJnZWQvcmVzZXJ2ZWTIICBmcm9tIHRoZSBjYWxsZXIgdG8gcGF5IGZvciB0aGUgc3RvcmFnZSBjb25zdW1lZC7MKiBgY29kZWA6IFRoZSBjb250cmFjdCBjb2RlIHRvIGRlcGxveSBpbiByYXcgYnl0ZXMu9CogYGRhdGFgOiBUaGUgaW5wdXQgZGF0YSB0byBwYXNzIHRvIHRoZSBjb250cmFjdCBjb25zdHJ1Y3Rvci49ASogYHNhbHRgOiBVc2VkIGZvciB0aGUgYWRkcmVzcyBkZXJpdmF0aW9uLiBJZiBgU29tZWAgaXMgc3VwcGxpZWQgdGhlbiBgQ1JFQVRFMmDUCXNlbWFudGljcyBhcmUgdXNlZC4gSWYgYE5vbmVgIHRoZW4gYENSQVRFMWAgaXMgdXNlZC4AAJRJbnN0YW50aWF0aW9uIGlzIGV4ZWN1dGVkIGFzIGZvbGxvd3M6ADkBLSBUaGUgc3VwcGxpZWQgYGNvZGVgIGlzIGRlcGxveWVkLCBhbmQgYSBgY29kZV9oYXNoYCBpcyBjcmVhdGVkIGZvciB0aGF0IGNvZGUuWQEtIElmIHRoZSBgY29kZV9oYXNoYCBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgY2hhaW4gdGhlIHVuZGVybHlpbmcgYGNvZGVgIHdpbGwgYmUgc2hhcmVkLkkBLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBpcyBjb21wdXRlZCBiYXNlZCBvbiB0aGUgc2VuZGVyLCBjb2RlX2hhc2ggYW5kIHRoZSBzYWx0LgEBLSBUaGUgc21hcnQtY29udHJhY3QgYWNjb3VudCBpcyBjcmVhdGVkIGF0IHRoZSBjb21wdXRlZCBhZGRyZXNzLsAtIFRoZSBgdmFsdWVgIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgYWNjb3VudC5BAS0gVGhlIGBkZXBsb3lgIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZSBuZXdseS1jcmVhdGVkIGFjY291bnQuZGV0aF9pbnN0YW50aWF0ZV93aXRoX2NvZGUgARR2YWx1ZeUGARBVMjU2AAEwd2VpZ2h0X2xpbWl0FQEBGFdlaWdodAABNGV0aF9nYXNfbGltaXTlBgEQVTI1NgABEGNvZGUYARxWZWM8dTg+AAEQZGF0YRgBHFZlYzx1OD4AAUx0cmFuc2FjdGlvbl9lbmNvZGVkGAEcVmVjPHU4PgABTGVmZmVjdGl2ZV9nYXNfcHJpY2XlBgEQVTI1NgABLGVuY29kZWRfbGVuOAEMdTMyAApUPQFTYW1lIGFzIFtgU2VsZjo6aW5zdGFudGlhdGVfd2l0aF9jb2RlYF0sIGJ1dCBpbnRlbmRlZCB0byBiZSBkaXNwYXRjaGVkICoqb25seSoq6GJ5IGFuIEVWTSB0cmFuc2FjdGlvbiB0aHJvdWdoIHRoZSBFVk0gY29tcGF0aWJpbGl0eSBsYXllci4AMCMgUGFyYW1ldGVycwBNASogYHZhbHVlYDogVGhlIGJhbGFuY2UgdG8gdHJhbnNmZXIgZnJvbSB0aGUgYG9yaWdpbmAgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgY29udHJhY3QuVQEqIGB3ZWlnaHRfbGltaXRgOiBUaGUgZ2FzIGxpbWl0IHVzZWQgdG8gZGVyaXZlIHRoZSB0cmFuc2FjdGlvbiB3ZWlnaHQgZm9yIHRyYW5zYWN0aW9uJCAgcGF5bWVudF0BKiBgZXRoX2dhc19saW1pdGA6IFRoZSBFdGhlcmV1bSBnYXMgbGltaXQgZ292ZXJuaW5nIHRoZSByZXNvdXJjZSB1c2FnZSBvZiB0aGUgZXhlY3V0aW9uzCogYGNvZGVgOiBUaGUgY29udHJhY3QgY29kZSB0byBkZXBsb3kgaW4gcmF3IGJ5dGVzLvQqIGBkYXRhYDogVGhlIGlucHV0IGRhdGEgdG8gcGFzcyB0byB0aGUgY29udHJhY3QgY29uc3RydWN0b3IuNQEqIGB0cmFuc2FjdGlvbl9lbmNvZGVkYDogVGhlIFJMUCBlbmNvZGluZyBvZiB0aGUgc2lnbmVkIEV0aGVyZXVtIHRyYW5zYWN0aW9uLF0BICByZXByZXNlbnRlZCBhcyBbY3JhdGU6OmV2bTo6VHJhbnNhY3Rpb25TaWduZWRdLCBwcm92aWRlZCBieSB0aGUgRXRoZXJldW0gd2FsbGV0LiBUaGlz1CAgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIEV0aGVyZXVtIHRyYW5zYWN0aW9uIHJvb3QuxCogZWZmZWN0aXZlX2dhc19wcmljZTogdGhlIHByaWNlIG9mIGEgdW5pdCBvZiBnYXMFASogZW5jb2RlZCBsZW46IHRoZSBieXRlIGNvZGUgc2l6ZSBvZiB0aGUgYGV0aF90cmFuc2FjdGAgZXh0cmluc2ljADkBQ2FsbGluZyB0aGlzIGRpc3BhdGNoYWJsZSBlbnN1cmVzIHRoYXQgdGhlIG9yaWdpbidzIG5vbmNlIGlzIGJ1bXBlZCBvbmx5IG9uY2UsYQF2aWEgdGhlIGBDaGVja05vbmNlYCB0cmFuc2FjdGlvbiBleHRlbnNpb24uIEluIGNvbnRyYXN0LCBbYFNlbGY6Omluc3RhbnRpYXRlX3dpdGhfY29kZWBdTQFhbHNvIGJ1bXBzIHRoZSBub25jZSBhZnRlciBjb250cmFjdCBpbnN0YW50aWF0aW9uLCBzaW5jZSBpdCBtYXkgYmUgaW52b2tlZCBtdWx0aXBsZZh0aW1lcyB3aXRoaW4gYSBiYXRjaCBjYWxsIHRyYW5zYWN0aW9uLiBldGhfY2FsbCABEGRlc3TdBgEQSDE2MAABFHZhbHVl5QYBEFUyNTYAATB3ZWlnaHRfbGltaXQVAQEYV2VpZ2h0AAE0ZXRoX2dhc19saW1pdOUGARBVMjU2AAEQZGF0YRgBHFZlYzx1OD4AAUx0cmFuc2FjdGlvbl9lbmNvZGVkGAEcVmVjPHU4PgABTGVmZmVjdGl2ZV9nYXNfcHJpY2XlBgEQVTI1NgABLGVuY29kZWRfbGVuOAEMdTMyAAtA+FNhbWUgYXMgW2BTZWxmOjpjYWxsYF0sIGJ1dCBpbnRlbmRlZCB0byBiZSBkaXNwYXRjaGVkICoqb25seSoq6GJ5IGFuIEVWTSB0cmFuc2FjdGlvbiB0aHJvdWdoIHRoZSBFVk0gY29tcGF0aWJpbGl0eSBsYXllci4AMCMgUGFyYW1ldGVycwDoKiBgZGVzdGA6IFRoZSBFdGhlcmV1bSBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IHRvIGJlIGNhbGxlZE0BKiBgdmFsdWVgOiBUaGUgYmFsYW5jZSB0byB0cmFuc2ZlciBmcm9tIHRoZSBgb3JpZ2luYCB0byB0aGUgbmV3bHkgY3JlYXRlZCBjb250cmFjdC5VASogYHdlaWdodF9saW1pdGA6IFRoZSBnYXMgbGltaXQgdXNlZCB0byBkZXJpdmUgdGhlIHRyYW5zYWN0aW9uIHdlaWdodCBmb3IgdHJhbnNhY3Rpb24kICBwYXltZW50XQEqIGBldGhfZ2FzX2xpbWl0YDogVGhlIEV0aGVyZXVtIGdhcyBsaW1pdCBnb3Zlcm5pbmcgdGhlIHJlc291cmNlIHVzYWdlIG9mIHRoZSBleGVjdXRpb270KiBgZGF0YWA6IFRoZSBpbnB1dCBkYXRhIHRvIHBhc3MgdG8gdGhlIGNvbnRyYWN0IGNvbnN0cnVjdG9yLjUBKiBgdHJhbnNhY3Rpb25fZW5jb2RlZGA6IFRoZSBSTFAgZW5jb2Rpbmcgb2YgdGhlIHNpZ25lZCBFdGhlcmV1bSB0cmFuc2FjdGlvbixdASAgcmVwcmVzZW50ZWQgYXMgW2NyYXRlOjpldm06OlRyYW5zYWN0aW9uU2lnbmVkXSwgcHJvdmlkZWQgYnkgdGhlIEV0aGVyZXVtIHdhbGxldC4gVGhpc9QgIGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBFdGhlcmV1bSB0cmFuc2FjdGlvbiByb290LsQqIGVmZmVjdGl2ZV9nYXNfcHJpY2U6IHRoZSBwcmljZSBvZiBhIHVuaXQgb2YgZ2FzBQEqIGVuY29kZWQgbGVuOiB0aGUgYnl0ZSBjb2RlIHNpemUgb2YgdGhlIGBldGhfdHJhbnNhY3RgIGV4dHJpbnNpY0hldGhfc3Vic3RyYXRlX2NhbGwIARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABTHRyYW5zYWN0aW9uX2VuY29kZWQYARxWZWM8dTg+AAwo/EV4ZWN1dGVzIGEgU3Vic3RyYXRlIHJ1bnRpbWUgY2FsbCBmcm9tIGFuIEV0aGVyZXVtIHRyYW5zYWN0aW9uLgBFAVRoaXMgZGlzcGF0Y2hhYmxlIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCAqKm9ubHkqKiB0aHJvdWdoIHRoZSBFVk0gY29tcGF0aWJpbGl0eRkBbGF5ZXIuIFRoZSBwcm92aWRlZCBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB1c2luZyBgUmF3T3JpZ2luOjpTaWduZWRgLgAwIyBQYXJhbWV0ZXJzAOQqIGBvcmlnaW5gOiBNdXN0IGJlIGFuIFtgT3JpZ2luOjpFdGhUcmFuc2FjdGlvbmBdIG9yaWdpbi7AKiBgY2FsbGA6IFRoZSBTdWJzdHJhdGUgcnVudGltZSBjYWxsIHRvIGV4ZWN1dGUuGQEqIGB0cmFuc2FjdGlvbl9lbmNvZGVkYDogVGhlIFJMUCBlbmNvZGluZyBvZiB0aGUgRXRoZXJldW0gdHJhbnNhY3Rpb24sLHVwbG9hZF9jb2RlCAEQY29kZRgBHFZlYzx1OD4AAVRzdG9yYWdlX2RlcG9zaXRfbGltaXRVAQEwQmFsYW5jZU9mPFQ+AAQ47FVwbG9hZCBuZXcgYGNvZGVgIHdpdGhvdXQgaW5zdGFudGlhdGluZyBhIGNvbnRyYWN0IGZyb20gaXQuACEBSWYgdGhlIGNvZGUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBhIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgZnJvbSB0aGUgY2FsbGVyDQFUaGUgc2l6ZSBvZiB0aGUgcmVzZXJ2ZSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIHRoZSBzdXBwbGllZCBgY29kZWAuABgjIE5vdGUAWQFBbnlvbmUgY2FuIGluc3RhbnRpYXRlIGEgY29udHJhY3QgZnJvbSBhbnkgdXBsb2FkZWQgY29kZSBhbmQgdGh1cyBwcmV2ZW50IGl0cyByZW1vdmFsLkEBVG8gYXZvaWQgdGhpcyBzaXR1YXRpb24gYSBjb25zdHJ1Y3RvciBjb3VsZCBlbXBsb3kgYWNjZXNzIGNvbnRyb2wgc28gdGhhdCBpdCBjYW45AW9ubHkgYmUgaW5zdGFudGlhdGVkIGJ5IHBlcm1pc3Npb25lZCBlbnRpdGllcy4gVGhlIHNhbWUgaXMgdHJ1ZSB3aGVuIHVwbG9hZGluZ6B0aHJvdWdoIFtgU2VsZjo6aW5zdGFudGlhdGVfd2l0aF9jb2RlYF0uAEUBSWYgdGhlIHJlZmNvdW50IG9mIHRoZSBjb2RlIHJlYWNoZXMgemVybyBhZnRlciB0ZXJtaW5hdGluZyB0aGUgbGFzdCBjb250cmFjdCB0aGF09HJlZmVyZW5jZXMgdGhpcyBjb2RlLCB0aGUgY29kZSB3aWxsIGJlIHJlbW92ZWQgYXV0b21hdGljYWxseS4scmVtb3ZlX2NvZGUEASRjb2RlX2hhc2hAATRzcF9jb3JlOjpIMjU2AAUQNQFSZW1vdmUgdGhlIGNvZGUgc3RvcmVkIHVuZGVyIGBjb2RlX2hhc2hgIGFuZCByZWZ1bmQgdGhlIGRlcG9zaXQgdG8gaXRzIG93bmVyLgBFAUEgY29kZSBjYW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvcmlnaW5hbCB1cGxvYWRlciAoaXRzIG93bmVyKSBhbmQgb25seSBpZiBpdCBpc2Rub3QgdXNlZCBieSBhbnkgY29udHJhY3QuIHNldF9jb2RlCAEQZGVzdN0GARBIMTYwAAEkY29kZV9oYXNoQAE0c3BfY29yZTo6SDI1NgAGKAkBUHJpdmlsZWdlZCBmdW5jdGlvbiB0aGF0IGNoYW5nZXMgdGhlIGNvZGUgb2YgYW4gZXhpc3RpbmcgY29udHJhY3QuAEUBVGhpcyB0YWtlcyBjYXJlIG9mIHVwZGF0aW5nIHJlZmNvdW50cyBhbmQgYWxsIG90aGVyIG5lY2Vzc2FyeSBvcGVyYXRpb25zLiBSZXR1cm5z6GFuIGVycm9yIGlmIGVpdGhlciB0aGUgYGNvZGVfaGFzaGAgb3IgYGRlc3RgIGRvIG5vdCBleGlzdC4AGCMgTm90ZQAxAVRoaXMgZG9lcyAqKm5vdCoqIGNoYW5nZSB0aGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgaW4gcXVlc3Rpb24uIFRoaXMgbWVhbnM9AXRoYXQgdGhlIGNvbnRyYWN0IGFkZHJlc3MgaXMgbm8gbG9uZ2VyIGRlcml2ZWQgZnJvbSBpdHMgY29kZSBoYXNoIGFmdGVyIGNhbGxpbmdIdGhpcyBkaXNwYXRjaGFibGUuLG1hcF9hY2NvdW50AAcQQQFSZWdpc3RlciB0aGUgY2FsbGVycyBhY2NvdW50IGlkIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gY29udHJhY3QgaW50ZXJhY3Rpb25zLgBdAVRoaXMgd2lsbCBlcnJvciBpZiB0aGUgb3JpZ2luIGlzIGFscmVhZHkgbWFwcGVkIG9yIGlzIGEgZXRoIG5hdGl2ZSBgQWRkcmVzczIwYC4gSXQgd2lsbB0BdGFrZSBhIGRlcG9zaXQgdGhhdCBjYW4gYmUgcmVsZWFzZWQgYnkgY2FsbGluZyBbYFNlbGY6OnVubWFwX2FjY291bnRgXS40dW5tYXBfYWNjb3VudAAIEPxVbnJlZ2lzdGVyIHRoZSBjYWxsZXJzIGFjY291bnQgaWQgaW4gb3JkZXIgdG8gZnJlZSB0aGUgZGVwb3NpdC4AQQFUaGVyZSBpcyBubyByZWFzb24gdG8gZXZlciBjYWxsIHRoaXMgZnVuY3Rpb24gb3RoZXIgdGhhbiBmcmVlaW5nIHVwIHRoZSBkZXBvc2l0LvhUaGlzIGlzIG9ubHkgdXNlZnVsIHdoZW4gdGhlIGFjY291bnQgc2hvdWxkIG5vIGxvbmdlciBiZSB1c2VkLnBkaXNwYXRjaF9hc19mYWxsYmFja19hY2NvdW50BAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ACRQdAURpc3BhdGNoIGFuIGBjYWxsYCB3aXRoIHRoZSBvcmlnaW4gc2V0IHRvIHRoZSBjYWxsZXJzIGZhbGxiYWNrIGFkZHJlc3MuAGEBRXZlcnkgYEFjY291bnRJZDMyYCBjYW4gY29udHJvbCBpdHMgY29ycmVzcG9uZGluZyBmYWxsYmFjayBhY2NvdW50LiBUaGUgZmFsbGJhY2sgYWNjb3VudEEBaXMgdGhlIGBBY2NvdW50SWQyMGAgd2l0aCB0aGUgbGFzdCAxMiBieXRlcyBzZXQgdG8gYDB4RUVgLiBUaGlzIGlzIGVzc2VudGlhbGx5IGFVAXJlY292ZXJ5IGZ1bmN0aW9uIGluIGNhc2UgYW4gYEFjY291bnRJZDIwYCB3YXMgdXNlZCB3aXRob3V0IGNyZWF0aW5nIGEgbWFwcGluZyBmaXJzdC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu3QYIPHByaW1pdGl2ZV90eXBlcxBIMTYwAAAEABwBIFt1ODsgMjBdAADhBgQYT3B0aW9uBARUAQgBCBBOb25lAAAAEFNvbWUEAAgAAAEAAOUGCDxwcmltaXRpdmVfdHlwZXMQVTI1NgAABADpBgEgW3U2NDsgNF0AAOkGAAADBAAAACgA7QYMLHBhbGxldF9zdWRvGHBhbGxldBBDYWxsBARUAAEUEHN1ZG8EARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAABDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi5Uc3Vkb191bmNoZWNrZWRfd2VpZ2h0CAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AARh3ZWlnaHQVAQEYV2VpZ2h0AAEUNQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLi0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhlsFN1ZG8gdXNlciB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4cc2V0X2tleQQBDG5ldwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAIIXQFBdXRoZW50aWNhdGVzIHRoZSBjdXJyZW50IHN1ZG8ga2V5IGFuZCBzZXRzIHRoZSBnaXZlbiBBY2NvdW50SWQgKGBuZXdgKSBhcyB0aGUgbmV3IHN1ZG8Qa2V5LhxzdWRvX2FzCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADEE0BQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21AYSBnaXZlbiBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uKHJlbW92ZV9rZXkABAyEUGVybWFuZW50bHkgcmVtb3ZlcyB0aGUgc3VkbyBrZXkuAGwqKlRoaXMgY2Fubm90IGJlIHVuLWRvbmUuKioEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu8QYMNHBhbGxldF9haF9vcHMYcGFsbGV0EENhbGwEBFQAARRcdW5yZXNlcnZlX2xlYXNlX2RlcG9zaXQMARRibG9jazgBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZGVwb3NpdG9ykQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEccGFyYV9pZKABGFBhcmFJZAAAIPhVbnJlc2VydmUgdGhlIGRlcG9zaXQgdGhhdCB3YXMgdGFrZW4gZm9yIGNyZWF0aW5nIGEgY3Jvd2Rsb2FuLgBdAVRoaXMgY2FuIGJlIGNhbGxlZCBieSBhbnkgc2lnbmVkIG9yaWdpbi4gSXQgdW5yZXNlcnZlcyB0aGUgbGVhc2UgZGVwb3NpdCBvbiB0aGUgYWNjb3VudFkBdGhhdCB3b24gdGhlIGxlYXNlIGF1Y3Rpb24uIEl0IGNhbiBiZSB1bnJlc2VydmVkIG9uY2UgYWxsIGxlYXNlcyBleHBpcmVkLiBOb3RlIHRoYXQgaXRRAXdpbGwgYmUgY2FsbGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBgd2l0aGRyYXdfY3Jvd2Rsb2FuX2NvbnRyaWJ1dGlvbmAgZm9yIHRoZSBtYXRjaGluZ0hjcm93ZGxvYW4gYWNjb3VudC4AUQFTb2xvIGJpZGRlciBhY2NvdW50cyB0aGF0IHdvbiBsZWFzZSBhdWN0aW9ucyBjYW4gdXNlIHRoaXMgdG8gdW5yZXNlcnZlIHRoZWlyIGFtb3VudC58d2l0aGRyYXdfY3Jvd2Rsb2FuX2NvbnRyaWJ1dGlvbgwBFGJsb2NrOAFEQmxvY2tOdW1iZXJGb3I8VD4AASRkZXBvc2l0b3KRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AARxwYXJhX2lkoAEYUGFyYUlkAAEcyFdpdGhkcmF3IHRoZSBjb250cmlidXRpb24gb2YgYSBmaW5pc2hlZCBjcm93ZGxvYW4uANBBIGNyb3dkbG9hbiBjb250cmlidXRpb24gY2FuIGJlIHdpdGhkcmF3biBpZiBlaXRoZXI61C0gVGhlIGNyb3dkbG9hbiBmYWlsZWQgdG8gaW4gYW4gYXVjdGlvbiBhbmQgdGltZWQgb3V0nC0gV29uIGFuIGF1Y3Rpb24gYW5kIGFsbCBsZWFzZXMgZXhwaXJlZACMQ2FuIGJlIGNhbGxlZCBieSBhbnkgc2lnbmVkIG9yaWdpbi5sdW5yZXNlcnZlX2Nyb3dkbG9hbl9yZXNlcnZlDAEUYmxvY2s4AURCbG9ja051bWJlckZvcjxUPgABJGRlcG9zaXRvcpEBAVBPcHRpb248VDo6QWNjb3VudElkPgABHHBhcmFfaWSgARhQYXJhSWQAAiD4VW5yZXNlcnZlIHRoZSBkZXBvc2l0IHRoYXQgd2FzIHRha2VuIGZvciBjcmVhdGluZyBhIGNyb3dkbG9hbi4AfFRoaXMgY2FuIGJlIGNhbGxlZCBvbmNlIGVpdGhlcjrYLSBUaGUgY3Jvd2Rsb2FuIGZhaWxlZCB0byB3aW4gYW4gYXVjdGlvbiBhbmQgdGltZWQgb3V0IQEtIFdvbiBhbiBhdWN0aW9uLCBhbGwgbGVhc2VzIGV4cGlyZWQgYW5kIGFsbCBjb250cmlidXRpb25zIGFyZSB3aXRoZHJhd24AWQFDYW4gYmUgY2FsbGVkIGJ5IGFueSBzaWduZWQgb3JpZ2luLiBUaGUgY29uZGl0aW9uIHRoYXQgYWxsIGNvbnRyaWJ1dGlvbnMgYXJlIHdpdGhkcmF3buBpcyBpbiBwbGFjZSBzaW5jZSB0aGUgcmVzZXJ2ZSBhY3RzIGFzIGEgc3RvcmFnZSBkZXBvc2l0Lox0cmFuc2Zlcl90b19wb3N0X21pZ3JhdGlvbl90cmVhc3VyeQQBIGFzc2V0X2lkAQIB+EJveDw8VDo6RnVuZ2libGVzIGFzIEZ1bmdpYmxlc0luc3BlY3Q8VDo6QWNjb3VudElkPj46OkFzc2V0SWQ+AAMQSQFUcmFuc2ZlciB0aGUgYmFsYW5jZSBmcm9tIHRoZSBwcmUtbWlncmF0aW9uIHRyZWFzdXJ5IGFjY291bnQgdG8gdGhlIHBvc3QtbWlncmF0aW9uRHRyZWFzdXJ5IGFjY291bnQuAPhUaGlzIGNhbGwgY2FuIG9ubHkgYmUgY2FsbGVkIGFmdGVyIHRoZSBtaWdyYXRpb24gaXMgY29tcGxldGVkLsR0cmFuc2xhdGVfcGFyYV9zb3ZlcmVpZ25fY2hpbGRfdG9fc2libGluZ19kZXJpdmVkEAEccGFyYV9pZNUDAQx1MTYAATxkZXJpdmF0aW9uX3BhdGj1BgEgVmVjPHUxNj4AASxvbGRfYWNjb3VudAQBMFQ6OkFjY291bnRJZAABLG5ld19hY2NvdW50BAEwVDo6QWNjb3VudElkAAQsPQFUcmFuc2xhdGUgcmVjdXJzaXZlbHkgZGVyaXZlZCBwYXJhY2hhaW4gc292ZXJlaWduIGNoaWxkIGFjY291bnQgdG8gaXRzIHNpYmxpbmcuAGEBVXNlcyB0aGUgc2FtZSBkZXJpdmF0aW9uIHBhdGggb24gdGhlIHNpYmxpbmcuIFRoZSBvbGQgYW5kIG5ldyBhY2NvdW50IGFyZ3VtZW50cyBhcmUgb25seUEBd2l0bmVzcyBkYXRhIHRvIGVuc3VyZSBjb3JyZWN0IHVzYWdlLiBDYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIGBNaWdyYXRlT3JpZ2luYC4AOFRoaXMgbWlncmF0ZXM6UC0gTmF0aXZlIERPVCBiYWxhbmNlqC0gQWxsIGFzc2V0cyBsaXN0ZWQgaW4gYFQ6OlJlbGV2YW50QXNzZXRzYEQtIFN0YWtlZCBiYWxhbmNlcwBJAVRoaW5ncyBsaWtlIG5vbi1yZWxldmFudCBhc3NldHMgb3IgdmVzdGVkIHRyYW5zZmVycyBtYXkgcmVtYWluIG9uIHRoZSBvbGQgYWNjb3VudC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu9QYAAALVAwD5BgxIcGFsbGV0X2FoX21pZ3JhdG9yGHBhbGxldBBDYWxsBARUAAF8QHJlY2VpdmVfYWNjb3VudHMEASBhY2NvdW50c/0GAVBWZWM8UmNBY2NvdW50Rm9yPFQ+PgAADJhSZWNlaXZlIGFjY291bnRzIGZyb20gdGhlIFJlbGF5IENoYWluLgA9AVRoZSBhY2NvdW50cyBzZW50IHdpdGggYHBhbGxldF9yY19taWdyYXRvcjo6UGFsbGV0OjptaWdyYXRlX2FjY291bnRzYCBmdW5jdGlvbi5EcmVjZWl2ZV9tdWx0aXNpZ3MEASBhY2NvdW50c1EHAVBWZWM8UmNNdWx0aXNpZ09mPFQ+PgABFJxSZWNlaXZlIG11bHRpc2lncyBmcm9tIHRoZSBSZWxheSBDaGFpbi4ARQFUaGlzIHdpbGwgYmUgY2FsbGVkIGZyb20gYW4gWENNIGBUcmFuc2FjdGAgaW5zaWRlIGEgRE1QIGZyb20gdGhlIHJlbGF5IGNoYWluLiBUaGVobXVsdGlzaWdzIHdlcmUgcHJlcGFyZWQgYnn8YHBhbGxldF9yY19taWdyYXRvcjo6bXVsdGlzaWc6Ok11bHRpc2lnTWlncmF0b3I6Om1pZ3JhdGVfbWFueWAuVHJlY2VpdmVfcHJveHlfcHJveGllcwQBHHByb3hpZXNZBwGEVmVjPFJjUHJveHlPZjxULCBUOjpSY1Byb3h5VHlwZT4+AAIElFJlY2VpdmUgcHJveGllcyBmcm9tIHRoZSBSZWxheSBDaGFpbi5scmVjZWl2ZV9wcm94eV9hbm5vdW5jZW1lbnRzBAE0YW5ub3VuY2VtZW50c20HAXRWZWM8UmNQcm94eUFubm91bmNlbWVudE9mPFQ+PgADBMRSZWNlaXZlIHByb3h5IGFubm91bmNlbWVudHMgZnJvbSB0aGUgUmVsYXkgQ2hhaW4uXHJlY2VpdmVfcHJlaW1hZ2VfY2h1bmtzBAEYY2h1bmtzdQcBUFZlYzxSY1ByZWltYWdlQ2h1bms+AAQAfHJlY2VpdmVfcHJlaW1hZ2VfcmVxdWVzdF9zdGF0dXMEAThyZXF1ZXN0X3N0YXR1c4EHAWhWZWM8UG9ydGFibGVSZXF1ZXN0U3RhdHVzPgAFAHhyZWNlaXZlX3ByZWltYWdlX2xlZ2FjeV9zdGF0dXMEATRsZWdhY3lfc3RhdHVzmQcBgFZlYzxSY1ByZWltYWdlTGVnYWN5U3RhdHVzT2Y8VD4+AAYAaHJlY2VpdmVfbm9tX3Bvb2xzX21lc3NhZ2VzBAEgbWVzc2FnZXOhBwFkVmVjPFJjTm9tUG9vbHNNZXNzYWdlPFQ+PgAHAGRyZWNlaXZlX3Zlc3Rpbmdfc2NoZWR1bGVzBAEkc2NoZWR1bGVzCQgBZFZlYzxSY1Zlc3RpbmdTY2hlZHVsZTxUPj4ACABgcmVjZWl2ZV9yZWZlcmVuZGFfdmFsdWVzBAEYdmFsdWVzGQgBnFZlYzxSZWZlcmVuZGFNZXNzYWdlPFRyYWNrSWRPZjxULCAoKT4+PgAKBBkBUmVjZWl2ZSByZWZlcmVuZHVtIGNvdW50cywgZGVjaWRpbmcgY291bnRzLCB2b3RlcyBmb3IgdGhlIHRyYWNrIHF1ZXVlLkxyZWNlaXZlX3JlZmVyZW5kdW1zBAEscmVmZXJlbmR1bXMxCAGUVmVjPCh1MzIsIFJjUmVmZXJlbmR1bUluZm9PZjxULCAoKT4pPgALBKRSZWNlaXZlIHJlZmVyZW5kdW1zIGZyb20gdGhlIFJlbGF5IENoYWluLjhyZWNlaXZlX2NsYWltcwQBIG1lc3NhZ2VzYQgBZFZlYzxSY0NsYWltc01lc3NhZ2VPZjxUPj4ADABocmVjZWl2ZV9iYWdzX2xpc3RfbWVzc2FnZXMEASBtZXNzYWdlc3UIAXBWZWM8UG9ydGFibGVCYWdzTGlzdE1lc3NhZ2U+AA0AaHJlY2VpdmVfc2NoZWR1bGVyX21lc3NhZ2VzBAEgbWVzc2FnZXOFCAFwVmVjPFJjU2NoZWR1bGVyTWVzc2FnZU9mPFQ+PgAOADxyZWNlaXZlX2luZGljZXMEARxpbmRpY2VzmQgBYFZlYzxSY0luZGljZXNJbmRleE9mPFQ+PgAPAIhyZWNlaXZlX2NvbnZpY3Rpb25fdm90aW5nX21lc3NhZ2VzBAEgbWVzc2FnZXOhCAGMVmVjPFJjQ29udmljdGlvblZvdGluZ01lc3NhZ2VPZjxUPj4AEABkcmVjZWl2ZV9ib3VudGllc19tZXNzYWdlcwQBIG1lc3NhZ2Vz0QgBbFZlYzxSY0JvdW50aWVzTWVzc2FnZU9mPFQ+PgARAExyZWNlaXZlX2Fzc2V0X3JhdGVzBAEUcmF0ZXPpCAH0VmVjPCg8VCBhcyBwYWxsZXRfYXNzZXRfcmF0ZTo6Q29uZmlnPjo6QXNzZXRLaW5kLCBGaXhlZFUxMjgpPgASAGhyZWNlaXZlX2Nyb3dkbG9hbl9tZXNzYWdlcwQBIG1lc3NhZ2Vz8QgBcFZlYzxSY0Nyb3dkbG9hbk1lc3NhZ2VPZjxUPj4AEwBocmVjZWl2ZV9yZWZlcmVuZGFfbWV0YWRhdGEEASBtZXRhZGF0YfkIAbBWZWM8KHUzMiw8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46Okhhc2gpPgAUAGRyZWNlaXZlX3RyZWFzdXJ5X21lc3NhZ2VzBAEgbWVzc2FnZXMBCQFwVmVjPFBvcnRhYmxlVHJlYXN1cnlNZXNzYWdlPgAVAIRyZWNlaXZlX3NjaGVkdWxlcl9hZ2VuZGFfbWVzc2FnZXMEASBtZXNzYWdlcxkJATEBVmVjPFNjaGVkdWxlckFnZW5kYU1lc3NhZ2U8QmxvY2tOdW1iZXJGb3I8VD4sIHNjaGVkdWxlcjo6ClJjU2NoZWR1bGVkT2Y8VD4+PgAWAIhyZWNlaXZlX2RlbGVnYXRlZF9zdGFraW5nX21lc3NhZ2VzBAEgbWVzc2FnZXMtCQGQVmVjPFBvcnRhYmxlRGVsZWdhdGVkU3Rha2luZ01lc3NhZ2U+ABcAfHJlY2VpdmVfY2hpbGRfYm91bnRpZXNfbWVzc2FnZXMEASBtZXNzYWdlczUJAYRWZWM8UG9ydGFibGVDaGlsZEJvdW50aWVzTWVzc2FnZT4AGABgcmVjZWl2ZV9zdGFraW5nX21lc3NhZ2VzBAEgbWVzc2FnZXNJCQFsVmVjPFBvcnRhYmxlU3Rha2luZ01lc3NhZ2U+ABkAPGZvcmNlX3NldF9zdGFnZQQBFHN0YWdluQkBOE1pZ3JhdGlvblN0YWdlAGQQYFNldCB0aGUgbWlncmF0aW9uIHN0YWdlLgAJAVRoaXMgY2FsbCBpcyBpbnRlbmRlZCBmb3IgZW1lcmdlbmN5IHVzZSBvbmx5IGFuZCBpcyBndWFyZGVkIGJ5IHRoZWBbYENvbmZpZzo6QWRtaW5PcmlnaW5gXS48c3RhcnRfbWlncmF0aW9uAGUQZFN0YXJ0IHRoZSBkYXRhIG1pZ3JhdGlvbi4AXQFUaGlzIGlzIHR5cGljYWxseSBjYWxsZWQgYnkgdGhlIFJlbGF5IENoYWluIHRvIHN0YXJ0IHRoZSBtaWdyYXRpb24gb24gdGhlIEFzc2V0IEh1YiBhbmQFAXJlY2VpdmUgYSBoYW5kc2hha2UgbWVzc2FnZSBpbmRpY2F0aW5nIHRoZSBBc3NldCBIdWIncyByZWFkaW5lc3MuWHNldF9kbXBfcXVldWVfcHJpb3JpdHkEAQxuZXe9CQGMRG1wUXVldWVQcmlvcml0eTxCbG9ja051bWJlckZvcjxUPj4AZgykU2V0IHRoZSBETVAgcXVldWUgcHJpb3JpdHkgY29uZmlndXJhdGlvbi4AoENhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgYEFkbWluT3JpZ2luYC4sc2V0X21hbmFnZXIEAQxuZXeRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AZxBsU2V0IHRoZSBtYW5hZ2VyIGFjY291bnQgaWQuAEEBVGhlIG1hbmFnZXIgaGFzIHRoZSBzaW1pbGFyIHRvIFtgQ29uZmlnOjpBZG1pbk9yaWdpbmBdIHByaXZpbGVnZXMgZXhjZXB0IHRoYXQgaXToY2FuIG5vdCBzZXQgdGhlIG1hbmFnZXIgYWNjb3VudCBpZCB2aWEgYHNldF9tYW5hZ2VyYCBjYWxsLkBmaW5pc2hfbWlncmF0aW9uCAEQZGF0YcEJAaRPcHRpb248TWlncmF0aW9uRmluaXNoZWREYXRhPFQ6OkJhbGFuY2U+PgABPGNvb2xfb2ZmX2VuZF9hdDgBDHUzMgBuHFRGaW5pc2ggdGhlIG1pZ3JhdGlvbi4ARQFUaGlzIGlzIHR5cGljYWxseSBjYWxsZWQgYnkgdGhlIFJlbGF5IENoYWluIHRvIHNpZ25hbCB0aGUgbWlncmF0aW9uIGhhcyBmaW5pc2hlZC4AWQFUaGUgYGRhdGFgIHBhcmFtZXRlciBtaWdodCBiZSBgTm9uZWAgaWYgd2UgYXJlIHJ1bm5pbmcgdGhlIG1pZ3JhdGlvbiBmb3IgYSBzZWNvbmQgdGltZVEBZm9yIHNvbWUgcGFsbGV0cyBhbmQgaGF2ZSBhbHJlYWR5IHBlcmZvcm1lZCB0aGUgY2hlY2tpbmcgYWNjb3VudCBiYWxhbmNlIGNvcnJlY3Rpb24slHNvIHdlIGRvIG5vdCBuZWVkIHRvIGRvIGl0IHRoaXMgdGltZS5Ac2VuZF94Y21fbWVzc2FnZQgBEGRlc3StAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2U1AgFUQm94PFZlcnNpb25lZFhjbTwoKT4+AG8MNQFYQ00gc2VuZCBjYWxsIGlkZW50aWNhbCB0byB0aGUgW2BwYWxsZXRfeGNtOjpQYWxsZXQ6OnNlbmRgXSBjYWxsIGJ1dCB3aXRoIHRoZVkBW0NvbmZpZzo6U2VuZFhjbV0gcm91dGVyIHdoaWNoIHdpbGwgYmUgYWJsZSB0byBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBSZWxheSBDaGFpbiBkdXJpbmc4dGhlIG1pZ3JhdGlvbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu/QYAAAIBBwABBwxIcGFsbGV0X3JjX21pZ3JhdG9yIGFjY291bnRzHEFjY291bnQQJEFjY291bnRJZAEEHEJhbGFuY2UBWQEoSG9sZFJlYXNvbgEFBzBGcmVlemVSZWFzb24BIQcAKAEMd2hvBAEkQWNjb3VudElkAAEQZnJlZVkBARxCYWxhbmNlAAEgcmVzZXJ2ZWRZAQEcQmFsYW5jZQABGGZyb3plblkBARxCYWxhbmNlAAEUaG9sZHMpBwHYQm91bmRlZFZlYzxJZEFtb3VudDxIb2xkUmVhc29uLCBCYWxhbmNlPiwgQ29uc3RVMzI8NT4+AAEcZnJlZXplczUHAeBCb3VuZGVkVmVjPElkQW1vdW50PEZyZWV6ZVJlYXNvbiwgQmFsYW5jZT4sIENvbnN0VTMyPDU+PgABFGxvY2tzQQcBtEJvdW5kZWRWZWM8QmFsYW5jZUxvY2s8QmFsYW5jZT4sIENvbnN0VTMyPDU+PgABPHVubmFtZWRfcmVzZXJ2ZVkBARxCYWxhbmNlAAEkY29uc3VtZXJzDAEIdTgAASRwcm92aWRlcnMMAQh1OAAABQcMSHBhbGxldF9yY19taWdyYXRvchR0eXBlc0hQb3J0YWJsZUhvbGRSZWFzb24AARggUHJlaW1hZ2UEAAkHAWxwYWxsZXRfcHJlaW1hZ2U6OkhvbGRSZWFzb24AAAAcU3Rha2luZwQADQcBaHBhbGxldF9zdGFraW5nOjpIb2xkUmVhc29uAAEASFN0YXRlVHJpZU1pZ3JhdGlvbgQAEQcBnHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbjo6SG9sZFJlYXNvbgACAEBEZWxlZ2F0ZWRTdGFraW5nBAAVBwGQcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nOjpIb2xkUmVhc29uAAMAHFNlc3Npb24EABkHAWhwYWxsZXRfc2Vzc2lvbjo6SG9sZFJlYXNvbgAEACRYY21QYWxsZXQEAB0HAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAAUAAAkHDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQgUHJlaW1hZ2UAAAAADQcQOHBhbGxldF9zdGFraW5nGHBhbGxldBhwYWxsZXQoSG9sZFJlYXNvbgABBBxTdGFraW5nAAAAABEHDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0KEhvbGRSZWFzb24AAQQ8U2xhc2hGb3JNaWdyYXRlAAAAABUHDGBwYWxsZXRfZGVsZWdhdGVkX3N0YWtpbmcYcGFsbGV0KEhvbGRSZWFzb24AAQREU3Rha2luZ0RlbGVnYXRpb24AAAAAGQcMOHBhbGxldF9zZXNzaW9uGHBhbGxldChIb2xkUmVhc29uAAEEEEtleXMAAAAAHQcMKHBhbGxldF94Y20YcGFsbGV0KEhvbGRSZWFzb24AAQQ4QXV0aG9yaXplQWxpYXMAAAAAIQcMSHBhbGxldF9yY19taWdyYXRvchR0eXBlc1BQb3J0YWJsZUZyZWV6ZVJlYXNvbgABBDxOb21pbmF0aW9uUG9vbHMEACUHAZRwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6RnJlZXplUmVhc29uAAAAACUHDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQwRnJlZXplUmVhc29uAAEEOFBvb2xNaW5CYWxhbmNlAAAAACkHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBLQcEUwAABAAxBwEYVmVjPFQ+AAAtBxQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAQUHHEJhbGFuY2UBWQEACAEIaWQFBwEISWQAARhhbW91bnRZAQEcQmFsYW5jZQAAMQcAAAItBwA1BwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATkHBFMAAAQAPQcBGFZlYzxUPgAAOQcUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAEhBxxCYWxhbmNlAVkBAAgBCGlkIQcBCElkAAEYYW1vdW50WQEBHEJhbGFuY2UAAD0HAAACOQcAQQcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFFBwRTAAAEAE0HARhWZWM8VD4AAEUHDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBWQEADAEIaWRdAgE4TG9ja0lkZW50aWZpZXIAARhhbW91bnRZAQEcQmFsYW5jZQABHHJlYXNvbnNJBwEcUmVhc29ucwAASQcMPHBhbGxldF9iYWxhbmNlcxR0eXBlcxxSZWFzb25zAAEMDEZlZQAAABBNaXNjAAEADEFsbAACAABNBwAAAkUHAFEHAAACVQcAVQcMSHBhbGxldF9yY19taWdyYXRvciBtdWx0aXNpZyhSY011bHRpc2lnCCRBY2NvdW50SWQBBBxCYWxhbmNlAVkBAAgBHGNyZWF0b3IEASRBY2NvdW50SWQAARxkZXBvc2l0WQEBHEJhbGFuY2UAAFkHAAACXQcAXQcMSHBhbGxldF9yY19taWdyYXRvchRwcm94eRxSY1Byb3h5ECRBY2NvdW50SWQBBBxCYWxhbmNlAVkBJFByb3h5VHlwZQFhByxCbG9ja051bWJlcgE4AAwBJGRlbGVnYXRvcgQBJEFjY291bnRJZAABHGRlcG9zaXRZAQEcQmFsYW5jZQABHHByb3hpZXNlBwEVAVZlYzxwYWxsZXRfcHJveHk6OlByb3h5RGVmaW5pdGlvbjxBY2NvdW50SWQsIFByb3h5VHlwZSwgQmxvY2tOdW1iZXI+PgAAYQcMXHBhc2VvX3J1bnRpbWVfY29uc3RhbnRzFHByb3h5JFByb3h5VHlwZQABJAxBbnkAAAAsTm9uVHJhbnNmZXIAAQAoR292ZXJuYW5jZQACABxTdGFraW5nAAMALENhbmNlbFByb3h5AAYAHEF1Y3Rpb24ABwA8Tm9taW5hdGlvblBvb2xzAAgAQFBhcmFSZWdpc3RyYXRpb24ACQA8U3Rha2luZ09wZXJhdG9yAAoAAGUHAAACaQcAaQcIMHBhbGxldF9wcm94eTxQcm94eURlZmluaXRpb24MJEFjY291bnRJZAEEJFByb3h5VHlwZQFhByxCbG9ja051bWJlcgE4AAwBIGRlbGVnYXRlBAEkQWNjb3VudElkAAEocHJveHlfdHlwZWEHASRQcm94eVR5cGUAARRkZWxheTgBLEJsb2NrTnVtYmVyAABtBwAAAnEHAHEHDEhwYWxsZXRfcmNfbWlncmF0b3IUcHJveHlMUmNQcm94eUFubm91bmNlbWVudAgkQWNjb3VudElkAQQcQmFsYW5jZQFZAQAIASRkZXBvc2l0b3IEASRBY2NvdW50SWQAARxkZXBvc2l0WQEBHEJhbGFuY2UAAHUHAAACeQcAeQcQSHBhbGxldF9yY19taWdyYXRvciBwcmVpbWFnZRhjaHVua3M8UmNQcmVpbWFnZUNodW5rAAAQATRwcmVpbWFnZV9oYXNoQAEQSDI1NgABMHByZWltYWdlX2xlbjgBDHUzMgABRGNodW5rX2J5dGVfb2Zmc2V0OAEMdTMyAAEsY2h1bmtfYnl0ZXN9BwGQQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8Q0hVTktfU0laRT4+AAB9BwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAIEHAAAChQcAhQcQSHBhbGxldF9yY19taWdyYXRvciBwcmVpbWFnZThyZXF1ZXN0X3N0YXR1c1RQb3J0YWJsZVJlcXVlc3RTdGF0dXMAAAgBEGhhc2hAARBIMjU2AAE4cmVxdWVzdF9zdGF0dXOJBwFoUG9ydGFibGVSZXF1ZXN0U3RhdHVzSW5uZXIAAIkHEEhwYWxsZXRfcmNfbWlncmF0b3IgcHJlaW1hZ2U4cmVxdWVzdF9zdGF0dXNoUG9ydGFibGVSZXF1ZXN0U3RhdHVzSW5uZXIAAQgsVW5yZXF1ZXN0ZWQIARh0aWNrZXSNBwF0KEFjY291bnRJZDMyLCBQb3J0YWJsZVRpY2tldCkAAQxsZW44AQx1MzIAAAAkUmVxdWVzdGVkDAEwbWF5YmVfdGlja2V0lQcBlE9wdGlvbjwoQWNjb3VudElkMzIsIFBvcnRhYmxlVGlja2V0KT4AARRjb3VudDgBDHUzMgABJG1heWJlX2xlbuQBLE9wdGlvbjx1MzI+AAEAAI0HAAAECASRBwCRBwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAJUHBBhPcHRpb24EBFQBjQcBCBBOb25lAAAAEFNvbWUEAI0HAAABAACZBwAAAp0HAJ0HEEhwYWxsZXRfcmNfbWlncmF0b3IgcHJlaW1hZ2VUbGVnYWN5X3JlcXVlc3Rfc3RhdHVzWFJjUHJlaW1hZ2VMZWdhY3lTdGF0dXMIJEFjY291bnRJZAEEHEJhbGFuY2UBWQEADAEQaGFzaEABEEgyNTYAASRkZXBvc2l0b3IEASRBY2NvdW50SWQAARxkZXBvc2l0WQEBHEJhbGFuY2UAAKEHAAACpQcApQcQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nJG5vbV9wb29sc0RSY05vbVBvb2xzTWVzc2FnZQQEVAABIDRTdG9yYWdlVmFsdWVzBAEYdmFsdWVzqQcBaE5vbVBvb2xzU3RvcmFnZVZhbHVlc09mPFQ+AAAALFBvb2xNZW1iZXJzBAEYbWVtYmVysQcBdChUOjpBY2NvdW50SWQsIFBvb2xNZW1iZXI8VD4pAAEALEJvbmRlZFBvb2xzBAEQcG9vbMkHAXAoUG9vbElkLCBCb25kZWRQb29sSW5uZXI8VD4pAAIALFJld2FyZFBvb2xzBAEccmV3YXJkc90HAVwoUG9vbElkLCBSZXdhcmRQb29sPFQ+KQADADxTdWJQb29sc1N0b3JhZ2UEASRzdWJfcG9vbHPlBwFUKFBvb2xJZCwgU3ViUG9vbHM8VD4pAAQAIE1ldGFkYXRhBAEQbWV0YQEIAawoUG9vbElkLCBCb3VuZGVkVmVjPHU4LCBUOjpNYXhNZXRhZGF0YUxlbj4pAAUATFJldmVyc2VQb29sSWRMb29rdXAEARxsb29rdXBzXQUBWChUOjpBY2NvdW50SWQsIFBvb2xJZCkABgBAQ2xhaW1QZXJtaXNzaW9ucwQBFHBlcm1zBQgBfChUOjpBY2NvdW50SWQsIENsYWltUGVybWlzc2lvbikABwAAqQcQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nJG5vbV9wb29sc1ROb21Qb29sc1N0b3JhZ2VWYWx1ZXMEHEJhbGFuY2UBWQEAIAFIdG90YWxfdmFsdWVfbG9ja2VkMQQBPE9wdGlvbjxCYWxhbmNlPgABNG1pbl9qb2luX2JvbmQxBAE8T3B0aW9uPEJhbGFuY2U+AAE8bWluX2NyZWF0ZV9ib25kMQQBPE9wdGlvbjxCYWxhbmNlPgABJG1heF9wb29sc+QBLE9wdGlvbjx1MzI+AAFAbWF4X3Bvb2xfbWVtYmVyc+QBLE9wdGlvbjx1MzI+AAFkbWF4X3Bvb2xfbWVtYmVyc19wZXJfcG9vbOQBLE9wdGlvbjx1MzI+AAFUZ2xvYmFsX21heF9jb21taXNzaW9urQcBPE9wdGlvbjxQZXJiaWxsPgABMGxhc3RfcG9vbF9pZOQBLE9wdGlvbjx1MzI+AACtBwQYT3B0aW9uBARUAS0FAQgQTm9uZQAAABBTb21lBAAtBQAAAQAAsQcAAAQIBLUHALUHCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhQb29sTWVtYmVyBARUAAAQARxwb29sX2lkOAEYUG9vbElkAAEYcG9pbnRzWQEBMEJhbGFuY2VPZjxUPgABcGxhc3RfcmVjb3JkZWRfcmV3YXJkX2NvdW50ZXL1BAFAVDo6UmV3YXJkQ291bnRlcgABOHVuYm9uZGluZ19lcmFzuQcB4EJvdW5kZWRCVHJlZU1hcDxFcmFJbmRleCwgQmFsYW5jZU9mPFQ+LCBUOjpNYXhVbmJvbmRpbmc+AAC5BwxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX21hcDxCb3VuZGVkQlRyZWVNYXAMBEsBOARWAVkBBFMAAAQAvQcBOEJUcmVlTWFwPEssIFY+AAC9BwQgQlRyZWVNYXAIBEsBOARWAVkBAAQAwQcAAADBBwAAAsUHAMUHAAAECDhZAQDJBwAABAg4zQcAzQcIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzPEJvbmRlZFBvb2xJbm5lcgQEVAAAFAEoY29tbWlzc2lvbtEHATRDb21taXNzaW9uPFQ+AAE4bWVtYmVyX2NvdW50ZXI4AQx1MzIAARhwb2ludHNZAQEwQmFsYW5jZU9mPFQ+AAEUcm9sZXPZBwFcUG9vbFJvbGVzPFQ6OkFjY291bnRJZD4AARRzdGF0ZR0FASRQb29sU3RhdGUAANEHCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhDb21taXNzaW9uBARUAAAUARxjdXJyZW50OQUBfE9wdGlvbjwoUGVyYmlsbCwgVDo6QWNjb3VudElkKT4AAQxtYXitBwE8T3B0aW9uPFBlcmJpbGw+AAEsY2hhbmdlX3JhdGXVBwG8T3B0aW9uPENvbW1pc3Npb25DaGFuZ2VSYXRlPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AATR0aHJvdHRsZV9mcm9t5AFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABQGNsYWltX3Blcm1pc3Npb25FBQG8T3B0aW9uPENvbW1pc3Npb25DbGFpbVBlcm1pc3Npb248VDo6QWNjb3VudElkPj4AANUHBBhPcHRpb24EBFQBQQUBCBBOb25lAAAAEFNvbWUEAEEFAAABAADZBwhccGFsbGV0X25vbWluYXRpb25fcG9vbHMkUG9vbFJvbGVzBCRBY2NvdW50SWQBBAAQASRkZXBvc2l0b3IEASRBY2NvdW50SWQAARByb290kQEBRE9wdGlvbjxBY2NvdW50SWQ+AAEkbm9taW5hdG9ykQEBRE9wdGlvbjxBY2NvdW50SWQ+AAEcYm91bmNlcpEBAURPcHRpb248QWNjb3VudElkPgAA3QcAAAQIOOEHAOEHEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZzxub21fcG9vbHNfYWxpYXMoUmV3YXJkUG9vbAQEVAAAFAFwbGFzdF9yZWNvcmRlZF9yZXdhcmRfY291bnRlcvUEAUBUOjpSZXdhcmRDb3VudGVyAAFsbGFzdF9yZWNvcmRlZF90b3RhbF9wYXlvdXRzWQEBMEJhbGFuY2VPZjxUPgABVHRvdGFsX3Jld2FyZHNfY2xhaW1lZFkBATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX3BlbmRpbmdZAQEwQmFsYW5jZU9mPFQ+AAFgdG90YWxfY29tbWlzc2lvbl9jbGFpbWVkWQEBMEJhbGFuY2VPZjxUPgAA5QcAAAQIOOkHAOkHEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZzxub21fcG9vbHNfYWxpYXMgU3ViUG9vbHMEBFQAAAgBGG5vX2VyYe0HATRVbmJvbmRQb29sPFQ+AAEgd2l0aF9lcmHxBwEBAUJvdW5kZWRCVHJlZU1hcDxFcmFJbmRleCwgVW5ib25kUG9vbDxUPiwgVG90YWxVbmJvbmRpbmdQb29sczxUPj4AAO0HEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZzxub21fcG9vbHNfYWxpYXMoVW5ib25kUG9vbAQEVAAACAEYcG9pbnRzWQEBMEJhbGFuY2VPZjxUPgABHGJhbGFuY2VZAQEwQmFsYW5jZU9mPFQ+AADxBwxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX21hcDxCb3VuZGVkQlRyZWVNYXAMBEsBOARWAe0HBFMAAAQA9QcBOEJUcmVlTWFwPEssIFY+AAD1BwQgQlRyZWVNYXAIBEsBOARWAe0HAAQA+QcAAAD5BwAAAv0HAP0HAAAECDjtBwABCAAABAg4RQEABQgAAAQIBDUFAAkIAAACDQgADQgMSHBhbGxldF9yY19taWdyYXRvchx2ZXN0aW5nRFJjVmVzdGluZ1NjaGVkdWxlBARUAAAIAQx3aG8EAZg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZAABJHNjaGVkdWxlcxEIAZUBQm91bmRlZFZlYzxwYWxsZXRfdmVzdGluZzo6VmVzdGluZ0luZm88QmFsYW5jZU9mPFQ+LCBCbG9ja051bWJlckZvcgo8VD4+LCBNYXhWZXN0aW5nU2NoZWR1bGVzR2V0PFQ+LD4AABEIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBbQEEUwAABAAVCAEYVmVjPFQ+AAAVCAAAAm0BABkIAAACHQgAHQgMSHBhbGxldF9yY19taWdyYXRvciRyZWZlcmVuZGFAUmVmZXJlbmRhTWVzc2FnZQQUVHJhY2sB1QMADAFAcmVmZXJlbmR1bV9jb3VudOQBLE9wdGlvbjx1MzI+AAE4ZGVjaWRpbmdfY291bnQhCAFEVmVjPChUcmFjaywgdTMyKT4AASx0cmFja19xdWV1ZSkIAXhWZWM8KFRyYWNrLCBWZWM8KHUzMiwgdTEyOCk+KT4AACEIAAACJQgAJQgAAAQI1QM4ACkIAAACLQgALQgAAAQI1QPBBwAxCAAAAjUIADUIAAAECDg5CAA5CAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczhSZWZlcmVuZHVtSW5mbyAcVHJhY2tJZAHVAzRSdW50aW1lT3JpZ2luAT0IGE1vbWVudAE4EENhbGwB1QQcQmFsYW5jZQFZARRUYWxseQFBCCRBY2NvdW50SWQBBDxTY2hlZHVsZUFkZHJlc3MB0AEYHE9uZ29pbmcEAEUIAY0BUmVmZXJlbmR1bVN0YXR1czxUcmFja0lkLCBSdW50aW1lT3JpZ2luLCBNb21lbnQsIENhbGwsIEJhbGFuY2UsIFRhbGx5LApBY2NvdW50SWQsIFNjaGVkdWxlQWRkcmVzcyw+AAAAIEFwcHJvdmVkDAA4ARhNb21lbnQAAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAATQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEAIFJlamVjdGVkDAA4ARhNb21lbnQAAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAATQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAIAJENhbmNlbGxlZAwAOAEYTW9tZW50AABNCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgADACBUaW1lZE91dAwAOAEYTW9tZW50AABNCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAEABhLaWxsZWQEADgBGE1vbWVudAAFAAA9CAxcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWUwYWhfbWlncmF0aW9uPFJjUGFsbGV0c09yaWdpbgABCBhzeXN0ZW0EAN0DAXRmcmFtZV9zeXN0ZW06Ok9yaWdpbjxSdW50aW1lPgAAABxPcmlnaW5zBADpAwF0cGFsbGV0X2N1c3RvbV9vcmlnaW5zOjpPcmlnaW4AFgAAQQgMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcxRUYWxseQgUVm90ZXMBWQEUVG90YWwAAAwBEGF5ZXNZAQEUVm90ZXMAARBuYXlzWQEBFFZvdGVzAAEcc3VwcG9ydFkBARRWb3RlcwAARQgMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXNAUmVmZXJlbmR1bVN0YXR1cyAcVHJhY2tJZAHVAzRSdW50aW1lT3JpZ2luAT0IGE1vbWVudAE4EENhbGwB1QQcQmFsYW5jZQFZARRUYWxseQFBCCRBY2NvdW50SWQBBDxTY2hlZHVsZUFkZHJlc3MB0AAsARR0cmFja9UDARxUcmFja0lkAAEYb3JpZ2luPQgBNFJ1bnRpbWVPcmlnaW4AASBwcm9wb3NhbNUEARBDYWxsAAEkZW5hY3RtZW503QQBUERpc3BhdGNoVGltZTxNb21lbnQ+AAEkc3VibWl0dGVkOAEYTW9tZW50AAFIc3VibWlzc2lvbl9kZXBvc2l0SQgBbERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPgABQGRlY2lzaW9uX2RlcG9zaXRNCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AASBkZWNpZGluZ1EIAXhPcHRpb248RGVjaWRpbmdTdGF0dXM8TW9tZW50Pj4AARR0YWxseUEIARRUYWxseQABIGluX3F1ZXVlXQEBEGJvb2wAARRhbGFybVkIAYRPcHRpb248KE1vbWVudCwgU2NoZWR1bGVBZGRyZXNzKT4AAEkIDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzHERlcG9zaXQIJEFjY291bnRJZAEEHEJhbGFuY2UBWQEACAEMd2hvBAEkQWNjb3VudElkAAEYYW1vdW50WQEBHEJhbGFuY2UAAE0IBBhPcHRpb24EBFQBSQgBCBBOb25lAAAAEFNvbWUEAEkIAAABAABRCAQYT3B0aW9uBARUAVUIAQgQTm9uZQAAABBTb21lBABVCAAAAQAAVQgMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4RGVjaWRpbmdTdGF0dXMELEJsb2NrTnVtYmVyATgACAEUc2luY2U4ASxCbG9ja051bWJlcgABKGNvbmZpcm1pbmfkAUxPcHRpb248QmxvY2tOdW1iZXI+AABZCAQYT3B0aW9uBARUAV0IAQgQTm9uZQAAABBTb21lBABdCAAAAQAAXQgAAAQIONAAYQgAAAJlCABlCAxIcGFsbGV0X3JjX21pZ3JhdG9yGGNsYWltczxSY0NsYWltc01lc3NhZ2UMJEFjY291bnRJZAEEHEJhbGFuY2UBWQEsQmxvY2tOdW1iZXIBOAEUNFN0b3JhZ2VWYWx1ZXMEARR0b3RhbFkBARxCYWxhbmNlAAAAGENsYWltcwQAaQgBaChFdGhlcmV1bUFkZHJlc3MsIEJhbGFuY2UpAAEAHFZlc3RpbmcIAQx3aG99AQE8RXRoZXJldW1BZGRyZXNzAAEgc2NoZWR1bGWFAQF8KEJhbGFuY2UsIEJhbGFuY2UsIEJsb2NrTnVtYmVyKQACABxTaWduaW5nBABtCAGAKEV0aGVyZXVtQWRkcmVzcywgU3RhdGVtZW50S2luZCkAAwAkUHJlY2xhaW1zBABxCAFwKEFjY291bnRJZCwgRXRoZXJldW1BZGRyZXNzKQAEAABpCAAABAh9AVkBAG0IAAAECH0BjQEAcQgAAAQIBH0BAHUIAAACeQgAeQgQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nJGJhZ3NfbGlzdFxQb3J0YWJsZUJhZ3NMaXN0TWVzc2FnZQABCBBOb2RlCAEIaWQEASxBY2NvdW50SWQzMgABEG5vZGV9CAEwUG9ydGFibGVOb2RlAAAADEJhZwgBFHNjb3JlKAEMdTY0AAEMYmFngQgBLFBvcnRhYmxlQmFnAAEAAH0IEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZyRiYWdzX2xpc3QwUG9ydGFibGVOb2RlAAAUAQhpZAQBLEFjY291bnRJZDMyAAEQcHJldpEBAUxPcHRpb248QWNjb3VudElkMzI+AAEQbmV4dJEBAUxPcHRpb248QWNjb3VudElkMzI+AAEkYmFnX3VwcGVyKAEMdTY0AAEUc2NvcmUoAQx1NjQAAIEIEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZyRiYWdzX2xpc3QsUG9ydGFibGVCYWcAAAwBEGhlYWSRAQFMT3B0aW9uPEFjY291bnRJZDMyPgABEHRhaWyRAQFMT3B0aW9uPEFjY291bnRJZDMyPgABJGJhZ191cHBlcigBDHU2NAAAhQgAAAKJCACJCAxIcGFsbGV0X3JjX21pZ3JhdG9yJHNjaGVkdWxlckhSY1NjaGVkdWxlck1lc3NhZ2UELEJsb2NrTnVtYmVyATgBDDxJbmNvbXBsZXRlU2luY2UEADgBLEJsb2NrTnVtYmVyAAAAHFJldHJpZXMEAI0IAdAoVGFza0FkZHJlc3M8QmxvY2tOdW1iZXI+LCBSZXRyeUNvbmZpZzxCbG9ja051bWJlcj4pAAEAGExvb2t1cAQAlQgBkChUYXNrTmFtZSwgVGFza0FkZHJlc3M8QmxvY2tOdW1iZXI+KQACAACNCAAABAjQkQgAkQgIQHBhbGxldF9zY2hlZHVsZXIsUmV0cnlDb25maWcEGFBlcmlvZAE4AAwBNHRvdGFsX3JldHJpZXMMAQh1OAABJHJlbWFpbmluZwwBCHU4AAEYcGVyaW9kOAEYUGVyaW9kAACVCAAABAgI0ACZCAAAAp0IAJ0IDEhwYWxsZXRfcmNfbWlncmF0b3IcaW5kaWNlczhSY0luZGljZXNJbmRleAwwQWNjb3VudEluZGV4ATgkQWNjb3VudElkAQQcQmFsYW5jZQFZAQAQARRpbmRleDgBMEFjY291bnRJbmRleAABDHdobwQBJEFjY291bnRJZAABHGRlcG9zaXRZAQEcQmFsYW5jZQABGGZyb3plbl0BARBib29sAAChCAAAAqUIAKUIDEhwYWxsZXRfcmNfbWlncmF0b3JEY29udmljdGlvbl92b3RpbmdkUmNDb252aWN0aW9uVm90aW5nTWVzc2FnZRAkQWNjb3VudElkAQQUQ2xhc3MB1QMYVm90aW5nAakIHEJhbGFuY2UBWQEBCCRWb3RpbmdGb3IMAAQBJEFjY291bnRJZAAA1QMBFENsYXNzAACpCAEYVm90aW5nAAAANENsYXNzTG9ja3NGb3IIAAQBJEFjY291bnRJZAAAyQgBVFZlYzwoQ2xhc3MsIEJhbGFuY2UpPgABAACpCAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUYVm90aW5nFBxCYWxhbmNlAVkBJEFjY291bnRJZAEELEJsb2NrTnVtYmVyATgkUG9sbEluZGV4ATggTWF4Vm90ZXMAAQgcQ2FzdGluZwQArQgByENhc3Rpbmc8QmFsYW5jZSwgQmxvY2tOdW1iZXIsIFBvbGxJbmRleCwgTWF4Vm90ZXM+AAAAKERlbGVnYXRpbmcEAMUIAaxEZWxlZ2F0aW5nPEJhbGFuY2UsIEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AAEAAK0IDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRxDYXN0aW5nEBxCYWxhbmNlAVkBLEJsb2NrTnVtYmVyATgkUG9sbEluZGV4ATggTWF4Vm90ZXMAAAwBFHZvdGVzsQgB3EJvdW5kZWRWZWM8KFBvbGxJbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc70IAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9ywQgBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AALEIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBtQgEUwAABAC5CAEYVmVjPFQ+AAC1CAAABAg4wQQAuQgAAAK1CAC9CAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzLERlbGVnYXRpb25zBBxCYWxhbmNlAVkBAAgBFHZvdGVzWQEBHEJhbGFuY2UAARxjYXBpdGFsWQEBHEJhbGFuY2UAAMEIDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSRQcmlvckxvY2sILEJsb2NrTnVtYmVyATgcQmFsYW5jZQFZAQAIADgBLEJsb2NrTnVtYmVyAABZAQEcQmFsYW5jZQAAxQgMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlKERlbGVnYXRpbmcMHEJhbGFuY2UBWQEkQWNjb3VudElkAQQsQmxvY2tOdW1iZXIBOAAUARxiYWxhbmNlWQEBHEJhbGFuY2UAARh0YXJnZXQEASRBY2NvdW50SWQAAShjb252aWN0aW9uyQQBKENvbnZpY3Rpb24AASxkZWxlZ2F0aW9uc70IAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9ywQgBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAMkIAAACzQgAzQgAAAQI1QNZAQDRCAAAAtUIANUIDEhwYWxsZXRfcmNfbWlncmF0b3IgYm91bnRpZXNEUmNCb3VudGllc01lc3NhZ2UMJEFjY291bnRJZAEEHEJhbGFuY2UBWQEsQmxvY2tOdW1iZXIBOAEQLEJvdW50eUNvdW50BAA4ASxCb3VudHlJbmRleAAAADxCb3VudHlBcHByb3ZhbHMEACkEAUBWZWM8Qm91bnR5SW5kZXg+AAEASEJvdW50eURlc2NyaXB0aW9ucwQA2QgBWChCb3VudHlJbmRleCwgVmVjPHU4PikAAgAgQm91bnRpZXMEAN0IAfQoQm91bnR5SW5kZXgsIGFsaWFzOjpCb3VudHk8QWNjb3VudElkLCBCYWxhbmNlLCBCbG9ja051bWJlcj4pAAMAANkIAAAECDgYAN0IAAAECDjhCADhCBBIcGFsbGV0X3JjX21pZ3JhdG9yIGJvdW50aWVzFGFsaWFzGEJvdW50eQwkQWNjb3VudElkAQQcQmFsYW5jZQFZASxCbG9ja051bWJlcgE4ABgBIHByb3Bvc2VyBAEkQWNjb3VudElkAAEUdmFsdWVZAQEcQmFsYW5jZQABDGZlZVkBARxCYWxhbmNlAAE8Y3VyYXRvcl9kZXBvc2l0WQEBHEJhbGFuY2UAARBib25kWQEBHEJhbGFuY2UAARhzdGF0dXPlCAGQQm91bnR5U3RhdHVzPEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AADlCAg8cGFsbGV0X2JvdW50aWVzMEJvdW50eVN0YXR1cwgkQWNjb3VudElkAQQsQmxvY2tOdW1iZXIBOAEcIFByb3Bvc2VkAAAAIEFwcHJvdmVkAAEAGEZ1bmRlZAACADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yBAEkQWNjb3VudElkAAMAGEFjdGl2ZQgBHGN1cmF0b3IEASRBY2NvdW50SWQAASh1cGRhdGVfZHVlOAEsQmxvY2tOdW1iZXIABAA0UGVuZGluZ1BheW91dAwBHGN1cmF0b3IEASRBY2NvdW50SWQAASxiZW5lZmljaWFyeQQBJEFjY291bnRJZAABJHVubG9ja19hdDgBLEJsb2NrTnVtYmVyAAUATEFwcHJvdmVkV2l0aEN1cmF0b3IEARxjdXJhdG9yBAEkQWNjb3VudElkAAYAAOkIAAAC7QgA7QgAAAQItQT1BADxCAAAAvUIAPUIDEhwYWxsZXRfcmNfbWlncmF0b3IkY3Jvd2Rsb2FuSFJjQ3Jvd2Rsb2FuTWVzc2FnZQwsQmxvY2tOdW1iZXIBOCRBY2NvdW50SWQBBBxCYWxhbmNlAVkBAQwwTGVhc2VSZXNlcnZlEAE8dW5yZXNlcnZlX2Jsb2NrOAEsQmxvY2tOdW1iZXIAARxhY2NvdW50BAEkQWNjb3VudElkAAEccGFyYV9pZKABGFBhcmFJZAABGGFtb3VudFkBARxCYWxhbmNlAAAAVENyb3dkbG9hbkNvbnRyaWJ1dGlvbhQBOHdpdGhkcmF3X2Jsb2NrOAEsQmxvY2tOdW1iZXIAASxjb250cmlidXRvcgQBJEFjY291bnRJZAABHHBhcmFfaWSgARhQYXJhSWQAARhhbW91bnRZAQEcQmFsYW5jZQABRGNyb3dkbG9hbl9hY2NvdW50BAEkQWNjb3VudElkAAEAQENyb3dkbG9hblJlc2VydmUQATx1bnJlc2VydmVfYmxvY2s4ASxCbG9ja051bWJlcgABJGRlcG9zaXRvcgQBJEFjY291bnRJZAABHHBhcmFfaWSgARhQYXJhSWQAARhhbW91bnRZAQEcQmFsYW5jZQACAAD5CAAAAv0IAP0IAAAECDhAAAEJAAACBQkABQkMSHBhbGxldF9yY19taWdyYXRvciB0cmVhc3VyeVxQb3J0YWJsZVRyZWFzdXJ5TWVzc2FnZQABHDRQcm9wb3NhbENvdW50BAA4ATRQcm9wb3NhbEluZGV4AAAAJFByb3Bvc2FscwQACQkBsChQcm9wb3NhbEluZGV4LCBQcm9wb3NhbDxBY2NvdW50SWQzMiwgdTEyOD4pAAEAJEFwcHJvdmFscwQAKQQBSFZlYzxQcm9wb3NhbEluZGV4PgACAChTcGVuZENvdW50BAA4AShTcGVuZEluZGV4AAMAGFNwZW5kcwgBCGlkOAEoU3BlbmRJbmRleAABGHN0YXR1cxEJAWBCb3g8UG9ydGFibGVTcGVuZFN0YXR1cz4ABAA8TGFzdFNwZW5kUGVyaW9kBADkASxPcHRpb248dTMyPgAFABRGdW5kcwAGAAAJCQAABAg4DQkADQkIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkAQQcQmFsYW5jZQFZAQAQASBwcm9wb3NlcgQBJEFjY291bnRJZAABFHZhbHVlWQEBHEJhbGFuY2UAASxiZW5lZmljaWFyeQQBJEFjY291bnRJZAABEGJvbmRZAQEcQmFsYW5jZQAAEQkMSHBhbGxldF9yY19taWdyYXRvciB0cmVhc3VyeUxQb3J0YWJsZVNwZW5kU3RhdHVzAAAYAShhc3NldF9raW5ktQQBXFZlcnNpb25lZExvY2F0YWJsZUFzc2V0AAEYYW1vdW50WQEBEHUxMjgAASxiZW5lZmljaWFyea0BAURWZXJzaW9uZWRMb2NhdGlvbgABKHZhbGlkX2Zyb204AQx1MzIAASRleHBpcmVfYXQ4AQx1MzIAARhzdGF0dXMVCQFQUG9ydGFibGVQYXltZW50U3RhdGUAABUJDEhwYWxsZXRfcmNfbWlncmF0b3IgdHJlYXN1cnlQUG9ydGFibGVQYXltZW50U3RhdGUAAQwcUGVuZGluZwAAACRBdHRlbXB0ZWQEAQhpZCgBDHU2NAABABhGYWlsZWQAAgAAGQkAAAIdCQAdCQxIcGFsbGV0X3JjX21pZ3JhdG9yJHNjaGVkdWxlclhTY2hlZHVsZXJBZ2VuZGFNZXNzYWdlCARCATgEUwEhCQAIARRibG9jazgBBEIAARhhZ2VuZGElCQE4VmVjPE9wdGlvbjxTPj4AACEJEEhwYWxsZXRfcmNfbWlncmF0b3Ikc2NoZWR1bGVyFGFsaWFzJFNjaGVkdWxlZAwQQ2FsbAHVBCxCbG9ja051bWJlcgE4NFBhbGxldHNPcmlnaW4BPQgAFAEgbWF5YmVfaWThBgFAT3B0aW9uPFRhc2tOYW1lPgABIHByaW9yaXR5DAEgUHJpb3JpdHkAARBjYWxs1QQBEENhbGwAAThtYXliZV9wZXJpb2RpY8wBbE9wdGlvbjxQZXJpb2Q8QmxvY2tOdW1iZXI+PgABGG9yaWdpbj0IATRQYWxsZXRzT3JpZ2luAAAlCQAAAikJACkJBBhPcHRpb24EBFQBIQkBCBBOb25lAAAAEFNvbWUEACEJAAABAAAtCQAAAjEJADEJEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZ0RkZWxlZ2F0ZWRfc3Rha2luZ3xQb3J0YWJsZURlbGVnYXRlZFN0YWtpbmdNZXNzYWdlAAEIKERlbGVnYXRvcnMMASRkZWxlZ2F0b3IEASxBY2NvdW50SWQzMgABFGFnZW50BAEsQWNjb3VudElkMzIAARhhbW91bnRZAQEQdTEyOAAAABhBZ2VudHMUARRhZ2VudAQBLEFjY291bnRJZDMyAAEUcGF5ZWUEASxBY2NvdW50SWQzMgABPHRvdGFsX2RlbGVnYXRlZFkBARB1MTI4AAFUdW5jbGFpbWVkX3dpdGhkcmF3YWxzWQEBEHUxMjgAATRwZW5kaW5nX3NsYXNoWQEBEHUxMjgAAQAANQkAAAI5CQA5CQxIcGFsbGV0X3JjX21pZ3JhdG9yOGNoaWxkX2JvdW50aWVzcFBvcnRhYmxlQ2hpbGRCb3VudGllc01lc3NhZ2UAARxAQ2hpbGRCb3VudHlDb3VudAQAOAEsQm91bnR5SW5kZXgAAABMUGFyZW50Q2hpbGRCb3VudGllcwgAOAEsQm91bnR5SW5kZXgAADgBDHUzMgABAGBQYXJlbnRUb3RhbENoaWxkQm91bnRpZXMIADgBLEJvdW50eUluZGV4AAA4AQx1MzIAAgAsQ2hpbGRCb3VudHkMASRwYXJlbnRfaWQ4ASxCb3VudHlJbmRleAABIGNoaWxkX2lkOAEsQm91bnR5SW5kZXgAATBjaGlsZF9ib3VudHk9CQFMUG9ydGFibGVDaGlsZEJvdW50eQADAGRDaGlsZEJvdW50eURlc2NyaXB0aW9uc1YxDAEkcGFyZW50X2lkOAEsQm91bnR5SW5kZXgAASBjaGlsZF9pZDgBLEJvdW50eUluZGV4AAEsZGVzY3JpcHRpb25FCQF8Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MTcwMDA+PgAEAFBWMFRvVjFDaGlsZEJvdW50eUlkcwwBLHYwX2NoaWxkX2lkOAEsQm91bnR5SW5kZXgAASRwYXJlbnRfaWQ4ASxCb3VudHlJbmRleAABLHYxX2NoaWxkX2lkOAEsQm91bnR5SW5kZXgABQBMQ2hpbGRyZW5DdXJhdG9yRmVlcwgBIGNoaWxkX2lkOAEsQm91bnR5SW5kZXgAARhhbW91bnRZAQEQdTEyOAAGAAA9CQxIcGFsbGV0X3JjX21pZ3JhdG9yOGNoaWxkX2JvdW50aWVzTFBvcnRhYmxlQ2hpbGRCb3VudHkAABQBNHBhcmVudF9ib3VudHk4ASxCb3VudHlJbmRleAABFHZhbHVlWQEBEHUxMjgAAQxmZWVZAQEQdTEyOAABPGN1cmF0b3JfZGVwb3NpdFkBARB1MTI4AAEYc3RhdHVzQQkBZFBvcnRhYmxlQ2hpbGRCb3VudHlTdGF0dXMAAEEJDEhwYWxsZXRfcmNfbWlncmF0b3I4Y2hpbGRfYm91bnRpZXNkUG9ydGFibGVDaGlsZEJvdW50eVN0YXR1cwABEBRBZGRlZAAAADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yBAEsQWNjb3VudElkMzIAAQAYQWN0aXZlBAEcY3VyYXRvcgQBLEFjY291bnRJZDMyAAIANFBlbmRpbmdQYXlvdXQMARxjdXJhdG9yBAEsQWNjb3VudElkMzIAASxiZW5lZmljaWFyeQQBLEFjY291bnRJZDMyAAEkdW5sb2NrX2F0OAEMdTMyAAMAAEUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAASQkAAAJNCQBNCRBIcGFsbGV0X3JjX21pZ3JhdG9yHHN0YWtpbmccbWVzc2FnZVhQb3J0YWJsZVN0YWtpbmdNZXNzYWdlAAFIGFZhbHVlcwQAUQkBVFBvcnRhYmxlU3Rha2luZ1ZhbHVlcwAAADRJbnZ1bG5lcmFibGVzBABhAQFAVmVjPEFjY291bnRJZDMyPgABABhCb25kZWQIARRzdGFzaAQBLEFjY291bnRJZDMyAAEoY29udHJvbGxlcgQBLEFjY291bnRJZDMyAAIAGExlZGdlcggBKGNvbnRyb2xsZXIEASxBY2NvdW50SWQzMgABGGxlZGdlcmkJAVRQb3J0YWJsZVN0YWtpbmdMZWRnZXIAAwAUUGF5ZWUIARRzdGFzaAQBLEFjY291bnRJZDMyAAEccGF5bWVudHkJAWRQb3J0YWJsZVJld2FyZERlc3RpbmF0aW9uAAQAKFZhbGlkYXRvcnMIARRzdGFzaAQBLEFjY291bnRJZDMyAAEodmFsaWRhdG9yc30JAVhQb3J0YWJsZVZhbGlkYXRvclByZWZzAAUAKE5vbWluYXRvcnMIARRzdGFzaAQBLEFjY291bnRJZDMyAAEsbm9taW5hdGlvbnOBCQFMUG9ydGFibGVOb21pbmF0aW9ucwAGADhWaXJ0dWFsU3Rha2VycwQABAEsQWNjb3VudElkMzIABwBMRXJhc1N0YWtlcnNPdmVydmlldwwBDGVyYTgBIEVyYUluZGV4AAEkdmFsaWRhdG9yBAEsQWNjb3VudElkMzIAASBleHBvc3VyZYkJAXRQb3J0YWJsZVBhZ2VkRXhwb3N1cmVNZXRhZGF0YQAIAEBFcmFzU3Rha2Vyc1BhZ2VkEAEMZXJhOAEgRXJhSW5kZXgAASR2YWxpZGF0b3IEASxBY2NvdW50SWQzMgABEHBhZ2U4ARBQYWdlAAEgZXhwb3N1cmWNCQFQUG9ydGFibGVFeHBvc3VyZVBhZ2UACQA4Q2xhaW1lZFJld2FyZHMMAQxlcmE4ASBFcmFJbmRleAABJHZhbGlkYXRvcgQBLEFjY291bnRJZDMyAAEccmV3YXJkcykEASRWZWM8UGFnZT4ACgBIRXJhc1ZhbGlkYXRvclByZWZzDAEMZXJhOAEgRXJhSW5kZXgAASR2YWxpZGF0b3IEASxBY2NvdW50SWQzMgABFHByZWZzfQkBWFBvcnRhYmxlVmFsaWRhdG9yUHJlZnMACwBMRXJhc1ZhbGlkYXRvclJld2FyZAgBDGVyYTgBIEVyYUluZGV4AAEYcmV3YXJkWQEBEHUxMjgADABARXJhc1Jld2FyZFBvaW50cwgBDGVyYTgBIEVyYUluZGV4AAEYcG9pbnRznQkBXFBvcnRhYmxlRXJhUmV3YXJkUG9pbnRzAA0AOEVyYXNUb3RhbFN0YWtlCAEMZXJhOAEgRXJhSW5kZXgAASx0b3RhbF9zdGFrZVkBARB1MTI4AA4AQFVuYXBwbGllZFNsYXNoZXMIAQxlcmE4ASBFcmFJbmRleAABFHNsYXNopQkBWFBvcnRhYmxlVW5hcHBsaWVkU2xhc2gADwAoQm9uZGVkRXJhcwQAsQkBdFZlYzwoRXJhSW5kZXgsIFNlc3Npb25JbmRleCk+ABAATFZhbGlkYXRvclNsYXNoSW5FcmEMAQxlcmE4ASBFcmFJbmRleAABJHZhbGlkYXRvcgQBLEFjY291bnRJZDMyAAEUc2xhc2i1CQE8KFBlcmJpbGwsIHUxMjgpABEAAFEJEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZxxtZXNzYWdlNFN0YWtpbmdWYWx1ZXMEHEJhbGFuY2UBWQEAQAE8dmFsaWRhdG9yX2NvdW505AEsT3B0aW9uPHUzMj4AAUxtaW5fdmFsaWRhdG9yX2NvdW505AEsT3B0aW9uPHUzMj4AAUhtaW5fbm9taW5hdG9yX2JvbmQxBAE8T3B0aW9uPEJhbGFuY2U+AAFIbWluX3ZhbGlkYXRvcl9ib25kMQQBPE9wdGlvbjxCYWxhbmNlPgABQG1pbl9hY3RpdmVfc3Rha2UxBAE8T3B0aW9uPEJhbGFuY2U+AAE4bWluX2NvbW1pc3Npb26tBwE8T3B0aW9uPFBlcmJpbGw+AAFQbWF4X3ZhbGlkYXRvcnNfY291bnTkASxPcHRpb248dTMyPgABUG1heF9ub21pbmF0b3JzX2NvdW505AEsT3B0aW9uPHUzMj4AASxjdXJyZW50X2VyYeQBQE9wdGlvbjxFcmFJbmRleD4AAShhY3RpdmVfZXJhVQkBdE9wdGlvbjxQb3J0YWJsZUFjdGl2ZUVyYUluZm8+AAEkZm9yY2VfZXJhXQkBXE9wdGlvbjxQb3J0YWJsZUZvcmNpbmc+AAFIbWF4X3N0YWtlZF9yZXdhcmRzZQkBPE9wdGlvbjxQZXJjZW50PgABVHNsYXNoX3Jld2FyZF9mcmFjdGlvbq0HATxPcHRpb248UGVyYmlsbD4AAVRjYW5jZWxlZF9zbGFzaF9wYXlvdXQxBAE8T3B0aW9uPEJhbGFuY2U+AAFcY3VycmVudF9wbGFubmVkX3Nlc3Npb27kAVBPcHRpb248U2Vzc2lvbkluZGV4PgABPGNoaWxsX3RocmVzaG9sZGUJATxPcHRpb248UGVyY2VudD4AAFUJBBhPcHRpb24EBFQBWQkBCBBOb25lAAAAEFNvbWUEAFkJAAABAABZCRBIcGFsbGV0X3JjX21pZ3JhdG9yHHN0YWtpbmccbWVzc2FnZVRQb3J0YWJsZUFjdGl2ZUVyYUluZm8AAAgBFGluZGV4OAEgRXJhSW5kZXgAARRzdGFydAEBASxPcHRpb248dTY0PgAAXQkEGE9wdGlvbgQEVAFhCQEIEE5vbmUAAAAQU29tZQQAYQkAAAEAAGEJEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZxxtZXNzYWdlPFBvcnRhYmxlRm9yY2luZwABEChOb3RGb3JjaW5nAAAAIEZvcmNlTmV3AAEAJEZvcmNlTm9uZQACACxGb3JjZUFsd2F5cwADAABlCQQYT3B0aW9uBARUAaEGAQgQTm9uZQAAABBTb21lBAChBgAAAQAAaQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VUUG9ydGFibGVTdGFraW5nTGVkZ2VyAAAQARRzdGFzaAQBLEFjY291bnRJZDMyAAEUdG90YWxZAQEQdTEyOAABGGFjdGl2ZVkBARB1MTI4AAEkdW5sb2NraW5nbQkBuEJvdW5kZWRWZWM8UG9ydGFibGVVbmxvY2tDaHVuaywgQ29uc3RVMzI8MTAwPj4AAG0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBcQkEUwAABAB1CQEYVmVjPFQ+AABxCRBIcGFsbGV0X3JjX21pZ3JhdG9yHHN0YWtpbmccbWVzc2FnZUxQb3J0YWJsZVVubG9ja0NodW5rAAAIARR2YWx1ZVkBARB1MTI4AAEMZXJhOAEgRXJhSW5kZXgAAHUJAAACcQkAeQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VkUG9ydGFibGVSZXdhcmREZXN0aW5hdGlvbgABFBhTdGFrZWQAAAAUU3Rhc2gAAQAoQ29udHJvbGxlcgACABxBY2NvdW50BAAEASxBY2NvdW50SWQzMgADABBOb25lAAQAAH0JEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZxxtZXNzYWdlWFBvcnRhYmxlVmFsaWRhdG9yUHJlZnMAAAgBKGNvbW1pc3Npb24tBQEcUGVyYmlsbAABHGJsb2NrZWRdAQEQYm9vbAAAgQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VMUG9ydGFibGVOb21pbmF0aW9ucwAADAEcdGFyZ2V0c4UJAZRCb3VuZGVkVmVjPEFjY291bnRJZDMyLCBDb25zdFUzMjwzMj4+AAEwc3VibWl0dGVkX2luOAEgRXJhSW5kZXgAAShzdXBwcmVzc2VkXQEBEGJvb2wAAIUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAGEBARhWZWM8VD4AAIkJEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZxxtZXNzYWdldFBvcnRhYmxlUGFnZWRFeHBvc3VyZU1ldGFkYXRhAAAQARR0b3RhbFkBARB1MTI4AAEMb3duWQEBEHUxMjgAATxub21pbmF0b3JfY291bnQ4AQx1MzIAAShwYWdlX2NvdW50OAEQUGFnZQAAjQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VQUG9ydGFibGVFeHBvc3VyZVBhZ2UAAAgBKHBhZ2VfdG90YWxZAQEQdTEyOAABGG90aGVyc5EJAdRCb3VuZGVkVmVjPFBvcnRhYmxlSW5kaXZpZHVhbEV4cG9zdXJlLCBDb25zdFUzMjw2MDA+PgAAkQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVCQRTAAAEAJkJARhWZWM8VD4AAJUJEEhwYWxsZXRfcmNfbWlncmF0b3Icc3Rha2luZxxtZXNzYWdlaFBvcnRhYmxlSW5kaXZpZHVhbEV4cG9zdXJlAAAIAQx3aG8EASxBY2NvdW50SWQzMgABFHZhbHVlWQEBEHUxMjgAAJkJAAAClQkAnQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VcUG9ydGFibGVFcmFSZXdhcmRQb2ludHMAAAgBFHRvdGFsOAEMdTMyAAEoaW5kaXZpZHVhbKEJAbhCb3VuZGVkVmVjPChBY2NvdW50SWQzMiwgdTMyKSwgQ29uc3RVMzI8MjAwMD4+AAChCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAV0FBFMAAAQAWQUBGFZlYzxUPgAApQkQSHBhbGxldF9yY19taWdyYXRvchxzdGFraW5nHG1lc3NhZ2VYUG9ydGFibGVVbmFwcGxpZWRTbGFzaAAAFAEkdmFsaWRhdG9yBAEsQWNjb3VudElkMzIAAQxvd25ZAQEQdTEyOAABGG90aGVyc6kJAbhCb3VuZGVkVmVjPChBY2NvdW50SWQzMiwgdTEyOCksIENvbnN0VTMyPDYwMD4+AAEkcmVwb3J0ZXJzrQkBlEJvdW5kZWRWZWM8QWNjb3VudElkMzIsIENvbnN0VTMyPDEwPj4AARhwYXlvdXRZAQEQdTEyOAAAqQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGZBQRTAAAEAJ0FARhWZWM8VD4AAK0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAGEBARhWZWM8VD4AALEJAAAC0AC1CQAABAgtBVkBALkJCEhwYWxsZXRfYWhfbWlncmF0b3I4TWlncmF0aW9uU3RhZ2UAARAcUGVuZGluZwAAAFBEYXRhTWlncmF0aW9uT25nb2luZwABADRNaWdyYXRpb25Eb25lAAIAHENvb2xPZmYEARhlbmRfYXQ4AQx1MzIAAwAAvQkMSHBhbGxldF9yY19taWdyYXRvchR0eXBlczRRdWV1ZVByaW9yaXR5BCxCbG9ja051bWJlcgE4AQwYQ29uZmlnAAAAOE92ZXJyaWRlQ29uZmlnCAA4ASxCbG9ja051bWJlcgAAOAEsQmxvY2tOdW1iZXIAAQAgRGlzYWJsZWQAAgAAwQkEGE9wdGlvbgQEVAHFCQEIEE5vbmUAAAAQU29tZQQAxQkAAAEAAMUJDEhwYWxsZXRfcmNfbWlncmF0b3IUdHlwZXNUTWlncmF0aW9uRmluaXNoZWREYXRhBBxCYWxhbmNlAVkBAAQBPHJjX2JhbGFuY2Vfa2VwdFkBARxCYWxhbmNlAADJCRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM4YXV0aG9yaXplX2NhbGw0QXV0aG9yaXplQ2FsbAQEVAAAAADNCRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNUY2hlY2tfbm9uX3plcm9fc2VuZGVySENoZWNrTm9uWmVyb1NlbmRlcgQEVAAAAADRCRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAA1QkQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAA2QkQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAAN0JEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQA4QkBDEVyYQAA4QkQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAMAAABABxNb3J0YWwyBAAMAAACABxNb3J0YWwzBAAMAAADABxNb3J0YWw0BAAMAAAEABxNb3J0YWw1BAAMAAAFABxNb3J0YWw2BAAMAAAGABxNb3J0YWw3BAAMAAAHABxNb3J0YWw4BAAMAAAIABxNb3J0YWw5BAAMAAAJACBNb3J0YWwxMAQADAAACgAgTW9ydGFsMTEEAAwAAAsAIE1vcnRhbDEyBAAMAAAMACBNb3J0YWwxMwQADAAADQAgTW9ydGFsMTQEAAwAAA4AIE1vcnRhbDE1BAAMAAAPACBNb3J0YWwxNgQADAAAEAAgTW9ydGFsMTcEAAwAABEAIE1vcnRhbDE4BAAMAAASACBNb3J0YWwxOQQADAAAEwAgTW9ydGFsMjAEAAwAABQAIE1vcnRhbDIxBAAMAAAVACBNb3J0YWwyMgQADAAAFgAgTW9ydGFsMjMEAAwAABcAIE1vcnRhbDI0BAAMAAAYACBNb3J0YWwyNQQADAAAGQAgTW9ydGFsMjYEAAwAABoAIE1vcnRhbDI3BAAMAAAbACBNb3J0YWwyOAQADAAAHAAgTW9ydGFsMjkEAAwAAB0AIE1vcnRhbDMwBAAMAAAeACBNb3J0YWwzMQQADAAAHwAgTW9ydGFsMzIEAAwAACAAIE1vcnRhbDMzBAAMAAAhACBNb3J0YWwzNAQADAAAIgAgTW9ydGFsMzUEAAwAACMAIE1vcnRhbDM2BAAMAAAkACBNb3J0YWwzNwQADAAAJQAgTW9ydGFsMzgEAAwAACYAIE1vcnRhbDM5BAAMAAAnACBNb3J0YWw0MAQADAAAKAAgTW9ydGFsNDEEAAwAACkAIE1vcnRhbDQyBAAMAAAqACBNb3J0YWw0MwQADAAAKwAgTW9ydGFsNDQEAAwAACwAIE1vcnRhbDQ1BAAMAAAtACBNb3J0YWw0NgQADAAALgAgTW9ydGFsNDcEAAwAAC8AIE1vcnRhbDQ4BAAMAAAwACBNb3J0YWw0OQQADAAAMQAgTW9ydGFsNTAEAAwAADIAIE1vcnRhbDUxBAAMAAAzACBNb3J0YWw1MgQADAAANAAgTW9ydGFsNTMEAAwAADUAIE1vcnRhbDU0BAAMAAA2ACBNb3J0YWw1NQQADAAANwAgTW9ydGFsNTYEAAwAADgAIE1vcnRhbDU3BAAMAAA5ACBNb3J0YWw1OAQADAAAOgAgTW9ydGFsNTkEAAwAADsAIE1vcnRhbDYwBAAMAAA8ACBNb3J0YWw2MQQADAAAPQAgTW9ydGFsNjIEAAwAAD4AIE1vcnRhbDYzBAAMAAA/ACBNb3J0YWw2NAQADAAAQAAgTW9ydGFsNjUEAAwAAEEAIE1vcnRhbDY2BAAMAABCACBNb3J0YWw2NwQADAAAQwAgTW9ydGFsNjgEAAwAAEQAIE1vcnRhbDY5BAAMAABFACBNb3J0YWw3MAQADAAARgAgTW9ydGFsNzEEAAwAAEcAIE1vcnRhbDcyBAAMAABIACBNb3J0YWw3MwQADAAASQAgTW9ydGFsNzQEAAwAAEoAIE1vcnRhbDc1BAAMAABLACBNb3J0YWw3NgQADAAATAAgTW9ydGFsNzcEAAwAAE0AIE1vcnRhbDc4BAAMAABOACBNb3J0YWw3OQQADAAATwAgTW9ydGFsODAEAAwAAFAAIE1vcnRhbDgxBAAMAABRACBNb3J0YWw4MgQADAAAUgAgTW9ydGFsODMEAAwAAFMAIE1vcnRhbDg0BAAMAABUACBNb3J0YWw4NQQADAAAVQAgTW9ydGFsODYEAAwAAFYAIE1vcnRhbDg3BAAMAABXACBNb3J0YWw4OAQADAAAWAAgTW9ydGFsODkEAAwAAFkAIE1vcnRhbDkwBAAMAABaACBNb3J0YWw5MQQADAAAWwAgTW9ydGFsOTIEAAwAAFwAIE1vcnRhbDkzBAAMAABdACBNb3J0YWw5NAQADAAAXgAgTW9ydGFsOTUEAAwAAF8AIE1vcnRhbDk2BAAMAABgACBNb3J0YWw5NwQADAAAYQAgTW9ydGFsOTgEAAwAAGIAIE1vcnRhbDk5BAAMAABjACRNb3J0YWwxMDAEAAwAAGQAJE1vcnRhbDEwMQQADAAAZQAkTW9ydGFsMTAyBAAMAABmACRNb3J0YWwxMDMEAAwAAGcAJE1vcnRhbDEwNAQADAAAaAAkTW9ydGFsMTA1BAAMAABpACRNb3J0YWwxMDYEAAwAAGoAJE1vcnRhbDEwNwQADAAAawAkTW9ydGFsMTA4BAAMAABsACRNb3J0YWwxMDkEAAwAAG0AJE1vcnRhbDExMAQADAAAbgAkTW9ydGFsMTExBAAMAABvACRNb3J0YWwxMTIEAAwAAHAAJE1vcnRhbDExMwQADAAAcQAkTW9ydGFsMTE0BAAMAAByACRNb3J0YWwxMTUEAAwAAHMAJE1vcnRhbDExNgQADAAAdAAkTW9ydGFsMTE3BAAMAAB1ACRNb3J0YWwxMTgEAAwAAHYAJE1vcnRhbDExOQQADAAAdwAkTW9ydGFsMTIwBAAMAAB4ACRNb3J0YWwxMjEEAAwAAHkAJE1vcnRhbDEyMgQADAAAegAkTW9ydGFsMTIzBAAMAAB7ACRNb3J0YWwxMjQEAAwAAHwAJE1vcnRhbDEyNQQADAAAfQAkTW9ydGFsMTI2BAAMAAB+ACRNb3J0YWwxMjcEAAwAAH8AJE1vcnRhbDEyOAQADAAAgAAkTW9ydGFsMTI5BAAMAACBACRNb3J0YWwxMzAEAAwAAIIAJE1vcnRhbDEzMQQADAAAgwAkTW9ydGFsMTMyBAAMAACEACRNb3J0YWwxMzMEAAwAAIUAJE1vcnRhbDEzNAQADAAAhgAkTW9ydGFsMTM1BAAMAACHACRNb3J0YWwxMzYEAAwAAIgAJE1vcnRhbDEzNwQADAAAiQAkTW9ydGFsMTM4BAAMAACKACRNb3J0YWwxMzkEAAwAAIsAJE1vcnRhbDE0MAQADAAAjAAkTW9ydGFsMTQxBAAMAACNACRNb3J0YWwxNDIEAAwAAI4AJE1vcnRhbDE0MwQADAAAjwAkTW9ydGFsMTQ0BAAMAACQACRNb3J0YWwxNDUEAAwAAJEAJE1vcnRhbDE0NgQADAAAkgAkTW9ydGFsMTQ3BAAMAACTACRNb3J0YWwxNDgEAAwAAJQAJE1vcnRhbDE0OQQADAAAlQAkTW9ydGFsMTUwBAAMAACWACRNb3J0YWwxNTEEAAwAAJcAJE1vcnRhbDE1MgQADAAAmAAkTW9ydGFsMTUzBAAMAACZACRNb3J0YWwxNTQEAAwAAJoAJE1vcnRhbDE1NQQADAAAmwAkTW9ydGFsMTU2BAAMAACcACRNb3J0YWwxNTcEAAwAAJ0AJE1vcnRhbDE1OAQADAAAngAkTW9ydGFsMTU5BAAMAACfACRNb3J0YWwxNjAEAAwAAKAAJE1vcnRhbDE2MQQADAAAoQAkTW9ydGFsMTYyBAAMAACiACRNb3J0YWwxNjMEAAwAAKMAJE1vcnRhbDE2NAQADAAApAAkTW9ydGFsMTY1BAAMAAClACRNb3J0YWwxNjYEAAwAAKYAJE1vcnRhbDE2NwQADAAApwAkTW9ydGFsMTY4BAAMAACoACRNb3J0YWwxNjkEAAwAAKkAJE1vcnRhbDE3MAQADAAAqgAkTW9ydGFsMTcxBAAMAACrACRNb3J0YWwxNzIEAAwAAKwAJE1vcnRhbDE3MwQADAAArQAkTW9ydGFsMTc0BAAMAACuACRNb3J0YWwxNzUEAAwAAK8AJE1vcnRhbDE3NgQADAAAsAAkTW9ydGFsMTc3BAAMAACxACRNb3J0YWwxNzgEAAwAALIAJE1vcnRhbDE3OQQADAAAswAkTW9ydGFsMTgwBAAMAAC0ACRNb3J0YWwxODEEAAwAALUAJE1vcnRhbDE4MgQADAAAtgAkTW9ydGFsMTgzBAAMAAC3ACRNb3J0YWwxODQEAAwAALgAJE1vcnRhbDE4NQQADAAAuQAkTW9ydGFsMTg2BAAMAAC6ACRNb3J0YWwxODcEAAwAALsAJE1vcnRhbDE4OAQADAAAvAAkTW9ydGFsMTg5BAAMAAC9ACRNb3J0YWwxOTAEAAwAAL4AJE1vcnRhbDE5MQQADAAAvwAkTW9ydGFsMTkyBAAMAADAACRNb3J0YWwxOTMEAAwAAMEAJE1vcnRhbDE5NAQADAAAwgAkTW9ydGFsMTk1BAAMAADDACRNb3J0YWwxOTYEAAwAAMQAJE1vcnRhbDE5NwQADAAAxQAkTW9ydGFsMTk4BAAMAADGACRNb3J0YWwxOTkEAAwAAMcAJE1vcnRhbDIwMAQADAAAyAAkTW9ydGFsMjAxBAAMAADJACRNb3J0YWwyMDIEAAwAAMoAJE1vcnRhbDIwMwQADAAAywAkTW9ydGFsMjA0BAAMAADMACRNb3J0YWwyMDUEAAwAAM0AJE1vcnRhbDIwNgQADAAAzgAkTW9ydGFsMjA3BAAMAADPACRNb3J0YWwyMDgEAAwAANAAJE1vcnRhbDIwOQQADAAA0QAkTW9ydGFsMjEwBAAMAADSACRNb3J0YWwyMTEEAAwAANMAJE1vcnRhbDIxMgQADAAA1AAkTW9ydGFsMjEzBAAMAADVACRNb3J0YWwyMTQEAAwAANYAJE1vcnRhbDIxNQQADAAA1wAkTW9ydGFsMjE2BAAMAADYACRNb3J0YWwyMTcEAAwAANkAJE1vcnRhbDIxOAQADAAA2gAkTW9ydGFsMjE5BAAMAADbACRNb3J0YWwyMjAEAAwAANwAJE1vcnRhbDIyMQQADAAA3QAkTW9ydGFsMjIyBAAMAADeACRNb3J0YWwyMjMEAAwAAN8AJE1vcnRhbDIyNAQADAAA4AAkTW9ydGFsMjI1BAAMAADhACRNb3J0YWwyMjYEAAwAAOIAJE1vcnRhbDIyNwQADAAA4wAkTW9ydGFsMjI4BAAMAADkACRNb3J0YWwyMjkEAAwAAOUAJE1vcnRhbDIzMAQADAAA5gAkTW9ydGFsMjMxBAAMAADnACRNb3J0YWwyMzIEAAwAAOgAJE1vcnRhbDIzMwQADAAA6QAkTW9ydGFsMjM0BAAMAADqACRNb3J0YWwyMzUEAAwAAOsAJE1vcnRhbDIzNgQADAAA7AAkTW9ydGFsMjM3BAAMAADtACRNb3J0YWwyMzgEAAwAAO4AJE1vcnRhbDIzOQQADAAA7wAkTW9ydGFsMjQwBAAMAADwACRNb3J0YWwyNDEEAAwAAPEAJE1vcnRhbDI0MgQADAAA8gAkTW9ydGFsMjQzBAAMAADzACRNb3J0YWwyNDQEAAwAAPQAJE1vcnRhbDI0NQQADAAA9QAkTW9ydGFsMjQ2BAAMAAD2ACRNb3J0YWwyNDcEAAwAAPcAJE1vcnRhbDI0OAQADAAA+AAkTW9ydGFsMjQ5BAAMAAD5ACRNb3J0YWwyNTAEAAwAAPoAJE1vcnRhbDI1MQQADAAA+wAkTW9ydGFsMjUyBAAMAAD8ACRNb3J0YWwyNTMEAAwAAP0AJE1vcnRhbDI1NAQADAAA/gAkTW9ydGFsMjU1BAAMAAD/AADlCRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABABkASBUOjpOb25jZQAA6QkQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAADtCQiIcGFsbGV0X2Fzc2V0X2NvbnZlcnNpb25fdHhfcGF5bWVudFBDaGFyZ2VBc3NldFR4UGF5bWVudAQEVAAACAEMdGlwVQEBMEJhbGFuY2VPZjxUPgABIGFzc2V0X2lkPQMBSE9wdGlvbjxUOjpBc3NldElkPgAA8QkIdGZyYW1lX21ldGFkYXRhX2hhc2hfZXh0ZW5zaW9uRENoZWNrTWV0YWRhdGFIYXNoBARUAAAEARBtb2Rl9QkBEE1vZGUAAPUJCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbhBNb2RlAAEIIERpc2FibGVkAAAAHEVuYWJsZWQAAQAA+QkQNHBhbGxldF9yZXZpdmUMZXZtMHR4X2V4dGVuc2lvbiRTZXRPcmlnaW4EBFQAAAAA/QkIMGZyYW1lX3N5c3RlbSxBY2NvdW50SW5mbwgUTm9uY2UBOCxBY2NvdW50RGF0YQEBCgAUARRub25jZTgBFE5vbmNlAAEkY29uc3VtZXJzOAEgUmVmQ291bnQAASRwcm92aWRlcnM4ASBSZWZDb3VudAABLHN1ZmZpY2llbnRzOAEgUmVmQ291bnQAARBkYXRhAQoBLEFjY291bnREYXRhAAABCgw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEFjY291bnREYXRhBBxCYWxhbmNlAVkBABABEGZyZWVZAQEcQmFsYW5jZQABIHJlc2VydmVkWQEBHEJhbGFuY2UAARhmcm96ZW5ZAQEcQmFsYW5jZQABFGZsYWdzBQoBKEV4dHJhRmxhZ3MAAAUKDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMoRXh0cmFGbGFncwAABABZAQEQdTEyOAAACQoMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEVAQAMARhub3JtYWwVAQEEVAABLG9wZXJhdGlvbmFsFQEBBFQAASRtYW5kYXRvcnkVAQEEVAAADQoAAAIRCgARCggwZnJhbWVfc3lzdGVtLEV2ZW50UmVjb3JkCARFARUKBFQBQAAMARRwaGFzZakLARRQaGFzZQABFGV2ZW50FQoBBEUAARh0b3BpY3PEARhWZWM8VD4AABUKCFxhc3NldF9odWJfcGFzZW9fcnVudGltZTBSdW50aW1lRXZlbnQAAcgYU3lzdGVtBAAZCgFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAEEKAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFdmVudDxSdW50aW1lPgABACBQcmVpbWFnZQQARQoBfHBhbGxldF9wcmVpbWFnZTo6RXZlbnQ8UnVudGltZT4ABQAkU2NoZWR1bGVyBABJCgGAcGFsbGV0X3NjaGVkdWxlcjo6RXZlbnQ8UnVudGltZT4ABgAoUGFyYW1ldGVycwQAUQoBhHBhbGxldF9wYXJhbWV0ZXJzOjpFdmVudDxSdW50aW1lPgAHAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAeQoBhHBhbGxldF9taWdyYXRpb25zOjpFdmVudDxSdW50aW1lPgAIACBCYWxhbmNlcwQAfQoBfHBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZT4ACgBIVHJhbnNhY3Rpb25QYXltZW50BAChCgGocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AAsAOEFzc2V0VHhQYXltZW50BAClCgHIcGFsbGV0X2Fzc2V0X2NvbnZlcnNpb25fdHhfcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ADQAcVmVzdGluZwQAqQoBeHBhbGxldF92ZXN0aW5nOjpFdmVudDxSdW50aW1lPgAOABhDbGFpbXMEAK0KAXRwYWxsZXRfY2xhaW1zOjpFdmVudDxSdW50aW1lPgAPAERDb2xsYXRvclNlbGVjdGlvbgQAsQoBpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkV2ZW50PFJ1bnRpbWU+ABUAHFNlc3Npb24EALUKAXhwYWxsZXRfc2Vzc2lvbjo6RXZlbnQ8UnVudGltZT4AFgAkWGNtcFF1ZXVlBAC5CgGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAL0KAWhwYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgAfAChDdW11bHVzWGNtBADNCgGIY3VtdWx1c19wYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgAgAERUb0t1c2FtYVhjbVJvdXRlcgQA0QoBWQFwYWxsZXRfeGNtX2JyaWRnZV9odWJfcm91dGVyOjpFdmVudDxSdW50aW1lLCBwYWxsZXRfeGNtX2JyaWRnZV9odWJfcm91dGVyCjo6SW5zdGFuY2UxPgAiADBNZXNzYWdlUXVldWUEANUKAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AIwBgU25vd2JyaWRnZVN5c3RlbUZyb250ZW5kBADdCgHEc25vd2JyaWRnZV9wYWxsZXRfc3lzdGVtX2Zyb250ZW5kOjpFdmVudDxSdW50aW1lPgAkABxVdGlsaXR5BADhCgFUcGFsbGV0X3V0aWxpdHk6OkV2ZW50ACgAIE11bHRpc2lnBADlCgF8cGFsbGV0X211bHRpc2lnOjpFdmVudDxSdW50aW1lPgApABRQcm94eQQA6QoBcHBhbGxldF9wcm94eTo6RXZlbnQ8UnVudGltZT4AKgAcSW5kaWNlcwQA8QoBeHBhbGxldF9pbmRpY2VzOjpFdmVudDxSdW50aW1lPgArABhBc3NldHMEAPUKAdxwYWxsZXRfYXNzZXRzOjpFdmVudDxSdW50aW1lLCBwYWxsZXRfYXNzZXRzOjpJbnN0YW5jZTE+ADIAHFVuaXF1ZXMEAPkKAXhwYWxsZXRfdW5pcXVlczo6RXZlbnQ8UnVudGltZT4AMwAQTmZ0cwQA/QoBbHBhbGxldF9uZnRzOjpFdmVudDxSdW50aW1lPgA0ADRGb3JlaWduQXNzZXRzBAAFCwHccGFsbGV0X2Fzc2V0czo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2Fzc2V0czo6SW5zdGFuY2UyPgA1AChQb29sQXNzZXRzBAAJCwHccGFsbGV0X2Fzc2V0czo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2Fzc2V0czo6SW5zdGFuY2UzPgA2ADxBc3NldENvbnZlcnNpb24EAA0LAZxwYWxsZXRfYXNzZXRfY29udmVyc2lvbjo6RXZlbnQ8UnVudGltZT4ANwAgVHJlYXN1cnkEACELAXxwYWxsZXRfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+ADwAQENvbnZpY3Rpb25Wb3RpbmcEACULAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkV2ZW50PFJ1bnRpbWU+AD0AJFJlZmVyZW5kYQQAKQsBgHBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWU+AD4AJFdoaXRlbGlzdAQALQsBgHBhbGxldF93aGl0ZWxpc3Q6OkV2ZW50PFJ1bnRpbWU+AEAAIEJvdW50aWVzBAA9CwF8cGFsbGV0X2JvdW50aWVzOjpFdmVudDxSdW50aW1lPgBBADRDaGlsZEJvdW50aWVzBABBCwGUcGFsbGV0X2NoaWxkX2JvdW50aWVzOjpFdmVudDxSdW50aW1lPgBCACRBc3NldFJhdGUEAEULAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXZlbnQ8UnVudGltZT4AQwBITXVsdGlBc3NldEJvdW50aWVzBABJCwGscGFsbGV0X211bHRpX2Fzc2V0X2JvdW50aWVzOjpFdmVudDxSdW50aW1lPgBEAEhTdGF0ZVRyaWVNaWdyYXRpb24EAE0LAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkV2ZW50PFJ1bnRpbWU+AEYAPE5vbWluYXRpb25Qb29scwQAWQsBnHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpFdmVudDxSdW50aW1lPgBQACRWb3Rlckxpc3QEAF0LAfRwYWxsZXRfYmFnc19saXN0OjpFdmVudDxSdW50aW1lLCBwYWxsZXRfYmFnc19saXN0OjpJbnN0YW5jZTE+AFIAQERlbGVnYXRlZFN0YWtpbmcEAGELAaBwYWxsZXRfZGVsZWdhdGVkX3N0YWtpbmc6OkV2ZW50PFJ1bnRpbWU+AFMAPFN0YWtpbmdSY0NsaWVudAQAZQsBuHBhbGxldF9zdGFraW5nX2FzeW5jX3JjX2NsaWVudDo6RXZlbnQ8UnVudGltZT4AVABITXVsdGlCbG9ja0VsZWN0aW9uBABtCwHQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrOjpFdmVudDxSdW50aW1lPgBVAGhNdWx0aUJsb2NrRWxlY3Rpb25WZXJpZmllcgQAcQsB+HBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jazo6dmVyaWZpZXI6OkV2ZW50PFJ1bnRpbWU+AFYAYE11bHRpQmxvY2tFbGVjdGlvblNpZ25lZAQAgQsB8HBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jazo6c2lnbmVkOjpFdmVudDxSdW50aW1lPgBYABxTdGFraW5nBACFCwGQcGFsbGV0X3N0YWtpbmdfYXN5bmM6OkV2ZW50PFJ1bnRpbWU+AFkAGFJldml2ZQQAlQsBdHBhbGxldF9yZXZpdmU6OkV2ZW50PFJ1bnRpbWU+AGQAEFN1ZG8EAJkLAWxwYWxsZXRfc3Vkbzo6RXZlbnQ8UnVudGltZT4A+wAUQWhPcHMEAJ0LAXRwYWxsZXRfYWhfb3BzOjpFdmVudDxSdW50aW1lPgD+AChBaE1pZ3JhdG9yBAChCwGIcGFsbGV0X2FoX21pZ3JhdG9yOjpFdmVudDxSdW50aW1lPgD/AAAZCgwwZnJhbWVfc3lzdGVtGHBhbGxldBRFdmVudAQEVAABLEBFeHRyaW5zaWNTdWNjZXNzBAE0ZGlzcGF0Y2hfaW5mbx0KAUREaXNwYXRjaEV2ZW50SW5mbwAABJBBbiBleHRyaW5zaWMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS48RXh0cmluc2ljRmFpbGVkCAE4ZGlzcGF0Y2hfZXJyb3IpCgE0RGlzcGF0Y2hFcnJvcgABNGRpc3BhdGNoX2luZm8dCgFERGlzcGF0Y2hFdmVudEluZm8AAQRQQW4gZXh0cmluc2ljIGZhaWxlZC4sQ29kZVVwZGF0ZWQAAgRQYDpjb2RlYCB3YXMgdXBkYXRlZC4oTmV3QWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlcgQBMFQ6OkFjY291bnRJZAABEGhhc2hAARxUOjpIYXNoAAUEcE9uIG9uLWNoYWluIHJlbWFyayBoYXBwZW5lZC4sVGFza1N0YXJ0ZWQEARB0YXNrPAE4VDo6UnVudGltZVRhc2sABgSAQSBbYFRhc2tgXSBoYXMgc3RhcnRlZCBleGVjdXRpbmc0VGFza0NvbXBsZXRlZAQBEHRhc2s8AThUOjpSdW50aW1lVGFzawAHBIhBIFtgVGFza2BdIGhhcyBmaW5pc2hlZCBleGVjdXRpbmcuKFRhc2tGYWlsZWQIARB0YXNrPAE4VDo6UnVudGltZVRhc2sAAQxlcnIpCgE0RGlzcGF0Y2hFcnJvcgAIBIxBIFtgVGFza2BdIGZhaWxlZCBkdXJpbmcgZXhlY3V0aW9uLkRVcGdyYWRlQXV0aG9yaXplZAgBJGNvZGVfaGFzaEABHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uXQEBEGJvb2wACQRoQW4gdXBncmFkZSB3YXMgYXV0aG9yaXplZC6AUmVqZWN0ZWRJbnZhbGlkQXV0aG9yaXplZFVwZ3JhZGUIASRjb2RlX2hhc2hAARxUOjpIYXNoAAEUZXJyb3IpCgE0RGlzcGF0Y2hFcnJvcgAKBBEBQW4gaW52YWxpZCBhdXRob3JpemVkIHVwZ3JhZGUgd2FzIHJlamVjdGVkIHdoaWxlIHRyeWluZyB0byBhcHBseSBpdC4EcEV2ZW50IGZvciB0aGUgU3lzdGVtIHBhbGxldC4dCggwZnJhbWVfc3lzdGVtRERpc3BhdGNoRXZlbnRJbmZvAAAMARh3ZWlnaHQVAQEYV2VpZ2h0AAEUY2xhc3MhCgE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlJQoBEFBheXMAACEKDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAAAlCgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAAApCggoc3BfcnVudGltZTREaXNwYXRjaEVycm9yAAE8FE90aGVyAAAAMENhbm5vdExvb2t1cAABACRCYWRPcmlnaW4AAgAYTW9kdWxlBAAtCgEsTW9kdWxlRXJyb3IAAwBEQ29uc3VtZXJSZW1haW5pbmcABAAsTm9Qcm92aWRlcnMABQBAVG9vTWFueUNvbnN1bWVycwAGABRUb2tlbgQAMQoBKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQANQoBPEFyaXRobWV0aWNFcnJvcgAIADRUcmFuc2FjdGlvbmFsBAA5CgFIVHJhbnNhY3Rpb25hbEVycm9yAAkAJEV4aGF1c3RlZAAKAChDb3JydXB0aW9uAAsALFVuYXZhaWxhYmxlAAwAOFJvb3ROb3RBbGxvd2VkAA0AEFRyaWUEAD0KASRUcmllRXJyb3IADgAALQoIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4DAEIdTgAARRlcnJvcnQBjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAAAxCggoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAA1Cgg0c3BfYXJpdGhtZXRpYzxBcml0aG1ldGljRXJyb3IAAQwkVW5kZXJmbG93AAAAIE92ZXJmbG93AAEAOERpdmlzaW9uQnlaZXJvAAIAADkKCChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAA9Cgwoc3BfcnVudGltZTBwcm92aW5nX3RyaWUkVHJpZUVycm9yAAE4QEludmFsaWRTdGF0ZVJvb3QAAABISW5jb21wbGV0ZURhdGFiYXNlAAEAUFZhbHVlQXRJbmNvbXBsZXRlS2V5AAIAMERlY29kZXJFcnJvcgADACxJbnZhbGlkSGFzaAAEADBEdXBsaWNhdGVLZXkABQA4RXh0cmFuZW91c05vZGUABgA8RXh0cmFuZW91c1ZhbHVlAAcAXEV4dHJhbmVvdXNIYXNoUmVmZXJlbmNlAAgAVEludmFsaWRDaGlsZFJlZmVyZW5jZQAJADRWYWx1ZU1pc21hdGNoAAoAPEluY29tcGxldGVQcm9vZgALADBSb290TWlzbWF0Y2gADAAsRGVjb2RlRXJyb3IADQAAQQoMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEYYFZhbGlkYXRpb25GdW5jdGlvblN0b3JlZAAABNBUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgYmVlbiBzY2hlZHVsZWQgdG8gYXBwbHkuZFZhbGlkYXRpb25GdW5jdGlvbkFwcGxpZWQEAVRyZWxheV9jaGFpbl9ibG9ja19udW04AVRSZWxheUNoYWluQmxvY2tOdW1iZXIAAQRFAVRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdhcyBhcHBsaWVkIGFzIG9mIHRoZSBjb250YWluZWQgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyLmxWYWxpZGF0aW9uRnVuY3Rpb25EaXNjYXJkZWQAAgSwVGhlIHJlbGF5LWNoYWluIGFib3J0ZWQgdGhlIHVwZ3JhZGUgcHJvY2Vzcy5gRG93bndhcmRNZXNzYWdlc1JlY2VpdmVkBAEUY291bnQ4AQx1MzIAAwQBAVNvbWUgZG93bndhcmQgbWVzc2FnZXMgaGF2ZSBiZWVuIHJlY2VpdmVkIGFuZCB3aWxsIGJlIHByb2Nlc3NlZC5kRG93bndhcmRNZXNzYWdlc1Byb2Nlc3NlZAgBLHdlaWdodF91c2VkFQEBGFdlaWdodAABIGRtcV9oZWFkQAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2jhBgE8T3B0aW9uPFhjbUhhc2g+AAUEuEFuIHVwd2FyZCBtZXNzYWdlIHdhcyBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRFCgw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFdmVudAQEVAABDBROb3RlZAQBEGhhc2hAARxUOjpIYXNoAAAEaEEgcHJlaW1hZ2UgaGFzIGJlZW4gbm90ZWQuJFJlcXVlc3RlZAQBEGhhc2hAARxUOjpIYXNoAAEEeEEgcHJlaW1hZ2UgaGFzIGJlZW4gcmVxdWVzdGVkLhxDbGVhcmVkBAEQaGFzaEABHFQ6Okhhc2gAAgRsQSBwcmVpbWFnZSBoYXMgYmVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0SQoMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEV2ZW50BARUAAEoJFNjaGVkdWxlZAgBEHdoZW44AURCbG9ja051bWJlckZvcjxUPgABFGluZGV4OAEMdTMyAAAEUFNjaGVkdWxlZCBzb21lIHRhc2suIENhbmNlbGVkCAEQd2hlbjgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXg4AQx1MzIAAQRMQ2FuY2VsZWQgc29tZSB0YXNrLihEaXNwYXRjaGVkDAEQdGFza9ABeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk4QYBQE9wdGlvbjxUYXNrTmFtZT4AARhyZXN1bHRNCgE4RGlzcGF0Y2hSZXN1bHQAAgRURGlzcGF0Y2hlZCBzb21lIHRhc2suIFJldHJ5U2V0EAEQdGFza9ABeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk4QYBQE9wdGlvbjxUYXNrTmFtZT4AARhwZXJpb2Q4AURCbG9ja051bWJlckZvcjxUPgABHHJldHJpZXMMAQh1OAADBKBTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBzb21lIHRhc2suOFJldHJ5Q2FuY2VsbGVkCAEQdGFza9ABeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk4QYBQE9wdGlvbjxUYXNrTmFtZT4ABASsQ2FuY2VsIGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjxDYWxsVW5hdmFpbGFibGUIARB0YXNr0AF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWThBgFAT3B0aW9uPFRhc2tOYW1lPgAFBCkBVGhlIGNhbGwgZm9yIHRoZSBwcm92aWRlZCBoYXNoIHdhcyBub3QgZm91bmQgc28gdGhlIHRhc2sgaGFzIGJlZW4gYWJvcnRlZC44UGVyaW9kaWNGYWlsZWQIARB0YXNr0AF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWThBgFAT3B0aW9uPFRhc2tOYW1lPgAGBD0BVGhlIGdpdmVuIHRhc2sgd2FzIHVuYWJsZSB0byBiZSByZW5ld2VkIHNpbmNlIHRoZSBhZ2VuZGEgaXMgZnVsbCBhdCB0aGF0IGJsb2NrLixSZXRyeUZhaWxlZAgBEHRhc2vQAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZOEGAUBPcHRpb248VGFza05hbWU+AAcIXQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJldHJpZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2sgb3IgdGhlcmWcd2FzIG5vdCBlbm91Z2ggd2VpZ2h0IHRvIHJlc2NoZWR1bGUgaXQuVFBlcm1hbmVudGx5T3ZlcndlaWdodAgBEHRhc2vQAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZOEGAUBPcHRpb248VGFza05hbWU+AAgE8FRoZSBnaXZlbiB0YXNrIGNhbiBuZXZlciBiZSBleGVjdXRlZCBzaW5jZSBpdCBpcyBvdmVyd2VpZ2h0LkBBZ2VuZGFJbmNvbXBsZXRlBAEQd2hlbjgBREJsb2NrTnVtYmVyRm9yPFQ+AAkEhEFnZW5kYSBpcyBpbmNvbXBsZXRlIGZyb20gYHdoZW5gLgQwRXZlbnRzIHR5cGUuTQoEGFJlc3VsdAgEVAEQBEUBKQoBCAhPawQAEAAAAAAMRXJyBAApCgAAAQAAUQoMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBRFdmVudAQEVAABBBxVcGRhdGVkDAEMa2V5VQoBxDxUOjpSdW50aW1lUGFyYW1ldGVycyBhcyBBZ2dyZWdhdGVkS2V5VmFsdWU+OjpLZXkEZFRoZSBrZXkgdGhhdCB3YXMgdXBkYXRlZC4BJG9sZF92YWx1ZWUKAexPcHRpb248PFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzIGFzIEFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlPgR8VGhlIG9sZCB2YWx1ZSBiZWZvcmUgdGhpcyBjYWxsLgEkbmV3X3ZhbHVlZQoB7E9wdGlvbjw8VDo6UnVudGltZVBhcmFtZXRlcnMgYXMgQWdncmVnYXRlZEtleVZhbHVlPjo6VmFsdWU+BHhUaGUgbmV3IHZhbHVlIGFmdGVyIHRoaXMgY2FsbC4ADFBBIFBhcmFtZXRlciB3YXMgc2V0LgC8SXMgYWxzbyBlbWl0dGVkIHdoZW4gdGhlIHZhbHVlIHdhcyBub3QgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRVCghcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWVQUnVudGltZVBhcmFtZXRlcnNLZXkAAQw8U3Rha2luZ0VsZWN0aW9uBABZCgHFATxkeW5hbWljX3BhcmFtczo6c3Rha2luZ19lbGVjdGlvbjo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHMKOjpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6S2V5AAAAJFNjaGVkdWxlcgQAXQoBqQE8ZHluYW1pY19wYXJhbXM6OnNjaGVkdWxlcjo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHM6OgpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6S2V5AAEAME1lc3NhZ2VRdWV1ZQQAYQoBuQE8ZHluYW1pY19wYXJhbXM6Om1lc3NhZ2VfcXVldWU6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OktleQACAABZChBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXNAc3Rha2luZ19lbGVjdGlvbjRQYXJhbWV0ZXJzS2V5AAEcLFNpZ25lZFBoYXNlBADgASxTaWduZWRQaGFzZQAAAFBNYXhTaWduZWRTdWJtaXNzaW9ucwQA6AFQTWF4U2lnbmVkU3VibWlzc2lvbnMAAQA0VW5zaWduZWRQaGFzZQQA7AE0VW5zaWduZWRQaGFzZQACAChNaW5lclBhZ2VzBADwAShNaW5lclBhZ2VzAAMARE1heEVsZWN0aW5nVm90ZXJzBAD0AURNYXhFbGVjdGluZ1ZvdGVycwAEAFhUYXJnZXRTbmFwc2hvdFBlckJsb2NrBAD4AVhUYXJnZXRTbmFwc2hvdFBlckJsb2NrAAUAOE1heEVyYUR1cmF0aW9uBAD8AThNYXhFcmFEdXJhdGlvbgAGAABdChBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkc2NoZWR1bGVyNFBhcmFtZXRlcnNLZXkAAQhQTWF4U2NoZWR1bGVkUGVyQmxvY2sEAAkBAVBNYXhTY2hlZHVsZWRQZXJCbG9jawAAADRNYXhpbXVtV2VpZ2h0BAANAQE0TWF4aW11bVdlaWdodAABAABhChBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXM0bWVzc2FnZV9xdWV1ZTRQYXJhbWV0ZXJzS2V5AAEIPE1heE9uSW5pdFdlaWdodAQAHQEBPE1heE9uSW5pdFdlaWdodAAAADxNYXhPbklkbGVXZWlnaHQEACUBATxNYXhPbklkbGVXZWlnaHQAAQAAZQoEGE9wdGlvbgQEVAFpCgEIEE5vbmUAAAAQU29tZQQAaQoAAAEAAGkKCFxhc3NldF9odWJfcGFzZW9fcnVudGltZVhSdW50aW1lUGFyYW1ldGVyc1ZhbHVlAAEMPFN0YWtpbmdFbGVjdGlvbgQAbQoBzQE8ZHluYW1pY19wYXJhbXM6OnN0YWtpbmdfZWxlY3Rpb246OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzCjo6ZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAAAJFNjaGVkdWxlcgQAcQoBsQE8ZHluYW1pY19wYXJhbXM6OnNjaGVkdWxlcjo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHM6OgpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6VmFsdWUAAQAwTWVzc2FnZVF1ZXVlBAB1CgHBATxkeW5hbWljX3BhcmFtczo6bWVzc2FnZV9xdWV1ZTo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHM6OgpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6VmFsdWUAAgAAbQoQXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zQHN0YWtpbmdfZWxlY3Rpb248UGFyYW1ldGVyc1ZhbHVlAAEcLFNpZ25lZFBoYXNlBAA4ASxCbG9ja051bWJlcgAAAFBNYXhTaWduZWRTdWJtaXNzaW9ucwQAOAEMdTMyAAEANFVuc2lnbmVkUGhhc2UEADgBLEJsb2NrTnVtYmVyAAIAKE1pbmVyUGFnZXMEADgBDHUzMgADAERNYXhFbGVjdGluZ1ZvdGVycwQAOAEMdTMyAAQAWFRhcmdldFNuYXBzaG90UGVyQmxvY2sEADgBDHUzMgAFADhNYXhFcmFEdXJhdGlvbgQAKAEMdTY0AAYAAHEKEFxhc3NldF9odWJfcGFzZW9fcnVudGltZThkeW5hbWljX3BhcmFtcyRzY2hlZHVsZXI8UGFyYW1ldGVyc1ZhbHVlAAEIUE1heFNjaGVkdWxlZFBlckJsb2NrBAA4AQx1MzIAAAA0TWF4aW11bVdlaWdodAQAFQEBGFdlaWdodAABAAB1ChBcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXM0bWVzc2FnZV9xdWV1ZTxQYXJhbWV0ZXJzVmFsdWUAAQg8TWF4T25Jbml0V2VpZ2h0BAARAQE4T3B0aW9uPFdlaWdodD4AAAA8TWF4T25JZGxlV2VpZ2h0BAARAQE4T3B0aW9uPFdlaWdodD4AAQAAeQoMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBRFdmVudAQEVAABIDhVcGdyYWRlU3RhcnRlZAQBKG1pZ3JhdGlvbnM4AQx1MzIQ0FRoZSBudW1iZXIgb2YgbWlncmF0aW9ucyB0aGF0IHRoaXMgdXBncmFkZSBjb250YWlucy4AQQFUaGlzIGNhbiBiZSB1c2VkIHRvIGRlc2lnbiBhIHByb2dyZXNzIGluZGljYXRvciBpbiBjb21iaW5hdGlvbiB3aXRoIGNvdW50aW5nIHRoZcxgTWlncmF0aW9uQ29tcGxldGVkYCBhbmQgYE1pZ3JhdGlvblNraXBwZWRgIGV2ZW50cy4ADGhBIFJ1bnRpbWUgdXBncmFkZSBzdGFydGVkLgD4SXRzIGVuZCBpcyBpbmRpY2F0ZWQgYnkgYFVwZ3JhZGVDb21wbGV0ZWRgIG9yIGBVcGdyYWRlRmFpbGVkYC5AVXBncmFkZUNvbXBsZXRlZAABDJhUaGUgY3VycmVudCBydW50aW1lIHVwZ3JhZGUgY29tcGxldGVkLgAdAVRoaXMgaW1wbGllcyB0aGF0IGFsbCBvZiBpdHMgbWlncmF0aW9ucyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFzIHdlbGwuNFVwZ3JhZGVGYWlsZWQAAgxcUnVudGltZSB1cGdyYWRlIGZhaWxlZC4A6FRoaXMgaXMgdmVyeSBiYWQgYW5kIHdpbGwgcmVxdWlyZSBnb3Zlcm5hbmNlIGludGVydmVudGlvbi5ATWlncmF0aW9uU2tpcHBlZAQBFGluZGV4OAEMdTMyBCkBVGhlIGluZGV4IG9mIHRoZSBza2lwcGVkIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4DBAkBQSBtaWdyYXRpb24gd2FzIHNraXBwZWQgc2luY2UgaXQgd2FzIGFscmVhZHkgZXhlY3V0ZWQgaW4gdGhlIHBhc3QuRE1pZ3JhdGlvbkFkdmFuY2VkCAEUaW5kZXg4AQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2s4AURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4EBFxBIG1pZ3JhdGlvbiBwcm9ncmVzc2VkLkhNaWdyYXRpb25Db21wbGV0ZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgUEWEEgTWlncmF0aW9uIGNvbXBsZXRlZC48TWlncmF0aW9uRmFpbGVkCAEUaW5kZXg4AQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2s4AURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4GDExBIE1pZ3JhdGlvbiBmYWlsZWQuAE0BVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHdob2xlIHVwZ3JhZGUgZmFpbGVkIGFuZCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyByZXF1aXJlZC48SGlzdG9yaWNDbGVhcmVkBAEsbmV4dF9jdXJzb3JNAQE8T3B0aW9uPFZlYzx1OD4+BOhTaG91bGQgYmUgcGFzc2VkIHRvIGBjbGVhcl9oaXN0b3JpY2AgaW4gYSBzdWNjZXNzaXZlIGNhbGwuBwTIVGhlIHNldCBvZiBoaXN0b3JpY2FsIG1pZ3JhdGlvbnMgaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR9Cgw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABeBxFbmRvd2VkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZVkBAShUOjpCYWxhbmNlAAAEuEFuIGFjY291bnQgd2FzIGNyZWF0ZWQgd2l0aCBzb21lIGZyZWUgYmFsYW5jZS4gRHVzdExvc3QIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvBAEwVDo6QWNjb3VudElkAAEQZnJlZVkBAShUOjpCYWxhbmNlAAMEaEEgYmFsYW5jZSB3YXMgc2V0IGJ5IHJvb3QuIFJlc2VydmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAUhkZXN0aW5hdGlvbl9zdGF0dXOBCgEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlAAgEHQFTb21lIGFtb3VudCB3YXMgd2l0aGRyYXduIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLhxTbGFzaGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuME1pbnRlZENyZWRpdAQBGGFtb3VudFkBAShUOjpCYWxhbmNlAAsE4FNvbWUgY3JlZGl0IHdhcyBiYWxhbmNlZCBhbmQgYWRkZWQgdG8gdGhlIFRvdGFsSXNzdWFuY2UuGEJ1cm5lZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlAAwEnFNvbWUgYW1vdW50IHdhcyBidXJuZWQgZnJvbSBhbiBhY2NvdW50LihCdXJuZWREZWJ0BAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UADQTMU29tZSBkZWJ0IGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0aGUgVG90YWwgSXNzdWFuY2UuJFN1c3BlbmRlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlAA4EFQFTb21lIGFtb3VudCB3YXMgc3VzcGVuZGVkIGZyb20gYW4gYWNjb3VudCAoaXQgY2FuIGJlIHJlc3RvcmVkIGxhdGVyKS4gUmVzdG9yZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQAPBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwQBMFQ6OkFjY291bnRJZAAQBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAEQQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnRZAQEoVDo6QmFsYW5jZQASBCUBVG90YWwgaXNzdWFuY2Ugd2FzIGRlY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBkZWJ0IHRvIGJlIGJhbGFuY2VkLhhMb2NrZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQATBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQAUBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQAVBGBTb21lIGJhbGFuY2Ugd2FzIGZyb3plbi4YVGhhd2VkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAFgRgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGRZAQEoVDo6QmFsYW5jZQABDG5ld1kBAShUOjpCYWxhbmNlABcErFRoZSBgVG90YWxJc3N1YW5jZWAgd2FzIGZvcmNlZnVsbHkgY2hhbmdlZC4QSGVsZAwBGHJlYXNvboUKAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABgEgFNvbWUgYmFsYW5jZSB3YXMgcGxhY2VkIG9uIGhvbGQuKEJ1cm5lZEhlbGQMARhyZWFzb26FCgFQVDo6UnVudGltZUhvbGRSZWFzb24AAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQAZBKBIZWxkIGJhbGFuY2Ugd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuOFRyYW5zZmVyT25Ib2xkEAEYcmVhc29uhQoBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYc291cmNlBAEwVDo6QWNjb3VudElkAAEQZGVzdAQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABoEFQFBIHRyYW5zZmVyIG9mIGBhbW91bnRgIG9uIGhvbGQgZnJvbSBgc291cmNlYCB0byBgZGVzdGAgd2FzIGluaXRpYXRlZC48VHJhbnNmZXJBbmRIb2xkEAEYcmVhc29uhQoBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYc291cmNlBAEwVDo6QWNjb3VudElkAAEQZGVzdAQBMFQ6OkFjY291bnRJZAABLHRyYW5zZmVycmVkWQEBKFQ6OkJhbGFuY2UAGwQJAVRoZSBgdHJhbnNmZXJyZWRgIGJhbGFuY2UgaXMgcGxhY2VkIG9uIGhvbGQgYXQgdGhlIGBkZXN0YCBhY2NvdW50LiBSZWxlYXNlZAwBGHJlYXNvboUKAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABwEkFNvbWUgYmFsYW5jZSB3YXMgcmVsZWFzZWQgZnJvbSBob2xkLihVbmV4cGVjdGVkBACdCgE4VW5leHBlY3RlZEtpbmQAHQSwQW4gdW5leHBlY3RlZC9kZWZlbnNpdmUgZXZlbnQgd2FzIHRyaWdnZXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSBChQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAIUKCFxhc3NldF9odWJfcGFzZW9fcnVudGltZURSdW50aW1lSG9sZFJlYXNvbgABKCBQcmVpbWFnZQQACQcBbHBhbGxldF9wcmVpbWFnZTo6SG9sZFJlYXNvbgAFABxTZXNzaW9uBAAZBwFocGFsbGV0X3Nlc3Npb246OkhvbGRSZWFzb24AFgAsUG9sa2Fkb3RYY20EAB0HAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAB8ASE11bHRpQXNzZXRCb3VudGllcwQAiQoBnHBhbGxldF9tdWx0aV9hc3NldF9ib3VudGllczo6SG9sZFJlYXNvbgBEAEhTdGF0ZVRyaWVNaWdyYXRpb24EABEHAZxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkhvbGRSZWFzb24ARgBARGVsZWdhdGVkU3Rha2luZwQAFQcBkHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZzo6SG9sZFJlYXNvbgBTADxTdGFraW5nUmNDbGllbnQEAI0KAahwYWxsZXRfc3Rha2luZ19hc3luY19yY19jbGllbnQ6OkhvbGRSZWFzb24AVABgTXVsdGlCbG9ja0VsZWN0aW9uU2lnbmVkBACRCgHgcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrOjpzaWduZWQ6OkhvbGRSZWFzb24AWAAcU3Rha2luZwQAlQoBgHBhbGxldF9zdGFraW5nX2FzeW5jOjpIb2xkUmVhc29uAFkAGFJldml2ZQQAmQoBZHBhbGxldF9yZXZpdmU6OkhvbGRSZWFzb24AZAAAiQoMbHBhbGxldF9tdWx0aV9hc3NldF9ib3VudGllcxhwYWxsZXQoSG9sZFJlYXNvbgQESQABBDhDdXJhdG9yRGVwb3NpdAAAAACNCgx4cGFsbGV0X3N0YWtpbmdfYXN5bmNfcmNfY2xpZW50GHBhbGxldChIb2xkUmVhc29uAAEEEEtleXMAAAAAkQoQkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jaxhzaWduZWQYcGFsbGV0KEhvbGRSZWFzb24AAQRAU2lnbmVkU3VibWlzc2lvbgAAAACVChBQcGFsbGV0X3N0YWtpbmdfYXN5bmMYcGFsbGV0GHBhbGxldChIb2xkUmVhc29uAAEEHFN0YWtpbmcAAAAAmQoMNHBhbGxldF9yZXZpdmUYcGFsbGV0KEhvbGRSZWFzb24AAQxgQ29kZVVwbG9hZERlcG9zaXRSZXNlcnZlAAAAVFN0b3JhZ2VEZXBvc2l0UmVzZXJ2ZQABADhBZGRyZXNzTWFwcGluZwACAACdCgw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldDhVbmV4cGVjdGVkS2luZAABCDhCYWxhbmNlVXBkYXRlZAAAAFRGYWlsZWRUb011dGF0ZUFjY291bnQAAQAAoQoMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8EATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlWQEBMEJhbGFuY2VPZjxUPgABDHRpcFkBATBCYWxhbmNlT2Y8VD4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsXGhhcyBiZWVuIHBhaWQgYnkgYHdob2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0pQoMiHBhbGxldF9hc3NldF9jb252ZXJzaW9uX3R4X3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEIOEFzc2V0VHhGZWVQYWlkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZVkBATBCYWxhbmNlT2Y8VD4AAQx0aXBZAQEwQmFsYW5jZU9mPFQ+AAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSy4aGFzIGJlZW4gcGFpZCBieSBgd2hvYCBpbiBhbiBhc3NldCBgYXNzZXRfaWRgLkRBc3NldFJlZnVuZEZhaWxlZAQBSG5hdGl2ZV9hbW91bnRfa2VwdFkBATBCYWxhbmNlT2Y8VD4AAQT0QSBzd2FwIG9mIHRoZSByZWZ1bmQgaW4gbmF0aXZlIGN1cnJlbmN5IGJhY2sgdG8gYXNzZXQgZmFpbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKkKDDhwYWxsZXRfdmVzdGluZxhwYWxsZXQURXZlbnQEBFQAAQw4VmVzdGluZ0NyZWF0ZWQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAE4c2NoZWR1bGVfaW5kZXg4AQx1MzIAAASQQSB2ZXN0aW5nIHNjaGVkdWxlIGhhcyBiZWVuIGNyZWF0ZWQuOFZlc3RpbmdVcGRhdGVkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABIHVudmVzdGVkWQEBMEJhbGFuY2VPZjxUPgABCFEBVGhlIGFtb3VudCB2ZXN0ZWQgaGFzIGJlZW4gdXBkYXRlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIGNoYW5nZSBpbiBmdW5kcyBhdmFpbGFibGUuJQFUaGUgYmFsYW5jZSBnaXZlbiBpcyB0aGUgYW1vdW50IHdoaWNoIGlzIGxlZnQgdW52ZXN0ZWQgKGFuZCB0aHVzIGxvY2tlZCkuQFZlc3RpbmdDb21wbGV0ZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIEnEFuIFxbYWNjb3VudFxdIGhhcyBiZWNvbWUgZnVsbHkgdmVzdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldK0KEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXMYcGFsbGV0FEV2ZW50BARUAAEEHENsYWltZWQMAQx3aG8EATBUOjpBY2NvdW50SWQAAUBldGhlcmV1bV9hZGRyZXNzfQEBPEV0aGVyZXVtQWRkcmVzcwABGGFtb3VudFkBATBCYWxhbmNlT2Y8VD4AAARoU29tZW9uZSBjbGFpbWVkIHNvbWUgRE9Ucy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSxCgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXZlbnQEBFQAAShATmV3SW52dWxuZXJhYmxlcwQBNGludnVsbmVyYWJsZXNhAQFEVmVjPFQ6OkFjY291bnRJZD4AAARsTmV3IEludnVsbmVyYWJsZXMgd2VyZSBzZXQuREludnVsbmVyYWJsZUFkZGVkBAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABBHRBIG5ldyBJbnZ1bG5lcmFibGUgd2FzIGFkZGVkLkxJbnZ1bG5lcmFibGVSZW1vdmVkBAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAACBHBBbiBJbnZ1bG5lcmFibGUgd2FzIHJlbW92ZWQuUE5ld0Rlc2lyZWRDYW5kaWRhdGVzBAFIZGVzaXJlZF9jYW5kaWRhdGVzOAEMdTMyAAMEpFRoZSBudW1iZXIgb2YgZGVzaXJlZCBjYW5kaWRhdGVzIHdhcyBzZXQuQE5ld0NhbmRpZGFjeUJvbmQEASxib25kX2Ftb3VudFkBATBCYWxhbmNlT2Y8VD4ABARsVGhlIGNhbmRpZGFjeSBib25kIHdhcyBzZXQuOENhbmRpZGF0ZUFkZGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXRZAQEwQmFsYW5jZU9mPFQ+AAUEXEEgbmV3IGNhbmRpZGF0ZSBqb2luZWQuUENhbmRpZGF0ZUJvbmRVcGRhdGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXRZAQEwQmFsYW5jZU9mPFQ+AAYEcEJvbmQgb2YgYSBjYW5kaWRhdGUgdXBkYXRlZC5AQ2FuZGlkYXRlUmVtb3ZlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQABwRgQSBjYW5kaWRhdGUgd2FzIHJlbW92ZWQuRENhbmRpZGF0ZVJlcGxhY2VkDAEMb2xkBAEwVDo6QWNjb3VudElkAAEMbmV3BAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdFkBATBCYWxhbmNlT2Y8VD4ACAT0QW4gYWNjb3VudCB3YXMgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGJ5IGFub3RoZXIgb25lLmhJbnZhbGlkSW52dWxuZXJhYmxlU2tpcHBlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACQhVAUFuIGFjY291bnQgd2FzIHVuYWJsZSB0byBiZSBhZGRlZCB0byB0aGUgSW52dWxuZXJhYmxlcyBiZWNhdXNlIHRoZXkgZGlkIG5vdCBoYXZlIGtleXPIcmVnaXN0ZXJlZC4gT3RoZXIgSW52dWxuZXJhYmxlcyBtYXkgaGF2ZSBiZWVuIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS1Cgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50BARUAAEQKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4OAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuJE5ld1F1ZXVlZAABCEkBVGhlIGBOZXdTZXNzaW9uYCBldmVudCBpbiB0aGUgY3VycmVudCBibG9jayBhbHNvIGltcGxpZXMgYSBuZXcgdmFsaWRhdG9yIHNldCB0byBiZRxxdWV1ZWQuRFZhbGlkYXRvckRpc2FibGVkBAEkdmFsaWRhdG9yBAE4VDo6VmFsaWRhdG9ySWQAAgRwVmFsaWRhdG9yIGhhcyBiZWVuIGRpc2FibGVkLkhWYWxpZGF0b3JSZWVuYWJsZWQEASR2YWxpZGF0b3IEAThUOjpWYWxpZGF0b3JJZAADBHhWYWxpZGF0b3IgaGFzIGJlZW4gcmUtZW5hYmxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS5CgxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAAQQ8WGNtcE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoCAEcWGNtSGFzaAAABMBBbiBIUk1QIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gYSBzaWJsaW5nIHBhcmFjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS9CgwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZcEKAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbgECASBMb2NhdGlvbgABLGRlc3RpbmF0aW9uAQIBIExvY2F0aW9uAAEcbWVzc2FnZfkCARxYY208KCk+AAEobWVzc2FnZV9pZAgBHFhjbUhhc2gAAQRgQW4gWENNIG1lc3NhZ2Ugd2FzIHNlbnQuKFNlbmRGYWlsZWQQARhvcmlnaW4BAgEgTG9jYXRpb24AASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABFGVycm9yyQoBJFNlbmRFcnJvcgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAIEeEFuIFhDTSBtZXNzYWdlIGZhaWxlZCB0byBzZW5kLjxQcm9jZXNzWGNtRXJyb3IMARhvcmlnaW4BAgEgTG9jYXRpb24AARRlcnJvcikDASBYY21FcnJvcgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAMEhEFuIFhDTSBtZXNzYWdlIGZhaWxlZCB0byBwcm9jZXNzLkhVbmV4cGVjdGVkUmVzcG9uc2UIARhvcmlnaW4BAgEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkKAEcUXVlcnlJZAABIHJlc3BvbnNlHQMBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAABNGFjdHVhbF93ZWlnaHQVAQEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodBUBARhXZWlnaHQABwxJAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb25ZAWNvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGJlY2F1c2UgdGhlIGRpc3BhdGNoIHdlaWdodCBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gd2VpZ2h05G9yaWdpbmFsbHkgYnVkZ2V0ZWQgYnkgdGhpcyBydW50aW1lIGZvciB0aGUgcXVlcnkgcmVzdWx0LkxOb3RpZnlEaXNwYXRjaEVycm9yDAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgACAhVAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGVyZSB3YXMgYSBnZW5lcmFsIGVycm9yIHdpdGiIZGlzcGF0Y2hpbmcgdGhlIG5vdGlmaWNhdGlvbiBjYWxsLkhOb3RpZnlEZWNvZGVGYWlsZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAJDFEBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSBkaXNwYXRjaCB3YXMgdW5hYmxlIHRvIGJlWQFkZWNvZGVkIGludG8gYSBgQ2FsbGA7IHRoaXMgbWlnaHQgYmUgZHVlIHRvIGRpc3BhdGNoIGZ1bmN0aW9uIGhhdmluZyBhIHNpZ25hdHVyZSB3aGljaJRpcyBub3QgYChvcmlnaW4sIFF1ZXJ5SWQsIFJlc3BvbnNlKWAuQEludmFsaWRSZXNwb25kZXIMARhvcmlnaW4BAgEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbj0DAUBPcHRpb248TG9jYXRpb24+AAoMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW4BAgEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQACxxRAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgb3JpZ2luIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC40UmVzcG9uc2VUYWtlbgQBIHF1ZXJ5X2lkKAEcUXVlcnlJZAAMBMhSZWNlaXZlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWFkIGFuZCByZW1vdmVkLjRBc3NldHNUcmFwcGVkDAEQaGFzaEABEEgyNTYAARhvcmlnaW4BAgEgTG9jYXRpb24AARhhc3NldHNxAwE8VmVyc2lvbmVkQXNzZXRzAA0EuFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBwbGFjZWQgaW4gYW4gYXNzZXQgdHJhcC5UVmVyc2lvbkNoYW5nZU5vdGlmaWVkEAEsZGVzdGluYXRpb24BAgEgTG9jYXRpb24AARhyZXN1bHQ4AShYY21WZXJzaW9uAAEQY29zdAUDARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAODCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbgECASBMb2NhdGlvbgABHHZlcnNpb244AShYY21WZXJzaW9uAA8IOQFUaGUgc3VwcG9ydGVkIHZlcnNpb24gb2YgYSBsb2NhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiBUaGlzIG1pZ2h0IGJlIHRocm91Z2ggYW7AYXV0b21hdGljIG5vdGlmaWNhdGlvbiBvciBhIG1hbnVhbCBpbnRlcnZlbnRpb24uUE5vdGlmeVRhcmdldFNlbmRGYWlsDAEgbG9jYXRpb24BAgEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAARRlcnJvcikDASBYY21FcnJvcgAQCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3J8c2VuZGluZyB0aGUgbm90aWZpY2F0aW9uIHRvIGl0LmROb3RpZnlUYXJnZXRNaWdyYXRpb25GYWlsCAEgbG9jYXRpb26tAQFEVmVyc2lvbmVkTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAEQhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9ytG1pZ3JhdGluZyB0aGUgbG9jYXRpb24gdG8gb3VyIG5ldyBYQ00gZm9ybWF0LlRJbnZhbGlkUXVlcmllclZlcnNpb24IARhvcmlnaW4BAgEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAEhxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2luAQIBIExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkAAFAZXhwZWN0ZWRfcXVlcmllcgECASBMb2NhdGlvbgABUG1heWJlX2FjdHVhbF9xdWVyaWVyPQMBQE9wdGlvbjxMb2NhdGlvbj4AEwxdAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgcXVlcmllciBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1EBbm90IG1hdGNoIHRoZSBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlBWZXJzaW9uTm90aWZ5U3RhcnRlZAwBLGRlc3RpbmF0aW9uAQIBIExvY2F0aW9uAAEQY29zdAUDARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAUCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABEGNvc3QFAwEYQXNzZXRzAAEobWVzc2FnZV9pZAgBHFhjbUhhc2gAFQQ9AVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc2VuZCB1cyBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy5gVmVyc2lvbk5vdGlmeVVucmVxdWVzdGVkDAEsZGVzdGluYXRpb24BAgEgTG9jYXRpb24AARBjb3N0BQMBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABYIJQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHN0b3BzIHNlbmRpbmcgdXMgWENNIHZlcnNpb24gY2hhbmdlOG5vdGlmaWNhdGlvbnMuIEZlZXNQYWlkCAEYcGF5aW5nAQIBIExvY2F0aW9uAAEQZmVlcwUDARhBc3NldHMAFwQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2hAARBIMjU2AAEYb3JpZ2luAQIBIExvY2F0aW9uAAEYYXNzZXRzcQMBPFZlcnNpb25lZEFzc2V0cwAYBMBTb21lIGFzc2V0cyBoYXZlIGJlZW4gY2xhaW1lZCBmcm9tIGFuIGFzc2V0IHRyYXBgVmVyc2lvbk1pZ3JhdGlvbkZpbmlzaGVkBAEcdmVyc2lvbjgBKFhjbVZlcnNpb24AGQSEQSBYQ00gdmVyc2lvbiBtaWdyYXRpb24gZmluaXNoZWQuPEFsaWFzQXV0aG9yaXplZAwBHGFsaWFzZXIBAgEgTG9jYXRpb24AARh0YXJnZXQBAgEgTG9jYXRpb24AARhleHBpcnkBAQEsT3B0aW9uPHU2ND4AGghdAUFuIGBhbGlhc2VyYCBsb2NhdGlvbiB3YXMgYXV0aG9yaXplZCBieSBgdGFyZ2V0YCB0byBhbGlhcyBpdCwgYXV0aG9yaXphdGlvbiB2YWxpZCB1bnRpbFhgZXhwaXJ5YCBibG9jayBudW1iZXIuZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQIARxhbGlhc2VyAQIBIExvY2F0aW9uAAEYdGFyZ2V0AQIBIExvY2F0aW9uABsEzGB0YXJnZXRgIHJlbW92ZWQgYWxpYXMgYXV0aG9yaXphdGlvbiBmb3IgYGFsaWFzZXJgLnBBbGlhc2VzQXV0aG9yaXphdGlvbnNSZW1vdmVkBAEYdGFyZ2V0AQIBIExvY2F0aW9uABwEqGB0YXJnZXRgIHJlbW92ZWQgYWxsIGFsaWFzIGF1dGhvcml6YXRpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMEKECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWQVAQEYV2VpZ2h0AAAAKEluY29tcGxldGUIARB1c2VkFQEBGFdlaWdodAABFGVycm9yxQoBQEluc3RydWN0aW9uRXJyb3IAAQAURXJyb3IEAMUKAUBJbnN0cnVjdGlvbkVycm9yAAIAAMUKECxzdGFnaW5nX3hjbQh2NRh0cmFpdHNASW5zdHJ1Y3Rpb25FcnJvcgAACAEUaW5kZXgMAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3IpAwEURXJyb3IAAMkKEAx4Y20IdjMYdHJhaXRzJFNlbmRFcnJvcgABHDROb3RBcHBsaWNhYmxlAAAAJFRyYW5zcG9ydAABAChVbnJvdXRhYmxlAAIAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQAAwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAQAPE1pc3NpbmdBcmd1bWVudAAFABBGZWVzAAYAAM0KDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAEMNEludmFsaWRGb3JtYXQEAAgBIFt1ODsgMzJdAAAIgERvd253YXJkIG1lc3NhZ2UgaXMgaW52YWxpZCBYQ00uIFxbIGlkIFxdSFVuc3VwcG9ydGVkVmVyc2lvbgQACAEgW3U4OyAzMl0AAQi8RG93bndhcmQgbWVzc2FnZSBpcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIG9mIFhDTS4gXFsgaWQgXF1ARXhlY3V0ZWREb3dud2FyZAgACAEgW3U4OyAzMl0AAMEKARxPdXRjb21lAAIIxERvd253YXJkIG1lc3NhZ2UgZXhlY3V0ZWQgd2l0aCB0aGUgZ2l2ZW4gb3V0Y29tZS5EXFsgaWQsIG91dGNvbWUgXF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTRCgxwcGFsbGV0X3hjbV9icmlkZ2VfaHViX3JvdXRlchhwYWxsZXQURXZlbnQIBFQABEkAAQhoRGVsaXZlcnlGZWVGYWN0b3JEZWNyZWFzZWQEASRuZXdfdmFsdWX1BAEkRml4ZWRVMTI4BJROZXcgdmFsdWUgb2YgdGhlIGBEZWxpdmVyeUZlZUZhY3RvcmAuAAScRGVsaXZlcnkgZmVlIGZhY3RvciBoYXMgYmVlbiBkZWNyZWFzZWQuaERlbGl2ZXJ5RmVlRmFjdG9ySW5jcmVhc2VkBAEkbmV3X3ZhbHVl9QQBJEZpeGVkVTEyOASUTmV3IHZhbHVlIG9mIHRoZSBgRGVsaXZlcnlGZWVGYWN0b3JgLgEEnERlbGl2ZXJ5IGZlZSBmYWN0b3IgaGFzIGJlZW4gaW5jcmVhc2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUKDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAARBAUHJvY2Vzc2luZ0ZhaWxlZAwBCGlkQAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2lutQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEUZXJyb3LZCgFMUHJvY2Vzc01lc3NhZ2VFcnJvchBgVGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuAEkBVGhpcyBlcnJvciBpcyBwcmV0dHkgb3BhcXVlLiBNb3JlIGZpbmUtZ3JhaW5lZCBlcnJvcnMgbmVlZCB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgAEVQFNZXNzYWdlIGRpc2NhcmRlZCBkdWUgdG8gYW4gZXJyb3IgaW4gdGhlIGBNZXNzYWdlUHJvY2Vzc29yYCAodXN1YWxseSBhIGZvcm1hdCBlcnJvcikuJFByb2Nlc3NlZBABCGlkQAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2lutQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEsd2VpZ2h0X3VzZWQVAQEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3NdAQEQYm9vbBiIV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgcHJvY2Vzc2VkLgBJAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyBgTWVzc2FnZVByb2Nlc3NvcmAgd2FzIGludGVybmFsbHk1AXN1Y2Nlc3NmdWwuIEl0ICpzb2xlbHkqIG1lYW5zIHRoYXQgdGhlIE1RIHBhbGxldCB3aWxsIHRyZWF0IHRoaXMgYXMgYSBzdWNjZXNzTQFjb25kaXRpb24gYW5kIGRpc2NhcmQgdGhlIG1lc3NhZ2UuIEFueSBpbnRlcm5hbCBlcnJvciBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgEEVE1lc3NhZ2UgaXMgcHJvY2Vzc2VkLkhPdmVyd2VpZ2h0RW5xdWV1ZWQQAQhpZAgBIFt1ODsgMzJdBJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW61AwFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuAShwYWdlX2luZGV4OAEkUGFnZUluZGV4BGBUaGUgcGFnZSBvZiB0aGUgbWVzc2FnZS4BNG1lc3NhZ2VfaW5kZXg4ARxUOjpTaXplBKRUaGUgaW5kZXggb2YgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBwYWdlLgIEjE1lc3NhZ2UgcGxhY2VkIGluIG92ZXJ3ZWlnaHQgcXVldWUuKFBhZ2VSZWFwZWQIARhvcmlnaW61AwFITWVzc2FnZU9yaWdpbk9mPFQ+BFhUaGUgcXVldWUgb2YgdGhlIHBhZ2UuARRpbmRleDgBJFBhZ2VJbmRleARYVGhlIGluZGV4IG9mIHRoZSBwYWdlLgMEVFRoaXMgcGFnZSB3YXMgcmVhcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNkKEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEABUBARhXZWlnaHQAAwAUWWllbGQABABEU3RhY2tMaW1pdFJlYWNoZWQABQAA3QoMhHNub3dicmlkZ2VfcGFsbGV0X3N5c3RlbV9mcm9udGVuZBhwYWxsZXQURXZlbnQEBFQAAQgsTWVzc2FnZVNlbnQQARhvcmlnaW4BAgEgTG9jYXRpb24AASxkZXN0aW5hdGlvbgECASBMb2NhdGlvbgABHG1lc3NhZ2X5AgEcWGNtPCgpPgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAAEPEFuIFhDTSB3YXMgc2VudGhFeHBvcnRPcGVyYXRpbmdNb2RlQ2hhbmdlZAQBEG1vZGW9AwE0T3BlcmF0aW5nTW9kZQABBERTZXQgT3BlcmF0aW5nTW9kZQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOEKDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXZlbnQAASBAQmF0Y2hJbnRlcnJ1cHRlZAgBFGluZGV4OAEMdTMyAAEUZXJyb3IpCgE0RGlzcGF0Y2hFcnJvcgAACFUBQmF0Y2ggb2YgZGlzcGF0Y2hlcyBkaWQgbm90IGNvbXBsZXRlIGZ1bGx5LiBJbmRleCBvZiBmaXJzdCBmYWlsaW5nIGRpc3BhdGNoIGdpdmVuLCBhc0h3ZWxsIGFzIHRoZSBlcnJvci44QmF0Y2hDb21wbGV0ZWQAAQTIQmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgZnVsbHkgd2l0aCBubyBlcnJvci5gQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAIEtEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGJ1dCBoYXMgZXJyb3JzLjRJdGVtQ29tcGxldGVkAAMEHQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIG5vIGVycm9yLihJdGVtRmFpbGVkBAEUZXJyb3IpCgE0RGlzcGF0Y2hFcnJvcgAEBBEBQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBlcnJvci4wRGlzcGF0Y2hlZEFzBAEYcmVzdWx0TQoBOERpc3BhdGNoUmVzdWx0AAUEWEEgY2FsbCB3YXMgZGlzcGF0Y2hlZC5ESWZFbHNlTWFpblN1Y2Nlc3MABgRkTWFpbiBjYWxsIHdhcyBkaXNwYXRjaGVkLlBJZkVsc2VGYWxsYmFja0NhbGxlZAQBKG1haW5fZXJyb3IpCgE0RGlzcGF0Y2hFcnJvcgAHBIRUaGUgZmFsbGJhY2sgY2FsbCB3YXMgZGlzcGF0Y2hlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTlCgw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFdmVudAQEVAABFCxOZXdNdWx0aXNpZwwBJGFwcHJvdmluZwQBMFQ6OkFjY291bnRJZAABIG11bHRpc2lnBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAAASMQSBuZXcgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWd1bi5ATXVsdGlzaWdBcHByb3ZhbBABJGFwcHJvdmluZwQBMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludP0DAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAABBMhBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBhcHByb3ZlZCBieSBzb21lb25lLkBNdWx0aXNpZ0V4ZWN1dGVkFAEkYXBwcm92aW5nBAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50/QMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAEYcmVzdWx0TQoBOERpc3BhdGNoUmVzdWx0AAIEnEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLkRNdWx0aXNpZ0NhbmNlbGxlZBABKGNhbmNlbGxpbmcEATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnT9AwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAAwSgQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsbGVkLjBEZXBvc2l0UG9rZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAABLG9sZF9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgAEBPBUaGUgZGVwb3NpdCBmb3IgYSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gdXBkYXRlZC9wb2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTpCgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABHDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx0TQoBOERpc3BhdGNoUmVzdWx0AAAEvEEgcHJveHkgd2FzIGV4ZWN1dGVkIGNvcnJlY3RseSwgd2l0aCB0aGUgZ2l2ZW4uLFB1cmVDcmVhdGVkGAEQcHVyZQQBMFQ6OkFjY291bnRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGUJBAEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXjVAwEMdTE2AAEIYXQ4AURCbG9ja051bWJlckZvcjxUPgABPGV4dHJpbnNpY19pbmRleDgBDHUzMgABCNxBIHB1cmUgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIGJ5IG5ldyBwcm94eSB3aXRoIGdpdmVukGRpc2FtYmlndWF0aW9uIGluZGV4IGFuZCBwcm94eSB0eXBlLihQdXJlS2lsbGVkEAEQcHVyZQQBMFQ6OkFjY291bnRJZAABHHNwYXduZXIEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlCQQBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV41QMBDHUxNgACBJxBIHB1cmUgcHJveHkgd2FzIGtpbGxlZCBieSBpdHMgc3Bhd25lci4kQW5ub3VuY2VkDAEQcmVhbAQBMFQ6OkFjY291bnRJZAABFHByb3h5BAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoQAE0Q2FsbEhhc2hPZjxUPgADBOBBbiBhbm5vdW5jZW1lbnQgd2FzIHBsYWNlZCB0byBtYWtlIGEgY2FsbCBpbiB0aGUgZnV0dXJlLihQcm94eUFkZGVkEAEkZGVsZWdhdG9yBAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlBAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZQkEATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAQESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IEATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlCQQBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4ABQRQQSBwcm94eSB3YXMgcmVtb3ZlZC4wRGVwb3NpdFBva2VkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEQa2luZO0KASxEZXBvc2l0S2luZAABLG9sZF9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgAGBAkBQSBkZXBvc2l0IHN0b3JlZCBmb3IgcHJveGllcyBvciBhbm5vdW5jZW1lbnRzIHdhcyBwb2tlZCAvIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV07QoIMHBhbGxldF9wcm94eSxEZXBvc2l0S2luZAABCBxQcm94aWVzAAAANEFubm91bmNlbWVudHMAAQAA8QoMOHBhbGxldF9pbmRpY2VzGHBhbGxldBRFdmVudAQEVAABEDRJbmRleEFzc2lnbmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEUaW5kZXg4ATxUOjpBY2NvdW50SW5kZXgAAAR0QSBhY2NvdW50IGluZGV4IHdhcyBhc3NpZ25lZC4oSW5kZXhGcmVlZAQBFGluZGV4OAE8VDo6QWNjb3VudEluZGV4AAEEvEEgYWNjb3VudCBpbmRleCBoYXMgYmVlbiBmcmVlZCB1cCAodW5hc3NpZ25lZCkuLEluZGV4RnJvemVuCAEUaW5kZXg4ATxUOjpBY2NvdW50SW5kZXgAAQx3aG8EATBUOjpBY2NvdW50SWQAAgToQSBhY2NvdW50IGluZGV4IGhhcyBiZWVuIGZyb3plbiB0byBpdHMgY3VycmVudCBhY2NvdW50IElELjBEZXBvc2l0UG9rZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAARRpbmRleDgBPFQ6OkFjY291bnRJbmRleAABLG9sZF9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgADBOhBIGRlcG9zaXQgdG8gcmVzZXJ2ZSBhbiBpbmRleCBoYXMgYmVlbiBwb2tlZC9yZWNvbnNpZGVyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV09QoMNHBhbGxldF9hc3NldHMYcGFsbGV0FEV2ZW50CARUAARJAAFwHENyZWF0ZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARxjcmVhdG9yBAEwVDo6QWNjb3VudElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAAAR0U29tZSBhc3NldCBjbGFzcyB3YXMgY3JlYXRlZC4YSXNzdWVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQABBGBTb21lIGFzc2V0cyB3ZXJlIGlzc3VlZC4sVHJhbnNmZXJyZWQQASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQACBHRTb21lIGFzc2V0cyB3ZXJlIHRyYW5zZmVycmVkLhhCdXJuZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABHGJhbGFuY2VZAQEoVDo6QmFsYW5jZQADBGxTb21lIGFzc2V0cyB3ZXJlIGRlc3Ryb3llZC4sVGVhbUNoYW5nZWQQASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARhpc3N1ZXIEATBUOjpBY2NvdW50SWQAARRhZG1pbgQBMFQ6OkFjY291bnRJZAABHGZyZWV6ZXIEATBUOjpBY2NvdW50SWQABARwVGhlIG1hbmFnZW1lbnQgdGVhbSBjaGFuZ2VkLjBPd25lckNoYW5nZWQIASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAFBEhUaGUgb3duZXIgY2hhbmdlZC4YRnJvemVuCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAYEeFNvbWUgYWNjb3VudCBgd2hvYCB3YXMgZnJvemVuLhhUaGF3ZWQIASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQABwR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyB0aGF3ZWQuLEFzc2V0RnJvemVuBAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAgEhFNvbWUgYXNzZXQgYGFzc2V0X2lkYCB3YXMgZnJvemVuLixBc3NldFRoYXdlZAQBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAAJBIRTb21lIGFzc2V0IGBhc3NldF9pZGAgd2FzIHRoYXdlZC5EQWNjb3VudHNEZXN0cm95ZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAUhhY2NvdW50c19kZXN0cm95ZWQ4AQx1MzIAAUhhY2NvdW50c19yZW1haW5pbmc4AQx1MzIACgSgQWNjb3VudHMgd2VyZSBkZXN0cm95ZWQgZm9yIGdpdmVuIGFzc2V0LkhBcHByb3ZhbHNEZXN0cm95ZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAUxhcHByb3ZhbHNfZGVzdHJveWVkOAEMdTMyAAFMYXBwcm92YWxzX3JlbWFpbmluZzgBDHUzMgALBKRBcHByb3ZhbHMgd2VyZSBkZXN0cm95ZWQgZm9yIGdpdmVuIGFzc2V0LkhEZXN0cnVjdGlvblN0YXJ0ZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQADATQQW4gYXNzZXQgY2xhc3MgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgZGVzdHJveWVkLiREZXN0cm95ZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQADQR0QW4gYXNzZXQgY2xhc3Mgd2FzIGRlc3Ryb3llZC4wRm9yY2VDcmVhdGVkCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQADgSMU29tZSBhc3NldCBjbGFzcyB3YXMgZm9yY2UtY3JlYXRlZC4sTWV0YWRhdGFTZXQUASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuXQEBEGJvb2wADwScTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gYXNzZXQuPE1ldGFkYXRhQ2xlYXJlZAQBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAAQBJxNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBhc3NldC5AQXBwcm92ZWRUcmFuc2ZlchABIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAEQQxAShBZGRpdGlvbmFsKSBmdW5kcyBoYXZlIGJlZW4gYXBwcm92ZWQgZm9yIHRyYW5zZmVyIHRvIGEgZGVzdGluYXRpb24gYWNjb3VudC5EQXBwcm92YWxDYW5jZWxsZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkABIE8EFuIGFwcHJvdmFsIGZvciBhY2NvdW50IGBkZWxlZ2F0ZWAgd2FzIGNhbmNlbGxlZCBieSBgb3duZXJgLkxUcmFuc2ZlcnJlZEFwcHJvdmVkFAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAEwgxAUFuIGBhbW91bnRgIHdhcyB0cmFuc2ZlcnJlZCBpbiBpdHMgZW50aXJldHkgZnJvbSBgb3duZXJgIHRvIGBkZXN0aW5hdGlvbmAgYnlgdGhlIGFwcHJvdmVkIGBkZWxlZ2F0ZWAuSEFzc2V0U3RhdHVzQ2hhbmdlZAQBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAAUBPhBbiBhc3NldCBoYXMgaGFkIGl0cyBhdHRyaWJ1dGVzIGNoYW5nZWQgYnkgdGhlIGBGb3JjZWAgb3JpZ2luLlhBc3NldE1pbkJhbGFuY2VDaGFuZ2VkCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAE8bmV3X21pbl9iYWxhbmNlWQEBKFQ6OkJhbGFuY2UAFQQBAVRoZSBtaW5fYmFsYW5jZSBvZiBhbiBhc3NldCBoYXMgYmVlbiB1cGRhdGVkIGJ5IHRoZSBhc3NldCBvd25lci4cVG91Y2hlZAwBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABJGRlcG9zaXRvcgQBMFQ6OkFjY291bnRJZAAWBPxTb21lIGFjY291bnQgYHdob2Agd2FzIGNyZWF0ZWQgd2l0aCBhIGRlcG9zaXQgZnJvbSBgZGVwb3NpdG9yYC4cQmxvY2tlZAgBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAXBHxTb21lIGFjY291bnQgYHdob2Agd2FzIGJsb2NrZWQuJERlcG9zaXRlZAwBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABgE3FNvbWUgYXNzZXRzIHdlcmUgZGVwb3NpdGVkIChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4kV2l0aGRyYXduDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAGQQhAVNvbWUgYXNzZXRzIHdlcmUgd2l0aGRyYXduIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLjxSZXNlcnZlc1VwZGF0ZWQIASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAASByZXNlcnZlcxkEAUxWZWM8VDo6UmVzZXJ2ZURhdGE+ABoE2FJlc2VydmUgaW5mb3JtYXRpb24gd2FzIHNldCBvciB1cGRhdGVkIGZvciBgYXNzZXRfaWRgLjxSZXNlcnZlc1JlbW92ZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAGwS8UmVzZXJ2ZSBpbmZvcm1hdGlvbiB3YXMgcmVtb3ZlZCBmb3IgYGFzc2V0X2lkYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT5Cgw4cGFsbGV0X3VuaXF1ZXMYcGFsbGV0FEV2ZW50CARUAARJAAFsHENyZWF0ZWQMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEcY3JlYXRvcgQBMFQ6OkFjY291bnRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAAEbEEgYGNvbGxlY3Rpb25gIHdhcyBjcmVhdGVkLjBGb3JjZUNyZWF0ZWQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAAQSEQSBgY29sbGVjdGlvbmAgd2FzIGZvcmNlLWNyZWF0ZWQuJERlc3Ryb3llZAQBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAgR0QSBgY29sbGVjdGlvbmAgd2FzIGRlc3Ryb3llZC4YSXNzdWVkDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAADBFRBbiBgaXRlbWAgd2FzIGlzc3VlZC4sVHJhbnNmZXJyZWQQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABEGZyb20EATBUOjpBY2NvdW50SWQAAQh0bwQBMFQ6OkFjY291bnRJZAAEBGhBbiBgaXRlbWAgd2FzIHRyYW5zZmVycmVkLhhCdXJuZWQMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAUEYEFuIGBpdGVtYCB3YXMgZGVzdHJveWVkLhhGcm96ZW4IAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAAGBFxTb21lIGBpdGVtYCB3YXMgZnJvemVuLhhUaGF3ZWQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAAHBFxTb21lIGBpdGVtYCB3YXMgdGhhd2VkLkBDb2xsZWN0aW9uRnJvemVuBAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAAIBHRTb21lIGBjb2xsZWN0aW9uYCB3YXMgZnJvemVuLkBDb2xsZWN0aW9uVGhhd2VkBAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAAJBHRTb21lIGBjb2xsZWN0aW9uYCB3YXMgdGhhd2VkLjBPd25lckNoYW5nZWQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyBAEwVDo6QWNjb3VudElkAAoESFRoZSBvd25lciBjaGFuZ2VkLixUZWFtQ2hhbmdlZBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIEATBUOjpBY2NvdW50SWQAARRhZG1pbgQBMFQ6OkFjY291bnRJZAABHGZyZWV6ZXIEATBUOjpBY2NvdW50SWQACwRwVGhlIG1hbmFnZW1lbnQgdGVhbSBjaGFuZ2VkLkBBcHByb3ZlZFRyYW5zZmVyEAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAwIMQFBbiBgaXRlbWAgb2YgYSBgY29sbGVjdGlvbmAgaGFzIGJlZW4gYXBwcm92ZWQgYnkgdGhlIGBvd25lcmAgZm9yIHRyYW5zZmVyIGJ5NGEgYGRlbGVnYXRlYC5EQXBwcm92YWxDYW5jZWxsZWQQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQADQgZAUFuIGFwcHJvdmFsIGZvciBhIGBkZWxlZ2F0ZWAgYWNjb3VudCB0byB0cmFuc2ZlciB0aGUgYGl0ZW1gIG9mIGFuIGl0ZW2oYGNvbGxlY3Rpb25gIHdhcyBjYW5jZWxsZWQgYnkgaXRzIGBvd25lcmAuREl0ZW1TdGF0dXNDaGFuZ2VkBAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAAOBBEBQSBgY29sbGVjdGlvbmAgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5UQ29sbGVjdGlvbk1ldGFkYXRhU2V0DAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGRhdGEtBAF4Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuXQEBEGJvb2wADwS0TmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYSBgY29sbGVjdGlvbmAuZENvbGxlY3Rpb25NZXRhZGF0YUNsZWFyZWQEAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkABAEtE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGEgYGNvbGxlY3Rpb25gLixNZXRhZGF0YVNldBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEQZGF0YS0EAXhCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5dAQEQYm9vbAARBJhOZXcgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhbiBpdGVtLjxNZXRhZGF0YUNsZWFyZWQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAASBJhNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBpdGVtLixSZWRlcG9zaXRlZAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAUBzdWNjZXNzZnVsX2l0ZW1zKQQBOFZlYzxUOjpJdGVtSWQ+ABMEmE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGFuIGl0ZW0uMEF0dHJpYnV0ZVNldBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXnFAwFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWV8AXRCb3VuZGVkVmVjPHU4LCBUOjpWYWx1ZUxpbWl0PgAUBAUBTmV3IGF0dHJpYnV0ZSBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGEgYGNvbGxlY3Rpb25gIG9yIGBpdGVtYC5AQXR0cmlidXRlQ2xlYXJlZAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXnFAwFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+ABUEBQFBdHRyaWJ1dGUgbWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYSBgY29sbGVjdGlvbmAgb3IgYGl0ZW1gLmhPd25lcnNoaXBBY2NlcHRhbmNlQ2hhbmdlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABQG1heWJlX2NvbGxlY3Rpb27kAVxPcHRpb248VDo6Q29sbGVjdGlvbklkPgAWBMBPd25lcnNoaXAgYWNjZXB0YW5jZSBoYXMgY2hhbmdlZCBmb3IgYW4gYWNjb3VudC5YQ29sbGVjdGlvbk1heFN1cHBseVNldAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAAShtYXhfc3VwcGx5OAEMdTMyABcEpE1heCBzdXBwbHkgaGFzIGJlZW4gc2V0IGZvciBhIGNvbGxlY3Rpb24uMEl0ZW1QcmljZVNldBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEUcHJpY2VZAQE8SXRlbVByaWNlPFQsIEk+AAFEd2hpdGVsaXN0ZWRfYnV5ZXKRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AGASMVGhlIHByaWNlIHdhcyBzZXQgZm9yIHRoZSBpbnN0YW5jZS5ASXRlbVByaWNlUmVtb3ZlZAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkABkEnFRoZSBwcmljZSBmb3IgdGhlIGluc3RhbmNlIHdhcyByZW1vdmVkLihJdGVtQm91Z2h0FAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRwcmljZVkBATxJdGVtUHJpY2U8VCwgST4AARhzZWxsZXIEATBUOjpBY2NvdW50SWQAARRidXllcgQBMFQ6OkFjY291bnRJZAAaBExBbiBpdGVtIHdhcyBib3VnaHQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0/QoMLHBhbGxldF9uZnRzGHBhbGxldBRFdmVudAgEVAAESQABmBxDcmVhdGVkDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABHGNyZWF0b3IEATBUOjpBY2NvdW50SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAABGxBIGBjb2xsZWN0aW9uYCB3YXMgY3JlYXRlZC4wRm9yY2VDcmVhdGVkCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEEhEEgYGNvbGxlY3Rpb25gIHdhcyBmb3JjZS1jcmVhdGVkLiREZXN0cm95ZWQEAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAIEdEEgYGNvbGxlY3Rpb25gIHdhcyBkZXN0cm95ZWQuGElzc3VlZAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAAwRUQW4gYGl0ZW1gIHdhcyBpc3N1ZWQuLFRyYW5zZmVycmVkEAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQABARoQW4gYGl0ZW1gIHdhcyB0cmFuc2ZlcnJlZC4YQnVybmVkDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAFBGBBbiBgaXRlbWAgd2FzIGRlc3Ryb3llZC5ISXRlbVRyYW5zZmVyTG9ja2VkCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQABgSIQW4gYGl0ZW1gIGJlY2FtZSBub24tdHJhbnNmZXJhYmxlLlBJdGVtVHJhbnNmZXJVbmxvY2tlZAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAcEeEFuIGBpdGVtYCBiZWNhbWUgdHJhbnNmZXJhYmxlLlBJdGVtUHJvcGVydGllc0xvY2tlZBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAE0bG9ja19tZXRhZGF0YV0BARBib29sAAE8bG9ja19hdHRyaWJ1dGVzXQEBEGJvb2wACASoYGl0ZW1gIG1ldGFkYXRhIG9yIGF0dHJpYnV0ZXMgd2VyZSBsb2NrZWQuQENvbGxlY3Rpb25Mb2NrZWQEAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAkEdFNvbWUgYGNvbGxlY3Rpb25gIHdhcyBsb2NrZWQuME93bmVyQ2hhbmdlZAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAASRuZXdfb3duZXIEATBUOjpBY2NvdW50SWQACgRIVGhlIG93bmVyIGNoYW5nZWQuLFRlYW1DaGFuZ2VkEAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABGGlzc3VlcpEBAVBPcHRpb248VDo6QWNjb3VudElkPgABFGFkbWlukQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEcZnJlZXplcpEBAVBPcHRpb248VDo6QWNjb3VudElkPgALBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuQFRyYW5zZmVyQXBwcm92ZWQUAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAASBkZWFkbGluZeQBcE9wdGlvbjxCbG9ja051bWJlckZvcjxULCBJPj4ADAgxAUFuIGBpdGVtYCBvZiBhIGBjb2xsZWN0aW9uYCBoYXMgYmVlbiBhcHByb3ZlZCBieSB0aGUgYG93bmVyYCBmb3IgdHJhbnNmZXIgYnk0YSBgZGVsZWdhdGVgLkRBcHByb3ZhbENhbmNlbGxlZBABKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAANCBkBQW4gYXBwcm92YWwgZm9yIGEgYGRlbGVnYXRlYCBhY2NvdW50IHRvIHRyYW5zZmVyIHRoZSBgaXRlbWAgb2YgYW4gaXRlbahgY29sbGVjdGlvbmAgd2FzIGNhbmNlbGxlZCBieSBpdHMgYG93bmVyYC5UQWxsQXBwcm92YWxzQ2FuY2VsbGVkDAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAOBJxBbGwgYXBwcm92YWxzIG9mIGFuIGl0ZW0gZ290IGNhbmNlbGxlZC5cQ29sbGVjdGlvbkNvbmZpZ0NoYW5nZWQEAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAA8EAQFBIGBjb2xsZWN0aW9uYCBoYXMgaGFkIGl0cyBjb25maWcgY2hhbmdlZCBieSB0aGUgYEZvcmNlYCBvcmlnaW4uVENvbGxlY3Rpb25NZXRhZGF0YVNldAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBkYXRhRQEBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgAQBLROZXcgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhIGBjb2xsZWN0aW9uYC5kQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZAQBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAEQS0TWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYSBgY29sbGVjdGlvbmAuPEl0ZW1NZXRhZGF0YVNldAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEQZGF0YUUBAXhCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4AEgSYTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gaXRlbS5MSXRlbU1ldGFkYXRhQ2xlYXJlZAgBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkABMEmE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGFuIGl0ZW0uLFJlZGVwb3NpdGVkCAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABQHN1Y2Nlc3NmdWxfaXRlbXMpBAE4VmVjPFQ6Okl0ZW1JZD4AFAQhAVRoZSBkZXBvc2l0IGZvciBhIHNldCBvZiBgaXRlbWBzIHdpdGhpbiBhIGBjb2xsZWN0aW9uYCBoYXMgYmVlbiB1cGRhdGVkLjBBdHRyaWJ1dGVTZXQUAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbeQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEMa2V5fAFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWVFAQF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AASRuYW1lc3BhY2VlBAGAQXR0cmlidXRlTmFtZXNwYWNlPFQ6OkFjY291bnRJZD4AFQQFAU5ldyBhdHRyaWJ1dGUgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhIGBjb2xsZWN0aW9uYCBvciBgaXRlbWAuQEF0dHJpYnV0ZUNsZWFyZWQQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbeQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEMa2V5fAFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEkbmFtZXNwYWNlZQQBgEF0dHJpYnV0ZU5hbWVzcGFjZTxUOjpBY2NvdW50SWQ+ABYEBQFBdHRyaWJ1dGUgbWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYSBgY29sbGVjdGlvbmAgb3IgYGl0ZW1gLmxJdGVtQXR0cmlidXRlc0FwcHJvdmFsQWRkZWQMAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkABcEzEEgbmV3IGFwcHJvdmFsIHRvIG1vZGlmeSBpdGVtIGF0dHJpYnV0ZXMgd2FzIGFkZGVkLnRJdGVtQXR0cmlidXRlc0FwcHJvdmFsUmVtb3ZlZAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAGATUQSBuZXcgYXBwcm92YWwgdG8gbW9kaWZ5IGl0ZW0gYXR0cmlidXRlcyB3YXMgcmVtb3ZlZC5oT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAAUBtYXliZV9jb2xsZWN0aW9u5AFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AGQTAT3duZXJzaGlwIGFjY2VwdGFuY2UgaGFzIGNoYW5nZWQgZm9yIGFuIGFjY291bnQuWENvbGxlY3Rpb25NYXhTdXBwbHlTZXQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEobWF4X3N1cHBseTgBDHUzMgAaBKRNYXggc3VwcGx5IGhhcyBiZWVuIHNldCBmb3IgYSBjb2xsZWN0aW9uLnRDb2xsZWN0aW9uTWludFNldHRpbmdzVXBkYXRlZAQBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAGwSsTWludCBzZXR0aW5ncyBmb3IgYSBjb2xsZWN0aW9uIGhhZCBjaGFuZ2VkLmxOZXh0Q29sbGVjdGlvbklkSW5jcmVtZW50ZWQEARxuZXh0X2lk5AFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AHAQBAUV2ZW50IGdldHMgZW1pdHRlZCB3aGVuIHRoZSBgTmV4dENvbGxlY3Rpb25JZGAgZ2V0cyBpbmNyZW1lbnRlZC4wSXRlbVByaWNlU2V0EAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRwcmljZVkBATxJdGVtUHJpY2U8VCwgST4AAUR3aGl0ZWxpc3RlZF9idXllcpEBAVBPcHRpb248VDo6QWNjb3VudElkPgAdBHxUaGUgcHJpY2Ugd2FzIHNldCBmb3IgdGhlIGl0ZW0uQEl0ZW1QcmljZVJlbW92ZWQIAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAAeBIxUaGUgcHJpY2UgZm9yIHRoZSBpdGVtIHdhcyByZW1vdmVkLihJdGVtQm91Z2h0FAEoY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW04ASRUOjpJdGVtSWQAARRwcmljZVkBATxJdGVtUHJpY2U8VCwgST4AARhzZWxsZXIEATBUOjpBY2NvdW50SWQAARRidXllcgQBMFQ6OkFjY291bnRJZAAfBExBbiBpdGVtIHdhcyBib3VnaHQuHFRpcFNlbnQUAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbTgBJFQ6Okl0ZW1JZAABGHNlbmRlcgQBMFQ6OkFjY291bnRJZAABIHJlY2VpdmVyBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBWERlcG9zaXRCYWxhbmNlT2Y8VCwgST4AIAQ8QSB0aXAgd2FzIHNlbnQuLFN3YXBDcmVhdGVkGAFIb2ZmZXJlZF9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEwb2ZmZXJlZF9pdGVtOAEkVDo6SXRlbUlkAAFIZGVzaXJlZF9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEwZGVzaXJlZF9pdGVt5AFET3B0aW9uPFQ6Okl0ZW1JZD4AARRwcmljZXkEAaxPcHRpb248UHJpY2VXaXRoRGlyZWN0aW9uPEl0ZW1QcmljZTxULCBJPj4+AAEgZGVhZGxpbmU4AVBCbG9ja051bWJlckZvcjxULCBJPgAhBIhBbiBgaXRlbWAgc3dhcCBpbnRlbnQgd2FzIGNyZWF0ZWQuNFN3YXBDYW5jZWxsZWQYAUhvZmZlcmVkX2NvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAATBvZmZlcmVkX2l0ZW04ASRUOjpJdGVtSWQAAUhkZXNpcmVkX2NvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAATBkZXNpcmVkX2l0ZW3kAURPcHRpb248VDo6SXRlbUlkPgABFHByaWNleQQBrE9wdGlvbjxQcmljZVdpdGhEaXJlY3Rpb248SXRlbVByaWNlPFQsIEk+Pj4AASBkZWFkbGluZTgBUEJsb2NrTnVtYmVyRm9yPFQsIEk+ACIEXFRoZSBzd2FwIHdhcyBjYW5jZWxsZWQuLFN3YXBDbGFpbWVkIAE8c2VudF9jb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEkc2VudF9pdGVtOAEkVDo6SXRlbUlkAAE8c2VudF9pdGVtX293bmVyBAEwVDo6QWNjb3VudElkAAFMcmVjZWl2ZWRfY29sbGVjdGlvbjgBPFQ6OkNvbGxlY3Rpb25JZAABNHJlY2VpdmVkX2l0ZW04ASRUOjpJdGVtSWQAAUxyZWNlaXZlZF9pdGVtX293bmVyBAEwVDo6QWNjb3VudElkAAEUcHJpY2V5BAGsT3B0aW9uPFByaWNlV2l0aERpcmVjdGlvbjxJdGVtUHJpY2U8VCwgST4+PgABIGRlYWRsaW5lOAFQQmxvY2tOdW1iZXJGb3I8VCwgST4AIwRoVGhlIHN3YXAgaGFzIGJlZW4gY2xhaW1lZC5YUHJlU2lnbmVkQXR0cmlidXRlc1NldAwBKGNvbGxlY3Rpb244ATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtOAEkVDo6SXRlbUlkAAEkbmFtZXNwYWNlZQQBgEF0dHJpYnV0ZU5hbWVzcGFjZTxUOjpBY2NvdW50SWQ+ACQE/E5ldyBhdHRyaWJ1dGVzIGhhdmUgYmVlbiBzZXQgZm9yIGFuIGBpdGVtYCBvZiB0aGUgYGNvbGxlY3Rpb25gLkhQYWxsZXRBdHRyaWJ1dGVTZXQQAShjb2xsZWN0aW9uOAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbeQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEkYXR0cmlidXRlAQsBhFBhbGxldEF0dHJpYnV0ZXM8VDo6Q29sbGVjdGlvbklkPgABFHZhbHVlRQEBdEJvdW5kZWRWZWM8dTgsIFQ6OlZhbHVlTGltaXQ+ACUITQFBIG5ldyBhdHRyaWJ1dGUgaW4gdGhlIGBQYWxsZXRgIG5hbWVzcGFjZSB3YXMgc2V0IGZvciB0aGUgYGNvbGxlY3Rpb25gIG9yIGFuIGBpdGVtYGR3aXRoaW4gdGhhdCBgY29sbGVjdGlvbmAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQsMLHBhbGxldF9uZnRzFHR5cGVzQFBhbGxldEF0dHJpYnV0ZXMEMENvbGxlY3Rpb25JZAE4AQgsVXNlZFRvQ2xhaW0EADgBMENvbGxlY3Rpb25JZAAAAEBUcmFuc2ZlckRpc2FibGVkAAEAAAULDDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFdmVudAgEVAAESQABcBxDcmVhdGVkDAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABHGNyZWF0b3IEATBUOjpBY2NvdW50SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAABHRTb21lIGFzc2V0IGNsYXNzIHdhcyBjcmVhdGVkLhhJc3N1ZWQMASBhc3NldF9pZAECAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQABBGBTb21lIGFzc2V0cyB3ZXJlIGlzc3VlZC4sVHJhbnNmZXJyZWQQASBhc3NldF9pZAECAShUOjpBc3NldElkAAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAgR0U29tZSBhc3NldHMgd2VyZSB0cmFuc2ZlcnJlZC4YQnVybmVkDAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEcYmFsYW5jZVkBAShUOjpCYWxhbmNlAAMEbFNvbWUgYXNzZXRzIHdlcmUgZGVzdHJveWVkLixUZWFtQ2hhbmdlZBABIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAARhpc3N1ZXIEATBUOjpBY2NvdW50SWQAARRhZG1pbgQBMFQ6OkFjY291bnRJZAABHGZyZWV6ZXIEATBUOjpBY2NvdW50SWQABARwVGhlIG1hbmFnZW1lbnQgdGVhbSBjaGFuZ2VkLjBPd25lckNoYW5nZWQIASBhc3NldF9pZAECAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQABQRIVGhlIG93bmVyIGNoYW5nZWQuGEZyb3plbggBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQABgR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyBmcm96ZW4uGFRoYXdlZAgBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQABwR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyB0aGF3ZWQuLEFzc2V0RnJvemVuBAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAAIBIRTb21lIGFzc2V0IGBhc3NldF9pZGAgd2FzIGZyb3plbi4sQXNzZXRUaGF3ZWQEASBhc3NldF9pZAECAShUOjpBc3NldElkAAkEhFNvbWUgYXNzZXQgYGFzc2V0X2lkYCB3YXMgdGhhd2VkLkRBY2NvdW50c0Rlc3Ryb3llZAwBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAAUhhY2NvdW50c19kZXN0cm95ZWQ4AQx1MzIAAUhhY2NvdW50c19yZW1haW5pbmc4AQx1MzIACgSgQWNjb3VudHMgd2VyZSBkZXN0cm95ZWQgZm9yIGdpdmVuIGFzc2V0LkhBcHByb3ZhbHNEZXN0cm95ZWQMASBhc3NldF9pZAECAShUOjpBc3NldElkAAFMYXBwcm92YWxzX2Rlc3Ryb3llZDgBDHUzMgABTGFwcHJvdmFsc19yZW1haW5pbmc4AQx1MzIACwSkQXBwcm92YWxzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IRGVzdHJ1Y3Rpb25TdGFydGVkBAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAAMBNBBbiBhc3NldCBjbGFzcyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBkZXN0cm95ZWQuJERlc3Ryb3llZAQBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQADQR0QW4gYXNzZXQgY2xhc3Mgd2FzIGRlc3Ryb3llZC4wRm9yY2VDcmVhdGVkCAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAA4EjFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGZvcmNlLWNyZWF0ZWQuLE1ldGFkYXRhU2V0FAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABEG5hbWUYARxWZWM8dTg+AAEYc3ltYm9sGAEcVmVjPHU4PgABIGRlY2ltYWxzDAEIdTgAASRpc19mcm96ZW5dAQEQYm9vbAAPBJxOZXcgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhbiBhc3NldC48TWV0YWRhdGFDbGVhcmVkBAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAAQBJxNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBhc3NldC5AQXBwcm92ZWRUcmFuc2ZlchABIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAARhzb3VyY2UEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABEEMQEoQWRkaXRpb25hbCkgZnVuZHMgaGF2ZSBiZWVuIGFwcHJvdmVkIGZvciB0cmFuc2ZlciB0byBhIGRlc3RpbmF0aW9uIGFjY291bnQuREFwcHJvdmFsQ2FuY2VsbGVkDAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAEgTwQW4gYXBwcm92YWwgZm9yIGFjY291bnQgYGRlbGVnYXRlYCB3YXMgY2FuY2VsbGVkIGJ5IGBvd25lcmAuTFRyYW5zZmVycmVkQXBwcm92ZWQUASBhc3NldF9pZAECAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAEwgxAUFuIGBhbW91bnRgIHdhcyB0cmFuc2ZlcnJlZCBpbiBpdHMgZW50aXJldHkgZnJvbSBgb3duZXJgIHRvIGBkZXN0aW5hdGlvbmAgYnlgdGhlIGFwcHJvdmVkIGBkZWxlZ2F0ZWAuSEFzc2V0U3RhdHVzQ2hhbmdlZAQBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAFAT4QW4gYXNzZXQgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5YQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZAgBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAATxuZXdfbWluX2JhbGFuY2VZAQEoVDo6QmFsYW5jZQAVBAEBVGhlIG1pbl9iYWxhbmNlIG9mIGFuIGFzc2V0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdGhlIGFzc2V0IG93bmVyLhxUb3VjaGVkDAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABJGRlcG9zaXRvcgQBMFQ6OkFjY291bnRJZAAWBPxTb21lIGFjY291bnQgYHdob2Agd2FzIGNyZWF0ZWQgd2l0aCBhIGRlcG9zaXQgZnJvbSBgZGVwb3NpdG9yYC4cQmxvY2tlZAgBIGFzc2V0X2lkAQIBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAFwR8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBibG9ja2VkLiREZXBvc2l0ZWQMASBhc3NldF9pZAECAShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAGATcU29tZSBhc3NldHMgd2VyZSBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiRXaXRoZHJhd24MASBhc3NldF9pZAECAShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAGQQhAVNvbWUgYXNzZXRzIHdlcmUgd2l0aGRyYXduIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLjxSZXNlcnZlc1VwZGF0ZWQIASBhc3NldF9pZAECAShUOjpBc3NldElkAAEgcmVzZXJ2ZXOhBAFMVmVjPFQ6OlJlc2VydmVEYXRhPgAaBNhSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyBzZXQgb3IgdXBkYXRlZCBmb3IgYGFzc2V0X2lkYC48UmVzZXJ2ZXNSZW1vdmVkBAEgYXNzZXRfaWQBAgEoVDo6QXNzZXRJZAAbBLxSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyByZW1vdmVkIGZvciBgYXNzZXRfaWRgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAkLDDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFdmVudAgEVAAESQABcBxDcmVhdGVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEcY3JlYXRvcgQBMFQ6OkFjY291bnRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAAEdFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGNyZWF0ZWQuGElzc3VlZAwBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAQRgU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQuLFRyYW5zZmVycmVkEAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBKFQ6OkJhbGFuY2UAAgR0U29tZSBhc3NldHMgd2VyZSB0cmFuc2ZlcnJlZC4YQnVybmVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAARxiYWxhbmNlWQEBKFQ6OkJhbGFuY2UAAwRsU29tZSBhc3NldHMgd2VyZSBkZXN0cm95ZWQuLFRlYW1DaGFuZ2VkEAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEYaXNzdWVyBAEwVDo6QWNjb3VudElkAAEUYWRtaW4EATBUOjpBY2NvdW50SWQAARxmcmVlemVyBAEwVDo6QWNjb3VudElkAAQEcFRoZSBtYW5hZ2VtZW50IHRlYW0gY2hhbmdlZC4wT3duZXJDaGFuZ2VkCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQABQRIVGhlIG93bmVyIGNoYW5nZWQuGEZyb3plbggBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAGBHhTb21lIGFjY291bnQgYHdob2Agd2FzIGZyb3plbi4YVGhhd2VkCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAcEeFNvbWUgYWNjb3VudCBgd2hvYCB3YXMgdGhhd2VkLixBc3NldEZyb3plbgQBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAAIBIRTb21lIGFzc2V0IGBhc3NldF9pZGAgd2FzIGZyb3plbi4sQXNzZXRUaGF3ZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQACQSEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyB0aGF3ZWQuREFjY291bnRzRGVzdHJveWVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAFIYWNjb3VudHNfZGVzdHJveWVkOAEMdTMyAAFIYWNjb3VudHNfcmVtYWluaW5nOAEMdTMyAAoEoEFjY291bnRzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IQXBwcm92YWxzRGVzdHJveWVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAFMYXBwcm92YWxzX2Rlc3Ryb3llZDgBDHUzMgABTGFwcHJvdmFsc19yZW1haW5pbmc4AQx1MzIACwSkQXBwcm92YWxzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IRGVzdHJ1Y3Rpb25TdGFydGVkBAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAwE0EFuIGFzc2V0IGNsYXNzIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRlc3Ryb3llZC4kRGVzdHJveWVkBAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAA0EdEFuIGFzc2V0IGNsYXNzIHdhcyBkZXN0cm95ZWQuMEZvcmNlQ3JlYXRlZAgBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAA4EjFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGZvcmNlLWNyZWF0ZWQuLE1ldGFkYXRhU2V0FAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbl0BARBib29sAA8EnE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGFuIGFzc2V0LjxNZXRhZGF0YUNsZWFyZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAEAScTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gYXNzZXQuQEFwcHJvdmVkVHJhbnNmZXIQASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAARhzb3VyY2UEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABEEMQEoQWRkaXRpb25hbCkgZnVuZHMgaGF2ZSBiZWVuIGFwcHJvdmVkIGZvciB0cmFuc2ZlciB0byBhIGRlc3RpbmF0aW9uIGFjY291bnQuREFwcHJvdmFsQ2FuY2VsbGVkDAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAASBPBBbiBhcHByb3ZhbCBmb3IgYWNjb3VudCBgZGVsZWdhdGVgIHdhcyBjYW5jZWxsZWQgYnkgYG93bmVyYC5MVHJhbnNmZXJyZWRBcHByb3ZlZBQBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABMIMQFBbiBgYW1vdW50YCB3YXMgdHJhbnNmZXJyZWQgaW4gaXRzIGVudGlyZXR5IGZyb20gYG93bmVyYCB0byBgZGVzdGluYXRpb25gIGJ5YHRoZSBhcHByb3ZlZCBgZGVsZWdhdGVgLkhBc3NldFN0YXR1c0NoYW5nZWQEASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAFAT4QW4gYXNzZXQgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5YQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZAgBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABPG5ld19taW5fYmFsYW5jZVkBAShUOjpCYWxhbmNlABUEAQFUaGUgbWluX2JhbGFuY2Ugb2YgYW4gYXNzZXQgaGFzIGJlZW4gdXBkYXRlZCBieSB0aGUgYXNzZXQgb3duZXIuHFRvdWNoZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAASRkZXBvc2l0b3IEATBUOjpBY2NvdW50SWQAFgT8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBjcmVhdGVkIHdpdGggYSBkZXBvc2l0IGZyb20gYGRlcG9zaXRvcmAuHEJsb2NrZWQIASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAFwR8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBibG9ja2VkLiREZXBvc2l0ZWQMASBhc3NldF9pZDgBKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEoVDo6QmFsYW5jZQAYBNxTb21lIGFzc2V0cyB3ZXJlIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuJFdpdGhkcmF3bgwBIGFzc2V0X2lkOAEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBAShUOjpCYWxhbmNlABkEIQFTb21lIGFzc2V0cyB3ZXJlIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS48UmVzZXJ2ZXNVcGRhdGVkCAEgYXNzZXRfaWQ4AShUOjpBc3NldElkAAEgcmVzZXJ2ZXMZBAFMVmVjPFQ6OlJlc2VydmVEYXRhPgAaBNhSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyBzZXQgb3IgdXBkYXRlZCBmb3IgYGFzc2V0X2lkYC48UmVzZXJ2ZXNSZW1vdmVkBAEgYXNzZXRfaWQ4AShUOjpBc3NldElkABsEvFJlc2VydmUgaW5mb3JtYXRpb24gd2FzIHJlbW92ZWQgZm9yIGBhc3NldF9pZGAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0DQsMXHBhbGxldF9hc3NldF9jb252ZXJzaW9uGHBhbGxldBRFdmVudAQEVAABGCxQb29sQ3JlYXRlZBABHGNyZWF0b3IEATBUOjpBY2NvdW50SWQEiFRoZSBhY2NvdW50IHRoYXQgY3JlYXRlZCB0aGUgcG9vbC4BHHBvb2xfaWQRCwEkVDo6UG9vbElkCEkBVGhlIHBvb2wgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwb29sLiBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBhc3NldHMgbWF5IG5vdCBiZfR0aGUgc2FtZSBhcyB0aGUgb3JkZXIgc3BlY2lmaWVkIGluIHRoZSBjcmVhdGUgcG9vbCBleHRyaW5zaWMuATBwb29sX2FjY291bnQEATBUOjpBY2NvdW50SWQEbFRoZSBhY2NvdW50IElEIG9mIHRoZSBwb29sLgEgbHBfdG9rZW44AThUOjpQb29sQXNzZXRJZAhBAVRoZSBpZCBvZiB0aGUgbGlxdWlkaXR5IHRva2VucyB0aGF0IHdpbGwgYmUgbWludGVkIHdoZW4gYXNzZXRzIGFyZSBhZGRlZCB0byB0aGlzFHBvb2wuAAQdAUEgc3VjY2Vzc2Z1bCBjYWxsIG9mIHRoZSBgQ3JlYXRlUG9vbGAgZXh0cmluc2ljIHdpbGwgY3JlYXRlIHRoaXMgZXZlbnQuOExpcXVpZGl0eUFkZGVkHAEMd2hvBAEwVDo6QWNjb3VudElkBLhUaGUgYWNjb3VudCB0aGF0IHRoZSBsaXF1aWRpdHkgd2FzIHRha2VuIGZyb20uARxtaW50X3RvBAEwVDo6QWNjb3VudElkBNRUaGUgYWNjb3VudCB0aGF0IHRoZSBsaXF1aWRpdHkgdG9rZW5zIHdlcmUgbWludGVkIHRvLgEccG9vbF9pZBELASRUOjpQb29sSWQE4FRoZSBwb29sIGlkIG9mIHRoZSBwb29sIHRoYXQgdGhlIGxpcXVpZGl0eSB3YXMgYWRkZWQgdG8uAUBhbW91bnQxX3Byb3ZpZGVkWQEBKFQ6OkJhbGFuY2UE5FRoZSBhbW91bnQgb2YgdGhlIGZpcnN0IGFzc2V0IHRoYXQgd2FzIGFkZGVkIHRvIHRoZSBwb29sLgFAYW1vdW50Ml9wcm92aWRlZFkBAShUOjpCYWxhbmNlBOhUaGUgYW1vdW50IG9mIHRoZSBzZWNvbmQgYXNzZXQgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIHBvb2wuASBscF90b2tlbjgBOFQ6OlBvb2xBc3NldElkBJxUaGUgaWQgb2YgdGhlIGxwIHRva2VuIHRoYXQgd2FzIG1pbnRlZC4BPGxwX3Rva2VuX21pbnRlZFkBAShUOjpCYWxhbmNlBNBUaGUgYW1vdW50IG9mIGxwIHRva2VucyB0aGF0IHdlcmUgbWludGVkIG9mIHRoYXQgaWQuAQQlAUEgc3VjY2Vzc2Z1bCBjYWxsIG9mIHRoZSBgQWRkTGlxdWlkaXR5YCBleHRyaW5zaWMgd2lsbCBjcmVhdGUgdGhpcyBldmVudC5ATGlxdWlkaXR5UmVtb3ZlZCABDHdobwQBMFQ6OkFjY291bnRJZATcVGhlIGFjY291bnQgdGhhdCB0aGUgbGlxdWlkaXR5IHRva2VucyB3ZXJlIGJ1cm5lZCBmcm9tLgEsd2l0aGRyYXdfdG8EATBUOjpBY2NvdW50SWQEwFRoZSBhY2NvdW50IHRoYXQgdGhlIGFzc2V0cyB3ZXJlIHRyYW5zZmVycmVkIHRvLgEccG9vbF9pZBELASRUOjpQb29sSWQEwFRoZSBwb29sIGlkIHRoYXQgdGhlIGxpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tLgEcYW1vdW50MVkBAShUOjpCYWxhbmNlBPRUaGUgYW1vdW50IG9mIHRoZSBmaXJzdCBhc3NldCB0aGF0IHdhcyByZW1vdmVkIGZyb20gdGhlIHBvb2wuARxhbW91bnQyWQEBKFQ6OkJhbGFuY2UE+FRoZSBhbW91bnQgb2YgdGhlIHNlY29uZCBhc3NldCB0aGF0IHdhcyByZW1vdmVkIGZyb20gdGhlIHBvb2wuASBscF90b2tlbjgBOFQ6OlBvb2xBc3NldElkBJxUaGUgaWQgb2YgdGhlIGxwIHRva2VuIHRoYXQgd2FzIGJ1cm5lZC4BPGxwX3Rva2VuX2J1cm5lZFkBAShUOjpCYWxhbmNlBNBUaGUgYW1vdW50IG9mIGxwIHRva2VucyB0aGF0IHdlcmUgYnVybmVkIG9mIHRoYXQgaWQuATh3aXRoZHJhd2FsX2ZlZRULARxQZXJtaWxsBHRMaXF1aWRpdHkgd2l0aGRyYXdhbCBmZWUgKCUpLgIEMQFBIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgYFJlbW92ZUxpcXVpZGl0eWAgZXh0cmluc2ljIHdpbGwgY3JlYXRlIHRoaXMgZXZlbnQuMFN3YXBFeGVjdXRlZBQBDHdobwQBMFQ6OkFjY291bnRJZAS0V2hpY2ggYWNjb3VudCB3YXMgdGhlIGluc3RpZ2F0b3Igb2YgdGhlIHN3YXAuARxzZW5kX3RvBAEwVDo6QWNjb3VudElkBMBUaGUgYWNjb3VudCB0aGF0IHRoZSBhc3NldHMgd2VyZSB0cmFuc2ZlcnJlZCB0by4BJGFtb3VudF9pblkBAShUOjpCYWxhbmNlBLxUaGUgYW1vdW50IG9mIHRoZSBmaXJzdCBhc3NldCB0aGF0IHdhcyBzd2FwcGVkLgEoYW1vdW50X291dFkBAShUOjpCYWxhbmNlBMRUaGUgYW1vdW50IG9mIHRoZSBzZWNvbmQgYXNzZXQgdGhhdCB3YXMgcmVjZWl2ZWQuARBwYXRoGQsBOEJhbGFuY2VQYXRoPFQ+CPxUaGUgcm91dGUgb2YgYXNzZXQgSURzIHdpdGggYW1vdW50cyB0aGF0IHRoZSBzd2FwIHdlbnQgdGhyb3VnaC7sRS5nLiAoQSwgYW1vdW50X2luKSAtPiAoRG90LCBhbW91bnRfb3V0KSAtPiAoQiwgYW1vdW50X291dCkDCDUBQXNzZXRzIGhhdmUgYmVlbiBjb252ZXJ0ZWQgZnJvbSBvbmUgdG8gYW5vdGhlci4gQm90aCBgU3dhcEV4YWN0VG9rZW5Gb3JUb2tlbmDYYW5kIGBTd2FwVG9rZW5Gb3JFeGFjdFRva2VuYCB3aWxsIGdlbmVyYXRlIHRoaXMgZXZlbnQuSFN3YXBDcmVkaXRFeGVjdXRlZAwBJGFtb3VudF9pblkBAShUOjpCYWxhbmNlBLxUaGUgYW1vdW50IG9mIHRoZSBmaXJzdCBhc3NldCB0aGF0IHdhcyBzd2FwcGVkLgEoYW1vdW50X291dFkBAShUOjpCYWxhbmNlBMRUaGUgYW1vdW50IG9mIHRoZSBzZWNvbmQgYXNzZXQgdGhhdCB3YXMgcmVjZWl2ZWQuARBwYXRoGQsBOEJhbGFuY2VQYXRoPFQ+CPxUaGUgcm91dGUgb2YgYXNzZXQgSURzIHdpdGggYW1vdW50cyB0aGF0IHRoZSBzd2FwIHdlbnQgdGhyb3VnaC7sRS5nLiAoQSwgYW1vdW50X2luKSAtPiAoRG90LCBhbW91bnRfb3V0KSAtPiAoQiwgYW1vdW50X291dCkEBLxBc3NldHMgaGF2ZSBiZWVuIGNvbnZlcnRlZCBmcm9tIG9uZSB0byBhbm90aGVyLhxUb3VjaGVkCAEccG9vbF9pZBELASRUOjpQb29sSWQETFRoZSBJRCBvZiB0aGUgcG9vbC4BDHdobwQBMFQ6OkFjY291bnRJZASEVGhlIGFjY291bnQgaW5pdGlhdGluZyB0aGUgdG91Y2guBQQNAVBvb2wgaGFzIGJlZW4gdG91Y2hlZCBpbiBvcmRlciB0byBmdWxmaWxsIG9wZXJhdGlvbmFsIHJlcXVpcmVtZW50cy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQRCwAABAgBAgECABULDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVybWlsbAAABAA4AQx1MzIAABkLAAACHQsAHQsAAAQIAQJZAQAhCww8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABMCBTcGVuZGluZwQBQGJ1ZGdldF9yZW1haW5pbmdZAQE8QmFsYW5jZU9mPFQsIEk+AAAE5FdlIGhhdmUgZW5kZWQgYSBzcGVuZCBwZXJpb2QgYW5kIHdpbGwgbm93IGFsbG9jYXRlIGZ1bmRzLhxBd2FyZGVkDAE4cHJvcG9zYWxfaW5kZXg4ATRQcm9wb3NhbEluZGV4AAEUYXdhcmRZAQE8QmFsYW5jZU9mPFQsIEk+AAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABBHxTb21lIGZ1bmRzIGhhdmUgYmVlbiBhbGxvY2F0ZWQuFEJ1cm50BAEsYnVybnRfZnVuZHNZAQE8QmFsYW5jZU9mPFQsIEk+AAIEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlWQEBPEJhbGFuY2VPZjxULCBJPgADBC0BU3BlbmRpbmcgaGFzIGZpbmlzaGVkOyB0aGlzIGlzIHRoZSBhbW91bnQgdGhhdCByb2xscyBvdmVyIHVudGlsIG5leHQgc3BlbmQuHERlcG9zaXQEARR2YWx1ZVkBATxCYWxhbmNlT2Y8VCwgST4ABAR8U29tZSBmdW5kcyBoYXZlIGJlZW4gZGVwb3NpdGVkLjRTcGVuZEFwcHJvdmVkDAE4cHJvcG9zYWxfaW5kZXg4ATRQcm9wb3NhbEluZGV4AAEYYW1vdW50WQEBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5BAEwVDo6QWNjb3VudElkAAUEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZFkBATxCYWxhbmNlT2Y8VCwgST4AASxkZWFjdGl2YXRlZFkBATxCYWxhbmNlT2Y8VCwgST4ABgTMVGhlIGluYWN0aXZlIGZ1bmRzIG9mIHRoZSBwYWxsZXQgaGF2ZSBiZWVuIHVwZGF0ZWQuSEFzc2V0U3BlbmRBcHByb3ZlZBgBFGluZGV4OAEoU3BlbmRJbmRleAABKGFzc2V0X2tpbmS1BAEwVDo6QXNzZXRLaW5kAAEYYW1vdW50WQEBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnm5BAE4VDo6QmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tOAFQQmxvY2tOdW1iZXJGb3I8VCwgST4AASRleHBpcmVfYXQ4AVBCbG9ja051bWJlckZvcjxULCBJPgAHBLRBIG5ldyBhc3NldCBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC5AQXNzZXRTcGVuZFZvaWRlZAQBFGluZGV4OAEoU3BlbmRJbmRleAAIBHRBbiBhcHByb3ZlZCBzcGVuZCB3YXMgdm9pZGVkLhBQYWlkCAEUaW5kZXg4AShTcGVuZEluZGV4AAEocGF5bWVudF9pZCgBZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACQRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXg4AShTcGVuZEluZGV4AAEocGF5bWVudF9pZCgBZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACgSQQSBwYXltZW50IGZhaWxlZCBhbmQgY2FuIGJlIHJldHJpZWQuOFNwZW5kUHJvY2Vzc2VkBAEUaW5kZXg4AShTcGVuZEluZGV4AAsITQFBIHNwZW5kIHdhcyBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZS4gSXQgbWlnaHQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseXBwYWlkIG9yIGl0IG1heSBoYXZlIGV4cGlyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0JQsMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXZlbnQIBFQABEkAARQkRGVsZWdhdGVkDAAEATBUOjpBY2NvdW50SWQAAAQBMFQ6OkFjY291bnRJZAAA1QMBNENsYXNzT2Y8VCwgST4AAAQdAUFuIGFjY291bnQgaGFzIGRlbGVnYXRlZCB0aGVpciB2b3RlIHRvIGFub3RoZXIgYWNjb3VudC4gXFt3aG8sIHRhcmdldFxdLFVuZGVsZWdhdGVkCAAEATBUOjpBY2NvdW50SWQAANUDATRDbGFzc09mPFQsIEk+AAEE9EFuIFxbYWNjb3VudFxdIGhhcyBjYW5jZWxsZWQgYSBwcmV2aW91cyBkZWxlZ2F0aW9uIG9wZXJhdGlvbi4UVm90ZWQMAQx3aG8EATBUOjpBY2NvdW50SWQAARB2b3RlwQQBcEFjY291bnRWb3RlPEJhbGFuY2VPZjxULCBJPj4AAShwb2xsX2luZGV4OAFEUG9sbEluZGV4T2Y8VCwgST4AAgRQQW4gYWNjb3VudCBoYXMgdm90ZWQsVm90ZVJlbW92ZWQMAQx3aG8EATBUOjpBY2NvdW50SWQAARB2b3RlwQQBcEFjY291bnRWb3RlPEJhbGFuY2VPZjxULCBJPj4AAShwb2xsX2luZGV4OAFEUG9sbEluZGV4T2Y8VCwgST4AAwRcQSB2b3RlIGhhcyBiZWVuIHJlbW92ZWQwVm90ZVVubG9ja2VkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEUY2xhc3PVAwE0Q2xhc3NPZjxULCBJPgAEBEUBVGhlIGxvY2t1cCBwZXJpb2Qgb2YgYSBjb252aWN0aW9uIHZvdGUgZXhwaXJlZCwgYW5kIHRoZSBmdW5kcyBoYXZlIGJlZW4gdW5sb2NrZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0KQsMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEV2ZW50CARUAARJAAFAJFN1Ym1pdHRlZAwBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNr1QMBPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2Fs1QQBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uAASAQSByZWZlcmVuZHVtIGhhcyBiZWVuIHN1Ym1pdHRlZC5URGVjaXNpb25EZXBvc2l0UGxhY2VkDAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvBAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50WQEBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAQSUVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcGxhY2VkLlxEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwQBMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudFkBATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgIEnFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLjhEZXBvc2l0U2xhc2hlZAgBDHdobwQBMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudFkBATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgMEbEEgZGVwb3NpdCBoYXMgYmVlbiBzbGFzaGVkLjxEZWNpc2lvblN0YXJ0ZWQQARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja9UDATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbNUEAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgEUdGFsbHlBCAEgVDo6VGFsbHkEuFRoZSBjdXJyZW50IHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4EBLxBIHJlZmVyZW5kdW0gaGFzIG1vdmVkIGludG8gdGhlIGRlY2lkaW5nIHBoYXNlLjhDb25maXJtU3RhcnRlZAQBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4FADhDb25maXJtQWJvcnRlZAQBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4GACRDb25maXJtZWQIARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseUEIASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4HBCEBQSByZWZlcmVuZHVtIGhhcyBlbmRlZCBpdHMgY29uZmlybWF0aW9uIHBoYXNlIGFuZCBpcyByZWFkeSBmb3IgYXBwcm92YWwuIEFwcHJvdmVkBAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLggEDQFBIHJlZmVyZW5kdW0gaGFzIGJlZW4gYXBwcm92ZWQgYW5kIGl0cyBwcm9wb3NhbCBoYXMgYmVlbiBzY2hlZHVsZWQuIFJlamVjdGVkCAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHlBCAEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCQSsQSBwcm9wb3NhbCBoYXMgYmVlbiByZWplY3RlZCBieSByZWZlcmVuZHVtLiBUaW1lZE91dAgBFGluZGV4OAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5QQgBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgoE2EEgcmVmZXJlbmR1bSBoYXMgYmVlbiB0aW1lZCBvdXQgd2l0aG91dCBiZWluZyBkZWNpZGVkLiRDYW5jZWxsZWQIARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseUEIASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4LBIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2FuY2VsbGVkLhhLaWxsZWQIARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseUEIASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4MBHRBIHJlZmVyZW5kdW0gaGFzIGJlZW4ga2lsbGVkLmRTdWJtaXNzaW9uRGVwb3NpdFJlZnVuZGVkDAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvBAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50WQEBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuDQSkVGhlIHN1Ym1pc3Npb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC4sTWV0YWRhdGFTZXQIARRpbmRleDgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoQAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBJxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUaW5kZXg4ATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaEABHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwSsTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldC0LDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFdmVudAQEVAABDDxDYWxsV2hpdGVsaXN0ZWQEASRjYWxsX2hhc2hAARxUOjpIYXNoAAAAWFdoaXRlbGlzdGVkQ2FsbFJlbW92ZWQEASRjYWxsX2hhc2hAARxUOjpIYXNoAAEAZFdoaXRlbGlzdGVkQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2hAARxUOjpIYXNoAAEYcmVzdWx0MQsBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0MQsEGFJlc3VsdAgEVAE1CwRFATkLAQgIT2sEADULAAAAAAxFcnIEADkLAAABAAA1Cww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0EQEBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWUlCgEQUGF5cwAAOQsIKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwE1CwAIASRwb3N0X2luZm81CwEQSW5mbwABFGVycm9yKQoBNERpc3BhdGNoRXJyb3IAAD0LDDxwYWxsZXRfYm91bnRpZXMYcGFsbGV0FEV2ZW50CARUAARJAAEwOEJvdW50eVByb3Bvc2VkBAEUaW5kZXg4ASxCb3VudHlJbmRleAAABFBOZXcgYm91bnR5IHByb3Bvc2FsLjhCb3VudHlSZWplY3RlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAARBib25kWQEBPEJhbGFuY2VPZjxULCBJPgABBMxBIGJvdW50eSBwcm9wb3NhbCB3YXMgcmVqZWN0ZWQ7IGZ1bmRzIHdlcmUgc2xhc2hlZC5IQm91bnR5QmVjYW1lQWN0aXZlBAEUaW5kZXg4ASxCb3VudHlJbmRleAACBLhBIGJvdW50eSBwcm9wb3NhbCBpcyBmdW5kZWQgYW5kIGJlY2FtZSBhY3RpdmUuNEJvdW50eUF3YXJkZWQIARRpbmRleDgBLEJvdW50eUluZGV4AAEsYmVuZWZpY2lhcnkEATBUOjpBY2NvdW50SWQAAwSUQSBib3VudHkgaXMgYXdhcmRlZCB0byBhIGJlbmVmaWNpYXJ5LjRCb3VudHlDbGFpbWVkDAEUaW5kZXg4ASxCb3VudHlJbmRleAABGHBheW91dFkBATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAAEBIxBIGJvdW50eSBpcyBjbGFpbWVkIGJ5IGJlbmVmaWNpYXJ5LjhCb3VudHlDYW5jZWxlZAQBFGluZGV4OAEsQm91bnR5SW5kZXgABQRYQSBib3VudHkgaXMgY2FuY2VsbGVkLjhCb3VudHlFeHRlbmRlZAQBFGluZGV4OAEsQm91bnR5SW5kZXgABgRwQSBib3VudHkgZXhwaXJ5IGlzIGV4dGVuZGVkLjhCb3VudHlBcHByb3ZlZAQBFGluZGV4OAEsQm91bnR5SW5kZXgABwRUQSBib3VudHkgaXMgYXBwcm92ZWQuPEN1cmF0b3JQcm9wb3NlZAgBJGJvdW50eV9pZDgBLEJvdW50eUluZGV4AAEcY3VyYXRvcgQBMFQ6OkFjY291bnRJZAAIBHRBIGJvdW50eSBjdXJhdG9yIGlzIHByb3Bvc2VkLkRDdXJhdG9yVW5hc3NpZ25lZAQBJGJvdW50eV9pZDgBLEJvdW50eUluZGV4AAkEfEEgYm91bnR5IGN1cmF0b3IgaXMgdW5hc3NpZ25lZC48Q3VyYXRvckFjY2VwdGVkCAEkYm91bnR5X2lkOAEsQm91bnR5SW5kZXgAARxjdXJhdG9yBAEwVDo6QWNjb3VudElkAAoEdEEgYm91bnR5IGN1cmF0b3IgaXMgYWNjZXB0ZWQuMERlcG9zaXRQb2tlZBABJGJvdW50eV9pZDgBLEJvdW50eUluZGV4AAEgcHJvcG9zZXIEATBUOjpBY2NvdW50SWQAASxvbGRfZGVwb3NpdFkBATxCYWxhbmNlT2Y8VCwgST4AASxuZXdfZGVwb3NpdFkBATxCYWxhbmNlT2Y8VCwgST4ACwSAQSBib3VudHkgZGVwb3NpdCBoYXMgYmVlbiBwb2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRBCwxUcGFsbGV0X2NoaWxkX2JvdW50aWVzGHBhbGxldBRFdmVudAQEVAABEBRBZGRlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleDgBLEJvdW50eUluZGV4AAAEYEEgY2hpbGQtYm91bnR5IGlzIGFkZGVkLhxBd2FyZGVkDAEUaW5kZXg4ASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV4OAEsQm91bnR5SW5kZXgAASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAABBKxBIGNoaWxkLWJvdW50eSBpcyBhd2FyZGVkIHRvIGEgYmVuZWZpY2lhcnkuHENsYWltZWQQARRpbmRleDgBLEJvdW50eUluZGV4AAEsY2hpbGRfaW5kZXg4ASxCb3VudHlJbmRleAABGHBheW91dFkBATBCYWxhbmNlT2Y8VD4AASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAACBKRBIGNoaWxkLWJvdW50eSBpcyBjbGFpbWVkIGJ5IGJlbmVmaWNpYXJ5LiBDYW5jZWxlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleDgBLEJvdW50eUluZGV4AAMEcEEgY2hpbGQtYm91bnR5IGlzIGNhbmNlbGxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRFCwxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0FEV2ZW50BARUAAEMQEFzc2V0UmF0ZUNyZWF0ZWQIAShhc3NldF9raW5ktQQBMFQ6OkFzc2V0S2luZAABEHJhdGX1BAEkRml4ZWRVMTI4AAAAQEFzc2V0UmF0ZVJlbW92ZWQEAShhc3NldF9raW5ktQQBMFQ6OkFzc2V0S2luZAABAEBBc3NldFJhdGVVcGRhdGVkDAEoYXNzZXRfa2luZLUEATBUOjpBc3NldEtpbmQAAQxvbGT1BAEkRml4ZWRVMTI4AAEMbmV39QQBJEZpeGVkVTEyOAACAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEkLDGxwYWxsZXRfbXVsdGlfYXNzZXRfYm91bnRpZXMYcGFsbGV0FEV2ZW50CARUAARJAAEwNEJvdW50eUNyZWF0ZWQEARRpbmRleDgBLEJvdW50eUluZGV4AAAE4EEgbmV3IGJvdW50eSB3YXMgY3JlYXRlZCBhbmQgZnVuZGluZyBoYXMgYmVlbiBpbml0aWF0ZWQuSENoaWxkQm91bnR5Q3JlYXRlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleDgBLEJvdW50eUluZGV4AAEE+EEgbmV3IGNoaWxkLWJvdW50eSB3YXMgY3JlYXRlZCBhbmQgZnVuZGluZyBoYXMgYmVlbiBpbml0aWF0ZWQuSEJvdW50eUJlY2FtZUFjdGl2ZQwBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleOQBTE9wdGlvbjxCb3VudHlJbmRleD4AARxjdXJhdG9yBAEwVDo6QWNjb3VudElkAAIE6FRoZSBjdXJhdG9yIGFjY2VwdGVkIHJvbGUgYW5kIGNoaWxkLS9ib3VudHkgYmVjYW1lIGFjdGl2ZS40Qm91bnR5QXdhcmRlZAwBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleOQBTE9wdGlvbjxCb3VudHlJbmRleD4AASxiZW5lZmljaWFyebkEAThUOjpCZW5lZmljaWFyeQADBLRBIGNoaWxkLS9ib3VudHkgd2FzIGF3YXJkZWQgdG8gYSBiZW5lZmljaWFyeS5UQm91bnR5UGF5b3V0UHJvY2Vzc2VkFAEUaW5kZXg4ASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV45AFMT3B0aW9uPEJvdW50eUluZGV4PgABKGFzc2V0X2tpbmS1BAEwVDo6QXNzZXRLaW5kAAEUdmFsdWVZAQEoVDo6QmFsYW5jZQABLGJlbmVmaWNpYXJ5uQQBOFQ6OkJlbmVmaWNpYXJ5AAQE9FBheW91dCBwYXltZW50IHRvIHRoZSBiZW5lZmljaWFyeSBoYXMgY29uY2x1ZGVkIHN1Y2Nlc3NmdWxseS5YQm91bnR5RnVuZGluZ1Byb2Nlc3NlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleOQBTE9wdGlvbjxCb3VudHlJbmRleD4ABQSsRnVuZGluZyBwYXltZW50IGhhcyBjb25jbHVkZWQgc3VjY2Vzc2Z1bGx5LlRCb3VudHlSZWZ1bmRQcm9jZXNzZWQIARRpbmRleDgBLEJvdW50eUluZGV4AAEsY2hpbGRfaW5kZXjkAUxPcHRpb248Qm91bnR5SW5kZXg+AAYEqFJlZnVuZCBwYXltZW50IGhhcyBjb25jbHVkZWQgc3VjY2Vzc2Z1bGx5LjhCb3VudHlDYW5jZWxlZAgBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleOQBTE9wdGlvbjxCb3VudHlJbmRleD4ABwR4QSBjaGlsZC0vYm91bnR5IHdhcyBjYW5jZWxsZWQuREN1cmF0b3JVbmFzc2lnbmVkCAEUaW5kZXg4ASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV45AFMT3B0aW9uPEJvdW50eUluZGV4PgAIBJxBIGNoaWxkLS9ib3VudHkgY3VyYXRvciB3YXMgdW5hc3NpZ25lZC48Q3VyYXRvclByb3Bvc2VkDAEUaW5kZXg4ASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV45AFMT3B0aW9uPEJvdW50eUluZGV4PgABHGN1cmF0b3IEATBUOjpBY2NvdW50SWQACQSUQSBjaGlsZC0vYm91bnR5IGN1cmF0b3Igd2FzIHByb3Bvc2VkLjRQYXltZW50RmFpbGVkDAEUaW5kZXg4ASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV45AFMT3B0aW9uPEJvdW50eUluZGV4PgABKHBheW1lbnRfaWQoAURQYXltZW50SWRPZjxULCBJPgAKBJBBIHBheW1lbnQgZmFpbGVkIGFuZCBjYW4gYmUgcmV0cmllZC4QUGFpZAwBFGluZGV4OAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleOQBTE9wdGlvbjxCb3VudHlJbmRleD4AAShwYXltZW50X2lkKAFEUGF5bWVudElkT2Y8VCwgST4ACwSYQSBwYXltZW50IGhhcHBlbmVkIGFuZCBjYW4gYmUgY2hlY2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRNCwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFdmVudAQEVAABECBNaWdyYXRlZAwBDHRvcDgBDHUzMgABFGNoaWxkOAEMdTMyAAEcY29tcHV0ZVELAUBNaWdyYXRpb25Db21wdXRlAAAIOQFHaXZlbiBudW1iZXIgb2YgYCh0b3AsIGNoaWxkKWAga2V5cyB3ZXJlIG1pZ3JhdGVkIHJlc3BlY3RpdmVseSwgd2l0aCB0aGUgZ2l2ZW4oYGNvbXB1dGVgLhxTbGFzaGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgABBLRTb21lIGFjY291bnQgZ290IHNsYXNoZWQgYnkgdGhlIGdpdmVuIGFtb3VudC5UQXV0b01pZ3JhdGlvbkZpbmlzaGVkAAIEhFRoZSBhdXRvIG1pZ3JhdGlvbiB0YXNrIGZpbmlzaGVkLhhIYWx0ZWQEARRlcnJvclULASBFcnJvcjxUPgADBOxNaWdyYXRpb24gZ290IGhhbHRlZCBkdWUgdG8gYW4gZXJyb3Igb3IgbWlzcy1jb25maWd1cmF0aW9uLgRwSW5uZXIgZXZlbnRzIG9mIHRoaXMgcGFsbGV0LlELDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0QE1pZ3JhdGlvbkNvbXB1dGUAAQgYU2lnbmVkAAAAEEF1dG8AAQAAVQsMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQURXJyb3IEBFQAARg8TWF4U2lnbmVkTGltaXRzAAAEgE1heCBzaWduZWQgbGltaXRzIG5vdCByZXNwZWN0ZWQuKEtleVRvb0xvbmcAARy0QSBrZXkgd2FzIGxvbmdlciB0aGFuIHRoZSBjb25maWd1cmVkIG1heGltdW0uABEBVGhpcyBtZWFucyB0aGF0IHRoZSBtaWdyYXRpb24gaGFsdGVkIGF0IHRoZSBjdXJyZW50IFtgUHJvZ3Jlc3NgXSBhbmQBAWNhbiBiZSByZXN1bWVkIHdpdGggYSBsYXJnZXIgW2BjcmF0ZTo6Q29uZmlnOjpNYXhLZXlMZW5gXSB2YWx1ZS4hAVJldHJ5aW5nIHdpdGggdGhlIHNhbWUgW2BjcmF0ZTo6Q29uZmlnOjpNYXhLZXlMZW5gXSB2YWx1ZSB3aWxsIG5vdCB3b3JrLkUBVGhlIHZhbHVlIHNob3VsZCBvbmx5IGJlIGluY3JlYXNlZCB0byBhdm9pZCBhIHN0b3JhZ2UgbWlncmF0aW9uIGZvciB0aGUgY3VycmVudGx5kHN0b3JlZCBbYGNyYXRlOjpQcm9ncmVzczo6TGFzdEtleWBdLjhOb3RFbm91Z2hGdW5kcwACBJRzdWJtaXR0ZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZnVuZHMuKEJhZFdpdG5lc3MAAwRoQmFkIHdpdG5lc3MgZGF0YSBwcm92aWRlZC5kU2lnbmVkTWlncmF0aW9uTm90QWxsb3dlZAAEBCUBU2lnbmVkIG1pZ3JhdGlvbiBpcyBub3QgYWxsb3dlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIGxpbWl0IGlzIG5vdCBzZXQgeWV0LjBCYWRDaGlsZFJvb3QABQRgQmFkIGNoaWxkIHJvb3QgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlkLDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQURXZlbnQEBFQAAVwcQ3JlYXRlZAgBJGRlcG9zaXRvcgQBMFQ6OkFjY291bnRJZAABHHBvb2xfaWQ4ARhQb29sSWQAAARgQSBwb29sIGhhcyBiZWVuIGNyZWF0ZWQuGEJvbmRlZBABGG1lbWJlcgQBMFQ6OkFjY291bnRJZAABHHBvb2xfaWQ4ARhQb29sSWQAARhib25kZWRZAQEwQmFsYW5jZU9mPFQ+AAEYam9pbmVkXQEBEGJvb2wAAQSUQSBtZW1iZXIgaGFzIGJlY2FtZSBib25kZWQgaW4gYSBwb29sLhxQYWlkT3V0DAEYbWVtYmVyBAEwVDo6QWNjb3VudElkAAEccG9vbF9pZDgBGFBvb2xJZAABGHBheW91dFkBATBCYWxhbmNlT2Y8VD4AAgSMQSBwYXlvdXQgaGFzIGJlZW4gbWFkZSB0byBhIG1lbWJlci4gVW5ib25kZWQUARhtZW1iZXIEATBUOjpBY2NvdW50SWQAARxwb29sX2lkOAEYUG9vbElkAAEcYmFsYW5jZVkBATBCYWxhbmNlT2Y8VD4AARhwb2ludHNZAQEwQmFsYW5jZU9mPFQ+AAEMZXJhOAEgRXJhSW5kZXgAAyyYQSBtZW1iZXIgaGFzIHVuYm9uZGVkIGZyb20gdGhlaXIgcG9vbC4AOQEtIGBiYWxhbmNlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBiYWxhbmNlIG9mIHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgaGFzIGJlZW5VASAgcmVxdWVzdGVkIHRvIGJlIHVuYm9uZGVkICh0aGUgYXJndW1lbnQgb2YgdGhlIGB1bmJvbmRgIHRyYW5zYWN0aW9uKSBmcm9tIHRoZSBib25kZWQcICBwb29sLkUBLSBgcG9pbnRzYCBpcyB0aGUgbnVtYmVyIG9mIHBvaW50cyB0aGF0IGFyZSBpc3N1ZWQgYXMgYSByZXN1bHQgb2YgYGJhbGFuY2VgIGJlaW5nwGRpc3NvbHZlZCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHVuYm9uZGluZyBwb29sLuQtIGBlcmFgIGlzIHRoZSBlcmEgaW4gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSB1bmJvbmRlZC5VAUluIHRoZSBhYnNlbmNlIG9mIHNsYXNoaW5nLCB0aGVzZSB2YWx1ZXMgd2lsbCBtYXRjaC4gSW4gdGhlIHByZXNlbmNlIG9mIHNsYXNoaW5nLCB0aGVNAW51bWJlciBvZiBwb2ludHMgdGhhdCBhcmUgaXNzdWVkIGluIHRoZSB1bmJvbmRpbmcgcG9vbCB3aWxsIGJlIGxlc3MgdGhhbiB0aGUgYW1vdW50ZHJlcXVlc3RlZCB0byBiZSB1bmJvbmRlZC4kV2l0aGRyYXduEAEYbWVtYmVyBAEwVDo6QWNjb3VudElkAAEccG9vbF9pZDgBGFBvb2xJZAABHGJhbGFuY2VZAQEwQmFsYW5jZU9mPFQ+AAEYcG9pbnRzWQEBMEJhbGFuY2VPZjxUPgAEGJxBIG1lbWJlciBoYXMgd2l0aGRyYXduIGZyb20gdGhlaXIgcG9vbC4AIQFUaGUgZ2l2ZW4gbnVtYmVyIG9mIGBwb2ludHNgIGhhdmUgYmVlbiBkaXNzb2x2ZWQgaW4gcmV0dXJuIG9mIGBiYWxhbmNlYC4AWQFTaW1pbGFyIHRvIGBVbmJvbmRlZGAgZXZlbnQsIGluIHRoZSBhYnNlbmNlIG9mIHNsYXNoaW5nLCB0aGUgcmF0aW8gb2YgcG9pbnQgdG8gYmFsYW5jZSh3aWxsIGJlIDEuJERlc3Ryb3llZAQBHHBvb2xfaWQ4ARhQb29sSWQABQRoQSBwb29sIGhhcyBiZWVuIGRlc3Ryb3llZC4wU3RhdGVDaGFuZ2VkCAEccG9vbF9pZDgBGFBvb2xJZAABJG5ld19zdGF0ZR0FASRQb29sU3RhdGUABgR8VGhlIHN0YXRlIG9mIGEgcG9vbCBoYXMgY2hhbmdlZDRNZW1iZXJSZW1vdmVkDAEccG9vbF9pZDgBGFBvb2xJZAABGG1lbWJlcgQBMFQ6OkFjY291bnRJZAABQHJlbGVhc2VkX2JhbGFuY2VZAQEwQmFsYW5jZU9mPFQ+AAcUmEEgbWVtYmVyIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBhIHBvb2wuAFEBVGhlIHJlbW92YWwgY2FuIGJlIHZvbHVudGFyeSAod2l0aGRyYXduIGFsbCB1bmJvbmRlZCBmdW5kcykgb3IgaW52b2x1bnRhcnkgKGtpY2tlZCkuSQFBbnkgZnVuZHMgdGhhdCBhcmUgc3RpbGwgZGVsZWdhdGVkIChpLmUuIGRhbmdsaW5nIGRlbGVnYXRpb24pIGFyZSByZWxlYXNlZCBhbmQgYXJliHJlcHJlc2VudGVkIGJ5IGByZWxlYXNlZF9iYWxhbmNlYC4wUm9sZXNVcGRhdGVkDAEQcm9vdJEBAVBPcHRpb248VDo6QWNjb3VudElkPgABHGJvdW5jZXKRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRub21pbmF0b3KRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4ACAhVAVRoZSByb2xlcyBvZiBhIHBvb2wgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gdGhlIGdpdmVuIG5ldyByb2xlcy4gTm90ZSB0aGF0IHRoZSBkZXBvc2l0b3JEY2FuIG5ldmVyIGNoYW5nZS4sUG9vbFNsYXNoZWQIARxwb29sX2lkOAEYUG9vbElkAAEcYmFsYW5jZVkBATBCYWxhbmNlT2Y8VD4ACQQNAVRoZSBhY3RpdmUgYmFsYW5jZSBvZiBwb29sIGBwb29sX2lkYCBoYXMgYmVlbiBzbGFzaGVkIHRvIGBiYWxhbmNlYC5QVW5ib25kaW5nUG9vbFNsYXNoZWQMARxwb29sX2lkOAEYUG9vbElkAAEMZXJhOAEgRXJhSW5kZXgAARxiYWxhbmNlWQEBMEJhbGFuY2VPZjxUPgAKBCUBVGhlIHVuYm9uZCBwb29sIGF0IGBlcmFgIG9mIHBvb2wgYHBvb2xfaWRgIGhhcyBiZWVuIHNsYXNoZWQgdG8gYGJhbGFuY2VgLlRQb29sQ29tbWlzc2lvblVwZGF0ZWQIARxwb29sX2lkOAEYUG9vbElkAAEcY3VycmVudDkFAXxPcHRpb248KFBlcmJpbGwsIFQ6OkFjY291bnRJZCk+AAsEtEEgcG9vbCdzIGNvbW1pc3Npb24gc2V0dGluZyBoYXMgYmVlbiBjaGFuZ2VkLmBQb29sTWF4Q29tbWlzc2lvblVwZGF0ZWQIARxwb29sX2lkOAEYUG9vbElkAAE4bWF4X2NvbW1pc3Npb24tBQEcUGVyYmlsbAAMBNRBIHBvb2wncyBtYXhpbXVtIGNvbW1pc3Npb24gc2V0dGluZyBoYXMgYmVlbiBjaGFuZ2VkLnxQb29sQ29tbWlzc2lvbkNoYW5nZVJhdGVVcGRhdGVkCAEccG9vbF9pZDgBGFBvb2xJZAABLGNoYW5nZV9yYXRlQQUBnENvbW1pc3Npb25DaGFuZ2VSYXRlPEJsb2NrTnVtYmVyRm9yPFQ+PgANBMxBIHBvb2wncyBjb21taXNzaW9uIGBjaGFuZ2VfcmF0ZWAgaGFzIGJlZW4gY2hhbmdlZC6QUG9vbENvbW1pc3Npb25DbGFpbVBlcm1pc3Npb25VcGRhdGVkCAEccG9vbF9pZDgBGFBvb2xJZAABKHBlcm1pc3Npb25FBQG8T3B0aW9uPENvbW1pc3Npb25DbGFpbVBlcm1pc3Npb248VDo6QWNjb3VudElkPj4ADgTIUG9vbCBjb21taXNzaW9uIGNsYWltIHBlcm1pc3Npb24gaGFzIGJlZW4gdXBkYXRlZC5UUG9vbENvbW1pc3Npb25DbGFpbWVkCAEccG9vbF9pZDgBGFBvb2xJZAABKGNvbW1pc3Npb25ZAQEwQmFsYW5jZU9mPFQ+AA8EhFBvb2wgY29tbWlzc2lvbiBoYXMgYmVlbiBjbGFpbWVkLmRNaW5CYWxhbmNlRGVmaWNpdEFkanVzdGVkCAEccG9vbF9pZDgBGFBvb2xJZAABGGFtb3VudFkBATBCYWxhbmNlT2Y8VD4AEATIVG9wcGVkIHVwIGRlZmljaXQgaW4gZnJvemVuIEVEIG9mIHRoZSByZXdhcmQgcG9vbC5gTWluQmFsYW5jZUV4Y2Vzc0FkanVzdGVkCAEccG9vbF9pZDgBGFBvb2xJZAABGGFtb3VudFkBATBCYWxhbmNlT2Y8VD4AEQS8Q2xhaW1lZCBleGNlc3MgZnJvemVuIEVEIG9mIGFmIHRoZSByZXdhcmQgcG9vbC5wTWVtYmVyQ2xhaW1QZXJtaXNzaW9uVXBkYXRlZAgBGG1lbWJlcgQBMFQ6OkFjY291bnRJZAABKHBlcm1pc3Npb241BQE8Q2xhaW1QZXJtaXNzaW9uABIEyEEgcG9vbCBtZW1iZXIncyBjbGFpbSBwZXJtaXNzaW9uIGhhcyBiZWVuIHVwZGF0ZWQuPE1ldGFkYXRhVXBkYXRlZAgBHHBvb2xfaWQ4ARhQb29sSWQAARhjYWxsZXIEATBUOjpBY2NvdW50SWQAEwR4QSBwb29sJ3MgbWV0YWRhdGEgd2FzIHVwZGF0ZWQuSFBvb2xOb21pbmF0aW9uTWFkZQgBHHBvb2xfaWQ4ARhQb29sSWQAARhjYWxsZXIEATBUOjpBY2NvdW50SWQAFAhZAUEgcG9vbCdzIG5vbWluYXRpbmcgYWNjb3VudCAob3IgdGhlIHBvb2wncyByb290IGFjY291bnQpIGhhcyBub21pbmF0ZWQgYSB2YWxpZGF0b3Igc2V0WG9uIGJlaGFsZiBvZiB0aGUgcG9vbC5QUG9vbE5vbWluYXRvckNoaWxsZWQIARxwb29sX2lkOAEYUG9vbElkAAEYY2FsbGVyBAEwVDo6QWNjb3VudElkABUEuFRoZSBwb29sIGlzIGNoaWxsZWQgaS5lLiBubyBsb25nZXIgbm9taW5hdGluZy5MR2xvYmFsUGFyYW1zVXBkYXRlZBgBNG1pbl9qb2luX2JvbmRZAQEwQmFsYW5jZU9mPFQ+AAE8bWluX2NyZWF0ZV9ib25kWQEBMEJhbGFuY2VPZjxUPgABJG1heF9wb29sc+QBLE9wdGlvbjx1MzI+AAEsbWF4X21lbWJlcnPkASxPcHRpb248dTMyPgABUG1heF9tZW1iZXJzX3Blcl9wb29s5AEsT3B0aW9uPHUzMj4AAVRnbG9iYWxfbWF4X2NvbW1pc3Npb26tBwE8T3B0aW9uPFBlcmJpbGw+ABYEAQFHbG9iYWwgcGFyYW1ldGVycyByZWd1bGF0aW5nIG5vbWluYXRpb24gcG9vbHMgaGF2ZSBiZWVuIHVwZGF0ZWQuBFhFdmVudHMgb2YgdGhpcyBwYWxsZXQuXQsMQHBhbGxldF9iYWdzX2xpc3QYcGFsbGV0FEV2ZW50CARUAARJAAEIIFJlYmFnZ2VkDAEMd2hvBAEwVDo6QWNjb3VudElkAAEQZnJvbSgBIFQ6OlNjb3JlAAEIdG8oASBUOjpTY29yZQAABKRNb3ZlZCBhbiBhY2NvdW50IGZyb20gb25lIGJhZyB0byBhbm90aGVyLjBTY29yZVVwZGF0ZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAASRuZXdfc2NvcmUoASBUOjpTY29yZQABBNhVcGRhdGVkIHRoZSBzY29yZSBvZiBzb21lIGFjY291bnQgdG8gdGhlIGdpdmVuIGFtb3VudC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRhCwxgcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nGHBhbGxldBRFdmVudAQEVAABECREZWxlZ2F0ZWQMARRhZ2VudAQBMFQ6OkFjY291bnRJZAABJGRlbGVnYXRvcgQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBATBCYWxhbmNlT2Y8VD4AAAR8RnVuZHMgZGVsZWdhdGVkIGJ5IGEgZGVsZWdhdG9yLiBSZWxlYXNlZAwBFGFnZW50BAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdG9yBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgABBHhGdW5kcyByZWxlYXNlZCB0byBhIGRlbGVnYXRvci4cU2xhc2hlZAwBFGFnZW50BAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdG9yBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgACBHxGdW5kcyBzbGFzaGVkIGZyb20gYSBkZWxlZ2F0b3IuSE1pZ3JhdGVkRGVsZWdhdGlvbgwBFGFnZW50BAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdG9yBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgADBMRVbmNsYWltZWQgZGVsZWdhdGlvbiBmdW5kcyBtaWdyYXRlZCB0byBkZWxlZ2F0b3IuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0ZQsMeHBhbGxldF9zdGFraW5nX2FzeW5jX3JjX2NsaWVudBhwYWxsZXQURXZlbnQEBFQAARBUU2Vzc2lvblJlcG9ydFJlY2VpdmVkEAEkZW5kX2luZGV4OAEwU2Vzc2lvbkluZGV4AAFQYWN0aXZhdGlvbl90aW1lc3RhbXBhBQFIT3B0aW9uPCh1NjQsIHUzMik+AAFcdmFsaWRhdG9yX3BvaW50c19jb3VudHM4AQx1MzIAASBsZWZ0b3Zlcl0BARBib29sAAAEjEEgc2FpZCBzZXNzaW9uIHJlcG9ydCB3YXMgcmVjZWl2ZWQuPE9mZmVuY2VSZWNlaXZlZAgBNHNsYXNoX3Nlc3Npb244ATBTZXNzaW9uSW5kZXgAAThvZmZlbmNlc19jb3VudDgBDHUzMgABBGxBIG5ldyBvZmZlbmNlIHdhcyByZXBvcnRlZC4gRmVlc1BhaWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARBmZWVzWQEBMEJhbGFuY2VPZjxUPgACDAEBRmVlcyB3ZXJlIGNoYXJnZWQgZm9yIGEgdXNlciBvcGVyYXRpb24gKHNldF9rZXlzIG9yIHB1cmdlX2tleXMpLgAZAVRoZSBmZWUgaW5jbHVkZXMgYm90aCBYQ00gZGVsaXZlcnkgZmVlIGFuZCByZWxheSBjaGFpbiBleGVjdXRpb24gY29zdC4oVW5leHBlY3RlZAQAaQsBOFVuZXhwZWN0ZWRLaW5kAAMIDQFTb21ldGhpbmcgb2NjdXJyZWQgdGhhdCBzaG91bGQgbmV2ZXIgaGFwcGVuIHVuZGVyIG5vcm1hbCBvcGVyYXRpb24uvExvZ2dlZCBhcyBhbiBldmVudCBmb3IgZmFpbC1zYWZlIG9ic2VydmFiaWxpdHkuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0aQsMeHBhbGxldF9zdGFraW5nX2FzeW5jX3JjX2NsaWVudBhwYWxsZXQ4VW5leHBlY3RlZEtpbmQAARhwU2Vzc2lvblJlcG9ydEludGVncml0eUZhaWxlZAAAAGxWYWxpZGF0b3JTZXRJbnRlZ3JpdHlGYWlsZWQAAQA4U2Vzc2lvblNraXBwZWQAAgBcU2Vzc2lvbkFscmVhZHlQcm9jZXNzZWQAAwBYVmFsaWRhdG9yU2V0U2VuZEZhaWxlZAAEAExWYWxpZGF0b3JTZXREcm9wcGVkAAUAAG0LDJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sYcGFsbGV0FEV2ZW50BARUAAEMRFBoYXNlVHJhbnNpdGlvbmVkCAEQZnJvbX0FASBQaGFzZTxUPgRAdGhlIHNvdXJjZSBwaGFzZQEIdG99BQEgUGhhc2U8VD4EQFRoZSB0YXJnZXQgcGhhc2UACF0BQSBwaGFzZSB0cmFuc2l0aW9uIGhhcHBlbmVkLiBPbmx5IGNoZWNrcyBtYWpvciBjaGFuZ2VzIGluIHRoZSB2YXJpYW50cywgbm90IG1pbm9yIGlubmVyHHZhbHVlcy54VW5leHBlY3RlZFRhcmdldFNuYXBzaG90RmFpbGVkAAEEfFRhcmdldCBzbmFwc2hvdCBjcmVhdGlvbiBmYWlsZWR0VW5leHBlY3RlZFZvdGVyU25hcHNob3RGYWlsZWQAAgR4Vm90ZXIgc25hcHNob3QgY3JlYXRpb24gZmFpbGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0cQsUkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jayB2ZXJpZmllchRpbXBscxhwYWxsZXQURXZlbnQEBFQAAQxIVmVyaWZpY2F0aW9uRmFpbGVkCAA4ASRQYWdlSW5kZXgAAHULAUBGZWFzaWJpbGl0eUVycm9yAAAQoEEgdmVyaWZpY2F0aW9uIGZhaWxlZCBhdCB0aGUgZ2l2ZW4gcGFnZS4AVQFOT1RFOiBpZiB0aGUgaW5kZXggaXMgMCwgdGhlbiB0aGlzIGNvdWxkIG1lYW4gZWl0aGVyIHRoZSBmZWFzaWJpbGl0eSBvZiB0aGUgbGFzdCBwYWdlBQF3YXMgd3JvbmcsIG9yIHRoZSBmaW5hbCBjaGVja3Mgb2YgYGZpbmFsaXplX3ZlcmlmaWNhdGlvbmAgZmFpbGVkLiBWZXJpZmllZAgAOAEkUGFnZUluZGV4AAA4AQx1MzIAAQhZAVRoZSBnaXZlbiBwYWdlIG9mIGEgc29sdXRpb24gaGFzIGJlZW4gdmVyaWZpZWQsIHdpdGggdGhlIGdpdmVuIG51bWJlciBvZiB3aW5uZXJzIGJlaW5nMGZvdW5kIGluIGl0LhhRdWV1ZWQIAKUFATRFbGVjdGlvblNjb3JlAAB9CwFUT3B0aW9uPEVsZWN0aW9uU2NvcmU+AAIEHQFBIHNvbHV0aW9uIHdpdGggdGhlIGdpdmVuIHNjb3JlIGhhcyByZXBsYWNlZCBvdXIgY3VycmVudCBiZXN0IHNvbHV0aW9uLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHULDJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sgdmVyaWZpZXJARmVhc2liaWxpdHlFcnJvcgABLEBXcm9uZ1dpbm5lckNvdW50AAAATFNuYXBzaG90VW5hdmFpbGFibGUAAQAsSW52YWxpZFZvdGUAAgAwSW52YWxpZFZvdGVyAAMANEludmFsaWRXaW5uZXIABAAwSW52YWxpZFNjb3JlAAUAMEludmFsaWRSb3VuZAAGACxTY29yZVRvb0xvdwAHAFBGYWlsZWRUb0JvdW5kU3VwcG9ydAAIADBOcG9zRWxlY3Rpb24EAHkLAWBzcF9ucG9zX2VsZWN0aW9uczo6RXJyb3IACQAoSW5jb21wbGV0ZQAKAAB5CwhEc3BfbnBvc19lbGVjdGlvbnMURXJyb3IAAShYU29sdXRpb25XZWlnaHRPdmVyZmxvdwAAAFhTb2x1dGlvblRhcmdldE92ZXJmbG93AAEAUFNvbHV0aW9uSW52YWxpZEluZGV4AAIAYFNvbHV0aW9uSW52YWxpZFBhZ2VJbmRleAADADxBcml0aG1ldGljRXJyb3IABABISW52YWxpZFN1cHBvcnRFZGdlAAUANFRvb01hbnlWb3RlcnMABgA4Qm91bmRzRXhjZWVkZWQABwA4RHVwbGljYXRlVm90ZXIACAA8RHVwbGljYXRlVGFyZ2V0AAkAAH0LBBhPcHRpb24EBFQBpQUBCBBOb25lAAAAEFNvbWUEAKUFAAABAACBCxCQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrGHNpZ25lZBhwYWxsZXQURXZlbnQEBFQAARwoUmVnaXN0ZXJlZAwAOAEMdTMyAAAEATBUOjpBY2NvdW50SWQAAKUFATRFbGVjdGlvblNjb3JlAAAEUQFVcGNvbWluZyBzdWJtaXNzaW9uIGhhcyBiZWVuIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBhY2NvdW50LCB3aXRoIHRoZSBnaXZlbiBzY29yZS4YU3RvcmVkDAA4AQx1MzIAAAQBMFQ6OkFjY291bnRJZAAAOAEkUGFnZUluZGV4AAEEXQFBIHBhZ2Ugb2Ygc29sdXRpb24gc29sdXRpb24gd2l0aCB0aGUgZ2l2ZW4gaW5kZXggaGFzIGJlZW4gc3RvcmVkIGZvciB0aGUgZ2l2ZW4gYWNjb3VudC4gUmV3YXJkZWQMADgBDHUzMgAABAEwVDo6QWNjb3VudElkAABZAQEwQmFsYW5jZU9mPFQ+AAIE6FRoZSBnaXZlbiBhY2NvdW50IGhhcyBiZWVuIHJld2FyZGVkIHdpdGggdGhlIGdpdmVuIGFtb3VudC4cU2xhc2hlZAwAOAEMdTMyAAAEATBUOjpBY2NvdW50SWQAAFkBATBCYWxhbmNlT2Y8VD4AAwTkVGhlIGdpdmVuIGFjY291bnQgaGFzIGJlZW4gc2xhc2hlZCB3aXRoIHRoZSBnaXZlbiBhbW91bnQuHEVqZWN0ZWQIADgBDHUzMgAABAEwVDo6QWNjb3VudElkAAQE1FRoZSBnaXZlbiBzb2x1dGlvbiwgZm9yIHRoZSBnaXZlbiByb3VuZCwgd2FzIGVqZWN0ZWQuJERpc2NhcmRlZAgAOAEMdTMyAAAEATBUOjpBY2NvdW50SWQABQSUVGhlIGdpdmVuIGFjY291bnQgaGFzIGJlZW4gZGlzY2FyZGVkLhhCYWlsZWQIADgBDHUzMgAABAEwVDo6QWNjb3VudElkAAYEdFRoZSBnaXZlbiBhY2NvdW50IGhhcyBiYWlsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0hQsQUHBhbGxldF9zdGFraW5nX2FzeW5jGHBhbGxldBhwYWxsZXQURXZlbnQEBFQAAWQcRXJhUGFpZAwBJGVyYV9pbmRleDgBIEVyYUluZGV4AAFAdmFsaWRhdG9yX3BheW91dFkBATBCYWxhbmNlT2Y8VD4AASRyZW1haW5kZXJZAQEwQmFsYW5jZU9mPFQ+AAAIVQFUaGUgZXJhIHBheW91dCBoYXMgYmVlbiBzZXQ7IHRoZSBmaXJzdCBiYWxhbmNlIGlzIHRoZSB2YWxpZGF0b3ItcGF5b3V0OyB0aGUgc2Vjb25kIGlzwHRoZSByZW1haW5kZXIgZnJvbSB0aGUgbWF4aW11bSBhbW91bnQgb2YgcmV3YXJkLiBSZXdhcmRlZAwBFHN0YXNoBAEwVDo6QWNjb3VudElkAAEQZGVzdJEGAXxSZXdhcmREZXN0aW5hdGlvbjxUOjpBY2NvdW50SWQ+AAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgABBA0BVGhlIG5vbWluYXRvciBoYXMgYmVlbiByZXdhcmRlZCBieSB0aGlzIGFtb3VudCB0byB0aGlzIGRlc3RpbmF0aW9uLhxTbGFzaGVkCAEYc3Rha2VyBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgACBB0BQSBzdGFrZXIgKHZhbGlkYXRvciBvciBub21pbmF0b3IpIGhhcyBiZWVuIHNsYXNoZWQgYnkgdGhlIGdpdmVuIGFtb3VudC5oT2xkU2xhc2hpbmdSZXBvcnREaXNjYXJkZWQEATRzZXNzaW9uX2luZGV4OAEwU2Vzc2lvbkluZGV4AAMIGQFBbiBvbGQgc2xhc2hpbmcgcmVwb3J0IGZyb20gYSBwcmlvciBlcmEgd2FzIGRpc2NhcmRlZCBiZWNhdXNlIGl0IGNvdWxkRG5vdCBiZSBwcm9jZXNzZWQuGEJvbmRlZAgBFHN0YXNoBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgAEENBBbiBhY2NvdW50IGhhcyBib25kZWQgdGhpcyBhbW91bnQuIFxbc3Rhc2gsIGFtb3VudFxdAE0BTk9URTogVGhpcyBldmVudCBpcyBvbmx5IGVtaXR0ZWQgd2hlbiBmdW5kcyBhcmUgYm9uZGVkIHZpYSBhIGRpc3BhdGNoYWJsZS4gTm90YWJseSwhAWl0IHdpbGwgbm90IGJlIGVtaXR0ZWQgZm9yIHN0YWtpbmcgcmV3YXJkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIHN0YWtlLiBVbmJvbmRlZAgBFHN0YXNoBAEwVDo6QWNjb3VudElkAAEYYW1vdW50WQEBMEJhbGFuY2VPZjxUPgAFBJBBbiBhY2NvdW50IGhhcyB1bmJvbmRlZCB0aGlzIGFtb3VudC4kV2l0aGRyYXduCAEUc3Rhc2gEATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEwQmFsYW5jZU9mPFQ+AAYIWQFBbiBhY2NvdW50IGhhcyBjYWxsZWQgYHdpdGhkcmF3X3VuYm9uZGVkYCBhbmQgcmVtb3ZlZCB1bmJvbmRpbmcgY2h1bmtzIHdvcnRoIGBCYWxhbmNlYGRmcm9tIHRoZSB1bmxvY2tpbmcgcXVldWUuNFN0YWtlclJlbW92ZWQEARRzdGFzaAQBMFQ6OkFjY291bnRJZAAHCFUBQSBzdWJzZXF1ZW50IGV2ZW50IG9mIGBXaXRoZHJhd25gLCBpbmRpY2F0aW5nIHRoYXQgYHN0YXNoYCB3YXMgZnVsbHkgcmVtb3ZlZCBmcm9tIHRoZRxzeXN0ZW0uGEtpY2tlZAgBJG5vbWluYXRvcgQBMFQ6OkFjY291bnRJZAABFHN0YXNoBAEwVDo6QWNjb3VudElkAAgEtEEgbm9taW5hdG9yIGhhcyBiZWVuIGtpY2tlZCBmcm9tIGEgdmFsaWRhdG9yLhxDaGlsbGVkBAEUc3Rhc2gEATBUOjpBY2NvdW50SWQACQQhAUFuIGFjY291bnQgaGFzIHN0b3BwZWQgcGFydGljaXBhdGluZyBhcyBlaXRoZXIgYSB2YWxpZGF0b3Igb3Igbm9taW5hdG9yLjRQYXlvdXRTdGFydGVkEAEkZXJhX2luZGV4OAEgRXJhSW5kZXgAATx2YWxpZGF0b3Jfc3Rhc2gEATBUOjpBY2NvdW50SWQAARBwYWdlOAEQUGFnZQABEG5leHTkATBPcHRpb248UGFnZT4ACgRZAUEgUGFnZSBvZiBzdGFrZXJzIHJld2FyZHMgYXJlIGdldHRpbmcgcGFpZC4gYG5leHRgIGlzIGBOb25lYCBpZiBhbGwgcGFnZXMgYXJlIGNsYWltZWQuRFZhbGlkYXRvclByZWZzU2V0CAEUc3Rhc2gEATBUOjpBY2NvdW50SWQAARRwcmVmc5UGAThWYWxpZGF0b3JQcmVmcwALBJhBIHZhbGlkYXRvciBoYXMgc2V0IHRoZWlyIHByZWZlcmVuY2VzLmhTbmFwc2hvdFZvdGVyc1NpemVFeGNlZWRlZAQBEHNpemU4AQx1MzIADARoVm90ZXJzIHNpemUgbGltaXQgcmVhY2hlZC5sU25hcHNob3RUYXJnZXRzU2l6ZUV4Y2VlZGVkBAEQc2l6ZTgBDHUzMgANBGxUYXJnZXRzIHNpemUgbGltaXQgcmVhY2hlZC4gRm9yY2VFcmEEARBtb2RliQsBHEZvcmNpbmcADgBkQ29udHJvbGxlckJhdGNoRGVwcmVjYXRlZAQBIGZhaWx1cmVzOAEMdTMyAA8EpFJlcG9ydCBvZiBhIGNvbnRyb2xsZXIgYmF0Y2ggZGVwcmVjYXRpb24uQEN1cnJlbmN5TWlncmF0ZWQIARRzdGFzaAQBMFQ6OkFjY291bnRJZAABOGZvcmNlX3dpdGhkcmF3WQEBMEJhbGFuY2VPZjxUPgAQCFUBU3Rha2luZyBiYWxhbmNlIG1pZ3JhdGVkIGZyb20gbG9ja3MgdG8gaG9sZHMsIHdpdGggYW55IGJhbGFuY2UgdGhhdCBjb3VsZCBub3QgYmUgaGVsZExpcyBmb3JjZSB3aXRoZHJhd24uWFBhZ2VkRWxlY3Rpb25Qcm9jZWVkZWQIARBwYWdlOAEkUGFnZUluZGV4AAEYcmVzdWx0jQsBQFJlc3VsdDx1MzIsIHUzMj4AESRBAUEgcGFnZSBmcm9tIGEgbXVsdGktcGFnZSBlbGVjdGlvbiB3YXMgZmV0Y2hlZC4gQSBudW1iZXIgb2YgdGhlc2UgYXJlIGZvbGxvd2VkIGJ5RGBTdGFrZXJzRWxlY3RlZGAuAPBgT2soY291bnQpYCBpbmRpY2F0ZXMgdGhlIGdpdmUgbnVtYmVyIG9mIHN0YXNoZXMgd2VyZSBhZGRlZC4FAWBFcnIoaW5kZXgpYCBpbmRpY2F0ZXMgdGhhdCB0aGUgc3Rhc2hlcyBhZnRlciBpbmRleCB3ZXJlIGRyb3BwZWQuQQFgRXJyKDApYCBpbmRpY2F0ZXMgdGhhdCBhbiBlcnJvciBoYXBwZW5lZCBidXQgbm8gc3Rhc2hlcyB3ZXJlIGRyb3BwZWQgbm9yIGFkZGVkLgBRAVRoZSBlcnJvciBpbmRpY2F0ZXMgdGhhdCBhIG51bWJlciBvZiB2YWxpZGF0b3JzIHdlcmUgZHJvcHBlZCBkdWUgdG8gZXhjZXNzIHNpemUsIGJ1dIx0aGUgb3ZlcmFsbCBlbGVjdGlvbiB3aWxsIGNvbnRpbnVlLjxPZmZlbmNlUmVwb3J0ZWQMASxvZmZlbmNlX2VyYTgBIEVyYUluZGV4AAEkdmFsaWRhdG9yBAEwVDo6QWNjb3VudElkAAEgZnJhY3Rpb24tBQEcUGVyYmlsbAASCE0BQW4gb2ZmZW5jZSBmb3IgdGhlIGdpdmVuIHZhbGlkYXRvciwgZm9yIHRoZSBnaXZlbiBwZXJjZW50YWdlIG9mIHRoZWlyIHN0YWtlLCBhdCB0aGVsZ2l2ZW4gZXJhIGFzIGJlZW4gcmVwb3J0ZWQuNFNsYXNoQ29tcHV0ZWQQASxvZmZlbmNlX2VyYTgBIEVyYUluZGV4AAEkc2xhc2hfZXJhOAEgRXJhSW5kZXgAASBvZmZlbmRlcgQBMFQ6OkFjY291bnRJZAABEHBhZ2U4AQx1MzIAEwQxAUFuIG9mZmVuY2UgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBzbGFzaCBoYXMgYmVlbiBjb21wdXRlZC44U2xhc2hDYW5jZWxsZWQIASRzbGFzaF9lcmE4ASBFcmFJbmRleAABJHZhbGlkYXRvcgQBMFQ6OkFjY291bnRJZAAUBJhBbiB1bmFwcGxpZWQgc2xhc2ggaGFzIGJlZW4gY2FuY2VsbGVkLjhTZXNzaW9uUm90YXRlZAwBQHN0YXJ0aW5nX3Nlc3Npb244ATBTZXNzaW9uSW5kZXgAAShhY3RpdmVfZXJhOAEgRXJhSW5kZXgAASxwbGFubmVkX2VyYTgBIEVyYUluZGV4ABUQiFNlc3Npb24gY2hhbmdlIGhhcyBiZWVuIHRyaWdnZXJlZC4AWQFJZiBwbGFubmVkX2VyYSBpcyBvbmUgZXJhIGFoZWFkIG9mIGFjdGl2ZV9lcmEsIGl0IGltcGxpZXMgbmV3IGVyYSBpcyBiZWluZyBwbGFubmVkIGFuZFBlbGVjdGlvbiBpcyBvbmdvaW5nLihVbmV4cGVjdGVkBACRCwE4VW5leHBlY3RlZEtpbmQAFggNAVNvbWV0aGluZyBvY2N1cnJlZCB0aGF0IHNob3VsZCBuZXZlciBoYXBwZW4gdW5kZXIgbm9ybWFsIG9wZXJhdGlvbi68TG9nZ2VkIGFzIGFuIGV2ZW50IGZvciBmYWlsLXNhZmUgb2JzZXJ2YWJpbGl0eS40T2ZmZW5jZVRvb09sZAwBLG9mZmVuY2VfZXJhOAEgRXJhSW5kZXgAASR2YWxpZGF0b3IEATBUOjpBY2NvdW50SWQAASBmcmFjdGlvbi0FARxQZXJiaWxsABcEPQFBbiBvZmZlbmNlIHdhcyByZXBvcnRlZCB0aGF0IHdhcyB0b28gb2xkIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHRodXMgd2FzIGRyb3BwZWQuJEVyYVBydW5lZAQBFGluZGV4OAEgRXJhSW5kZXgAGASsQW4gb2xkIGVyYSB3aXRoIHRoZSBnaXZlbiBpbmRleCB3YXMgcHJ1bmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIkLCFBwYWxsZXRfc3Rha2luZ19hc3luYxxGb3JjaW5nAAEQKE5vdEZvcmNpbmcAAAAgRm9yY2VOZXcAAQAkRm9yY2VOb25lAAIALEZvcmNlQWx3YXlzAAMAAI0LBBhSZXN1bHQIBFQBOARFATgBCAhPawQAOAAAAAAMRXJyBAA4AAABAACRCxBQcGFsbGV0X3N0YWtpbmdfYXN5bmMYcGFsbGV0GHBhbGxldDhVbmV4cGVjdGVkS2luZAABCGBFcmFEdXJhdGlvbkJvdW5kRXhjZWVkZWQAAABoVW5rbm93blZhbGlkYXRvckFjdGl2YXRpb24AAQAAlQsMNHBhbGxldF9yZXZpdmUYcGFsbGV0FEV2ZW50BARUAAEMPENvbnRyYWN0RW1pdHRlZAwBIGNvbnRyYWN03QYBEEgxNjAEkFRoZSBjb250cmFjdCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LgEQZGF0YRgBHFZlYzx1OD4INQFEYXRhIHN1cHBsaWVkIGJ5IHRoZSBjb250cmFjdC4gTWV0YWRhdGEgZ2VuZXJhdGVkIGR1cmluZyBjb250cmFjdCBjb21waWxhdGlvblxpcyBuZWVkZWQgdG8gZGVjb2RlIGl0LgEYdG9waWNzxAEkVmVjPEgyNTY+CKRBIGxpc3Qgb2YgdG9waWNzIHVzZWQgdG8gaW5kZXggdGhlIGV2ZW50LuxOdW1iZXIgb2YgdG9waWNzIGlzIGNhcHBlZCBieSBbYGxpbWl0czo6TlVNX0VWRU5UX1RPUElDU2BdLgAEnEEgY3VzdG9tIGV2ZW50IGVtaXR0ZWQgYnkgdGhlIGNvbnRyYWN0LjBJbnN0YW50aWF0ZWQIASBkZXBsb3llct0GARBIMTYwAAEgY29udHJhY3TdBgEQSDE2MAABBNxDb250cmFjdCBkZXBsb3llZCBieSBkZXBsb3llciBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3MuSEV0aEV4dHJpbnNpY1JldmVydAQBOGRpc3BhdGNoX2Vycm9yKQoBNERpc3BhdGNoRXJyb3IAAhi0RW1pdHRlZCB3aGVuIGFuIEV0aGVyZXVtIHRyYW5zYWN0aW9uIHJldmVydHMuACkBRXRoZXJldW0gdHJhbnNhY3Rpb25zIGFsd2F5cyBjb21wbGV0ZSBzdWNjZXNzZnVsbHkgYXQgdGhlIGV4dHJpbnNpYyBsZXZlbCzYYXMgZXZlbiByZXZlcnRlZCBjYWxscyBtdXN0IHN0b3JlIHRoZWlyIGBSZWNlaXB0SW5mb2AuJQFUbyBkaXN0aW5ndWlzaCByZXZlcnRlZCBjYWxscyBmcm9tIHN1Y2Nlc3NmdWwgb25lcywgdGhpcyBldmVudCBpcyBlbWl0dGVkhGZvciBmYWlsZWQgRXRoZXJldW0gdHJhbnNhY3Rpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJkLDCxwYWxsZXRfc3VkbxhwYWxsZXQURXZlbnQEBFQAARAUU3VkaWQEASxzdWRvX3Jlc3VsdE0KAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAARwQSBzdWRvIGNhbGwganVzdCB0b29rIHBsYWNlLihLZXlDaGFuZ2VkCAEMb2xkkQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+BLRUaGUgb2xkIHN1ZG8ga2V5IChpZiBvbmUgd2FzIHByZXZpb3VzbHkgc2V0KS4BDG5ldwQBMFQ6OkFjY291bnRJZASIVGhlIG5ldyBzdWRvIGtleSAoaWYgb25lIHdhcyBzZXQpLgEEeFRoZSBzdWRvIGtleSBoYXMgYmVlbiB1cGRhdGVkLihLZXlSZW1vdmVkAAIEgFRoZSBrZXkgd2FzIHBlcm1hbmVudGx5IHJlbW92ZWQuKFN1ZG9Bc0RvbmUEASxzdWRvX3Jlc3VsdE0KAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAwTIQSBbc3Vkb19hc10oUGFsbGV0OjpzdWRvX2FzKSBjYWxsIGp1c3QgdG9vayBwbGFjZS4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSdCww0cGFsbGV0X2FoX29wcxhwYWxsZXQURXZlbnQEBFQAARBcTGVhc2VVbnJlc2VydmVSZW1haW5pbmcMASRkZXBvc2l0b3IEATBUOjpBY2NvdW50SWQAARxwYXJhX2lkoAEYUGFyYUlkAAEkcmVtYWluaW5nWQEBMEJhbGFuY2VPZjxUPgAABBEBU29tZSBsZWFzZSByZXNlcnZlIGNvdWxkIG5vdCBiZSB1bnJlc2VydmVkIGFuZCBuZWVkcyBtYW51YWwgY2xlYW51cC5sQ3Jvd2Rsb2FuVW5yZXNlcnZlUmVtYWluaW5nDAEkZGVwb3NpdG9yBAEwVDo6QWNjb3VudElkAAEccGFyYV9pZKABGFBhcmFJZAABJHJlbWFpbmluZ1kBATBCYWxhbmNlT2Y8VD4AAQRVAVNvbWUgYW1vdW50IGZvciBhIGNyb3dkbG9hbiByZXNlcnZlIGNvdWxkIG5vdCBiZSB1bnJlc2VydmVkIGFuZCBuZWVkcyBtYW51YWwgY2xlYW51cC5EU292ZXJlaWduTWlncmF0ZWQQARxwYXJhX2lk1QMBDHUxNgS8VGhlIHBhcmFjaGFpbiBJRCB0aGF0IGhhZCBpdHMgYWNjb3VudCBtaWdyYXRlZC4BEGZyb20EATBUOjpBY2NvdW50SWQEpFRoZSBvbGQgYWNjb3VudCB0aGF0IHdhcyBtaWdyYXRlZCBvdXQgb2YuAQh0bwQBMFQ6OkFjY291bnRJZAScVGhlIG5ldyBhY2NvdW50IHRoYXQgd2FzIG1pZ3JhdGVkIGludG8uATxkZXJpdmF0aW9uX3BhdGj1BgEgVmVjPHUxNj4E7FRoZSBkZXJpdmF0aW9uIHBhdGggdGhhdCB3YXMgdXNlZCB0byB0cmFuc2xhdGUgdGhlIGFjY291bnQuAgglAUEgc292ZXJlaWduIHBhcmFjaGFpbiBhY2NvdW50IGhhcyBiZWVuIG1pZ3JhdGVkIGZyb20gaXRzIGNoaWxkIHRvIHNpYmxpbmc8cmVwcmVzZW50YXRpb24uMEZhaWxlZFRvQm9uZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARhhbW91bnRZAQEwQmFsYW5jZU9mPFQ+AAMEmEZhaWxlZCB0byByZS1ib25kIHNvbWUgbWlncmF0ZWQgZnVuZHMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0oQsMSHBhbGxldF9haF9taWdyYXRvchhwYWxsZXQURXZlbnQEBFQAAUA8U3RhZ2VUcmFuc2l0aW9uCAEMb2xkuQkBOE1pZ3JhdGlvblN0YWdlBJBUaGUgb2xkIHN0YWdlIGJlZm9yZSB0aGUgdHJhbnNpdGlvbi4BDG5ld7kJAThNaWdyYXRpb25TdGFnZQSMVGhlIG5ldyBzdGFnZSBhZnRlciB0aGUgdHJhbnNpdGlvbi4ABIBBIHN0YWdlIHRyYW5zaXRpb24gaGFzIG9jY3VycmVkLjRCYXRjaFJlY2VpdmVkCAEYcGFsbGV0pQsBPFBhbGxldEV2ZW50TmFtZQABFGNvdW50OAEMdTMyAAEEGQFXZSByZWNlaXZlZCBhIGJhdGNoIG9mIG1lc3NhZ2VzIHRoYXQgd2lsbCBiZSBpbnRlZ3JhdGVkIGludG8gYSBwYWxsZXQuOEJhdGNoUHJvY2Vzc2VkDAEYcGFsbGV0pQsBPFBhbGxldEV2ZW50TmFtZQABKGNvdW50X2dvb2Q4AQx1MzIAASRjb3VudF9iYWQ4AQx1MzIAAgTEV2UgcHJvY2Vzc2VkIGEgYmF0Y2ggb2YgbWVzc2FnZXMgZm9yIHRoaXMgcGFsbGV0LmBBc3NldEh1Yk1pZ3JhdGlvblN0YXJ0ZWQAAxhJAVRoZSBBc3NldCBIdWIgTWlncmF0aW9uIHN0YXJ0ZWQgYW5kIGlzIGFjdGl2ZSB1bnRpbCBgQXNzZXRIdWJNaWdyYXRpb25GaW5pc2hlZGAgaXMgZW1pdHRlZC4AWQFUaGlzIGV2ZW50IGlzIGVxdWl2YWxlbnQgdG8gYFN0YWdlVHJhbnNpdGlvbiB7IG5ldzogRGF0YU1pZ3JhdGlvbk9uZ29pbmcsIC4uIH1gIGJ1dCBpc0kBZWFzaWVyIHRvIHVuZGVyc3RhbmQuIFRoZSBhY3RpdmF0aW9uIGlzIGltbWVkaWF0ZSBhbmQgYWZmZWN0cyBhbGwgZXZlbnRzIGhhcHBlbmluZyxhZnRlcndhcmRzLmRBc3NldEh1Yk1pZ3JhdGlvbkZpbmlzaGVkAAQUhFRoZSBBc3NldCBIdWIgTWlncmF0aW9uIGZpbmlzaGVkLgBZAVRoaXMgZXZlbnQgaXMgZXF1aXZhbGVudCB0byBgU3RhZ2VUcmFuc2l0aW9uIHsgbmV3OiBNaWdyYXRpb25Eb25lLCAuLiB9YCBidXQgaXMgZWFzaWVyKQF0byB1bmRlcnN0YW5kLiBUaGUgZmluaXNoaW5nIGlzIGltbWVkaWF0ZSBhbmQgYWZmZWN0cyBhbGwgZXZlbnRzIGhhcHBlbmluZyxhZnRlcndhcmRzLkxEbXBRdWV1ZVByaW9yaXR5U2V0DAEscHJpb3JpdGl6ZWRdAQEQYm9vbAzgSW5kaWNhdGVzIGlmIERNUCBxdWV1ZSB3YXMgc3VjY2Vzc2Z1bGx5IHNldCBhcyBwcmlvcml0eS4tAUlmIGBmYWxzZWAsIGl0IG1lYW5zIHdlJ3JlIGluIHRoZSByb3VuZC1yb2JpbiBwaGFzZSBvZiBvdXIgcHJpb3JpdHkgcGF0dGVybiEBKHNlZSBbYENvbmZpZzo6RG1wUXVldWVQcmlvcml0eVBhdHRlcm5gXSksIHdoZXJlIG5vIHF1ZXVlIGdldHMgcHJpb3JpdHkuASxjeWNsZV9ibG9jazgBREJsb2NrTnVtYmVyRm9yPFQ+BPBDdXJyZW50IGJsb2NrIG51bWJlciB3aXRoaW4gdGhlIHBhdHRlcm4gY3ljbGUgKDEgdG8gcGVyaW9kKS4BMGN5Y2xlX3BlcmlvZDgBREJsb2NrTnVtYmVyRm9yPFQ+BKxUb3RhbCBudW1iZXIgb2YgYmxvY2tzIGluIHRoZSBwYXR0ZXJuIGN5Y2xlBQTkV2hldGhlciB0aGUgRE1QIHF1ZXVlIHdhcyBwcmlvcml0aXplZCBmb3IgdGhlIG5leHQgYmxvY2suZERtcFF1ZXVlUHJpb3JpdHlDb25maWdTZXQIAQxvbGS9CQGMRG1wUXVldWVQcmlvcml0eTxCbG9ja051bWJlckZvcjxUPj4EZFRoZSBvbGQgcHJpb3JpdHkgcGF0dGVybi4BDG5ld70JAYxEbXBRdWV1ZVByaW9yaXR5PEJsb2NrTnVtYmVyRm9yPFQ+PgRkVGhlIG5ldyBwcmlvcml0eSBwYXR0ZXJuLgYEmFRoZSBETVAgcXVldWUgcHJpb3JpdHkgY29uZmlnIHdhcyBzZXQuXEJhbGFuY2VzQmVmb3JlUmVjb3JkU2V0CAFAY2hlY2tpbmdfYWNjb3VudFkBAShUOjpCYWxhbmNlAAE4dG90YWxfaXNzdWFuY2VZAQEoVDo6QmFsYW5jZQAHBMBUaGUgYmFsYW5jZXMgYmVmb3JlIHRoZSBtaWdyYXRpb24gd2VyZSByZWNvcmRlZC5wQmFsYW5jZXNCZWZvcmVSZWNvcmRDb25zdW1lZAgBQGNoZWNraW5nX2FjY291bnRZAQEoVDo6QmFsYW5jZQABOHRvdGFsX2lzc3VhbmNlWQEBKFQ6OkJhbGFuY2UACATAVGhlIGJhbGFuY2VzIGJlZm9yZSB0aGUgbWlncmF0aW9uIHdlcmUgY29uc3VtZWQuSFJlZmVyZW5kdW1DYW5jZWxlZAQBCGlkOAEMdTMyAAkE6EEgcmVmZXJlbmR1bSB3YXMgY2FuY2VsbGVkIGJlY2F1c2UgaXQgY291bGQgbm90IGJlIG1hcHBlZC4oTWFuYWdlclNldAgBDG9sZJEBAVBPcHRpb248VDo6QWNjb3VudElkPgRsVGhlIG9sZCBtYW5hZ2VyIGFjY291bnQgaWQuAQxuZXeRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4EbFRoZSBuZXcgbWFuYWdlciBhY2NvdW50IGlkLgoEfFRoZSBtYW5hZ2VyIGFjY291bnQgaWQgd2FzIHNldC6MQWNjb3VudFRyYW5zbGF0ZWRQYXJhY2hhaW5Tb3ZlcmVpZ24IARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQACwCoQWNjb3VudFRyYW5zbGF0ZWRQYXJhY2hhaW5Tb3ZlcmVpZ25EZXJpdmVkDAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAFAZGVyaXZhdGlvbl9pbmRleNUDAQx1MTYADAAcWGNtU2VudBABGG9yaWdpbgECASBMb2NhdGlvbgABLGRlc3RpbmF0aW9uAQIBIExvY2F0aW9uAAEcbWVzc2FnZfkCARxYY208KCk+AAEobWVzc2FnZV9pZAgBHFhjbUhhc2gADQRgQW4gWENNIG1lc3NhZ2Ugd2FzIHNlbnQugEZhaWxlZFRvVW5yZXNlcnZlTXVsdGlzaWdEZXBvc2l0DAE8ZXhwZWN0ZWRfYW1vdW50WQEBqHBhbGxldF9yY19taWdyYXRvcjo6bXVsdGlzaWc6OkJhbGFuY2VPZjxUPgQZAVRoZSBleHBlY3RlZCBhbW91bnQgb2YgdGhlIGRlcG9zaXQgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gYmUgdW5yZXNlcnZlZC4BOG1pc3NpbmdfYW1vdW50WQEBqHBhbGxldF9yY19taWdyYXRvcjo6bXVsdGlzaWc6OkJhbGFuY2VPZjxUPgSIVGhlIG1pc3NpbmcgYW1vdW50IG9mIHRoZSBkZXBvc2l0LgEcYWNjb3VudAQBMFQ6OkFjY291bnRJZATEVGhlIGFjY291bnQgdGhhdCB0aGUgZGVwb3NpdCB3YXMgdW5yZXNlcnZlZCBmcm9tLg4EnEZhaWxlZCB0byB1bnJlc2VydmUgYSBtdWx0aXNpZyBkZXBvc2l0LoBGYWlsZWRUb1VucmVzZXJ2ZVByZWltYWdlRGVwb3NpdAwBPGV4cGVjdGVkX2Ftb3VudFkBAXRwYWxsZXRfcHJlaW1hZ2U6OkJhbGFuY2VPZjxUPgQZAVRoZSBleHBlY3RlZCBhbW91bnQgb2YgdGhlIGRlcG9zaXQgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gYmUgdW5yZXNlcnZlZC4BOG1pc3NpbmdfYW1vdW50WQEBdHBhbGxldF9wcmVpbWFnZTo6QmFsYW5jZU9mPFQ+BIhUaGUgbWlzc2luZyBhbW91bnQgb2YgdGhlIGRlcG9zaXQuARxhY2NvdW50BAEwVDo6QWNjb3VudElkBMRUaGUgYWNjb3VudCB0aGF0IHRoZSBkZXBvc2l0IHdhcyB1bnJlc2VydmVkIGZyb20uDwTURmFpbGVkIHRvIHVucmVzZXJ2ZSBhIGxlZ2FjeSBzdGF0dXMgcHJlaW1hZ2UgZGVwb3NpdC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSlCwhIcGFsbGV0X2FoX21pZ3JhdG9yPFBhbGxldEV2ZW50TmFtZQABbChBc3NldFJhdGVzAAAAIEJhZ3NMaXN0AAEAIEJhbGFuY2VzAAIAIEJvdW50aWVzAAMANENoaWxkQm91bnRpZXMABAAYQ2xhaW1zAAUAQENvbnZpY3Rpb25Wb3RpbmcABgAkQ3Jvd2Rsb2FuAAcAQERlbGVnYXRlZFN0YWtpbmcACAAcSW5kaWNlcwAJACBNdWx0aXNpZwAKACBOb21Qb29scwALADRQcmVpbWFnZUNodW5rAAwAUFByZWltYWdlTGVnYWN5U3RhdHVzAA0AVFByZWltYWdlUmVxdWVzdFN0YXR1cwAOAEhQcm94eUFubm91bmNlbWVudHMADwAwUHJveHlQcm94aWVzABAAIFJlY292ZXJ5ABEARFJlZmVyZW5kYU1ldGFkYXRhABIAUFJlZmVyZW5kYVJlZmVyZW5kdW1zABMAPFJlZmVyZW5kYVZhbHVlcwAUACRTY2hlZHVsZXIAFQA8U2NoZWR1bGVyQWdlbmRhABYAHFN0YWtpbmcAFwAgVHJlYXN1cnkAGAAcVmVzdGluZwAZABxTb2NpZXR5ABoAAKkLCDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEADgBDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAArQsIMGZyYW1lX3N5c3RlbVhMYXN0UnVudGltZVVwZ3JhZGVJbmZvAAAIATBzcGVjX3ZlcnNpb25kAUxjb2RlYzo6Q29tcGFjdDx1MzI+AAEkc3BlY19uYW1lsQsBRENvdzwnc3RhdGljLCBzdHI+AACxCwQMQ293BARUAbULAAQAtQsAAAC1CwAABQIAuQsIMGZyYW1lX3N5c3RlbWBDb2RlVXBncmFkZUF1dGhvcml6YXRpb24EBFQAAAgBJGNvZGVfaGFzaEABHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uXQEBEGJvb2wAAL0LDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9jaxUBARhXZWlnaHQAASRtYXhfYmxvY2sVAQEYV2VpZ2h0AAEkcGVyX2NsYXNzwQsBhFBlckRpc3BhdGNoQ2xhc3M8V2VpZ2h0c1BlckNsYXNzPgAAwQsMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAHFCwAMARhub3JtYWzFCwEEVAABLG9wZXJhdGlvbmFsxQsBBFQAASRtYW5kYXRvcnnFCwEEVAAAxQsMMGZyYW1lX3N5c3RlbRhsaW1pdHM8V2VpZ2h0c1BlckNsYXNzAAAQAThiYXNlX2V4dHJpbnNpYxUBARhXZWlnaHQAATRtYXhfZXh0cmluc2ljEQEBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFsEQEBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWQRAQE4T3B0aW9uPFdlaWdodD4AAMkLDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXjNCwFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AADNCww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUATgADAEYbm9ybWFsOAEEVAABLG9wZXJhdGlvbmFsOAEEVAABJG1hbmRhdG9yeTgBBFQAANELCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZCgBDHU2NAABFHdyaXRlKAEMdTY0AADVCwgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lsQsBRENvdzwnc3RhdGljLCBzdHI+AAEkaW1wbF9uYW1lsQsBRENvdzwnc3RhdGljLCBzdHI+AAFEYXV0aG9yaW5nX3ZlcnNpb244AQx1MzIAATBzcGVjX3ZlcnNpb244AQx1MzIAATBpbXBsX3ZlcnNpb244AQx1MzIAARBhcGlz2QsBHEFwaXNWZWMAAUx0cmFuc2FjdGlvbl92ZXJzaW9uOAEMdTMyAAE4c3lzdGVtX3ZlcnNpb24MAQh1OAAA2QsEDENvdwQEVAHdCwAEAN0LAAAA3QsAAALhCwDhCwAABAhdAjgA5QsMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASw8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC4sSW52YWxpZFRhc2sABwSQVGhlIHNwZWNpZmllZCBbYFRhc2tgXSBpcyBub3QgdmFsaWQuKEZhaWxlZFRhc2sACAS8VGhlIHNwZWNpZmllZCBbYFRhc2tgXSBmYWlsZWQgZHVyaW5nIGV4ZWN1dGlvbi5ETm90aGluZ0F1dGhvcml6ZWQACQRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACgSUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV06QsQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jaxRCbG9jawgYSGVhZGVyAWAkRXh0cmluc2ljAe0LAAgBGGhlYWRlcmABGEhlYWRlcgABKGV4dHJpbnNpY3P5CwE4VmVjPEV4dHJpbnNpYz4AAO0LEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBABBDYWxsASAkU2lnbmF0dXJlAYkEFEV4dHJhAfELAAQAGAAAAPELCHRjdW11bHVzX3BhbGxldF93ZWlnaHRfcmVjbGFpbVBTdG9yYWdlV2VpZ2h0UmVjbGFpbQgEVAAEUwH1CwAEAPULAQRTAAD1CwAABCzJCc0J0QnVCdkJ3QnlCekJ7QnxCfkJAPkLAAAC7QsA/QsAAAIBDAABDAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBQAAMATh1c2VkX2JhbmR3aWR0aAUMATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2jhBAEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsGQwBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AAAFDAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudDgBDHUzMgABPHVtcF90b3RhbF9ieXRlczgBDHUzMgABNGhybXBfb3V0Z29pbmcJDAGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AAAkMBCBCVHJlZU1hcAgESwGgBFYBDQwABAARDAAAAA0MDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50OAEMdTMyAAEsdG90YWxfYnl0ZXM4AQx1MzIAABEMAAACFQwAFQwAAAQIoA0MABkMBBhPcHRpb24EBFQBHQwBCBBOb25lAAAAEFNvbWUEAB0MAAABAAAdDAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OThVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAACEMDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAFAAAwBOHVzZWRfYmFuZHdpZHRoBQwBNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFya+QBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsGQwBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AAAlDAQYT3B0aW9uBARUASkMAQgQTm9uZQAAABBTb21lBAApDAAAAQAAKQwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAALQwMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkQAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHkxDAGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzNQwBiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHM1DAGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAAMQwMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudDgBDHUzMgABOHJlbWFpbmluZ19zaXplOAEMdTMyAAA1DAAAAjkMADkMAAAECKA9DAA9DAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OUxBYnJpZGdlZEhybXBDaGFubmVsAAAYATBtYXhfY2FwYWNpdHk4AQx1MzIAAThtYXhfdG90YWxfc2l6ZTgBDHUzMgABQG1heF9tZXNzYWdlX3NpemU4AQx1MzIAASRtc2dfY291bnQ4AQx1MzIAASh0b3RhbF9zaXplOAEMdTMyAAEgbXFjX2hlYWThBAEwT3B0aW9uPEhhc2g+AABBDAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OWRBYnJpZGdlZEhvc3RDb25maWd1cmF0aW9uAAAoATRtYXhfY29kZV9zaXplOAEMdTMyAAFIbWF4X2hlYWRfZGF0YV9zaXplOAEMdTMyAAFYbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudDgBDHUzMgABVG1heF91cHdhcmRfcXVldWVfc2l6ZTgBDHUzMgABXG1heF91cHdhcmRfbWVzc2FnZV9zaXplOAEMdTMyAAGQbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlOAEMdTMyAAGIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZTgBDHUzMgABbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bjgBLEJsb2NrTnVtYmVyAAFgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5OAEsQmxvY2tOdW1iZXIAAVBhc3luY19iYWNraW5nX3BhcmFtc0UMAUhBc3luY0JhY2tpbmdQYXJhbXMAAEUMEExwb2xrYWRvdF9wcmltaXRpdmVzCHY5NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoOAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW44AQx1MzIAAEkMCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50RE1lc3NhZ2VRdWV1ZUNoYWluAAAEAEABJFJlbGF5SGFzaAAATQwEIEJUcmVlTWFwCARLAaAEVgFJDAAEAFEMAAAAUQwAAAJVDABVDAAABAigSQwAWQwMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50QEluYm91bmRNZXNzYWdlSWQAAAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABLHJldmVyc2VfaWR4OAEMdTMyAABdDAAAAmEMAGEMCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNMT3V0Ym91bmRIcm1wTWVzc2FnZQQISWQBoAAIASRyZWNpcGllbnSgAQhJZAABEGRhdGEYAUxhbGxvYzo6dmVjOjpWZWM8dTg+AABlDAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAARhMT3ZlcmxhcHBpbmdVcGdyYWRlcwAABBkBQXR0ZW1wdCB0byB1cGdyYWRlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2hpbGUgZXhpc3RpbmcgdXBncmFkZSBwZW5kaW5nLlBQcm9oaWJpdGVkQnlQb2xrYWRvdAABBE0BUG9sa2Fkb3QgY3VycmVudGx5IHByb2hpYml0cyB0aGlzIHBhcmFjaGFpbiBmcm9tIHVwZ3JhZGluZyBpdHMgdmFsaWRhdGlvbiBmdW5jdGlvbi4YVG9vQmlnAAIIRQFUaGUgc3VwcGxpZWQgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgY29tcGlsZWQgaW50byBhIGJsb2IgbGFyZ2VyIHRoYW4gUG9sa2Fkb3QgaXM8d2lsbGluZyB0byBydW4uaFZhbGlkYXRpb25EYXRhTm90QXZhaWxhYmxlAAMEHQFUaGUgaW5oZXJlbnQgd2hpY2ggc3VwcGxpZXMgdGhlIHZhbGlkYXRpb24gZGF0YSBkaWQgbm90IHJ1biB0aGlzIGJsb2NrLnRIb3N0Q29uZmlndXJhdGlvbk5vdEF2YWlsYWJsZQAEBCkBVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSBob3N0IGNvbmZpZ3VyYXRpb24gZGlkIG5vdCBydW4gdGhpcyBibG9jay4wTm90U2NoZWR1bGVkAAUE2E5vIHZhbGlkYXRpb24gZnVuY3Rpb24gdXBncmFkZSBpcyBjdXJyZW50bHkgc2NoZWR1bGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pDAg8cGFsbGV0X3ByZWltYWdlQE9sZFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEEHEJhbGFuY2UBWQEBCCxVbnJlcXVlc3RlZAgBHGRlcG9zaXSZBQFQKEFjY291bnRJZCwgQmFsYW5jZSkAAQxsZW44AQx1MzIAAAAkUmVxdWVzdGVkDAEcZGVwb3NpdG0MAXBPcHRpb248KEFjY291bnRJZCwgQmFsYW5jZSk+AAEUY291bnQ4AQx1MzIAAQxsZW7kASxPcHRpb248dTMyPgABAABtDAQYT3B0aW9uBARUAZkFAQgQTm9uZQAAABBTb21lBACZBQAAAQAAcQwIPHBhbGxldF9wcmVpbWFnZTRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBBBhUaWNrZXQBdQwBCCxVbnJlcXVlc3RlZAgBGHRpY2tldHkMAUwoQWNjb3VudElkLCBUaWNrZXQpAAEMbGVuOAEMdTMyAAAAJFJlcXVlc3RlZAwBMG1heWJlX3RpY2tldH0MAWxPcHRpb248KEFjY291bnRJZCwgVGlja2V0KT4AARRjb3VudDgBDHUzMgABJG1heWJlX2xlbuQBLE9wdGlvbjx1MzI+AAEAAHUMFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAFkBAShGOjpCYWxhbmNlAAB5DAAABAgEdQwAfQwEGE9wdGlvbgQEVAF5DAEIEE5vbmUAAAAQU29tZQQAeQwAAAEAAIEMAAAECEA4AIUMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAiQwMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXJyb3IEBFQAASAYVG9vQmlnAAAEoFByZWltYWdlIGlzIHRvbyBsYXJnZSB0byBzdG9yZSBvbi1jaGFpbi4wQWxyZWFkeU5vdGVkAAEEpFByZWltYWdlIGhhcyBhbHJlYWR5IGJlZW4gbm90ZWQgb24tY2hhaW4uNE5vdEF1dGhvcml6ZWQAAgTIVGhlIHVzZXIgaXMgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gTm90Tm90ZWQAAwT8VGhlIHByZWltYWdlIGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIGl0IGhhcyBub3QgeWV0IGJlZW4gbm90ZWQuJFJlcXVlc3RlZAAEBAkBQSBwcmVpbWFnZSBtYXkgbm90IGJlIHJlbW92ZWQgd2hlbiB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgcmVxdWVzdHMuME5vdFJlcXVlc3RlZAAFBC0BVGhlIHByZWltYWdlIHJlcXVlc3QgY2Fubm90IGJlIHJlbW92ZWQgc2luY2Ugbm8gb3V0c3RhbmRpbmcgcmVxdWVzdHMgZXhpc3QuHFRvb01hbnkABgRVAU1vcmUgdGhhbiBgTUFYX0hBU0hfVVBHUkFERV9CVUxLX0NPVU5UYCBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgYXQgb25jZS4YVG9vRmV3AAcE5FRvbyBmZXcgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIChpLmUuIHplcm8pLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6NDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZEMBFMAAAQAmQwBGFZlYzxUPgAAkQwEGE9wdGlvbgQEVAGVDAEIEE5vbmUAAAAQU29tZQQAlQwAAAEAAJUMCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEIEENhbGwB1QQsQmxvY2tOdW1iZXIBODRQYWxsZXRzT3JpZ2luAdkDJEFjY291bnRJZAEEABQBIG1heWJlX2lk4QYBME9wdGlvbjxOYW1lPgABIHByaW9yaXR5DAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbNUEARBDYWxsAAE4bWF5YmVfcGVyaW9kaWPMAZRPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlcj4+AAEYb3JpZ2lu2QMBNFBhbGxldHNPcmlnaW4AAJkMAAACkQwAnQwMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEVycm9yBARUAAEUQEZhaWxlZFRvU2NoZWR1bGUAAARkRmFpbGVkIHRvIHNjaGVkdWxlIGEgY2FsbCBOb3RGb3VuZAABBHxDYW5ub3QgZmluZCB0aGUgc2NoZWR1bGVkIGNhbGwuXFRhcmdldEJsb2NrTnVtYmVySW5QYXN0AAIEpEdpdmVuIHRhcmdldCBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuSFJlc2NoZWR1bGVOb0NoYW5nZQADBPBSZXNjaGVkdWxlIGZhaWxlZCBiZWNhdXNlIGl0IGRvZXMgbm90IGNoYW5nZSBzY2hlZHVsZWQgdGltZS4UTmFtZWQABATQQXR0ZW1wdCB0byB1c2UgYSBub24tbmFtZWQgZnVuY3Rpb24gb24gYSBuYW1lZCB0YXNrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hDAxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEVycm9yBARUAAEEHE9uZ29pbmcAAAToVGhlIG9wZXJhdGlvbiBjYW5ub3QgY29tcGxldGUgc2luY2Ugc29tZSBNQk1zIGFyZSBvbmdvaW5nLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6lDAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAUUHBFMAAAQATQcBGFZlYzxUPgAAqQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGtDARTAAAEALEMARhWZWM8VD4AAK0MDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyAV0CHEJhbGFuY2UBWQEACAEIaWRdAgFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnRZAQEcQmFsYW5jZQAAsQwAAAKtDAC1DAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbkMBFMAAAQAvQwBGFZlYzxUPgAAuQwUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAGFChxCYWxhbmNlAVkBAAgBCGlkhQoBCElkAAEYYW1vdW50WQEBHEJhbGFuY2UAAL0MAAACuQwAwQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHFDARTAAAEAM0MARhWZWM8VD4AAMUMFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQByQwcQmFsYW5jZQFZAQAIAQhpZMkMAQhJZAABGGFtb3VudFkBARxCYWxhbmNlAADJDAhcYXNzZXRfaHViX3Bhc2VvX3J1bnRpbWVMUnVudGltZUZyZWV6ZVJlYXNvbgABBDxOb21pbmF0aW9uUG9vbHMEACUHAZRwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6RnJlZXplUmVhc29uAFAAAM0MAAACxQwA0QwMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQURXJyb3IIBFQABEkAATA4VmVzdGluZ0JhbGFuY2UAAAScVmVzdGluZyBiYWxhbmNlIHRvbyBoaWdoIHRvIHNlbmQgdmFsdWUuVExpcXVpZGl0eVJlc3RyaWN0aW9ucwABBMhBY2NvdW50IGxpcXVpZGl0eSByZXN0cmljdGlvbnMgcHJldmVudCB3aXRoZHJhd2FsLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAIEeEJhbGFuY2UgdG9vIGxvdyB0byBzZW5kIHZhbHVlLkhFeGlzdGVudGlhbERlcG9zaXQAAwTsVmFsdWUgdG9vIGxvdyB0byBjcmVhdGUgYWNjb3VudCBkdWUgdG8gZXhpc3RlbnRpYWwgZGVwb3NpdC40RXhwZW5kYWJpbGl0eQAEBJBUcmFuc2Zlci9wYXltZW50IHdvdWxkIGtpbGwgYWNjb3VudC5cRXhpc3RpbmdWZXN0aW5nU2NoZWR1bGUABQTMQSB2ZXN0aW5nIHNjaGVkdWxlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIGFjY291bnQuLERlYWRBY2NvdW50AAYEjEJlbmVmaWNpYXJ5IGFjY291bnQgbXVzdCBwcmUtZXhpc3QuPFRvb01hbnlSZXNlcnZlcwAHBLhOdW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgZXhjZWVkIGBNYXhSZXNlcnZlc2AuMFRvb01hbnlIb2xkcwAIBPhOdW1iZXIgb2YgaG9sZHMgZXhjZWVkIGBWYXJpYW50Q291bnRPZjxUOjpSdW50aW1lSG9sZFJlYXNvbj5gLjhUb29NYW55RnJlZXplcwAJBJhOdW1iZXIgb2YgZnJlZXplcyBleGNlZWQgYE1heEZyZWV6ZXNgLkxJc3N1YW5jZURlYWN0aXZhdGVkAAoEAQFUaGUgaXNzdWFuY2UgY2Fubm90IGJlIG1vZGlmaWVkIHNpbmNlIGl0IGlzIGFscmVhZHkgZGVhY3RpdmF0ZWQuJERlbHRhWmVybwALBGRUaGUgZGVsdGEgY2Fubm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtUMCGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudCBSZWxlYXNlcwABCCRWMUFuY2llbnQAAAAIVjIAAQAA2QwQNGZyYW1lX3N1cHBvcnQYdHJhaXRzHHN0b3JhZ2UYTm9Ecm9wBARUAd0MAAQA3QwBBFQAAN0MGDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGUkaW1iYWxhbmNlJEltYmFsYW5jZQwEQgFZARhPbkRyb3AAOE9wcG9zaXRlT25Ecm9wAAAEARhhbW91bnRZAQEEQgAA4QwIOHBhbGxldF92ZXN0aW5nIFJlbGVhc2VzAAEICFYwAAAACFYxAAEAAOUMDDhwYWxsZXRfdmVzdGluZxhwYWxsZXQURXJyb3IEBFQAARQoTm90VmVzdGluZwAABIRUaGUgYWNjb3VudCBnaXZlbiBpcyBub3QgdmVzdGluZy5UQXRNYXhWZXN0aW5nU2NoZWR1bGVzAAEIJQFUaGUgYWNjb3VudCBhbHJlYWR5IGhhcyBgTWF4VmVzdGluZ1NjaGVkdWxlc2AgY291bnQgb2Ygc2NoZWR1bGVzIGFuZCB0aHVzUQFjYW5ub3QgYWRkIGFub3RoZXIgb25lLiBDb25zaWRlciBtZXJnaW5nIGV4aXN0aW5nIHNjaGVkdWxlcyBpbiBvcmRlciB0byBhZGQgYW5vdGhlci4kQW1vdW50TG93AAIEBQFBbW91bnQgYmVpbmcgdHJhbnNmZXJyZWQgaXMgdG9vIGxvdyB0byBjcmVhdGUgYSB2ZXN0aW5nIHNjaGVkdWxlLmBTY2hlZHVsZUluZGV4T3V0T2ZCb3VuZHMAAwTQQW4gaW5kZXggd2FzIG91dCBvZiBib3VuZHMgb2YgdGhlIHZlc3Rpbmcgc2NoZWR1bGVzLlRJbnZhbGlkU2NoZWR1bGVQYXJhbXMABAQNAUZhaWxlZCB0byBjcmVhdGUgYSBuZXcgc2NoZWR1bGUgYmVjYXVzZSBzb21lIHBhcmFtZXRlciB3YXMgaW52YWxpZC4EdEVycm9yIGZvciB0aGUgdmVzdGluZyBwYWxsZXQu6QwQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltcxhwYWxsZXQURXJyb3IEBFQAARhgSW52YWxpZEV0aGVyZXVtU2lnbmF0dXJlAAAEbEludmFsaWQgRXRoZXJldW0gc2lnbmF0dXJlLkBTaWduZXJIYXNOb0NsYWltAAEEeEV0aGVyZXVtIGFkZHJlc3MgaGFzIG5vIGNsYWltLkBTZW5kZXJIYXNOb0NsYWltAAIEsEFjY291bnQgSUQgc2VuZGluZyB0cmFuc2FjdGlvbiBoYXMgbm8gY2xhaW0uMFBvdFVuZGVyZmxvdwADCEkBVGhlcmUncyBub3QgZW5vdWdoIGluIHRoZSBwb3QgdG8gcGF5IG91dCBzb21lIHVudmVzdGVkIGFtb3VudC4gR2VuZXJhbGx5IGltcGxpZXMgYTBsb2dpYyBlcnJvci5ASW52YWxpZFN0YXRlbWVudAAEBJBBIG5lZWRlZCBzdGF0ZW1lbnQgd2FzIG5vdCBpbmNsdWRlZC5MVmVzdGVkQmFsYW5jZUV4aXN0cwAFBKRUaGUgYWNjb3VudCBhbHJlYWR5IGhhcyBhIHZlc3RlZCBiYWxhbmNlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7tDAg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABABdAgEcW3U4OyA4XQAA8QwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAYQEBGFZlYzxUPgAA9QwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAH5DARTAAAEAP0MARhWZWM8VD4AAPkMDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldDRDYW5kaWRhdGVJbmZvCCRBY2NvdW50SWQBBBxCYWxhbmNlAVkBAAgBDHdobwQBJEFjY291bnRJZAABHGRlcG9zaXRZAQEcQmFsYW5jZQAA/QwAAAL5DAABDQxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXJyb3IEBFQAAUREVG9vTWFueUNhbmRpZGF0ZXMAAASMVGhlIHBhbGxldCBoYXMgdG9vIG1hbnkgY2FuZGlkYXRlcy5cVG9vRmV3RWxpZ2libGVDb2xsYXRvcnMAAQSsTGVhdmluZyB3b3VsZCByZXN1bHQgaW4gdG9vIGZldyBjYW5kaWRhdGVzLkBBbHJlYWR5Q2FuZGlkYXRlAAIEfEFjY291bnQgaXMgYWxyZWFkeSBhIGNhbmRpZGF0ZS4wTm90Q2FuZGlkYXRlAAMEbEFjY291bnQgaXMgbm90IGEgY2FuZGlkYXRlLlBUb29NYW55SW52dWxuZXJhYmxlcwAEBIRUaGVyZSBhcmUgdG9vIG1hbnkgSW52dWxuZXJhYmxlcy5MQWxyZWFkeUludnVsbmVyYWJsZQAFBIxBY2NvdW50IGlzIGFscmVhZHkgYW4gSW52dWxuZXJhYmxlLjxOb3RJbnZ1bG5lcmFibGUABgR8QWNjb3VudCBpcyBub3QgYW4gSW52dWxuZXJhYmxlLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAAHBJxBY2NvdW50IGhhcyBubyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRC5YVmFsaWRhdG9yTm90UmVnaXN0ZXJlZAAIBIxWYWxpZGF0b3IgSUQgaXMgbm90IHlldCByZWdpc3RlcmVkLmxJbnNlcnRUb0NhbmRpZGF0ZUxpc3RGYWlsZWQACQScQ291bGQgbm90IGluc2VydCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QudFJlbW92ZUZyb21DYW5kaWRhdGVMaXN0RmFpbGVkAAoEpENvdWxkIG5vdCByZW1vdmUgZnJvbSB0aGUgY2FuZGlkYXRlIGxpc3QuNERlcG9zaXRUb29Mb3cACwT0TmV3IGRlcG9zaXQgYW1vdW50IHdvdWxkIGJlIGJlbG93IHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLmRVcGRhdGVDYW5kaWRhdGVMaXN0RmFpbGVkAAwEkENvdWxkIG5vdCB1cGRhdGUgdGhlIGNhbmRpZGF0ZSBsaXN0LkBJbnN1ZmZpY2llbnRCb25kAA0EKQFEZXBvc2l0IGFtb3VudCBpcyB0b28gbG93IHRvIHRha2UgdGhlIHRhcmdldCdzIHNsb3QgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0LlBUYXJnZXRJc05vdENhbmRpZGF0ZQAOBC0BVGhlIHRhcmdldCBhY2NvdW50IHRvIGJlIHJlcGxhY2VkIGluIHRoZSBjYW5kaWRhdGUgbGlzdCBpcyBub3QgYSBjYW5kaWRhdGUuQElkZW50aWNhbERlcG9zaXQADwQNAVRoZSB1cGRhdGVkIGRlcG9zaXQgYW1vdW50IGlzIGVxdWFsIHRvIHRoZSBhbW91bnQgYWxyZWFkeSByZXNlcnZlZC5ASW52YWxpZFVucmVzZXJ2ZQAQBD0BQ2Fubm90IGxvd2VyIGNhbmRpZGFjeSBib25kIHdoaWxlIG9jY3VweWluZyBhIGZ1dHVyZSBjb2xsYXRvciBzbG90IGluIHRoZSBsaXN0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4FDQAAAgkNAAkNAAAECASdAQANDQAAAhENABENAAAECDgVDQAVDQwoc3Bfc3Rha2luZxxvZmZlbmNlPE9mZmVuY2VTZXZlcml0eQAABAAtBQEcUGVyYmlsbAAAGQ0AAAQIHQ0YAB0NDBxzcF9jb3JlGGNyeXB0byRLZXlUeXBlSWQAAAQAdAEcW3U4OyA0XQAAIQ0MOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFcnJvcgQEVAABFDBJbnZhbGlkUHJvb2YAAARgSW52YWxpZCBvd25lcnNoaXAgcHJvb2YuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEEnE5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElEIGZvciBhY2NvdW50LjREdXBsaWNhdGVkS2V5AAIEZFJlZ2lzdGVyZWQgZHVwbGljYXRlIGtleS4YTm9LZXlzAAMEpE5vIGtleXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY291bnQuJE5vQWNjb3VudAAEBBkBS2V5IHNldHRpbmcgYWNjb3VudCBpcyBub3QgbGl2ZSwgc28gaXQncyBpbXBvc3NpYmxlIHRvIGFzc29jaWF0ZSBrZXlzLgR0RXJyb3IgZm9yIHRoZSBzZXNzaW9uIHBhbGxldC4lDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaEBBFMAAAQAKQ0BGFZlYzxUPgAAKQ0AAAKhAQAtDQhIc3BfY29uc2Vuc3VzX3Nsb3RzEFNsb3QAAAQAKAEMdTY0AAAxDQAABAgtDTgANQ0MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAaAEUwAABAA5DQEsQlRyZWVTZXQ8VD4AADkNBCBCVHJlZVNldAQEVAGgAAQAPQ0AAAA9DQAAAqAAQQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFFDQRTAAAEAE0NARhWZWM8VD4AAEUNCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudKABGFBhcmFJZAABFHN0YXRlSQ0BNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0XQEBEGJvb2wAASxmaXJzdF9pbmRleNUDAQx1MTYAAShsYXN0X2luZGV41QMBDHUxNgAASQ0IZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAATQ0AAAJFDQBRDQAABAig1QMAVQ0MTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AABZDQhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTxRdWV1ZUNvbmZpZ0RhdGEAAAwBRHN1c3BlbmRfdGhyZXNob2xkOAEMdTMyAAE4ZHJvcF90aHJlc2hvbGQ4AQx1MzIAAUByZXN1bWVfdGhyZXNob2xkOAEMdTMyAABdDQxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAARQ4QmFkUXVldWVDb25maWcAAAQRAVNldHRpbmcgdGhlIHF1ZXVlIGNvbmZpZyBmYWlsZWQgc2luY2Ugb25lIG9mIGl0cyB2YWx1ZXMgd2FzIGludmFsaWQuQEFscmVhZHlTdXNwZW5kZWQAAQSMVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHN1c3BlbmRlZC44QWxyZWFkeVJlc3VtZWQAAgSEVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHJlc3VtZWQudFRvb01hbnlBY3RpdmVPdXRib3VuZENoYW5uZWxzAAMEsFRoZXJlIGFyZSB0b28gbWFueSBhY3RpdmUgb3V0Ym91bmQgY2hhbm5lbHMuGFRvb0JpZwAEBFxUaGUgbWVzc2FnZSBpcyB0b28gYmlnLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5hDQwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyATgBDBxQZW5kaW5nEAEkcmVzcG9uZGVyrQEBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllcmUNAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ5aQ0BQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0OAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2lurQEBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlXQEBEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZXENAURWZXJzaW9uZWRSZXNwb25zZQABCGF0OAEsQmxvY2tOdW1iZXIAAgAAZQ0EGE9wdGlvbgQEVAGtAQEIEE5vbmUAAAAQU29tZQQArQEAAAEAAGkNBBhPcHRpb24EBFQBbQ0BCBBOb25lAAAAEFNvbWUEAG0NAAABAABtDQAABAgMDABxDQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYzBABlAgEwdjM6OlJlc3BvbnNlAAMACFY0BADRAgEwdjQ6OlJlc3BvbnNlAAQACFY1BAAdAwEwdjU6OlJlc3BvbnNlAAUAAHUNAAAECDitAQB5DQAABAwoFQE4AH0NDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBgQ0EUwAABACFDQEYVmVjPFQ+AACBDQAABAitATgAhQ0AAAKBDQCJDQwocGFsbGV0X3hjbRhwYWxsZXRUVmVyc2lvbk1pZ3JhdGlvblN0YWdlAAEQXE1pZ3JhdGVTdXBwb3J0ZWRWZXJzaW9uAAAAXE1pZ3JhdGVWZXJzaW9uTm90aWZpZXJzAAEAUE5vdGlmeUN1cnJlbnRUYXJnZXRzBABNAQE8T3B0aW9uPFZlYzx1OD4+AAIAaE1pZ3JhdGVBbmROb3RpZnlPbGRUYXJnZXRzAAMAAI0NAAAEDDgEpQMAkQ0MKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIBEDBNYXhDb25zdW1lcnMAABABGGFtb3VudFkBARB1MTI4AAEUb3duZXKtAQFEVmVyc2lvbmVkTG9jYXRpb24AARhsb2NrZXKtAQFEVmVyc2lvbmVkTG9jYXRpb24AASRjb25zdW1lcnOVDQHQQm91bmRlZFZlYzwoQ29uc3VtZXJJZGVudGlmaWVyLCB1MTI4KSwgTWF4Q29uc3VtZXJzPgAAlQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGZDQRTAAAEAJ0NARhWZWM8VD4AAJkNAAAECBBZAQCdDQAAApkNAKENDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBpQ0EUwAABACpDQEYVmVjPFQ+AAClDQAABAhZAa0BAKkNAAACpQ0ArQ0IKHBhbGxldF94Y21YQXV0aG9yaXplZEFsaWFzZXNFbnRyeQgYVGlja2V0AbENDE1BWAG1DQAIASBhbGlhc2Vyc7kNAXhCb3VuZGVkVmVjPE9yaWdpbkFsaWFzZXIsIE1BWD4AARh0aWNrZXSxDQEYVGlja2V0AACxDRQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlREhvbGRDb25zaWRlcmF0aW9uFARBAARGAARSAAREAAhGcAAABABZAQEoRjo6QmFsYW5jZQAAtQ0MKHBhbGxldF94Y20YcGFsbGV0UE1heEF1dGhvcml6ZWRBbGlhc2VzAAAAALkNDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBvQ0EUwAABADBDQEYVmVjPFQ+AAC9DQxAeGNtX3J1bnRpbWVfYXBpc0hhdXRob3JpemVkX2FsaWFzZXM0T3JpZ2luQWxpYXNlcgAACAEgbG9jYXRpb26tAQFEVmVyc2lvbmVkTG9jYXRpb24AARhleHBpcnkBAQEsT3B0aW9uPHU2ND4AAMENAAACvQ0AxQ0MKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFwLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLmBUb29NYW55QXV0aG9yaXplZEFsaWFzZXMAGQS4VG9vIG1hbnkgbG9jYXRpb25zIGF1dGhvcml6ZWQgdG8gYWxpYXMgb3JpZ2luLjRFeHBpcmVzSW5QYXN0ABoEjEV4cGlyeSBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuNEFsaWFzTm90Rm91bmQAGwTQVGhlIGFsaWFzIHRvIHJlbW92ZSBhdXRob3JpemF0aW9uIGZvciB3YXMgbm90IGZvdW5kLoRMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3IIARRpbmRleAwBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvcskNAThFeGVjdXRpb25FcnJvcgAcCDUBTG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlIHdpdGggdGhlIGFjdHVhbCBYQ00gZXJyb3IgYW5kIHRoZSBpbmRleCBvZiB0aGWIaW5zdHJ1Y3Rpb24gdGhhdCBjYXVzZWQgdGhlIGVycm9yLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7JDQwocGFsbGV0X3hjbRhlcnJvcnM4RXhlY3V0aW9uRXJyb3IAAaQgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiADRUb29NYW55QXNzZXRzACMATFVuaGFuZGxlZFhjbVZlcnNpb24AJABIV2VpZ2h0TGltaXRSZWFjaGVkACUAHEJhcnJpZXIAJgBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAnAERFeGNlZWRzU3RhY2tMaW1pdAAoAADNDQhgYnBfeGNtX2JyaWRnZV9odWJfcm91dGVyLEJyaWRnZVN0YXRlAAAIAUxkZWxpdmVyeV9mZWVfZmFjdG9y9QQBJEZpeGVkVTEyOAABMGlzX2Nvbmdlc3RlZF0BARBib29sAADRDQhQcGFsbGV0X21lc3NhZ2VfcXVldWUkQm9va1N0YXRlBDRNZXNzYWdlT3JpZ2luAbUDABgBFGJlZ2luOAEkUGFnZUluZGV4AAEMZW5kOAEkUGFnZUluZGV4AAEUY291bnQ4ASRQYWdlSW5kZXgAAUByZWFkeV9uZWlnaGJvdXJz1Q0BhE9wdGlvbjxOZWlnaGJvdXJzPE1lc3NhZ2VPcmlnaW4+PgABNG1lc3NhZ2VfY291bnQoAQx1NjQAARBzaXplKAEMdTY0AADVDQQYT3B0aW9uBARUAdkNAQgQTm9uZQAAABBTb21lBADZDQAAAQAA2Q0IUHBhbGxldF9tZXNzYWdlX3F1ZXVlKE5laWdoYm91cnMENE1lc3NhZ2VPcmlnaW4BtQMACAEQcHJldrUDATRNZXNzYWdlT3JpZ2luAAEQbmV4dLUDATRNZXNzYWdlT3JpZ2luAADdDQAABAi1AzgA4Q0IUHBhbGxldF9tZXNzYWdlX3F1ZXVlEFBhZ2UIEFNpemUBOCBIZWFwU2l6ZQAAGAEkcmVtYWluaW5nOAEQU2l6ZQABOHJlbWFpbmluZ19zaXplOAEQU2l6ZQABLGZpcnN0X2luZGV4OAEQU2l6ZQABFGZpcnN0OAEQU2l6ZQABEGxhc3Q4ARBTaXplAAEQaGVhcOUNAZxCb3VuZGVkVmVjPHU4LCBJbnRvVTMyPEhlYXBTaXplLCBTaXplPj4AAOUNDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAA6Q0MUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABJCxOb3RSZWFwYWJsZQAACEkBUGFnZSBpcyBub3QgcmVhcGFibGUgYmVjYXVzZSBpdCBoYXMgaXRlbXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBhbmQgaXMgbm90IG9sZBxlbm91Z2guGE5vUGFnZQABBIRQYWdlIHRvIGJlIHJlYXBlZCBkb2VzIG5vdCBleGlzdC4kTm9NZXNzYWdlAAIEqFRoZSByZWZlcmVuY2VkIG1lc3NhZ2UgY291bGQgbm90IGJlIGZvdW5kLkBBbHJlYWR5UHJvY2Vzc2VkAAMEAQFUaGUgbWVzc2FnZSB3YXMgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIGNhbm5vdCBiZSBwcm9jZXNzZWQgYWdhaW4uGFF1ZXVlZAAEBKxUaGUgbWVzc2FnZSBpcyBxdWV1ZWQgZm9yIGZ1dHVyZSBleGVjdXRpb24uSEluc3VmZmljaWVudFdlaWdodAAFBBkBVGhlcmUgaXMgdGVtcG9yYXJpbHkgbm90IGVub3VnaCB3ZWlnaHQgdG8gY29udGludWUgc2VydmljaW5nIG1lc3NhZ2VzLmBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUABhCoVGhpcyBtZXNzYWdlIGlzIHRlbXBvcmFyaWx5IHVucHJvY2Vzc2FibGUuAFkBU3VjaCBlcnJvcnMgYXJlIGV4cGVjdGVkLCBidXQgbm90IGd1YXJhbnRlZWQsIHRvIHJlc29sdmUgdGhlbXNlbHZlcyBldmVudHVhbGx5IHRocm91Z2gkcmV0cnlpbmcuLFF1ZXVlUGF1c2VkAAcM7FRoZSBxdWV1ZSBpcyBwYXVzZWQgYW5kIG5vIG1lc3NhZ2UgY2FuIGJlIGV4ZWN1dGVkIGZyb20gaXQuAB0BVGhpcyBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGFuZCBtYXkgcmVzb2x2ZSBpbiB0aGUgZnV0dXJlIGJ5IHJlLXRyeWluZy5MUmVjdXJzaXZlRGlzYWxsb3dlZAAIBDEBQW5vdGhlciBjYWxsIGlzIGluIHByb2dyZXNzIGFuZCBuZWVkcyB0byBmaW5pc2ggYmVmb3JlIHRoaXMgY2FsbCBjYW4gaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7tDQyEc25vd2JyaWRnZV9wYWxsZXRfc3lzdGVtX2Zyb250ZW5kGHBhbGxldBRFcnJvcgQEVAABNGhVbnN1cHBvcnRlZExvY2F0aW9uVmVyc2lvbgAABIhDb252ZXJ0IHZlcnNpb25lZCBsb2NhdGlvbiBmYWlsdXJlREludmFsaWRBc3NldE93bmVyAAEEGQFDaGVjayBsb2NhdGlvbiBmYWlsdXJlLCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgZGlzcGF0Y2ggb3JpZ2luIGFzIG93bmVyLFNlbmRGYWlsdXJlAAIEYFNlbmQgeGNtIG1lc3NhZ2UgZmFpbHVyZShGZWVzTm90TWV0AAMEaFdpdGhkcmF3IGZlZSBhc3NldCBmYWlsdXJlYExvY2F0aW9uQ29udmVyc2lvbkZhaWxlZAAEBJhDb252ZXJ0IHRvIHJlYW5jaG9yZWQgbG9jYXRpb24gZmFpbHVyZRhIYWx0ZWQABQRgTWVzc2FnZSBleHBvcnQgaXMgaGFsdGVkLFVucmVhY2hhYmxlAAYIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuQFVuc3VwcG9ydGVkQXNzZXQABwS4VGhlIGFzc2V0IHByb3ZpZGVkIGZvciB0aGUgdGlwIGlzIHVuc3VwcG9ydGVkLjRXaXRoZHJhd0Vycm9yAAgEZFVuYWJsZSB0byB3aXRoZHJhdyBhc3NldC44SW52YWxpZEFjY291bnQACQS0QWNjb3VudCBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIGEgbG9jYXRpb24uJFN3YXBFcnJvcgAKBMhQcm92aWRlZCB0aXAgYXNzZXQgY291bGQgbm90IGJlIHN3YXBwZWQgZm9yIGV0aGVyLiRCdXJuRXJyb3IACwRoRXRoZXIgY291bGQgbm90IGJlIGJ1cm5lZC40VGlwQW1vdW50WmVybwAMBGRUaGUgdGlwIHByb3ZpZGVkIGlzIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvENDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXJyb3IEBFQAAQQwVG9vTWFueUNhbGxzAAAEXFRvbyBtYW55IGNhbGxzIGJhdGNoZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvUNAAAECAQIAPkNCDxwYWxsZXRfbXVsdGlzaWcgTXVsdGlzaWcQLEJsb2NrTnVtYmVyATgcQmFsYW5jZQFZASRBY2NvdW50SWQBBDBNYXhBcHByb3ZhbHMAABABEHdoZW79AwFYVGltZXBvaW50PEJsb2NrTnVtYmVyPgABHGRlcG9zaXRZAQEcQmFsYW5jZQABJGRlcG9zaXRvcgQBJEFjY291bnRJZAABJGFwcHJvdmFsc/0NAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAA/Q0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAYQEBGFZlYzxUPgAAAQ4MPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwSgTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCBpbiBzdG9yYWdlLiBOb3RPd25lcgAICFEBT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQgb3IgdXBkYXRlNGl0cyBkZXBvc2l0cy4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4FDgAABAgJDlkBAAkODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDQ4EUwAABAARDgEYVmVjPFQ+AAANDggwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQQkUHJveHlUeXBlAQkELEJsb2NrTnVtYmVyATgADAEgZGVsZWdhdGUEASRBY2NvdW50SWQAAShwcm94eV90eXBlCQQBJFByb3h5VHlwZQABFGRlbGF5OAEsQmxvY2tOdW1iZXIAABEOAAACDQ4AFQ4AAAQIGQ5ZAQAZDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAR0OBFMAAAQAIQ4BGFZlYzxUPgAAHQ4IMHBhbGxldF9wcm94eTBBbm5vdW5jZW1lbnQMJEFjY291bnRJZAEEEEhhc2gBQCxCbG9ja051bWJlcgE4AAwBEHJlYWwEASRBY2NvdW50SWQAASRjYWxsX2hhc2hAARBIYXNoAAEYaGVpZ2h0OAEsQmxvY2tOdW1iZXIAACEOAAACHQ4AJQ4MMHBhbGxldF9wcm94eRhwYWxsZXQURXJyb3IEBFQAASAcVG9vTWFueQAABCEBVGhlcmUgYXJlIHRvbyBtYW55IHByb3hpZXMgcmVnaXN0ZXJlZCBvciB0b28gbWFueSBhbm5vdW5jZW1lbnRzIHBlbmRpbmcuIE5vdEZvdW5kAAEEdFByb3h5IHJlZ2lzdHJhdGlvbiBub3QgZm91bmQuIE5vdFByb3h5AAIEzFNlbmRlciBpcyBub3QgYSBwcm94eSBvZiB0aGUgYWNjb3VudCB0byBiZSBwcm94aWVkLixVbnByb3h5YWJsZQADBCEBQSBjYWxsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBwcm94eSB0eXBlJ3MgZmlsdGVyIHdhcyBhdHRlbXB0ZWQuJER1cGxpY2F0ZQAEBGxBY2NvdW50IGlzIGFscmVhZHkgYSBwcm94eS4wTm9QZXJtaXNzaW9uAAUEFQFDYWxsIG1heSBub3QgYmUgbWFkZSBieSBwcm94eSBiZWNhdXNlIGl0IG1heSBlc2NhbGF0ZSBpdHMgcHJpdmlsZWdlcy4sVW5hbm5vdW5jZWQABgTQQW5ub3VuY2VtZW50LCBpZiBtYWRlIGF0IGFsbCwgd2FzIG1hZGUgdG9vIHJlY2VudGx5LixOb1NlbGZQcm94eQAHBGRDYW5ub3QgYWRkIHNlbGYgYXMgcHJveHkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikOAAAEDARZAV0BAC0ODDhwYWxsZXRfaW5kaWNlcxhwYWxsZXQURXJyb3IEBFQAARQsTm90QXNzaWduZWQAAASMVGhlIGluZGV4IHdhcyBub3QgYWxyZWFkeSBhc3NpZ25lZC4gTm90T3duZXIAAQSkVGhlIGluZGV4IGlzIGFzc2lnbmVkIHRvIGFub3RoZXIgYWNjb3VudC4USW5Vc2UAAgRwVGhlIGluZGV4IHdhcyBub3QgYXZhaWxhYmxlLixOb3RUcmFuc2ZlcgADBMhUaGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhY2NvdW50cyBhcmUgaWRlbnRpY2FsLiRQZXJtYW5lbnQABATQVGhlIGluZGV4IGlzIHBlcm1hbmVudCBhbmQgbWF5IG5vdCBiZSBmcmVlZC9jaGFuZ2VkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4xDgw0cGFsbGV0X2Fzc2V0cxR0eXBlczBBc3NldERldGFpbHMMHEJhbGFuY2UBWQEkQWNjb3VudElkAQQ4RGVwb3NpdEJhbGFuY2UBWQEAMAEUb3duZXIEASRBY2NvdW50SWQAARhpc3N1ZXIEASRBY2NvdW50SWQAARRhZG1pbgQBJEFjY291bnRJZAABHGZyZWV6ZXIEASRBY2NvdW50SWQAARhzdXBwbHlZAQEcQmFsYW5jZQABHGRlcG9zaXRZAQE4RGVwb3NpdEJhbGFuY2UAASxtaW5fYmFsYW5jZVkBARxCYWxhbmNlAAE0aXNfc3VmZmljaWVudF0BARBib29sAAEgYWNjb3VudHM4AQx1MzIAASxzdWZmaWNpZW50czgBDHUzMgABJGFwcHJvdmFsczgBDHUzMgABGHN0YXR1czUOASxBc3NldFN0YXR1cwAANQ4MNHBhbGxldF9hc3NldHMUdHlwZXMsQXNzZXRTdGF0dXMAAQwQTGl2ZQAAABhGcm96ZW4AAQAoRGVzdHJveWluZwACAAA5DgAABAg4BAA9Dgw0cGFsbGV0X2Fzc2V0cxR0eXBlczBBc3NldEFjY291bnQQHEJhbGFuY2UBWQE4RGVwb3NpdEJhbGFuY2UBWQEURXh0cmEBECRBY2NvdW50SWQBBAAQARxiYWxhbmNlWQEBHEJhbGFuY2UAARhzdGF0dXNBDgE0QWNjb3VudFN0YXR1cwABGHJlYXNvbkUOAahFeGlzdGVuY2VSZWFzb248RGVwb3NpdEJhbGFuY2UsIEFjY291bnRJZD4AARRleHRyYRABFEV4dHJhAABBDgw0cGFsbGV0X2Fzc2V0cxR0eXBlczRBY2NvdW50U3RhdHVzAAEMGExpcXVpZAAAABhGcm96ZW4AAQAcQmxvY2tlZAACAABFDgw0cGFsbGV0X2Fzc2V0cxR0eXBlczxFeGlzdGVuY2VSZWFzb24IHEJhbGFuY2UBWQEkQWNjb3VudElkAQQBFCBDb25zdW1lcgAAAChTdWZmaWNpZW50AAEALERlcG9zaXRIZWxkBABZAQEcQmFsYW5jZQACADxEZXBvc2l0UmVmdW5kZWQAAwAsRGVwb3NpdEZyb20IAAQBJEFjY291bnRJZAAAWQEBHEJhbGFuY2UABAAASQ4AAAQMOAQEAE0ODDRwYWxsZXRfYXNzZXRzFHR5cGVzIEFwcHJvdmFsCBxCYWxhbmNlAVkBOERlcG9zaXRCYWxhbmNlAVkBAAgBGGFtb3VudFkBARxCYWxhbmNlAAEcZGVwb3NpdFkBAThEZXBvc2l0QmFsYW5jZQAAUQ4MNHBhbGxldF9hc3NldHMUdHlwZXM0QXNzZXRNZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBWQE0Qm91bmRlZFN0cmluZwFVDgAUARxkZXBvc2l0WQEBOERlcG9zaXRCYWxhbmNlAAEQbmFtZVUOATRCb3VuZGVkU3RyaW5nAAEYc3ltYm9sVQ4BNEJvdW5kZWRTdHJpbmcAASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuXQEBEGJvb2wAAFUODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAWQ4MNHBhbGxldF9hc3NldHMYcGFsbGV0FEVycm9yCARUAARJAAFgKEJhbGFuY2VMb3cAAAQVAUFjY291bnQgYmFsYW5jZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdHJhbnNmZXIgYW1vdW50LiROb0FjY291bnQAAQSQVGhlIGFjY291bnQgdG8gYWx0ZXIgZG9lcyBub3QgZXhpc3QuME5vUGVybWlzc2lvbgACBOhUaGUgc2lnbmluZyBhY2NvdW50IGhhcyBubyBwZXJtaXNzaW9uIHRvIGRvIHRoZSBvcGVyYXRpb24uHFVua25vd24AAwR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uGEZyb3plbgAEBHRUaGUgb3JpZ2luIGFjY291bnQgaXMgZnJvemVuLhRJblVzZQAFBHhUaGUgYXNzZXQgSUQgaXMgYWxyZWFkeSB0YWtlbi4oQmFkV2l0bmVzcwAGBGxJbnZhbGlkIHdpdG5lc3MgZGF0YSBnaXZlbi44TWluQmFsYW5jZVplcm8ABwSMTWluaW11bSBiYWxhbmNlIHNob3VsZCBiZSBub24temVyby5MVW5hdmFpbGFibGVDb25zdW1lcgAIDFkBVW5hYmxlIHRvIGluY3JlbWVudCB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIGNvdW50ZXJzIG9uIHRoZSBhY2NvdW50LiBFaXRoZXIgbm8gcHJvdmlkZXJNAXJlZmVyZW5jZSBleGlzdHMgdG8gYWxsb3cgYSBub24temVybyBiYWxhbmNlIG9mIGEgbm9uLXNlbGYtc3VmZmljaWVudCBhc3NldCwgb3Igb25l8GZld2VyIHRoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBoYXMgYmVlbiByZWFjaGVkLixCYWRNZXRhZGF0YQAJBFxJbnZhbGlkIG1ldGFkYXRhIGdpdmVuLihVbmFwcHJvdmVkAAoExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4gV291bGREaWUACwQ1AVRoZSBzb3VyY2UgYWNjb3VudCB3b3VsZCBub3Qgc3Vydml2ZSB0aGUgdHJhbnNmZXIgYW5kIGl0IG5lZWRzIHRvIHN0YXkgYWxpdmUuNEFscmVhZHlFeGlzdHMADASEVGhlIGFzc2V0LWFjY291bnQgYWxyZWFkeSBleGlzdHMuJE5vRGVwb3NpdAANBNRUaGUgYXNzZXQtYWNjb3VudCBkb2Vzbid0IGhhdmUgYW4gYXNzb2NpYXRlZCBkZXBvc2l0LiRXb3VsZEJ1cm4ADgTEVGhlIG9wZXJhdGlvbiB3b3VsZCByZXN1bHQgaW4gZnVuZHMgYmVpbmcgYnVybmVkLiRMaXZlQXNzZXQADwhZAVRoZSBhc3NldCBpcyBhIGxpdmUgYXNzZXQgYW5kIGlzIGFjdGl2ZWx5IGJlaW5nIHVzZWQuIFVzdWFsbHkgZW1pdCBmb3Igb3BlcmF0aW9ucyBzdWNoHQFhcyBgc3RhcnRfZGVzdHJveWAgd2hpY2ggcmVxdWlyZSB0aGUgYXNzZXQgdG8gYmUgaW4gYSBkZXN0cm95aW5nIHN0YXRlLjBBc3NldE5vdExpdmUAEATIVGhlIGFzc2V0IGlzIG5vdCBsaXZlLCBhbmQgbGlrZWx5IGJlaW5nIGRlc3Ryb3llZC48SW5jb3JyZWN0U3RhdHVzABEEsFRoZSBhc3NldCBzdGF0dXMgaXMgbm90IHRoZSBleHBlY3RlZCBzdGF0dXMuJE5vdEZyb3plbgASBNhUaGUgYXNzZXQgc2hvdWxkIGJlIGZyb3plbiBiZWZvcmUgdGhlIGdpdmVuIG9wZXJhdGlvbi44Q2FsbGJhY2tGYWlsZWQAEwSEQ2FsbGJhY2sgYWN0aW9uIHJlc3VsdGVkIGluIGVycm9yKEJhZEFzc2V0SWQAFATIVGhlIGFzc2V0IElEIG11c3QgYmUgZXF1YWwgdG8gdGhlIFtgTmV4dEFzc2V0SWRgXS48Q29udGFpbnNGcmVlemVzABUETQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBmcmVlemVzLjRDb250YWluc0hvbGRzABYERQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBob2xkcy48VG9vTWFueVJlc2VydmVzABcEgFRyaWVkIHNldHRpbmcgdG9vIG1hbnkgcmVzZXJ2ZXMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ll0OBBhPcHRpb24EBFQBMQ4BCBBOb25lAAAAEFNvbWUEADEOAAABAABhDgQYT3B0aW9uBARUAVEOAQgQTm9uZQAAABBTb21lBABRDgAAAQAAZQ4MOHBhbGxldF91bmlxdWVzFHR5cGVzRENvbGxlY3Rpb25EZXRhaWxzCCRBY2NvdW50SWQBBDhEZXBvc2l0QmFsYW5jZQFZAQAoARRvd25lcgQBJEFjY291bnRJZAABGGlzc3VlcgQBJEFjY291bnRJZAABFGFkbWluBAEkQWNjb3VudElkAAEcZnJlZXplcgQBJEFjY291bnRJZAABNHRvdGFsX2RlcG9zaXRZAQE4RGVwb3NpdEJhbGFuY2UAATBmcmVlX2hvbGRpbmddAQEQYm9vbAABFGl0ZW1zOAEMdTMyAAE4aXRlbV9tZXRhZGF0YXM4AQx1MzIAAShhdHRyaWJ1dGVzOAEMdTMyAAEkaXNfZnJvemVuXQEBEGJvb2wAAGkOAAAEDAQ4OABtDgw4cGFsbGV0X3VuaXF1ZXMUdHlwZXMsSXRlbURldGFpbHMIJEFjY291bnRJZAEEOERlcG9zaXRCYWxhbmNlAVkBABABFG93bmVyBAEkQWNjb3VudElkAAEgYXBwcm92ZWSRAQFET3B0aW9uPEFjY291bnRJZD4AASRpc19mcm96ZW5dAQEQYm9vbAABHGRlcG9zaXRZAQE4RGVwb3NpdEJhbGFuY2UAAHEODDhwYWxsZXRfdW5pcXVlcxR0eXBlc0hDb2xsZWN0aW9uTWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAVkBLFN0cmluZ0xpbWl0AAAMARxkZXBvc2l0WQEBOERlcG9zaXRCYWxhbmNlAAEQZGF0YS0EAWxCb3VuZGVkVmVjPHU4LCBTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5dAQEQYm9vbAAAdQ4MOHBhbGxldF91bmlxdWVzFHR5cGVzMEl0ZW1NZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBWQEsU3RyaW5nTGltaXQAAAwBHGRlcG9zaXRZAQE4RGVwb3NpdEJhbGFuY2UAARBkYXRhLQQBbEJvdW5kZWRWZWM8dTgsIFN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbl0BARBib29sAAB5DgAABAw45MUDAH0OAAAECHxZAQCBDgAABAhZAZEBAIUODDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQURXJyb3IIBFQABEkAAVgwTm9QZXJtaXNzaW9uAAAE6FRoZSBzaWduaW5nIGFjY291bnQgaGFzIG5vIHBlcm1pc3Npb24gdG8gZG8gdGhlIG9wZXJhdGlvbi5EVW5rbm93bkNvbGxlY3Rpb24AAQR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi40QWxyZWFkeUV4aXN0cwACBLhUaGUgaXRlbSBJRCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgZm9yIGFuIGl0ZW0uKFdyb25nT3duZXIAAwToVGhlIG93bmVyIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihCYWRXaXRuZXNzAAQEbEludmFsaWQgd2l0bmVzcyBkYXRhIGdpdmVuLhRJblVzZQAFBHRUaGUgaXRlbSBJRCBpcyBhbHJlYWR5IHRha2VuLhhGcm96ZW4ABgSEVGhlIGl0ZW0gb3IgY29sbGVjdGlvbiBpcyBmcm96ZW4uNFdyb25nRGVsZWdhdGUABwT0VGhlIGRlbGVnYXRlIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihOb0RlbGVnYXRlAAgEeFRoZXJlIGlzIG5vIGRlbGVnYXRlIGFwcHJvdmVkLihVbmFwcHJvdmVkAAkExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4oVW5hY2NlcHRlZAAKBCUBVGhlIG5hbWVkIG93bmVyIGhhcyBub3Qgc2lnbmVkIG93bmVyc2hpcCBvZiB0aGUgY29sbGVjdGlvbiBpcyBhY2NlcHRhYmxlLhhMb2NrZWQACwRMVGhlIGl0ZW0gaXMgbG9ja2VkLkBNYXhTdXBwbHlSZWFjaGVkAAwEbEFsbCBpdGVtcyBoYXZlIGJlZW4gbWludGVkLkxNYXhTdXBwbHlBbHJlYWR5U2V0AA0EkFRoZSBtYXggc3VwcGx5IGhhcyBhbHJlYWR5IGJlZW4gc2V0LkRNYXhTdXBwbHlUb29TbWFsbAAOBEEBVGhlIHByb3ZpZGVkIG1heCBzdXBwbHkgaXMgbGVzcyB0byB0aGUgYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBhbHJlYWR5IGhhcy4sVW5rbm93bkl0ZW0ADwR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi4oTm90Rm9yU2FsZQAQBFRJdGVtIGlzIG5vdCBmb3Igc2FsZS4kQmlkVG9vTG93ABEEcFRoZSBwcm92aWRlZCBiaWQgaXMgdG9vIGxvdy4oTm9NZXRhZGF0YQASBFRObyBtZXRhZGF0YSBpcyBmb3VuZC40V3JvbmdNZXRhZGF0YQATBKBXcm9uZyBtZXRhZGF0YSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuREF0dHJpYnV0ZU5vdEZvdW5kABQEaEFuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuOFdyb25nQXR0cmlidXRlABUEpFdyb25nIGF0dHJpYnV0ZSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LokODCxwYWxsZXRfbmZ0cxR0eXBlc0RDb2xsZWN0aW9uRGV0YWlscwgkQWNjb3VudElkAQQ4RGVwb3NpdEJhbGFuY2UBWQEAGAEUb3duZXIEASRBY2NvdW50SWQAATRvd25lcl9kZXBvc2l0WQEBOERlcG9zaXRCYWxhbmNlAAEUaXRlbXM4AQx1MzIAAThpdGVtX21ldGFkYXRhczgBDHUzMgABMGl0ZW1fY29uZmlnczgBDHUzMgABKGF0dHJpYnV0ZXM4AQx1MzIAAI0ODCxwYWxsZXRfbmZ0cxR0eXBlcyBCaXRGbGFncwQEVAGRDgAEAAwBOENvbGxlY3Rpb25Sb2xlAACRDgwscGFsbGV0X25mdHMUdHlwZXM4Q29sbGVjdGlvblJvbGUAAQwYSXNzdWVyAAEAHEZyZWV6ZXIAAgAUQWRtaW4ABAAAlQ4MLHBhbGxldF9uZnRzFHR5cGVzLEl0ZW1EZXRhaWxzDCRBY2NvdW50SWQBBBxEZXBvc2l0AZkOJEFwcHJvdmFscwGdDgAMARRvd25lcgQBJEFjY291bnRJZAABJGFwcHJvdmFsc50OASRBcHByb3ZhbHMAARxkZXBvc2l0mQ4BHERlcG9zaXQAAJkODCxwYWxsZXRfbmZ0cxR0eXBlcyxJdGVtRGVwb3NpdAg4RGVwb3NpdEJhbGFuY2UBWQEkQWNjb3VudElkAQQACAEcYWNjb3VudAQBJEFjY291bnRJZAABGGFtb3VudFkBAThEZXBvc2l0QmFsYW5jZQAAnQ4MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9tYXA8Qm91bmRlZEJUcmVlTWFwDARLAQQEVgHkBFMAAAQAoQ4BOEJUcmVlTWFwPEssIFY+AAChDgQgQlRyZWVNYXAIBEsBBARWAeQABAClDgAAAKUOAAACqQ4AqQ4AAAQIBOQArQ4MLHBhbGxldF9uZnRzFHR5cGVzSENvbGxlY3Rpb25NZXRhZGF0YQgcRGVwb3NpdAFZASxTdHJpbmdMaW1pdAAACAEcZGVwb3NpdFkBARxEZXBvc2l0AAEQZGF0YUUBAWxCb3VuZGVkVmVjPHU4LCBTdHJpbmdMaW1pdD4AALEODCxwYWxsZXRfbmZ0cxR0eXBlczBJdGVtTWV0YWRhdGEIHERlcG9zaXQBtQ4sU3RyaW5nTGltaXQAAAgBHGRlcG9zaXS1DgEcRGVwb3NpdAABEGRhdGFFAQFsQm91bmRlZFZlYzx1OCwgU3RyaW5nTGltaXQ+AAC1DgwscGFsbGV0X25mdHMUdHlwZXNMSXRlbU1ldGFkYXRhRGVwb3NpdAg4RGVwb3NpdEJhbGFuY2UBWQEkQWNjb3VudElkAQQACAEcYWNjb3VudJEBAURPcHRpb248QWNjb3VudElkPgABGGFtb3VudFkBAThEZXBvc2l0QmFsYW5jZQAAuQ4AAAQQOORlBHwAvQ4AAAQIRQHBDgDBDgwscGFsbGV0X25mdHMUdHlwZXNAQXR0cmlidXRlRGVwb3NpdAg4RGVwb3NpdEJhbGFuY2UBWQEkQWNjb3VudElkAQQACAEcYWNjb3VudJEBAURPcHRpb248QWNjb3VudElkPgABGGFtb3VudFkBAThEZXBvc2l0QmFsYW5jZQAAxQ4MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAQQEUwAABADJDgEsQlRyZWVTZXQ8VD4AAMkOBCBCVHJlZVNldAQEVAEEAAQAYQEAAADNDgwscGFsbGV0X25mdHMUdHlwZXMsUGVuZGluZ1N3YXAQMENvbGxlY3Rpb25JZAE4GEl0ZW1JZAE4WEl0ZW1QcmljZVdpdGhEaXJlY3Rpb24BfQQgRGVhZGxpbmUBOAAQAUhkZXNpcmVkX2NvbGxlY3Rpb244ATBDb2xsZWN0aW9uSWQAATBkZXNpcmVkX2l0ZW3kAThPcHRpb248SXRlbUlkPgABFHByaWNleQQBeE9wdGlvbjxJdGVtUHJpY2VXaXRoRGlyZWN0aW9uPgABIGRlYWRsaW5lOAEgRGVhZGxpbmUAANEODCxwYWxsZXRfbmZ0cxR0eXBlcyBCaXRGbGFncwQEVAHVDgAEACgBNFBhbGxldEZlYXR1cmUAANUODCxwYWxsZXRfbmZ0cxR0eXBlczRQYWxsZXRGZWF0dXJlAAEQHFRyYWRpbmcAAQAoQXR0cmlidXRlcwACACRBcHByb3ZhbHMABAAUU3dhcHMACAAA2Q4MLHBhbGxldF9uZnRzGHBhbGxldBRFcnJvcggEVAAESQABtDBOb1Blcm1pc3Npb24AAAToVGhlIHNpZ25pbmcgYWNjb3VudCBoYXMgbm8gcGVybWlzc2lvbiB0byBkbyB0aGUgb3BlcmF0aW9uLkRVbmtub3duQ29sbGVjdGlvbgABBHRUaGUgZ2l2ZW4gaXRlbSBJRCBpcyB1bmtub3duLjRBbHJlYWR5RXhpc3RzAAIEuFRoZSBpdGVtIElEIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBmb3IgYW4gaXRlbS48QXBwcm92YWxFeHBpcmVkAAMEOQFUaGUgYXBwcm92YWwgaGFkIGEgZGVhZGxpbmUgdGhhdCBleHBpcmVkLCBzbyB0aGUgYXBwcm92YWwgaXNuJ3QgdmFsaWQgYW55bW9yZS4oV3JvbmdPd25lcgAEBOhUaGUgb3duZXIgdHVybmVkIG91dCB0byBiZSBkaWZmZXJlbnQgdG8gd2hhdCB3YXMgZXhwZWN0ZWQuKEJhZFdpdG5lc3MABQQVAVRoZSB3aXRuZXNzIGRhdGEgZ2l2ZW4gZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNoYWluLkRDb2xsZWN0aW9uSWRJblVzZQAGBHxDb2xsZWN0aW9uIElEIGlzIGFscmVhZHkgdGFrZW4uUEl0ZW1zTm9uVHJhbnNmZXJhYmxlAAcEyEl0ZW1zIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24gYXJlIG5vbi10cmFuc2ZlcmFibGUuLE5vdERlbGVnYXRlAAgEnFRoZSBwcm92aWRlZCBhY2NvdW50IGlzIG5vdCBhIGRlbGVnYXRlLjRXcm9uZ0RlbGVnYXRlAAkE9FRoZSBkZWxlZ2F0ZSB0dXJuZWQgb3V0IHRvIGJlIGRpZmZlcmVudCB0byB3aGF0IHdhcyBleHBlY3RlZC4oVW5hcHByb3ZlZAAKBMRObyBhcHByb3ZhbCBleGlzdHMgdGhhdCB3b3VsZCBhbGxvdyB0aGUgdHJhbnNmZXIuKFVuYWNjZXB0ZWQACwQZAVRoZSBuYW1lZCBvd25lciBoYXMgbm90IHNpZ25lZCBvd25lcnNoaXAgYWNjZXB0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4oSXRlbUxvY2tlZAAMBJhUaGUgaXRlbSBpcyBsb2NrZWQgKG5vbi10cmFuc2ZlcmFibGUpLlBMb2NrZWRJdGVtQXR0cmlidXRlcwANBHRJdGVtJ3MgYXR0cmlidXRlcyBhcmUgbG9ja2VkLmhMb2NrZWRDb2xsZWN0aW9uQXR0cmlidXRlcwAOBIxDb2xsZWN0aW9uJ3MgYXR0cmlidXRlcyBhcmUgbG9ja2VkLkhMb2NrZWRJdGVtTWV0YWRhdGEADwRoSXRlbSdzIG1ldGFkYXRhIGlzIGxvY2tlZC5gTG9ja2VkQ29sbGVjdGlvbk1ldGFkYXRhABAEgENvbGxlY3Rpb24ncyBtZXRhZGF0YSBpcyBsb2NrZWQuQE1heFN1cHBseVJlYWNoZWQAEQRsQWxsIGl0ZW1zIGhhdmUgYmVlbiBtaW50ZWQuPE1heFN1cHBseUxvY2tlZAASBLhUaGUgbWF4IHN1cHBseSBpcyBsb2NrZWQgYW5kIGNhbid0IGJlIGNoYW5nZWQuRE1heFN1cHBseVRvb1NtYWxsABMESQFUaGUgcHJvdmlkZWQgbWF4IHN1cHBseSBpcyBsZXNzIHRoYW4gdGhlIG51bWJlciBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gYWxyZWFkeSBoYXMuLFVua25vd25JdGVtABQEdFRoZSBnaXZlbiBpdGVtIElEIGlzIHVua25vd24uLFVua25vd25Td2FwABUETFN3YXAgZG9lc24ndCBleGlzdC5ATWV0YWRhdGFOb3RGb3VuZAAWBIxUaGUgZ2l2ZW4gaXRlbSBoYXMgbm8gbWV0YWRhdGEgc2V0LkRBdHRyaWJ1dGVOb3RGb3VuZAAXBJhUaGUgcHJvdmlkZWQgYXR0cmlidXRlIGNhbid0IGJlIGZvdW5kLihOb3RGb3JTYWxlABgEVEl0ZW0gaXMgbm90IGZvciBzYWxlLiRCaWRUb29Mb3cAGQRwVGhlIHByb3ZpZGVkIGJpZCBpcyB0b28gbG93LlBSZWFjaGVkQXBwcm92YWxMaW1pdAAaBKBUaGUgaXRlbSBoYXMgcmVhY2hlZCBpdHMgYXBwcm92YWwgbGltaXQuPERlYWRsaW5lRXhwaXJlZAAbBIRUaGUgZGVhZGxpbmUgaGFzIGFscmVhZHkgZXhwaXJlZC40V3JvbmdEdXJhdGlvbgAcBDEBVGhlIGR1cmF0aW9uIHByb3ZpZGVkIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE1heERlYWRsaW5lRHVyYXRpb25gLjhNZXRob2REaXNhYmxlZAAdBKhUaGUgbWV0aG9kIGlzIGRpc2FibGVkIGJ5IHN5c3RlbSBzZXR0aW5ncy4wV3JvbmdTZXR0aW5nAB4EiFRoZSBwcm92aWRlZCBzZXR0aW5nIGNhbid0IGJlIHNldC5YSW5jb25zaXN0ZW50SXRlbUNvbmZpZwAfBBUBSXRlbSdzIGNvbmZpZyBhbHJlYWR5IGV4aXN0cyBhbmQgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBwcm92aWRlZCBvbmUuIE5vQ29uZmlnACAEyENvbmZpZyBmb3IgYSBjb2xsZWN0aW9uIG9yIGFuIGl0ZW0gY2FuJ3QgYmUgZm91bmQuPFJvbGVzTm90Q2xlYXJlZAAhBHBTb21lIHJvbGVzIHdlcmUgbm90IGNsZWFyZWQuOE1pbnROb3RTdGFydGVkACIEZE1pbnQgaGFzIG5vdCBzdGFydGVkIHlldC4kTWludEVuZGVkACMEXE1pbnQgaGFzIGFscmVhZHkgZW5kZWQuOEFscmVhZHlDbGFpbWVkACQEwFRoZSBwcm92aWRlZCBJdGVtIHdhcyBhbHJlYWR5IHVzZWQgZm9yIGNsYWltaW5nLjRJbmNvcnJlY3REYXRhACUEfFRoZSBwcm92aWRlZCBkYXRhIGlzIGluY29ycmVjdC4sV3JvbmdPcmlnaW4AJgSsVGhlIGV4dHJpbnNpYyB3YXMgc2VudCBieSB0aGUgd3Jvbmcgb3JpZ2luLjhXcm9uZ1NpZ25hdHVyZQAnBJBUaGUgcHJvdmlkZWQgc2lnbmF0dXJlIGlzIGluY29ycmVjdC5ESW5jb3JyZWN0TWV0YWRhdGEAKASgVGhlIHByb3ZpZGVkIG1ldGFkYXRhIG1pZ2h0IGJlIHRvbyBsb25nLmRNYXhBdHRyaWJ1dGVzTGltaXRSZWFjaGVkACkEnENhbid0IHNldCBtb3JlIGF0dHJpYnV0ZXMgcGVyIG9uZSBjYWxsLjhXcm9uZ05hbWVzcGFjZQAqBNBUaGUgcHJvdmlkZWQgbmFtZXNwYWNlIGlzbid0IHN1cHBvcnRlZCBpbiB0aGlzIGNhbGwuSENvbGxlY3Rpb25Ob3RFbXB0eQArBIxDYW4ndCBkZWxldGUgbm9uLWVtcHR5IGNvbGxlY3Rpb25zLjxXaXRuZXNzUmVxdWlyZWQALASQVGhlIHdpdG5lc3MgZGF0YSBzaG91bGQgYmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lt0OAAAECAECBADhDgAABAwBAgQEAOUODDRwYWxsZXRfYXNzZXRzFHR5cGVzNEFzc2V0TWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAVkBNEJvdW5kZWRTdHJpbmcB6Q4AFAEcZGVwb3NpdFkBAThEZXBvc2l0QmFsYW5jZQABEG5hbWXpDgE0Qm91bmRlZFN0cmluZwABGHN5bWJvbOkOATRCb3VuZGVkU3RyaW5nAAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbl0BARBib29sAADpDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAO0ODDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFcnJvcggEVAAESQABYChCYWxhbmNlTG93AAAEFQFBY2NvdW50IGJhbGFuY2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRyYW5zZmVyIGFtb3VudC4kTm9BY2NvdW50AAEEkFRoZSBhY2NvdW50IHRvIGFsdGVyIGRvZXMgbm90IGV4aXN0LjBOb1Blcm1pc3Npb24AAgToVGhlIHNpZ25pbmcgYWNjb3VudCBoYXMgbm8gcGVybWlzc2lvbiB0byBkbyB0aGUgb3BlcmF0aW9uLhxVbmtub3duAAMEeFRoZSBnaXZlbiBhc3NldCBJRCBpcyB1bmtub3duLhhGcm96ZW4ABAR0VGhlIG9yaWdpbiBhY2NvdW50IGlzIGZyb3plbi4USW5Vc2UABQR4VGhlIGFzc2V0IElEIGlzIGFscmVhZHkgdGFrZW4uKEJhZFdpdG5lc3MABgRsSW52YWxpZCB3aXRuZXNzIGRhdGEgZ2l2ZW4uOE1pbkJhbGFuY2VaZXJvAAcEjE1pbmltdW0gYmFsYW5jZSBzaG91bGQgYmUgbm9uLXplcm8uTFVuYXZhaWxhYmxlQ29uc3VtZXIACAxZAVVuYWJsZSB0byBpbmNyZW1lbnQgdGhlIGNvbnN1bWVyIHJlZmVyZW5jZSBjb3VudGVycyBvbiB0aGUgYWNjb3VudC4gRWl0aGVyIG5vIHByb3ZpZGVyTQFyZWZlcmVuY2UgZXhpc3RzIHRvIGFsbG93IGEgbm9uLXplcm8gYmFsYW5jZSBvZiBhIG5vbi1zZWxmLXN1ZmZpY2llbnQgYXNzZXQsIG9yIG9uZfBmZXdlciB0aGVuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgaGFzIGJlZW4gcmVhY2hlZC4sQmFkTWV0YWRhdGEACQRcSW52YWxpZCBtZXRhZGF0YSBnaXZlbi4oVW5hcHByb3ZlZAAKBMRObyBhcHByb3ZhbCBleGlzdHMgdGhhdCB3b3VsZCBhbGxvdyB0aGUgdHJhbnNmZXIuIFdvdWxkRGllAAsENQFUaGUgc291cmNlIGFjY291bnQgd291bGQgbm90IHN1cnZpdmUgdGhlIHRyYW5zZmVyIGFuZCBpdCBuZWVkcyB0byBzdGF5IGFsaXZlLjRBbHJlYWR5RXhpc3RzAAwEhFRoZSBhc3NldC1hY2NvdW50IGFscmVhZHkgZXhpc3RzLiROb0RlcG9zaXQADQTUVGhlIGFzc2V0LWFjY291bnQgZG9lc24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZGVwb3NpdC4kV291bGRCdXJuAA4ExFRoZSBvcGVyYXRpb24gd291bGQgcmVzdWx0IGluIGZ1bmRzIGJlaW5nIGJ1cm5lZC4kTGl2ZUFzc2V0AA8IWQFUaGUgYXNzZXQgaXMgYSBsaXZlIGFzc2V0IGFuZCBpcyBhY3RpdmVseSBiZWluZyB1c2VkLiBVc3VhbGx5IGVtaXQgZm9yIG9wZXJhdGlvbnMgc3VjaB0BYXMgYHN0YXJ0X2Rlc3Ryb3lgIHdoaWNoIHJlcXVpcmUgdGhlIGFzc2V0IHRvIGJlIGluIGEgZGVzdHJveWluZyBzdGF0ZS4wQXNzZXROb3RMaXZlABAEyFRoZSBhc3NldCBpcyBub3QgbGl2ZSwgYW5kIGxpa2VseSBiZWluZyBkZXN0cm95ZWQuPEluY29ycmVjdFN0YXR1cwARBLBUaGUgYXNzZXQgc3RhdHVzIGlzIG5vdCB0aGUgZXhwZWN0ZWQgc3RhdHVzLiROb3RGcm96ZW4AEgTYVGhlIGFzc2V0IHNob3VsZCBiZSBmcm96ZW4gYmVmb3JlIHRoZSBnaXZlbiBvcGVyYXRpb24uOENhbGxiYWNrRmFpbGVkABMEhENhbGxiYWNrIGFjdGlvbiByZXN1bHRlZCBpbiBlcnJvcihCYWRBc3NldElkABQEyFRoZSBhc3NldCBJRCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBbYE5leHRBc3NldElkYF0uPENvbnRhaW5zRnJlZXplcwAVBE0BVGhlIGFzc2V0IGNhbm5vdCBiZSBkZXN0cm95ZWQgYmVjYXVzZSBzb21lIGFjY291bnRzIGZvciB0aGlzIGFzc2V0IGNvbnRhaW4gZnJlZXplcy40Q29udGFpbnNIb2xkcwAWBEUBVGhlIGFzc2V0IGNhbm5vdCBiZSBkZXN0cm95ZWQgYmVjYXVzZSBzb21lIGFjY291bnRzIGZvciB0aGlzIGFzc2V0IGNvbnRhaW4gaG9sZHMuPFRvb01hbnlSZXNlcnZlcwAXBIBUcmllZCBzZXR0aW5nIHRvbyBtYW55IHJlc2VydmVzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7xDgQYT3B0aW9uBARUAeUOAQgQTm9uZQAAABBTb21lBADlDgAAAQAA9Q4MNHBhbGxldF9hc3NldHMUdHlwZXM0QXNzZXRNZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBWQE0Qm91bmRlZFN0cmluZwH5DgAUARxkZXBvc2l0WQEBOERlcG9zaXRCYWxhbmNlAAEQbmFtZfkOATRCb3VuZGVkU3RyaW5nAAEYc3ltYm9s+Q4BNEJvdW5kZWRTdHJpbmcAASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuXQEBEGJvb2wAAPkODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAA/Q4MNHBhbGxldF9hc3NldHMYcGFsbGV0FEVycm9yCARUAARJAAFgKEJhbGFuY2VMb3cAAAQVAUFjY291bnQgYmFsYW5jZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdHJhbnNmZXIgYW1vdW50LiROb0FjY291bnQAAQSQVGhlIGFjY291bnQgdG8gYWx0ZXIgZG9lcyBub3QgZXhpc3QuME5vUGVybWlzc2lvbgACBOhUaGUgc2lnbmluZyBhY2NvdW50IGhhcyBubyBwZXJtaXNzaW9uIHRvIGRvIHRoZSBvcGVyYXRpb24uHFVua25vd24AAwR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uGEZyb3plbgAEBHRUaGUgb3JpZ2luIGFjY291bnQgaXMgZnJvemVuLhRJblVzZQAFBHhUaGUgYXNzZXQgSUQgaXMgYWxyZWFkeSB0YWtlbi4oQmFkV2l0bmVzcwAGBGxJbnZhbGlkIHdpdG5lc3MgZGF0YSBnaXZlbi44TWluQmFsYW5jZVplcm8ABwSMTWluaW11bSBiYWxhbmNlIHNob3VsZCBiZSBub24temVyby5MVW5hdmFpbGFibGVDb25zdW1lcgAIDFkBVW5hYmxlIHRvIGluY3JlbWVudCB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIGNvdW50ZXJzIG9uIHRoZSBhY2NvdW50LiBFaXRoZXIgbm8gcHJvdmlkZXJNAXJlZmVyZW5jZSBleGlzdHMgdG8gYWxsb3cgYSBub24temVybyBiYWxhbmNlIG9mIGEgbm9uLXNlbGYtc3VmZmljaWVudCBhc3NldCwgb3Igb25l8GZld2VyIHRoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBoYXMgYmVlbiByZWFjaGVkLixCYWRNZXRhZGF0YQAJBFxJbnZhbGlkIG1ldGFkYXRhIGdpdmVuLihVbmFwcHJvdmVkAAoExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4gV291bGREaWUACwQ1AVRoZSBzb3VyY2UgYWNjb3VudCB3b3VsZCBub3Qgc3Vydml2ZSB0aGUgdHJhbnNmZXIgYW5kIGl0IG5lZWRzIHRvIHN0YXkgYWxpdmUuNEFscmVhZHlFeGlzdHMADASEVGhlIGFzc2V0LWFjY291bnQgYWxyZWFkeSBleGlzdHMuJE5vRGVwb3NpdAANBNRUaGUgYXNzZXQtYWNjb3VudCBkb2Vzbid0IGhhdmUgYW4gYXNzb2NpYXRlZCBkZXBvc2l0LiRXb3VsZEJ1cm4ADgTEVGhlIG9wZXJhdGlvbiB3b3VsZCByZXN1bHQgaW4gZnVuZHMgYmVpbmcgYnVybmVkLiRMaXZlQXNzZXQADwhZAVRoZSBhc3NldCBpcyBhIGxpdmUgYXNzZXQgYW5kIGlzIGFjdGl2ZWx5IGJlaW5nIHVzZWQuIFVzdWFsbHkgZW1pdCBmb3Igb3BlcmF0aW9ucyBzdWNoHQFhcyBgc3RhcnRfZGVzdHJveWAgd2hpY2ggcmVxdWlyZSB0aGUgYXNzZXQgdG8gYmUgaW4gYSBkZXN0cm95aW5nIHN0YXRlLjBBc3NldE5vdExpdmUAEATIVGhlIGFzc2V0IGlzIG5vdCBsaXZlLCBhbmQgbGlrZWx5IGJlaW5nIGRlc3Ryb3llZC48SW5jb3JyZWN0U3RhdHVzABEEsFRoZSBhc3NldCBzdGF0dXMgaXMgbm90IHRoZSBleHBlY3RlZCBzdGF0dXMuJE5vdEZyb3plbgASBNhUaGUgYXNzZXQgc2hvdWxkIGJlIGZyb3plbiBiZWZvcmUgdGhlIGdpdmVuIG9wZXJhdGlvbi44Q2FsbGJhY2tGYWlsZWQAEwSEQ2FsbGJhY2sgYWN0aW9uIHJlc3VsdGVkIGluIGVycm9yKEJhZEFzc2V0SWQAFATIVGhlIGFzc2V0IElEIG11c3QgYmUgZXF1YWwgdG8gdGhlIFtgTmV4dEFzc2V0SWRgXS48Q29udGFpbnNGcmVlemVzABUETQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBmcmVlemVzLjRDb250YWluc0hvbGRzABYERQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBob2xkcy48VG9vTWFueVJlc2VydmVzABcEgFRyaWVkIHNldHRpbmcgdG9vIG1hbnkgcmVzZXJ2ZXMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgEPBBhPcHRpb24EBFQB9Q4BCBBOb25lAAAAEFNvbWUEAPUOAAABAAAFDwxccGFsbGV0X2Fzc2V0X2NvbnZlcnNpb24UdHlwZXMgUG9vbEluZm8ELFBvb2xBc3NldElkATgABAEgbHBfdG9rZW44ASxQb29sQXNzZXRJZAAACQ8MXHBhbGxldF9hc3NldF9jb252ZXJzaW9uGHBhbGxldBRFcnJvcgQEVAABXEBJbnZhbGlkQXNzZXRQYWlyAAAEuFByb3ZpZGVkIGFzc2V0IHBhaXIgaXMgbm90IHN1cHBvcnRlZCBmb3IgcG9vbC4oUG9vbEV4aXN0cwABBFBQb29sIGFscmVhZHkgZXhpc3RzLkhXcm9uZ0Rlc2lyZWRBbW91bnQAAgR0RGVzaXJlZCBhbW91bnQgY2FuJ3QgYmUgemVyby5gQW1vdW50T25lTGVzc1RoYW5NaW5pbWFsAAMISQFQcm92aWRlZCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdC9hc3NldCdzPG1pbmltYWwgYW1vdW50LmBBbW91bnRUd29MZXNzVGhhbk1pbmltYWwABAhJAVByb3ZpZGVkIGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBleGlzdGVudGlhbCBkZXBvc2l0L2Fzc2V0J3M8bWluaW1hbCBhbW91bnQuaFJlc2VydmVMZWZ0TGVzc1RoYW5NaW5pbWFsAAUITQFSZXNlcnZlIG5lZWRzIHRvIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQvYXNzZXQnczxtaW5pbWFsIGFtb3VudC5AQW1vdW50T3V0VG9vSGlnaAAGBMhEZXNpcmVkIGFtb3VudCBjYW4ndCBiZSBlcXVhbCB0byB0aGUgcG9vbCByZXNlcnZlLjBQb29sTm90Rm91bmQABwRcVGhlIHBvb2wgZG9lc24ndCBleGlzdC4gT3ZlcmZsb3cACARUQW4gb3ZlcmZsb3cgaGFwcGVuZWQugEFzc2V0T25lRGVwb3NpdERpZE5vdE1lZXRNaW5pbXVtAAkEKQFUaGUgbWluaW1hbCBhbW91bnQgcmVxdWlyZW1lbnQgZm9yIHRoZSBmaXJzdCB0b2tlbiBpbiB0aGUgcGFpciB3YXNuJ3QgbWV0LoBBc3NldFR3b0RlcG9zaXREaWROb3RNZWV0TWluaW11bQAKBC0BVGhlIG1pbmltYWwgYW1vdW50IHJlcXVpcmVtZW50IGZvciB0aGUgc2Vjb25kIHRva2VuIGluIHRoZSBwYWlyIHdhc24ndCBtZXQujEFzc2V0T25lV2l0aGRyYXdhbERpZE5vdE1lZXRNaW5pbXVtAAsEKQFUaGUgbWluaW1hbCBhbW91bnQgcmVxdWlyZW1lbnQgZm9yIHRoZSBmaXJzdCB0b2tlbiBpbiB0aGUgcGFpciB3YXNuJ3QgbWV0LoxBc3NldFR3b1dpdGhkcmF3YWxEaWROb3RNZWV0TWluaW11bQAMBC0BVGhlIG1pbmltYWwgYW1vdW50IHJlcXVpcmVtZW50IGZvciB0aGUgc2Vjb25kIHRva2VuIGluIHRoZSBwYWlyIHdhc24ndCBtZXQucE9wdGltYWxBbW91bnRMZXNzVGhhbkRlc2lyZWQADQS8T3B0aW1hbCBjYWxjdWxhdGVkIGFtb3VudCBpcyBsZXNzIHRoYW4gZGVzaXJlZC5sSW5zdWZmaWNpZW50TGlxdWlkaXR5TWludGVkAA4EeEluc3VmZmljaWVudCBsaXF1aWRpdHkgbWludGVkLjRaZXJvTGlxdWlkaXR5AA8EiFJlcXVlc3RlZCBsaXF1aWRpdHkgY2FuJ3QgYmUgemVyby4oWmVyb0Ftb3VudAAQBFRBbW91bnQgY2FuJ3QgYmUgemVyby6MUHJvdmlkZWRNaW5pbXVtTm90U3VmZmljaWVudEZvclN3YXAAEQTsQ2FsY3VsYXRlZCBhbW91bnQgb3V0IGlzIGxlc3MgdGhhbiBwcm92aWRlZCBtaW5pbXVtIGFtb3VudC6MUHJvdmlkZWRNYXhpbXVtTm90U3VmZmljaWVudEZvclN3YXAAEgTMUHJvdmlkZWQgbWF4aW11bSBhbW91bnQgaXMgbm90IHN1ZmZpY2llbnQgZm9yIHN3YXAuLEludmFsaWRQYXRoABME1FRoZSBwcm92aWRlZCBwYXRoIG11c3QgY29uc2lzdHMgb2YgMiBhc3NldHMgYXQgbGVhc3QuNE5vblVuaXF1ZVBhdGgAFATEVGhlIHByb3ZpZGVkIHBhdGggbXVzdCBjb25zaXN0cyBvZiB1bmlxdWUgYXNzZXRzLlBJbmNvcnJlY3RQb29sQXNzZXRJZAAVBOxJdCB3YXMgbm90IHBvc3NpYmxlIHRvIGdldCBvciBpbmNyZW1lbnQgdGhlIElkIG9mIHRoZSBwb29sLjBCZWxvd01pbmltdW0AFgTwVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgY2Fubm90IGV4aXN0IHdpdGggdGhlIHN3YXBwZWQgZnVuZHMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lg0PBBhSZXN1bHQIBFQBEQ8ERQEJDwEICE9rBAARDwAAAAAMRXJyBAAJDwAAAQAAEQ8AAAQIWQFZAQAVDwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATgEUwAABAApBAEYVmVjPFQ+AAAZDwg8cGFsbGV0X3RyZWFzdXJ5LFNwZW5kU3RhdHVzFCRBc3NldEtpbmQBtQQwQXNzZXRCYWxhbmNlAVkBLEJlbmVmaWNpYXJ5AbkELEJsb2NrTnVtYmVyATgkUGF5bWVudElkASgAGAEoYXNzZXRfa2luZLUEASRBc3NldEtpbmQAARhhbW91bnRZAQEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnm5BAEsQmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tOAEsQmxvY2tOdW1iZXIAASRleHBpcmVfYXQ4ASxCbG9ja051bWJlcgABGHN0YXR1cx0PAVxQYXltZW50U3RhdGU8UGF5bWVudElkPgAAHQ8IPHBhbGxldF90cmVhc3VyeTBQYXltZW50U3RhdGUECElkASgBDBxQZW5kaW5nAAAAJEF0dGVtcHRlZAQBCGlkKAEISWQAAQAYRmFpbGVkAAIAACEPDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0FEVycm9yCARUAARJAAEsMEludmFsaWRJbmRleAAABKxObyBwcm9wb3NhbCwgYm91bnR5IG9yIHNwZW5kIGF0IHRoYXQgaW5kZXguQFRvb01hbnlBcHByb3ZhbHMAAQSAVG9vIG1hbnkgYXBwcm92YWxzIGluIHRoZSBxdWV1ZS5YSW5zdWZmaWNpZW50UGVybWlzc2lvbgACCEUBVGhlIHNwZW5kIG9yaWdpbiBpcyB2YWxpZCBidXQgdGhlIGFtb3VudCBpdCBpcyBhbGxvd2VkIHRvIHNwZW5kIGlzIGxvd2VyIHRoYW4gdGhlTGFtb3VudCB0byBiZSBzcGVudC5MUHJvcG9zYWxOb3RBcHByb3ZlZAADBHxQcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuWEZhaWxlZFRvQ29udmVydEJhbGFuY2UABARRAVRoZSBiYWxhbmNlIG9mIHRoZSBhc3NldCBraW5kIGlzIG5vdCBjb252ZXJ0aWJsZSB0byB0aGUgYmFsYW5jZSBvZiB0aGUgbmF0aXZlIGFzc2V0LjBTcGVuZEV4cGlyZWQABQSwVGhlIHNwZW5kIGhhcyBleHBpcmVkIGFuZCBjYW5ub3QgYmUgY2xhaW1lZC4sRWFybHlQYXlvdXQABgSkVGhlIHNwZW5kIGlzIG5vdCB5ZXQgZWxpZ2libGUgZm9yIHBheW91dC5AQWxyZWFkeUF0dGVtcHRlZAAHBJxUaGUgcGF5bWVudCBoYXMgYWxyZWFkeSBiZWVuIGF0dGVtcHRlZC4sUGF5b3V0RXJyb3IACATMVGhlcmUgd2FzIHNvbWUgaXNzdWUgd2l0aCB0aGUgbWVjaGFuaXNtIG9mIHBheW1lbnQuME5vdEF0dGVtcHRlZAAJBKRUaGUgcGF5b3V0IHdhcyBub3QgeWV0IGF0dGVtcHRlZC9jbGFpbWVkLjBJbmNvbmNsdXNpdmUACgTEVGhlIHBheW1lbnQgaGFzIG5laXRoZXIgZmFpbGVkIG5vciBzdWNjZWVkZWQgeWV0LgR4RXJyb3IgZm9yIHRoZSB0cmVhc3VyeSBwYWxsZXQuJQ8AAAQIBNUDACkPDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRhWb3RpbmcUHEJhbGFuY2UBWQEkQWNjb3VudElkAQQsQmxvY2tOdW1iZXIBOCRQb2xsSW5kZXgBOCBNYXhWb3RlcwABCBxDYXN0aW5nBAAtDwHIQ2FzdGluZzxCYWxhbmNlLCBCbG9ja051bWJlciwgUG9sbEluZGV4LCBNYXhWb3Rlcz4AAAAoRGVsZWdhdGluZwQAxQgBrERlbGVnYXRpbmc8QmFsYW5jZSwgQWNjb3VudElkLCBCbG9ja051bWJlcj4AAQAALQ8MYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlHENhc3RpbmcQHEJhbGFuY2UBWQEsQmxvY2tOdW1iZXIBOCRQb2xsSW5kZXgBOCBNYXhWb3RlcwAADAEUdm90ZXMxDwHcQm91bmRlZFZlYzwoUG9sbEluZGV4LCBBY2NvdW50Vm90ZTxCYWxhbmNlPiksIE1heFZvdGVzPgABLGRlbGVnYXRpb25zvQgBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3LBCAF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAAMQ8MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG1CARTAAAEALkIARhWZWM8VD4AADUPDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBzQgEUwAABADJCAEYVmVjPFQ+AAA5DwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nGHBhbGxldBRFcnJvcggEVAAESQABMChOb3RPbmdvaW5nAAAEUFBvbGwgaXMgbm90IG9uZ29pbmcuIE5vdFZvdGVyAAEErFRoZSBnaXZlbiBhY2NvdW50IGRpZCBub3Qgdm90ZSBvbiB0aGUgcG9sbC4wTm9QZXJtaXNzaW9uAAIEyFRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24uPE5vUGVybWlzc2lvbllldAADBFkBVGhlIGFjdG9yIGhhcyBubyBwZXJtaXNzaW9uIHRvIGNvbmR1Y3QgdGhlIGFjdGlvbiByaWdodCBub3cgYnV0IHdpbGwgZG8gaW4gdGhlIGZ1dHVyZS5EQWxyZWFkeURlbGVnYXRpbmcABASIVGhlIGFjY291bnQgaXMgYWxyZWFkeSBkZWxlZ2F0aW5nLjRBbHJlYWR5Vm90aW5nAAUIVQFUaGUgYWNjb3VudCBjdXJyZW50bHkgaGFzIHZvdGVzIGF0dGFjaGVkIHRvIGl0IGFuZCB0aGUgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIHVudGlsoHRoZXNlIGFyZSByZW1vdmVkIHRocm91Z2ggYHJlbW92ZV92b3RlYC5ESW5zdWZmaWNpZW50RnVuZHMABgT8VG9vIGhpZ2ggYSBiYWxhbmNlIHdhcyBwcm92aWRlZCB0aGF0IHRoZSBhY2NvdW50IGNhbm5vdCBhZmZvcmQuNE5vdERlbGVnYXRpbmcABwSgVGhlIGFjY291bnQgaXMgbm90IGN1cnJlbnRseSBkZWxlZ2F0aW5nLiBOb25zZW5zZQAIBJREZWxlZ2F0aW9uIHRvIG9uZXNlbGYgbWFrZXMgbm8gc2Vuc2UuPE1heFZvdGVzUmVhY2hlZAAJBIBNYXhpbXVtIG51bWJlciBvZiB2b3RlcyByZWFjaGVkLixDbGFzc05lZWRlZAAKBDkBVGhlIGNsYXNzIG11c3QgYmUgc3VwcGxpZWQgc2luY2UgaXQgaXMgbm90IGVhc2lseSBkZXRlcm1pbmFibGUgZnJvbSB0aGUgc3RhdGUuIEJhZENsYXNzAAsEhFRoZSBjbGFzcyBJRCBzdXBwbGllZCBpcyBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC49DwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczhSZWZlcmVuZHVtSW5mbyAcVHJhY2tJZAHVAzRSdW50aW1lT3JpZ2luAdkDGE1vbWVudAE4EENhbGwB1QQcQmFsYW5jZQFZARRUYWxseQFBCCRBY2NvdW50SWQBBDxTY2hlZHVsZUFkZHJlc3MB0AEYHE9uZ29pbmcEAEEPAY0BUmVmZXJlbmR1bVN0YXR1czxUcmFja0lkLCBSdW50aW1lT3JpZ2luLCBNb21lbnQsIENhbGwsIEJhbGFuY2UsIFRhbGx5LApBY2NvdW50SWQsIFNjaGVkdWxlQWRkcmVzcyw+AAAAIEFwcHJvdmVkDAA4ARhNb21lbnQAAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAATQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEAIFJlamVjdGVkDAA4ARhNb21lbnQAAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAATQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAIAJENhbmNlbGxlZAwAOAEYTW9tZW50AABNCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgADACBUaW1lZE91dAwAOAEYTW9tZW50AABNCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAEABhLaWxsZWQEADgBGE1vbWVudAAFAABBDwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlc0BSZWZlcmVuZHVtU3RhdHVzIBxUcmFja0lkAdUDNFJ1bnRpbWVPcmlnaW4B2QMYTW9tZW50ATgQQ2FsbAHVBBxCYWxhbmNlAVkBFFRhbGx5AUEIJEFjY291bnRJZAEEPFNjaGVkdWxlQWRkcmVzcwHQACwBFHRyYWNr1QMBHFRyYWNrSWQAARhvcmlnaW7ZAwE0UnVudGltZU9yaWdpbgABIHByb3Bvc2Fs1QQBEENhbGwAASRlbmFjdG1lbnTdBAFQRGlzcGF0Y2hUaW1lPE1vbWVudD4AASRzdWJtaXR0ZWQ4ARhNb21lbnQAAUhzdWJtaXNzaW9uX2RlcG9zaXRJCAFsRGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+AAFAZGVjaXNpb25fZGVwb3NpdE0IAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgABIGRlY2lkaW5nUQgBeE9wdGlvbjxEZWNpZGluZ1N0YXR1czxNb21lbnQ+PgABFHRhbGx5QQgBFFRhbGx5AAEgaW5fcXVldWVdAQEQYm9vbAABFGFsYXJtWQgBhE9wdGlvbjwoTW9tZW50LCBTY2hlZHVsZUFkZHJlc3MpPgAARQ8MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHFBwRTAAAEAMEHARhWZWM8VD4AAEkPAAACTQ8ATQ8AAAQI1QNRDwBRDwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczBUcmFja0RldGFpbHMMHEJhbGFuY2UBWQEYTW9tZW50ATgQTmFtZQG1CwAkARBuYW1ltQsBEE5hbWUAATBtYXhfZGVjaWRpbmc4AQx1MzIAAUBkZWNpc2lvbl9kZXBvc2l0WQEBHEJhbGFuY2UAAThwcmVwYXJlX3BlcmlvZDgBGE1vbWVudAABPGRlY2lzaW9uX3BlcmlvZDgBGE1vbWVudAABOGNvbmZpcm1fcGVyaW9kOAEYTW9tZW50AAFQbWluX2VuYWN0bWVudF9wZXJpb2Q4ARhNb21lbnQAATBtaW5fYXBwcm92YWxVDwEUQ3VydmUAASxtaW5fc3VwcG9ydFUPARRDdXJ2ZQAAVQ8MQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMUQ3VydmUAAQxATGluZWFyRGVjcmVhc2luZwwBGGxlbmd0aC0FARxQZXJiaWxsAAEUZmxvb3ItBQEcUGVyYmlsbAABEGNlaWwtBQEcUGVyYmlsbAAAAERTdGVwcGVkRGVjcmVhc2luZxABFGJlZ2luLQUBHFBlcmJpbGwAAQxlbmQtBQEcUGVyYmlsbAABEHN0ZXAtBQEcUGVyYmlsbAABGHBlcmlvZC0FARxQZXJiaWxsAAEAKFJlY2lwcm9jYWwMARhmYWN0b3JZDwEgRml4ZWRJNjQAASB4X29mZnNldFkPASBGaXhlZEk2NAABIHlfb2Zmc2V0WQ8BIEZpeGVkSTY0AAIAAFkPDDRzcF9hcml0aG1ldGljLGZpeGVkX3BvaW50IEZpeGVkSTY0AAAEAF0PAQxpNjQAAF0PAAAFDABhDwxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXJyb3IIBFQABEkAATgoTm90T25nb2luZwAABGhSZWZlcmVuZHVtIGlzIG5vdCBvbmdvaW5nLihIYXNEZXBvc2l0AAEEuFJlZmVyZW5kdW0ncyBkZWNpc2lvbiBkZXBvc2l0IGlzIGFscmVhZHkgcGFpZC4gQmFkVHJhY2sAAgScVGhlIHRyYWNrIGlkZW50aWZpZXIgZ2l2ZW4gd2FzIGludmFsaWQuEEZ1bGwAAwQxAVRoZXJlIGFyZSBhbHJlYWR5IGEgZnVsbCBjb21wbGVtZW50IG9mIHJlZmVyZW5kYSBpbiBwcm9ncmVzcyBmb3IgdGhpcyB0cmFjay4oUXVldWVFbXB0eQAEBIBUaGUgcXVldWUgb2YgdGhlIHRyYWNrIGlzIGVtcHR5LjRCYWRSZWZlcmVuZHVtAAUE5FRoZSByZWZlcmVuZHVtIGluZGV4IHByb3ZpZGVkIGlzIGludmFsaWQgaW4gdGhpcyBjb250ZXh0LixOb3RoaW5nVG9EbwAGBKxUaGVyZSB3YXMgbm90aGluZyB0byBkbyBpbiB0aGUgYWR2YW5jZW1lbnQuHE5vVHJhY2sABwSgTm8gdHJhY2sgZXhpc3RzIGZvciB0aGUgcHJvcG9zYWwgb3JpZ2luLihVbmZpbmlzaGVkAAgEAQFBbnkgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgdW50aWwgYWZ0ZXIgdGhlIGRlY2lzaW9uIGlzIG92ZXIuME5vUGVybWlzc2lvbgAJBKhUaGUgZGVwb3NpdCByZWZ1bmRlciBpcyBub3QgdGhlIGRlcG9zaXRvci4kTm9EZXBvc2l0AAoEzFRoZSBkZXBvc2l0IGNhbm5vdCBiZSByZWZ1bmRlZCBzaW5jZSBub25lIHdhcyBtYWRlLiRCYWRTdGF0dXMACwTQVGhlIHJlZmVyZW5kdW0gc3RhdHVzIGlzIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uLkBQcmVpbWFnZU5vdEV4aXN0AAwEcFRoZSBwcmVpbWFnZSBkb2VzIG5vdCBleGlzdC6EUHJlaW1hZ2VTdG9yZWRXaXRoRGlmZmVyZW50TGVuZ3RoAA0EFQFUaGUgcHJlaW1hZ2UgaXMgc3RvcmVkIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIG9uZSBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuZQ8MQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEVycm9yBARUAAEUTFVuYXZhaWxhYmxlUHJlSW1hZ2UAAATIVGhlIHByZWltYWdlIG9mIHRoZSBjYWxsIGhhc2ggY291bGQgbm90IGJlIGxvYWRlZC48VW5kZWNvZGFibGVDYWxsAAEEeFRoZSBjYWxsIGNvdWxkIG5vdCBiZSBkZWNvZGVkLmBJbnZhbGlkQ2FsbFdlaWdodFdpdG5lc3MAAgTsVGhlIHdlaWdodCBvZiB0aGUgZGVjb2RlZCBjYWxsIHdhcyBoaWdoZXIgdGhhbiB0aGUgd2l0bmVzcy5QQ2FsbElzTm90V2hpdGVsaXN0ZWQAAwR0VGhlIGNhbGwgd2FzIG5vdCB3aGl0ZWxpc3RlZC5YQ2FsbEFscmVhZHlXaGl0ZWxpc3RlZAAEBKBUaGUgY2FsbCB3YXMgYWxyZWFkeSB3aGl0ZWxpc3RlZDsgTm8tT3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmkPCDxwYWxsZXRfYm91bnRpZXMYQm91bnR5DCRBY2NvdW50SWQBBBxCYWxhbmNlAVkBLEJsb2NrTnVtYmVyATgAGAEgcHJvcG9zZXIEASRBY2NvdW50SWQAARR2YWx1ZVkBARxCYWxhbmNlAAEMZmVlWQEBHEJhbGFuY2UAATxjdXJhdG9yX2RlcG9zaXRZAQEcQmFsYW5jZQABEGJvbmRZAQEcQmFsYW5jZQABGHN0YXR1c+UIAZBCb3VudHlTdGF0dXM8QWNjb3VudElkLCBCbG9ja051bWJlcj4AAG0PDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAcQ8MPHBhbGxldF9ib3VudGllcxhwYWxsZXQURXJyb3IIBFQABEkAATBwSW5zdWZmaWNpZW50UHJvcG9zZXJzQmFsYW5jZQAABHhQcm9wb3NlcidzIGJhbGFuY2UgaXMgdG9vIGxvdy4wSW52YWxpZEluZGV4AAEEkE5vIHByb3Bvc2FsIG9yIGJvdW50eSBhdCB0aGF0IGluZGV4LjBSZWFzb25Ub29CaWcAAgSEVGhlIHJlYXNvbiBnaXZlbiBpcyBqdXN0IHRvbyBiaWcuQFVuZXhwZWN0ZWRTdGF0dXMAAwSAVGhlIGJvdW50eSBzdGF0dXMgaXMgdW5leHBlY3RlZC44UmVxdWlyZUN1cmF0b3IABARcUmVxdWlyZSBib3VudHkgY3VyYXRvci4wSW52YWxpZFZhbHVlAAUEVEludmFsaWQgYm91bnR5IHZhbHVlLihJbnZhbGlkRmVlAAYETEludmFsaWQgYm91bnR5IGZlZS40UGVuZGluZ1BheW91dAAHCGxBIGJvdW50eSBwYXlvdXQgaXMgcGVuZGluZy74VG8gY2FuY2VsIHRoZSBib3VudHksIHlvdSBtdXN0IHVuYXNzaWduIGFuZCBzbGFzaCB0aGUgY3VyYXRvci4kUHJlbWF0dXJlAAgERQFUaGUgYm91bnRpZXMgY2Fubm90IGJlIGNsYWltZWQvY2xvc2VkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgY291bnRkb3duIHBlcmlvZC5QSGFzQWN0aXZlQ2hpbGRCb3VudHkACQQFAVRoZSBib3VudHkgY2Fubm90IGJlIGNsb3NlZCBiZWNhdXNlIGl0IGhhcyBhY3RpdmUgY2hpbGQgYm91bnRpZXMuNFRvb01hbnlRdWV1ZWQACgSYVG9vIG1hbnkgYXBwcm92YWxzIGFyZSBhbHJlYWR5IHF1ZXVlZC4sTm90UHJvcG9zZXIACwScVXNlciBpcyBub3QgdGhlIHByb3Bvc2VyIG9mIHRoZSBib3VudHkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnUPCFRwYWxsZXRfY2hpbGRfYm91bnRpZXMsQ2hpbGRCb3VudHkMJEFjY291bnRJZAEEHEJhbGFuY2UBWQEsQmxvY2tOdW1iZXIBOAAUATRwYXJlbnRfYm91bnR5OAEsQm91bnR5SW5kZXgAARR2YWx1ZVkBARxCYWxhbmNlAAEMZmVlWQEBHEJhbGFuY2UAATxjdXJhdG9yX2RlcG9zaXRZAQEcQmFsYW5jZQABGHN0YXR1c3kPAaRDaGlsZEJvdW50eVN0YXR1czxBY2NvdW50SWQsIEJsb2NrTnVtYmVyPgAAeQ8IVHBhbGxldF9jaGlsZF9ib3VudGllc0RDaGlsZEJvdW50eVN0YXR1cwgkQWNjb3VudElkAQQsQmxvY2tOdW1iZXIBOAEQFEFkZGVkAAAAPEN1cmF0b3JQcm9wb3NlZAQBHGN1cmF0b3IEASRBY2NvdW50SWQAAQAYQWN0aXZlBAEcY3VyYXRvcgQBJEFjY291bnRJZAACADRQZW5kaW5nUGF5b3V0DAEcY3VyYXRvcgQBJEFjY291bnRJZAABLGJlbmVmaWNpYXJ5BAEkQWNjb3VudElkAAEkdW5sb2NrX2F0OAEsQmxvY2tOdW1iZXIAAwAAfQ8MVHBhbGxldF9jaGlsZF9ib3VudGllcxhwYWxsZXQURXJyb3IEBFQAAQxUUGFyZW50Qm91bnR5Tm90QWN0aXZlAAAEpFRoZSBwYXJlbnQgYm91bnR5IGlzIG5vdCBpbiBhY3RpdmUgc3RhdGUuZEluc3VmZmljaWVudEJvdW50eUJhbGFuY2UAAQTkVGhlIGJvdW50eSBiYWxhbmNlIGlzIG5vdCBlbm91Z2ggdG8gYWRkIG5ldyBjaGlsZC1ib3VudHkuUFRvb01hbnlDaGlsZEJvdW50aWVzAAIEDQFOdW1iZXIgb2YgY2hpbGQgYm91bnRpZXMgZXhjZWVkcyBsaW1pdCBgTWF4QWN0aXZlQ2hpbGRCb3VudHlDb3VudGAuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoEPDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQURXJyb3IEBFQAAQxAVW5rbm93bkFzc2V0S2luZAAABHhUaGUgZ2l2ZW4gYXNzZXQgSUQgaXMgdW5rbm93bi40QWxyZWFkeUV4aXN0cwABBFEBVGhlIGdpdmVuIGFzc2V0IElEIGFscmVhZHkgaGFzIGFuIGFzc2lnbmVkIGNvbnZlcnNpb24gcmF0ZSBhbmQgY2Fubm90IGJlIHJlLWNyZWF0ZWQuIE92ZXJmbG93AAIEzE92ZXJmbG93IG9jdXJyZWQgd2hlbiBjYWxjdWxhdGluZyB0aGUgaW52ZXJzZSByYXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6FDwhscGFsbGV0X211bHRpX2Fzc2V0X2JvdW50aWVzGEJvdW50eRgkQWNjb3VudElkAQQcQmFsYW5jZQFZASRBc3NldEtpbmQBtQQQSGFzaAFAJFBheW1lbnRJZAEoLEJlbmVmaWNpYXJ5AbkEABABKGFzc2V0X2tpbmS1BAEkQXNzZXRLaW5kAAEUdmFsdWVZAQEcQmFsYW5jZQABIG1ldGFkYXRhQAEQSGFzaAABGHN0YXR1c4kPAbxCb3VudHlTdGF0dXM8QWNjb3VudElkLCBQYXltZW50SWQsIEJlbmVmaWNpYXJ5PgAAiQ8IbHBhbGxldF9tdWx0aV9hc3NldF9ib3VudGllczBCb3VudHlTdGF0dXMMJEFjY291bnRJZAEEJFBheW1lbnRJZAEoLEJlbmVmaWNpYXJ5AbkEARhARnVuZGluZ0F0dGVtcHRlZAgBHGN1cmF0b3IEASRBY2NvdW50SWQAAThwYXltZW50X3N0YXR1c40PAVxQYXltZW50U3RhdGU8UGF5bWVudElkPgAAABhGdW5kZWQEARxjdXJhdG9yBAEkQWNjb3VudElkAAEAREN1cmF0b3JVbmFzc2lnbmVkAAIAGEFjdGl2ZQQBHGN1cmF0b3IEASRBY2NvdW50SWQAAwA8UmVmdW5kQXR0ZW1wdGVkCAEcY3VyYXRvcpEBAURPcHRpb248QWNjb3VudElkPgABOHBheW1lbnRfc3RhdHVzjQ8BXFBheW1lbnRTdGF0ZTxQYXltZW50SWQ+AAQAPFBheW91dEF0dGVtcHRlZAwBHGN1cmF0b3IEASRBY2NvdW50SWQAASxiZW5lZmljaWFyebkEASxCZW5lZmljaWFyeQABOHBheW1lbnRfc3RhdHVzjQ8BXFBheW1lbnRTdGF0ZTxQYXltZW50SWQ+AAUAAI0PCGxwYWxsZXRfbXVsdGlfYXNzZXRfYm91bnRpZXMwUGF5bWVudFN0YXRlBAhJZAEoARAcUGVuZGluZwAAACRBdHRlbXB0ZWQEAQhpZCgBCElkAAEAGEZhaWxlZAACACRTdWNjZWVkZWQAAwAAkQ8IbHBhbGxldF9tdWx0aV9hc3NldF9ib3VudGllcyxDaGlsZEJvdW50eRQkQWNjb3VudElkAQQcQmFsYW5jZQFZARBIYXNoAUAkUGF5bWVudElkASgsQmVuZWZpY2lhcnkBuQQAEAE0cGFyZW50X2JvdW50eTgBLEJvdW50eUluZGV4AAEUdmFsdWVZAQEcQmFsYW5jZQABIG1ldGFkYXRhQAEQSGFzaAABGHN0YXR1c4kPAbxCb3VudHlTdGF0dXM8QWNjb3VudElkLCBQYXltZW50SWQsIEJlbmVmaWNpYXJ5PgAAlQ8AAAQIOOQAmQ8UNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhQEQQAERgAEUgAERAAIRnAAAAQAWQEBKEY6OkJhbGFuY2UAAJ0PDGxwYWxsZXRfbXVsdGlfYXNzZXRfYm91bnRpZXMYcGFsbGV0FEVycm9yCARUAARJAAFIMEludmFsaWRJbmRleAAABHxObyBjaGlsZC0vYm91bnR5IGF0IHRoYXQgaW5kZXguMFJlYXNvblRvb0JpZwABBIRUaGUgcmVhc29uIGdpdmVuIGlzIGp1c3QgdG9vIGJpZy4wSW52YWxpZFZhbHVlAAIEcEludmFsaWQgY2hpbGQtL2JvdW50eSB2YWx1ZS5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQADCF0BVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQgZm9yhGFzc2VydGluZyB0aGUgb3JpZ2luIHBlcm1pc3Npb25zLkBVbmV4cGVjdGVkU3RhdHVzAAQEnFRoZSBjaGlsZC0vYm91bnR5IHN0YXR1cyBpcyB1bmV4cGVjdGVkLjhSZXF1aXJlQ3VyYXRvcgAFBHhSZXF1aXJlIGNoaWxkLS9ib3VudHkgY3VyYXRvci5YSW5zdWZmaWNpZW50UGVybWlzc2lvbgAGCEUBVGhlIHNwZW5kIG9yaWdpbiBpcyB2YWxpZCBidXQgdGhlIGFtb3VudCBpdCBpcyBhbGxvd2VkIHRvIHNwZW5kIGlzIGxvd2VyIHRoYW4gdGhlRHJlcXVlc3RlZCBhbW91bnQuMEZ1bmRpbmdFcnJvcgAHBLxUaGVyZSB3YXMgaXNzdWUgd2l0aCBmdW5kaW5nIHRoZSBjaGlsZC0vYm91bnR5LixSZWZ1bmRFcnJvcgAIBMRUaGVyZSB3YXMgaXNzdWUgd2l0aCByZWZ1bmRpbmcgdGhlIGNoaWxkLS9ib3VudHkuLFBheW91dEVycm9yAAkATEZ1bmRpbmdJbmNvbmNsdXNpdmUACgSwQ2hpbGQtL2JvdW50eSBmdW5kaW5nIGhhcyBub3QgY29uY2x1ZGVkIHlldC5IUmVmdW5kSW5jb25jbHVzaXZlAAsErENoaWxkLS9ib3VudHkgcmVmdW5kIGhhcyBub3QgY29uY2x1ZGVkIHlldC5IUGF5b3V0SW5jb25jbHVzaXZlAAwErENoaWxkLS9ib3VudHkgcGF5b3V0IGhhcyBub3QgY29uY2x1ZGVkIHlldC5URmFpbGVkVG9Db252ZXJ0U291cmNlAA0IVQFUaGUgY2hpbGQtL2JvdW50eSBvciBmdW5kaW5nIHNvdXJjZSBhY2NvdW50IGNvdWxkIG5vdCBiZSBkZXJpdmVkIGZyb20gdGhlIGluZGV4ZXMgYW5kLGFzc2V0IGtpbmQuUEhhc0FjdGl2ZUNoaWxkQm91bnR5AA4EIQFUaGUgcGFyZW50IGJvdW50eSBjYW5ub3QgYmUgY2xvc2VkIGJlY2F1c2UgaXQgaGFzIGFjdGl2ZSBjaGlsZCBib3VudGllcy5QVG9vTWFueUNoaWxkQm91bnRpZXMADwQNAU51bWJlciBvZiBjaGlsZCBib3VudGllcyBleGNlZWRzIGxpbWl0IGBNYXhBY3RpdmVDaGlsZEJvdW50eUNvdW50YC5cSW5zdWZmaWNpZW50Qm91bnR5VmFsdWUAEAT4VGhlIHBhcmVudCBib3VudHkgdmFsdWUgaXMgbm90IGVub3VnaCB0byBhZGQgbmV3IGNoaWxkLWJvdW50eS5AUHJlaW1hZ2VOb3RFeGlzdAARBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqEPCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhSZXdhcmRQb29sBARUAAAUAXBsYXN0X3JlY29yZGVkX3Jld2FyZF9jb3VudGVy9QQBQFQ6OlJld2FyZENvdW50ZXIAAWxsYXN0X3JlY29yZGVkX3RvdGFsX3BheW91dHNZAQEwQmFsYW5jZU9mPFQ+AAFUdG90YWxfcmV3YXJkc19jbGFpbWVkWQEBMEJhbGFuY2VPZjxUPgABYHRvdGFsX2NvbW1pc3Npb25fcGVuZGluZ1kBATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX2NsYWltZWRZAQEwQmFsYW5jZU9mPFQ+AAClDwhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgU3ViUG9vbHMEBFQAAAgBGG5vX2VyYakPATRVbmJvbmRQb29sPFQ+AAEgd2l0aF9lcmGtDwEBAUJvdW5kZWRCVHJlZU1hcDxFcmFJbmRleCwgVW5ib25kUG9vbDxUPiwgVG90YWxVbmJvbmRpbmdQb29sczxUPj4AAKkPCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhVbmJvbmRQb29sBARUAAAIARhwb2ludHNZAQEwQmFsYW5jZU9mPFQ+AAEcYmFsYW5jZVkBATBCYWxhbmNlT2Y8VD4AAK0PDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfbWFwPEJvdW5kZWRCVHJlZU1hcAwESwE4BFYBqQ8EUwAABACxDwE4QlRyZWVNYXA8SywgVj4AALEPBCBCVHJlZU1hcAgESwE4BFYBqQ8ABAC1DwAAALUPAAACuQ8AuQ8AAAQIOKkPAL0PDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQURXJyb3IEBFQAAZgwUG9vbE5vdEZvdW5kAAAEiEEgKGJvbmRlZCkgcG9vbCBpZCBkb2VzIG5vdCBleGlzdC5IUG9vbE1lbWJlck5vdEZvdW5kAAEEbEFuIGFjY291bnQgaXMgbm90IGEgbWVtYmVyLkhSZXdhcmRQb29sTm90Rm91bmQAAgQhAUEgcmV3YXJkIHBvb2wgZG9lcyBub3QgZXhpc3QuIEluIGFsbCBjYXNlcyB0aGlzIGlzIGEgc3lzdGVtIGxvZ2ljIGVycm9yLkBTdWJQb29sc05vdEZvdW5kAAMEaEEgc3ViIHBvb2wgZG9lcyBub3QgZXhpc3QuZEFjY291bnRCZWxvbmdzVG9PdGhlclBvb2wABAhNAUFuIGFjY291bnQgaXMgYWxyZWFkeSBkZWxlZ2F0aW5nIGluIGFub3RoZXIgcG9vbC4gQW4gYWNjb3VudCBtYXkgb25seSBiZWxvbmcgdG8gb25lPHBvb2wgYXQgYSB0aW1lLjhGdWxseVVuYm9uZGluZwAFCD0BVGhlIG1lbWJlciBpcyBmdWxseSB1bmJvbmRlZCAoYW5kIHRodXMgY2Fubm90IGFjY2VzcyB0aGUgYm9uZGVkIGFuZCByZXdhcmQgcG9vbKhhbnltb3JlIHRvLCBmb3IgZXhhbXBsZSwgY29sbGVjdCByZXdhcmRzKS5ETWF4VW5ib25kaW5nTGltaXQABgQJAVRoZSBtZW1iZXIgY2Fubm90IHVuYm9uZCBmdXJ0aGVyIGNodW5rcyBkdWUgdG8gcmVhY2hpbmcgdGhlIGxpbWl0LkRDYW5ub3RXaXRoZHJhd0FueQAHBE0BTm9uZSBvZiB0aGUgZnVuZHMgY2FuIGJlIHdpdGhkcmF3biB5ZXQgYmVjYXVzZSB0aGUgYm9uZGluZyBkdXJhdGlvbiBoYXMgbm90IHBhc3NlZC5ETWluaW11bUJvbmROb3RNZXQACBQpAVRoZSBhbW91bnQgZG9lcyBub3QgbWVldCB0aGUgbWluaW11bSBib25kIHRvIGVpdGhlciBqb2luIG9yIGNyZWF0ZSBhIHBvb2wuAFUBVGhlIGRlcG9zaXRvciBjYW4gbmV2ZXIgdW5ib25kIHRvIGEgdmFsdWUgbGVzcyB0aGFuIGBQYWxsZXQ6OmRlcG9zaXRvcl9taW5fYm9uZGAuIFRoZV0BY2FsbGVyIGRvZXMgbm90IGhhdmUgbm9taW5hdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBvb2wuIE1lbWJlcnMgY2FuIG5ldmVyIHVuYm9uZCB0byBhaHZhbHVlIGJlbG93IGBNaW5Kb2luQm9uZGAuME92ZXJmbG93UmlzawAJBCEBVGhlIHRyYW5zYWN0aW9uIGNvdWxkIG5vdCBiZSBleGVjdXRlZCBkdWUgdG8gb3ZlcmZsb3cgcmlzayBmb3IgdGhlIHBvb2wuNE5vdERlc3Ryb3lpbmcACghdAUEgcG9vbCBtdXN0IGJlIGluIFtgUG9vbFN0YXRlOjpEZXN0cm95aW5nYF0gaW4gb3JkZXIgZm9yIHRoZSBkZXBvc2l0b3IgdG8gdW5ib25kIG9yIGZvcrhvdGhlciBtZW1iZXJzIHRvIGJlIHBlcm1pc3Npb25sZXNzbHkgdW5ib25kZWQuME5vdE5vbWluYXRvcgALBPRUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgbm9taW5hdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBvb2wuVE5vdEtpY2tlck9yRGVzdHJveWluZwAMBD0BRWl0aGVyIGEpIHRoZSBjYWxsZXIgY2Fubm90IG1ha2UgYSB2YWxpZCBraWNrIG9yIGIpIHRoZSBwb29sIGlzIG5vdCBkZXN0cm95aW5nLhxOb3RPcGVuAA0EcFRoZSBwb29sIGlzIG5vdCBvcGVuIHRvIGpvaW4gTWF4UG9vbHMADgSEVGhlIHN5c3RlbSBpcyBtYXhlZCBvdXQgb24gcG9vbHMuOE1heFBvb2xNZW1iZXJzAA8EnFRvbyBtYW55IG1lbWJlcnMgaW4gdGhlIHBvb2wgb3Igc3lzdGVtLkRDYW5Ob3RDaGFuZ2VTdGF0ZQAQBIhUaGUgcG9vbHMgc3RhdGUgY2Fubm90IGJlIGNoYW5nZWQuVERvZXNOb3RIYXZlUGVybWlzc2lvbgARBLhUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuVE1ldGFkYXRhRXhjZWVkc01heExlbgASBKxNZXRhZGF0YSBleGNlZWRzIFtgQ29uZmlnOjpNYXhNZXRhZGF0YUxlbmBdJERlZmVuc2l2ZQQAwQ8BOERlZmVuc2l2ZUVycm9yABMIMQFTb21lIGVycm9yIG9jY3VycmVkIHRoYXQgc2hvdWxkIG5ldmVyIGhhcHBlbi4gVGhpcyBzaG91bGQgYmUgcmVwb3J0ZWQgdG8gdGhlMG1haW50YWluZXJzLpxQYXJ0aWFsVW5ib25kTm90QWxsb3dlZFBlcm1pc3Npb25sZXNzbHkAFAS8UGFydGlhbCB1bmJvbmRpbmcgbm93IGFsbG93ZWQgcGVybWlzc2lvbmxlc3NseS5cTWF4Q29tbWlzc2lvblJlc3RyaWN0ZWQAFQQdAVRoZSBwb29sJ3MgbWF4IGNvbW1pc3Npb24gY2Fubm90IGJlIHNldCBoaWdoZXIgdGhhbiB0aGUgZXhpc3RpbmcgdmFsdWUuYENvbW1pc3Npb25FeGNlZWRzTWF4aW11bQAWBOxUaGUgc3VwcGxpZWQgY29tbWlzc2lvbiBleGNlZWRzIHRoZSBtYXggYWxsb3dlZCBjb21taXNzaW9uLnhDb21taXNzaW9uRXhjZWVkc0dsb2JhbE1heGltdW0AFwToVGhlIHN1cHBsaWVkIGNvbW1pc3Npb24gZXhjZWVkcyBnbG9iYWwgbWF4aW11bSBjb21taXNzaW9uLmRDb21taXNzaW9uQ2hhbmdlVGhyb3R0bGVkABgECQFOb3QgZW5vdWdoIGJsb2NrcyBoYXZlIHN1cnBhc3NlZCBzaW5jZSB0aGUgbGFzdCBjb21taXNzaW9uIHVwZGF0ZS54Q29tbWlzc2lvbkNoYW5nZVJhdGVOb3RBbGxvd2VkABkEAQFUaGUgc3VibWl0dGVkIGNoYW5nZXMgdG8gY29tbWlzc2lvbiBjaGFuZ2UgcmF0ZSBhcmUgbm90IGFsbG93ZWQuTE5vUGVuZGluZ0NvbW1pc3Npb24AGgSgVGhlcmUgaXMgbm8gcGVuZGluZyBjb21taXNzaW9uIHRvIGNsYWltLlhOb0NvbW1pc3Npb25DdXJyZW50U2V0ABsEjE5vIGNvbW1pc3Npb24gY3VycmVudCBoYXMgYmVlbiBzZXQuLFBvb2xJZEluVXNlABwEZFBvb2wgaWQgY3VycmVudGx5IGluIHVzZS40SW52YWxpZFBvb2xJZAAdBJxQb29sIGlkIHByb3ZpZGVkIGlzIG5vdCBjb3JyZWN0L3VzYWJsZS5MQm9uZEV4dHJhUmVzdHJpY3RlZAAeBPxCb25kaW5nIGV4dHJhIGlzIHJlc3RyaWN0ZWQgdG8gdGhlIGV4YWN0IHBlbmRpbmcgcmV3YXJkIGFtb3VudC48Tm90aGluZ1RvQWRqdXN0AB8EsE5vIGltYmFsYW5jZSBpbiB0aGUgRUQgZGVwb3NpdCBmb3IgdGhlIHBvb2wuOE5vdGhpbmdUb1NsYXNoACAEzE5vIHNsYXNoIHBlbmRpbmcgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgbWVtYmVyLixTbGFzaFRvb0xvdwAhBKhUaGUgc2xhc2ggYW1vdW50IGlzIHRvbyBsb3cgdG8gYmUgYXBwbGllZC48QWxyZWFkeU1pZ3JhdGVkACIEFQFUaGUgcG9vbCBvciBtZW1iZXIgZGVsZWdhdGlvbiBoYXMgYWxyZWFkeSBtaWdyYXRlZCB0byBkZWxlZ2F0ZSBzdGFrZS4sTm90TWlncmF0ZWQAIwQVAVRoZSBwb29sIG9yIG1lbWJlciBkZWxlZ2F0aW9uIGhhcyBub3QgbWlncmF0ZWQgeWV0IHRvIGRlbGVnYXRlIHN0YWtlLjBOb3RTdXBwb3J0ZWQAJATwVGhpcyBjYWxsIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwYWxsZXQuKFJlc3RyaWN0ZWQAJQhRAUFjY291bnQgaXMgcmVzdHJpY3RlZCBmcm9tIHBhcnRpY2lwYXRpb24gaW4gcG9vbHMuIFRoaXMgbWF5IGhhcHBlbiBpZiB0aGUgYWNjb3VudCBpc3xzdGFraW5nIGluIGFub3RoZXIgd2F5IGFscmVhZHkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEPDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQ4RGVmZW5zaXZlRXJyb3IAARxoTm90RW5vdWdoU3BhY2VJblVuYm9uZFBvb2wAAAAwUG9vbE5vdEZvdW5kAAEASFJld2FyZFBvb2xOb3RGb3VuZAACAEBTdWJQb29sc05vdEZvdW5kAAMAcEJvbmRlZFN0YXNoS2lsbGVkUHJlbWF0dXJlbHkABABURGVsZWdhdGlvblVuc3VwcG9ydGVkAAUAPFNsYXNoTm90QXBwbGllZAAGAADFDwxAcGFsbGV0X2JhZ3NfbGlzdBBsaXN0EE5vZGUIBFQABEkAABQBCGlkBAEwVDo6QWNjb3VudElkAAEQcHJldpEBAVBPcHRpb248VDo6QWNjb3VudElkPgABEG5leHSRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRiYWdfdXBwZXIoASBUOjpTY29yZQABFHNjb3JlKAEgVDo6U2NvcmUAAMkPDEBwYWxsZXRfYmFnc19saXN0EGxpc3QMQmFnCARUAARJAAAIARBoZWFkkQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEQdGFpbJEBAVBPcHRpb248VDo6QWNjb3VudElkPgAAzQ8AAAIoANEPDEBwYWxsZXRfYmFnc19saXN0GHBhbGxldBRFcnJvcggEVAAESQABCBBMaXN0BADVDwEkTGlzdEVycm9yAAAEtEEgZXJyb3IgaW4gdGhlIGxpc3QgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uLhhMb2NrZWQAAQTYQ291bGQgbm90IHVwZGF0ZSBhIG5vZGUsIGJlY2F1c2UgdGhlIHBhbGxldCBpcyBsb2NrZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtUPDEBwYWxsZXRfYmFnc19saXN0EGxpc3QkTGlzdEVycm9yAAEUJER1cGxpY2F0ZQAAAChOb3RIZWF2aWVyAAEAME5vdEluU2FtZUJhZwACADBOb2RlTm90Rm91bmQAAwAYTG9ja2VkAAQAANkPAAAECAEBAQEA3Q8MYHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZxR0eXBlcyhEZWxlZ2F0aW9uBARUAAAIARRhZ2VudAQBMFQ6OkFjY291bnRJZAABGGFtb3VudFkBATBCYWxhbmNlT2Y8VD4AAOEPDGBwYWxsZXRfZGVsZWdhdGVkX3N0YWtpbmcUdHlwZXMsQWdlbnRMZWRnZXIEBFQAABABFHBheWVlBAEwVDo6QWNjb3VudElkAAE8dG90YWxfZGVsZWdhdGVkVQEBMEJhbGFuY2VPZjxUPgABVHVuY2xhaW1lZF93aXRoZHJhd2Fsc1UBATBCYWxhbmNlT2Y8VD4AATRwZW5kaW5nX3NsYXNoVQEBMEJhbGFuY2VPZjxUPgAA5Q8MYHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZxhwYWxsZXQURXJyb3IEBFQAATAoTm90QWxsb3dlZAAABKhUaGUgYWNjb3VudCBjYW5ub3QgcGVyZm9ybSB0aGlzIG9wZXJhdGlvbi44QWxyZWFkeVN0YWtpbmcAAQS4QW4gZXhpc3Rpbmcgc3Rha2VyIGNhbm5vdCBwZXJmb3JtIHRoaXMgYWN0aW9uLmBJbnZhbGlkUmV3YXJkRGVzdGluYXRpb24AAgTUUmV3YXJkIERlc3RpbmF0aW9uIGNhbm5vdCBiZSBzYW1lIGFzIGBBZ2VudGAgYWNjb3VudC5ESW52YWxpZERlbGVnYXRpb24AAxSIRGVsZWdhdGlvbiBjb25kaXRpb25zIGFyZSBub3QgbWV0LgBMUG9zc2libGUgaXNzdWVzIGFyZWwxKSBDYW5ub3QgZGVsZWdhdGUgdG8gc2VsZiykMikgQ2Fubm90IGRlbGVnYXRlIHRvIG11bHRpcGxlIGRlbGVnYXRlcy44Tm90RW5vdWdoRnVuZHMABAQBAVRoZSBhY2NvdW50IGRvZXMgbm90IGhhdmUgZW5vdWdoIGZ1bmRzIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi4gTm90QWdlbnQABQSATm90IGFuIGV4aXN0aW5nIGBBZ2VudGAgYWNjb3VudC4wTm90RGVsZWdhdG9yAAYEYE5vdCBhIERlbGVnYXRvciBhY2NvdW50LiBCYWRTdGF0ZQAHBIhTb21lIGNvcnJ1cHRpb24gaW4gaW50ZXJuYWwgc3RhdGUuOFVuYXBwbGllZFNsYXNoAAgE3FVuYXBwbGllZCBwZW5kaW5nIHNsYXNoIHJlc3RyaWN0cyBvcGVyYXRpb24gb24gYEFnZW50YC44Tm90aGluZ1RvU2xhc2gACQSsYEFnZW50YCBoYXMgbm8gcGVuZGluZyBzbGFzaCB0byBiZSBhcHBsaWVkLjhXaXRoZHJhd0ZhaWxlZAAKBLBGYWlsZWQgdG8gd2l0aGRyYXcgYW1vdW50IGZyb20gQ29yZSBTdGFraW5nLjBOb3RTdXBwb3J0ZWQACwScT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwYWxsZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LukPAAAECO0POADtDwh4cGFsbGV0X3N0YWtpbmdfYXN5bmNfcmNfY2xpZW50SFZhbGlkYXRvclNldFJlcG9ydAQkQWNjb3VudElkAQQAEAFEbmV3X3ZhbGlkYXRvcl9zZXRhAQE4VmVjPEFjY291bnRJZD4AAQhpZDgBDHUzMgABLHBydW5lX3VwX3Rv5AFQT3B0aW9uPFNlc3Npb25JbmRleD4AASBsZWZ0b3Zlcl0BARBib29sAADxDwx4cGFsbGV0X3N0YWtpbmdfYXN5bmNfcmNfY2xpZW50GHBhbGxldBRFcnJvcgQEVAABFDRYY21TZW5kRmFpbGVkAAAEuEZhaWxlZCB0byBzZW5kIFhDTSBtZXNzYWdlIHRvIHRoZSBSZWxheSBDaGFpbi4wTm90VmFsaWRhdG9yAAEUxFRoZSBvcmlnaW4gYWNjb3VudCBpcyBub3QgYSByZWdpc3RlcmVkIHZhbGlkYXRvci4AWQFPbmx5IGFjY291bnRzIHRoYXQgaGF2ZSBjYWxsZWQgYHZhbGlkYXRlKClgIGNhbiBzZXQgb3IgcHVyZ2Ugc2Vzc2lvbiBrZXlzLiBXaGVuIGNhbGxlZEkBdmlhIGEgc3Rha2luZyBwcm94eSwgdGhlIG9yaWdpbiBpcyB0aGUgZGVsZWdhdGluZyBhY2NvdW50IChzdGFzaCksIHdoaWNoIG11c3QgYmUgYVRyZWdpc3RlcmVkIHZhbGlkYXRvci4sSW52YWxpZEtleXMAAgRFAVRoZSBzZXNzaW9uIGtleXMgY291bGQgbm90IGJlIGRlY29kZWQgYXMgdGhlIGV4cGVjdGVkIFJlbGF5Q2hhaW5TZXNzaW9uS2V5cyB0eXBlLjBJbnZhbGlkUHJvb2YAAwTQVGhlIG93bmVyc2hpcCBwcm9vZiBmb3IgdGhlIHNlc3Npb24ga2V5cyBpcyBpbnZhbGlkLjxGZWVzRXhjZWVkZWRNYXgABAS0RGVsaXZlcnkgZmVlcyBleGNlZWRlZCB0aGUgc3BlY2lmaWVkIG1heGltdW0uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvUPDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB+Q8EUwAABAABEAEYVmVjPFQ+AAD5DwAABAwEKP0PAP0PDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAGEBARhWZWM8VD4AAAEQAAAC+Q8ABRAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAYQEBGFZlYzxUPgAACRAMkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jaxhwYWxsZXQURXJyb3IEBFQAAQwgRmFsbGJhY2sAAASEVHJpZ2dlcmluZyB0aGUgYEZhbGxiYWNrYCBmYWlsZWQuPFVuZXhwZWN0ZWRQaGFzZQABBEBVbmV4cGVjdGVkIHBoYXNlIFNuYXBzaG90AAIEZFNuYXBzaG90IHdhcyB1bmF2YWlsYWJsZS4EDQFFcnJvciBvZiB0aGUgcGFsbGV0IHRoYXQgY2FuIGJlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGRpc3BhdGNoZXMuDRAQkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jayB2ZXJpZmllchRpbXBsczRWYWxpZFNvbHV0aW9uAAEIBFgAAAAEWQABAAAREAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARUQBFMAAAQAHRABGFZlYzxUPgAAFRAAAAQIBBkQABkQEJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sgdmVyaWZpZXIUaW1wbHM8UGFydGlhbEJhY2tpbmdzAAAIARR0b3RhbFkBATxFeHRlbmRlZEJhbGFuY2UAARxiYWNrZXJzOAEMdTMyAAAdEAAAAhUQACEQEJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sgdmVyaWZpZXIUaW1wbHMYU3RhdHVzAAEIHE9uZ29pbmcEADgBJFBhZ2VJbmRleAAAABxOb3RoaW5nAAEAACUQDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKRAEUwAABAAtEAEYVmVjPFQ+AAApEAAABAgEpQUALRAAAAIpEAAxEAAABAw4BDgANRAMkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9ibG9jaxhzaWduZWRIU3VibWlzc2lvbk1ldGFkYXRhBARUAAAUARxkZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABDGZlZVkBATBCYWxhbmNlT2Y8VD4AARhyZXdhcmRZAQEwQmFsYW5jZU9mPFQ+AAE0Y2xhaW1lZF9zY29yZaUFATRFbGVjdGlvblNjb3JlAAEUcGFnZXM5EAFoQm91bmRlZFZlYzxib29sLCBUOjpQYWdlcz4AADkQDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBXQEEUwAABAA9EAEYVmVjPFQ+AAA9EAAAAl0BAEEQEJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2sYc2lnbmVkGHBhbGxldBRFcnJvcgQEVAABJDhQaGFzZU5vdFNpZ25lZAAABGBUaGUgcGhhc2UgaXMgbm90IHNpZ25lZC4kRHVwbGljYXRlAAEEeFRoZSBzdWJtaXNzaW9uIGlzIGEgZHVwbGljYXRlLiRRdWV1ZUZ1bGwAAgRIVGhlIHF1ZXVlIGlzIGZ1bGwuMEJhZFBhZ2VJbmRleAADBIBUaGUgcGFnZSBpbmRleCBpcyBvdXQgb2YgYm91bmRzLjROb3RSZWdpc3RlcmVkAAQEeFRoZSBhY2NvdW50IGlzIG5vdCByZWdpc3RlcmVkLjBOb1N1Ym1pc3Npb24ABQRQTm8gc3VibWlzc2lvbiBmb3VuZC4wUm91bmROb3RPdmVyAAYEWFJvdW5kIGlzIG5vdCB5ZXQgb3Zlci44QmFkV2l0bmVzc0RhdGEABwRoQmFkIHdpdG5lc3MgZGF0YSBwcm92aWRlZC5QVG9vTWFueUludnVsbmVyYWJsZXMACASwVG9vIG1hbnkgaW52dWxuZXJhYmxlIGFjY291bnRzIGFyZSBwcm92aWRlZCwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuRRAMUHBhbGxldF9zdGFraW5nX2FzeW5jGGxlZGdlcjRTdGFraW5nTGVkZ2VyBARUAAAQARRzdGFzaAQBMFQ6OkFjY291bnRJZAABFHRvdGFsVQEBMEJhbGFuY2VPZjxUPgABGGFjdGl2ZVUBATBCYWxhbmNlT2Y8VD4AASR1bmxvY2tpbmfJBgHwQm91bmRlZFZlYzxVbmxvY2tDaHVuazxCYWxhbmNlT2Y8VD4+LCBUOjpNYXhVbmxvY2tpbmdDaHVua3M+AABJEAhQcGFsbGV0X3N0YWtpbmdfYXN5bmMsTm9taW5hdGlvbnMEBFQAAAwBHHRhcmdldHP9DwG0Qm91bmRlZFZlYzxUOjpBY2NvdW50SWQsIE1heE5vbWluYXRpb25zT2Y8VD4+AAEwc3VibWl0dGVkX2luOAEgRXJhSW5kZXgAAShzdXBwcmVzc2VkXQEBEGJvb2wAAE0QCFBwYWxsZXRfc3Rha2luZ19hc3luYzRBY3RpdmVFcmFJbmZvAAAIARRpbmRleDgBIEVyYUluZGV4AAEUc3RhcnQBAQEsT3B0aW9uPHU2ND4AAFEQDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB0ARTAAAEALEJARhWZWM8VD4AAFUQCChzcF9zdGFraW5nVFBhZ2VkRXhwb3N1cmVNZXRhZGF0YQQcQmFsYW5jZQFZAQAQARR0b3RhbFUBARxCYWxhbmNlAAEMb3duVQEBHEJhbGFuY2UAATxub21pbmF0b3JfY291bnQ4AQx1MzIAAShwYWdlX2NvdW50OAEQUGFnZQAAWRAQUHBhbGxldF9zdGFraW5nX2FzeW5jGHBhbGxldBhwYWxsZXRMQm91bmRlZEV4cG9zdXJlUGFnZQQEVAAABABdEAGgRXhwb3N1cmVQYWdlPFQ6OkFjY291bnRJZCwgQmFsYW5jZU9mPFQ+PgAAXRAIKHNwX3N0YWtpbmcwRXhwb3N1cmVQYWdlCCRBY2NvdW50SWQBBBxCYWxhbmNlAVkBAAgBKHBhZ2VfdG90YWxVAQEcQmFsYW5jZQABGG90aGVyc2EQAaxWZWM8SW5kaXZpZHVhbEV4cG9zdXJlPEFjY291bnRJZCwgQmFsYW5jZT4+AABhEAAAAmUQAGUQCChzcF9zdGFraW5nSEluZGl2aWR1YWxFeHBvc3VyZQgkQWNjb3VudElkAQQcQmFsYW5jZQFZAQAIAQx3aG8EASRBY2NvdW50SWQAARR2YWx1ZVUBARxCYWxhbmNlAABpEAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUATgEUwAABAApBAEYVmVjPFQ+AABtEAhQcGFsbGV0X3N0YWtpbmdfYXN5bmM8RXJhUmV3YXJkUG9pbnRzBARUAAAIARR0b3RhbDgBLFJld2FyZFBvaW50AAEoaW5kaXZpZHVhbHEQAfhCb3VuZGVkQlRyZWVNYXA8VDo6QWNjb3VudElkLCBSZXdhcmRQb2ludCwgVDo6TWF4VmFsaWRhdG9yU2V0PgAAcRAMTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9tYXA8Qm91bmRlZEJUcmVlTWFwDARLAQQEVgE4BFMAAAQAdRABOEJUcmVlTWFwPEssIFY+AAB1EAQgQlRyZWVNYXAIBEsBBARWATgABABZBQAAAHkQDFBwYWxsZXRfc3Rha2luZ19hc3luYyBzbGFzaGluZzRPZmZlbmNlUmVjb3JkBCRBY2NvdW50SWQBBAAUASByZXBvcnRlcpEBAURPcHRpb248QWNjb3VudElkPgABMHJlcG9ydGVkX2VyYTgBIEVyYUluZGV4AAE0ZXhwb3N1cmVfcGFnZTgBDHUzMgABOHNsYXNoX2ZyYWN0aW9uLQUBHFBlcmJpbGwAAVBwcmlvcl9zbGFzaF9mcmFjdGlvbi0FARxQZXJiaWxsAAB9EAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUATgEUwAABAApBAEYVmVjPFQ+AACBEAAABAw4BHkQAIUQAAAECDjVBgCJEAhQcGFsbGV0X3N0YWtpbmdfYXN5bmM4VW5hcHBsaWVkU2xhc2gEBFQAABQBJHZhbGlkYXRvcgQBMFQ6OkFjY291bnRJZAABDG93blkBATBCYWxhbmNlT2Y8VD4AARhvdGhlcnONEAERAVdlYWtCb3VuZGVkVmVjPChUOjpBY2NvdW50SWQsIEJhbGFuY2VPZjxUPiksIFQ6Ok1heEV4cG9zdXJlUGFnZVNpemU+AAEgcmVwb3J0ZXKRAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AARhwYXlvdXRZAQEwQmFsYW5jZU9mPFQ+AACNEAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAZkFBFMAAAQAnQUBGFZlYzxUPgAAkRAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGpBgRTAAAEAKUGARhWZWM8VD4AAJUQCFBwYWxsZXRfc3Rha2luZ19hc3luYzhTbmFwc2hvdFN0YXR1cwQkQWNjb3VudElkAQQBDBxPbmdvaW5nBAAEASRBY2NvdW50SWQAAAAgQ29uc3VtZWQAAQAcV2FpdGluZwACAACZEAxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBBARTAAAEAMkOASxCVHJlZVNldDxUPgAAnRAQUHBhbGxldF9zdGFraW5nX2FzeW5jGHBhbGxldBhwYWxsZXQsUHJ1bmluZ1N0ZXAAASBARXJhc1N0YWtlcnNQYWdlZAAAAExFcmFzU3Rha2Vyc092ZXJ2aWV3AAEASEVyYXNWYWxpZGF0b3JQcmVmcwACADhDbGFpbWVkUmV3YXJkcwADAExFcmFzVmFsaWRhdG9yUmV3YXJkAAQAQEVyYXNSZXdhcmRQb2ludHMABQBMU2luZ2xlRW50cnlDbGVhbnVwcwAGAExWYWxpZGF0b3JTbGFzaEluRXJhAAcAAKEQEFBwYWxsZXRfc3Rha2luZ19hc3luYxhwYWxsZXQYcGFsbGV0FEVycm9yBARUAAGQNE5vdENvbnRyb2xsZXIAAARkTm90IGEgY29udHJvbGxlciBhY2NvdW50LiBOb3RTdGFzaAABBFBOb3QgYSBzdGFzaCBhY2NvdW50LjRBbHJlYWR5Qm9uZGVkAAIEYFN0YXNoIGlzIGFscmVhZHkgYm9uZGVkLjRBbHJlYWR5UGFpcmVkAAMEdENvbnRyb2xsZXIgaXMgYWxyZWFkeSBwYWlyZWQuMEVtcHR5VGFyZ2V0cwAEBGBUYXJnZXRzIGNhbm5vdCBiZSBlbXB0eS44RHVwbGljYXRlSW5kZXgABQRARHVwbGljYXRlIGluZGV4LkhJbnZhbGlkU2xhc2hSZWNvcmQABgRcU2xhc2ggcmVjb3JkIG5vdCBmb3VuZC5ASW5zdWZmaWNpZW50Qm9uZAAHDDUBQ2Fubm90IGJvbmQsIG5vbWluYXRlIG9yIHZhbGlkYXRlIHdpdGggdmFsdWUgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGRlZmluZWQgYnk9AWdvdmVybmFuY2UgKHNlZSBgTWluVmFsaWRhdG9yQm9uZGAgYW5kIGBNaW5Ob21pbmF0b3JCb25kYCkuIElmIHVuYm9uZGluZyBpcyB0aGUVAWludGVudGlvbiwgYGNoaWxsYCBmaXJzdCB0byByZW1vdmUgb25lJ3Mgcm9sZSBhcyB2YWxpZGF0b3Ivbm9taW5hdG9yLjBOb01vcmVDaHVua3MACASQQ2FuIG5vdCBzY2hlZHVsZSBtb3JlIHVubG9jayBjaHVua3MuNE5vVW5sb2NrQ2h1bmsACQSgQ2FuIG5vdCByZWJvbmQgd2l0aG91dCB1bmxvY2tpbmcgY2h1bmtzLjBGdW5kZWRUYXJnZXQACgTIQXR0ZW1wdGluZyB0byB0YXJnZXQgYSBzdGFzaCB0aGF0IHN0aWxsIGhhcyBmdW5kcy5ISW52YWxpZEVyYVRvUmV3YXJkAAsEWEludmFsaWQgZXJhIHRvIHJld2FyZC5oSW52YWxpZE51bWJlck9mTm9taW5hdGlvbnMADAR4SW52YWxpZCBudW1iZXIgb2Ygbm9taW5hdGlvbnMuOEFscmVhZHlDbGFpbWVkAA0ECQFSZXdhcmRzIGZvciB0aGlzIGVyYSBoYXZlIGFscmVhZHkgYmVlbiBjbGFpbWVkIGZvciB0aGlzIHZhbGlkYXRvci4sSW52YWxpZFBhZ2UADgSETm8gbm9taW5hdG9ycyBleGlzdCBvbiB0aGlzIHBhZ2UuVEluY29ycmVjdEhpc3RvcnlEZXB0aAAPBMBJbmNvcnJlY3QgcHJldmlvdXMgaGlzdG9yeSBkZXB0aCBpbnB1dCBwcm92aWRlZC4gQmFkU3RhdGUAEAQ5AUludGVybmFsIHN0YXRlIGhhcyBiZWNvbWUgc29tZWhvdyBjb3JydXB0ZWQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IGNvbnRpbnVlLjhUb29NYW55VGFyZ2V0cwARBJRUb28gbWFueSBub21pbmF0aW9uIHRhcmdldHMgc3VwcGxpZWQuJEJhZFRhcmdldAASBD0BQSBub21pbmF0aW9uIHRhcmdldCB3YXMgc3VwcGxpZWQgdGhhdCB3YXMgYmxvY2tlZCBvciBvdGhlcndpc2Ugbm90IGEgdmFsaWRhdG9yLkBDYW5ub3RDaGlsbE90aGVyABMEVQFUaGUgdXNlciBoYXMgZW5vdWdoIGJvbmQgYW5kIHRodXMgY2Fubm90IGJlIGNoaWxsZWQgZm9yY2VmdWxseSBieSBhbiBleHRlcm5hbCBwZXJzb24uRFRvb01hbnlOb21pbmF0b3JzABQITQFUaGVyZSBhcmUgdG9vIG1hbnkgbm9taW5hdG9ycyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGUgc3Rha2luZ7RzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5EVG9vTWFueVZhbGlkYXRvcnMAFQhVAVRoZXJlIGFyZSB0b28gbWFueSB2YWxpZGF0b3IgY2FuZGlkYXRlcyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGXUc3Rha2luZyBzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5AQ29tbWlzc2lvblRvb0xvdwAWBOBDb21taXNzaW9uIGlzIHRvbyBsb3cuIE11c3QgYmUgYXQgbGVhc3QgYE1pbkNvbW1pc3Npb25gLixCb3VuZE5vdE1ldAAXBFhTb21lIGJvdW5kIGlzIG5vdCBtZXQuUENvbnRyb2xsZXJEZXByZWNhdGVkABgEAQFVc2VkIHdoZW4gYXR0ZW1wdGluZyB0byB1c2UgZGVwcmVjYXRlZCBjb250cm9sbGVyIGFjY291bnQgbG9naWMuTENhbm5vdFJlc3RvcmVMZWRnZXIAGQRYQ2Fubm90IHJlc2V0IGEgbGVkZ2VyLmxSZXdhcmREZXN0aW5hdGlvblJlc3RyaWN0ZWQAGgSsUHJvdmlkZWQgcmV3YXJkIGRlc3RpbmF0aW9uIGlzIG5vdCBhbGxvd2VkLjhOb3RFbm91Z2hGdW5kcwAbBJxOb3QgZW5vdWdoIGZ1bmRzIGF2YWlsYWJsZSB0byB3aXRoZHJhdy5cVmlydHVhbFN0YWtlck5vdEFsbG93ZWQAHASoT3BlcmF0aW9uIG5vdCBhbGxvd2VkIGZvciB2aXJ0dWFsIHN0YWtlcnMuPENhbm5vdFJlYXBTdGFzaAAdBPRTdGFzaCBjb3VsZCBub3QgYmUgcmVhcGVkIGFzIG90aGVyIHBhbGxldCBtaWdodCBkZXBlbmQgb24gaXQuPEFscmVhZHlNaWdyYXRlZAAeBAkBVGhlIHN0YWtlIG9mIHRoaXMgYWNjb3VudCBpcyBhbHJlYWR5IG1pZ3JhdGVkIHRvIGBGdW5naWJsZWAgaG9sZHMuNEVyYU5vdFN0YXJ0ZWQAHwRQRXJhIG5vdCB5ZXQgc3RhcnRlZC4oUmVzdHJpY3RlZAAgCFkBQWNjb3VudCBpcyByZXN0cmljdGVkIGZyb20gcGFydGljaXBhdGlvbiBpbiBzdGFraW5nLiBUaGlzIG1heSBoYXBwZW4gaWYgdGhlIGFjY291bnQgaXPEc3Rha2luZyBpbiBhbm90aGVyIHdheSBhbHJlYWR5LCBzdWNoIGFzIHZpYSBwb29sLnRVbmFwcGxpZWRTbGFzaGVzSW5QcmV2aW91c0VyYQAhCC0BVW5hcHBsaWVkIHNsYXNoZXMgaW4gdGhlIHJlY2VudGx5IGNvbmNsdWRlZCBlcmEgaXMgYmxvY2tpbmcgdGhpcyBvcGVyYXRpb24umFNlZSBgQ2FsbDo6YXBwbHlfc2xhc2hgIHRvIGFwcGx5IHRoZW0uOEVyYU5vdFBydW5hYmxlACIEkFRoZSBlcmEgaXMgbm90IGVsaWdpYmxlIGZvciBwcnVuaW5nLjhDYW5jZWxsZWRTbGFzaAAjBMxUaGUgc2xhc2ggaGFzIGJlZW4gY2FuY2VsbGVkIGFuZCBjYW5ub3QgYmUgYXBwbGllZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQupRAMNHBhbGxldF9yZXZpdmUIdm0gQ29kZUluZm8EBFQAABgBFG93bmVyBAE4QWNjb3VudElkT2Y8VD4AARxkZXBvc2l0VQEBMEJhbGFuY2VPZjxUPgABIHJlZmNvdW50uAEMdTY0AAEgY29kZV9sZW44AQx1MzIAASRjb2RlX3R5cGWpEAEwQnl0ZWNvZGVUeXBlAAFEYmVoYXZpb3VyX3ZlcnNpb244AQx1MzIAAKkQDDRwYWxsZXRfcmV2aXZlCHZtMEJ5dGVjb2RlVHlwZQABCAxQdm0AAAAMRXZtAAEAAK0QDDRwYWxsZXRfcmV2aXZlHHN0b3JhZ2UsQWNjb3VudEluZm8EBFQAAAgBMGFjY291bnRfdHlwZbEQAThBY2NvdW50VHlwZTxUPgABEGR1c3Q4AQx1MzIAALEQDDRwYWxsZXRfcmV2aXZlHHN0b3JhZ2UsQWNjb3VudFR5cGUEBFQAAQggQ29udHJhY3QEALUQATxDb250cmFjdEluZm88VD4AAAAMRU9BAAEAALUQDDRwYWxsZXRfcmV2aXZlHHN0b3JhZ2UwQ29udHJhY3RJbmZvBARUAAAgARx0cmllX2lkLQQBGFRyaWVJZAABJGNvZGVfaGFzaEABNHNwX2NvcmU6OkgyNTYAATRzdG9yYWdlX2J5dGVzOAEMdTMyAAE0c3RvcmFnZV9pdGVtczgBDHUzMgABUHN0b3JhZ2VfYnl0ZV9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABUHN0b3JhZ2VfaXRlbV9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABUHN0b3JhZ2VfYmFzZV9kZXBvc2l0WQEBMEJhbGFuY2VPZjxUPgABSGltbXV0YWJsZV9kYXRhX2xlbjgBDHUzMgAAuRAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AAC9EAw0cGFsbGV0X3Jldml2ZRxzdG9yYWdlUERlbGV0aW9uUXVldWVNYW5hZ2VyBARUAAAIAThpbnNlcnRfY291bnRlcjgBDHUzMgABOGRlbGV0ZV9jb3VudGVyOAEMdTMyAADBEBQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpNHJwY190eXBlc19nZW4UQmxvY2sAAGwBQGJhc2VfZmVlX3Blcl9nYXPlBgEQVTI1NgABNGJsb2JfZ2FzX3VzZWTlBgEQVTI1NgABKGRpZmZpY3VsdHnlBgEQVTI1NgABPGV4Y2Vzc19ibG9iX2dhc+UGARBVMjU2AAEoZXh0cmFfZGF0YcUQARRCeXRlcwABJGdhc19saW1pdOUGARBVMjU2AAEgZ2FzX3VzZWTlBgEQVTI1NgABEGhhc2hAARBIMjU2AAEobG9nc19ibG9vbckQASBCeXRlczI1NgABFG1pbmVy3QYBHEFkZHJlc3MAASBtaXhfaGFzaEABEEgyNTYAARRub25jZdEQARhCeXRlczgAARhudW1iZXLlBgEQVTI1NgABYHBhcmVudF9iZWFjb25fYmxvY2tfcm9vdOEEATBPcHRpb248SDI1Nj4AASxwYXJlbnRfaGFzaEABEEgyNTYAATRyZWNlaXB0c19yb290QAEQSDI1NgABNHJlcXVlc3RzX2hhc2jhBAEwT3B0aW9uPEgyNTY+AAEwc2hhXzNfdW5jbGVzQAEQSDI1NgABEHNpemXlBgEQVTI1NgABKHN0YXRlX3Jvb3RAARBIMjU2AAEkdGltZXN0YW1w5QYBEFUyNTYAAUB0b3RhbF9kaWZmaWN1bHR51RABME9wdGlvbjxVMjU2PgABMHRyYW5zYWN0aW9uc9kQAWBIYXNoZXNPclRyYW5zYWN0aW9uSW5mb3MAAUR0cmFuc2FjdGlvbnNfcm9vdEABEEgyNTYAARh1bmNsZXPEASRWZWM8SDI1Nj4AASx3aXRoZHJhd2FscyURATxWZWM8V2l0aGRyYXdhbD4AAUB3aXRoZHJhd2Fsc19yb290QAEQSDI1NgAAxRAUNHBhbGxldF9yZXZpdmUMZXZtDGFwaRBieXRlFEJ5dGVzAAAEABgBHFZlYzx1OD4AAMkQFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGkQYnl0ZSBCeXRlczI1NgAABADNEAEkW3U4OyAyNTZdAADNEAAAAwABAAAMANEQFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGkQYnl0ZRhCeXRlczgAAAQAXQIBHFt1ODsgOF0AANUQBBhPcHRpb24EBFQB5QYBCBBOb25lAAAAEFNvbWUEAOUGAAABAADZEBQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpNHJwY190eXBlc19nZW5gSGFzaGVzT3JUcmFuc2FjdGlvbkluZm9zAAEIGEhhc2hlcwQAxAEkVmVjPEgyNTY+AAAAQFRyYW5zYWN0aW9uSW5mb3MEAN0QAVBWZWM8VHJhbnNhY3Rpb25JbmZvPgABAADdEAAAAuEQAOEQFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlbjxUcmFuc2FjdGlvbkluZm8AABgBKGJsb2NrX2hhc2hAARBIMjU2AAEwYmxvY2tfbnVtYmVy5QYBEFUyNTYAARBmcm9t3QYBHEFkZHJlc3MAARBoYXNoQAEQSDI1NgABRHRyYW5zYWN0aW9uX2luZGV45QYBEFUyNTYAAUh0cmFuc2FjdGlvbl9zaWduZWTlEAFEVHJhbnNhY3Rpb25TaWduZWQAAOUQFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlbkRUcmFuc2FjdGlvblNpZ25lZAABFFRUcmFuc2FjdGlvbjc3MDJTaWduZWQEAOkQAVRUcmFuc2FjdGlvbjc3MDJTaWduZWQAAABUVHJhbnNhY3Rpb240ODQ0U2lnbmVkBAABEQFUVHJhbnNhY3Rpb240ODQ0U2lnbmVkAAEAVFRyYW5zYWN0aW9uMTU1OVNpZ25lZAQACREBVFRyYW5zYWN0aW9uMTU1OVNpZ25lZAACAFRUcmFuc2FjdGlvbjI5MzBTaWduZWQEABURAVRUcmFuc2FjdGlvbjI5MzBTaWduZWQAAwBcVHJhbnNhY3Rpb25MZWdhY3lTaWduZWQEAB0RAVxUcmFuc2FjdGlvbkxlZ2FjeVNpZ25lZAAEAADpEBQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpNHJwY190eXBlc19nZW5UVHJhbnNhY3Rpb243NzAyU2lnbmVkAAAUAWR0cmFuc2FjdGlvbl83NzAyX3Vuc2lnbmVk7RABXFRyYW5zYWN0aW9uNzcwMlVuc2lnbmVkAAEEcuUGARBVMjU2AAEEc+UGARBVMjU2AAEEdtUQATBPcHRpb248VTI1Nj4AASB5X3Bhcml0eeUGARBVMjU2AADtEBQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpNHJwY190eXBlc19nZW5cVHJhbnNhY3Rpb243NzAyVW5zaWduZWQAADABLGFjY2Vzc19saXN08RABKEFjY2Vzc0xpc3QAAUhhdXRob3JpemF0aW9uX2xpc3T5EAFsVmVjPEF1dGhvcml6YXRpb25MaXN0RW50cnk+AAEgY2hhaW5faWTlBgEQVTI1NgABDGdhc+UGARBVMjU2AAEkZ2FzX3ByaWNl5QYBEFUyNTYAARRpbnB1dMUQARRCeXRlcwABPG1heF9mZWVfcGVyX2dhc+UGARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QYBEFUyNTYAARRub25jZeUGARBVMjU2AAEIdG/dBgEcQWRkcmVzcwABGHIjdHlwZQwBLFR5cGVFaXA3NzAyAAEUdmFsdWXlBgEQVTI1NgAA8RAAAAL1EAD1EBQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpNHJwY190eXBlc19nZW48QWNjZXNzTGlzdEVudHJ5AAAIARxhZGRyZXNz3QYBHEFkZHJlc3MAATBzdG9yYWdlX2tleXPEASRWZWM8SDI1Nj4AAPkQAAAC/RAA/RAUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuWEF1dGhvcml6YXRpb25MaXN0RW50cnkAABgBIGNoYWluX2lk5QYBEFUyNTYAARxhZGRyZXNz3QYBHEFkZHJlc3MAARRub25jZeUGARBVMjU2AAEgeV9wYXJpdHnlBgEQVTI1NgABBHLlBgEQVTI1NgABBHPlBgEQVTI1NgAAAREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuVFRyYW5zYWN0aW9uNDg0NFNpZ25lZAAAEAFkdHJhbnNhY3Rpb25fNDg0NF91bnNpZ25lZAURAVxUcmFuc2FjdGlvbjQ4NDRVbnNpZ25lZAABBHLlBgEQVTI1NgABBHPlBgEQVTI1NgABIHlfcGFyaXR55QYBEFUyNTYAAAURFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlblxUcmFuc2FjdGlvbjQ4NDRVbnNpZ25lZAAAMAEsYWNjZXNzX2xpc3TxEAEoQWNjZXNzTGlzdAABVGJsb2JfdmVyc2lvbmVkX2hhc2hlc8QBJFZlYzxIMjU2PgABIGNoYWluX2lk5QYBEFUyNTYAAQxnYXPlBgEQVTI1NgABFGlucHV0xRABFEJ5dGVzAAFQbWF4X2ZlZV9wZXJfYmxvYl9nYXPlBgEQVTI1NgABPG1heF9mZWVfcGVyX2dhc+UGARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QYBEFUyNTYAARRub25jZeUGARBVMjU2AAEIdG/dBgEcQWRkcmVzcwABGHIjdHlwZQwBLFR5cGVFaXA0ODQ0AAEUdmFsdWXlBgEQVTI1NgAACREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuVFRyYW5zYWN0aW9uMTU1OVNpZ25lZAAAFAFkdHJhbnNhY3Rpb25fMTU1OV91bnNpZ25lZA0RAVxUcmFuc2FjdGlvbjE1NTlVbnNpZ25lZAABBHLlBgEQVTI1NgABBHPlBgEQVTI1NgABBHbVEAEwT3B0aW9uPFUyNTY+AAEgeV9wYXJpdHnlBgEQVTI1NgAADREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuXFRyYW5zYWN0aW9uMTU1OVVuc2lnbmVkAAAsASxhY2Nlc3NfbGlzdPEQAShBY2Nlc3NMaXN0AAEgY2hhaW5faWTlBgEQVTI1NgABDGdhc+UGARBVMjU2AAEkZ2FzX3ByaWNl5QYBEFUyNTYAARRpbnB1dMUQARRCeXRlcwABPG1heF9mZWVfcGVyX2dhc+UGARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QYBEFUyNTYAARRub25jZeUGARBVMjU2AAEIdG8REQE8T3B0aW9uPEFkZHJlc3M+AAEYciN0eXBlDAEsVHlwZUVpcDE1NTkAARR2YWx1ZeUGARBVMjU2AAAREQQYT3B0aW9uBARUAd0GAQgQTm9uZQAAABBTb21lBADdBgAAAQAAFREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuVFRyYW5zYWN0aW9uMjkzMFNpZ25lZAAAFAFkdHJhbnNhY3Rpb25fMjkzMF91bnNpZ25lZBkRAVxUcmFuc2FjdGlvbjI5MzBVbnNpZ25lZAABBHLlBgEQVTI1NgABBHPlBgEQVTI1NgABBHbVEAEwT3B0aW9uPFUyNTY+AAEgeV9wYXJpdHnlBgEQVTI1NgAAGREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuXFRyYW5zYWN0aW9uMjkzMFVuc2lnbmVkAAAkASxhY2Nlc3NfbGlzdPEQAShBY2Nlc3NMaXN0AAEgY2hhaW5faWTlBgEQVTI1NgABDGdhc+UGARBVMjU2AAEkZ2FzX3ByaWNl5QYBEFUyNTYAARRpbnB1dMUQARRCeXRlcwABFG5vbmNl5QYBEFUyNTYAAQh0bxERATxPcHRpb248QWRkcmVzcz4AARhyI3R5cGUMASxUeXBlRWlwMjkzMAABFHZhbHVl5QYBEFUyNTYAAB0RFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlblxUcmFuc2FjdGlvbkxlZ2FjeVNpZ25lZAAAEAFsdHJhbnNhY3Rpb25fbGVnYWN5X3Vuc2lnbmVkIREBZFRyYW5zYWN0aW9uTGVnYWN5VW5zaWduZWQAAQRy5QYBEFUyNTYAAQRz5QYBEFUyNTYAAQR25QYBEFUyNTYAACERFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlbmRUcmFuc2FjdGlvbkxlZ2FjeVVuc2lnbmVkAAAgASBjaGFpbl9pZNUQATBPcHRpb248VTI1Nj4AAQxnYXPlBgEQVTI1NgABJGdhc19wcmljZeUGARBVMjU2AAEUaW5wdXTFEAEUQnl0ZXMAARRub25jZeUGARBVMjU2AAEIdG8REQE8T3B0aW9uPEFkZHJlc3M+AAEYciN0eXBlDAEoVHlwZUxlZ2FjeQABFHZhbHVl5QYBEFUyNTYAACURAAACKREAKREUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuKFdpdGhkcmF3YWwAABABHGFkZHJlc3PdBgEcQWRkcmVzcwABGGFtb3VudOUGARBVMjU2AAEUaW5kZXjlBgEQVTI1NgABPHZhbGlkYXRvcl9pbmRleOUGARBVMjU2AAAtEQAAAjERADEREDRwYWxsZXRfcmV2aXZlDGV2bShibG9ja19oYXNoOFJlY2VpcHRHYXNJbmZvAAAIASBnYXNfdXNlZOUGARBVMjU2AAFMZWZmZWN0aXZlX2dhc19wcmljZeUGARBVMjU2AAA1ERQ0cGFsbGV0X3Jldml2ZQxldm0oYmxvY2tfaGFzaDRibG9ja19idWlsZGVyWEV0aGVyZXVtQmxvY2tCdWlsZGVySVIEBFQAACABYHRyYW5zYWN0aW9uX3Jvb3RfYnVpbGRlcjkRAWBJbmNyZW1lbnRhbEhhc2hCdWlsZGVySVIAAVRyZWNlaXB0c19yb290X2J1aWxkZXI5EQFgSW5jcmVtZW50YWxIYXNoQnVpbGRlcklSAAFAYmFzZV9mZWVfcGVyX2dhc+UGARBVMjU2AAE8YmxvY2tfZ2FzX2xpbWl05QYBEFUyNTYAASBnYXNfdXNlZOUGARBVMjU2AAEobG9nc19ibG9vbc0QAVhbdTg7IEJMT09NX1NJWkVfQllURVNdAAEkdHhfaGFzaGVzxAEkVmVjPEgyNTY+AAEgZ2FzX2luZm8tEQFMVmVjPFJlY2VpcHRHYXNJbmZvPgAAOREUNHBhbGxldF9yZXZpdmUMZXZtKGJsb2NrX2hhc2gwaGFzaF9idWlsZGVyYEluY3JlbWVudGFsSGFzaEJ1aWxkZXJJUgAAKAEMa2V5GAEcVmVjPHU4PgABKHZhbHVlX3R5cGUMAQh1OAABNGJ1aWxkZXJfdmFsdWUYARxWZWM8dTg+AAEUc3RhY2s0ATBWZWM8VmVjPHU4Pj4AASxzdGF0ZV9tYXNrc/UGASBWZWM8dTE2PgABKHRyZWVfbWFza3P1BgEgVmVjPHUxNj4AAShoYXNoX21hc2tz9QYBIFZlYzx1MTY+AAFIc3RvcmVkX2luX2RhdGFiYXNlXQEBEGJvb2wAARxybHBfYnVmGAEcVmVjPHU4PgABFGluZGV4KAEMdTY0AAA9EQQYT3B0aW9uBARUATABCBBOb25lAAAAEFNvbWUEADAAAAEAAEERDDRwYWxsZXRfcmV2aXZlFGRlYnVnNERlYnVnU2V0dGluZ3MAAAwBdGFsbG93X3VubGltaXRlZF9jb250cmFjdF9zaXplXQEBEGJvb2wAATxieXBhc3NfZWlwXzM2MDddAQEQYm9vbAABIHB2bV9sb2dzXQEBEGJvb2wAAEURDDRwYWxsZXRfcmV2aXZlGHBhbGxldBRFcnJvcgQEVAAB4DxJbnZhbGlkU2NoZWR1bGUAAQQZAUludmFsaWQgc2NoZWR1bGUgc3VwcGxpZWQsIGUuZy4gd2l0aCB6ZXJvIHdlaWdodCBvZiBhIGJhc2ljIG9wZXJhdGlvbi5ASW52YWxpZENhbGxGbGFncwACBDUBSW52YWxpZCBjb21iaW5hdGlvbiBvZiBmbGFncyBzdXBwbGllZCB0byBgc2VhbF9jYWxsYCBvciBgc2VhbF9kZWxlZ2F0ZV9jYWxsYC4gT3V0T2ZHYXMAAwS4VGhlIGV4ZWN1dGVkIGNvbnRyYWN0IGV4aGF1c3RlZCBpdHMgZ2FzIGxpbWl0LjhUcmFuc2ZlckZhaWxlZAAECDUBUGVyZm9ybWluZyB0aGUgcmVxdWVzdGVkIHRyYW5zZmVyIGZhaWxlZC4gUHJvYmFibHkgYmVjYXVzZSB0aGVyZSBpc24ndCBlbm91Z2iUZnJlZSBiYWxhbmNlIGluIHRoZSBzZW5kZXIncyBhY2NvdW50LkxNYXhDYWxsRGVwdGhSZWFjaGVkAAUIIQFQZXJmb3JtaW5nIGEgY2FsbCB3YXMgZGVuaWVkIGJlY2F1c2UgdGhlIGNhbGxpbmcgZGVwdGggcmVhY2hlZCB0aGUgbGltaXSUb2Ygd2hhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIHNjaGVkdWxlLkBDb250cmFjdE5vdEZvdW5kAAYEvE5vIGNvbnRyYWN0IHdhcyBmb3VuZCBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3MuMENvZGVOb3RGb3VuZAAHBMRObyBjb2RlIGNvdWxkIGJlIGZvdW5kIGF0IHRoZSBzdXBwbGllZCBjb2RlIGhhc2guQENvZGVJbmZvTm90Rm91bmQACATYTm8gY29kZSBpbmZvIGNvdWxkIGJlIGZvdW5kIGF0IHRoZSBzdXBwbGllZCBjb2RlIGhhc2guLE91dE9mQm91bmRzAAkEJQFBIGJ1ZmZlciBvdXRzaWRlIG9mIHNhbmRib3ggbWVtb3J5IHdhcyBwYXNzZWQgdG8gYSBjb250cmFjdCBBUEkgZnVuY3Rpb24uOERlY29kaW5nRmFpbGVkAAoEKQFJbnB1dCBwYXNzZWQgdG8gYSBjb250cmFjdCBBUEkgZnVuY3Rpb24gZmFpbGVkIHRvIGRlY29kZSBhcyBleHBlY3RlZCB0eXBlLjxDb250cmFjdFRyYXBwZWQACwSIQ29udHJhY3QgdHJhcHBlZCBkdXJpbmcgZXhlY3V0aW9uLjRWYWx1ZVRvb0xhcmdlAAwE9EV2ZW50IGJvZHkgb3Igc3RvcmFnZSBpdGVtIGV4Y2VlZHMgW2BsaW1pdHM6OlNUT1JBR0VfQllURVNgXS5gVGVybWluYXRlZFdoaWxlUmVlbnRyYW50AA0IGQFUZXJtaW5hdGlvbiBvZiBhIGNvbnRyYWN0IGlzIG5vdCBhbGxvd2VkIHdoaWxlIHRoZSBjb250cmFjdCBpcyBhbHJlYWR54G9uIHRoZSBjYWxsIHN0YWNrLiBDYW4gYmUgdHJpZ2dlcmVkIGJ5IGBzZWFsX3Rlcm1pbmF0ZWAuOElucHV0Rm9yd2FyZGVkAA4EQQFgc2VhbF9jYWxsYCBmb3J3YXJkZWQgdGhpcyBjb250cmFjdHMgaW5wdXQuIEl0IHRoZXJlZm9yZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLjRUb29NYW55VG9waWNzAA8EHQFUaGUgYW1vdW50IG9mIHRvcGljcyBwYXNzZWQgdG8gYHNlYWxfZGVwb3NpdF9ldmVudHNgIGV4Y2VlZHMgdGhlIGxpbWl0LkREdXBsaWNhdGVDb250cmFjdAASBMhBIGNvbnRyYWN0IHdpdGggdGhlIHNhbWUgQWNjb3VudElkIGFscmVhZHkgZXhpc3RzLlxUZXJtaW5hdGVkSW5Db25zdHJ1Y3RvcgATDLhBIGNvbnRyYWN0IHNlbGYgZGVzdHJ1Y3RlZCBpbiBpdHMgY29uc3RydWN0b3IuANBUaGlzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBjYWxsIHRvIGBzZWFsX3Rlcm1pbmF0ZWAuQFJlZW50cmFuY2VEZW5pZWQAFAQNAUEgY2FsbCB0cmllZCB0byBpbnZva2UgYSBjb250cmFjdCB0aGF0IGlzIGZsYWdnZWQgYXMgbm9uLXJlZW50cmFudC48UmVlbnRlcmVkUGFsbGV0ABUELQFBIGNvbnRyYWN0IGNhbGxlZCBpbnRvIHRoZSBydW50aW1lIHdoaWNoIHRoZW4gY2FsbGVkIGJhY2sgaW50byB0aGlzIHBhbGxldC5EU3RhdGVDaGFuZ2VEZW5pZWQAFgRNAUEgY29udHJhY3QgYXR0ZW1wdGVkIHRvIGludm9rZSBhIHN0YXRlIG1vZGlmeWluZyBBUEkgd2hpbGUgYmVpbmcgaW4gcmVhZC1vbmx5IG1vZGUucFN0b3JhZ2VEZXBvc2l0Tm90RW5vdWdoRnVuZHMAFwQhAU9yaWdpbiBkb2Vzbid0IGhhdmUgZW5vdWdoIGJhbGFuY2UgdG8gcGF5IHRoZSByZXF1aXJlZCBzdG9yYWdlIGRlcG9zaXRzLnBTdG9yYWdlRGVwb3NpdExpbWl0RXhoYXVzdGVkABgEDQFNb3JlIHN0b3JhZ2Ugd2FzIGNyZWF0ZWQgdGhhbiBhbGxvd2VkIGJ5IHRoZSBzdG9yYWdlIGRlcG9zaXQgbGltaXQuJENvZGVJblVzZQAZBEkBQ29kZSByZW1vdmFsIHdhcyBkZW5pZWQgYmVjYXVzZSB0aGUgY29kZSBpcyBzdGlsbCBpbiB1c2UgYnkgYXQgbGVhc3Qgb25lIGNvbnRyYWN0LkBDb250cmFjdFJldmVydGVkABoQJQFUaGUgY29udHJhY3QgcmFuIHRvIGNvbXBsZXRpb24gYnV0IGRlY2lkZWQgdG8gcmV2ZXJ0IGl0cyBzdG9yYWdlIGNoYW5nZXMuSQFQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZXJyb3IgaXMgb25seSByZXR1cm5lZCBmcm9tIGV4dHJpbnNpY3MuIFdoZW4gY2FsbGVkIGRpcmVjdGx5XQFvciB2aWEgUlBDIGFuIGBPa2Agd2lsbCBiZSByZXR1cm5lZC4gSW4gdGhpcyBjYXNlIHRoZSBjYWxsZXIgbmVlZHMgdG8gaW5zcGVjdCB0aGUgZmxhZ3PEdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZXZlcnNpb24gaGFzIHRha2VuIHBsYWNlLjBDb2RlUmVqZWN0ZWQAGxAZAVRoZSBjb250cmFjdCBmYWlsZWQgdG8gY29tcGlsZSBvciBpcyBtaXNzaW5nIHRoZSBjb3JyZWN0IGVudHJ5IHBvaW50cy4AUQFBIG1vcmUgZGV0YWlsZWQgZXJyb3IgY2FuIGJlIGZvdW5kIG9uIHRoZSBub2RlIGNvbnNvbGUgaWYgZGVidWcgbWVzc2FnZXMgYXJlIGVuYWJsZWScYnkgc3VwcGx5aW5nIGAtbHJ1bnRpbWU6OnJldml2ZT1kZWJ1Z2AuMEJsb2JUb29MYXJnZQAcBA0BVGhlIGNvZGUgYmxvYiBzdXBwbGllZCBpcyBsYXJnZXIgdGhhbiBbYGxpbWl0czo6Y29kZTo6QkxPQl9CWVRFU2BdLlBTdGF0aWNNZW1vcnlUb29MYXJnZQAdBOBUaGUgY29udHJhY3QgZGVjbGFyZXMgdG9vIG11Y2ggbWVtb3J5IChybyArIHJ3ICsgc3RhY2spLkhCYXNpY0Jsb2NrVG9vTGFyZ2UAHgT8VGhlIHByb2dyYW0gY29udGFpbnMgYSBiYXNpYyBibG9jayB0aGF0IGlzIGxhcmdlciB0aGFuIGFsbG93ZWQuSEludmFsaWRJbnN0cnVjdGlvbgAfBLBUaGUgcHJvZ3JhbSBjb250YWlucyBhbiBpbnZhbGlkIGluc3RydWN0aW9uLnhNYXhEZWxlZ2F0ZURlcGVuZGVuY2llc1JlYWNoZWQAIAQVAVRoZSBjb250cmFjdCBoYXMgcmVhY2hlZCBpdHMgbWF4aW11bSBudW1iZXIgb2YgZGVsZWdhdGUgZGVwZW5kZW5jaWVzLmhEZWxlZ2F0ZURlcGVuZGVuY3lOb3RGb3VuZAAhBBUBVGhlIGRlcGVuZGVuY3kgd2FzIG5vdCBmb3VuZCBpbiB0aGUgY29udHJhY3QncyBkZWxlZ2F0ZSBkZXBlbmRlbmNpZXMufERlbGVnYXRlRGVwZW5kZW5jeUFscmVhZHlFeGlzdHMAIgT4VGhlIGNvbnRyYWN0IGFscmVhZHkgZGVwZW5kcyBvbiB0aGUgZ2l2ZW4gZGVsZWdhdGUgZGVwZW5kZW5jeS6EQ2Fubm90QWRkU2VsZkFzRGVsZWdhdGVEZXBlbmRlbmN5ACMEKQFDYW4gbm90IGFkZCBhIGRlbGVnYXRlIGRlcGVuZGVuY3kgdG8gdGhlIGNvZGUgaGFzaCBvZiB0aGUgY29udHJhY3QgaXRzZWxmLlRPdXRPZlRyYW5zaWVudFN0b3JhZ2UAJASsQ2FuIG5vdCBhZGQgbW9yZSBkYXRhIHRvIHRyYW5zaWVudCBzdG9yYWdlLjhJbnZhbGlkU3lzY2FsbAAlBFUBVGhlIGNvbnRyYWN0IHRyaWVkIHRvIGNhbGwgYSBzeXNjYWxsIHdoaWNoIGRvZXMgbm90IGV4aXN0IChhdCBpdHMgY3VycmVudCBhcGkgbGV2ZWwpLkxJbnZhbGlkU3RvcmFnZUZsYWdzACYEBQFJbnZhbGlkIHN0b3JhZ2UgZmxhZ3Mgd2VyZSBwYXNzZWQgdG8gb25lIG9mIHRoZSBzdG9yYWdlIHN5c2NhbGxzLjxFeGVjdXRpb25GYWlsZWQAJwQpAVBvbGthVk0gZmFpbGVkIGR1cmluZyBjb2RlIGV4ZWN1dGlvbi4gUHJvYmFibHkgZHVlIHRvIGEgbWFsZm9ybWVkIHByb2dyYW0uXEJhbGFuY2VDb252ZXJzaW9uRmFpbGVkACgEmEZhaWxlZCB0byBjb252ZXJ0IGEgVTI1NiB0byBhIEJhbGFuY2UuWEludmFsaWRJbW11dGFibGVBY2Nlc3MAKggxAUltbXV0YWJsZSBkYXRhIGNhbiBvbmx5IGJlIHNldCBkdXJpbmcgZGVwbG95cyBhbmQgb25seSBiZSByZWFkIGR1cmluZyBjYWxscy41AUFkZGl0aW9uYWxseSwgaXQgaXMgb25seSB2YWxpZCB0byBzZXQgdGhlIGRhdGEgb25jZSBhbmQgaXQgbXVzdCBub3QgYmUgZW1wdHkuPEFjY291bnRVbm1hcHBlZAArDFEBQW4gYEFjY291bnRJRDMyYCBhY2NvdW50IHRyaWVkIHRvIGludGVyYWN0IHdpdGggdGhlIHBhbGxldCB3aXRob3V0IGhhdmluZyBhIG1hcHBpbmcuACkBQ2FsbCBbYFBhbGxldDo6bWFwX2FjY291bnRgXSBpbiBvcmRlciB0byBjcmVhdGUgYSBtYXBwaW5nIGZvciB0aGUgYWNjb3VudC5QQWNjb3VudEFscmVhZHlNYXBwZWQALAS8VHJpZWQgdG8gbWFwIGFuIGFjY291bnQgdGhhdCBpcyBhbHJlYWR5IG1hcHBlZC5kSW52YWxpZEdlbmVyaWNUcmFuc2FjdGlvbgAtBNhUaGUgdHJhbnNhY3Rpb24gdXNlZCB0byBkcnktcnVuIGEgY29udHJhY3QgaXMgaW52YWxpZC5cUmVmY291bnRPdmVyT3JVbmRlcmZsb3cALgTIVGhlIHJlZmNvdW50IG9mIGEgY29kZSBlaXRoZXIgb3ZlciBvciB1bmRlcmZsb3dlZC5wVW5zdXBwb3J0ZWRQcmVjb21waWxlQWRkcmVzcwAvBHxVbnN1cHBvcnRlZCBwcmVjb21waWxlIGFkZHJlc3MuQENhbGxEYXRhVG9vTGFyZ2UAMATAVGhlIGNhbGxkYXRhIGV4Y2VlZHMgW2BsaW1pdHM6OkNBTExEQVRBX0JZVEVTYF0uSFJldHVybkRhdGFUb29MYXJnZQAxBMxUaGUgcmV0dXJuIGRhdGEgZXhjZWVkcyBbYGxpbWl0czo6Q0FMTERBVEFfQllURVNgXS4sSW52YWxpZEp1bXAAMgQ5AUludmFsaWQganVtcCBkZXN0aW5hdGlvbi4gRHluYW1pYyBqdW1wcyBwb2ludHMgdG8gaW52YWxpZCBub3QganVtcGRlc3Qgb3Bjb2RlLjhTdGFja1VuZGVyZmxvdwAzBLhBdHRlbXB0aW5nIHRvIHBvcCBhIHZhbHVlIGZyb20gYW4gZW1wdHkgc3RhY2suNFN0YWNrT3ZlcmZsb3cANAS0QXR0ZW1wdGluZyB0byBwdXNoIGEgdmFsdWUgb250byBhIGZ1bGwgc3RhY2suNFR4RmVlT3ZlcmRyYXcANQwRAVRvbyBtdWNoIGRlcG9zaXQgd2FzIGRyYXduIGZyb20gdGhlIHNoYXJlZCB0eGZlZSBhbmQgZGVwb3NpdCBjcmVkaXQuADEBVGhpcyBoYXBwZW5zIGlmIHRoZSBwYXNzZWQgYGdhc2AgaW5zaWRlIHRoZSBldGhlcmV1bSB0cmFuc2FjdGlvbiBpcyB0b28gbG93LmhFdm1Db25zdHJ1Y3Rvck5vbkVtcHR5RGF0YQA2DNxXaGVuIGNhbGxpbmcgYW4gRVZNIGNvbnN0cnVjdG9yIGBkYXRhYCBoYXMgdG8gYmUgZW1wdHkuAFkBRVZNIGNvbnN0cnVjdG9ycyBkbyBub3QgYWNjZXB0IGRhdGEuIFRoZWlyIGlucHV0IGRhdGEgaXMgcGFydCBvZiB0aGUgY29kZSBibG9iIGl0c2VsZi5YRXZtQ29uc3RydWN0ZWRGcm9tSGFzaAA3EMRUcmllZCB0byBjb25zdHJ1Y3QgYW4gRVZNIGNvbnRyYWN0IHZpYSBjb2RlIGhhc2guACEBRVZNIGNvbnRyYWN0cyBjYW4gb25seSBiZSBpbnN0YW50aWF0ZWQgdmlhIGNvZGUgdXBsb2FkIGFzIG5vIGluaXRjb2RlIGlzQHN0b3JlZCBvbi1jaGFpbi5sU3RvcmFnZVJlZnVuZE5vdEVub3VnaEZ1bmRzADgMIQFUaGUgY29udHJhY3QgZG9lcyBub3QgaGF2ZSBlbm91Z2ggYmFsYW5jZSB0byByZWZ1bmQgdGhlIHN0b3JhZ2UgZGVwb3NpdC4APQFUaGlzIGlzIGEgYnVnIGFuZCBzaG91bGQgbmV2ZXIgaGFwcGVuLiBJdCBtZWFucyB0aGUgYWNjb3VudGluZyBnb3Qgb3V0IG9mIHN5bmMuTFN0b3JhZ2VSZWZ1bmRMb2NrZWQAORBdAVRoaXMgbWVhbnMgdGhlcmUgYXJlIGxvY2tzIG9uIHRoZSBjb250cmFjdHMgc3RvcmFnZSBkZXBvc2l0IHRoYXQgcHJldmVudHMgcmVmdW5kaW5nIGl0LgA9AVRoaXMgd291bGQgYmUgdGhlIGNhc2UgaWYgdGhlIGNvbnRyYWN0IHVzZWQgaXRzIHN0b3JhZ2UgZGVwb3NpdHMgZm9yIGdvdmVybmFuY2X0b3Igb3RoZXIgcGFsbGV0cyB0aGF0IGFsbG93IGNyZWF0aW5nIGxvY2tzIG92ZXIgaGVsZCBiYWxhbmNlLmBQcmVjb21waWxlRGVsZWdhdGVEZW5pZWQAQBD8Q2FsbGVkIGEgcHJlLWNvbXBpbGUgdGhhdCBpcyBub3QgYWxsb3dlZCB0byBiZSBkZWxlZ2F0ZSBjYWxsZWQuACUBU29tZSBwcmUtY29tcGlsZSBmdW5jdGlvbnMgd2lsbCB0cmFwIHRoZSBjYWxsZXIgY29udGV4dCBpZiBiZWluZyBkZWxlZ2F0ZdBjYWxsZWQgb3IgaWYgdGhlaXIgY2FsbGVyIHdhcyBiZWluZyBkZWxlZ2F0ZSBjYWxsZWQuTEVjZHNhUmVjb3ZlcnlGYWlsZWQAQQQ9AUVDRFNBIHB1YmxpYyBrZXkgcmVjb3ZlcnkgZmFpbGVkLiBNb3N0IHByb2JhYmx5IHdyb25nIHJlY292ZXJ5IGlkIG9yIHNpZ25hdHVyZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSREMLHBhbGxldF9zdWRvGHBhbGxldBRFcnJvcgQEVAABBCxSZXF1aXJlU3VkbwAABIBTZW5kZXIgbXVzdCBiZSB0aGUgU3VkbyBhY2NvdW50LgRoRXJyb3IgZm9yIHRoZSBTdWRvIHBhbGxldC5NEQAABAw4oAQAUREMNHBhbGxldF9haF9vcHMYcGFsbGV0FEVycm9yBARUAAE8OE5vTGVhc2VSZXNlcnZlAAAEuEVpdGhlciBubyBsZWFzZSBkZXBvc2l0IG9yIGFscmVhZHkgdW5yZXNlcnZlZC5cTm9Dcm93ZGxvYW5Db250cmlidXRpb24AAQTYRWl0aGVyIG5vIGNyb3dkbG9hbiBjb250cmlidXRpb24gb3IgYWxyZWFkeSB3aXRoZHJhd24uSE5vQ3Jvd2Rsb2FuUmVzZXJ2ZQACBMhFaXRoZXIgbm8gY3Jvd2Rsb2FuIHJlc2VydmUgb3IgYWxyZWFkeSB1bnJlc2VydmVkLpRGYWlsZWRUb1dpdGhkcmF3Q3Jvd2Rsb2FuQ29udHJpYnV0aW9uAAMEqEZhaWxlZCB0byB3aXRoZHJhdyBjcm93ZGxvYW4gY29udHJpYnV0aW9uLhhOb3RZZXQABASAQmxvY2sgbnVtYmVyIGlzIG5vdCB5ZXQgcmVhY2hlZC5YQ29udHJpYnV0aW9uc1JlbWFpbmluZwAFBJBOb3QgYWxsIGNvbnRyaWJ1dGlvbnMgYXJlIHdpdGhkcmF3bi5cV3JvbmdEZXJpdmVkVHJhbnNsYXRpb24ABgSUVGhlIGFjY291bnQgaXMgbm90IGEgZGVyaXZlZCBhY2NvdW50LjBOb3RTb3ZlcmVpZ24ABwQlAUFjY291bnQgY2Fubm90IGJlIG1pZ3JhdGVkIHNpbmNlIGl0IGlzIG5vdCBhIHNvdmVyZWlnbiBwYXJhY2hhaW4gYWNjb3VudC40SW50ZXJuYWxFcnJvcgAIBIhJbnRlcm5hbCBlcnJvciwgcGxlYXNlIGJ1ZyByZXBvcnQuVE1pZ3JhdGlvbk5vdENvbXBsZXRlZAAJBKRUaGUgQXNzZXQgSHViIG1pZ3JhdGlvbiBpcyBub3QgY29tcGxldGVkLixaZXJvQmFsYW5jZQAKBFBUaGUgYmFsYW5jZSBpcyB6ZXJvLkBGYWlsZWRUb1RyYW5zZmVyAAsEbEZhaWxlZCB0byB0cmFuc2ZlciBiYWxhbmNlLkRBbHJlYWR5VHJhbnNsYXRlZAAMBKBUaGUgYWNjb3VudCBoYXMgYWxyZWFkeSBiZWVuIHRyYW5zbGF0ZWQuVFRvb0xvbmdEZXJpdmF0aW9uUGF0aAANBIBUaGUgZGVyaXZhdGlvbiBwYXRoIGlzIHRvbyBsb25nLlBGYWlsZWRUb0ZvcmNlVW5zdGFrZQAOBGBGYWlsZWQgdG8gZm9yY2UgdW5zdGFrZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuVREISHBhbGxldF9haF9taWdyYXRvcjhCYWxhbmNlc0JlZm9yZQQcQmFsYW5jZQFZAQAIAUBjaGVja2luZ19hY2NvdW50WQEBHEJhbGFuY2UAATh0b3RhbF9pc3N1YW5jZVkBARxCYWxhbmNlAABZEQxIcGFsbGV0X2FoX21pZ3JhdG9yGHBhbGxldBRFcnJvcgQEVAABTGBGYWlsZWRUb1VucmVzZXJ2ZURlcG9zaXQAAARwRmFpbGVkIHRvIHVucmVzZXJ2ZSBkZXBvc2l0LlhGYWlsZWRUb1Byb2Nlc3NBY2NvdW50AAEEqEZhaWxlZCB0byBwcm9jZXNzIGFuIGFjY291bnQgZGF0YSBmcm9tIFJDLjhJbnNlcnRDb25mbGljdAACBOhTb21lIGl0ZW0gY291bGQgbm90IGJlIGluc2VydGVkIGJlY2F1c2UgaXQgYWxyZWFkeSBleGlzdHMuTEZhaWxlZFRvQ29udmVydFR5cGUAAwSURmFpbGVkIHRvIGNvbnZlcnQgUkMgdHlwZSB0byBBSCB0eXBlLkBQcmVpbWFnZU5vdEZvdW5kAAQEZEZhaWxlZCB0byBmZXRjaCBwcmVpbWFnZS5MRmFpbGVkVG9Db252ZXJ0Q2FsbAAFBJRGYWlsZWQgdG8gY29udmVydCBSQyBjYWxsIHRvIEFIIGNhbGwuREZhaWxlZFRvQm91bmRDYWxsAAYEXEZhaWxlZCB0byBib3VuZCBhIGNhbGwuIFhjbUVycm9yAAcEbEZhaWxlZCB0byBzZW5kIFhDTSBtZXNzYWdlLoBGYWlsZWRUb0ludGVncmF0ZVZlc3RpbmdTY2hlZHVsZQAIBJxGYWlsZWQgdG8gaW50ZWdyYXRlIGEgdmVzdGluZyBzY2hlZHVsZS6ARmFpbGVkVG9DYWxjdWxhdGVDaGVja2luZ0FjY291bnQACQScQ2hlY2tpbmcgYWNjb3VudCBvdmVyZmxvdyBvciB1bmRlcmZsb3cuTEZhaWxlZFRvQm91bmRWZWN0b3IACgS8VmVjdG9yIGRpZCBub3QgZml0IGludG8gaXRzIGNvbXBpbGUtdGltZSBib3VuZC5oRG1wUXVldWVQcmlvcml0eUFscmVhZHlTZXQACwTgVGhlIERNUCBxdWV1ZSBwcmlvcml0eSBpcyBhbHJlYWR5IHNldCB0byB0aGUgc2FtZSB2YWx1ZS5ASW52YWxpZFBhcmFtZXRlcgAMBEhJbnZhbGlkIHBhcmFtZXRlci48UHJlaW1hZ2VNaXNzaW5nAA0ERFByZWltYWdlIG1pc3NpbmcuOFByZWltYWdlVG9vQmlnAA4ERFByZWltYWdlIHRvbyBiaWcuUFByZWltYWdlQ2h1bmtNaXNzaW5nAA8EXFByZWltYWdlIGNodW5rIG1pc3NpbmcuVFByZWltYWdlU3RhdHVzSW52YWxpZAAQBGBQcmVpbWFnZSBzdGF0dXMgaW52YWxpZC40QmFkWGNtVmVyc2lvbgARBGxUaGUgWENNIHZlcnNpb24gaXMgaW52YWxpZC40SW52YWxpZE9yaWdpbgASBFhUaGUgb3JpZ2luIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ll0RCEhzcF9jb25zZW5zdXNfc2xvdHMwU2xvdER1cmF0aW9uAAAEACgBDHU2NAAAYREQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jayRMYXp5QmxvY2sIGEhlYWRlcgFgJEV4dHJpbnNpYwHtCwAIARhoZWFkZXJgARhIZWFkZXIAAShleHRyaW5zaWNzZREBUFZlYzxPcGFxdWVFeHRyaW5zaWM+AABlEQAAAmkRAGkRCChzcF9ydW50aW1lPE9wYXF1ZUV4dHJpbnNpYwAABAAYARxWZWM8dTg+AABtEQgoc3BfcnVudGltZVhFeHRyaW5zaWNJbmNsdXNpb25Nb2RlAAEINEFsbEV4dHJpbnNpY3MAAAA0T25seUluaGVyZW50cwABAABxEQgcc3BfY29yZThPcGFxdWVNZXRhZGF0YQAABAAYARxWZWM8dTg+AAB1EQQYT3B0aW9uBARUAXERAQgQTm9uZQAAABBTb21lBABxEQAAAQAAeREEGFJlc3VsdAgEVAFNCgRFAX0RAQgIT2sEAE0KAAAAAAxFcnIEAH0RAAABAAB9EQwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eWBUcmFuc2FjdGlvblZhbGlkaXR5RXJyb3IAAQgcSW52YWxpZAQAgREBSEludmFsaWRUcmFuc2FjdGlvbgAAABxVbmtub3duBACFEQFIVW5rbm93blRyYW5zYWN0aW9uAAEAAIERDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SEludmFsaWRUcmFuc2FjdGlvbgABNBBDYWxsAAAAHFBheW1lbnQAAQAYRnV0dXJlAAIAFFN0YWxlAAMAIEJhZFByb29mAAQAREFuY2llbnRCaXJ0aEJsb2NrAAUAREV4aGF1c3RzUmVzb3VyY2VzAAYAGEN1c3RvbQQADAEIdTgABwAwQmFkTWFuZGF0b3J5AAgATE1hbmRhdG9yeVZhbGlkYXRpb24ACQAkQmFkU2lnbmVyAAoAVEluZGV0ZXJtaW5hdGVJbXBsaWNpdAALADRVbmtub3duT3JpZ2luAAwAAIURDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SFVua25vd25UcmFuc2FjdGlvbgABDDBDYW5ub3RMb29rdXAAAABMTm9VbnNpZ25lZFZhbGlkYXRvcgABABhDdXN0b20EAAwBCHU4AAIAAIkRCDBzcF9pbmhlcmVudHMwSW5oZXJlbnREYXRhAAAEARBkYXRhjREBlEJUcmVlTWFwPEluaGVyZW50SWRlbnRpZmllciwgVmVjPHU4Pj4AAI0RBCBCVHJlZU1hcAgESwFdAgRWARgABACREQAAAJERAAAClREAlREAAAQIXQIYAJkRCDBzcF9pbmhlcmVudHNQQ2hlY2tJbmhlcmVudHNSZXN1bHQAAAwBEG9rYXldAQEQYm9vbAABLGZhdGFsX2Vycm9yXQEBEGJvb2wAARhlcnJvcnOJEQEwSW5oZXJlbnREYXRhAACdEQwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAAKERBBhSZXN1bHQIBFQBpREERQF9EQEICE9rBAClEQAAAAAMRXJyBAB9EQAAAQAApREMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkoAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5KAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGVdAQEQYm9vbAAAqREEGE9wdGlvbgQEVAGtEQEIEE5vbmUAAAAQU29tZQQArREAAAEAAK0RAAACsREAsREAAAQIGB0NALURDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zOFZpZXdGdW5jdGlvbklkAAAIARhwcmVmaXhhAgEgW3U4OyAxNl0AARhzdWZmaXhhAgEgW3U4OyAxNl0AALkRBBhSZXN1bHQIBFQBGARFAb0RAQgIT2sEABgAAAAADEVycgQAvREAAAEAAL0RDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zZFZpZXdGdW5jdGlvbkRpc3BhdGNoRXJyb3IAAQw4Tm90SW1wbGVtZW50ZWQAAAAgTm90Rm91bmQEALURAThWaWV3RnVuY3Rpb25JZAABABRDb2RlYwACAADBEQxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXNMUnVudGltZURpc3BhdGNoSW5mbwgcQmFsYW5jZQFZARhXZWlnaHQBFQEADAEYd2VpZ2h0FQEBGFdlaWdodAABFGNsYXNzIQoBNERpc3BhdGNoQ2xhc3MAASxwYXJ0aWFsX2ZlZVkBARxCYWxhbmNlAADFEQxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQFZAQAIATRpbmNsdXNpb25fZmVlyREBdE9wdGlvbjxJbmNsdXNpb25GZWU8QmFsYW5jZT4+AAEMdGlwWQEBHEJhbGFuY2UAAMkRBBhPcHRpb24EBFQBzREBCBBOb25lAAAAEFNvbWUEAM0RAAABAADNEQxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMwSW5jbHVzaW9uRmVlBBxCYWxhbmNlAVkBAAwBIGJhc2VfZmVlWQEBHEJhbGFuY2UAARxsZW5fZmVlWQEBHEJhbGFuY2UAAUxhZGp1c3RlZF93ZWlnaHRfZmVlWQEBHEJhbGFuY2UAANERBBhSZXN1bHQIBFQB1REERQHZEQEICE9rBADVEQAAAAAMRXJyBADZEQAAAQAA1REAAAKlAwDZEQxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAN0RBBhSZXN1bHQIBFQBFQEERQHZEQEICE9rBAAVAQAAAAAMRXJyBADZEQAAAQAA4REEGFJlc3VsdAgEVAFZAQRFAdkRAQgIT2sEAFkBAAAAAAxFcnIEANkRAAABAADlEQQYUmVzdWx0CARUAXEDBEUB2REBCAhPawQAcQMAAAAADEVycgQA2REAAAEAAOkRBBhSZXN1bHQIBFQB7REERQEFEgEICE9rBADtEQAAAAAMRXJyBAAFEgAAAQAA7REMQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkRDYWxsRHJ5UnVuRWZmZWN0cwQURXZlbnQBFQoAEAFAZXhlY3V0aW9uX3Jlc3VsdDELAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwABOGVtaXR0ZWRfZXZlbnRz8REBKFZlYzxFdmVudD4AASRsb2NhbF94Y231EQFgT3B0aW9uPFZlcnNpb25lZFhjbTwoKT4+AAE4Zm9yd2FyZGVkX3hjbXP5EQG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AAPERAAACFQoA9REEGE9wdGlvbgQEVAE1AgEIEE5vbmUAAAAQU29tZQQANQIAAAEAAPkRAAAC/REA/REAAAQIrQEBEgABEgAAAjUCAAUSDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW4URXJyb3IAAQg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAAkSBBhSZXN1bHQIBFQBDRIERQEFEgEICE9rBAANEgAAAAAMRXJyBAAFEgAAAQAADRIMQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkBYY21EcnlSdW5FZmZlY3RzBBRFdmVudAEVCgAMAUBleGVjdXRpb25fcmVzdWx0wQoBHE91dGNvbWUAAThlbWl0dGVkX2V2ZW50c/ERAShWZWM8RXZlbnQ+AAE4Zm9yd2FyZGVkX3hjbXP5EQG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AABESBBhSZXN1bHQIBFQBBARFARUSAQgIT2sEAAQAAAAADEVycgQAFRIAAAEAABUSDEB4Y21fcnVudGltZV9hcGlzLGNvbnZlcnNpb25zFEVycm9yAAEILFVuc3VwcG9ydGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAAGRIIDHhjbThWZXJzaW9uZWRBc3NldAABDAhWMwQATQIBOHYzOjpNdWx0aUFzc2V0AAMACFY0BADBAgEkdjQ6OkFzc2V0AAQACFY1BAANAwEkdjU6OkFzc2V0AAUAAB0SBBhSZXN1bHQIBFQBXQEERQEhEgEICE9rBABdAQAAAAAMRXJyBAAhEgAAAQAAIRIMQHhjbV9ydW50aW1lX2FwaXM0dHJ1c3RlZF9xdWVyeRRFcnJvcgABCHhWZXJzaW9uZWRBc3NldENvbnZlcnNpb25GYWlsZWQAAACEVmVyc2lvbmVkTG9jYXRpb25Db252ZXJzaW9uRmFpbGVkAAEAACUSBBhSZXN1bHQIBFQBwQ0ERQEpEgEICE9rBADBDQAAAAAMRXJyBAApEgAAAQAAKRIMQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzFEVycm9yAAEEfExvY2F0aW9uVmVyc2lvbkNvbnZlcnNpb25GYWlsZWQAAAAALRIEGFJlc3VsdAgEVAFdAQRFASkSAQgIT2sEAF0BAAAAAAxFcnIEACkSAAABAAAxEgQYUmVzdWx0CARUAXEDBEUBNRIBCAhPawQAcQMAAAAADEVycgQANRIAAAEAADUSDDRhc3NldHNfY29tbW9uLHJ1bnRpbWVfYXBpUEZ1bmdpYmxlc0FjY2Vzc0Vycm9yAAEIXEFzc2V0SWRDb252ZXJzaW9uRmFpbGVkAAAAfEFtb3VudFRvQmFsYW5jZUNvbnZlcnNpb25GYWlsZWQAAQAAORIIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlNENvbGxhdGlvbkluZm8AABgBPHVwd2FyZF9tZXNzYWdlczQBSFZlYzxVcHdhcmRNZXNzYWdlPgABTGhvcml6b250YWxfbWVzc2FnZXNdDAFgVmVjPE91dGJvdW5kSHJtcE1lc3NhZ2U+AAFMbmV3X3ZhbGlkYXRpb25fY29kZT0SAYxPcHRpb248cmVsYXlfY2hhaW46OlZhbGlkYXRpb25Db2RlPgABbHByb2Nlc3NlZF9kb3dud2FyZF9tZXNzYWdlczgBDHUzMgABOGhybXBfd2F0ZXJtYXJrOAFgcmVsYXlfY2hhaW46OkJsb2NrTnVtYmVyAAEkaGVhZF9kYXRhUAEgSGVhZERhdGEAAD0SBBhPcHRpb24EBFQBQRIBCBBOb25lAAAAEFNvbWUEAEESAAABAABBEgx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAAYARxWZWM8dTg+AABFEgQYUmVzdWx0CARUARAERQG1CwEICE9rBAAQAAAAAAxFcnIEALULAAABAABJEgQYT3B0aW9uBARUAbULAQgQTm9uZQAAABBTb21lBAC1CwAAAQAATRIAAAK1CwBREgQYT3B0aW9uBARUAREPAQgQTm9uZQAAABBTb21lBAARDwAAAQAAVRIAAAQIBAQAWRIMYHN5c3RlbV9wYXJhY2hhaW5zX2NvbW1vbhBhcGlzNEluZmxhdGlvbkluZm8AAAgBIGlzc3VhbmNlXRIBXHNwX3J1bnRpbWU6OlBlcnF1aW50aWxsAAEkbmV4dF9taW50EQ8B8Chwb2xrYWRvdF9wcmltaXRpdmVzOjpCYWxhbmNlLCBwb2xrYWRvdF9wcmltaXRpdmVzOjpCYWxhbmNlKQAAXRIMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncyxQZXJxdWludGlsbAAABAAoAQx1NjQAAGESDDRwYWxsZXRfcmV2aXZlKHByaW1pdGl2ZXM4Q29udHJhY3RSZXN1bHQIBFIBZRIcQmFsYW5jZQFZAQAYATx3ZWlnaHRfY29uc3VtZWQVAQEYV2VpZ2h0AAE8d2VpZ2h0X3JlcXVpcmVkFQEBGFdlaWdodAABPHN0b3JhZ2VfZGVwb3NpdG0SAVxTdG9yYWdlRGVwb3NpdDxCYWxhbmNlPgABTG1heF9zdG9yYWdlX2RlcG9zaXRtEgFcU3RvcmFnZURlcG9zaXQ8QmFsYW5jZT4AATBnYXNfY29uc3VtZWRZAQEcQmFsYW5jZQABGHJlc3VsdHESAWBSZXN1bHQ8UiwgRGlzcGF0Y2hFcnJvcj4AAGUSDDRwYWxsZXRfcmV2aXZlKHByaW1pdGl2ZXM8RXhlY1JldHVyblZhbHVlAAAIARRmbGFnc2kSASxSZXR1cm5GbGFncwABEGRhdGEYARxWZWM8dTg+AABpEgxIcGFsbGV0X3Jldml2ZV91YXBpFGZsYWdzLFJldHVybkZsYWdzAAAEARBiaXRzOAEMdTMyAABtEgw0cGFsbGV0X3Jldml2ZShwcmltaXRpdmVzOFN0b3JhZ2VEZXBvc2l0BBxCYWxhbmNlAVkBAQgYUmVmdW5kBABZAQEcQmFsYW5jZQAAABhDaGFyZ2UEAFkBARxCYWxhbmNlAAEAAHESBBhSZXN1bHQIBFQBZRIERQEpCgEICE9rBABlEgAAAAAMRXJyBAApCgAAAQAAdRIMNHBhbGxldF9yZXZpdmUocHJpbWl0aXZlcxBDb2RlAAEIGFVwbG9hZAQAGAEcVmVjPHU4PgAAACBFeGlzdGluZwQAQAE0c3BfY29yZTo6SDI1NgABAAB5Egw0cGFsbGV0X3Jldml2ZShwcmltaXRpdmVzOENvbnRyYWN0UmVzdWx0CARSAX0SHEJhbGFuY2UBWQEAGAE8d2VpZ2h0X2NvbnN1bWVkFQEBGFdlaWdodAABPHdlaWdodF9yZXF1aXJlZBUBARhXZWlnaHQAATxzdG9yYWdlX2RlcG9zaXRtEgFcU3RvcmFnZURlcG9zaXQ8QmFsYW5jZT4AAUxtYXhfc3RvcmFnZV9kZXBvc2l0bRIBXFN0b3JhZ2VEZXBvc2l0PEJhbGFuY2U+AAEwZ2FzX2NvbnN1bWVkWQEBHEJhbGFuY2UAARhyZXN1bHSBEgFgUmVzdWx0PFIsIERpc3BhdGNoRXJyb3I+AAB9Egw0cGFsbGV0X3Jldml2ZShwcmltaXRpdmVzWEluc3RhbnRpYXRlUmV0dXJuVmFsdWUAAAgBGHJlc3VsdGUSATxFeGVjUmV0dXJuVmFsdWUAARBhZGRy3QYBEEgxNjAAAIESBBhSZXN1bHQIBFQBfRIERQEpCgEICE9rBAB9EgAAAAAMRXJyBAApCgAAAQAAhRIUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTRycGNfdHlwZXNfZ2VuSEdlbmVyaWNUcmFuc2FjdGlvbgAAQAEsYWNjZXNzX2xpc3SJEgFIT3B0aW9uPEFjY2Vzc0xpc3Q+AAFIYXV0aG9yaXphdGlvbl9saXN0+RABbFZlYzxBdXRob3JpemF0aW9uTGlzdEVudHJ5PgABVGJsb2JfdmVyc2lvbmVkX2hhc2hlc8QBJFZlYzxIMjU2PgABFGJsb2JzjRIBKFZlYzxCeXRlcz4AASBjaGFpbl9pZNUQATBPcHRpb248VTI1Nj4AARBmcm9tEREBPE9wdGlvbjxBZGRyZXNzPgABDGdhc9UQATBPcHRpb248VTI1Nj4AASRnYXNfcHJpY2XVEAEwT3B0aW9uPFUyNTY+AAEUaW5wdXSREgEsSW5wdXRPckRhdGEAAVBtYXhfZmVlX3Blcl9ibG9iX2dhc9UQATBPcHRpb248VTI1Nj4AATxtYXhfZmVlX3Blcl9nYXPVEAEwT3B0aW9uPFUyNTY+AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz1RABME9wdGlvbjxVMjU2PgABFG5vbmNl1RABME9wdGlvbjxVMjU2PgABCHRvEREBPE9wdGlvbjxBZGRyZXNzPgABGHIjdHlwZZkSATBPcHRpb248Qnl0ZT4AARR2YWx1ZdUQATBPcHRpb248VTI1Nj4AAIkSBBhPcHRpb24EBFQB8RABCBBOb25lAAAAEFNvbWUEAPEQAAABAACNEgAAAsUQAJESFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk0cnBjX3R5cGVzX2dlbixJbnB1dE9yRGF0YQAACAEUaW5wdXSVEgE0T3B0aW9uPEJ5dGVzPgABEGRhdGGVEgE0T3B0aW9uPEJ5dGVzPgAAlRIEGE9wdGlvbgQEVAHFEAEIEE5vbmUAAAAQU29tZQQAxRAAAAEAAJkSBBhPcHRpb24EBFQBnRIBCBBOb25lAAAAEFNvbWUEAJ0SAAABAACdEhQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpEGJ5dGUQQnl0ZQAABAAMAQh1OAAAoRIEGFJlc3VsdAgEVAGlEgRFAakSAQgIT2sEAKUSAAAAAAxFcnIEAKkSAAABAAClEgw0cGFsbGV0X3Jldml2ZShwcmltaXRpdmVzPEV0aFRyYW5zYWN0SW5mbwQcQmFsYW5jZQFZAQAUATx3ZWlnaHRfcmVxdWlyZWQVAQEYV2VpZ2h0AAE8c3RvcmFnZV9kZXBvc2l0WQEBHEJhbGFuY2UAAUxtYXhfc3RvcmFnZV9kZXBvc2l0WQEBHEJhbGFuY2UAARxldGhfZ2Fz5QYBEFUyNTYAARBkYXRhGAEcVmVjPHU4PgAAqRIMNHBhbGxldF9yZXZpdmUocHJpbWl0aXZlc0BFdGhUcmFuc2FjdEVycm9yAAEIEERhdGEEABgBHFZlYzx1OD4AAAAcTWVzc2FnZQQAtQsBGFN0cmluZwABAACtEhQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpJHJwY190eXBlczBEcnlSdW5Db25maWcEGE1vbWVudAEoAAgBSHRpbWVzdGFtcF9vdmVycmlkZQEBAThPcHRpb248TW9tZW50PgABIHJlc2VydmVksRIBKE9wdGlvbjwoKT4AALESBBhPcHRpb24EBFQBEAEIEE5vbmUAAAAQU29tZQQAEAAAAQAAtRIEGFJlc3VsdAgEVAG5EgRFASkKAQgIT2sEALkSAAAAAAxFcnIEACkKAAABAAC5Egw0cGFsbGV0X3Jldml2ZShwcmltaXRpdmVzVENvZGVVcGxvYWRSZXR1cm5WYWx1ZQQcQmFsYW5jZQFZAQAIASRjb2RlX2hhc2hAATRzcF9jb3JlOjpIMjU2AAEcZGVwb3NpdFkBARxCYWxhbmNlAAC9EgQYUmVzdWx0CARUAU0BBEUBwRIBCAhPawQATQEAAAAADEVycgQAwRIAAAEAAMESDDRwYWxsZXRfcmV2aXZlKHByaW1pdGl2ZXNMQ29udHJhY3RBY2Nlc3NFcnJvcgABDCxEb2VzbnRFeGlzdAAAAERLZXlEZWNvZGluZ0ZhaWxlZAABAEhTdG9yYWdlV3JpdGVGYWlsZWQEACkKATREaXNwYXRjaEVycm9yAAIAAMUSFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk8ZGVidWdfcnBjX3R5cGVzKFRyYWNlclR5cGUAAQgoQ2FsbFRyYWNlcgQAyRIBYE9wdGlvbjxDYWxsVHJhY2VyQ29uZmlnPgAAADhQcmVzdGF0ZVRyYWNlcgQA0RIBcE9wdGlvbjxQcmVzdGF0ZVRyYWNlckNvbmZpZz4AAQAAyRIEGE9wdGlvbgQEVAHNEgEIEE5vbmUAAAAQU29tZQQAzRIAAAEAAM0SFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk8ZGVidWdfcnBjX3R5cGVzQENhbGxUcmFjZXJDb25maWcAAAgBJHdpdGhfbG9nc10BARBib29sAAE0b25seV90b3BfY2FsbF0BARBib29sAADREgQYT3B0aW9uBARUAdUSAQgQTm9uZQAAABBTb21lBADVEgAAAQAA1RIUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTxkZWJ1Z19ycGNfdHlwZXNQUHJlc3RhdGVUcmFjZXJDb25maWcAAAwBJGRpZmZfbW9kZV0BARBib29sAAE8ZGlzYWJsZV9zdG9yYWdlXQEBEGJvb2wAATBkaXNhYmxlX2NvZGVdAQEQYm9vbAAA2RIAAALdEgDdEgAABAg44RIA4RIUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTxkZWJ1Z19ycGNfdHlwZXMUVHJhY2UAAQgQQ2FsbAQA5RIBJENhbGxUcmFjZQAAACBQcmVzdGF0ZQQA+RIBNFByZXN0YXRlVHJhY2UAAQAA5RIUNHBhbGxldF9yZXZpdmUMZXZtDGFwaTxkZWJ1Z19ycGNfdHlwZXMkQ2FsbFRyYWNlBAxHYXMB5QYANAEQZnJvbd0GARBIMTYwAAEMZ2Fz5QYBDEdhcwABIGdhc191c2Vk5QYBDEdhcwABCHRv3QYBEEgxNjAAARRpbnB1dMUQARRCeXRlcwABGG91dHB1dMUQARRCeXRlcwABFGVycm9ySRIBOE9wdGlvbjxTdHJpbmc+AAE0cmV2ZXJ0X3JlYXNvbkkSAThPcHRpb248U3RyaW5nPgABFGNhbGxz6RIBTFZlYzxDYWxsVHJhY2U8R2FzPj4AARBsb2dz7RIBMFZlYzxDYWxsTG9nPgABFHZhbHVl1RABME9wdGlvbjxVMjU2PgABJGNhbGxfdHlwZfUSASBDYWxsVHlwZQABQGNoaWxkX2NhbGxfY291bnQ4AQx1MzIAAOkSAAAC5RIA7RIAAALxEgDxEhQ0cGFsbGV0X3Jldml2ZQxldm0MYXBpPGRlYnVnX3JwY190eXBlcxxDYWxsTG9nAAAQARxhZGRyZXNz3QYBEEgxNjAAARh0b3BpY3PEASRWZWM8SDI1Nj4AARBkYXRhxRABFEJ5dGVzAAEgcG9zaXRpb244AQx1MzIAAPUSFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk8ZGVidWdfcnBjX3R5cGVzIENhbGxUeXBlAAEYEENhbGwAAAAoU3RhdGljQ2FsbAABADBEZWxlZ2F0ZUNhbGwAAgAYQ3JlYXRlAAMAHENyZWF0ZTIABAAwU2VsZmRlc3RydWN0AAUAAPkSFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk8ZGVidWdfcnBjX3R5cGVzNFByZXN0YXRlVHJhY2UAAQggUHJlc3RhdGUEAP0SAYRCVHJlZU1hcDxIMTYwLCBQcmVzdGF0ZVRyYWNlSW5mbz4AAAAgRGlmZk1vZGUIAQxwcmX9EgGEQlRyZWVNYXA8SDE2MCwgUHJlc3RhdGVUcmFjZUluZm8+AAEQcG9zdP0SAYRCVHJlZU1hcDxIMTYwLCBQcmVzdGF0ZVRyYWNlSW5mbz4AAQAA/RIEIEJUcmVlTWFwCARLAd0GBFYBARMABAAREwAAAAETFDRwYWxsZXRfcmV2aXZlDGV2bQxhcGk8ZGVidWdfcnBjX3R5cGVzRFByZXN0YXRlVHJhY2VJbmZvAAAQARxiYWxhbmNl1RABME9wdGlvbjxVMjU2PgABFG5vbmNl5AEsT3B0aW9uPHUzMj4AARBjb2RllRIBNE9wdGlvbjxCeXRlcz4AARxzdG9yYWdlBRMBeEJUcmVlTWFwPEJ5dGVzLCBPcHRpb248Qnl0ZXM+PgAABRMEIEJUcmVlTWFwCARLAcUQBFYBlRIABAAJEwAAAAkTAAACDRMADRMAAAQIxRCVEgAREwAAAhUTABUTAAAECN0GARMAGRMEGE9wdGlvbgQEVAHhEgEIEE5vbmUAAAAQU29tZQQA4RIAAAEAAB0TBBhSZXN1bHQIBFQB4RIERQGpEgEICE9rBADhEgAAAAAMRXJyBACpEgAAAQAAIRMEGFJlc3VsdAgEVAElEwRFASkTAQgIT2sEACUTAAAAAAxFcnIEACkTAAABAAAlEwAABAhZATgAKRMMNHBhbGxldF9yZXZpdmUocHJpbWl0aXZlc1hCYWxhbmNlQ29udmVyc2lvbkVycm9yAAEIFFZhbHVlAAAAEER1c3QAAQAALRMIXGFzc2V0X2h1Yl9wYXNlb19ydW50aW1lMFJ1bnRpbWVFcnJvcgABsBhTeXN0ZW0EAOULAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAZQwBvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIFByZWltYWdlBACJDAF8cGFsbGV0X3ByZWltYWdlOjpFcnJvcjxSdW50aW1lPgAFACRTY2hlZHVsZXIEAJ0MAYBwYWxsZXRfc2NoZWR1bGVyOjpFcnJvcjxSdW50aW1lPgAGAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAoQwBhHBhbGxldF9taWdyYXRpb25zOjpFcnJvcjxSdW50aW1lPgAIACBCYWxhbmNlcwQA0QwBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ACgAcVmVzdGluZwQA5QwBeHBhbGxldF92ZXN0aW5nOjpFcnJvcjxSdW50aW1lPgAOABhDbGFpbXMEAOkMAXRwYWxsZXRfY2xhaW1zOjpFcnJvcjxSdW50aW1lPgAPAERDb2xsYXRvclNlbGVjdGlvbgQAAQ0BpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkVycm9yPFJ1bnRpbWU+ABUAHFNlc3Npb24EACENAXhwYWxsZXRfc2Vzc2lvbjo6RXJyb3I8UnVudGltZT4AFgAkWGNtcFF1ZXVlBABdDQGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXJyb3I8UnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAMUNAWhwYWxsZXRfeGNtOjpFcnJvcjxSdW50aW1lPgAfADBNZXNzYWdlUXVldWUEAOkNAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXJyb3I8UnVudGltZT4AIwBgU25vd2JyaWRnZVN5c3RlbUZyb250ZW5kBADtDQHEc25vd2JyaWRnZV9wYWxsZXRfc3lzdGVtX2Zyb250ZW5kOjpFcnJvcjxSdW50aW1lPgAkABxVdGlsaXR5BADxDQF4cGFsbGV0X3V0aWxpdHk6OkVycm9yPFJ1bnRpbWU+ACgAIE11bHRpc2lnBAABDgF8cGFsbGV0X211bHRpc2lnOjpFcnJvcjxSdW50aW1lPgApABRQcm94eQQAJQ4BcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AKgAcSW5kaWNlcwQALQ4BeHBhbGxldF9pbmRpY2VzOjpFcnJvcjxSdW50aW1lPgArABhBc3NldHMEAFkOAdxwYWxsZXRfYXNzZXRzOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfYXNzZXRzOjpJbnN0YW5jZTE+ADIAHFVuaXF1ZXMEAIUOAXhwYWxsZXRfdW5pcXVlczo6RXJyb3I8UnVudGltZT4AMwAQTmZ0cwQA2Q4BbHBhbGxldF9uZnRzOjpFcnJvcjxSdW50aW1lPgA0ADRGb3JlaWduQXNzZXRzBADtDgHccGFsbGV0X2Fzc2V0czo6RXJyb3I8UnVudGltZSwgcGFsbGV0X2Fzc2V0czo6SW5zdGFuY2UyPgA1AChQb29sQXNzZXRzBAD9DgHccGFsbGV0X2Fzc2V0czo6RXJyb3I8UnVudGltZSwgcGFsbGV0X2Fzc2V0czo6SW5zdGFuY2UzPgA2ADxBc3NldENvbnZlcnNpb24EAAkPAZxwYWxsZXRfYXNzZXRfY29udmVyc2lvbjo6RXJyb3I8UnVudGltZT4ANwAgVHJlYXN1cnkEACEPAXxwYWxsZXRfdHJlYXN1cnk6OkVycm9yPFJ1bnRpbWU+ADwAQENvbnZpY3Rpb25Wb3RpbmcEADkPAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkVycm9yPFJ1bnRpbWU+AD0AJFJlZmVyZW5kYQQAYQ8BgHBhbGxldF9yZWZlcmVuZGE6OkVycm9yPFJ1bnRpbWU+AD4AJFdoaXRlbGlzdAQAZQ8BgHBhbGxldF93aGl0ZWxpc3Q6OkVycm9yPFJ1bnRpbWU+AEAAIEJvdW50aWVzBABxDwF8cGFsbGV0X2JvdW50aWVzOjpFcnJvcjxSdW50aW1lPgBBADRDaGlsZEJvdW50aWVzBAB9DwGUcGFsbGV0X2NoaWxkX2JvdW50aWVzOjpFcnJvcjxSdW50aW1lPgBCACRBc3NldFJhdGUEAIEPAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXJyb3I8UnVudGltZT4AQwBITXVsdGlBc3NldEJvdW50aWVzBACdDwGscGFsbGV0X211bHRpX2Fzc2V0X2JvdW50aWVzOjpFcnJvcjxSdW50aW1lPgBEAEhTdGF0ZVRyaWVNaWdyYXRpb24EAFULAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkVycm9yPFJ1bnRpbWU+AEYAPE5vbWluYXRpb25Qb29scwQAvQ8BnHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpFcnJvcjxSdW50aW1lPgBQACRWb3Rlckxpc3QEANEPAfRwYWxsZXRfYmFnc19saXN0OjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfYmFnc19saXN0OjpJbnN0YW5jZTE+AFIAQERlbGVnYXRlZFN0YWtpbmcEAOUPAaBwYWxsZXRfZGVsZWdhdGVkX3N0YWtpbmc6OkVycm9yPFJ1bnRpbWU+AFMAPFN0YWtpbmdSY0NsaWVudAQA8Q8BuHBhbGxldF9zdGFraW5nX2FzeW5jX3JjX2NsaWVudDo6RXJyb3I8UnVudGltZT4AVABITXVsdGlCbG9ja0VsZWN0aW9uBAAJEAHQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX2Jsb2NrOjpFcnJvcjxSdW50aW1lPgBVAGBNdWx0aUJsb2NrRWxlY3Rpb25TaWduZWQEAEEQAfBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfYmxvY2s6OnNpZ25lZDo6RXJyb3I8UnVudGltZT4AWAAcU3Rha2luZwQAoRABkHBhbGxldF9zdGFraW5nX2FzeW5jOjpFcnJvcjxSdW50aW1lPgBZABhSZXZpdmUEAEURAXRwYWxsZXRfcmV2aXZlOjpFcnJvcjxSdW50aW1lPgBkABBTdWRvBABJEQFscGFsbGV0X3N1ZG86OkVycm9yPFJ1bnRpbWU+APsAFEFoT3BzBABREQF0cGFsbGV0X2FoX29wczo6RXJyb3I8UnVudGltZT4A/gAoQWhNaWdyYXRvcgQAWREBiHBhbGxldF9haF9taWdyYXRvcjo6RXJyb3I8UnVudGltZT4A/wAA7BhTeXN0ZW0BGFN5c3RlbUwcQWNjb3VudAEBBAIE/QlBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABOggVGhlIGZ1bGwgYWNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQgSUQuADhFeHRyaW5zaWNDb3VudAAAOAQABLggVG90YWwgZXh0cmluc2ljcyBjb3VudCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suAEBJbmhlcmVudHNBcHBsaWVkAQBdAQQABKQgV2hldGhlciBhbGwgaW5oZXJlbnRzIGhhdmUgYmVlbiBhcHBsaWVkLgAsQmxvY2tXZWlnaHQBAAkKGAAAAAAAAASIIFRoZSBjdXJyZW50IHdlaWdodCBmb3IgdGhlIGJsb2NrLgBAQWxsRXh0cmluc2ljc0xlbgAAOAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4AJEJsb2NrSGFzaAEBBAU4QIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy4ANEV4dHJpbnNpY0RhdGEBAQQFOBgEAAQ9ASBFeHRyaW5zaWNzIGRhdGEgZm9yIHRoZSBjdXJyZW50IGJsb2NrIChtYXBzIGFuIGV4dHJpbnNpYydzIGluZGV4IHRvIGl0cyBkYXRhKS4AGE51bWJlcgEAOBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuAChQYXJlbnRIYXNoAQBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suABhEaWdlc3QBAGgEAATwIERpZ2VzdCBvZiB0aGUgY3VycmVudCBibG9jaywgYWxzbyBwYXJ0IG9mIHRoZSBibG9jayBoZWFkZXIuABhFdmVudHMBAA0KBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLgAoRXZlbnRDb3VudAEAOBAAAAAABLggVGhlIG51bWJlciBvZiBldmVudHMgaW4gdGhlIGBFdmVudHM8VD5gIGxpc3QuACxFdmVudFRvcGljcwEBBAJAsQkEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LgBITGFzdFJ1bnRpbWVVcGdyYWRlAACtCwQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLgBUVXBncmFkZWRUb1UzMlJlZkNvdW50AQBdAQQABE0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IGB0eXBlIFJlZkNvdW50YCBpcyBgdTMyYC4gRmFsc2UgKGRlZmF1bHQpIGlmIG5vdC4AYFVwZ3JhZGVkVG9UcmlwbGVSZWZDb3VudAEAXQEEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAACpCwQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAuQsEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQAVAQgAABygIFRoZSB3ZWlnaHQgcmVjbGFpbWVkIGZvciB0aGUgZXh0cmluc2ljLgAhASBUaGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBleHRyaW5zaWMgZXhlY3V0aW9uLiEBIE1vcmUgcHJlY2lzZWx5IHRoaXMgaW5mb3JtYXRpb24gaXMgcmVtb3ZlZCBpbiBgbm90ZV9hcHBsaWVkX2V4dHJpbnNpY2AuAHEBIExvZ2ljIGRvaW5nIHNvbWUgcG9zdCBkaXNwYXRjaCB3ZWlnaHQgcmVkdWN0aW9uIG11c3QgdXBkYXRlIHRoaXMgc3RvcmFnZSB0byBhdm9pZCBkdXBsaWNhdGUsIHJlZHVjdGlvbi4AASQAARkKABgwQmxvY2tXZWlnaHRzvQuJAQcA8gUqAQALACBKqdEBAgCAAgJlzR0AAQvAJvt/dAECAAACAQsAaOXPiwECACACAQAAAmXNHQABC8DeX1m6AQIAYAIBCwAgSqnRAQIAgAIBBwC4ZNlFAgBgAAJlzR0AAAAABNAgQmxvY2sgJiBleHRyaW5zaWNzIHdlaWdodHM6IGJhc2UgdmFsdWVzIGFuZCBsaW1pdHMuACxCbG9ja0xlbmd0aMkLMAAARAAAAFAAAABQAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuADhCbG9ja0hhc2hDb3VudDgQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4AIERiV2VpZ2h00QtAQHh9AQAAAAAA4fUFAAAAAAQJASBUaGUgd2VpZ2h0IG9mIHJ1bnRpbWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB0aGUgcnVudGltZSBjYW4gaW52b2tlLgAcVmVyc2lvbtUL2QU8YXNzZXQtaHViLXBhc2VvPGFzc2V0LWh1Yi1wYXNlbwEAAABoiB4AAAAAAGzdcY1cxTJi1AEAAAAE5wUhoNPS+AEAAADXvdiicsoNZQIAAADfastomQdgmwUAAAA345f8fJH15AIAAABA/jrUAfiVmgYAAADSvJiX7tCPFQMAAAD3iyeL5T9FTAIAAACrPAVyKR/riwEAAADM2d5jlsiZygEAAAC8nYmQT1uSPwEAAAA3yLsTUKmiqAQAAADz/xTVq1JwWQMAAABv9S7oWObFvQIAAACRscixYyjrkgIAAACf+1BapzjWnAEAAAAmCb6DrERo3AEAAAASyOPU1+Bt4AEAAADekrigQmub9gIAAADqk+Pxbz1pYgMAAAD7xXe510fv1gEAAACKgEelOoJ37AEAAACi3balhHe/YwEAAAAXprwNAGKuswEAAAAY71ijtnuncAEAAADFH/H6P10MygEAAACMQD5cSp/UQgEAAAAPAAAAAQSEIEdldCB0aGUgY2hhaW4ncyBpbi1jb2RlIHZlcnNpb24uAChTUzU4UHJlZml41QMIAAAUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAAHlCwAcLFJ1bnRpbWVDYWxsIASMIFRoZSBhZ2dyZWdhdGVkIGBSdW50aW1lQ2FsbGAgdHlwZS4UTm9uY2U4BEkBIFRoaXMgc3RvcmVzIHRoZSBudW1iZXIgb2YgcHJldmlvdXMgdHJhbnNhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIHNlbmRlciBhY2NvdW50LhBIYXNoQASYIFRoZSBvdXRwdXQgb2YgdGhlIGBIYXNoaW5nYCBmdW5jdGlvbi4cSGFzaGluZ9kEBCEBIFRoZSBoYXNoaW5nIHN5c3RlbSAoYWxnb3JpdGhtKSBiZWluZyB1c2VkIGluIHRoZSBydW50aW1lIChlLmcuIEJsYWtlMikuJEFjY291bnRJZAQEyCBUaGUgdXNlciBhY2NvdW50IGlkZW50aWZpZXIgdHlwZSBmb3IgdGhlIHJ1bnRpbWUuFEJsb2Nr6QsIYQEgVGhlIEJsb2NrIHR5cGUgdXNlZCBieSB0aGUgcnVudGltZS4gVGhpcyBpcyB1c2VkIGJ5IGBjb25zdHJ1Y3RfcnVudGltZWAgdG8gcmV0cmlldmUgdGhlzCBleHRyaW5zaWNzIG9yIG90aGVyIGJsb2NrIHNwZWNpZmljIGRhdGEgYXMgbmVlZGVkLixBY2NvdW50RGF0YQEKCGEBIERhdGEgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFuIGFjY291bnQgKG90aGVyIHRoYW4gbm9uY2UvdHJhbnNhY3Rpb24gY291bnRlciwgd2hpY2ggdGhpc2QgcGFsbGV0IGRvZXMgcmVnYXJkbGVzcykuAAAAADxQYXJhY2hhaW5TeXN0ZW0BPFBhcmFjaGFpblN5c3RlbWxEVW5pbmNsdWRlZFNlZ21lbnQBAP0LBAAYSQEgTGF0ZXN0IGluY2x1ZGVkIGJsb2NrIGRlc2NlbmRhbnRzIHRoZSBydW50aW1lIGFjY2VwdGVkLiBJbiBvdGhlciB3b3JkcywgdGhlc2UgYXJlYQEgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGJsb2NrIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5jbHVkZWQgaW4gdGhlIG9ic2VydmVkTCByZWxheS1jaGFpbiBzdGF0ZS4AdQEgVGhlIHNlZ21lbnQgbGVuZ3RoIGlzIGxpbWl0ZWQgYnkgdGhlIGNhcGFjaXR5IHJldHVybmVkIGZyb20gdGhlIFtgQ29uc2Vuc3VzSG9va2BdIGNvbmZpZ3VyZWQ8IGluIHRoZSBwYWxsZXQuAGxBZ2dyZWdhdGVkVW5pbmNsdWRlZFNlZ21lbnQAACEMBAAMaQEgU3RvcmFnZSBmaWVsZCB0aGF0IGtlZXBzIHRyYWNrIG9mIGJhbmR3aWR0aCB1c2VkIGJ5IHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgYWxvbmcgd2l0aCB0aGUtASBsYXRlc3QgSFJNUCB3YXRlcm1hcmsuIFVzZWQgZm9yIGxpbWl0aW5nIHRoZSBhY2NlcHRhbmNlIG9mIG5ldyBibG9ja3Mgd2l0aJAgcmVzcGVjdCB0byByZWxheSBjaGFpbiBjb25zdHJhaW50cy4AVFBlbmRpbmdWYWxpZGF0aW9uQ29kZQEAGAQAGFkBIEluIGNhc2Ugb2YgYSBzY2hlZHVsZWQgdXBncmFkZSwgdGhpcyBzdG9yYWdlIGZpZWxkIGNvbnRhaW5zIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gYmUkIGFwcGxpZWQuAD0BIEFzIHNvb24gYXMgdGhlIHJlbGF5IGNoYWluIGdpdmVzIHVzIHRoZSBnby1haGVhZCBzaWduYWwsIHdlIHdpbGwgb3ZlcndyaXRlIHRoZXEBIFtgOmNvZGVgXVtzcF9jb3JlOjpzdG9yYWdlOjp3ZWxsX2tub3duX2tleXM6OkNPREVdIHdoaWNoIHdpbGwgcmVzdWx0IHRoZSBuZXh0IGJsb2NrIHByb2Nlc3MJASB3aXRoIHRoZSBuZXcgdmFsaWRhdGlvbiBjb2RlLiBUaGlzIGNvbmNsdWRlcyB0aGUgdXBncmFkZSBwcm9jZXNzLgBETmV3VmFsaWRhdGlvbkNvZGUAABgEABRdASBWYWxpZGF0aW9uIGNvZGUgdGhhdCBpcyBzZXQgYnkgdGhlIHBhcmFjaGFpbiBhbmQgaXMgdG8gYmUgY29tbXVuaWNhdGVkIHRvIGNvbGxhdG9yIGFuZHggY29uc2VxdWVudGx5IHRoZSByZWxheS1jaGFpbi4AZQEgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrIGlmIG5vIG90aGVyIHBhbGxldCBhbHJlYWR5IHNldCwgdGhlIHZhbHVlLgA4VmFsaWRhdGlvbkRhdGEAAEwEAAzQIFRoZSBbYFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhYF0gc2V0IGZvciB0aGlzIGJsb2NrLgBxASBUaGlzIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBvbmx5IG9uY2UgYnkgdGhlIFtgUGFsbGV0OjpzZXRfdmFsaWRhdGlvbl9kYXRhYF0gaW5oZXJlbnQuAFBEaWRTZXRWYWxpZGF0aW9uQ29kZQEAXQEEAATgIFdlcmUgdGhlIHZhbGlkYXRpb24gZGF0YSBzZXQgdG8gbm90aWZ5IHRoZSByZWxheSBjaGFpbj8AZExhc3RSZWxheUNoYWluQmxvY2tOdW1iZXIBADgQAAAAAAwdASBUaGUgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFzdCBwYXJhY2hhaW4gYmxvY2suAIggVGhpcyBpcyB1cGRhdGVkIGluIGBvbl9maW5hbGl6ZWAuAGBVcGdyYWRlUmVzdHJpY3Rpb25TaWduYWwBACUMBAAcdQEgQW4gb3B0aW9uIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgcmVsYXktY2hhaW4gcmVzdHJpY3RzIHNpZ25hbGxpbmcgYSB2YWxpZGF0aW9uIGNvZGUgdXBncmFkZS5hASBJbiBvdGhlciB3b3JkcywgaWYgdGhpcyBpcyBgU29tZWAgYW5kIFtgTmV3VmFsaWRhdGlvbkNvZGVgXSBpcyBgU29tZWAgdGhlbiB0aGUgcHJvZHVjZWRsIGNhbmRpZGF0ZSB3aWxsIGJlIGludmFsaWQuAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADhVcGdyYWRlR29BaGVhZAEAGQwEABTcIE9wdGlvbmFsIHVwZ3JhZGUgZ28tYWhlYWQgc2lnbmFsIGZyb20gdGhlIHJlbGF5LWNoYWluLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA8UmVsYXlTdGF0ZVByb29mAABUBAAYxCBUaGUgc3RhdGUgcHJvb2YgZm9yIHRoZSBsYXN0IHJlbGF5IHBhcmVudCBibG9jay4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBYUmVsZXZhbnRNZXNzYWdpbmdTdGF0ZQAALQwEABxlASBUaGUgc25hcHNob3Qgb2Ygc29tZSBzdGF0ZSByZWxhdGVkIHRvIG1lc3NhZ2luZyByZWxldmFudCB0byB0aGUgY3VycmVudCBwYXJhY2hhaW4gYXMgcGVySCB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuAERIb3N0Q29uZmlndXJhdGlvbgAAQQwEABgpASBUaGUgcGFyYWNoYWluIGhvc3QgY29uZmlndXJhdGlvbiB0aGF0IHdhcyBvYnRhaW5lZCBmcm9tIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AOExhc3REbXFNcWNIZWFkAQBJDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD0IFRoZSBsYXN0IGRvd253YXJkIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZCB3ZSBoYXZlIG9ic2VydmVkLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LgBATGFzdEhybXBNcWNIZWFkcwEATQwEABBJASBUaGUgbWVzc2FnZSBxdWV1ZSBjaGFpbiBoZWFkcyB3ZSBoYXZlIG9ic2VydmVkIHBlciBlYWNoIGNoYW5uZWwgaW5jb21pbmcgY2hhbm5lbC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AZFByb2Nlc3NlZERvd253YXJkTWVzc2FnZXMBADgQAAAAAAzIIE51bWJlciBvZiBkb3dud2FyZCBtZXNzYWdlcyBwcm9jZXNzZWQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suAHBMYXN0UHJvY2Vzc2VkRG93bndhcmRNZXNzYWdlAABZDAQADJQgVGhlIGxhc3QgcHJvY2Vzc2VkIGRvd253YXJkIG1lc3NhZ2UuAF0BIFdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGlzIHRvIGZpbHRlciB0aGUgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gYWxyZWFkeSBwcm9jZXNzZWQuADRIcm1wV2F0ZXJtYXJrAQA4EAAAAAAEoCBIUk1QIHdhdGVybWFyayB0aGF0IHdhcyBzZXQgaW4gYSBibG9jay4AYExhc3RQcm9jZXNzZWRIcm1wTWVzc2FnZQAAWQwEAAyEIFRoZSBsYXN0IHByb2Nlc3NlZCBIUk1QIG1lc3NhZ2UuAF0BIFdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGlzIHRvIGZpbHRlciB0aGUgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gYWxyZWFkeSBwcm9jZXNzZWQuAFBIcm1wT3V0Ym91bmRNZXNzYWdlcwEAXQwEAAykIEhSTVAgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suADhVcHdhcmRNZXNzYWdlcwEANAQADKwgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAPAgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIGZvciBlYWNoIG5ldyBibG9jay4AVFBlbmRpbmdVcHdhcmRNZXNzYWdlcwEANAQABDEBIFVwd2FyZCBtZXNzYWdlcyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nIGFuZCBub3QgeWV0IHNlbnQgdG8gdGhlIHJlbGF5IGNoYWluLgBQUGVuZGluZ1Vwd2FyZFNpZ25hbHMBADQEAAwtASBVcHdhcmQgc2lnbmFscyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nIGFuZCBub3QgeWV0IHNlbnQgdG8gdGhlIHJlbGF5IGNoYWluLgDYIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9maW5hbGl6ZWAgZm9yIGVhY2ggYmxvY2suAFxVcHdhcmREZWxpdmVyeUZlZUZhY3RvcgEA9QRAAABkp7O24A0AAAAAAAAAAATkIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5IGZvciBVTVAuAIRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBADgQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLgBoUmVzZXJ2ZWRYY21wV2VpZ2h0T3ZlcnJpZGUAABUBBAAIXQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIFhDTVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBkUmVzZXJ2ZWREbXBXZWlnaHRPdmVycmlkZQAAFQEEAAhZASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgRE1QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AYEN1c3RvbVZhbGlkYXRpb25IZWFkRGF0YQAAGAQADCkBIEEgY3VzdG9tIGhlYWQgZGF0YSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyByZXN1bHQgb2YgYHZhbGlkYXRlX2Jsb2NrYC4AEQEgU2VlIGBQYWxsZXQ6OnNldF9jdXN0b21fdmFsaWRhdGlvbl9oZWFkX2RhdGFgIGZvciBtb3JlIGluZm9ybWF0aW9uLgABRAABQQoABChTZWxmUGFyYUlkoBDoAwAABLggUmV0dXJucyB0aGUgcGFyYWNoYWluIElEIHdlIGFyZSBydW5uaW5nIHdpdGguAAFlDAAAAAEAACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAoIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACREaWRVcGRhdGUBAF0BBAAQ2CBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZCBpbiB0aGlzIGJsb2NrLgBVASBUaGlzIHZhbHVlIGlzIHVwZGF0ZWQgdG8gYHRydWVgIHVwb24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIGEgdGltZXN0YW1wIGJ5IGEgbm9kZS5FASBJdCBpcyB0aGVuIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGV4ZWN1dGlvbiBpbiB0aGUgYG9uX2ZpbmFsaXplYCBob29rLgABtAAABDRNaW5pbXVtUGVyaW9kKCAAAAAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAAEGE1vbWVudCgEmCBUeXBlIHVzZWQgZm9yIGV4cHJlc3NpbmcgYSB0aW1lc3RhbXAuAAMAADRQYXJhY2hhaW5JbmZvATRQYXJhY2hhaW5JbmZvBCxQYXJhY2hhaW5JZAEAoBBkAAAAAAABvAAAAAAAAAQAACBQcmVpbWFnZQEgUHJlaW1hZ2UMJFN0YXR1c0ZvcgABBAZAaQwEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guAkBSZXF1ZXN0U3RhdHVzRm9yAEBSZXF1ZXN0U3RhdHVzRm9yAAEEBkBxDAQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC4ALFByZWltYWdlRm9yAAEEBoEMhQwEAAAAAcAAAUUKAAABiQwAAAAFAAAkU2NoZWR1bGVyASRTY2hlZHVsZXIQPEluY29tcGxldGVTaW5jZQAAOAQABPQgQmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSBhZ2VuZGEgYmVnYW4gaW5jb21wbGV0ZSBleGVjdXRpb24uABhBZ2VuZGEBAQQFOI0MBAAETQEgSXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGhlIGJsb2NrIG51bWJlciB0aGF0IHRoZXkgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uLgAcUmV0cmllcwABBALQkQgEAAQhASBSZXRyeSBjb25maWd1cmF0aW9ucyBmb3IgaXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGFzayBhZGRyZXNzLgAYTG9va3VwAAEEBQjQBAAQ+CBMb29rdXAgZnJvbSBhIG5hbWUgdG8gdGhlIGJsb2NrIG51bWJlciBhbmQgaW5kZXggb2YgdGhlIHRhc2suAFkBIEZvciB2MyAtPiB2NCB0aGUgcHJldmlvdXNseSB1bmJvdW5kZWQgaWRlbnRpdGllcyBhcmUgQmxha2UyLTI1NiBoYXNoZWQgdG8gZm9ybSB0aGUgdjQwIGlkZW50aXRpZXMuAAHIAAFJCgAINE1heGltdW1XZWlnaHQVASwLAIBuh3QBAgAAAgQpASBUaGUgbWF4aW11bSB3ZWlnaHQgdGhhdCBtYXkgYmUgc2NoZWR1bGVkIHBlciBibG9jayBmb3IgYW55IGRpc3BhdGNoYWJsZXMuAFBNYXhTY2hlZHVsZWRQZXJCbG9jazgQMgAAABQdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2NoZWR1bGVkIGNhbGxzIGluIHRoZSBxdWV1ZSBmb3IgYSBzaW5nbGUgYmxvY2suABggTk9URTpRASArIERlcGVuZGVudCBwYWxsZXRzJyBiZW5jaG1hcmtzIG1pZ2h0IHJlcXVpcmUgYSBoaWdoZXIgbGltaXQgZm9yIHRoZSBzZXR0aW5nLiBTZXQgYcQgaGlnaGVyIGxpbWl0IHVuZGVyIGBydW50aW1lLWJlbmNobWFya3NgIGZlYXR1cmUuAAGdDAAELFJ1bnRpbWVDYWxsIARoIFRoZSBhZ2dyZWdhdGVkIGNhbGwgdHlwZS4ABgAAKFBhcmFtZXRlcnMBKFBhcmFtZXRlcnMEKFBhcmFtZXRlcnMAAQQCVQppCgQABEwgU3RvcmVkIHBhcmFtZXRlcnMuAAHUAAFRCgAAAAAABwAAUE11bHRpQmxvY2tNaWdyYXRpb25zAVBNdWx0aUJsb2NrTWlncmF0aW9ucwgYQ3Vyc29yAAAxAQQADNggVGhlIGN1cnJlbnRseSBhY3RpdmUgbWlncmF0aW9uIHRvIHJ1biBhbmQgaXRzIGN1cnNvci4AvCBgTm9uZWAgaW5kaWNhdGVzIHRoYXQgbm8gbWlncmF0aW9uIGlzIHJ1bm5pbmcuACBIaXN0b3JpYwABBAVFARAEABC0IFNldCBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkIG1pZ3JhdGlvbnMuAHEBIFRoaXMgaXMgdXNlZCBhcyBibGFja2xpc3QsIHRvIG5vdCByZS1leGVjdXRlIG1pZ3JhdGlvbnMgdGhhdCBoYXZlIG5vdCBiZWVuIHJlbW92ZWQgZnJvbSB0aGUxASBjb2RlYmFzZSB5ZXQuIEdvdmVybmFuY2UgY2FuIHJlZ3VsYXJseSBjbGVhciB0aGlzIG91dCB2aWEgYGNsZWFyX2hpc3RvcmljYC4AASkBAAF5CgAIMEN1cnNvck1heExlbjgQAAABABCkIFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGN1cnNvci4AZQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhIGN1cnNvciB3aXRoIE1FTAkBIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAEBJZGVudGlmaWVyTWF4TGVuOBAAAQAAELQgVGhlIG1heGltYWwgbGVuZ3RoIG9mIGFuIGVuY29kZWQgaWRlbnRpZmllci4AVQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhbiBpZGVudGlmaWVyLQEgd2l0aCBNRUwgYWJvdmUgdGhpcyBsaW1pdC4gVGhpcyBpcyBzdGF0aWNhbGx5IGNoZWNrZWQgaW4gYGludGVncml0eV90ZXN0YC4AAaEMAAAACAAANFdlaWdodFJlY2xhaW0AAAAAAAAACQiBASBQYWxsZXQgdG8gdXNlIGFsb25nc2lkZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtgU3RvcmFnZVdlaWdodFJlY2xhaW1gXSwgdGhlIHBhbGxldCBwcm92aWRlc4wgd2VpZ2h0IGluZm9ybWF0aW9uIGFuZCBiZW5jaG1hcmtzLgAgQmFsYW5jZXMBIEJhbGFuY2VzHDRUb3RhbElzc3VhbmNlAQBZAUAAAAAAAAAAAAAAAAAAAAAABJggVGhlIHRvdGFsIHVuaXRzIGlzc3VlZCBpbiB0aGUgc3lzdGVtLgBASW5hY3RpdmVJc3N1YW5jZQEAWQFAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLgAcQWNjb3VudAEBBAIEAQoBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4AFExvY2tzAQEEAgSlDAQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAIFJlc2VydmVzAQEEAgSpDAQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAUSG9sZHMBAQQCBLUMBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLgAcRnJlZXplcwEBBAIEwQwEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgABUQEAAX0KABBIRXhpc3RlbnRpYWxEZXBvc2l0WQFAAOH1BQAAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEAIE1heExvY2tzOBAyAAAAEPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHRoYXQgc2hvdWxkIGV4aXN0IG9uIGFuIGFjY291bnQu3CBOb3Qgc3RyaWN0bHkgZW5mb3JjZWQsIGJ1dCB1c2VkIGZvciB3ZWlnaHQgZXN0aW1hdGlvbi4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAsTWF4UmVzZXJ2ZXM4EDIAAAAMDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gAChNYXhGcmVlemVzOBABAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgAB0QwAEERSdW50aW1lSG9sZFJlYXNvboUKBHQgVGhlIG92ZXJhcmNoaW5nIGhvbGQgcmVhc29uLhxCYWxhbmNlWQEEbCBUaGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LkRSZXNlcnZlSWRlbnRpZmllcl0CDGggVGhlIElEIHR5cGUgZm9yIHJlc2VydmVzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYEBGcmVlemVJZGVudGlmaWVyyQwEZCBUaGUgSUQgdHlwZSBmb3IgZnJlZXplcy4ACgAASFRyYW5zYWN0aW9uUGF5bWVudAFIVHJhbnNhY3Rpb25QYXltZW50DEROZXh0RmVlTXVsdGlwbGllcgEA9QRAAABkp7O24A0AAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQDVDAQAAAA8VHhQYXltZW50Q3JlZGl0AADZDAQADPAgVGhlIGBPbkNoYXJnZVRyYW5zYWN0aW9uYCBzdG9yZXMgdGhlIHdpdGhkcmF3biB0eCBmZWUgaGVyZS4ANQEgVXNlIGB3aXRoZHJhd190eGZlZWAgYW5kIGByZW1haW5pbmdfdHhmZWVgIHRvIGFjY2VzcyBmcm9tIG91dHNpZGUgdGhlIGNyYXRlLgAAAaEKAARgT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyDAQFVFkBIEEgZmVlIG11bHRpcGxpZXIgZm9yIGBPcGVyYXRpb25hbGAgZXh0cmluc2ljcyB0byBjb21wdXRlICJ2aXJ0dWFsIHRpcCIgdG8gYm9vc3QgdGhlaXIsIGBwcmlvcml0eWAAUQEgVGhpcyB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBgZmluYWxfZmVlYCB0byBvYnRhaW4gYSAidmlydHVhbCB0aXAiIHRoYXQgaXMgbGF0ZXL0IGFkZGVkIHRvIGEgdGlwIGNvbXBvbmVudCBpbiByZWd1bGFyIGBwcmlvcml0eWAgY2FsY3VsYXRpb25zLk0BIEl0IG1lYW5zIHRoYXQgYSBgTm9ybWFsYCB0cmFuc2FjdGlvbiBjYW4gZnJvbnQtcnVuIGEgc2ltaWxhcmx5LXNpemVkIGBPcGVyYXRpb25hbGBBASBleHRyaW5zaWMgKHdpdGggbm8gdGlwKSwgYnkgaW5jbHVkaW5nIGEgdGlwIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgdmlydHVhbCB0aXAuADwgYGBgcnVzdCxpZ25vcmVAIC8vIEZvciBgTm9ybWFsYIwgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXApOwBUIC8vIEZvciBgT3BlcmF0aW9uYWxgEQEgbGV0IHZpcnR1YWxfdGlwID0gKGluY2x1c2lvbl9mZWUgKyB0aXApICogT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyO8QgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXAgKyB2aXJ0dWFsX3RpcCk7ECBgYGAAUQEgTm90ZSB0aGF0IHNpbmNlIHdlIHVzZSBgZmluYWxfZmVlYCB0aGUgbXVsdGlwbGllciBhcHBsaWVzIGFsc28gdG8gdGhlIHJlZ3VsYXIgYHRpcGBdASBzZW50IHdpdGggdGhlIHRyYW5zYWN0aW9uLiBTbywgbm90IG9ubHkgZG9lcyB0aGUgdHJhbnNhY3Rpb24gZ2V0IGEgcHJpb3JpdHkgYnVtcCBiYXNlZGEBIG9uIHRoZSBgaW5jbHVzaW9uX2ZlZWAsIGJ1dCB3ZSBhbHNvIGFtcGxpZnkgdGhlIGltcGFjdCBvZiB0aXBzIGFwcGxpZWQgdG8gYE9wZXJhdGlvbmFsYDggdHJhbnNhY3Rpb25zLgAAAAALAAA4QXNzZXRUeFBheW1lbnQAAAGlCgAAAAAADQAAHFZlc3RpbmcBHFZlc3RpbmcIHFZlc3RpbmcAAQQCBBEIBAAE2CBJbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIHZlc3Rpbmcgb2YgYSBnaXZlbiBhY2NvdW50LgA4U3RvcmFnZVZlcnNpb24BAOEMBAAMfCBTdG9yYWdlIHZlcnNpb24gb2YgdGhlIHBhbGxldC4AMQEgTmV3IG5ldHdvcmtzIHN0YXJ0IHdpdGggbGF0ZXN0IHZlcnNpb24sIGFzIGRldGVybWluZWQgYnkgdGhlIGdlbmVzaXMgYnVpbGQuAAFpAQABqQoACERNaW5WZXN0ZWRUcmFuc2ZlclkBQADh9QUAAAAAAAAAAAAAAAAE6CBUaGUgbWluaW11bSBhbW91bnQgdHJhbnNmZXJyZWQgdG8gY2FsbCBgdmVzdGVkX3RyYW5zZmVyYC4ATE1heFZlc3RpbmdTY2hlZHVsZXM4EBwAAAAAAAHlDAAAAA4AABhDbGFpbXMBGENsYWltcxQYQ2xhaW1zAAEEBn0BWQEEAAAAFFRvdGFsAQBZAUAAAAAAAAAAAAAAAAAAAAAAAAAcVmVzdGluZwABBAZ9AYUBBAAQeCBWZXN0aW5nIHNjaGVkdWxlIGZvciBhIGNsYWltLg0BIEZpcnN0IGJhbGFuY2UgaXMgdGhlIHRvdGFsIGFtb3VudCB0aGF0IHNob3VsZCBiZSBoZWxkIGZvciB2ZXN0aW5nLuQgU2Vjb25kIGJhbGFuY2UgaXMgaG93IG11Y2ggc2hvdWxkIGJlIHVubG9ja2VkIHBlciBibG9jay7MIFRoZSBibG9jayBudW1iZXIgaXMgd2hlbiB0aGUgdmVzdGluZyBzaG91bGQgc3RhcnQuABxTaWduaW5nAAEEBn0BjQEEAATAIFRoZSBzdGF0ZW1lbnQga2luZCB0aGF0IG11c3QgYmUgc2lnbmVkLCBpZiBhbnkuACRQcmVjbGFpbXMAAQQGBH0BBAAELQEgUHJlLWNsYWltZWQgRXRoZXJldW0gYWNjb3VudHMsIGJ5IHRoZSBBY2NvdW50IElEIHRoYXQgdGhleSBhcmUgY2xhaW1lZCB0by4AAXEBAAGtCgAEGFByZWZpeBiIhFBheSBET1RzIHRvIHRoZSBQb2xrYWRvdCBhY2NvdW50OgAAAekMAAAADwAADERhcAAAAAQgUGFsbGV0SWTtDCBkYXAvYnVmZhDEIFRoZSBwYWxsZXQgSUQgdXNlZCB0byBkZXJpdmUgdGhlIGJ1ZmZlciBhY2NvdW50LgApASBFYWNoIHJ1bnRpbWUgc2hvdWxkIGNvbmZpZ3VyZSBhIHVuaXF1ZSBJRCB0byBhdm9pZCBjb2xsaXNpb25zIGlmIG11bHRpcGxlYCBEQVAgaW5zdGFuY2VzIGFyZSB1c2VkLgAAAAAQAAAoQXV0aG9yc2hpcAEoQXV0aG9yc2hpcAQYQXV0aG9yAAAEBAAEZCBBdXRob3Igb2YgY3VycmVudCBibG9jay4AAAAAAAAAFAAARENvbGxhdG9yU2VsZWN0aW9uAURDb2xsYXRvclNlbGVjdGlvbhQ0SW52dWxuZXJhYmxlcwEA8QwEAAQRASBUaGUgaW52dWxuZXJhYmxlLCBwZXJtaXNzaW9uZWQgY29sbGF0b3JzLiBUaGlzIGxpc3QgbXVzdCBiZSBzb3J0ZWQuADRDYW5kaWRhdGVMaXN0AQD1DAQAFGkBIFRoZSAoY29tbXVuaXR5LCBsaW1pdGVkKSBjb2xsYXRpb24gY2FuZGlkYXRlcy4gYENhbmRpZGF0ZXNgIGFuZCBgSW52dWxuZXJhYmxlc2Agc2hvdWxkIGJlUCBtdXR1YWxseSBleGNsdXNpdmUuAHUBIFRoaXMgbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGRlcG9zaXQgYW5kIHdoZW4gdGhlIGRlcG9zaXRzIGFyZSBlcXVhbCwgdGhlIGxlYXN0oCByZWNlbnRseSB1cGRhdGVkIGlzIGNvbnNpZGVyZWQgZ3JlYXRlci4ARExhc3RBdXRob3JlZEJsb2NrAQEEBQQ4EAAAAAAEhCBMYXN0IGJsb2NrIGF1dGhvcmVkIGJ5IGNvbGxhdG9yLgBERGVzaXJlZENhbmRpZGF0ZXMBADgQAAAAAAx4IERlc2lyZWQgbnVtYmVyIG9mIGNhbmRpZGF0ZXMuAHUBIFRoaXMgc2hvdWxkIGlkZWFsbHkgYWx3YXlzIGJlIGxlc3MgdGhhbiBbYENvbmZpZzo6TWF4Q2FuZGlkYXRlc2BdIGZvciB3ZWlnaHRzIHRvIGJlIGNvcnJlY3QuADRDYW5kaWRhY3lCb25kAQBZAUAAAAAAAAAAAAAAAAAAAAAADLggRml4ZWQgYW1vdW50IHRvIGRlcG9zaXQgdG8gYmVjb21lIGEgY29sbGF0b3IuAEEBIFdoZW4gYSBjb2xsYXRvciBjYWxscyBgbGVhdmVfaW50ZW50YCB0aGV5IGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhlIGRlcG9zaXQgYmFjay4AAZUBAAGxCgAYFFBvdElk7QwgUG90U3Rha2UE9CBBY2NvdW50IElkZW50aWZpZXIgZnJvbSB3aGljaCB0aGUgaW50ZXJuYWwgUG90IGlzIGdlbmVyYXRlZC4ANE1heENhbmRpZGF0ZXM4EGQAAAAMyCBNYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHRoYXQgd2Ugc2hvdWxkIGhhdmUuAMwgVGhpcyBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgaW52dWxuZXJhYmxlcy4AUE1pbkVsaWdpYmxlQ29sbGF0b3JzOBAEAAAADFUBIE1pbmltdW0gbnVtYmVyIGVsaWdpYmxlIGNvbGxhdG9ycy4gU2hvdWxkIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4gemVyby4gVGhpcyBpbmNsdWRlc1EBIEludnVsbmVyYWJsZSBjb2xsYXRvcnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIG9uZSBjb2xsYXRvciB3aG8gY2FuRCBwcm9kdWNlIGEgYmxvY2suAEBNYXhJbnZ1bG5lcmFibGVzOBAUAAAABIQgTWF4aW11bSBudW1iZXIgb2YgaW52dWxuZXJhYmxlcy4ANEtpY2tUaHJlc2hvbGQ4EBAOAAAAACxwb3RfYWNjb3VudASAbW9kbFBvdFN0YWtlAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBHZXRzIHRoaXMgcGFsbGV0J3MgZGVyaXZlZCBwb3QgYWNjb3VudC4AAQENAAQsVmFsaWRhdG9ySWQEBHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLgAVAAAcU2Vzc2lvbgEcU2Vzc2lvbiAoVmFsaWRhdG9ycwEAYQEEAAR8IFRoZSBjdXJyZW50IHNldCBvZiB2YWxpZGF0b3JzLgAwQ3VycmVudEluZGV4AQA4EAAAAAAEeCBDdXJyZW50IGluZGV4IG9mIHRoZSBzZXNzaW9uLgA0UXVldWVkQ2hhbmdlZAEAXQEEAAg5ASBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIGlkZW50aXRpZXMgb3Igd2VpZ2h0aW5nIGJlaGluZCB0aGUgdmFsaWRhdG9yc6QgaGFzIGNoYW5nZWQgaW4gdGhlIHF1ZXVlZCB2YWxpZGF0b3Igc2V0LgAoUXVldWVkS2V5cwEABQ0EAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy4ASERpc2FibGVkVmFsaWRhdG9ycwEADQ0EABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4AIE5leHRLZXlzAAEEBQSdAQQABJwgVGhlIG5leHQgc2Vzc2lvbiBrZXlzIGZvciBhIHZhbGlkYXRvci4AIEtleU93bmVyAAEEBRkNBAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAERFeHRlcm5hbGx5U2V0S2V5cwABBAUEEAQAEDEBIEFjY291bnRzIHdob3NlIGtleXMgd2VyZSBzZXQgdmlhIGBTZXNzaW9uSW50ZXJmYWNlYCAoZXh0ZXJuYWwgcGF0aCkgd2l0aG91dDkBIGluY3JlbWVudGluZyB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIG9yIHBsYWNpbmcgYSBrZXkgZGVwb3NpdC4gYGRvX3B1cmdlX2tleXNgOQEgb25seSBkZWNyZW1lbnRzIGNvbnN1bWVycyBmb3IgYWNjb3VudHMgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQgdGhyb3VnaCB0aGUgbG9jYWxAIHNlc3Npb24gcGFsbGV0LgABmQEAAbUKAAQoS2V5RGVwb3NpdFkBQAAAAAAAAAAAAAAAAAAAAAAEpCBUaGUgYW1vdW50IHRvIGJlIGhlbGQgd2hlbiBzZXR0aW5nIGtleXMuAAEhDQAILFZhbGlkYXRvcklkBAR0IEEgc3RhYmxlIElEIGZvciBhIHZhbGlkYXRvci4QS2V5c50BBCggVGhlIGtleXMuABYAABBBdXJhARBBdXJhCCxBdXRob3JpdGllcwEAJQ0EAARsIFRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQuACxDdXJyZW50U2xvdAEALQ0gAAAAAAAAAAAMgCBUaGUgY3VycmVudCBzbG90IG9mIHRoaXMgYmxvY2suAJQgVGhpcyB3aWxsIGJlIHNldCBpbiBgb25faW5pdGlhbGl6ZWAuAAAABDBTbG90RHVyYXRpb24oIOAuAAAAAAAAEA0BIFRoZSBzbG90IGR1cmF0aW9uIEF1cmEgc2hvdWxkIHJ1biB3aXRoLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLj0BIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHRoZSBjaGFpbiBpcyBydW5uaW5nLgA1ASBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZWl0aGVyIHVzZSBbYE1pbmltdW1QZXJpb2RUaW1lc1R3b2BdIG9yIGEgY29uc3QuAAAELEF1dGhvcml0eUlkoQEEmCBUaGUgaWRlbnRpZmllciB0eXBlIGZvciBhbiBhdXRob3JpdHkuABcAABxBdXJhRXh0ARxBdXJhRXh0CCxBdXRob3JpdGllcwEAJQ0EABSUIFNlcnZlcyBhcyBjYWNoZSBmb3IgdGhlIGF1dGhvcml0aWVzLgBxASBUaGUgYXV0aG9yaXRpZXMgaW4gQXVSYSBhcmUgb3ZlcndyaXR0ZW4gaW4gYG9uX2luaXRpYWxpemVgIHdoZW4gd2Ugc3dpdGNoIHRvIGEgbmV3IHNlc3Npb24sXQEgYnV0IHdlIHJlcXVpcmUgdGhlIG9sZCBhdXRob3JpdGllcyB0byB2ZXJpZnkgdGhlIHNlYWwgd2hlbiB2YWxpZGF0aW5nIGEgUG9WLiBUaGlzIHdpbGwNASBhbHdheXMgYmUgdXBkYXRlZCB0byB0aGUgbGF0ZXN0IEF1UmEgYXV0aG9yaXRpZXMgaW4gYG9uX2ZpbmFsaXplYC4ANFJlbGF5U2xvdEluZm8AADENBAAQCQEgQ3VycmVudCByZWxheSBjaGFpbiBzbG90IHBhaXJlZCB3aXRoIGEgbnVtYmVyIG9mIGF1dGhvcmVkIGJsb2Nrcy4AZQEgVGhpcyBpcyB1cGRhdGVkIGluIFtgRml4ZWRWZWxvY2l0eUNvbnNlbnN1c0hvb2s6Om9uX3N0YXRlX3Byb29mYF0gd2l0aCB0aGUgY3VycmVudCByZWxhedwgY2hhaW4gc2xvdCBhcyBwcm92aWRlZCBieSB0aGUgcmVsYXkgY2hhaW4gc3RhdGUgcHJvb2YuAAAAAAAAABgAACRYY21wUXVldWUBJFhjbXBRdWV1ZRxQSW5ib3VuZFhjbXBTdXNwZW5kZWQBADUNBAAgDQEgVGhlIHN1c3BlbmRlZCBpbmJvdW5kIFhDTVAgY2hhbm5lbHMuIEFsbCBvdGhlcnMgYXJlIG5vdCBzdXNwZW5kZWQuAHEBIFRoaXMgaXMgYSBgU3RvcmFnZVZhbHVlYCBpbnN0ZWFkIG9mIGEgYFN0b3JhZ2VNYXBgIHNpbmNlIHdlIGV4cGVjdCBtdWx0aXBsZSByZWFkcyBwZXIgYmxvY2tpASB0byBkaWZmZXJlbnQga2V5cyB3aXRoIGEgb25lIGJ5dGUgcGF5bG9hZC4gVGhlIGFjY2VzcyB0byBgQm91bmRlZEJUcmVlU2V0YCB3aWxsIGJlIGNhY2hlZBUBIHdpdGhpbiB0aGUgYmxvY2sgYW5kIHRoZXJlZm9yZSBvbmx5IGluY2x1ZGVkIG9uY2UgaW4gdGhlIHByb29mIHNpemUuAGUBIE5PVEU6IFRoZSBQb1YgYmVuY2htYXJraW5nIGNhbm5vdCBrbm93IHRoaXMgYW5kIHdpbGwgb3Zlci1lc3RpbWF0ZSwgYnV0IHRoZSBhY3R1YWwgcHJvb2ZEIHdpbGwgYmUgc21hbGxlci4ASE91dGJvdW5kWGNtcFN0YXR1cwEAQQ0EABhdASBUaGUgbm9uLWVtcHR5IFhDTVAgY2hhbm5lbHMgaW4gb3JkZXIgb2YgYmVjb21pbmcgbm9uLWVtcHR5LCBhbmQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFEBIGFuZCBsYXN0IG91dGJvdW5kIG1lc3NhZ2UuIElmIHRoZSB0d28gaW5kaWNlcyBhcmUgZXF1YWwsIHRoZW4gaXQgaW5kaWNhdGVzIGFuIGVtcHR5WQEgcXVldWUgYW5kIHRoZXJlIG11c3QgYmUgYSBub24tYE9rYCBgT3V0Ym91bmRTdGF0dXNgLiBXZSBhc3N1bWUgcXVldWVzIGdyb3cgbm8gZ3JlYXRlclkBIHRoYW4gNjU1MzUgaXRlbXMuIFF1ZXVlIGluZGljZXMgZm9yIG5vcm1hbCBtZXNzYWdlcyBiZWdpbiBhdCBvbmU7IHplcm8gaXMgcmVzZXJ2ZWQgaW4RASBjYXNlIG9mIHRoZSBuZWVkIHRvIHNlbmQgYSBoaWdoLXByaW9yaXR5IHNpZ25hbCBtZXNzYWdlIHRoaXMgYmxvY2suCQEgVGhlIGJvb2wgaXMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHNpZ25hbCBtZXNzYWdlIHdhaXRpbmcgdG8gYmUgc2VudC4AUE91dGJvdW5kWGNtcE1lc3NhZ2VzAQEIAgVRDVUNBAAEvCBUaGUgbWVzc2FnZXMgb3V0Ym91bmQgaW4gYSBnaXZlbiBYQ01QIGNoYW5uZWwuADhTaWduYWxNZXNzYWdlcwEBBAKgVQ0EAASgIEFueSBzaWduYWwgbWVzc2FnZXMgd2FpdGluZyB0byBiZSBzZW50LgAsUXVldWVDb25maWcBAFkNMCAAAAAwAAAACAAAAAQVASBUaGUgY29uZmlndXJhdGlvbiB3aGljaCBjb250cm9scyB0aGUgZHluYW1pY3Mgb2YgdGhlIG91dGJvdW5kIHF1ZXVlLgA4UXVldWVTdXNwZW5kZWQBAF0BBAAEQQEgV2hldGhlciBvciBub3QgdGhlIFhDTVAgcXVldWUgaXMgc3VzcGVuZGVkIGZyb20gZXhlY3V0aW5nIGluY29taW5nIFhDTXMgb3Igbm90LgBERGVsaXZlcnlGZWVGYWN0b3IBAQQFoPUEQAAAZKeztuANAAAAAAAAAAAExCBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieS4AAaUBAAG5CgAMTE1heEluYm91bmRTdXNwZW5kZWQ4EOgDAAAUSQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGluYm91bmQgWENNUCBjaGFubmVscyB0aGF0IGNhbiBiZSBzdXNwZW5kZWQgc2ltdWx0YW5lb3VzbHkuAF0BIEFueSBmdXJ0aGVyIGNoYW5uZWwgc3VzcGVuc2lvbnMgd2lsbCBmYWlsIGFuZCBtZXNzYWdlcyBtYXkgZ2V0IGRyb3BwZWQgd2l0aG91dCBmdXJ0aGVyRQEgbm90aWNlLiBDaG9vc2luZyBhIGhpZ2ggdmFsdWUgKDEwMDApIGlzIG9rYXk7IHRoZSB0cmFkZS1vZmYgdGhhdCBpcyBkZXNjcmliZWQgaW7YIFtgSW5ib3VuZFhjbXBTdXNwZW5kZWRgXSBzdGlsbCBhcHBsaWVzIGF0IHRoYXQgc2NhbGUuAGRNYXhBY3RpdmVPdXRib3VuZENoYW5uZWxzOBCAAAAAIGUBIE1heGltYWwgbnVtYmVyIG9mIG91dGJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gaGF2ZSBtZXNzYWdlcyBxdWV1ZWQgYXQgdGhlIHNhbWUgdGltZS4AVQEgSWYgdGhpcyBpcyByZWFjaGVkLCB0aGVuIG5vIGZ1cnRoZXIgbWVzc2FnZXMgY2FuIGJlIHNlbnQgdG8gY2hhbm5lbHMgdGhhdCBkbyBub3QgeWV0XQEgaGF2ZSBhIG1lc3NhZ2UgcXVldWVkLiBUaGlzIHNob3VsZCBiZSBzZXQgdG8gdGhlIGV4cGVjdGVkIG1heGltdW0gb2Ygb3V0Ym91bmQgY2hhbm5lbHNhASB3aGljaCBpcyBkZXRlcm1pbmVkIGJ5IFtgU2VsZjo6Q2hhbm5lbEluZm9gXS4gSXQgaXMgaW1wb3J0YW50IHRvIHNldCB0aGlzIGxhcmdlIGVub3VnaCxdASBzaW5jZSBvdGhlcndpc2UgdGhlIGNvbmdlc3Rpb24gY29udHJvbCBwcm90b2NvbCB3aWxsIG5vdCB3b3JrIGFzIGludGVuZGVkIGFuZCBtZXNzYWdlc1EBIG1heSBiZSBkcm9wcGVkLiBUaGlzIHZhbHVlIGluY3JlYXNlcyB0aGUgUG9WIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5vdCBiZSBwaWNrZWQgdG9vTQEgaGlnaC4gR292ZXJuYW5jZSBuZWVkcyB0byBwYXkgYXR0ZW50aW9uIHRvIG5vdCBvcGVuIG1vcmUgY2hhbm5lbHMgdGhhbiB0aGlzIHZhbHVlLgAsTWF4UGFnZVNpemU4EACcAQAUuCBUaGUgbWF4aW1hbCBwYWdlIHNpemUgZm9yIEhSTVAgbWVzc2FnZSBwYWdlcy4AYQEgQSBsb3dlciBsaW1pdCBjYW4gYmUgc2V0IGR5bmFtaWNhbGx5LCBidXQgdGhpcyBpcyB0aGUgaGFyZC1saW1pdCBmb3IgdGhlIFBvViB3b3JzdCBjYXNlVQEgYmVuY2htYXJraW5nLiBUaGUgbGltaXQgZm9yIHRoZSBzaXplIG9mIGEgbWVzc2FnZSBpcyBzbGlnaHRseSBiZWxvdyB0aGlzLCBzaW5jZSBzb21luCBvdmVyaGVhZCBpcyBpbmN1cnJlZCBmb3IgZW5jb2RpbmcgdGhlIGZvcm1hdC4AAV0NAAAAHgAALFBvbGthZG90WGNtASxQb2xrYWRvdFhjbTwwUXVlcnlDb3VudGVyAQAoIAAAAAAAAAAABIggVGhlIGxhdGVzdCBhdmFpbGFibGUgcXVlcnkgaW5kZXguABxRdWVyaWVzAAEEAihhDQQABFQgVGhlIG9uZ29pbmcgcXVlcmllcy4AKEFzc2V0VHJhcHMBAQQGQDgQAAAAABBoIFRoZSBleGlzdGluZyBhc3NldCB0cmFwcy4AYQEgS2V5IGlzIHRoZSBibGFrZTIgMjU2IGhhc2ggb2YgKG9yaWdpbiwgdmVyc2lvbmVkIGBBc3NldHNgKSBwYWlyLiBWYWx1ZSBpcyB0aGUgbnVtYmVyIG9mHQEgdGltZXMgdGhpcyBwYWlyIGhhcyBiZWVuIHRyYXBwZWQgKHVzdWFsbHkganVzdCAxIGlmIGl0IGV4aXN0cyBhdCBhbGwpLgA4U2FmZVhjbVZlcnNpb24AADgEAAhhASBEZWZhdWx0IHZlcnNpb24gdG8gZW5jb2RlIFhDTSB3aGVuIGxhdGVzdCB2ZXJzaW9uIG9mIGRlc3RpbmF0aW9uIGlzIHVua25vd24uIElmIGBOb25lYCw9ASB0aGVuIHRoZSBkZXN0aW5hdGlvbnMgd2hvc2UgWENNIHZlcnNpb24gaXMgdW5rbm93biBhcmUgY29uc2lkZXJlZCB1bnJlYWNoYWJsZS4AQFN1cHBvcnRlZFZlcnNpb24AAQgFAnUNOAQABPAgVGhlIExhdGVzdCB2ZXJzaW9ucyB0aGF0IHdlIGtub3cgdmFyaW91cyBsb2NhdGlvbnMgc3VwcG9ydC4AQFZlcnNpb25Ob3RpZmllcnMAAQgFAnUNKAQABAUBIEFsbCBsb2NhdGlvbnMgdGhhdCB3ZSBoYXZlIHJlcXVlc3RlZCB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMgZnJvbS4AUFZlcnNpb25Ob3RpZnlUYXJnZXRzAAEIBQJ1DXkNBAAIcQEgVGhlIHRhcmdldCBsb2NhdGlvbnMgdGhhdCBhcmUgc3Vic2NyaWJlZCB0byBvdXIgdmVyc2lvbiBjaGFuZ2VzLCBhcyB3ZWxsIGFzIHRoZSBtb3N0IHJlY2VudJQgb2Ygb3VyIHZlcnNpb25zIHdlIGluZm9ybWVkIHRoZW0gb2YuAFRWZXJzaW9uRGlzY292ZXJ5UXVldWUBAH0NBAAMZQEgRGVzdGluYXRpb25zIHdob3NlIGxhdGVzdCBYQ00gdmVyc2lvbiB3ZSB3b3VsZCBsaWtlIHRvIGtub3cuIER1cGxpY2F0ZXMgbm90IGFsbG93ZWQsIGFuZHEBIHRoZSBgdTMyYCBjb3VudGVyIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBhIHNlbmQgdG8gdGhlIGRlc3RpbmF0aW9uIGhhcyBiZWVuIGF0dGVtcHRlZCyMIHdoaWNoIGlzIHVzZWQgYXMgYSBwcmlvcml0aXphdGlvbi4AQEN1cnJlbnRNaWdyYXRpb24AAIkNBAAEnCBUaGUgY3VycmVudCBtaWdyYXRpb24ncyBzdGFnZSwgaWYgYW55LgBUUmVtb3RlTG9ja2VkRnVuZ2libGVzAAEMBQICjQ2RDQQABPAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiBhIHJlbW90ZSBjaGFpbi4APExvY2tlZEZ1bmdpYmxlcwABBAIEoQ0EAATgIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gdGhpcyBjaGFpbi4AVFhjbUV4ZWN1dGlvblN1c3BlbmRlZAEAXQEEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuADxTaG91bGRSZWNvcmRYY20BAF0BBAAcWQEgV2hldGhlciBvciBub3QgaW5jb21pbmcgWENNcyAoYm90aCBleGVjdXRlZCBsb2NhbGx5IGFuZCByZWNlaXZlZCkgc2hvdWxkIGJlIHJlY29yZGVkLsQgT25seSBvbmUgWENNIHByb2dyYW0gd2lsbCBiZSByZWNvcmRlZCBhdCBhIHRpbWUuKQEgVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHJ1bnRpbWUgQVBJcywgYW5kIGl0J3MgYWR2aXNlZCBpdCBzdGF5cyBmYWxzZQ0BIGZvciBhbGwgb3RoZXIgdXNlIGNhc2VzLCBzbyBhcyB0byBub3QgZGVncmFkZSByZWd1bGFyIHBlcmZvcm1hbmNlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uACxSZWNvcmRlZFhjbQAA+QIEABhJASBJZiBbYFNob3VsZFJlY29yZFhjbWBdIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoZSBsYXN0IFhDTSBwcm9ncmFtIGV4ZWN1dGVkIGxvY2FsbHlUIHdpbGwgYmUgc3RvcmVkIGhlcmUuKQEgUnVudGltZSBBUElzIGNhbiBmZXRjaCB0aGUgWENNIHRoYXQgd2FzIGV4ZWN1dGVkIGJ5IGFjY2Vzc2luZyB0aGlzIHZhbHVlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uAERBdXRob3JpemVkQWxpYXNlcwABBAKtAa0NBAAMZQEgTWFwIG9mIGF1dGhvcml6ZWQgYWxpYXNlcnMgb2YgbG9jYWwgb3JpZ2lucy4gRWFjaCBsb2NhbCBsb2NhdGlvbiBjYW4gYXV0aG9yaXplIGEgbGlzdCBvZlkBIG90aGVyIGxvY2F0aW9ucyB0byBhbGlhcyBpbnRvIGl0LiBFYWNoIGFsaWFzZXIgaXMgb25seSB2YWxpZCB1bnRpbCBpdHMgaW5uZXIgYGV4cGlyeWA4IGJsb2NrIG51bWJlci4AAakBCAECuQFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAACAtkBVGhpcyBleHRyaW5zaWMgdXNlcyBgV2VpZ2h0TGltaXQ6OlVubGltaXRlZGAsIHBsZWFzZSBtaWdyYXRlIHRvIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAABvQoAEERVbml2ZXJzYWxMb2NhdGlvbgUCGAIJAgChDwSEIFRoaXMgY2hhaW4ncyBVbml2ZXJzYWwgTG9jYXRpb24uAFBBZHZlcnRpc2VkWGNtVmVyc2lvbjgQBQAAAAglASBUaGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9uIHRoYXQgd2UgYWR2ZXJ0aXNlLiBHZW5lcmFsbHkganVzdCBzZXQgaXQgdG+EIGBwYWxsZXRfeGNtOjpDdXJyZW50WGNtVmVyc2lvbmAuAChNYXhMb2NrZXJzOBAIAAAABBkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NhbCBYQ00gbG9ja3MgdGhhdCBhIHNpbmdsZSBhY2NvdW50IG1heSBoYXZlLgBYTWF4UmVtb3RlTG9ja0NvbnN1bWVyczgQAAAAAAT8IFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgYSBzaW5nbGUgcmVtb3RlIGxvY2sgbWF5IGhhdmUuAAHFDQQYArxVc2UgYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZVdpdGhFcnJvcmAgaW5zdGVhZAEYMjAuMC4wCCxSdW50aW1lQ2FsbCAEZCBUaGUgcnVudGltZSBgQ2FsbGAgdHlwZS5wUmVtb3RlTG9ja0NvbnN1bWVySWRlbnRpZmllchAExCBUaGUgSUQgdHlwZSBmb3IgbG9jYWwgY29uc3VtZXJzIG9mIHJlbW90ZSBsb2Nrcy4AHwAAKEN1bXVsdXNYY20AAakDAAHNCgAAAAAAIAAARFRvS3VzYW1hWGNtUm91dGVyAURUb0t1c2FtYVhjbVJvdXRlcgQYQnJpZGdlAQDNDUQAAGSns7bgDQAAAAAAAAAAABxoIEJyaWRnZSB0aGF0IHdlIGFyZSB1c2luZy4AcQEgKipicmlkZ2VzLXYxKiogYXNzdW1wdGlvbnM6IGFsbCBvdXRib3VuZCBtZXNzYWdlcyB0aHJvdWdoIHRoaXMgcm91dGVyIGFyZSB1c2luZyBzaW5nbGUgbGFuZW0BIGFuZCB0byBzaW5nbGUgcmVtb3RlIGNvbnNlbnN1cy4gSWYgdGhlcmUgaXMgc29tZSBvdGhlciByZW1vdGUgY29uc2Vuc3VzIHRoYXQgdXNlcyB0aGUgc2FtZWEBIGJyaWRnZSBodWIsIHRoZSBzZXBhcmF0ZSBwYWxsZXQgaW5zdGFuY2Ugc2hhbGwgYmUgdXNlZCwgSW4gYHYyYCB3ZSdsbCBoYXZlIGFsbCByZXF1aXJlZHEBIHByaW1pdGl2ZXMgKGxhbmUtaWQgYWthIGJyaWRnZS1pZCwgZGVyaXZlZCBmcm9tIFhDTSBsb2NhdGlvbnMpIHRvIHN1cHBvcnQgbXVsdGlwbGUgIGJyaWRnZXN0IGJ5IHRoZSBzYW1lIHBhbGxldCBpbnN0YW5jZS4AAa0DAAHRCgAAAAAAIgAAME1lc3NhZ2VRdWV1ZQEwTWVzc2FnZVF1ZXVlDDBCb29rU3RhdGVGb3IBAQQFtQPRDXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATMIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgKG5vbi1lbXB0eSkgcGFnZXMuACxTZXJ2aWNlSGVhZAAAtQMEAAS8IFRoZSBvcmlnaW4gYXQgd2hpY2ggd2Ugc2hvdWxkIGJlZ2luIHNlcnZpY2luZy4AFFBhZ2VzAAEIBQXdDeENBAAEiCBUaGUgbWFwIG9mIHBhZ2UgaW5kaWNlcyB0byBwYWdlcy4AAbEDAAHVCgAQIEhlYXBTaXplOBAAAAEAFD0BIFRoZSBzaXplIG9mIHRoZSBwYWdlOyB0aGlzIGltcGxpZXMgdGhlIG1heGltdW0gbWVzc2FnZSBzaXplIHdoaWNoIGNhbiBiZSBzZW50LgBZASBBIGdvb2QgdmFsdWUgZGVwZW5kcyBvbiB0aGUgZXhwZWN0ZWQgbWVzc2FnZSBzaXplcywgdGhlaXIgd2VpZ2h0cywgdGhlIHdlaWdodCB0aGF0IGlzXQEgYXZhaWxhYmxlIGZvciBwcm9jZXNzaW5nIHRoZW0gYW5kIHRoZSBtYXhpbWFsIG5lZWRlZCBtZXNzYWdlIHNpemUuIFRoZSBtYXhpbWFsIG1lc3NhZ2URASBzaXplIGlzIHNsaWdodGx5IGxvd2VyIHRoYW4gdGhpcyBhcyBkZWZpbmVkIGJ5IFtgTWF4TWVzc2FnZUxlbk9mYF0uACBNYXhTdGFsZTgQCAAAAAxdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhbGUgcGFnZXMgKGkuZS4gb2Ygb3ZlcndlaWdodCBtZXNzYWdlcykgYWxsb3dlZCBiZWZvcmUgY3VsbGluZ1EBIGNhbiBoYXBwZW4uIE9uY2UgdGhlcmUgYXJlIG1vcmUgc3RhbGUgcGFnZXMgdGhhbiB0aGlzLCB0aGVuIGhpc3RvcmljYWwgcGFnZXMgbWF5IGJl/CBkcm9wcGVkLCBldmVuIGlmIHRoZXkgY29udGFpbiB1bnByb2Nlc3NlZCBvdmVyd2VpZ2h0IG1lc3NhZ2VzLgA0U2VydmljZVdlaWdodBEBLAEHABCl1OgCAEABGEEBIFRoZSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3KoIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faW5pdGlhbGl6ZWAuAPwgVGhpcyBtYXkgYmUgbGVnaXRpbWF0ZWx5IGBOb25lYCBpbiB0aGUgY2FzZSB0aGF0IHlvdSB3aWxsIGNhbGxdASBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIG1hbnVhbGx5IG9yIHNldCBbYFNlbGY6OklkbGVNYXhTZXJ2aWNlV2VpZ2h0YF0gdG8gaGF2ZVQgaXQgcnVuIGluIGBvbl9pZGxlYC4AUElkbGVNYXhTZXJ2aWNlV2VpZ2h0EQEsAQcAEKXU6AIAQAEUXQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB0byBiZSB1c2VkIGZyb20gcmVtYWluaW5nIHdlaWdodCBgb25faWRsZWAgd2hpY2hBASBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faWRsZWAuPQEgVXNlZnVsIGZvciBwYXJhY2hhaW5zIHRvIHByb2Nlc3MgbWVzc2FnZXMgYXQgdGhlIHNhbWUgYmxvY2sgdGhleSBhcmUgcmVjZWl2ZWQuACkBIElmIGBOb25lYCwgaXQgd2lsbCBub3QgY2FsbCBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIGluIGBvbl9pZGxlYC4AAekNAAQQU2l6ZTgEVCBQYWdlL2hlYXAgc2l6ZSB0eXBlLgAjAABgU25vd2JyaWRnZVN5c3RlbUZyb250ZW5kAWBTbm93YnJpZGdlU3lzdGVtRnJvbnRlbmQETEV4cG9ydE9wZXJhdGluZ01vZGUBAL0DBAAE2CBUaGUgY3VycmVudCBvcGVyYXRpbmcgbW9kZSBmb3IgZXhwb3J0aW5nIHRvIEV0aGVyZXVtLgABuQMAAd0KAAAB7Q0AAAAkAAAcVXRpbGl0eQABzQMAAeEKAARMYmF0Y2hlZF9jYWxsc19saW1pdDgQqioAAASoIFRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIGJhdGNoZWQgY2FsbHMuAAHxDQAILFJ1bnRpbWVDYWxsIARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuNFBhbGxldHNPcmlnaW7ZAwTwIFRoZSBjYWxsZXIgb3JpZ2luLCBvdmVyYXJjaGluZyB0eXBlIG9mIGFsbCBwYWxsZXRzIG9yaWdpbnMuACgAACBNdWx0aXNpZwEgTXVsdGlzaWcEJE11bHRpc2lncwABCAUC9Q35DQQABJQgVGhlIHNldCBvZiBvcGVuIG11bHRpc2lnIG9wZXJhdGlvbnMuAAH1AwAB5QoADCxEZXBvc2l0QmFzZVkBQADbu3cAAAAAAAAAAAAAAAAYWQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbiBvciB0b4Qgc3RvcmUgYSBkaXNwYXRjaCBjYWxsIGZvciBsYXRlci4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzMQEgYDQgKyBzaXplb2YoKEJsb2NrTnVtYmVyLCBCYWxhbmNlLCBBY2NvdW50SWQpKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzgCBgMzIgKyBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuADREZXBvc2l0RmFjdG9yWQFAANQwAAAAAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuADhNYXhTaWduYXRvcmllczgQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4AAQEOAAQsUnVudGltZUNhbGwgBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AKQAAFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUEBQ5EAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LgA0QW5ub3VuY2VtZW50cwEBBAUEFQ5EAAAAAAAAAAAAAAAAAAAAAAAErCBUaGUgYW5ub3VuY2VtZW50cyBtYWRlIGJ5IHRoZSBwcm94eSAoa2V5KS4AAQEEAAHpCgAYQFByb3h5RGVwb3NpdEJhc2VZAUAAnXJ3AAAAAAAAAAAAAAAAEBEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBwcm94eS4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzJQEgYHNpemVvZihCYWxhbmNlKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuAEhQcm94eURlcG9zaXRGYWN0b3JZAUCgWjIAAAAAAAAAAAAAAAAAFLwgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHByb3h5IGFkZGVkLgA1ASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBwbHVzIGFuIGluc3RhbmNlIG9mIGBQcm94eVR5cGVgIG1vcmUgaW50byBhYQEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuIFRodXMsIHdoZW4gY29uZmlndXJpbmcgYFByb3h5RGVwb3NpdEZhY3RvcmAgb25lIHNob3VsZCB0YWtl9CBpbnRvIGFjY291bnQgYDMyICsgcHJveHlfdHlwZS5lbmNvZGUoKS5sZW4oKWAgYnl0ZXMgb2YgZGF0YS4AKE1heFByb3hpZXM4ECAAAAAE8CBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHJveGllcyBhbGxvd2VkIGZvciBhIHNpbmdsZSBhY2NvdW50LgAoTWF4UGVuZGluZzgQIAAAAARFASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZS1kZWxheWVkIGFubm91bmNlbWVudHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwZW5kaW5nLgBcQW5ub3VuY2VtZW50RGVwb3NpdEJhc2VZAUAA0n53AAAAAAAAAAAAAAAAEDEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYW4gYW5ub3VuY2VtZW50LgBJASBUaGlzIGlzIGhlbGQgd2hlbiBhIG5ldyBzdG9yYWdlIGl0ZW0gaG9sZGluZyBhIGBCYWxhbmNlYCBpcyBjcmVhdGVkICh0eXBpY2FsbHkgMTYgIGJ5dGVzKS4AZEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JZAUBAtWQAAAAAAAAAAAAAAAAAENQgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFubm91bmNlbWVudCBtYWRlLgBZASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBhbiBgQWNjb3VudElkYCwgYEhhc2hgIGFuZCBgQmxvY2tOdW1iZXJgICh0eXBpY2FsbHkgNjggYnl0ZXMpjCBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuAAElDgAILFJ1bnRpbWVDYWxsIARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuJFByb3h5VHlwZQkEEFUBIEEga2luZCBvZiBwcm94eTsgc3BlY2lmaWVkIHdpdGggdGhlIHByb3h5IGFuZCBwYXNzZWQgaW4gdG8gdGhlIGBJc1Byb3h5YWJsZWAgZmlsdGVyLlEBIFRoZSBpbnN0YW5jZSBmaWx0ZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gY2FsbCBtYXkgYmUgcHJveGllZCB1bmRlciB0aGlzIHR5cGUuAE0BIElNUE9SVEFOVDogYERlZmF1bHRgIG11c3QgYmUgcHJvdmlkZWQgYW5kIE1VU1QgQkUgdGhlIHRoZSAqbW9zdCBwZXJtaXNzaXZlKiB2YWx1ZS4IGAnXg0Zyeg71jA+gO6+jI8vFFIjZKhqnE3sDv7UO/BdEY2hlY2tfcGVybWlzc2lvbnMIEGNhbGwgKHByb3h5X3R5cGUJBF0BBPQgQ2hlY2sgaWYgYSBgUnVudGltZUNhbGxgIGlzIGFsbG93ZWQgZm9yIGEgZ2l2ZW4gYFByb3h5VHlwZWAuABgJ14NGcnoO9YwPoDuvoyMXFLBgfWKvCjs7CtLF1VxYLGlzX3N1cGVyc2V0CCB0b19jaGVjawkEHGFnYWluc3QJBF0BBPQgQ2hlY2sgaWYgb25lIGBQcm94eVR5cGVgIGlzIGEgc3Vic2V0IG9mIGFub3RoZXIgYFByb3h5VHlwZWAuACoAABxJbmRpY2VzARxJbmRpY2VzBCBBY2NvdW50cwABBAI4KQ4EAASIIFRoZSBsb29rdXAgZnJvbSBpbmRleCB0byBhY2NvdW50LgABDQQAAfEKAAQcRGVwb3NpdFkBQADSfncAAAAAAAAAAAAAAAAErCBUaGUgZGVwb3NpdCBuZWVkZWQgZm9yIHJlc2VydmluZyBhbiBpbmRleC4AAS0OAAQwQWNjb3VudEluZGV4OAhVASBUeXBlIHVzZWQgZm9yIHN0b3JpbmcgYW4gYWNjb3VudCdzIGluZGV4OyBpbXBsaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0aGVEIHN5c3RlbSBjYW4gaG9sZC4AKwAAGEFzc2V0cwEYQXNzZXRzGBRBc3NldAABBAI4MQ4EAARUIERldGFpbHMgb2YgYW4gYXNzZXQuABxBY2NvdW50AAEIAgI5Dj0OBAAE5CBUaGUgaG9sZGluZ3Mgb2YgYSBzcGVjaWZpYyBhY2NvdW50IGZvciBhIHNwZWNpZmljIGFzc2V0LgAkQXBwcm92YWxzAAEMAgICSQ5NDgQADFkBIEFwcHJvdmVkIGJhbGFuY2UgdHJhbnNmZXJzLiBGaXJzdCBiYWxhbmNlIGlzIHRoZSBhbW91bnQgYXBwcm92ZWQgZm9yIHRyYW5zZmVyLiBTZWNvbmToIGlzIHRoZSBhbW91bnQgb2YgYFQ6OkN1cnJlbmN5YCByZXNlcnZlZCBmb3Igc3RvcmluZyB0aGlzLkkBIEZpcnN0IGtleSBpcyB0aGUgYXNzZXQgSUQsIHNlY29uZCBrZXkgaXMgdGhlIG93bmVyIGFuZCB0aGlyZCBrZXkgaXMgdGhlIGRlbGVnYXRlLgAgTWV0YWRhdGEBAQQCOFEOUAAAAAAAAAAAAAAAAAAAAAAAAAAABFggTWV0YWRhdGEgb2YgYW4gYXNzZXQuACBSZXNlcnZlcwEBBAI4FQQEAAT8IE1hcHMgYW4gYXNzZXQgdG8gYSBsaXN0IG9mIGl0cyBjb25maWd1cmVkIHJlc2VydmUgaW5mb3JtYXRpb24uACxOZXh0QXNzZXRJZAAAOAQAJG0BIFRoZSBhc3NldCBJRCBlbmZvcmNlZCBmb3IgdGhlIG5leHQgYXNzZXQgY3JlYXRpb24sIGlmIGFueSBwcmVzZW50LiBPdGhlcndpc2UsIHRoaXMgc3RvcmFnZVAgaXRlbSBoYXMgbm8gZWZmZWN0LgBlASBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHNldHRpbmcgdXAgY29uc3RyYWludHMgZm9yIElEcyBvZiB0aGUgbmV3IGFzc2V0cy4gRm9yIGV4YW1wbGUsIGJ5aQEgcHJvdmlkaW5nIGFuIGluaXRpYWwgW2BOZXh0QXNzZXRJZGBdIGFuZCB1c2luZyB0aGUgW2BjcmF0ZTo6QXV0b0luY0Fzc2V0SWRgXSBjYWxsYmFjaywgYW7oIGF1dG8taW5jcmVtZW50IG1vZGVsIGNhbiBiZSBhcHBsaWVkIHRvIGFsbCBuZXcgYXNzZXQgSURzLgAhASBUaGUgaW5pdGlhbCBuZXh0IGFzc2V0IElEIGNhbiBiZSBzZXQgdXNpbmcgdGhlIFtgR2VuZXNpc0NvbmZpZ2BdIG9yIHRoZSEBIFtTZXROZXh0QXNzZXRJZF0oYG1pZ3JhdGlvbjo6bmV4dF9hc3NldF9pZDo6U2V0TmV4dEFzc2V0SWRgKSBtaWdyYXRpb24uAAERBAAB9QoAHEBSZW1vdmVJdGVtc0xpbWl0OBDoAwAADFEBIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gZGVzdHJveSBwZXIgYGRlc3Ryb3lfYWNjb3VudHNgIGFuZCBgZGVzdHJveV9hcHByb3ZhbHNgIGNhbGwuADkBIE11c3QgYmUgY29uZmlndXJlZCB0byByZXN1bHQgaW4gYSB3ZWlnaHQgdGhhdCBtYWtlcyBlYWNoIGNhbGwgZml0IGluIGEgYmxvY2suADBBc3NldERlcG9zaXRZAUDAfld4AAAAAAAAAAAAAAAABPggVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGFuIGFzc2V0LgBMQXNzZXRBY2NvdW50RGVwb3NpdFkBQAD+TXcAAAAAAAAAAAAAAAAIRQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGEgbm9uLXByb3ZpZGVyIGFzc2V0IGFjY291bnQgdG8gYmUwIG1haW50YWluZWQuAExNZXRhZGF0YURlcG9zaXRCYXNlWQFAgFaddwAAAAAAAAAAAAAAAARRASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGFzc2V0LgBYTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZVkBQKCGAQAAAAAAAAAAAAAAAAAIVQEgVGhlIGFkZGl0aW9uYWwgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciB0aGUgbnVtYmVyIG9mIGJ5dGVzIHlvdSBzdG9yZSBpbiB5b3VyKCBtZXRhZGF0YS4APEFwcHJvdmFsRGVwb3NpdFkBQADh9QUAAAAAAAAAAAAAAAAEIQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBjcmVhdGluZyBhIG5ldyBhcHByb3ZhbC4ALFN0cmluZ0xpbWl0OBAyAAAABOAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgbmFtZSBvciBzeW1ib2wgc3RvcmVkIG9uLWNoYWluLgABWQ4AFBxCYWxhbmNlWQEEnCBUaGUgdW5pdHMgaW4gd2hpY2ggd2UgcmVjb3JkIGJhbGFuY2VzLhxBc3NldElkOASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC5AQXNzZXRJZFBhcmFtZXRlcmQcWQEgV3JhcHBlciBhcm91bmQgYFNlbGY6OkFzc2V0SWRgIHRvIHVzZSBpbiBkaXNwYXRjaGFibGUgY2FsbCBzaWduYXR1cmVzLiBBbGxvd3MgdGhlIHVzZVEBIG9mIGNvbXBhY3QgZW5jb2RpbmcgaW4gaW5zdGFuY2VzIG9mIHRoZSBwYWxsZXQsIHdoaWNoIHdpbGwgcHJldmVudCBicmVha2luZyBjaGFuZ2VzBQEgcmVzdWx0aW5nIGZyb20gdGhlIHJlbW92YWwgb2YgYEhhc0NvbXBhY3RgIGZyb20gYFNlbGY6OkFzc2V0SWRgLgBZASBUaGlzIHR5cGUgaW5jbHVkZXMgdGhlIGBGcm9tPFNlbGY6OkFzc2V0SWQ+YCBib3VuZCwgc2luY2UgdGlnaHRseSBjb3VwbGVkIHBhbGxldHMgbWF5RQEgd2FudCB0byBjb252ZXJ0IGFuIGBBc3NldElkYCBpbnRvIGEgcGFyYW1ldGVyIGZvciBjYWxsaW5nIGRpc3BhdGNoYWJsZSBmdW5jdGlvbnMoIGRpcmVjdGx5LixSZXNlcnZlRGF0YRAE6CBJbmZvcm1hdGlvbiBhYm91dCByZXNlcnZlIGxvY2F0aW9ucyBmb3IgYSBjbGFzcyBvZiBhc3NldC4URXh0cmEQBPggQWRkaXRpb25hbCBkYXRhIHRvIGJlIHN0b3JlZCB3aXRoIGFuIGFjY291bnQncyBhc3NldCBiYWxhbmNlLhBoKlnVGrnkioyMxBj/lwjSpwKXrQtL3T2kt0YpplpuXDRhc3NldF9kZXRhaWxzBAhpZDhdDgSoIFByb3ZpZGUgdGhlIGFzc2V0IGRldGFpbHMgZm9yIGFzc2V0IGBpZGAuAGgqWdUaueSKjIzEGP+XCNJTGsfiG3axIedh5HNBmhsCKGJhbGFuY2Vfb2YIDHdobwQIaWQ4MQQEtCBQcm92aWRlIHRoZSBiYWxhbmNlIG9mIGB3aG9gIGZvciBhc3NldCBgaWRgLgBoKlnVGrnkioyMxBj/lwjSLodmpA0badYVG9gB5XVQXjBnZXRfbWV0YWRhdGEECGlkOGEOBMAgUHJvdmlkZSB0aGUgY29uZmlndXJlZCBtZXRhZGF0YSBmb3IgYXNzZXQgYGlkYC4AaCpZ1Rq55IqMjMQY/5cI0mT2Pykj45goJDFjga4eaYZEZ2V0X3Jlc2VydmVzX2RhdGEECGlkOBkEBNQgUHJvdmlkZSB0aGUgY29uZmlndXJlZCByZXNlcnZlcyBkYXRhIGZvciBhc3NldCBgaWRgLgAyAAAcVW5pcXVlcwEcVW5pcXVlcygUQ2xhc3MAAQQCOGUOBAAEZCBEZXRhaWxzIG9mIGEgY29sbGVjdGlvbi4ATE93bmVyc2hpcEFjY2VwdGFuY2UAAQQCBDgEAAQpASBUaGUgY29sbGVjdGlvbiwgaWYgYW55LCBvZiB3aGljaCBhbiBhY2NvdW50IGlzIHdpbGxpbmcgdG8gdGFrZSBvd25lcnNoaXAuABxBY2NvdW50AAEMAgICaQ4QBAAIWQEgVGhlIGl0ZW1zIGhlbGQgYnkgYW55IGdpdmVuIGFjY291bnQ7IHNldCBvdXQgdGhpcyB3YXkgc28gdGhhdCBpdGVtcyBvd25lZCBieSBhIHNpbmdsZWwgYWNjb3VudCBjYW4gYmUgZW51bWVyYXRlZC4AMENsYXNzQWNjb3VudAABCAICXQUQBAAIaQEgVGhlIGNvbGxlY3Rpb25zIG93bmVkIGJ5IGFueSBnaXZlbiBhY2NvdW50OyBzZXQgb3V0IHRoaXMgd2F5IHNvIHRoYXQgY29sbGVjdGlvbnMgb3duZWQgYnmQIGEgc2luZ2xlIGFjY291bnQgY2FuIGJlIGVudW1lcmF0ZWQuABRBc3NldAABCAIC0G0OBAAE0CBUaGUgaXRlbXMgaW4gZXhpc3RlbmNlIGFuZCB0aGVpciBvd25lcnNoaXAgZGV0YWlscy4APENsYXNzTWV0YWRhdGFPZgABBAI4cQ4EAARoIE1ldGFkYXRhIG9mIGEgY29sbGVjdGlvbi4ASEluc3RhbmNlTWV0YWRhdGFPZgABCAIC0HUOBAAEVCBNZXRhZGF0YSBvZiBhbiBpdGVtLgAkQXR0cmlidXRlAAEMAgICeQ59DgQABHAgQXR0cmlidXRlcyBvZiBhIGNvbGxlY3Rpb24uACxJdGVtUHJpY2VPZgABCAIC0IEOBAAEcCBQcmljZSBvZiBhbiBhc3NldCBpbnN0YW5jZS4ATENvbGxlY3Rpb25NYXhTdXBwbHkAAQQCODgEAATwIEtlZXBzIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgaXRlbXMgYSBjb2xsZWN0aW9uIG1pZ2h0IGhhdmUuAAEdBAAB+QoAIERDb2xsZWN0aW9uRGVwb3NpdFkBQADodkgXAAAAAAAAAAAAAAAEAQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGNvbGxlY3Rpb24uACxJdGVtRGVwb3NpdFkBQADh9QUAAAAAAAAAAAAAAAAE9CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gaXRlbS4ATE1ldGFkYXRhRGVwb3NpdEJhc2VZAUCgavp3AAAAAAAAAAAAAAAABE0BIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gYWRkaW5nIG1ldGFkYXRhIHRvIHlvdXIgaXRlbS4AUEF0dHJpYnV0ZURlcG9zaXRCYXNlWQFAAJQ1dwAAAAAAAAAAAAAAAARVASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBhbiBhdHRyaWJ1dGUgdG8gYW4gaXRlbS4AOERlcG9zaXRQZXJCeXRlWQFAoIYBAAAAAAAAAAAAAAAAAAhZASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3RvcmUgaW4gbWV0YWRhdGEswCBlaXRoZXIgIm5vcm1hbCIgbWV0YWRhdGEgb3IgYXR0cmlidXRlIG1ldGFkYXRhLgAsU3RyaW5nTGltaXQ4EIAAAAAEsCBUaGUgbWF4aW11bSBsZW5ndGggb2YgZGF0YSBzdG9yZWQgb24tY2hhaW4uACBLZXlMaW1pdDgQIAAAAASgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUga2V5LgAoVmFsdWVMaW1pdDgQQAAAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUgdmFsdWUuAAGFDgAIMENvbGxlY3Rpb25JZDgEnCBJZGVudGlmaWVyIGZvciB0aGUgY29sbGVjdGlvbiBvZiBpdGVtLhhJdGVtSWQ4BPQgVGhlIHR5cGUgdXNlZCB0byBpZGVudGlmeSBhIHVuaXF1ZSBpdGVtIHdpdGhpbiBhIGNvbGxlY3Rpb24uADMAABBOZnRzARBOZnRzPChDb2xsZWN0aW9uAAEEAjiJDgQABGQgRGV0YWlscyBvZiBhIGNvbGxlY3Rpb24uAExPd25lcnNoaXBBY2NlcHRhbmNlAAEEAgQ4BAAEKQEgVGhlIGNvbGxlY3Rpb24sIGlmIGFueSwgb2Ygd2hpY2ggYW4gYWNjb3VudCBpcyB3aWxsaW5nIHRvIHRha2Ugb3duZXJzaGlwLgAcQWNjb3VudAABDAICAmkOEAQACFkBIFRoZSBpdGVtcyBoZWxkIGJ5IGFueSBnaXZlbiBhY2NvdW50OyBzZXQgb3V0IHRoaXMgd2F5IHNvIHRoYXQgaXRlbXMgb3duZWQgYnkgYSBzaW5nbGVsIGFjY291bnQgY2FuIGJlIGVudW1lcmF0ZWQuAERDb2xsZWN0aW9uQWNjb3VudAABCAICXQUQBAAIaQEgVGhlIGNvbGxlY3Rpb25zIG93bmVkIGJ5IGFueSBnaXZlbiBhY2NvdW50OyBzZXQgb3V0IHRoaXMgd2F5IHNvIHRoYXQgY29sbGVjdGlvbnMgb3duZWQgYnmQIGEgc2luZ2xlIGFjY291bnQgY2FuIGJlIGVudW1lcmF0ZWQuAEBDb2xsZWN0aW9uUm9sZU9mAAEIAgI5Do0OBAAI0CBUaGUgaXRlbXMgaW4gZXhpc3RlbmNlIGFuZCB0aGVpciBvd25lcnNoaXAgZGV0YWlscy6gIFN0b3JlcyBjb2xsZWN0aW9uIHJvbGVzIGFzIHBlciBhY2NvdW50LgAQSXRlbQABCAIC0JUOBAAE0CBUaGUgaXRlbXMgaW4gZXhpc3RlbmNlIGFuZCB0aGVpciBvd25lcnNoaXAgZGV0YWlscy4AUENvbGxlY3Rpb25NZXRhZGF0YU9mAAEEAjitDgQABGggTWV0YWRhdGEgb2YgYSBjb2xsZWN0aW9uLgA4SXRlbU1ldGFkYXRhT2YAAQgCAtCxDgQABFQgTWV0YWRhdGEgb2YgYW4gaXRlbS4AJEF0dHJpYnV0ZQABEAICAgK5Dr0OBAAEcCBBdHRyaWJ1dGVzIG9mIGEgY29sbGVjdGlvbi4ALEl0ZW1QcmljZU9mAAEIAgLQgQ4EAARQIEEgcHJpY2Ugb2YgYW4gaXRlbS4AZEl0ZW1BdHRyaWJ1dGVzQXBwcm92YWxzT2YBAQgCAtDFDgQABGggSXRlbSBhdHRyaWJ1dGUgYXBwcm92YWxzLgBATmV4dENvbGxlY3Rpb25JZAAAOAQACDEBIFN0b3JlcyB0aGUgYENvbGxlY3Rpb25JZGAgdGhhdCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciB0aGUgbmV4dCBjb2xsZWN0aW9uLvAgVGhpcyBnZXRzIGluY3JlbWVudGVkIHdoZW5ldmVyIGEgbmV3IGNvbGxlY3Rpb24gaXMgY3JlYXRlZC4ANFBlbmRpbmdTd2FwT2YAAQgCAtDNDgQABHwgSGFuZGxlcyBhbGwgdGhlIHBlbmRpbmcgc3dhcHMuAEhDb2xsZWN0aW9uQ29uZmlnT2YAAQQCODkEBAAEYCBDb25maWcgb2YgYSBjb2xsZWN0aW9uLgAwSXRlbUNvbmZpZ09mAAEIAgLQYQQEAARMIENvbmZpZyBvZiBhbiBpdGVtLgABNQQAAf0KADhEQ29sbGVjdGlvbkRlcG9zaXRZAUBA8ft3AAAAAAAAAAAAAAAABAEBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBjb2xsZWN0aW9uLgAsSXRlbURlcG9zaXRZAUAQMgEDAAAAAAAAAAAAAAAABPQgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGFuIGl0ZW0uAExNZXRhZGF0YURlcG9zaXRCYXNlWQFAEHH/CwAAAAAAAAAAAAAAAARNASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGl0ZW0uAFBBdHRyaWJ1dGVEZXBvc2l0QmFzZVkBQADC6wsAAAAAAAAAAAAAAAAEVQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgYW4gYXR0cmlidXRlIHRvIGFuIGl0ZW0uADhEZXBvc2l0UGVyQnl0ZVkBQKCGAQAAAAAAAAAAAAAAAAAIWQEgVGhlIGFkZGl0aW9uYWwgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciB0aGUgbnVtYmVyIG9mIGJ5dGVzIHN0b3JlIGluIG1ldGFkYXRhLMAgZWl0aGVyICJub3JtYWwiIG1ldGFkYXRhIG9yIGF0dHJpYnV0ZSBtZXRhZGF0YS4ALFN0cmluZ0xpbWl0OBAAAQAABLAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGRhdGEgc3RvcmVkIG9uLWNoYWluLgAgS2V5TGltaXQ4EEAAAAAEoCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYXR0cmlidXRlIGtleS4AKFZhbHVlTGltaXQ4EAABAAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYXR0cmlidXRlIHZhbHVlLgA4QXBwcm92YWxzTGltaXQ4EBQAAAAEqCBUaGUgbWF4aW11bSBhcHByb3ZhbHMgYW4gaXRlbSBjb3VsZCBoYXZlLgBwSXRlbUF0dHJpYnV0ZXNBcHByb3ZhbHNMaW1pdDgQHgAAAATUIFRoZSBtYXhpbXVtIGF0dHJpYnV0ZXMgYXBwcm92YWxzIGFuIGl0ZW0gY291bGQgaGF2ZS4AHE1heFRpcHM4EAoAAAAEqCBUaGUgbWF4IG51bWJlciBvZiB0aXBzIGEgdXNlciBjb3VsZCBzZW5kLgBMTWF4RGVhZGxpbmVEdXJhdGlvbjgQABpPAASoIFRoZSBtYXggZHVyYXRpb24gaW4gYmxvY2tzIGZvciBkZWFkbGluZXMuAFBNYXhBdHRyaWJ1dGVzUGVyQ2FsbDgQCgAAAATgIFRoZSBtYXggbnVtYmVyIG9mIGF0dHJpYnV0ZXMgYSB1c2VyIGNvdWxkIHNldCBwZXIgY2FsbC4AIEZlYXR1cmVz0Q4gAAAAAAAAAAAEkCBEaXNhYmxlcyBzb21lIG9mIHBhbGxldCdzIGZlYXR1cmVzLgAB2Q4ADDBDb2xsZWN0aW9uSWQ4JJwgSWRlbnRpZmllciBmb3IgdGhlIGNvbGxlY3Rpb24gb2YgaXRlbS4ASQEgU0FGRVRZOiBUaGUgZnVuY3Rpb25zIGluIHRoZSBgSW5jcmVtZW50YWJsZWAgdHJhaXQgYXJlIGZhbGxpYmxlLiBJZiB0aGUgZnVuY3Rpb25zQQEgb2YgdGhlIGltcGxlbWVudGF0aW9uIGJvdGggcmV0dXJuIGBOb25lYCwgdGhlIGF1dG9tYXRpYyBDb2xsZWN0aW9uSWQgZ2VuZXJhdGlvbikBIHNob3VsZCBub3QgYmUgdXNlZC4gU28gdGhlIGBjcmVhdGVgIGFuZCBgZm9yY2VfY3JlYXRlYCBleHRyaW5zaWNzIGFuZCB0aGVNASBgY3JlYXRlX2NvbGxlY3Rpb25gIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGBVbmtub3duQ29sbGVjdGlvbmAgRXJyb3IuIEluc3RlYWQgdXNlQQEgdGhlIGBjcmVhdGVfY29sbGVjdGlvbl93aXRoX2lkYCBmdW5jdGlvbi4gSG93ZXZlciwgaWYgdGhlIGBJbmNyZW1lbnRhYmxlYCB0cmFpdEkBIGltcGxlbWVudGF0aW9uIGhhcyBhbiBpbmNyZW1lbnRhbCBvcmRlciwgdGhlIGBjcmVhdGVfY29sbGVjdGlvbl93aXRoX2lkYCBmdW5jdGlvbvwgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGl0IGNhbiBjbGFpbSBhIHZhbHVlIGluIHRoZSBJRCBzZXF1ZW5jZS4YSXRlbUlkOAT0IFRoZSB0eXBlIHVzZWQgdG8gaWRlbnRpZnkgYSB1bmlxdWUgaXRlbSB3aXRoaW4gYSBjb2xsZWN0aW9uLkRPZmZjaGFpblNpZ25hdHVyZYkEDGggT2ZmLUNoYWluIHNpZ25hdHVyZSB0eXBlLgAJASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6Ok9mZmNoYWluUHVibGljYCBjcmVhdGVkIGEgc2lnbmF0dXJlLgA0AAA0Rm9yZWlnbkFzc2V0cwE0Rm9yZWlnbkFzc2V0cxgUQXNzZXQAAQQCAQIxDgQABFQgRGV0YWlscyBvZiBhbiBhc3NldC4AHEFjY291bnQAAQgCAt0OPQ4EAATkIFRoZSBob2xkaW5ncyBvZiBhIHNwZWNpZmljIGFjY291bnQgZm9yIGEgc3BlY2lmaWMgYXNzZXQuACRBcHByb3ZhbHMAAQwCAgLhDk0OBAAMWQEgQXBwcm92ZWQgYmFsYW5jZSB0cmFuc2ZlcnMuIEZpcnN0IGJhbGFuY2UgaXMgdGhlIGFtb3VudCBhcHByb3ZlZCBmb3IgdHJhbnNmZXIuIFNlY29uZOggaXMgdGhlIGFtb3VudCBvZiBgVDo6Q3VycmVuY3lgIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoaXMuSQEgRmlyc3Qga2V5IGlzIHRoZSBhc3NldCBJRCwgc2Vjb25kIGtleSBpcyB0aGUgb3duZXIgYW5kIHRoaXJkIGtleSBpcyB0aGUgZGVsZWdhdGUuACBNZXRhZGF0YQEBBAIBAuUOUAAAAAAAAAAAAAAAAAAAAAAAAAAABFggTWV0YWRhdGEgb2YgYW4gYXNzZXQuACBSZXNlcnZlcwEBBAIBApkEBAAE/CBNYXBzIGFuIGFzc2V0IHRvIGEgbGlzdCBvZiBpdHMgY29uZmlndXJlZCByZXNlcnZlIGluZm9ybWF0aW9uLgAsTmV4dEFzc2V0SWQAAAECBAAkbQEgVGhlIGFzc2V0IElEIGVuZm9yY2VkIGZvciB0aGUgbmV4dCBhc3NldCBjcmVhdGlvbiwgaWYgYW55IHByZXNlbnQuIE90aGVyd2lzZSwgdGhpcyBzdG9yYWdlUCBpdGVtIGhhcyBubyBlZmZlY3QuAGUBIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2V0dGluZyB1cCBjb25zdHJhaW50cyBmb3IgSURzIG9mIHRoZSBuZXcgYXNzZXRzLiBGb3IgZXhhbXBsZSwgYnlpASBwcm92aWRpbmcgYW4gaW5pdGlhbCBbYE5leHRBc3NldElkYF0gYW5kIHVzaW5nIHRoZSBbYGNyYXRlOjpBdXRvSW5jQXNzZXRJZGBdIGNhbGxiYWNrLCBhbuggYXV0by1pbmNyZW1lbnQgbW9kZWwgY2FuIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyBhc3NldCBJRHMuACEBIFRoZSBpbml0aWFsIG5leHQgYXNzZXQgSUQgY2FuIGJlIHNldCB1c2luZyB0aGUgW2BHZW5lc2lzQ29uZmlnYF0gb3IgdGhlIQEgW1NldE5leHRBc3NldElkXShgbWlncmF0aW9uOjpuZXh0X2Fzc2V0X2lkOjpTZXROZXh0QXNzZXRJZGApIG1pZ3JhdGlvbi4AAZUEAAEFCwAcQFJlbW92ZUl0ZW1zTGltaXQ4EOgDAAAMUQEgTWF4IG51bWJlciBvZiBpdGVtcyB0byBkZXN0cm95IHBlciBgZGVzdHJveV9hY2NvdW50c2AgYW5kIGBkZXN0cm95X2FwcHJvdmFsc2AgY2FsbC4AOQEgTXVzdCBiZSBjb25maWd1cmVkIHRvIHJlc3VsdCBpbiBhIHdlaWdodCB0aGF0IG1ha2VzIGVhY2ggY2FsbCBmaXQgaW4gYSBibG9jay4AMEFzc2V0RGVwb3NpdFkBQMB+V3gAAAAAAAAAAAAAAAAE+CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gYXNzZXQuAExBc3NldEFjY291bnREZXBvc2l0WQFAAP5NdwAAAAAAAAAAAAAAAAhFASBUaGUgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYSBub24tcHJvdmlkZXIgYXNzZXQgYWNjb3VudCB0byBiZTAgbWFpbnRhaW5lZC4ATE1ldGFkYXRhRGVwb3NpdEJhc2VZAUCAVp13AAAAAAAAAAAAAAAABFEBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gYWRkaW5nIG1ldGFkYXRhIHRvIHlvdXIgYXNzZXQuAFhNZXRhZGF0YURlcG9zaXRQZXJCeXRlWQFAoIYBAAAAAAAAAAAAAAAAAAhVASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgeW91IHN0b3JlIGluIHlvdXIoIG1ldGFkYXRhLgA8QXBwcm92YWxEZXBvc2l0WQFAAOH1BQAAAAAAAAAAAAAAAAQhASBUaGUgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IGFwcHJvdmFsLgAsU3RyaW5nTGltaXQ4EDIAAAAE4CBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBuYW1lIG9yIHN5bWJvbCBzdG9yZWQgb24tY2hhaW4uAAHtDgAUHEJhbGFuY2VZAQScIFRoZSB1bml0cyBpbiB3aGljaCB3ZSByZWNvcmQgYmFsYW5jZXMuHEFzc2V0SWQBAgSMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC5AQXNzZXRJZFBhcmFtZXRlcgECHFkBIFdyYXBwZXIgYXJvdW5kIGBTZWxmOjpBc3NldElkYCB0byB1c2UgaW4gZGlzcGF0Y2hhYmxlIGNhbGwgc2lnbmF0dXJlcy4gQWxsb3dzIHRoZSB1c2VRASBvZiBjb21wYWN0IGVuY29kaW5nIGluIGluc3RhbmNlcyBvZiB0aGUgcGFsbGV0LCB3aGljaCB3aWxsIHByZXZlbnQgYnJlYWtpbmcgY2hhbmdlcwUBIHJlc3VsdGluZyBmcm9tIHRoZSByZW1vdmFsIG9mIGBIYXNDb21wYWN0YCBmcm9tIGBTZWxmOjpBc3NldElkYC4AWQEgVGhpcyB0eXBlIGluY2x1ZGVzIHRoZSBgRnJvbTxTZWxmOjpBc3NldElkPmAgYm91bmQsIHNpbmNlIHRpZ2h0bHkgY291cGxlZCBwYWxsZXRzIG1heUUBIHdhbnQgdG8gY29udmVydCBhbiBgQXNzZXRJZGAgaW50byBhIHBhcmFtZXRlciBmb3IgY2FsbGluZyBkaXNwYXRjaGFibGUgZnVuY3Rpb25zKCBkaXJlY3RseS4sUmVzZXJ2ZURhdGGdBAToIEluZm9ybWF0aW9uIGFib3V0IHJlc2VydmUgbG9jYXRpb25zIGZvciBhIGNsYXNzIG9mIGFzc2V0LhRFeHRyYRAE+CBBZGRpdGlvbmFsIGRhdGEgdG8gYmUgc3RvcmVkIHdpdGggYW4gYWNjb3VudCdzIGFzc2V0IGJhbGFuY2UuEDDmSlYCb0tePC0ZYoOpoX2nApetC0vdPaS3RimmWm5cNGFzc2V0X2RldGFpbHMECGlkAQJdDgSoIFByb3ZpZGUgdGhlIGFzc2V0IGRldGFpbHMgZm9yIGFzc2V0IGBpZGAuADDmSlYCb0tePC0ZYoOpoX1TGsfiG3axIedh5HNBmhsCKGJhbGFuY2Vfb2YIDHdobwQIaWQBAjEEBLQgUHJvdmlkZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBmb3IgYXNzZXQgYGlkYC4AMOZKVgJvS148LRlig6mhfS6HZqQNG2nWFRvYAeV1UF4wZ2V0X21ldGFkYXRhBAhpZAEC8Q4EwCBQcm92aWRlIHRoZSBjb25maWd1cmVkIG1ldGFkYXRhIGZvciBhc3NldCBgaWRgLgAw5kpWAm9LXjwtGWKDqaF9ZPY/KSPjmCgkMWOBrh5phkRnZXRfcmVzZXJ2ZXNfZGF0YQQIaWQBAqEEBNQgUHJvdmlkZSB0aGUgY29uZmlndXJlZCByZXNlcnZlcyBkYXRhIGZvciBhc3NldCBgaWRgLgA1AAAoUG9vbEFzc2V0cwEoUG9vbEFzc2V0cxgUQXNzZXQAAQQCODEOBAAEVCBEZXRhaWxzIG9mIGFuIGFzc2V0LgAcQWNjb3VudAABCAICOQ49DgQABOQgVGhlIGhvbGRpbmdzIG9mIGEgc3BlY2lmaWMgYWNjb3VudCBmb3IgYSBzcGVjaWZpYyBhc3NldC4AJEFwcHJvdmFscwABDAICAkkOTQ4EAAxZASBBcHByb3ZlZCBiYWxhbmNlIHRyYW5zZmVycy4gRmlyc3QgYmFsYW5jZSBpcyB0aGUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2Zlci4gU2Vjb25k6CBpcyB0aGUgYW1vdW50IG9mIGBUOjpDdXJyZW5jeWAgcmVzZXJ2ZWQgZm9yIHN0b3JpbmcgdGhpcy5JASBGaXJzdCBrZXkgaXMgdGhlIGFzc2V0IElELCBzZWNvbmQga2V5IGlzIHRoZSBvd25lciBhbmQgdGhpcmQga2V5IGlzIHRoZSBkZWxlZ2F0ZS4AIE1ldGFkYXRhAQEEAjj1DlAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIE1ldGFkYXRhIG9mIGFuIGFzc2V0LgAgUmVzZXJ2ZXMBAQQCOBUEBAAE/CBNYXBzIGFuIGFzc2V0IHRvIGEgbGlzdCBvZiBpdHMgY29uZmlndXJlZCByZXNlcnZlIGluZm9ybWF0aW9uLgAsTmV4dEFzc2V0SWQAADgEACRtASBUaGUgYXNzZXQgSUQgZW5mb3JjZWQgZm9yIHRoZSBuZXh0IGFzc2V0IGNyZWF0aW9uLCBpZiBhbnkgcHJlc2VudC4gT3RoZXJ3aXNlLCB0aGlzIHN0b3JhZ2VQIGl0ZW0gaGFzIG5vIGVmZmVjdC4AZQEgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBzZXR0aW5nIHVwIGNvbnN0cmFpbnRzIGZvciBJRHMgb2YgdGhlIG5ldyBhc3NldHMuIEZvciBleGFtcGxlLCBieWkBIHByb3ZpZGluZyBhbiBpbml0aWFsIFtgTmV4dEFzc2V0SWRgXSBhbmQgdXNpbmcgdGhlIFtgY3JhdGU6OkF1dG9JbmNBc3NldElkYF0gY2FsbGJhY2ssIGFu6CBhdXRvLWluY3JlbWVudCBtb2RlbCBjYW4gYmUgYXBwbGllZCB0byBhbGwgbmV3IGFzc2V0IElEcy4AIQEgVGhlIGluaXRpYWwgbmV4dCBhc3NldCBJRCBjYW4gYmUgc2V0IHVzaW5nIHRoZSBbYEdlbmVzaXNDb25maWdgXSBvciB0aGUhASBbU2V0TmV4dEFzc2V0SWRdKGBtaWdyYXRpb246Om5leHRfYXNzZXRfaWQ6OlNldE5leHRBc3NldElkYCkgbWlncmF0aW9uLgABpQQAAQkLABxAUmVtb3ZlSXRlbXNMaW1pdDgQ6AMAAAxRASBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIGRlc3Ryb3kgcGVyIGBkZXN0cm95X2FjY291bnRzYCBhbmQgYGRlc3Ryb3lfYXBwcm92YWxzYCBjYWxsLgA5ASBNdXN0IGJlIGNvbmZpZ3VyZWQgdG8gcmVzdWx0IGluIGEgd2VpZ2h0IHRoYXQgbWFrZXMgZWFjaCBjYWxsIGZpdCBpbiBhIGJsb2NrLgAwQXNzZXREZXBvc2l0WQFAAAAAAAAAAAAAAAAAAAAAAAT4IFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhbiBhc3NldC4ATEFzc2V0QWNjb3VudERlcG9zaXRZAUAA/k13AAAAAAAAAAAAAAAACEUBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhIG5vbi1wcm92aWRlciBhc3NldCBhY2NvdW50IHRvIGJlMCBtYWludGFpbmVkLgBMTWV0YWRhdGFEZXBvc2l0QmFzZVkBQAAAAAAAAAAAAAAAAAAAAAAEUQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgbWV0YWRhdGEgdG8geW91ciBhc3NldC4AWE1ldGFkYXRhRGVwb3NpdFBlckJ5dGVZAUAAAAAAAAAAAAAAAAAAAAAACFUBIFRoZSBhZGRpdGlvbmFsIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgdGhlIG51bWJlciBvZiBieXRlcyB5b3Ugc3RvcmUgaW4geW91ciggbWV0YWRhdGEuADxBcHByb3ZhbERlcG9zaXRZAUAA4fUFAAAAAAAAAAAAAAAABCEBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gY3JlYXRpbmcgYSBuZXcgYXBwcm92YWwuACxTdHJpbmdMaW1pdDgQMgAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AAf0OABQcQmFsYW5jZVkBBJwgVGhlIHVuaXRzIGluIHdoaWNoIHdlIHJlY29yZCBiYWxhbmNlcy4cQXNzZXRJZDgEjCBJZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgb2YgYXNzZXQuQEFzc2V0SWRQYXJhbWV0ZXI4HFkBIFdyYXBwZXIgYXJvdW5kIGBTZWxmOjpBc3NldElkYCB0byB1c2UgaW4gZGlzcGF0Y2hhYmxlIGNhbGwgc2lnbmF0dXJlcy4gQWxsb3dzIHRoZSB1c2VRASBvZiBjb21wYWN0IGVuY29kaW5nIGluIGluc3RhbmNlcyBvZiB0aGUgcGFsbGV0LCB3aGljaCB3aWxsIHByZXZlbnQgYnJlYWtpbmcgY2hhbmdlcwUBIHJlc3VsdGluZyBmcm9tIHRoZSByZW1vdmFsIG9mIGBIYXNDb21wYWN0YCBmcm9tIGBTZWxmOjpBc3NldElkYC4AWQEgVGhpcyB0eXBlIGluY2x1ZGVzIHRoZSBgRnJvbTxTZWxmOjpBc3NldElkPmAgYm91bmQsIHNpbmNlIHRpZ2h0bHkgY291cGxlZCBwYWxsZXRzIG1heUUBIHdhbnQgdG8gY29udmVydCBhbiBgQXNzZXRJZGAgaW50byBhIHBhcmFtZXRlciBmb3IgY2FsbGluZyBkaXNwYXRjaGFibGUgZnVuY3Rpb25zKCBkaXJlY3RseS4sUmVzZXJ2ZURhdGEQBOggSW5mb3JtYXRpb24gYWJvdXQgcmVzZXJ2ZSBsb2NhdGlvbnMgZm9yIGEgY2xhc3Mgb2YgYXNzZXQuFEV4dHJhEAT4IEFkZGl0aW9uYWwgZGF0YSB0byBiZSBzdG9yZWQgd2l0aCBhbiBhY2NvdW50J3MgYXNzZXQgYmFsYW5jZS4QTbBrocpvGLHtsG/wgtJECacCl60LS909pLdGKaZablw0YXNzZXRfZGV0YWlscwQIaWQ4XQ4EqCBQcm92aWRlIHRoZSBhc3NldCBkZXRhaWxzIGZvciBhc3NldCBgaWRgLgBNsGuhym8Yse2wb/CC0kQJUxrH4ht2sSHnYeRzQZobAihiYWxhbmNlX29mCAx3aG8ECGlkODEEBLQgUHJvdmlkZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBmb3IgYXNzZXQgYGlkYC4ATbBrocpvGLHtsG/wgtJECS6HZqQNG2nWFRvYAeV1UF4wZ2V0X21ldGFkYXRhBAhpZDgBDwTAIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgbWV0YWRhdGEgZm9yIGFzc2V0IGBpZGAuAE2wa6HKbxix7bBv8ILSRAlk9j8pI+OYKCQxY4GuHmmGRGdldF9yZXNlcnZlc19kYXRhBAhpZDgZBATUIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgcmVzZXJ2ZXMgZGF0YSBmb3IgYXNzZXQgYGlkYC4ANgAAPEFzc2V0Q29udmVyc2lvbgE8QXNzZXRDb252ZXJzaW9uCBRQb29scwABBAIRCwUPBAAIaQEgTWFwIGZyb20gYFBvb2xBc3NldElkYCB0byBgUG9vbEluZm9gLiBUaGlzIGVzdGFibGlzaGVzIHdoZXRoZXIgYSBwb29sIGhhcyBiZWVuIG9mZmljaWFsbHk9ASBjcmVhdGVkIHJhdGhlciB0aGFuIHBlb3BsZSBzZW5kaW5nIHRva2VucyBkaXJlY3RseSB0byBhIHBvb2wncyBwdWJsaWMgYWNjb3VudC4APE5leHRQb29sQXNzZXRJZAAAOAQACCUBIFN0b3JlcyB0aGUgYFBvb2xBc3NldElkYCB0aGF0IGlzIGdvaW5nIHRvIGJlIHVzZWQgZm9yIHRoZSBuZXh0IGxwIHRva2VuLuQgVGhpcyBnZXRzIGluY3JlbWVudGVkIHdoZW5ldmVyIGEgbmV3IGxwIHBvb2wgaXMgY3JlYXRlZC4AAakEAAENCwAcFExQRmVlOBADAAAABFEBIEEgJSB0aGUgbGlxdWlkaXR5IHByb3ZpZGVycyB3aWxsIHRha2Ugb2YgZXZlcnkgc3dhcC4gUmVwcmVzZW50cyAxMHRocyBvZiBhIHBlcmNlbnQuADBQb29sU2V0dXBGZWVZAUBALZPvAAAAAAAAAAAAAAAABIggQSBvbmUtdGltZSBmZWUgdG8gc2V0dXAgdGhlIHBvb2wuAERQb29sU2V0dXBGZWVBc3NldAECCAEABDkBIEFzc2V0IGNsYXNzIGZyb20gW2BDb25maWc6OkFzc2V0c2BdIHVzZWQgdG8gcGF5IHRoZSBbYENvbmZpZzo6UG9vbFNldHVwRmVlYF0uAFhMaXF1aWRpdHlXaXRoZHJhd2FsRmVlFQsQAAAAAASEIEEgZmVlIHRvIHdpdGhkcmF3IHRoZSBsaXF1aWRpdHkuAEBNaW50TWluTGlxdWlkaXR5WQFAZAAAAAAAAAAAAAAAAAAAAAQ9ASBUaGUgbWluaW11bSBMUCB0b2tlbiBhbW91bnQgdGhhdCBjb3VsZCBiZSBtaW50ZWQuIEFtZWxpb3JhdGVzIHJvdW5kaW5nIGVycm9ycy4ARE1heFN3YXBQYXRoTGVuZ3RoOBADAAAABIggVGhlIG1heCBudW1iZXIgb2YgaG9wcyBpbiBhIHN3YXAuACBQYWxsZXRJZO0MIHB5L2FzY29uBPQgVGhlIHBhbGxldCdzIGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuAAEJDwAIJEFzc2V0S2luZAECCF0BIFR5cGUgb2YgYXNzZXQgY2xhc3MsIHNvdXJjZWQgZnJvbSBbYENvbmZpZzo6QXNzZXRzYF0sIHV0aWxpemVkIHRvIG9mZmVyIGxpcXVpZGl0eSB0byBhGCBwb29sLhhQb29sSWQRCwRsIExpcXVpZGl0eSBwb29sIGlkZW50aWZpZXIuDLUmBtqA0CqzdEKDaaXyRvFLWmdWZt7//dMa0S/bqv/jMGdldF9yZXNlcnZlcwgYYXNzZXQxAQIYYXNzZXQyAQINDwi8IFJldHVybnMgdGhlIGJhbGFuY2Ugb2YgZWFjaCBhc3NldCBpbiB0aGUgcG9vbC5VASBUaGUgdHVwbGUgcmVzdWx0IGlzIGluIHRoZSBvcmRlciByZXF1ZXN0ZWQgKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyBwb29sIG9yZGVyKS4AtSYG2oDQKrN0QoNppfJG8Xjng3C91VyYZEm8bNVQEAuMcXVvdGVfcHJpY2VfZXhhY3RfdG9rZW5zX2Zvcl90b2tlbnMQGGFzc2V0MQECGGFzc2V0MgECGGFtb3VudFkBLGluY2x1ZGVfZmVlXQExBBwRASBHZXRzIGEgcXVvdGUgZm9yIHN3YXBwaW5nIGFuIGV4YWN0IGFtb3VudCBvZiBgYXNzZXQxYCBmb3IgYGFzc2V0MmAuADUBIElmIGBpbmNsdWRlX2ZlZWAgaXMgdHJ1ZSwgdGhlIHF1b3RlIHdpbGwgaW5jbHVkZSB0aGUgbGlxdWlkaXR5IHByb3ZpZGVyIGZlZS4RASBJZiB0aGUgcG9vbCBkb2VzIG5vdCBleGlzdCBvciBoYXMgbm8gbGlxdWlkaXR5LCBgTm9uZWAgaXMgcmV0dXJuZWQuOQEgTm90ZSB0aGF0IHRoZSBwcmljZSBtYXkgaGF2ZSBjaGFuZ2VkIGJ5IHRoZSB0aW1lIHRoZSB0cmFuc2FjdGlvbiBpcyBleGVjdXRlZC6wIChVc2UgYGFtb3VudF9vdXRfbWluYCB0byBjb250cm9sIHNsaXBwYWdlLimoIFJldHVybnMgYFNvbWUocXVvdGVkX2Ftb3VudClgIG9uIHN1Y2Nlc3MuALUmBtqA0CqzdEKDaaXyRvEoeQ/vmy3jX0SNPsNzk2mNjHF1b3RlX3ByaWNlX3Rva2Vuc19mb3JfZXhhY3RfdG9rZW5zEBhhc3NldDEBAhhhc3NldDIBAhhhbW91bnRZASxpbmNsdWRlX2ZlZV0BMQQcQQEgR2V0cyBhIHF1b3RlIGZvciBzd2FwcGluZyBgYW1vdW50YCBvZiBgYXNzZXQxYCBmb3IgYW4gZXhhY3QgYW1vdW50IG9mIGBhc3NldDJgLgA1ASBJZiBgaW5jbHVkZV9mZWVgIGlzIHRydWUsIHRoZSBxdW90ZSB3aWxsIGluY2x1ZGUgdGhlIGxpcXVpZGl0eSBwcm92aWRlciBmZWUuEQEgSWYgdGhlIHBvb2wgZG9lcyBub3QgZXhpc3Qgb3IgaGFzIG5vIGxpcXVpZGl0eSwgYE5vbmVgIGlzIHJldHVybmVkLjkBIE5vdGUgdGhhdCB0aGUgcHJpY2UgbWF5IGhhdmUgY2hhbmdlZCBieSB0aGUgdGltZSB0aGUgdHJhbnNhY3Rpb24gaXMgZXhlY3V0ZWQurCAoVXNlIGBhbW91bnRfaW5fbWF4YCB0byBjb250cm9sIHNsaXBwYWdlLimoIFJldHVybnMgYFNvbWUocXVvdGVkX2Ftb3VudClgIG9uIHN1Y2Nlc3MuADcAACBUcmVhc3VyeQEgVHJlYXN1cnkcNFByb3Bvc2FsQ291bnQBADgQAAAAABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4ApCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACRQcm9wb3NhbHMAAQQFOA0JBAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAHwgUHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACxEZWFjdGl2YXRlZAEAWQFAAAAAAAAAAAAAAAAAAAAAAATwIFRoZSBhbW91bnQgd2hpY2ggaGFzIGJlZW4gcmVwb3J0ZWQgYXMgaW5hY3RpdmUgdG8gQ3VycmVuY3kuACRBcHByb3ZhbHMBABUPBAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAPggUHJvcG9zYWwgaW5kaWNlcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBidXQgbm90IHlldCBhd2FyZGVkLgAoU3BlbmRDb3VudAEAOBAAAAAABKQgVGhlIGNvdW50IG9mIHNwZW5kcyB0aGF0IGhhdmUgYmVlbiBtYWRlLgAYU3BlbmRzAAEEBTgZDwQABNAgU3BlbmRzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGFuZCBiZWluZyBwcm9jZXNzZWQuADxMYXN0U3BlbmRQZXJpb2QAADgEAATUIFRoZSBibG9ja251bWJlciBmb3IgdGhlIGxhc3QgdHJpZ2dlcmVkIHNwZW5kIHBlcmlvZC4AAbEECAMClQFUaGUgYHNwZW5kX2xvY2FsYCBjYWxsIHdpbGwgYmUgcmVtb3ZlZCBieSBNYXkgMjAyNS4gTWlncmF0ZSB0byB0aGUgbmV3IGZsb3cgYW5kIHVzZSB0aGUgYHNwZW5kYCBjYWxsLgAEArUBVGhlIGByZW1vdmVfYXBwcm92YWxgIGNhbGwgd2lsbCBiZSByZW1vdmVkIGJ5IE1heSAyMDI1LiBJdCBhc3NvY2lhdGVkIHdpdGggdGhlIGRlcHJlY2F0ZWQgYHNwZW5kX2xvY2FsYCBjYWxsLgABIQsAGCxTcGVuZFBlcmlvZDgQwKgAAASIIFBlcmlvZCBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc3BlbmRzLgAQQnVybhULEAAAAAAEEQEgUGVyY2VudGFnZSBvZiBzcGFyZSBmdW5kcyAoaWYgYW55KSB0aGF0IGFyZSBidXJudCBwZXIgc3BlbmQgcGVyaW9kLgAgUGFsbGV0SWTtDCBweS90cnNyeQQZASBUaGUgdHJlYXN1cnkncyBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4AME1heEFwcHJvdmFsczgQZAAAABhBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4AFQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFwcHJvdmFscyB0aGF0IGNhbiB3YWl0IGluIHRoZSBzcGVuZGluZyBxdWV1ZS4ATQEgTk9URTogVGhpcyBwYXJhbWV0ZXIgaXMgYWxzbyB1c2VkIHdpdGhpbiB0aGUgQm91bnRpZXMgUGFsbGV0IGV4dGVuc2lvbiBpZiBlbmFibGVkLgAwUGF5b3V0UGVyaW9kOBAA4QAABBkBIFRoZSBwZXJpb2QgZHVyaW5nIHdoaWNoIGFuIGFwcHJvdmVkIHRyZWFzdXJ5IHNwZW5kIGhhcyB0byBiZSBjbGFpbWVkLgAscG90X2FjY291bnQEgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABKAgR2V0cyB0aGlzIHBhbGxldCdzIGRlcml2ZWQgcG90IGFjY291bnQuAAEhDwAIJEFzc2V0S2luZLUEBC0BIFR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgYXNzZXQga2luZHMgdG8gYmUgc3BlbnQgZnJvbSB0aGUgdHJlYXN1cnkuLEJlbmVmaWNpYXJ5uQQEXQEgVHlwZSBwYXJhbWV0ZXIgdXNlZCB0byBpZGVudGlmeSB0aGUgYmVuZWZpY2lhcmllcyBlbGlnaWJsZSB0byByZWNlaXZlIHRyZWFzdXJ5IHNwZW5kcy4APAAAQENvbnZpY3Rpb25Wb3RpbmcBQENvbnZpY3Rpb25Wb3RpbmcIJFZvdGluZ0ZvcgEBCAUFJQ8pD9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIdQEgQWxsIHZvdGluZyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyIGluIGEgcGFydGljdWxhciB2b3RpbmcgY2xhc3MuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGWcIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlIGhhdmUgcmVjb3JkZWQuADRDbGFzc0xvY2tzRm9yAQEEBQQ1DwQADGkBIFRoZSB2b3RpbmcgY2xhc3NlcyB3aGljaCBoYXZlIGEgbm9uLXplcm8gbG9jayByZXF1aXJlbWVudCBhbmQgdGhlIGxvY2sgYW1vdW50cyB3aGljaCB0aGV5bQEgcmVxdWlyZS4gVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGJlaGFsZiBvZiB0aGlzIHBhbGxldCBzaG91bGQgYWx3YXlzIGJlIHRoZSBtYXhpbXVtIG9mLCB0aGlzIGxpc3QuAAG9BAABJQsACCBNYXhWb3RlczgQAAIAABDwIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHZvdGVzIGFuIGFjY291bnQgbWF5IGhhdmUuAFUBIEFsc28gdXNlZCB0byBjb21wdXRlIHdlaWdodCwgYW4gb3Zlcmx5IGxhcmdlIHZhbHVlIGNhbiBsZWFkIHRvIGV4dHJpbnNpY3Mgd2l0aCBsYXJnZcAgd2VpZ2h0IGVzdGltYXRpb246IHNlZSBgZGVsZWdhdGVgIGZvciBpbnN0YW5jZS4ARFZvdGVMb2NraW5nUGVyaW9kOBDAiQEAEJAgVGhlIG1pbmltdW0gcGVyaW9kIG9mIHZvdGUgbG9ja2luZy4AZQEgSXQgc2hvdWxkIGJlIG5vIHNob3J0ZXIgdGhhbiBlbmFjdG1lbnQgcGVyaW9kIHRvIGVuc3VyZSB0aGF0IGluIHRoZSBjYXNlIG9mIGFuIGFwcHJvdmFsLEkBIHRob3NlIHN1Y2Nlc3NmdWwgdm90ZXJzIGFyZSBsb2NrZWQgaW50byB0aGUgY29uc2VxdWVuY2VzIHRoYXQgdGhlaXIgdm90ZXMgZW50YWlsLgABOQ8AAAA9AAAkUmVmZXJlbmRhASRSZWZlcmVuZGEUPFJlZmVyZW5kdW1Db3VudAEAOBAAAAAABDEBIFRoZSBuZXh0IGZyZWUgcmVmZXJlbmR1bSBpbmRleCwgYWthIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHN0YXJ0ZWQgc28gZmFyLgBEUmVmZXJlbmR1bUluZm9Gb3IAAQQCOD0PBAAEtCBJbmZvcm1hdGlvbiBjb25jZXJuaW5nIGFueSBnaXZlbiByZWZlcmVuZHVtLgAoVHJhY2tRdWV1ZQEBBAXVA0UPBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuADREZWNpZGluZ0NvdW50AQEEBdUDOBAAAAAABMQgVGhlIG51bWJlciBvZiByZWZlcmVuZGEgYmVpbmcgZGVjaWRlZCBjdXJyZW50bHkuAChNZXRhZGF0YU9mAAEEAjhABAAYBQEgVGhlIG1ldGFkYXRhIGlzIGEgZ2VuZXJhbCBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZSByZWZlcmVuZHVtLkkBIFRoZSBgSGFzaGAgcmVmZXJzIHRvIHRoZSBwcmVpbWFnZSBvZiB0aGUgYFByZWltYWdlc2AgcHJvdmlkZXIgd2hpY2ggY2FuIGJlIGEgSlNPToggZHVtcCBvciBJUEZTIGhhc2ggb2YgYSBKU09OIGZpbGUuAHUBIENvbnNpZGVyIGEgZ2FyYmFnZSBjb2xsZWN0aW9uIGZvciBhIG1ldGFkYXRhIG9mIGZpbmlzaGVkIHJlZmVyZW5kdW1zIHRvIGB1bnJlcXVlc3RgIChyZW1vdmUpRCBsYXJnZSBwcmVpbWFnZXMuAAHRBAABKQsAFERTdWJtaXNzaW9uRGVwb3NpdFkBQADodkgXAAAAAAAAAAAAAAAENQEgVGhlIG1pbmltdW0gYW1vdW50IHRvIGJlIHVzZWQgYXMgYSBkZXBvc2l0IGZvciBhIHB1YmxpYyByZWZlcmVuZHVtIHByb3Bvc2FsLgAkTWF4UXVldWVkOBBkAAAABOQgTWF4aW11bSBzaXplIG9mIHRoZSByZWZlcmVuZHVtIHF1ZXVlIGZvciBhIHNpbmdsZSB0cmFjay4ARFVuZGVjaWRpbmdUaW1lb3V0OBDAqAAACFUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIHN1Ym1pc3Npb24gdGhhdCBhIHJlZmVyZW5kdW0gbXVzdCBiZWdpbiBiZWluZyBkZWNpZGVkIGJ5LuQgT25jZSB0aGlzIHBhc3NlcywgdGhlbiBhbnlvbmUgbWF5IGNhbmNlbCB0aGUgcmVmZXJlbmR1bS4ANEFsYXJtSW50ZXJ2YWw4EAEAAAAMXQEgUXVhbnRpemF0aW9uIGxldmVsIGZvciB0aGUgcmVmZXJlbmR1bSB3YWtldXAgc2NoZWR1bGVyLiBBIGhpZ2hlciBudW1iZXIgd2lsbCByZXN1bHQgaW5dASBmZXdlciBzdG9yYWdlIHJlYWRzL3dyaXRlcyBuZWVkZWQgZm9yIHNtYWxsZXIgdm90ZXJzLCBidXQgYWxzbyByZXN1bHQgaW4gZGVsYXlzIHRvIHRoZVUBIGF1dG9tYXRpYyByZWZlcmVuZHVtIHN0YXR1cyBjaGFuZ2VzLiBFeHBsaWNpdCBzZXJ2aWNpbmcgaW5zdHJ1Y3Rpb25zIGFyZSB1bmFmZmVjdGVkLgAYVHJhY2tzSQ8VGkAAAGRyb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAxqR+jQMAAAAAAAAAAACwBAAAACcGAEA4AABAOAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAABlzR0BAGR3aGl0ZWxpc3RlZF9jYWxsZXIAAAAAAAAAZAAAAABAehDzWgAAAAAAAAAAAAAsAQAAACcGAGQAAABkAAAAAuyXJRAAAAAAe1c8FwAAAABCOS8SAAAAAAIOAIQAAAAAANbmHwEAAAAAOWJ5AgAAAAACAGR3aXNoX2Zvcl9jaGFuZ2UAAAAAAAAAAAAACgAAAACA9CDmtQAAAAAAAAAAAACwBAAAACcGAEA4AABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAABlzR0KAGRzdGFraW5nX2FkbWluAAAAAAAAAAAAAAAACgAAAAAgPYh5LQAAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8LAGR0cmVhc3VyZXIAAAAAAAAAAAAAAAAAAAAAAgAAAACgMalf4wAAAAAAAAAAAACwBAAAACcGAMCJAQBAOAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7gJaYAABlzR0MAGRsZWFzZV9hZG1pbgAAAAAAAAAAAAAAAAAACgAAAAAgPYh5LQAAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8NAGRmZWxsb3dzaGlwX2FkbWluAAAAAAAAAAAACgAAAAAgPYh5LQAAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8OAGRnZW5lcmFsX2FkbWluAAAAAAAAAAAAAAAACgAAAAAgPYh5LQAAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAJZovQCAAAAAKMpawUAAAAALmtK/f////8PAGRhdWN0aW9uX2FkbWluAAAAAAAAAAAAAAAACgAAAAAgPYh5LQAAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAJZovQCAAAAAKMpawUAAAAALmtK/f////8UAGRyZWZlcmVuZHVtX2NhbmNlbGxlcgAAAAAA9AEAAAAgPYh5LQAAAAAAAAAAAACwBAAAwIkBAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8VAGRyZWZlcmVuZHVtX2tpbGxlcgAAAAAAAAAA6AMAAABAY1K/xgEAAAAAAAAAAACwBAAAACcGAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8eAGRzbWFsbF90aXBwZXIAAAAAAAAAAAAAAAAAyAAAAADkC1QCAAAAAAAAAAAAAAAKAAAAwIkBAGQAAAAKAAAAAEmRSRUAZc0dAMqaOwL5uhgAAAAAACpNMQAAAAAAa1nn//////8fAGRiaWdfdGlwcGVyAAAAAAAAAAAAAAAAAAAAZAAAAADodkgXAAAAAAAAAAAAAABkAAAAwIkBAFgCAABkAAAAAEmRSRUAZc0dAMqaOwJpTz8AAAAAADWWfQAAAAAA5TTB//////8gAGRzbWFsbF9zcGVuZGVyAAAAAAAAAAAAAAAABQAAAABQOSeMBAAAAAAAAAAAAABgCQAAACcGAIBwAABAOAAAAMlDMCQAZc0dAMqaOwIKszoAAAAAAFOtdQAAAAAANwsSAAAAAAAhAGRtZWRpdW1fc3BlbmRlcgAAAAAAAAAAAAAABQAAAACgck4YCQAAAAAAAAAAAABgCQAAACcGAADhAABAOAAAAFsB9jAAZc0dAMqaOwIgnmkAAAAAAE930gAAAAAA/hzk//////8iAGRiaWdfc3BlbmRlcgAAAAAAAAAAAAAAAAAAAwAAAAAgPYh5LQAAAAAAAAAAAABgCQAAACcGAMCJAQBAOAAAAADKmjsAZc0dAMqaOwLNWGIAAAAAAFskxQAAAAAANVkRAAAAAAAMSCBBIGxpc3Qgb2YgdHJhY2tzLgBdASBOb3RlOiBpZiB0aGUgdHJhY2tzIGFyZSBkeW5hbWljLCB0aGUgdmFsdWUgaW4gdGhlIHN0YXRpYyBtZXRhZGF0YSBtaWdodCBiZSBpbmFjY3VyYXRlLgABYQ8ADCxSdW50aW1lQ2FsbCAAFFZvdGVzWQEEzCBUaGUgY291bnRpbmcgdHlwZSBmb3Igdm90ZXMuIFVzdWFsbHkganVzdCBiYWxhbmNlLhRUYWxseUEIBEwgVGhlIHRhbGx5aW5nIHR5cGUuAD4AABxPcmlnaW5zAAAAAAAAAD8AACRXaGl0ZWxpc3QBJFdoaXRlbGlzdAQ8V2hpdGVsaXN0ZWRDYWxsAAEEBUAQBAAAAAHlBAABLQsAAAFlDwAELFJ1bnRpbWVDYWxsIARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuAEAAACBCb3VudGllcwEgQm91bnRpZXMQLEJvdW50eUNvdW50AQA4EAAAAAAEwCBOdW1iZXIgb2YgYm91bnR5IHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLgAgQm91bnRpZXMAAQQFOGkPBAAEeCBCb3VudGllcyB0aGF0IGhhdmUgYmVlbiBtYWRlLgBIQm91bnR5RGVzY3JpcHRpb25zAAEEBThtDwQABIAgVGhlIGRlc2NyaXB0aW9uIG9mIGVhY2ggYm91bnR5LgA8Qm91bnR5QXBwcm92YWxzAQAVDwQABOwgQm91bnR5IGluZGljZXMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYnV0IG5vdCB5ZXQgZnVuZGVkLgAB6QQAAT0LACREQm91bnR5RGVwb3NpdEJhc2VZAUAAjgwBAAAAAAAAAAAAAAAABOggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIHBsYWNpbmcgYSBib3VudHkgcHJvcG9zYWwuAGBCb3VudHlEZXBvc2l0UGF5b3V0RGVsYXk4EAAAAAAEWQEgVGhlIGRlbGF5IHBlcmlvZCBmb3Igd2hpY2ggYSBib3VudHkgYmVuZWZpY2lhcnkgbmVlZCB0byB3YWl0IGJlZm9yZSBjbGFpbSB0aGUgcGF5b3V0LgBIQm91bnR5VXBkYXRlUGVyaW9kOBAABBcDGPQgVGhlIHRpbWUgbGltaXQgZm9yIGEgY3VyYXRvciB0byBhY3QgYmVmb3JlIGEgYm91bnR5IGV4cGlyZXMuAFUBIFRoZSBwZXJpb2QgdGhhdCBzdGFydHMgd2hlbiBhIGN1cmF0b3IgaXMgYXBwcm92ZWQsIGR1cmluZyB3aGljaCB0aGV5IG11c3QgZXhlY3V0ZSBvclUBIHVwZGF0ZSB0aGUgYm91bnR5IHZpYSBgZXh0ZW5kX2JvdW50eV9leHBpcnlgLiBJZiBtaXNzZWQsIHRoZSBib3VudHkgZXhwaXJlcywgYW5kIHRoZVUBIGN1cmF0b3IgbWF5IGJlIHNsYXNoZWQuIElmIGBCbG9ja051bWJlckZvcjo6TUFYYCwgYm91bnRpZXMgc3RheSBhY3RpdmUgaW5kZWZpbml0ZWx5LLggcmVtb3ZpbmcgdGhlIG5lZWQgZm9yIGBleHRlbmRfYm91bnR5X2V4cGlyeWAuAGBDdXJhdG9yRGVwb3NpdE11bHRpcGxpZXIVCxAgoQcAEBkBIFRoZSBjdXJhdG9yIGRlcG9zaXQgaXMgY2FsY3VsYXRlZCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGN1cmF0b3IgZmVlLgA5ASBUaGlzIGRlcG9zaXQgaGFzIG9wdGlvbmFsIHVwcGVyIGFuZCBsb3dlciBib3VuZHMgd2l0aCBgQ3VyYXRvckRlcG9zaXRNYXhgIGFuZFQgYEN1cmF0b3JEZXBvc2l0TWluYC4AREN1cmF0b3JEZXBvc2l0TWF4MQREAQAgSqnRAQAAAAAAAAAAAAAESQEgTWF4aW11bSBhbW91bnQgb2YgZnVuZHMgdGhhdCBzaG91bGQgYmUgcGxhY2VkIGluIGEgZGVwb3NpdCBmb3IgbWFraW5nIGEgcHJvcG9zYWwuAERDdXJhdG9yRGVwb3NpdE1pbjEERAEA6HZIFwAAAAAAAAAAAAAABEkBIE1pbmltdW0gYW1vdW50IG9mIGZ1bmRzIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiBhIGRlcG9zaXQgZm9yIG1ha2luZyBhIHByb3Bvc2FsLgBIQm91bnR5VmFsdWVNaW5pbXVtWQFAAOh2SBcAAAAAAAAAAAAAAARwIE1pbmltdW0gdmFsdWUgZm9yIGEgYm91bnR5LgBIRGF0YURlcG9zaXRQZXJCeXRlWQFAoIYBAAAAAAAAAAAAAAAAAARhASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgYnl0ZSB3aXRoaW4gdGhlIHRpcCByZXBvcnQgcmVhc29uIG9yIGJvdW50eSBkZXNjcmlwdGlvbi4ATE1heGltdW1SZWFzb25MZW5ndGg4EABAAAAMiCBNYXhpbXVtIGFjY2VwdGFibGUgcmVhc29uIGxlbmd0aC4AZQEgQmVuY2htYXJrcyBkZXBlbmQgb24gdGhpcyB2YWx1ZSwgYmUgc3VyZSB0byB1cGRhdGUgd2VpZ2h0cyBmaWxlIHdoZW4gY2hhbmdpbmcgdGhpcyB2YWx1ZQABcQ8AAABBAAA0Q2hpbGRCb3VudGllcwE0Q2hpbGRCb3VudGllcxxAQ2hpbGRCb3VudHlDb3VudAEAOBAAAAAACG0BIERFUFJFQ0FURUQ6IFJlcGxhY2VkIHdpdGggYFBhcmVudFRvdGFsQ2hpbGRCb3VudGllc2Agc3RvcmFnZSBpdGVtIGtlZXBpbmcgZGVkaWNhdGVkIGNvdW50c1UBIGZvciBlYWNoIHBhcmVudCBib3VudHkuIE51bWJlciBvZiB0b3RhbCBjaGlsZCBib3VudGllcy4gV2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LgBMUGFyZW50Q2hpbGRCb3VudGllcwEBBAU4OBAAAAAACMwgTnVtYmVyIG9mIGFjdGl2ZSBjaGlsZCBib3VudGllcyBwZXIgcGFyZW50IGJvdW50eS7gIE1hcCBvZiBwYXJlbnQgYm91bnR5IGluZGV4IHRvIG51bWJlciBvZiBjaGlsZCBib3VudGllcy4AYFBhcmVudFRvdGFsQ2hpbGRCb3VudGllcwEBBAU4OBAAAAAABEEBIE51bWJlciBvZiB0b3RhbCBjaGlsZCBib3VudGllcyBwZXIgcGFyZW50IGJvdW50eSwgaW5jbHVkaW5nIGNvbXBsZXRlZCBib3VudGllcy4ANENoaWxkQm91bnRpZXMAAQgFBdB1DwQABJQgQ2hpbGQgYm91bnRpZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQuAGRDaGlsZEJvdW50eURlc2NyaXB0aW9uc1YxAAEIBQXQbQ8EAAwpASBUaGUgZGVzY3JpcHRpb24gb2YgZWFjaCBjaGlsZC1ib3VudHkuIEluZGV4ZWQgYnkgYChwYXJlbnRfaWQsIGNoaWxkX2lkKWAuAG0BIFRoaXMgaXRlbSByZXBsYWNlcyB0aGUgYENoaWxkQm91bnR5RGVzY3JpcHRpb25zYCBzdG9yYWdlIGl0ZW0gZnJvbSB0aGUgVjAgc3RvcmFnZSB2ZXJzaW9uLgBQVjBUb1YxQ2hpbGRCb3VudHlJZHMAAQQFONAEABRdASBUaGUgbWFwcGluZyBvZiB0aGUgY2hpbGQgYm91bnR5IGlkcyBmcm9tIHN0b3JhZ2UgdmVyc2lvbiBgVjBgIHRvIHRoZSBuZXcgYFYxYCB2ZXJzaW9uLgBtASBUaGUgYFYwYCBpZHMgYmFzZWQgb24gdG90YWwgY2hpbGQgYm91bnR5IGNvdW50IFtgQ2hpbGRCb3VudHlDb3VudGBdYC4gVGhlIGBWMWAgdmVyc2lvbiBpZHNBASBiYXNlZCBvbiB0aGUgY2hpbGQgYm91bnR5IGNvdW50IHBlciBwYXJlbnQgYm91bnR5IFtgUGFyZW50VG90YWxDaGlsZEJvdW50aWVzYF0uZQEgVGhlIGl0ZW0gaW50ZW5kZWQgc29sZWx5IGZvciBjbGllbnQgY29udmVuaWVuY2UgYW5kIG5vdCB1c2VkIGluIHRoZSBwYWxsZXQncyBjb3JlIGxvZ2ljLgBMQ2hpbGRyZW5DdXJhdG9yRmVlcwEBBAU4WQFAAAAAAAAAAAAAAAAAAAAAAAQBASBUaGUgY3VtdWxhdGl2ZSBjaGlsZC1ib3VudHkgY3VyYXRvciBmZWUgZm9yIGVhY2ggcGFyZW50IGJvdW50eS4AAe0EAAFBCwAIZE1heEFjdGl2ZUNoaWxkQm91bnR5Q291bnQ4EGQAAAAEHQEgTWF4aW11bSBudW1iZXIgb2YgY2hpbGQgYm91bnRpZXMgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBwYXJlbnQgYm91bnR5LgBcQ2hpbGRCb3VudHlWYWx1ZU1pbmltdW1ZAUAA5AtUAgAAAAAAAAAAAAAABIggTWluaW11bSB2YWx1ZSBmb3IgYSBjaGlsZC1ib3VudHkuAAF9DwAAAEIAACRBc3NldFJhdGUBJEFzc2V0UmF0ZQRYQ29udmVyc2lvblJhdGVUb05hdGl2ZQABBAK1BPUEBAAMHQEgTWFwcyBhbiBhc3NldCB0byBpdHMgZml4ZWQgcG9pbnQgcmVwcmVzZW50YXRpb24gaW4gdGhlIG5hdGl2ZSBiYWxhbmNlLgBNASBFLmcuIGBuYXRpdmVfYW1vdW50ID0gYXNzZXRfYW1vdW50ICogQ29udmVyc2lvblJhdGVUb05hdGl2ZTo6PFQ+OjpnZXQoYXNzZXRfa2luZClgAAHxBAABRQsAAAGBDwAEJEFzc2V0S2luZLUEBEUBIFRoZSB0eXBlIGZvciBhc3NldCBraW5kcyBmb3Igd2hpY2ggdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBpcyBzZXQuAEMAAEhNdWx0aUFzc2V0Qm91bnRpZXMBSE11bHRpQXNzZXRCb3VudGllcxwsQm91bnR5Q291bnQBADgQAAAAAATAIE51bWJlciBvZiBib3VudHkgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACBCb3VudGllcwABBAU4hQ8EAAR4IEJvdW50aWVzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuADRDaGlsZEJvdW50aWVzAAEIBQXQkQ8EAAyUIENoaWxkIGJvdW50aWVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkLgDIIEluZGV4ZWQgYnkgYChwYXJlbnRfYm91bnR5X2lkLCBjaGlsZF9ib3VudHlfaWQpYC4AWENoaWxkQm91bnRpZXNQZXJQYXJlbnQBAQQFODgQAAAAAAzMIE51bWJlciBvZiBhY3RpdmUgY2hpbGQgYm91bnRpZXMgcGVyIHBhcmVudCBib3VudHkuAHwgSW5kZXhlZCBieSBgcGFyZW50X2JvdW50eV9pZGAuAGxUb3RhbENoaWxkQm91bnRpZXNQZXJQYXJlbnQBAQQFODgQAAAAAAxBASBOdW1iZXIgb2YgdG90YWwgY2hpbGQgYm91bnRpZXMgcGVyIHBhcmVudCBib3VudHksIGluY2x1ZGluZyBjb21wbGV0ZWQgYm91bnRpZXMuAHwgSW5kZXhlZCBieSBgcGFyZW50X2JvdW50eV9pZGAuAGxDaGlsZEJvdW50aWVzVmFsdWVQZXJQYXJlbnQBAQQFOFkBQAAAAAAAAAAAAAAAAAAAAAAQbQEgVGhlIGN1bXVsYXRpdmUgY2hpbGQtYm91bnR5IHZhbHVlIGZvciBlYWNoIHBhcmVudCBib3VudHkuIFRvIGJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgcGFyZW50kCBib3VudHkgcGF5b3V0IHdoZW4gYXdhcmRpbmcgYm91bnR5LgB8IEluZGV4ZWQgYnkgYHBhcmVudF9ib3VudHlfaWRgLgA4Q3VyYXRvckRlcG9zaXQAAQgFBZUPmQ8EACxlASBUaGUgY29uc2lkZXJhdGlvbiBjb3N0IGluY3VycmVkIGJ5IHRoZSBjaGlsZC0vYm91bnR5IGN1cmF0b3IgZm9yIGNvbW1pdHRpbmcgdG8gdGhlIHJvbGUuAHEBIERldGVybWluZWQgYnkgW2BwYWxsZXQ6OkNvbmZpZzo6Q29uc2lkZXJhdGlvbmBdLiBJdCBpcyBjcmVhdGVkIHdoZW4gdGhlIGN1cmF0b3IgYWNjZXB0cyB0aGVFASByb2xlLCBhbmQgaXMgZWl0aGVyIGJ1cm5lZCBpZiB0aGUgY3VyYXRvciBtaXNiZWhhdmVzIG9yIGNvbnN1bWVkIHVwb24gc3VjY2Vzc2Z1bIQgY29tcGxldGlvbiBvZiB0aGUgY2hpbGQtL2JvdW50eS4AEQEgTm90ZTogSWYgdGhlIHBhcmVudCBjdXJhdG9yIGlzIGFsc28gYXNzaWduZWQgdG8gdGhlIGNoaWxkLWJvdW50eSwgIA0BIHRoZSBjb25zaWRlcmF0aW9uIGNvc3QgaXMgY2hhcmdlZCBvbmx5IG9uY2Ug4oCUIHdoZW4gdGhlIGN1cmF0b3IgIKAgYWNjZXB0cyB0aGUgcm9sZSBmb3IgdGhlIHBhcmVudCBib3VudHkuAMggSW5kZXhlZCBieSBgKHBhcmVudF9ib3VudHlfaWQsIGNoaWxkX2JvdW50eV9pZClgLgAB+QQAAUkLAAxIQm91bnR5VmFsdWVNaW5pbXVtWQFAAOh2SBcAAAAAAAAAAAAAAARwIE1pbmltdW0gdmFsdWUgZm9yIGEgYm91bnR5LgBcQ2hpbGRCb3VudHlWYWx1ZU1pbmltdW1ZAUAA5AtUAgAAAAAAAAAAAAAABIggTWluaW11bSB2YWx1ZSBmb3IgYSBjaGlsZC1ib3VudHkuAGRNYXhBY3RpdmVDaGlsZEJvdW50eUNvdW50OBBkAAAABB0BIE1heGltdW0gbnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgcGFyZW50IGJvdW50eS4AAZ0PAAgkQXNzZXRLaW5ktQQIQQEgVHlwZSBwYXJhbWV0ZXIgcmVwcmVzZW50aW5nIHRoZSBhc3NldCBraW5kcyB1c2VkIHRvIGZ1bmQsIHJlZnVuZCBhbmQgc3BlbmQgZnJvbSggYm91bnRpZXMuLEJlbmVmaWNpYXJ5uQQEQQEgVHlwZSBwYXJhbWV0ZXIgdXNlZCB0byBpZGVudGlmeSB0aGUgYmVuZWZpY2lhcmllcyBlbGlnaWJsZSB0byByZWNlaXZlIHBheW1lbnRzLgBEAABIU3RhdGVUcmllTWlncmF0aW9uAUhTdGF0ZVRyaWVNaWdyYXRpb24MQE1pZ3JhdGlvblByb2Nlc3MBAAkFOAAAAAAAAAAAAAAAAAAAEFAgTWlncmF0aW9uIHByb2dyZXNzLgBdASBUaGlzIHN0b3JlcyB0aGUgc25hcHNob3Qgb2YgdGhlIGxhc3QgbWlncmF0ZWQga2V5cy4gSXQgY2FuIGJlIHNldCBpbnRvIG1vdGlvbiBhbmQgbW92ZdQgZm9yd2FyZCBieSBhbnkgb2YgdGhlIG1lYW5zIHByb3ZpZGVkIGJ5IHRoaXMgcGFsbGV0LgAoQXV0b0xpbWl0cwEAAQUEAAzUIFRoZSBsaW1pdHMgdGhhdCBhcmUgaW1wb3NlZCBvbiBhdXRvbWF0aWMgbWlncmF0aW9ucy4A1CBJZiBzZXQgdG8gTm9uZSwgdGhlbiBubyBhdXRvbWF0aWMgbWlncmF0aW9uIGhhcHBlbnMuAGBTaWduZWRNaWdyYXRpb25NYXhMaW1pdHMAAAUFBAAM4CBUaGUgbWF4aW11bSBsaW1pdHMgdGhhdCB0aGUgc2lnbmVkIG1pZ3JhdGlvbiBjb3VsZCB1c2UuALQgSWYgbm90IHNldCwgbm8gc2lnbmVkIHN1Ym1pc3Npb24gaXMgYWxsb3dlZC4AAf0EAAFNCwAEJE1heEtleUxlbjgQAAIAAFS0IE1heGltYWwgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgYSBrZXkgY2FuIGhhdmUuALAgRlJBTUUgaXRzZWxmIGRvZXMgbm90IGxpbWl0IHRoZSBrZXkgbGVuZ3RoLgEBIFRoZSBjb25jcmV0ZSB2YWx1ZSBtdXN0IHRoZXJlZm9yZSBkZXBlbmQgb24geW91ciBzdG9yYWdlIHVzYWdlLlkBIEEgW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlTk1hcGBdIGZvciBleGFtcGxlIGNhbiBoYXZlIGFuIGFyYml0cmFyeSBudW1iZXIgb2ZFASBrZXlzIHdoaWNoIGFyZSB0aGVuIGhhc2hlZCBhbmQgY29uY2F0ZW5hdGVkLCByZXN1bHRpbmcgaW4gYXJiaXRyYXJpbHkgbG9uZyBrZXlzLgBBASBVc2UgdGhlICpzdGF0ZSBtaWdyYXRpb24gUlBDKiB0byByZXRyaWV2ZSB0aGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IGtleSBpbiB5b3VyAQEgc3RvcmFnZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9pc3N1ZXMvMTE2NDI+ACkBIFRoZSBtaWdyYXRpb24gd2lsbCBoYWx0IHdpdGggYSBgSGFsdGVkYCBldmVudCBpZiB0aGlzIHZhbHVlIGlzIHRvbyBzbWFsbC5JASBTaW5jZSB0aGVyZSBpcyBubyByZWFsIHBlbmFsdHkgZnJvbSBvdmVyLWVzdGltYXRpbmcsIGl0IGlzIGFkdmlzZWQgdG8gdXNlIGEgbGFyZ2WAIHZhbHVlLiBUaGUgZGVmYXVsdCBpcyA1MTIgYnl0ZS4AgCBTb21lIGtleSBsZW5ndGhzIGZvciByZWZlcmVuY2U60CAtIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZVZhbHVlYF06IDMyIGJ5dGXIIC0gW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlTWFwYF06IDY0IGJ5dGXgIC0gW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlRG91YmxlTWFwYF06IDk2IGJ5dGUASCBGb3IgbW9yZSBpbmZvIHNlZUkBIDxodHRwczovL3d3dy5zaGF3bnRhYnJpemkuY29tL2Jsb2cvc3Vic3RyYXRlL3F1ZXJ5aW5nLXN1YnN0cmF0ZS1zdG9yYWdlLXZpYS1ycGMvPgABVQsAAABGAAA8Tm9taW5hdGlvblBvb2xzATxOb21pbmF0aW9uUG9vbHNUQFRvdGFsVmFsdWVMb2NrZWQBAFkBQAAAAAAAAAAAAAAAAAAAAAAUjCBUaGUgc3VtIG9mIGZ1bmRzIGFjcm9zcyBhbGwgcG9vbHMuAHEBIFRoaXMgbWlnaHQgYmUgbG93ZXIgYnV0IG5ldmVyIGhpZ2hlciB0aGFuIHRoZSBzdW0gb2YgYHRvdGFsX2JhbGFuY2VgIG9mIGFsbCBbYFBvb2xNZW1iZXJzYF1ZASBiZWNhdXNlIGNhbGxpbmcgYHBvb2xfd2l0aGRyYXdfdW5ib25kZWRgIG1pZ2h0IGRlY3JlYXNlIHRoZSB0b3RhbCBzdGFrZSBvZiB0aGUgcG9vbCdzKQEgYGJvbmRlZF9hY2NvdW50YCB3aXRob3V0IGFkanVzdGluZyB0aGUgcGFsbGV0LWludGVybmFsIGBVbmJvbmRpbmdQb29sYCdzLgAsTWluSm9pbkJvbmQBAFkBQAAAAAAAAAAAAAAAAAAAAAAEnCBNaW5pbXVtIGFtb3VudCB0byBib25kIHRvIGpvaW4gYSBwb29sLgA0TWluQ3JlYXRlQm9uZAEAWQFAAAAAAAAAAAAAAAAAAAAAABygIE1pbmltdW0gYm9uZCByZXF1aXJlZCB0byBjcmVhdGUgYSBwb29sLgBlASBUaGlzIGlzIHRoZSBhbW91bnQgdGhhdCB0aGUgZGVwb3NpdG9yIG11c3QgcHV0IGFzIHRoZWlyIGluaXRpYWwgc3Rha2UgaW4gdGhlIHBvb2wsIGFzIGFuiCBpbmRpY2F0aW9uIG9mICJza2luIGluIHRoZSBnYW1lIi4AaQEgVGhpcyBpcyB0aGUgdmFsdWUgdGhhdCB3aWxsIGFsd2F5cyBleGlzdCBpbiB0aGUgc3Rha2luZyBsZWRnZXIgb2YgdGhlIHBvb2wgYm9uZGVkIGFjY291bnSAIHdoaWxlIGFsbCBvdGhlciBhY2NvdW50cyBsZWF2ZS4AIE1heFBvb2xzAAA4BAAIaQEgTWF4aW11bSBudW1iZXIgb2Ygbm9taW5hdGlvbiBwb29scyB0aGF0IGNhbiBleGlzdC4gSWYgYE5vbmVgLCB0aGVuIGFuIHVuYm91bmRlZCBudW1iZXIgb2ZEIHBvb2xzIGNhbiBleGlzdC4AOE1heFBvb2xNZW1iZXJzAAA4BAAISQEgTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyB0aGF0IGNhbiBleGlzdCBpbiB0aGUgc3lzdGVtLiBJZiBgTm9uZWAsIHRoZW4gdGhlIGNvdW50uCBtZW1iZXJzIGFyZSBub3QgYm91bmQgb24gYSBzeXN0ZW0gd2lkZSBiYXNpcy4AVE1heFBvb2xNZW1iZXJzUGVyUG9vbAAAOAQACEEBIE1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgdGhhdCBtYXkgYmVsb25nIHRvIHBvb2wuIElmIGBOb25lYCwgdGhlbiB0aGUgY291bnQgb2aoIG1lbWJlcnMgaXMgbm90IGJvdW5kIG9uIGEgcGVyIHBvb2wgYmFzaXMuAExHbG9iYWxNYXhDb21taXNzaW9uAAAtBQQADGkBIFRoZSBtYXhpbXVtIGNvbW1pc3Npb24gdGhhdCBjYW4gYmUgY2hhcmdlZCBieSBhIHBvb2wuIFVzZWQgb24gY29tbWlzc2lvbiBwYXlvdXRzIHRvIGJvdW5kJQEgcG9vbCBjb21taXNzaW9ucyB0aGF0IGFyZSA+IGBHbG9iYWxNYXhDb21taXNzaW9uYCwgbmVjZXNzYXJ5IGlmIGEgZnV0dXJlDQEgYEdsb2JhbE1heENvbW1pc3Npb25gIGlzIGxvd2VyIHRoYW4gc29tZSBjdXJyZW50IHBvb2wgY29tbWlzc2lvbnMuACxQb29sTWVtYmVycwABBAUEtQcEAAxAIEFjdGl2ZSBtZW1iZXJzLgDQIFRXT1gtTk9URTogU0FGRSBzaW5jZSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLgBUQ291bnRlckZvclBvb2xNZW1iZXJzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAALEJvbmRlZFBvb2xzAAEEBTjNBwQABGggU3RvcmFnZSBmb3IgYm9uZGVkIHBvb2xzLgBUQ291bnRlckZvckJvbmRlZFBvb2xzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAALFJld2FyZFBvb2xzAAEEBTihDwQACHUBIFJld2FyZCBwb29scy4gVGhpcyBpcyB3aGVyZSB0aGVyZSByZXdhcmRzIGZvciBlYWNoIHBvb2wgYWNjdW11bGF0ZS4gV2hlbiBhIG1lbWJlcnMgcGF5b3V0IGlzWQEgY2xhaW1lZCwgdGhlIGJhbGFuY2UgY29tZXMgb3V0IG9mIHRoZSByZXdhcmQgcG9vbC4gS2V5ZWQgYnkgdGhlIGJvbmRlZCBwb29scyBhY2NvdW50LgBUQ291bnRlckZvclJld2FyZFBvb2xzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAPFN1YlBvb2xzU3RvcmFnZQABBAU4pQ8EAAgZASBHcm91cHMgb2YgdW5ib25kaW5nIHBvb2xzLiBFYWNoIGdyb3VwIG9mIHVuYm9uZGluZyBwb29scyBiZWxvbmdzIHRvIGEpASBib25kZWQgcG9vbCwgaGVuY2UgdGhlIG5hbWUgc3ViLXBvb2xzLiBLZXllZCBieSB0aGUgYm9uZGVkIHBvb2xzIGFjY291bnQuAGRDb3VudGVyRm9yU3ViUG9vbHNTdG9yYWdlAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAIE1ldGFkYXRhAQEEBThFAQQABFwgTWV0YWRhdGEgZm9yIHRoZSBwb29sLgBIQ291bnRlckZvck1ldGFkYXRhAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAKExhc3RQb29sSWQBADgQAAAAAATQIEV2ZXIgaW5jcmVhc2luZyBudW1iZXIgb2YgYWxsIHBvb2xzIGNyZWF0ZWQgc28gZmFyLgBMUmV2ZXJzZVBvb2xJZExvb2t1cAABBAUEOAQAENwgQSByZXZlcnNlIGxvb2t1cCBmcm9tIHRoZSBwb29sJ3MgYWNjb3VudCBpZCB0byBpdHMgaWQuAHUBIFRoaXMgaXMgb25seSB1c2VkIGZvciBzbGFzaGluZyBhbmQgb24gYXV0b21hdGljIHdpdGhkcmF3IHVwZGF0ZS4gSW4gYWxsIG90aGVyIGluc3RhbmNlcywgdGhlJQEgcG9vbCBpZCBpcyB1c2VkLCBhbmQgdGhlIGFjY291bnRzIGFyZSBkZXRlcm1pbmlzdGljYWxseSBkZXJpdmVkIGZyb20gaXQuAHRDb3VudGVyRm9yUmV2ZXJzZVBvb2xJZExvb2t1cAEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwAEBDbGFpbVBlcm1pc3Npb25zAQEEBQQ1BQQCBAEBIE1hcCBmcm9tIGEgcG9vbCBtZW1iZXIgYWNjb3VudCB0byB0aGVpciBvcHRlZCBjbGFpbSBwZXJtaXNzaW9uLgABFQUAAVkLAAwgUGFsbGV0SWTtDCBweS9ub3BscwSEIFRoZSBub21pbmF0aW9uIHBvb2wncyBwYWxsZXQgaWQuAEhNYXhQb2ludHNUb0JhbGFuY2UMBAowHQEgVGhlIG1heGltdW0gcG9vbCBwb2ludHMtdG8tYmFsYW5jZSByYXRpbyB0aGF0IGFuIGBvcGVuYCBwb29sIGNhbiBoYXZlLgBVASBUaGlzIGlzIGltcG9ydGFudCBpbiB0aGUgZXZlbnQgc2xhc2hpbmcgdGFrZXMgcGxhY2UgYW5kIHRoZSBwb29sJ3MgcG9pbnRzLXRvLWJhbGFuY2V8IHJhdGlvIGJlY29tZXMgZGlzcHJvcG9ydGlvbmFsLgBlASBNb3Jlb3ZlciwgdGhpcyByZWxhdGVzIHRvIHRoZSBgUmV3YXJkQ291bnRlcmAgdHlwZSBhcyB3ZWxsLCBhcyB0aGUgYXJpdGhtZXRpYyBvcGVyYXRpb25zVQEgYXJlIGEgZnVuY3Rpb24gb2YgbnVtYmVyIG9mIHBvaW50cywgYW5kIGJ5IHNldHRpbmcgdGhpcyB2YWx1ZSB0byBlLmcuIDEwLCB5b3UgZW5zdXJlZQEgdGhhdCB0aGUgdG90YWwgbnVtYmVyIG9mIHBvaW50cyBpbiB0aGUgc3lzdGVtIGFyZSBhdCBtb3N0IDEwIHRpbWVzIHRoZSB0b3RhbF9pc3N1YW5jZSBvZpwgdGhlIGNoYWluLCBpbiB0aGUgYWJzb2x1dGUgd29yc2UgY2FzZS4ASQEgRm9yIGEgdmFsdWUgb2YgMTAsIHRoZSB0aHJlc2hvbGQgd291bGQgYmUgYSBwb29sIHBvaW50cy10by1iYWxhbmNlIHJhdGlvIG9mIDEwOjEuMQEgU3VjaCBhIHNjZW5hcmlvIHdvdWxkIGFsc28gYmUgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIHBvb2wgYmVpbmcgOTAlIHNsYXNoZWQuADBNYXhVbmJvbmRpbmc4ECAAAAAEPQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyB1bmJvbmRpbmcgY2h1bmtzIHRoYXQgY2FuIGV4aXN0IHBlciBtZW1iZXIuAAG9DwAENFJld2FyZENvdW50ZXL1BDCoIFRoZSB0eXBlIHRoYXQgaXMgdXNlZCBmb3IgcmV3YXJkIGNvdW50ZXIuADUBIFRoZSBhcml0aG1ldGljIG9mIHRoZSByZXdhcmQgY291bnRlciBtaWdodCBzYXR1cmF0ZSBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGVlASBgQ3VycmVuY3k6OkJhbGFuY2VgLiBJZiB0aGlzIGhhcHBlbnMsIG9wZXJhdGlvbnMgZmFpbHMuIE5vbmV0aGVsZXNzLCB0aGlzIHR5cGUgc2hvdWxkIGJlZQEgY2hvc2VuIHN1Y2ggdGhhdCB0aGlzIGZhaWx1cmUgYWxtb3N0IG5ldmVyIGhhcHBlbnMsIGFzIGlmIGl0IGhhcHBlbnMsIHRoZSBwb29sIGJhc2ljYWxseWUBIG5lZWRzIHRvIGJlIGRpc21hbnRsZWQgKG9yIGFsbCBwb29scyBtaWdyYXRlZCB0byBhIGxhcmdlciBgUmV3YXJkQ291bnRlcmAgdHlwZSwgd2hpY2ggaXM8IGEgUElUQSB0byBkbykuAGEBIFNlZSB0aGUgaW5saW5lIGNvZGUgZG9jcyBvZiBgTWVtYmVyOjpwZW5kaW5nX3Jld2FyZHNgIGFuZCBgUmV3YXJkUG9vbDo6dXBkYXRlX3JlY29yZGVkYGUBIGZvciBleGFtcGxlIGFuYWx5c2lzLiBBIFtgc3BfcnVudGltZTo6Rml4ZWRVMTI4YF0gc2hvdWxkIGJlIGZpbmUgZm9yIGNoYWlucyB3aXRoIGJhbGFuY2VRASB0eXBlcyBzaW1pbGFyIHRvIHRoYXQgb2YgUG9sa2Fkb3QgYW5kIEt1c2FtYSwgaW4gdGhlIGFic2VuY2Ugb2Ygc2V2ZXJlIHNsYXNoaW5nIChvcj0BIHByZXZlbnRlZCB2aWEgYSByZWFzb25hYmxlIGBNYXhQb2ludHNUb0JhbGFuY2VgKSwgZm9yIG1hbnkgbWFueSB5ZWFycyB0byBjb21lLgBQAAAkVm90ZXJMaXN0ASRWb3Rlckxpc3QcJExpc3ROb2RlcwABBAUExQ8EAAyAIEEgc2luZ2xlIG5vZGUsIHdpdGhpbiBzb21lIGJhZy4ABQEgTm9kZXMgc3RvcmUgbGlua3MgZm9yd2FyZCBhbmQgYmFjayB3aXRoaW4gdGhlaXIgcmVzcGVjdGl2ZSBiYWdzLgBMQ291bnRlckZvckxpc3ROb2RlcwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwACBMaXN0QmFncwABBAUoyQ8EAAxkIEEgYmFnIHN0b3JlZCBpbiBzdG9yYWdlLgAZASBTdG9yZXMgYSBgQmFnYCBzdHJ1Y3QsIHdoaWNoIHN0b3JlcyBoZWFkIGFuZCB0YWlsIHBvaW50ZXJzIHRvIGl0c2VsZi4AUE5leHROb2RlQXV0b1JlYmFnZ2VkAAAEBAAIBQEgUG9pbnRlciB0aGF0IHJlbWVtYmVycyB0aGUgbmV4dCBub2RlIHRoYXQgd2lsbCBiZSBhdXRvLXJlYmFnZ2VkLgEBIFdoZW4gYE5vbmVgLCB0aGUgbmV4dCBzY2FuIHdpbGwgc3RhcnQgZnJvbSB0aGUgbGlzdCBoZWFkIGFnYWluLgAQTG9jawAAEAQAEIQgTG9jayBhbGwgdXBkYXRlcyB0byB0aGlzIHBhbGxldC4AOQEgSWYgYW55IG5vZGVzIG5lZWRzIHVwZGF0aW5nLCByZW1vdmFsIG9yIGFkZGl0aW9uIGR1ZSB0byBhIHRlbXBvcmFyeSBsb2NrLCB0aGV0IFtgQ2FsbDo6cmViYWdgXSBjYW4gYmUgdXNlZC4AMFBlbmRpbmdSZWJhZwABBAUEEAQAOB0BIEFjY291bnRzIHRoYXQgZmFpbGVkIHRvIGJlIGluc2VydGVkIGludG8gdGhlIGJhZ3MtbGlzdCBkdWUgdG8gbG9ja2luZy5ZASBUaGVzZSBhY2NvdW50cyB3aWxsIGJlIHByb2Nlc3NlZCB3aXRoIHByaW9yaXR5IGluIGBvbl9pZGxlYCBvciB2aWEgYHJlYmFnYCBleHRyaW5zaWMuAE0BIE5vdGU6IFRoaXMgc3RvcmFnZSBpcyBpbnRlbnRpb25hbGx5IHVuYm91bmRlZC4gVGhlIGZvbGxvd2luZyBmYWN0b3JzIG1ha2UgYm91bmRpbmc0IHVubmVjZXNzYXJ5OlEBIDEuIFRoZSBzdG9yYWdlIHVzYWdlIGlzIHRlbXBvcmFyeSAtIGFjY291bnRzIGFyZSBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgaW4gYG9uX2lkbGVgRQEgMi4gVGhlIHBhbGxldCBpcyBvbmx5IGxvY2tlZCBkdXJpbmcgc25hcHNob3QgZ2VuZXJhdGlvbiwgd2hpY2ggaXMgd2VpZ2h0LWxpbWl0ZWRtASAzLiBQcm9jZXNzaW5nIGhhcHBlbnMgYXQgbXVsdGlwbGUgYWNjb3VudHMgcGVyIGJsb2NrLCBjbGVhcmluZyBldmVuIGxhcmdlIGJhY2tsb2dzIHF1aWNrbHlBASA0LiBBbiBhcnRpZmljaWFsIGxpbWl0IGNvdWxkIGJlIGV4aGF1c3RlZCBieSBhbiBhdHRhY2tlciwgcHJldmVudGluZyBsZWdpdGltYXRlAQEgICAgYXV0by1yZWJhZ2dpbmcgZnJvbSBwdXR0aW5nIGFjY291bnRzIGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uAGkBIFdlIGRvbid0IHN0b3JlIHRoZSBzY29yZSBoZXJlIC0gaXQncyBhbHdheXMgZmV0Y2hlZCBmcm9tIGBTY29yZVByb3ZpZGVyYCB3aGVuIHByb2Nlc3NpbmcsaQEgZW5zdXJpbmcgd2UgdXNlIHRoZSBtb3N0IHVwLXRvLWRhdGUgc2NvcmUgKGFjY291bnRzIG1heSBoYXZlIGJlZW4gc2xhc2hlZCwgcmV3YXJkZWQsIGV0Yy50IHdoaWxlIHdhaXRpbmcgaW4gdGhlIHF1ZXVlKS4AWENvdW50ZXJGb3JQZW5kaW5nUmViYWcBADgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAABTQUAAV0LAAg0QmFnVGhyZXNob2xkc80PCRkhAwDkC1QCAAAA856AlwIAAACosZfiAgAAAJRJLjYDAAAAJ5w6kwMAAAADvM76AwAAAELAG24EAAAAG0d17gQAAAA4XlV9BQAAAEbcYBwGAAAAiThszQYAAAC27oCSBwAAAP5+420IAAAA6BsaYgkAAACwGfRxCgAAABA1kqALAAAAz8lv8QwAAABBFG1oDgAAAOeb2gkQAAAAzuiF2hEAAAAoqcffEwAAALtwkx8WAAAAjkCJoBgAAACBCglqGwAAADZqSIQeAAAAW9Nq+CEAAACAfJzQJQAAAMlVMBgqAAAAvWPB2y4AAABx4FcpNAAAAGiQkhA6AAAA7cTUokAAAABpk3nzRwAAAI/YDBhQAAAAS6+KKFkAAABqFqY/YwAAAAmVF3tuAAAAeMX0+3oAAABiyBHniAAAAFG/bWWYAAAABI6rpKkAAABURpjXvAAAAJHKwDbSAAAAF18YAeoAAAC9FbJ8BAEAAEM1j/chAQAAuPyEyEIBAACZZzxQZwEAAAfkTvqPAQAAs0GDPr0BAAACfy6i7wEAAJiDvLknAgAAFk1lKmYCAAC0lROsqwIAAC2Oggv5AgAAoeaYLE8DAACmFggNrwMAAMydN8cZBAAAoNWElZAEAABC5+DVFAUAAAKM1w2oBQAAD3UK70sGAADqjS5cAgcAAMPLmW7NBwAAseVxfK8IAACqK44fqwkAALXBID3DCgAAJtA9DvsLAABwx1kpVg0AAOut2ozYDgAA95fbqoYQAADP8ER2ZRIAAB8mYHF6FAAACaYRvssWAAAd++gvYBkAAJQ6PGA/HAAAiv6JxHEfAADO2WPHACMAAAOpKuT2JgAA/nLuxV8rAAA2ycxpSDAAANrjMkW/NQAABip0cNQ7AAB8lzLWmUIAAISjJGgjSgAAVxrUWYdSAADn8QJi3lsAAA24dgNEZgAArgQB3tZxAAB9nrMIuX4AAB4ESnYQjQAAOh3wZAedAADgT6/azK4AAFZ58C+VwgAAlcOqqZrYAACWfAUlHvEAABd6ZtZnDAEAKMsfHsgqAQD6KC91mEwBANV9yHQ8cgEAfcSz+yKcAQA2XN50x8oBAJ644UKz/gEADDGuVH84AgBf4QHo1XgCAGNz2n50wAIAUdGmDS4QAwDH6aRo7WgDAGHAkfe3ywMAvyeht7A5BAB7FJmUG7QEAIUj7SJhPAUAaaXUxRLUBQDsjJNN73wGAPWqkBvoOAcAjL5d2yYKCAACl4zhE/MIAPrjFENd9gkA3fEtuv4WCwAuutxvSlgMAAxVGMTyvQ0A8LtUMRVMDwBJjoZrRgcRALLBU96f9BIAJ4ovss4ZFQCyOZ+EJH0XAOGZ5wSqJRoAuhP1qzMbHQAmR4XMeGYgAIi/gD8tESQAHJgj+B0mKADMxCLUULEsAPCIggUowDEANnxtfolhNwBukynTCqY9AIy8bBMioEQAAHDzKlxkTAC0O4RpmQlVAIC0q+RQqV4AoM2pedtfaQBMwn9Mx0x1ANCsDro0k4IASD4Mzz1akQBoxo50ac2hACgeb6UrHbQAmKkjJnR/yADwmnRjTTDfAIDN/EuNcvgAkBRgLZqQFAHwtBPZRd0zASCXNZbBtFYBUNz7rq19fQHgEZi5R6qoATDH7ha7udgBIG5Ihpc5DgKg+ksdcsdJAsARcXC1EowCgIoWQ6be1QLA+COxogQoA4CvWXCidoMDwG8th/9B6QNAk3+sj5JaBACRCXEXttgEQA/fWyEgZQUAScFJRG4BBgCOvKblbK8GAFlWhoUccQeAaKo0pLdICICh4p5SuTgJAL2r6IDkQwoAKnK0IExtC4DxwBMzXLgMAKA8y9zjKA6AuGKaniDDDwDeVpPSyosRAF1/TJMjiBMAGoffNQS+FQCnzkuE7zMYAAEQ++ok8RoAgCrl0bX9HQAioTRgnWIhAEQha/DaKSUAAmHxgo9eKQBmIM+FHg0uAIQQGVJSQzMAoMGPyoQQOQAmrRSTzIU/ANDNJGYvtkYAnOGaHNq2TgBYzMIMX59XACAKdXj7iWEAMLu71uSTbABgy6fcnt14ALg7wEJbi4YAuIYjYWTFlQD48V/ck7imACBqkcDWlrkA2O/ij8CXzgBoKZv1Lvnl//////////+s0CBUaGUgbGlzdCBvZiB0aHJlc2hvbGRzIHNlcGFyYXRpbmcgdGhlIHZhcmlvdXMgYmFncy4ASQEgSWRzIGFyZSBzZXBhcmF0ZWQgaW50byB1bnNvcnRlZCBiYWdzIGFjY29yZGluZyB0byB0aGVpciBzY29yZS4gVGhpcyBzcGVjaWZpZXMgdGhlYQEgdGhyZXNob2xkcyBzZXBhcmF0aW5nIHRoZSBiYWdzLiBBbiBpZCdzIGJhZyBpcyB0aGUgbGFyZ2VzdCBiYWcgZm9yIHdoaWNoIHRoZSBpZCdzIHNjb3JluCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gaXRzIHVwcGVyIHRocmVzaG9sZC4AZQEgV2hlbiBpZHMgYXJlIGl0ZXJhdGVkLCBoaWdoZXIgYmFncyBhcmUgaXRlcmF0ZWQgY29tcGxldGVseSBiZWZvcmUgbG93ZXIgYmFncy4gVGhpcyBtZWFuc1kBIHRoYXQgaXRlcmF0aW9uIGlzIF9zZW1pLXNvcnRlZF86IGlkcyBvZiBoaWdoZXIgc2NvcmUgdGVuZCB0byBjb21lIGJlZm9yZSBpZHMgb2YgbG93ZXItASBzY29yZSwgYnV0IHBlZXIgaWRzIHdpdGhpbiBhIHBhcnRpY3VsYXIgYmFnIGFyZSBzb3J0ZWQgaW4gaW5zZXJ0aW9uIG9yZGVyLgBoICMgRXhwcmVzc2luZyB0aGUgY29uc3RhbnQATQEgVGhpcyBjb25zdGFudCBtdXN0IGJlIHNvcnRlZCBpbiBzdHJpY3RseSBpbmNyZWFzaW5nIG9yZGVyLiBEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCwgcGVybWl0dGVkLgBBASBUaGVyZSBpcyBhbiBpbXBsaWVkIHVwcGVyIGxpbWl0IG9mIGBTY29yZTo6TUFYYDsgdGhhdCB2YWx1ZSBkb2VzIG5vdCBuZWVkIHRvIGJlIQEgc3BlY2lmaWVkIHdpdGhpbiB0aGUgYmFnLiBGb3IgYW55IHR3byB0aHJlc2hvbGQgbGlzdHMsIGlmIG9uZSBlbmRzIHdpdGgxASBgU2NvcmU6Ok1BWGAsIHRoZSBvdGhlciBvbmUgZG9lcyBub3QsIGFuZCB0aGV5IGFyZSBvdGhlcndpc2UgZXF1YWwsIHRoZSB0d298IGxpc3RzIHdpbGwgYmVoYXZlIGlkZW50aWNhbGx5LgA4ICMgQ2FsY3VsYXRpb24AVQEgSXQgaXMgcmVjb21tZW5kZWQgdG8gZ2VuZXJhdGUgdGhlIHNldCBvZiB0aHJlc2hvbGRzIGluIGEgZ2VvbWV0cmljIHNlcmllcywgc3VjaCB0aGF0QQEgdGhlcmUgZXhpc3RzIHNvbWUgY29uc3RhbnQgcmF0aW8gc3VjaCB0aGF0IGB0aHJlc2hvbGRbayArIDFdID09ICh0aHJlc2hvbGRba10gKtAgY29uc3RhbnRfcmF0aW8pLm1heCh0aHJlc2hvbGRba10gKyAxKWAgZm9yIGFsbCBga2AuAFkBIFRoZSBoZWxwZXJzIGluIHRoZSBgL3V0aWxzL2ZyYW1lL2dlbmVyYXRlLWJhZ3NgIG1vZHVsZSBjYW4gc2ltcGxpZnkgdGhpcyBjYWxjdWxhdGlvbi4ALCAjIEV4YW1wbGVzAFEBIC0gSWYgYEJhZ1RocmVzaG9sZHM6OmdldCgpLmlzX2VtcHR5KClgLCB0aGVuIGFsbCBpZHMgYXJlIHB1dCBpbnRvIHRoZSBzYW1lIGJhZywgYW5ksCAgIGl0ZXJhdGlvbiBpcyBzdHJpY3RseSBpbiBpbnNlcnRpb24gb3JkZXIuYQEgLSBJZiBgQmFnVGhyZXNob2xkczo6Z2V0KCkubGVuKCkgPT0gNjRgLCBhbmQgdGhlIHRocmVzaG9sZHMgYXJlIGRldGVybWluZWQgYWNjb3JkaW5nIHRvEQEgICB0aGUgcHJvY2VkdXJlIGdpdmVuIGFib3ZlLCB0aGVuIHRoZSBjb25zdGFudCByYXRpbyBpcyBlcXVhbCB0byAyLmUBIC0gSWYgYEJhZ1RocmVzaG9sZHM6OmdldCgpLmxlbigpID09IDIwMGAsIGFuZCB0aGUgdGhyZXNob2xkcyBhcmUgZGV0ZXJtaW5lZCBhY2NvcmRpbmcgdG9ZASAgIHRoZSBwcm9jZWR1cmUgZ2l2ZW4gYWJvdmUsIHRoZW4gdGhlIGNvbnN0YW50IHJhdGlvIGlzIGFwcHJveGltYXRlbHkgZXF1YWwgdG8gMS4yNDguYQEgLSBJZiB0aGUgdGhyZXNob2xkIGxpc3QgYmVnaW5zIGBbMSwgMiwgMywgLi4uXWAsIHRoZW4gYW4gaWQgd2l0aCBzY29yZSAwIG9yIDEgd2lsbCBmYWxs8CAgIGludG8gYmFnIDAsIGFuIGlkIHdpdGggc2NvcmUgMiB3aWxsIGZhbGwgaW50byBiYWcgMSwgZXRjLgAwICMgTWlncmF0aW9uAGEBIEluIHRoZSBldmVudCB0aGF0IHRoaXMgbGlzdCBldmVyIGNoYW5nZXMsIGEgY29weSBvZiB0aGUgb2xkIGJhZ3MgbGlzdCBtdXN0IGJlIHJldGFpbmVkLl0BIFdpdGggdGhhdCBgTGlzdDo6bWlncmF0ZWAgY2FuIGJlIGNhbGxlZCwgd2hpY2ggd2lsbCBwZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSBtaWdyYXRpb24uAFBNYXhBdXRvUmViYWdQZXJCbG9jazgQCgAAABA1ASBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0aGF0IG1heSBiZSByZS1iYWdnZWQgYXV0b21hdGljYWxseSBpbiBgb25faWRsZWAuAFEBIEEgdmFsdWUgb2YgYDBgIChvYnRhaW5lZCBieSBjb25maWd1cmluZyBgdHlwZSBNYXhBdXRvUmViYWdQZXJCbG9jayA9ICgpO2ApIGRpc2FibGVzNCB0aGUgZmVhdHVyZS4AAdEPAAQUU2NvcmUoBAkBIFRoZSB0eXBlIHVzZWQgdG8gZGljdGF0ZSBhIG5vZGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3RoZXIgbm9kZXMuBHTdcC2kb3fXrPd/WkjUr30SRlCdIc2xJui6xWgTxKKeGHNjb3JlcwQMd2hvBNkPHLAgR2V0IHRoZSBjdXJyZW50IGBzY29yZWAgb2YgYSBnaXZlbiBhY2NvdW50LgBhASBSZXR1cm5zIGAoY3VycmVudCwgcmVhbF9zY29yZSlgLCB0aGUgZm9ybWVyIGJlaW5nIHRoZSBjdXJyZW50IHNjb3JlIHRoYXQgdGhpcyBwYWxsZXQgaXNZASBhd2FyZSBvZiwgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgdXAgdG8gZGF0ZSwgYW5kIHRoZSBsYXR0ZXIgYmVpbmcgdGhlIHJlYWwgc2NvcmUsIGFzMCBwcm92aWRlZCBieQAdASBJZiB0aGUgdHdvIGRpZmZlciwgaXQgbWVhbnMgdGhpcyBub2RlIGlzIGVsaWdpYmxlIGZvciBbYENhbGw6OnJlYmFnYF0uAFIAAEBEZWxlZ2F0ZWRTdGFraW5nAUBEZWxlZ2F0ZWRTdGFraW5nEChEZWxlZ2F0b3JzAAEEBQTdDwQAEKQgTWFwIG9mIERlbGVnYXRvcnMgdG8gdGhlaXIgYERlbGVnYXRpb25gLgBhASBJbXBsZW1lbnRhdGlvbiBub3RlOiBXZSBhcmUgbm90IHVzaW5nIGEgZG91YmxlIG1hcCB3aXRoIGBkZWxlZ2F0b3JgIGFuZCBgYWdlbnRgIGFjY291bnRhASBhcyBrZXlzIHNpbmNlIHdlIHdhbnQgdG8gcmVzdHJpY3QgZGVsZWdhdG9ycyB0byBkZWxlZ2F0ZSBvbmx5IHRvIG9uZSBhY2NvdW50IGF0IGEgdGltZS4AUENvdW50ZXJGb3JEZWxlZ2F0b3JzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAGEFnZW50cwABBAUE4Q8EAASIIE1hcCBvZiBgQWdlbnRgIHRvIHRoZWlyIGBMZWRnZXJgLgBAQ291bnRlckZvckFnZW50cwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwAAABYQsACCBQYWxsZXRJZO0MIHB5L2Rsc3RrBJAgSW5qZWN0ZWQgaWRlbnRpZmllciBmb3IgdGhlIHBhbGxldC4ATFNsYXNoUmV3YXJkRnJhY3Rpb24tBRCAlpgABFEBIEZyYWN0aW9uIG9mIHRoZSBzbGFzaCB0aGF0IGlzIHJld2FyZGVkIHRvIHRoZSBjYWxsZXIgb2YgcGVuZGluZyBzbGFzaCB0byB0aGUgYWdlbnQuAAHlDwAAAFMAADxTdGFraW5nUmNDbGllbnQBPFN0YWtpbmdSY0NsaWVudAxcSW5jb21wbGV0ZVNlc3Npb25SZXBvcnQAAFUFBAAEHQEgQW4gaW5jb21wbGV0ZSBpbmNvbWluZyBzZXNzaW9uIHJlcG9ydCB0aGF0IHdlIGhhdmUgbm90IGFjdGVkIHVwb24geWV0LgBwTGFzdFNlc3Npb25SZXBvcnRFbmRpbmdJbmRleAAAOAQAIPwgVGhlIGxhc3Qgc2Vzc2lvbiByZXBvcnQncyBgZW5kX2luZGV4YCB0aGF0IHdlIGhhdmUgYWN0ZWQgdXBvbi4AYQEgVGhpcyBhbGxvd3MgdGhpcyBwYWxsZXQgdG8gZW5zdXJlIGEgc2VxdWVudGlhbGx5IGluY3JlYXNpbmcgc2VxdWVuY2Ugb2Ygc2Vzc2lvbiByZXBvcnRzTCBwYXNzZWQgdG8gc3Rha2luZy4AXQEgTm90ZSB0aGF0IHdpdGggdGhlIFhDTSBiZWluZyB0aGUgYmFja2JvbmUgb2YgY29tbXVuaWNhdGlvbiwgd2UgaGF2ZSBhIGd1YXJhbnRlZSBvbiB0aGVhASBvcmRlcmluZyBvZiBtZXNzYWdlcy4gQXMgbG9uZyBhcyB0aGUgUkMgc2VuZHMgc2Vzc2lvbiByZXBvcnRzIGluIG9yZGVyLCB3ZSBfZXZlbnR1YWxseV/AIHJlY2VpdmUgdGhlbSBpbiB0aGUgc2FtZSBjb3JyZWN0IG9yZGVyIGFzIHdlbGwuAFBPdXRnb2luZ1ZhbGlkYXRvclNldAAA6Q8EABDYIEEgdmFsaWRhdG9yIHNldCB0aGF0IGlzIG91dGdvaW5nLCBhbmQgc2hvdWxkIGJlIHNlbnQuAHUBIFRoaXMgd2lsbCBiZSBhdHRlbXB0ZWQgdG8gYmUgc2VudCwgcG9zc2libHkgb24gZXZlcnkgYG9uX2luaXRpYWxpemVgIGNhbGwsIHVudGlsIGl0IGlzIHNlbnQs9CBvciB0aGUgc2Vjb25kIHZhbHVlIHJlYWNoZXMgemVybywgYXQgd2hpY2ggcG9pbnQgd2UgZHJvcCBpdC4AAVEFAAFlCwAEKEtleURlcG9zaXRZAUAA4AHsiwAAAAAAAAAAAAAABC0BIERlcG9zaXQgaGVsZCB3aGVuIGEgdmFsaWRhdG9yIHNldHMgc2Vzc2lvbiBrZXlzLiBSZWxlYXNlZCBvbiBgcHVyZ2Vfa2V5c2AuAAHxDwAAAFQAAEhNdWx0aUJsb2NrRWxlY3Rpb24BSE11bHRpQmxvY2tFbGVjdGlvbhwUUm91bmQBADgQAAAAABisIEludGVybmFsIGNvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2Ygcm91bmRzLgBVASBUaGlzIGlzIHVzZWZ1bCBmb3IgZGUtZHVwbGljYXRpb24gb2YgdHJhbnNhY3Rpb25zIHN1Ym1pdHRlZCB0byB0aGUgcG9vbCwgYW5kIGdlbmVyYWxsIGRpYWdub3N0aWNzIG9mIHRoZSBwYWxsZXQuAE0BIFRoaXMgaXMgbWVyZWx5IGluY3JlbWVudGVkIG9uY2UgcGVyIGV2ZXJ5IHRpbWUgdGhhdCBhbiB1cHN0cmVhbSBgZWxlY3RgIGlzIGNhbGxlZC4AMEN1cnJlbnRQaGFzZQEAfQUEAAQ8IEN1cnJlbnQgcGhhc2UuADhEZXNpcmVkVGFyZ2V0cwABBAU4OAQABMwgRGVzaXJlZCBudW1iZXIgb2YgdGFyZ2V0cyB0byBlbGVjdCBmb3IgdGhpcyByb3VuZC4ASFBhZ2VkVm90ZXJTbmFwc2hvdAABCAUF0PUPBAAEAQEgUGFnaW5hdGVkIHZvdGVyIHNuYXBzaG90LiBBdCBtb3N0IFtgVDo6UGFnZXNgXSBrZXlzIHdpbGwgZXhpc3QuAFhQYWdlZFZvdGVyU25hcHNob3RIYXNoAAEIBQXQQAQADDEBIFNhbWUgYXMgW2BQYWdlZFZvdGVyU25hcHNob3RgXSwgYnV0IGl0IHdpbGwgc3RvcmUgdGhlIGhhc2ggb2YgdGhlIHNuYXBzaG90LgD8IFRoZSBoYXNoIGlzIGdlbmVyYXRlZCB1c2luZyBbYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpIYXNoaW5nYF0uAExQYWdlZFRhcmdldFNuYXBzaG90AAEIBQXQBRAEAAxsIFBhZ2luYXRlZCB0YXJnZXQgc25hcHNob3QuAFkBIEZvciB0aGUgdGltZSBiZWluZywgc2luY2Ugd2UgYXNzdW1lIG9uZSBwYWdlcyBvZiB0YXJnZXRzLCBhdCBtb3N0IE9ORSBrZXkgd2lsbCBleGlzdC4AXFBhZ2VkVGFyZ2V0U25hcHNob3RIYXNoAAEIBQXQQAQADDUBIFNhbWUgYXMgW2BQYWdlZFRhcmdldFNuYXBzaG90YF0sIGJ1dCBpdCB3aWxsIHN0b3JlIHRoZSBoYXNoIG9mIHRoZSBzbmFwc2hvdC4A/CBUaGUgaGFzaCBpcyBnZW5lcmF0ZWQgdXNpbmcgW2BmcmFtZV9zeXN0ZW06OkNvbmZpZzo6SGFzaGluZ2BdLgABdQUAAW0LABg0VW5zaWduZWRQaGFzZTgQlgAAAASAIER1cmF0aW9uIG9mIHRoZSB1bnNpZ25lZCBwaGFzZS4ALFNpZ25lZFBoYXNlOBAsAQAABHggRHVyYXRpb24gb2YgdGhlIHNpZ25lZCBwaGFzZS4AVFNpZ25lZFZhbGlkYXRpb25QaGFzZTgQAAIAABSkIER1cmF0aW9uIG9mIHRoZSBzaW5nZWQgdmFsaWRhdGlvbiBwaGFzZS4AVQEgVGhlIGR1cmF0aW9uIG9mIHRoaXMgc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gYFQ6OlBhZ2VzYCwgYW5kIHRoZXJlIGlzIG5vIHBvaW50IGluIGl0ZQEgYmVpbmcgbW9yZSB0aGFuIGBTaWduZWRQaGFzZTo6TWF4U3VibWlzc2lvbjo6Z2V0KCkgKiBUOjpQYWdlc2AuIFRPRE86IGludGVncml0eSB0ZXN0IGZvchAgaXQuAFRWb3RlclNuYXBzaG90UGVyQmxvY2s4EMACAAAEyCBUaGUgbnVtYmVyIG9mIHNuYXBzaG90IHZvdGVycyB0byBmZXRjaCBwZXIgYmxvY2suAFhUYXJnZXRTbmFwc2hvdFBlckJsb2NrOBDQBwAABMwgVGhlIG51bWJlciBvZiBzbmFwc2hvdCB0YXJnZXRzIHRvIGZldGNoIHBlciBibG9jay4AFFBhZ2VzOBAgAAAAGFQgVGhlIG51bWJlciBvZiBwYWdlcy4AAQEgVGhlIHNuYXBzaG90IGlzIGNyZWF0ZWQgd2l0aCB0aGlzIG1hbnkga2V5cyBpbiB0aGUgc3RvcmFnZSBtYXAuAFEBIFRoZSBzb2x1dGlvbnMgbWF5IGNvbnRhaW4gYXQgTU9TVCB0aGlzIG1hbnkgcGFnZXMsIGJ1dCBsZXNzIHBhZ2VzIGFyZSBhY2NlcHRhYmxlIGFzGCB3ZWxsLgABCRAAAABVAABoTXVsdGlCbG9ja0VsZWN0aW9uVmVyaWZpZXIBaE11bHRpQmxvY2tFbGVjdGlvblZlcmlmaWVyHDxRdWV1ZWRTb2x1dGlvblgAAQgFBdCFBQQAHD0BIFRoZSBgWGAgdmFyaWFudCBvZiB0aGUgY3VycmVudCBxdWV1ZWQgc29sdXRpb24uIE1pZ2h0IGJlIHRoZSB2YWxpZCBvbmUgb3Igbm90LgBpASBUaGUgdHdvIHZhcmlhbnRzIG9mIHRoaXMgc3RvcmFnZSBpdGVtIGlzIHRvIGF2b2lkIHRoZSBuZWVkIG9mIGNvcHlpbmcuIFJlY2FsbCB0aGF0IG9uY2UgYXEBIGBWZXJpZnlpbmdTb2x1dGlvbmAgaXMgYmVpbmcgcHJvY2Vzc2VkLCBpdCBuZWVkcyB0byB3cml0ZSBpdHMgcGFydGlhbCBzdXBwb3J0cyAqc29tZXdoZXJlKi5pASBXcml0aW5nIHRoZXNlcyBzdXBwb3J0cyBvbiB0b3Agb2YgYSAqZ29vZCogcXVldWVkIHN1cHBvcnRzIGlzIHdyb25nLCBzaW5jZSB3ZSBtaWdodCBiYWlsLnUBIFdyaXRpbmcgdGhlbSB0byBhIGJ1Z2dlciBhbmQgY29weWluZyBhdCB0aGUgbmVkIGlzIHNsaWdodGx5IGJldHRlciwgYnV0IGV4cGVuc2l2ZS4gVGhpcyBmbGFnfCBzeXN0ZW0gaXMgYmVzdCBvZiBib3RoIHdvcmxkcy4APFF1ZXVlZFNvbHV0aW9uWQABCAUF0IUFBAAEPQEgVGhlIGBZYCB2YXJpYW50IG9mIHRoZSBjdXJyZW50IHF1ZXVlZCBzb2x1dGlvbi4gTWlnaHQgYmUgdGhlIHZhbGlkIG9uZSBvciBub3QuAEhRdWV1ZWRWYWxpZFZhcmlhbnQBAQQFOA0QBAEIXQEgUG9pbnRlciB0byB0aGUgdmFyaWFudCBvZiBbYFF1ZXVlZFNvbHV0aW9uWGBdIG9yIFtgUXVldWVkU29sdXRpb25ZYF0gdGhhdCBpcyBjdXJyZW50bHkcIHZhbGlkLgBYUXVldWVkU29sdXRpb25CYWNraW5ncwABCAUF0BEQBAAg1CBUaGUgYChhbW91bnQsIGNvdW50KWAgb2YgYmFja2luZ3MsIGRpdmlkZWQgcGVyIHBhZ2UuAHEBIFRoaXMgaXMgc3RvcmVkIGJlY2F1c2UgaW4gdGhlIGxhc3QgYmxvY2sgb2YgdmVyaWZpY2F0aW9uIHdlIG5lZWQgdGhlbSB0byBjb21wdXRlIHRoZSBzY29yZSyYIGFuZCBjaGVjayBgTWF4QmFja2Vyc1Blcldpbm5lckZpbmFsYC4AcQEgVGhpcyBjYW4gb25seSBldmVyIGxpdmUgZm9yIHRoZSBpbnZhbGlkIHZhcmlhbnQgb2YgdGhlIHNvbHV0aW9uLiBPbmNlIGl0IGlzIHZhbGlkLCB3ZSBkb24ndBUBIG5lZWQgdGhpcyBpbmZvcm1hdGlvbiBhbnltb3JlOyB0aGUgc2NvcmUgaXMgYWxyZWFkeSBjb21wdXRlZCBvbmNlIGlu9CBbYFF1ZXVlZFNvbHV0aW9uU2NvcmVgXSwgYW5kIHRoZSBiYWNraW5nIGNvdW50cyBhcmUgY2hlY2tlZC4ATFF1ZXVlZFNvbHV0aW9uU2NvcmUAAQQFOKUFBAAM2CBUaGUgc2NvcmUgb2YgdGhlIHZhbGlkIHZhcmlhbnQgb2YgW2BRdWV1ZWRTb2x1dGlvbmBdLgC4IFRoaXMgb25seSBldmVyIGxpdmVzIGZvciB0aGUgYHZhbGlkYCB2YXJpYW50LgAwTWluaW11bVNjb3JlAAClBQQABFUBIFRoZSBtaW5pbXVtIHNjb3JlIHRoYXQgZWFjaCBzb2x1dGlvbiBtdXN0IGF0dGFpbiBpbiBvcmRlciB0byBiZSBjb25zaWRlcmVkIGZlYXNpYmxlLgA0U3RhdHVzU3RvcmFnZQEAIRAEAQR0IFN0b3JhZ2UgaXRlbSBmb3IgW2BTdGF0dXNgXS4AAakFAAFxCwAQcFNvbHV0aW9uSW1wcm92ZW1lbnRUaHJlc2hvbGQtBRAAAAAACE0BIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBpbXByb3ZlbWVudCB0byB0aGUgc29sdXRpb24gc2NvcmUgdGhhdCBkZWZpbmVzIGEgc29sdXRpb24gYXMoICJiZXR0ZXIiLgBgTWF4QmFja2Vyc1Blcldpbm5lckZpbmFsOBDkVwAAFB0BIE1heGltdW0gbnVtYmVyIG9mIGJhY2tlcnMsIHBlciB3aW5uZXIsIGFtb25nIGFsbCBwYWdlcyBvZiBhbiBlbGVjdGlvbi4ABQEgVGhpcyBjYW4gb25seSBiZSBjaGVja2VkIGF0IHRoZSB2ZXJ5IGZpbmFsIHN0ZXAgb2YgdmVyaWZpY2F0aW9uLgBdASBOT1RFOiBhdCB0aGUgbW9tZW50LCB3ZSBkb24ndCBjaGVjayB0aGlzLCBhbmQgaXQgaXMgaW4gcGxhY2UgZm9yIGZ1dHVyZSBjb21wYXRpYmlsaXR5LgBMTWF4QmFja2Vyc1Blcldpbm5lcjgQwAIAAATEIE1heGltdW0gbnVtYmVyIG9mIGJhY2tlcnMsIHBlciB3aW5uZXIsIHBlciBwYWdlLgBETWF4V2lubmVyc1BlclBhZ2U4EOgDAAAIYQEgTWF4aW11bSBudW1iZXIgb2Ygc3VwcG9ydHMgKGFrYS4gd2lubmVycy92YWxpZGF0b3JzL3RhcmdldHMpIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGluTCBhIHBhZ2Ugb2YgcmVzdWx0cy4AAAAAVgAAaE11bHRpQmxvY2tFbGVjdGlvblVuc2lnbmVkAAGtBQAAAAAAAFcAAGBNdWx0aUJsb2NrRWxlY3Rpb25TaWduZWQBYE11bHRpQmxvY2tFbGVjdGlvblNpZ25lZBA0SW52dWxuZXJhYmxlcwEA/Q8EACQVASBBY2NvdW50cyB3aGl0ZWxpc3RlZCBieSBnb3Zlcm5hbmNlIHRvIGFsd2F5cyBzdWJtaXQgdGhlaXIgc29sdXRpb25zLgBwIFRoZXkgYXJlIGRpZmZlcmVudCBpbiB0aGF0OgD8ICogVGhleSBhbHdheXMgcGF5IGEgZml4ZWQgZGVwb3NpdCBmb3Igc3VibWlzc2lvbiwgc3BlY2lmaWVkIGJ59CAgIFtgQ29uZmlnOjpJbnZ1bG5lcmFibGVEZXBvc2l0YF0uIFRoZXkgcGF5IG5vIHBhZ2UgZGVwb3NpdC5pASAqIElmIF9lamVjdGVkXyBieSBiZXR0ZXIgc29sdXRpb24gZnJvbSBbYFNvcnRlZFNjb3Jlc2BdLCB0aGV5IHdpbGwgZ2V0IHRoZWlyIGZ1bGwgZGVwb3NpdCAgICBiYWNrLgkBICogVGhleSBhbHdheXMgZ2V0IHRoZWlyIHR4LWZlZSBiYWNrIGV2ZW4gaWYgdGhleSBhcmUgX2Rpc2NhcmRlZF8uADBTb3J0ZWRTY29yZXMBAQQFOCUQBAAAAERTdWJtaXNzaW9uU3RvcmFnZQABDAUFBTEQuQUEAATsIFRyaXBsZSBtYXAgZnJvbSAocm91bmQsIGFjY291bnQsIHBhZ2UpIHRvIGEgc29sdXRpb24gcGFnZS4AZFN1Ym1pc3Npb25NZXRhZGF0YVN0b3JhZ2UAAQgFBTkONRAEABDYIE1hcCBmcm9tIGFjY291bnQgdG8gdGhlIG1ldGFkYXRhIG9mIHRoZWlyIHN1Ym1pc3Npb24uAHEBIGludmFyaWFudDogZm9yIGFueSBLZXkxIG9mIHR5cGUgYEFjY291bnRJZGAgaW4gW2BTdWJtaXNzaW9uc2BdLCB0aGlzIHN0b3JhZ2UgbWFwIGFsc28gaGFzIGEcIHZhbHVlLgABhQYAAYELAAABQRAAAAR3C2VQQmgLzwU50gTfWdMoia+mC8nJTI4kdu2bqqkwBSxkZXBvc2l0X2ZvcggMd2hvBBRwYWdlczhZARQRASBHZXQgdGhlIGRlcG9zaXQgYW1vdW50IHRoYXQgd2lsbCBiZSBoZWxkIGZvciBhIHNvbHV0aW9uIG9mIGBwYWdlc2AuAEEBIFRoaXMgYWxsb3dzIGFuIG9mZmNoYWluIGFwcGxpY2F0aW9uIHRvIGtub3cgd2hhdCBbYENvbmZpZzo6RGVwb3NpdFBlclBhZ2VgXSBhbmRlASBbYENvbmZpZzo6RGVwb3NpdEJhc2VgXSBhcmUgZG9pbmcgdW5kZXIgdGhlIGhvb2QuIEl0IGFsc28gdGFrZXMgaW50byBhY2NvdW50IGlmIGB3aG9gIGlzaCBbYEludnVsbmVyYWJsZXNgXSBvciBub3QuAFgAABxTdGFraW5nARxTdGFraW5ntDhWYWxpZGF0b3JDb3VudAEAOBAAAAAABJwgVGhlIGlkZWFsIG51bWJlciBvZiBhY3RpdmUgdmFsaWRhdG9ycy4ANEludnVsbmVyYWJsZXMBAPEMBAAMWQEgQW55IHZhbGlkYXRvcnMgdGhhdCBtYXkgbmV2ZXIgYmUgc2xhc2hlZCBvciBmb3JjaWJseSBraWNrZWQuIEl0J3MgYSBWZWMgc2luY2UgdGhleSdyZU0BIGVhc3kgdG8gaW5pdGlhbGl6ZSBhbmQgdGhlIHBlcmZvcm1hbmNlIGhpdCBpcyBtaW5pbWFsICh3ZSBleHBlY3Qgbm8gbW9yZSB0aGFuIGZvdXKsIGludnVsbmVyYWJsZXMpIGFuZCByZXN0cmljdGVkIHRvIHRlc3RuZXRzLgAYQm9uZGVkAAEEBQQEBAAMAQEgTWFwIGZyb20gYWxsIGxvY2tlZCAic3Rhc2giIGFjY291bnRzIHRvIHRoZSBjb250cm9sbGVyIGFjY291bnQuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAEBNaW5Ob21pbmF0b3JCb25kAQBZAUAAAAAAAAAAAAAAAAAAAAAABCEBIFRoZSBtaW5pbXVtIGFjdGl2ZSBib25kIHRvIGJlY29tZSBhbmQgbWFpbnRhaW4gdGhlIHJvbGUgb2YgYSBub21pbmF0b3IuAEBNaW5WYWxpZGF0b3JCb25kAQBZAUAAAAAAAAAAAAAAAAAAAAAABCEBIFRoZSBtaW5pbXVtIGFjdGl2ZSBib25kIHRvIGJlY29tZSBhbmQgbWFpbnRhaW4gdGhlIHJvbGUgb2YgYSB2YWxpZGF0b3IuAEhNaW5pbXVtQWN0aXZlU3Rha2UBAFkBQAAAAAAAAAAAAAAAAAAAAAAEEQEgVGhlIG1pbmltdW0gYWN0aXZlIG5vbWluYXRvciBzdGFrZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGVsZWN0aW9uLgA0TWluQ29tbWlzc2lvbgEALQUQAAAAAAzoIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21taXNzaW9uIHRoYXQgdmFsaWRhdG9ycyBjYW4gc2V0LgCAIElmIHNldCB0byBgMGAsIG5vIGxpbWl0IGV4aXN0cy4AWEFyZU5vbWluYXRvcnNTbGFzaGFibGUBAF0BBAEcpCBXaGV0aGVyIG5vbWluYXRvcnMgYXJlIHNsYXNoYWJsZSBvciBub3QuAG0BIC0gV2hlbiBzZXQgdG8gYHRydWVgIChkZWZhdWx0KSwgbm9taW5hdG9ycyBhcmUgc2xhc2hlZCBhbG9uZyB3aXRoIHZhbGlkYXRvcnMgYW5kIG11c3Qgd2FpdCkBICAgdGhlIGZ1bGwgW2BDb25maWc6OkJvbmRpbmdEdXJhdGlvbmBdIGJlZm9yZSB3aXRoZHJhd2luZyB1bmJvbmRlZCBmdW5kcy4VASAtIFdoZW4gc2V0IHRvIGBmYWxzZWAsIG5vbWluYXRvcnMgYXJlIG5vdCBzbGFzaGVkLCBhbmQgY2FuIHVuYm9uZCBpbg0BICAgW2BDb25maWc6Ok5vbWluYXRvckZhc3RVbmJvbmREdXJhdGlvbmBdIGVyYXMgaW5zdGVhZCBvZiB0aGUgZnVsbFkBICAgW2BDb25maWc6OkJvbmRpbmdEdXJhdGlvbmBdIChzZWUgW2BTdGFraW5nSW50ZXJmYWNlOjpub21pbmF0b3JfYm9uZGluZ19kdXJhdGlvbmBdKS4AXEVyYXNOb21pbmF0b3JzU2xhc2hhYmxlAAEEBThdAQQAHNggUGVyLWVyYSBzbmFwc2hvdCBvZiB3aGV0aGVyIG5vbWluYXRvcnMgYXJlIHNsYXNoYWJsZS4AZQEgVGhpcyBpcyBjb3BpZWQgZnJvbSBbYEFyZU5vbWluYXRvcnNTbGFzaGFibGVgXSBhdCB0aGUgc3RhcnQgb2YgZWFjaCBlcmEuIFdoZW4gcHJvY2Vzc2luZ1EBIG9mZmVuY2VzLCB3ZSB1c2UgdGhlIHZhbHVlIGZyb20gdGhpcyBzdG9yYWdlIGZvciB0aGUgb2ZmZW5jZSBlcmEgdG8gZW5zdXJlIHRoYXQgdGhlOQEgc2xhc2hpbmcgcnVsZXMgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuY2UgYXJlIGFwcGxpZWQsIG5vdCB0aGUgY3VycmVudCBydWxlcy4AZQEgSWYgYW4gZW50cnkgZG9lcyBub3QgZXhpc3QgZm9yIGFuIGVyYSwgbm9taW5hdG9ycyBhcmUgYXNzdW1lZCB0byBiZSBzbGFzaGFibGUgKGRlZmF1bHQpLgAYTGVkZ2VyAAEEAgRFEAQAEEUBIE1hcCBmcm9tIGFsbCAodW5sb2NrZWQpICJjb250cm9sbGVyIiBhY2NvdW50cyB0byB0aGUgaW5mbyByZWdhcmRpbmcgdGhlIHN0YWtpbmcuAHUBIE5vdGU6IEFsbCB0aGUgcmVhZHMgYW5kIG11dGF0aW9ucyB0byB0aGlzIHN0b3JhZ2UgKk1VU1QqIGJlIGRvbmUgdGhyb3VnaCB0aGUgbWV0aG9kcyBleHBvc2Vk6CBieSBbYFN0YWtpbmdMZWRnZXJgXSB0byBlbnN1cmUgZGF0YSBhbmQgbG9jayBjb25zaXN0ZW5jeS4AFFBheWVlAAEEBQSRBgQADOQgV2hlcmUgdGhlIHJld2FyZCBwYXltZW50IHNob3VsZCBiZSBtYWRlLiBLZXllZCBieSBzdGFzaC4A0CBUV09YLU5PVEU6IFNBRkUgc2luY2UgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4AKFZhbGlkYXRvcnMBAQQFBJUGCAAADEUBIFRoZSBtYXAgZnJvbSAod2FubmFiZSkgdmFsaWRhdG9yIHN0YXNoIGtleSB0byB0aGUgcHJlZmVyZW5jZXMgb2YgdGhhdCB2YWxpZGF0b3IuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAFBDb3VudGVyRm9yVmFsaWRhdG9ycwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwAEhNYXhWYWxpZGF0b3JzQ291bnQAADgEAAwxASBUaGUgbWF4aW11bSB2YWxpZGF0b3IgY291bnQgYmVmb3JlIHdlIHN0b3AgYWxsb3dpbmcgbmV3IHZhbGlkYXRvcnMgdG8gam9pbi4A0CBXaGVuIHRoaXMgdmFsdWUgaXMgbm90IHNldCwgbm8gbGltaXRzIGFyZSBlbmZvcmNlZC4AQExhc3RWYWxpZGF0b3JFcmEAAQQFBDgEADBlASBUcmFja3MgdGhlIGxhc3QgZXJhIGluIHdoaWNoIGFuIGFjY291bnQgd2FzIGFjdGl2ZSBhcyBhIHZhbGlkYXRvciAoaW5jbHVkZWQgaW4gdGhlIGVyYSdzUCBleHBvc3VyZS9zbmFwc2hvdCkuAFkBIFRoaXMgaXMgdXNlZCB0byBlbmZvcmNlIHRoYXQgYWNjb3VudHMgd2hvIHdlcmUgcmVjZW50bHkgdmFsaWRhdG9ycyBtdXN0IHdhaXQgdGhlIGZ1bGxhASBbYENvbmZpZzo6Qm9uZGluZ0R1cmF0aW9uYF0gYmVmb3JlIHRoZWlyIGZ1bmRzIGNhbiBiZSB3aXRoZHJhd24sIGV2ZW4gaWYgdGhleSBzd2l0Y2ggdG+8IG5vbWluYXRvciByb2xlLiBUaGlzIHByZXZlbnRzIHZhbGlkYXRvcnMgZnJvbTqsIDEuIENvbW1pdHRpbmcgYSBzbGFzaGFibGUgb2ZmZW5jZSBpbiBlcmEgTnwgMi4gU3dpdGNoaW5nIHRvIG5vbWluYXRvciByb2xlZQEgMy4gVXNpbmcgdGhlIHNob3J0ZXIgbm9taW5hdG9yIHVuYm9uZGluZyBkdXJhdGlvbiB0byB3aXRoZHJhdyBmdW5kcyBiZWZvcmUgYmVpbmcgc2xhc2hlZABZASBVcGRhdGVkIHdoZW4gZXJhIHNuYXBzaG90cyBhcmUgY3JlYXRlZCAoaW4gYEVyYXNTdGFrZXJzUGFnZWRgL2BFcmFzU3Rha2Vyc092ZXJ2aWV3YCku+CBDbGVhbmVkIHVwIHdoZW4gdGhlIHN0YXNoIGlzIGtpbGxlZCAoZnVsbHkgd2l0aGRyYXduL3JlYXBlZCkuAChOb21pbmF0b3JzAAEEBQRJEAQATHUBIFRoZSBtYXAgZnJvbSBub21pbmF0b3Igc3Rhc2gga2V5IHRvIHRoZWlyIG5vbWluYXRpb24gcHJlZmVyZW5jZXMsIG5hbWVseSB0aGUgdmFsaWRhdG9ycyB0aGF0WCB0aGV5IHdpc2ggdG8gc3VwcG9ydC4AOQEgTm90ZSB0aGF0IHRoZSBrZXlzIG9mIHRoaXMgc3RvcmFnZSBtYXAgbWlnaHQgYmVjb21lIG5vbi1kZWNvZGFibGUgaW4gY2FzZSB0aGUtASBhY2NvdW50J3MgW2BOb21pbmF0aW9uc1F1b3RhOjpNYXhOb21pbmF0aW9uc2BdIGNvbmZpZ3VyYXRpb24gaXMgZGVjcmVhc2VkLpAgSW4gdGhpcyByYXJlIGNhc2UsIHRoZXNlIG5vbWluYXRvcnNlASBhcmUgc3RpbGwgZXhpc3RlbnQgaW4gc3RvcmFnZSwgdGhlaXIga2V5IGlzIGNvcnJlY3QgYW5kIHJldHJpZXZhYmxlIChpLmUuIGBjb250YWluc19rZXlgcQEgaW5kaWNhdGVzIHRoYXQgdGhleSBleGlzdCksIGJ1dCB0aGVpciB2YWx1ZSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlcmVmb3JlLCB0aGUgbm9uLWRlY29kYWJsZW0BIG5vbWluYXRvcnMgd2lsbCBlZmZlY3RpdmVseSBub3QtZXhpc3QsIHVudGlsIHRoZXkgcmUtc3VibWl0IHRoZWlyIHByZWZlcmVuY2VzIHN1Y2ggdGhhdCBpdAEBIGlzIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoZSBuZXdseSBzZXQgYENvbmZpZzo6TWF4Tm9taW5hdGlvbnNgLgBhASBUaGlzIGltcGxpZXMgdGhhdCBgOjppdGVyX2tleXMoKS5jb3VudCgpYCBhbmQgYDo6aXRlcigpLmNvdW50KClgIG1pZ2h0IHJldHVybiBkaWZmZXJlbnRtASB2YWx1ZXMgZm9yIHRoaXMgbWFwLiBNb3Jlb3ZlciwgdGhlIG1haW4gYDo6Y291bnQoKWAgaXMgYWxpZ25lZCB3aXRoIHRoZSBmb3JtZXIsIG5hbWVseSB0aGVsIG51bWJlciBvZiBrZXlzIHRoYXQgZXhpc3QuAG0BIExhc3RseSwgaWYgYW55IG9mIHRoZSBub21pbmF0b3JzIGJlY29tZSBub24tZGVjb2RhYmxlLCB0aGV5IGNhbiBiZSBjaGlsbGVkIGltbWVkaWF0ZWx5IHZpYbggW2BDYWxsOjpjaGlsbF9vdGhlcmBdIGRpc3BhdGNoYWJsZSBieSBhbnlvbmUuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAFBDb3VudGVyRm9yTm9taW5hdG9ycwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwADhWaXJ0dWFsU3Rha2VycwABBAUEEAQAGMggU3Rha2VycyB3aG9zZSBmdW5kcyBhcmUgbWFuYWdlZCBieSBvdGhlciBwYWxsZXRzLgB1ASBUaGlzIHBhbGxldCBkb2VzIG5vdCBhcHBseSBhbnkgbG9ja3Mgb24gdGhlbSwgdGhlcmVmb3JlIHRoZXkgYXJlIG9ubHkgdmlydHVhbGx5IGJvbmRlZC4gVGhleW0BIGFyZSBleHBlY3RlZCB0byBiZSBrZXlsZXNzIGFjY291bnRzIGFuZCBoZW5jZSBzaG91bGQgbm90IGJlIGFsbG93ZWQgdG8gbXV0YXRlIHRoZWlyIGxlZGdlcnEBIGRpcmVjdGx5IHZpYSB0aGlzIHBhbGxldC4gSW5zdGVhZCwgdGhlc2UgYWNjb3VudHMgYXJlIG1hbmFnZWQgYnkgb3RoZXIgcGFsbGV0cyBhbmQgYWNjZXNzZWQpASB2aWEgbG93IGxldmVsIGFwaXMuIFdlIGtlZXAgdHJhY2sgb2YgdGhlbSB0byBkbyBtaW5pbWFsIGludGVncml0eSBjaGVja3MuAGBDb3VudGVyRm9yVmlydHVhbFN0YWtlcnMBADgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcABITWF4Tm9taW5hdG9yc0NvdW50AAA4BAAMMQEgVGhlIG1heGltdW0gbm9taW5hdG9yIGNvdW50IGJlZm9yZSB3ZSBzdG9wIGFsbG93aW5nIG5ldyB2YWxpZGF0b3JzIHRvIGpvaW4uANAgV2hlbiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIG5vIGxpbWl0cyBhcmUgZW5mb3JjZWQuAChDdXJyZW50RXJhAAA4BAAQfCBUaGUgY3VycmVudCBwbGFubmVkIGVyYSBpbmRleC4AZQEgVGhpcyBpcyB0aGUgbGF0ZXN0IHBsYW5uZWQgZXJhLCBkZXBlbmRpbmcgb24gaG93IHRoZSBTZXNzaW9uIHBhbGxldCBxdWV1ZXMgdGhlIHZhbGlkYXRvcoAgc2V0LCBpdCBtaWdodCBiZSBhY3RpdmUgb3Igbm90LgAkQWN0aXZlRXJhAABNEAQAENggVGhlIGFjdGl2ZSBlcmEgaW5mb3JtYXRpb24sIGl0IGhvbGRzIGluZGV4IGFuZCBzdGFydC4AWQEgVGhlIGFjdGl2ZSBlcmEgaXMgdGhlIGVyYSBiZWluZyBjdXJyZW50bHkgcmV3YXJkZWQuIFZhbGlkYXRvciBzZXQgb2YgdGhpcyBlcmEgbXVzdCBiZZggZXF1YWwgdG8gd2hhdCBpcyBSQydzIHNlc3Npb24gcGFsbGV0LgAoQm9uZGVkRXJhcwEAURAEABAlASBBIG1hcHBpbmcgZnJvbSBzdGlsbC1ib25kZWQgZXJhcyB0byB0aGUgZmlyc3Qgc2Vzc2lvbiBpbmRleCBvZiB0aGF0IGVyYS4AyCBNdXN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGZvciBlcmFzIGZvciB0aGUgcmFuZ2U6vCBgW2FjdGl2ZV9lcmEgLSBib3VuZGluZ19kdXJhdGlvbjsgYWN0aXZlX2VyYV1gAExFcmFzU3Rha2Vyc092ZXJ2aWV3AAEIBQU5DlUQBAAwuCBTdW1tYXJ5IG9mIHZhbGlkYXRvciBleHBvc3VyZSBhdCBhIGdpdmVuIGVyYS4AcQEgVGhpcyBjb250YWlucyB0aGUgdG90YWwgc3Rha2UgaW4gc3VwcG9ydCBvZiB0aGUgdmFsaWRhdG9yIGFuZCB0aGVpciBvd24gc3Rha2UuIEluIGFkZGl0aW9uLHUBIGl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ2V0IHRoZSBudW1iZXIgb2Ygbm9taW5hdG9ycyBiYWNraW5nIHRoaXMgdmFsaWRhdG9yIGFuZCB0aGUgbnVtYmVyIG9maQEgZXhwb3N1cmUgcGFnZXMgdGhleSBhcmUgZGl2aWRlZCBpbnRvLiBUaGUgcGFnZSBjb3VudCBpcyB1c2VmdWwgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2asIHBhZ2VzIG9mIHJld2FyZHMgdGhhdCBuZWVkcyB0byBiZSBjbGFpbWVkLgBhASBUaGlzIGlzIGtleWVkIGZpcnN0IGJ5IHRoZSBlcmEgaW5kZXggdG8gYWxsb3cgYnVsayBkZWxldGlvbiBhbmQgdGhlbiB0aGUgc3Rhc2ggYWNjb3VudC6gIFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHRocm91Z2ggYEVyYXNgLgDMIElzIGl0IHJlbW92ZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuQQEgSWYgc3Rha2VycyBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIGVtcHR5IG92ZXJ2aWV3IGlzIHJldHVybmVkLgBARXJhc1N0YWtlcnNQYWdlZAABDAUFBTEQWRAEABjAIFBhZ2luYXRlZCBleHBvc3VyZSBvZiBhIHZhbGlkYXRvciBhdCBnaXZlbiBlcmEuAHEBIFRoaXMgaXMga2V5ZWQgZmlyc3QgYnkgdGhlIGVyYSBpbmRleCB0byBhbGxvdyBidWxrIGRlbGV0aW9uLCB0aGVuIHN0YXNoIGFjY291bnQgYW5kIGZpbmFsbHnIIHRoZSBwYWdlLiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB0aHJvdWdoIGBFcmFzYC4A1CBUaGlzIGlzIGNsZWFyZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuADhDbGFpbWVkUmV3YXJkcwEBCAUFOQ5pEAQAGNwgSGlzdG9yeSBvZiBjbGFpbWVkIHBhZ2VkIHJld2FyZHMgYnkgZXJhIGFuZCB2YWxpZGF0b3IuAGkBIFRoaXMgaXMga2V5ZWQgYnkgZXJhIGFuZCB2YWxpZGF0b3Igc3Rhc2ggd2hpY2ggbWFwcyB0byB0aGUgc2V0IG9mIHBhZ2UgaW5kZXhlcyB3aGljaCBoYXZlOCBiZWVuIGNsYWltZWQuAMwgSXQgaXMgcmVtb3ZlZCBhZnRlciBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy4ASEVyYXNWYWxpZGF0b3JQcmVmcwEBCAUFOQ6VBggAABQFASBFeHBvc3VyZSBvZiB2YWxpZGF0b3IgYXQgZXJhIHdpdGggdGhlIHByZWZlcmVuY2VzIG9mIHZhbGlkYXRvcnMuAGEBIFRoaXMgaXMga2V5ZWQgZmlyc3QgYnkgdGhlIGVyYSBpbmRleCB0byBhbGxvdyBidWxrIGRlbGV0aW9uIGFuZCB0aGVuIHRoZSBzdGFzaCBhY2NvdW50LgDMIElzIGl0IHJlbW92ZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuAExFcmFzVmFsaWRhdG9yUmV3YXJkAAEEBThZAQQADC0BIFRoZSB0b3RhbCB2YWxpZGF0b3IgZXJhIHBheW91dCBmb3IgdGhlIGxhc3QgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuACEBIEVyYXMgdGhhdCBoYXZlbid0IGZpbmlzaGVkIHlldCBvciBoYXMgYmVlbiByZW1vdmVkIGRvZXNuJ3QgaGF2ZSByZXdhcmQuAEBFcmFzUmV3YXJkUG9pbnRzAQEEBThtEBQAAAAAAAjQIFJld2FyZHMgZm9yIHRoZSBsYXN0IFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLiUBIElmIHJld2FyZCBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIDAgcmV3YXJkIGlzIHJldHVybmVkLgA4RXJhc1RvdGFsU3Rha2UBAQQFOFkBQAAAAAAAAAAAAAAAAAAAAAAIEQEgVGhlIHRvdGFsIGFtb3VudCBzdGFrZWQgZm9yIHRoZSBsYXN0IFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLh0BIElmIHRvdGFsIGhhc24ndCBiZWVuIHNldCBvciBoYXMgYmVlbiByZW1vdmVkIHRoZW4gMCBzdGFrZSBpcyByZXR1cm5lZC4AIEZvcmNlRXJhAQCJCwQABFQgTW9kZSBvZiBlcmEgZm9yY2luZy4AQE1heFN0YWtlZFJld2FyZHMAAKEGBAAMGQEgTWF4aW11bSBzdGFrZWQgcmV3YXJkcywgaS5lLiB0aGUgcGVyY2VudGFnZSBvZiB0aGUgZXJhIGluZmxhdGlvbiB0aGF0bCBpcyB1c2VkIGZvciBzdGFrZSByZXdhcmRzLqwgU2VlIFtFcmEgcGF5b3V0XSguL2luZGV4Lmh0bWwjZXJhLXBheW91dCkuAExTbGFzaFJld2FyZEZyYWN0aW9uAQAtBRAAAAAADPggVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIHNsYXNoIHRoYXQgaXMgZGlzdHJpYnV0ZWQgdG8gcmVwb3J0ZXJzLgDkIFRoZSByZXN0IG9mIHRoZSBzbGFzaGVkIHZhbHVlIGlzIGhhbmRsZWQgYnkgdGhlIGBTbGFzaGAuAExDYW5jZWxlZFNsYXNoUGF5b3V0AQBZAUAAAAAAAAAAAAAAAAAAAAAACBUBIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgZ2l2ZW4gdG8gcmVwb3J0ZXJzIG9mIGEgc2xhc2ggZXZlbnQgd2hpY2ggd2Fz7CBjYW5jZWxlZCBieSBleHRyYW9yZGluYXJ5IGNpcmN1bXN0YW5jZXMgKGUuZy4gZ292ZXJuYW5jZSkuADBPZmZlbmNlUXVldWUAAQgFBTkOeRAEAChNASBTdG9yZXMgcmVwb3J0ZWQgb2ZmZW5jZXMgaW4gYSBxdWV1ZSB1bnRpbCB0aGV5IGFyZSBwcm9jZXNzZWQgaW4gc3Vic2VxdWVudCBibG9ja3MuAGUBIEVhY2ggb2ZmZW5jZSBpcyByZWNvcmRlZCB1bmRlciB0aGUgY29ycmVzcG9uZGluZyBlcmEgaW5kZXggYW5kIHRoZSBvZmZlbmRpbmcgdmFsaWRhdG9yJ3NxASBhY2NvdW50LiBJZiBhbiBvZmZlbmNlIHNwYW5zIG11bHRpcGxlIHBhZ2VzLCBvbmx5IG9uZSBwYWdlIGlzIHByb2Nlc3NlZCBhdCBhIHRpbWUuIE9mZmVuY2VzPQEgYXJlIGhhbmRsZWQgc2VxdWVudGlhbGx5LCB3aXRoIHRoZWlyIGFzc29jaWF0ZWQgc2xhc2hlcyBjb21wdXRlZCBhbmQgc3RvcmVkIGluUQEgYFVuYXBwbGllZFNsYXNoZXNgLiBUaGVzZSBzbGFzaGVzIGFyZSB0aGVuIGFwcGxpZWQgaW4gYSBmdXR1cmUgZXJhIGFzIGRldGVybWluZWQgYnlYIGBTbGFzaERlZmVyRHVyYXRpb25gLgBRASBBbnkgb2ZmZW5jZXMgdGllZCB0byBhbiBlcmEgb2xkZXIgdGhhbiBgQm9uZGluZ0R1cmF0aW9uYCBhcmUgYXV0b21hdGljYWxseSBkcm9wcGVkLtAgUHJvY2Vzc2luZyBhbHdheXMgcHJpb3JpdGl6ZXMgdGhlIG9sZGVzdCBlcmEgZmlyc3QuAEBPZmZlbmNlUXVldWVFcmFzAAB9EAQALHUBIFRyYWNrcyB0aGUgZXJhcyB0aGF0IGNvbnRhaW4gb2ZmZW5jZXMgaW4gYE9mZmVuY2VRdWV1ZWAsIHNvcnRlZCBmcm9tICoqZWFybGllc3QgdG8gbGF0ZXN0KiouAE0BIC0gVGhpcyBlbnN1cmVzIGVmZmljaWVudCByZXRyaWV2YWwgb2YgdGhlIG9sZGVzdCBvZmZlbmNlIHdpdGhvdXQgaXRlcmF0aW5nIHRocm91Z2hAIGBPZmZlbmNlUXVldWVgLmUBIC0gV2hlbiBhIG5ldyBvZmZlbmNlIGlzIGFkZGVkIHRvIGBPZmZlbmNlUXVldWVgLCBpdHMgZXJhIGlzICoqaW5zZXJ0ZWQgaW4gc29ydGVkIG9yZGVyKipgIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuQQEgLSBXaGVuIGFsbCBvZmZlbmNlcyBmb3IgYW4gZXJhIGFyZSBwcm9jZXNzZWQsIGl0IGlzICoqcmVtb3ZlZCoqIGZyb20gdGhpcyBsaXN0LhUBIC0gVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoaXMgdmVjdG9yIGlzIGJvdW5kZWQgYnkgYEJvbmRpbmdEdXJhdGlvbmAuAHEBIFRoaXMgZWxpbWluYXRlcyB0aGUgbmVlZCBmb3IgZXhwZW5zaXZlIGl0ZXJhdGlvbiBhbmQgc29ydGluZyB3aGVuIGZldGNoaW5nIHRoZSBuZXh0IG9mZmVuY2UwIHRvIHByb2Nlc3MuAERQcm9jZXNzaW5nT2ZmZW5jZQAAgRAEADAdASBUcmFja3MgdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgb2ZmZW5jZSByZWNvcmQgZnJvbSB0aGUgYE9mZmVuY2VRdWV1ZWAuAE0BIC0gV2hlbiBwcm9jZXNzaW5nIG9mZmVuY2VzLCBhbiBvZmZlbmNlIHJlY29yZCBpcyAqKnBvcHBlZCoqIGZyb20gdGhlIG9sZGVzdCBlcmEgaW6IICAgYE9mZmVuY2VRdWV1ZWAgYW5kIHN0b3JlZCBoZXJlLnUBIC0gVGhlIGZ1bmN0aW9uIGBwcm9jZXNzX29mZmVuY2VgIHJlYWRzIGZyb20gdGhpcyBzdG9yYWdlLCBwcm9jZXNzaW5nIG9uZSBwYWdlIG9mIGV4cG9zdXJlIGF0KCAgIGEgdGltZS5lASAtIEFmdGVyIHByb2Nlc3NpbmcgYSBwYWdlLCB0aGUgYGV4cG9zdXJlX3BhZ2VgIGNvdW50IGlzICoqZGVjcmVtZW50ZWQqKiB1bnRpbCBpdCByZWFjaGVzICAgIHplcm8uJQEgLSBPbmNlIGZ1bGx5IHByb2Nlc3NlZCwgdGhlIG9mZmVuY2UgcmVjb3JkIGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0b3JhZ2UuAGUBIFRoaXMgZW5zdXJlcyB0aGF0IG9mZmVuY2VzIGFyZSBwcm9jZXNzZWQgaW5jcmVtZW50YWxseSwgcHJldmVudGluZyBleGNlc3NpdmUgY29tcHV0YXRpb278IGluIGEgc2luZ2xlIGJsb2NrIHdoaWxlIG1haW50YWluaW5nIGNvcnJlY3Qgc2xhc2hpbmcgYmVoYXZpb3IuAEBVbmFwcGxpZWRTbGFzaGVzAAEIBQWFEIkQBAAExCBBbGwgdW5hcHBsaWVkIHNsYXNoZXMgdGhhdCBhcmUgcXVldWVkIGZvciBsYXRlci4AQENhbmNlbGxlZFNsYXNoZXMBAQQFOJEQBAAUUQEgQ2FuY2VsbGVkIHNsYXNoZXMgYnkgZXJhIGFuZCB2YWxpZGF0b3Igd2l0aCBtYXhpbXVtIHNsYXNoIGZyYWN0aW9uIHRvIGJlIGNhbmNlbGxlZC4ARQEgV2hlbiBzbGFzaGVzIGFyZSBjYW5jZWxsZWQgYnkgZ292ZXJuYW5jZSwgdGhpcyBzdG9yZXMgdGhlIGVyYSBhbmQgdGhlIHZhbGlkYXRvcnNVASB3aG9zZSBzbGFzaGVzIHNob3VsZCBiZSBjYW5jZWxsZWQsIGFsb25nIHdpdGggdGhlIG1heGltdW0gc2xhc2ggZnJhY3Rpb24gdGhhdCBzaG91bGSEIGJlIGNhbmNlbGxlZCBmb3IgZWFjaCB2YWxpZGF0b3IuAExWYWxpZGF0b3JTbGFzaEluRXJhAAEIBQU5DrUJBAAIRQEgQWxsIHNsYXNoaW5nIGV2ZW50cyBvbiB2YWxpZGF0b3JzLCBtYXBwZWQgYnkgZXJhIHRvIHRoZSBoaWdoZXN0IHNsYXNoIHByb3BvcnRpb25wIGFuZCBzbGFzaCB2YWx1ZSBvZiB0aGUgZXJhLgA4Q2hpbGxUaHJlc2hvbGQAAKEGBAAMUQEgVGhlIHRocmVzaG9sZCBmb3Igd2hlbiB1c2VycyBjYW4gc3RhcnQgY2FsbGluZyBgY2hpbGxfb3RoZXJgIGZvciBvdGhlciB2YWxpZGF0b3JzIC9ZASBub21pbmF0b3JzLiBUaGUgdGhyZXNob2xkIGlzIGNvbXBhcmVkIHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMgLyBub21pbmF0b3JzKQEgKGBDb3VudEZvcipgKSBpbiB0aGUgc3lzdGVtIGNvbXBhcmVkIHRvIHRoZSBjb25maWd1cmVkIG1heCAoYE1heCpDb3VudGApLgBMVm90ZXJTbmFwc2hvdFN0YXR1cwEAlRAEAhCAIFZvdGVyIHNuYXBzaG90IHByb2dyZXNzIHN0YXR1cy4AaQEgSWYgdGhlIHN0YXR1cyBpcyBgT25nb2luZ2AsIGl0IGtlZXBzIGEgY3Vyc29yIG9mIHRoZSBsYXN0IHZvdGVyIHJldHJpZXZlZCB0byBwcm9jZWVkIHdoZW6EIGNyZWF0aW5nIHRoZSBuZXh0IHNuYXBzaG90IHBhZ2UuAEBOZXh0RWxlY3Rpb25QYWdlAAA4BAAYAQEgS2VlcHMgdHJhY2sgb2YgYW4gb25nb2luZyBtdWx0aS1wYWdlIGVsZWN0aW9uIHNvbHV0aW9uIHJlcXVlc3QuAGUBIElmIGBTb21lKF8pYGAsIGl0IGlzIHRoZSBuZXh0IHBhZ2UgdGhhdCB3ZSBpbnRlbmQgdG8gZWxlY3QuIElmIGBOb25lYCwgd2UgYXJlIG5vdCBpbiB0aGVIIGVsZWN0aW9uIHByb2Nlc3MuADkBIFRoaXMgaXMgb25seSBzZXQgaW4gbXVsdGktYmxvY2sgZWxlY3Rpb25zLiBTaG91bGQgYWx3YXlzIGJlIGBOb25lYCBvdGhlcndpc2UuAEBFbGVjdGFibGVTdGFzaGVzAQCZEAQABFEBIEEgYm91bmRlZCBsaXN0IG9mIHRoZSAiZWxlY3RhYmxlIiBzdGFzaGVzIHRoYXQgcmVzdWx0ZWQgZnJvbSBhIHN1Y2Nlc3NmdWwgZWxlY3Rpb24uADxFcmFQcnVuaW5nU3RhdGUAAQQFOJ0QBAAERQEgVHJhY2tzIHRoZSBjdXJyZW50IHN0ZXAgb2YgZXJhIHBydW5pbmcgcHJvY2VzcyBmb3IgZWFjaCBlcmEgYmVpbmcgbGF6aWx5IHBydW5lZC4AAY0GAAGFCwAwMEhpc3RvcnlEZXB0aDgQVAAAADSMIE51bWJlciBvZiBlcmFzIHRvIGtlZXAgaW4gaGlzdG9yeS4A6CBGb2xsb3dpbmcgaW5mb3JtYXRpb24gaXMga2VwdCBmb3IgZXJhcyBpbiBgW2N1cnJlbnRfZXJhIC0pASBIaXN0b3J5RGVwdGgsIGN1cnJlbnRfZXJhXWA6IGBFcmFzVmFsaWRhdG9yUHJlZnNgLCBgRXJhc1ZhbGlkYXRvclJld2FyZGAs4CBgRXJhc1Jld2FyZFBvaW50c2AsIGBFcmFzVG90YWxTdGFrZWAsIGBDbGFpbWVkUmV3YXJkc2AsrCBgRXJhc1N0YWtlcnNQYWdlZGAsIGBFcmFzU3Rha2Vyc092ZXJ2aWV3YC4A5CBNdXN0IGJlIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGVyYXMgZGVsYXllZCBieSBzZXNzaW9uLvggSS5lLiBhY3RpdmUgZXJhIG11c3QgYWx3YXlzIGJlIGluIGhpc3RvcnkuIEkuZS4gYGFjdGl2ZV9lcmEgPsQgY3VycmVudF9lcmEgLSBoaXN0b3J5X2RlcHRoYCBtdXN0IGJlIGd1YXJhbnRlZWQuABEBIElmIG1pZ3JhdGluZyBhbiBleGlzdGluZyBwYWxsZXQgZnJvbSBzdG9yYWdlIHZhbHVlIHRvIGNvbmZpZyB2YWx1ZSzsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBzYW1lIHZhbHVlIG9yIGdyZWF0ZXIgYXMgaW4gc3RvcmFnZS4AOFNlc3Npb25zUGVyRXJhOBAGAAAABC0BIE51bWJlciBvZiBzZXNzaW9ucyBwZXIgZXJhLCBhcyBwZXIgdGhlIHByZWZlcmVuY2VzIG9mIHRoZSAqKnJlbGF5IGNoYWluKiouAERQbGFubmluZ0VyYU9mZnNldDgQBgAAADhRASBOdW1iZXIgb2Ygc2Vzc2lvbnMgYmVmb3JlIHRoZSBlbmQgb2YgYW4gZXJhIHdoZW4gdGhlIGVsZWN0aW9uIGZvciB0aGUgbmV4dCBlcmEgd2lsbBwgc3RhcnQuAF0BIC0gVGhpcyBkZXRlcm1pbmVzIGhvdyBtYW55IHNlc3Npb25zICoqYmVmb3JlKiogdGhlIGxhc3Qgc2Vzc2lvbiBvZiB0aGUgZXJhIHRoZSBzdGFraW5nhCAgIGVsZWN0aW9uIHByb2Nlc3Mgc2hvdWxkIGJlZ2luLk0BIC0gVGhlIHZhbHVlIGlzIGJvdW5kZWQgYmV0d2VlbiAqKjEqKiAoZWxlY3Rpb24gc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3RdASAgIHNlc3Npb24pIGFuZCBgU2Vzc2lvbnNQZXJFcmFgIChlbGVjdGlvbiBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlyc3Qgc2Vzc2lvbjwgICBvZiB0aGUgZXJhKS4ANCAjIyMgRXhhbXBsZTpJASAtIElmIGBTZXNzaW9uc1BlckVyYSA9IDZgIGFuZCBgUGxhbm5pbmdFcmFPZmZzZXQgPSAxYCwgdGhlIGVsZWN0aW9uIHN0YXJ0cyBhdCB0aGWQICAgYmVnaW5uaW5nIG9mIHNlc3Npb24gYDYgLSAxID0gNWAuXQEgLSBJZiBgUGxhbm5pbmdFcmFPZmZzZXQgPSA2YCwgdGhlIGVsZWN0aW9uIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHNlc3Npb24gYDYgLSA2ID3oICAgMGAsIG1lYW5pbmcgaXQgc3RhcnRzIGF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiB0aGUgZXJhLgA8Qm9uZGluZ0R1cmF0aW9uOBAcAAAAFOQgTnVtYmVyIG9mIGVyYXMgdGhhdCBzdGFrZWQgZnVuZHMgbXVzdCByZW1haW4gYm9uZGVkIGZvci4ATQEgVGhpcyBpcyB0aGUgYm9uZGluZyBkdXJhdGlvbiBmb3IgdmFsaWRhdG9ycy4gTm9taW5hdG9ycyBtYXkgaGF2ZSBhIHNob3J0ZXIgYm9uZGluZwEBIGR1cmF0aW9uIHdoZW4gW2BBcmVOb21pbmF0b3JzU2xhc2hhYmxlYF0gaXMgc2V0IHRvIGBmYWxzZWAgKHNlZcwgW2BTdGFraW5nSW50ZXJmYWNlOjpub21pbmF0b3JfYm9uZGluZ19kdXJhdGlvbmBdKS4AbE5vbWluYXRvckZhc3RVbmJvbmREdXJhdGlvbjgQAgAAACAtASBOdW1iZXIgb2YgZXJhcyBub21pbmF0b3JzIG11c3Qgd2FpdCB0byB1bmJvbmQgd2hlbiB0aGV5IGFyZSBub3Qgc2xhc2hhYmxlLgBFASBUaGlzIGR1cmF0aW9uIGlzIHVzZWQgZm9yIG5vbWluYXRvcnMgd2hlbiBbYEFyZU5vbWluYXRvcnNTbGFzaGFibGVgXSBpcyBgZmFsc2VgLl0BIFdoZW4gbm9taW5hdG9ycyBhcmUgc2xhc2hhYmxlLCB0aGV5IHVzZSB0aGUgZnVsbCBbYENvbmZpZzo6Qm9uZGluZ0R1cmF0aW9uYF0gdG8gZW5zdXJl0CBzbGFzaGVzIGNhbiBiZSBhcHBsaWVkIGR1cmluZyB0aGUgdW5ib25kaW5nIHBlcmlvZC4APQEgU2V0dGluZyB0aGlzIHRvIGEgbG93ZXIgdmFsdWUgKGUuZy4sIDEgZXJhKSBhbGxvd3MgZm9yIGZhc3RlciB3aXRoZHJhd2FscyB3aGVutCBub21pbmF0b3JzIGFyZSBub3Qgc3ViamVjdCB0byBzbGFzaGluZyByaXNrLgBIU2xhc2hEZWZlckR1cmF0aW9uOBAbAAAAEAEBIE51bWJlciBvZiBlcmFzIHRoYXQgc2xhc2hlcyBhcmUgZGVmZXJyZWQgYnksIGFmdGVyIGNvbXB1dGF0aW9uLgANASBUaGlzIHNob3VsZCBiZSBsZXNzIHRoYW4gdGhlIGJvbmRpbmcgZHVyYXRpb24uIFNldCB0byAwIGlmIHNsYXNoZXMVASBzaG91bGQgYmUgYXBwbGllZCBpbW1lZGlhdGVseSwgd2l0aG91dCBvcHBvcnR1bml0eSBmb3IgaW50ZXJ2ZW50aW9uLgBMTWF4RXhwb3N1cmVQYWdlU2l6ZTgQAAIAACywIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBgVDo6RXhwb3N1cmVQYWdlYC4AKQEgQW4gYEV4cG9zdXJlUGFnZWAgaXMgd2Vha2x5IGJvdW5kZWQgdG8gYSBtYXhpbXVtIG9mIGBNYXhFeHBvc3VyZVBhZ2VTaXplYDAgbm9taW5hdG9ycy4AIQEgRm9yIG9sZGVyIG5vbi1wYWdlZCBleHBvc3VyZSwgYSByZXdhcmQgcGF5b3V0IHdhcyByZXN0cmljdGVkIHRvIHRoZSB0b3AhASBgTWF4RXhwb3N1cmVQYWdlU2l6ZWAgbm9taW5hdG9ycy4gVGhpcyBpcyB0byBsaW1pdCB0aGUgaS9vIGNvc3QgZm9yIHRoZUggbm9taW5hdG9yIHBheW91dC4APQEgTm90ZTogYE1heEV4cG9zdXJlUGFnZVNpemVgIGlzIHVzZWQgdG8gYm91bmQgYENsYWltZWRSZXdhcmRzYCBhbmQgaXMgdW5zYWZlIHRvrCByZWR1Y2Ugd2l0aG91dCBoYW5kbGluZyBpdCBpbiBhIG1pZ3JhdGlvbi4APE1heFZhbGlkYXRvclNldDgQ6AMAABAVASBUaGUgYWJzb2x1dGUgbWF4aW11bSBvZiB3aW5uZXIgdmFsaWRhdG9ycyB0aGlzIHBhbGxldCBzaG91bGQgcmV0dXJuLgBBASBBcyB0aGlzIHBhbGxldCBzdXBwb3J0cyBtdWx0aS1ibG9jayBlbGVjdGlvbiwgdGhlIHNldCBvZiB3aW5uZXIgdmFsaWRhdG9ycyAqcGVyjCBlbGVjdGlvbiogaXMgYm91bmRlZCBieSB0aGlzIHR5cGUuAEhNYXhVbmxvY2tpbmdDaHVua3M4ECAAAAAoBQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGB1bmxvY2tpbmdgIGNodW5rcyBhIFtgU3Rha2luZ0xlZGdlcmBdIGNhbgkBIGhhdmUuIEVmZmVjdGl2ZWx5IGRldGVybWluZXMgaG93IG1hbnkgdW5pcXVlIGVyYXMgYSBzdGFrZXIgbWF5IGJlOCB1bmJvbmRpbmcgaW4uAPggTm90ZTogYE1heFVubG9ja2luZ0NodW5rc2AgaXMgdXNlZCBhcyB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZQEBIGBCb3VuZGVkVmVjYCBpdGVtIGBTdGFraW5nTGVkZ2VyLnVubG9ja2luZ2AuIFNldHRpbmcgdGhpcyB2YWx1ZQUBIGxvd2VyIHRoYW4gdGhlIGV4aXN0aW5nIHZhbHVlIGNhbiBsZWFkIHRvIGluY29uc2lzdGVuY2llcyBpbiB0aGUJASBgU3Rha2luZ0xlZGdlcmAgYW5kIHdpbGwgbmVlZCB0byBiZSBoYW5kbGVkIHByb3Blcmx5IGluIGEgcnVudGltZQUBIG1pZ3JhdGlvbi4gVGhlIHRlc3QgYHJlZHVjaW5nX21heF91bmxvY2tpbmdfY2h1bmtzX2FicnVwdGAgc2hvd3M0IHRoaXMgZWZmZWN0LgBATWF4SW52dWxuZXJhYmxlczgQFAAAAASsIE1heGltdW0gbnVtYmVyIG9mIGludnVsbmVyYWJsZSB2YWxpZGF0b3JzLgA4TWF4RXJhRHVyYXRpb24oIACKuQcAAAAAILggTWF4aW11bSBhbGxvd2VkIGVyYSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuAFEBIFRoaXMgcHJvdmlkZXMgYSBkZWZlbnNpdmUgdXBwZXIgYm91bmQgdG8gY2FwIHRoZSBlZmZlY3RpdmUgZXJhIGR1cmF0aW9uLCBwcmV2ZW50aW5nYQEgZXhjZXNzaXZlbHkgbG9uZyBlcmFzIGZyb20gY2F1c2luZyBydW5hd2F5IGluZmxhdGlvbiAoZS5nLiwgZHVlIHRvIGJ1Z3MpLiBJZiB0aGUgYWN0dWFsFQEgZXJhIGR1cmF0aW9uIGV4Y2VlZHMgdGhpcyB2YWx1ZSwgaXQgd2lsbCBiZSBjbGFtcGVkIHRvIHRoaXMgbWF4aW11bS4AAQEgRXhhbXBsZTogRm9yIGFuIGlkZWFsIGVyYSBkdXJhdGlvbiBvZiAyNCBob3VycyAoODYsNDAwLDAwMCBtcykssCB0aGlzIGNhbiBiZSBzZXQgdG8gNjA0LDgwMCwwMDAgbXMgKDcgZGF5cykuADxNYXhQcnVuaW5nSXRlbXM4EGQAAAAUFQEgTWF4aW11bSBudW1iZXIgb2Ygc3RvcmFnZSBpdGVtcyB0aGF0IGNhbiBiZSBwcnVuZWQgaW4gYSBzaW5nbGUgY2FsbC4AWQEgVGhpcyBjb250cm9scyBob3cgbWFueSBzdG9yYWdlIGl0ZW1zIGNhbiBiZSBkZWxldGVkIGluIGVhY2ggY2FsbCB0byBgcHJ1bmVfZXJhX3N0ZXBgLk0BIFRoaXMgc2hvdWxkIGJlIHNldCB0byBhIGNvbnNlcnZhdGl2ZSB2YWx1ZSAoZS5nLiwgMTAwLTUwMCBpdGVtcykgdG8gZW5zdXJlIHBydW5pbmdVASBkb2Vzbid0IGNvbnN1bWUgdG9vIG11Y2ggYmxvY2sgc3BhY2UuIFRoZSBhY3R1YWwgd2VpZ2h0IGlzIGRldGVybWluZWQgYnkgYmVuY2htYXJrcy4AAaEQAAQ8Q3VycmVuY3lCYWxhbmNlWQEIUQEgSnVzdCB0aGUgYEN1cnJlbmN5OjpCYWxhbmNlYCB0eXBlOyB3ZSBoYXZlIHRoaXMgaXRlbSB0byBhbGxvdyB1cyB0byBjb25zdHJhaW4gaXQgdG80IGBGcm9tPHU2ND5gLgBZAAAYUmV2aXZlARhSZXZpdmU0MFByaXN0aW5lQ29kZQABBAZAGAQADMwgQSBtYXBwaW5nIGZyb20gYSBjb250cmFjdCdzIGNvZGUgaGFzaCB0byBpdHMgY29kZS4hASBUaGUgY29kZSdzIHNpemUgaXMgYm91bmRlZCBieSBbYGNyYXRlOjpsaW1pdHM6OkJMT0JfQllURVNgXSBmb3IgUFZNIGFuZPggW2ByZXZtOjpwcmltaXRpdmVzOjplaXAxNzA6Ok1BWF9DT0RFX1NJWkVgXSBmb3IgRVZNIGJ5dGVjb2RlLgAoQ29kZUluZm9PZgABBAZApRAEAATgIEEgbWFwcGluZyBmcm9tIGEgY29udHJhY3QncyBjb2RlIGhhc2ggdG8gaXRzIGNvZGUgaW5mby4ANEFjY291bnRJbmZvT2YAAQQG3QatEAQABPwgVGhlIGRhdGEgYXNzb2NpYXRlZCB0byBhIGNvbnRyYWN0IG9yIGV4dGVybmFsbHkgb3duZWQgYWNjb3VudC4APEltbXV0YWJsZURhdGFPZgABBAbdBrkQBAAE0CBUaGUgaW1tdXRhYmxlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYWNjb3VudC4ANERlbGV0aW9uUXVldWUAAQQFOC0EBAAQyCBFdmljdGVkIGNvbnRyYWN0cyB0aGF0IGF3YWl0IGNoaWxkIHRyaWUgZGVsZXRpb24uAEkBIENoaWxkIHRyaWUgZGVsZXRpb24gaXMgYSBoZWF2eSBvcGVyYXRpb24gZGVwZW5kaW5nIG9uIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpdGVtc0EBIHN0b3JlZCBpbiBzYWlkIHRyaWUuIFRoZXJlZm9yZSB0aGlzIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgbGF6aWx5IGluIGBvbl9pZGxlYC4AUERlbGV0aW9uUXVldWVDb3VudGVyAQC9ECAAAAAAAAAAAAhNASBBIHBhaXIgb2YgbW9ub3RvbmljIGNvdW50ZXJzIHVzZWQgdG8gdHJhY2sgdGhlIGxhdGVzdCBjb250cmFjdCBtYXJrZWQgZm9yIGRlbGV0aW9uqCBhbmQgdGhlIGxhdGVzdCBkZWxldGVkIGNvbnRyYWN0IGluIHF1ZXVlLgA8T3JpZ2luYWxBY2NvdW50AAEEBt0GBAQAGNggTWFwIGEgRXRoZXJldW0gYWRkcmVzcyB0byBpdHMgb3JpZ2luYWwgYEFjY291bnRJZDMyYC4ARQEgV2hlbiBkZXJpdmluZyBhIGBIMTYwYCBmcm9tIGFuIGBBY2NvdW50SWQzMmAgd2UgdXNlIGEgaGFzaCBmdW5jdGlvbi4gSW4gb3JkZXIgdG8xASByZWNvbnN0cnVjdCB0aGUgb3JpZ2luYWwgYWNjb3VudCB3ZSBuZWVkIHRvIHN0b3JlIHRoZSByZXZlcnNlIG1hcHBpbmcgaGVyZS4ZASBSZWdpc3RlciB5b3VyIGBBY2NvdW50SWQzMmAgdXNpbmcgW2BQYWxsZXQ6Om1hcF9hY2NvdW50YF0gaW4gb3JkZXIgdG9kIHVzZSBpdCB3aXRoIHRoaXMgcGFsbGV0LgA0RXRoZXJldW1CbG9jawEAwRARDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJB0BIFRoZSBjdXJyZW50IEV0aGVyZXVtIGJsb2NrIHRoYXQgaXMgc3RvcmVkIGluIHRoZSBgb25fZmluYWxpemVgIG1ldGhvZC4AHCAjIE5vdGUAKQEgVGhpcyBjb3VsZCBiZSBmdXJ0aGVyIG9wdGltaXplZCBpbnRvIHRoZSBmdXR1cmUgdG8gc3RvcmUgb25seSB0aGUgbWluaW11bR0BIGluZm9ybWF0aW9uIG5lZWRlZCB0byByZWNvbnN0cnVjdCB0aGUgRXRoZXJldW0gYmxvY2sgYXQgdGhlIFJQQyBsZXZlbC4APQEgU2luY2UgdGhlIGJsb2NrIGlzIGNvbnZlbmllbnQgdG8gaGF2ZSBhcm91bmQsIGFuZCB0aGUgZXh0cmEgZGV0YWlscyBhcmUgY2FwcGVkPQEgYnkgYSBmZXcgaGFzaGVzIGFuZCB0aGUgdmVjdG9yIG9mIHRyYW5zYWN0aW9uIGhhc2hlcywgd2Ugc3RvcmUgdGhlIGJsb2NrIGhlcmUuACRCbG9ja0hhc2gBAQQGOECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMlCBNYXBwaW5nIGZvciBibG9jayBudW1iZXIgYW5kIGhhc2hlcy4AcQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIHN0b3JlZCBpcyBjYXBwZWQgYnkgdGhlIGJsb2NrIGhhc2ggY291bnQgYEJMT0NLX0hBU0hfQ09VTlRgLgA8UmVjZWlwdEluZm9EYXRhAQAtEQQAGPQgVGhlIGRldGFpbHMgbmVlZGVkIHRvIHJlY29uc3RydWN0IHRoZSByZWNlaXB0IGluZm8gb2ZmY2hhaW4uACkBIFRoaXMgY29udGFpbnMgdmFsdWFibGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdhcyB1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbi4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAERFdGhCbG9ja0J1aWxkZXJJUgEANRERBgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAEKXU6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkCBJbmNyZW1lbnRhbCBldGhlcmV1bSBibG9jayBidWlsZGVyLgBoRXRoQmxvY2tCdWlsZGVyRmlyc3RWYWx1ZXMBAD0RBAAQ5CBUaGUgZmlyc3QgdHJhbnNhY3Rpb24gYW5kIHJlY2VpcHQgb2YgdGhlIGV0aGVyZXVtIGJsb2NrLgA9ASBUaGVzZSB2YWx1ZXMgYXJlIG1vdmVkIG91dCBvZiB0aGUgYEV0aEJsb2NrQnVpbGRlcklSYCB0byBhdm9pZCBzZXJpYWxpemluZyBhbmQ9ASBkZXNlcmlhbGl6aW5nIHRoZW0gb24gZXZlcnkgdHJhbnNhY3Rpb24uIEluc3RlYWQsIHRoZXkgYXJlIGxvYWRlZCB3aGVuIG5lZWRlZC4APERlYnVnU2V0dGluZ3NPZgEAQREMAAAABDEBIERlYnVnZ2luZyBzZXR0aW5ncyB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHdoZW4gRGVidWdFbmFibGVkIGNvbmZpZyBpcyB0cnVlLgAB2QYAAZULACw4RGVwb3NpdFBlckJ5dGVZAUCghgEAAAAAAAAAAAAAAAAAFBEBIFRoZSBhbW91bnQgb2YgYmFsYW5jZSBhIGNhbGxlciBoYXMgdG8gcGF5IGZvciBlYWNoIGJ5dGUgb2Ygc3RvcmFnZS4AHCAjIE5vdGUANQEgSXQgaXMgc2FmZSB0byBjaGFuZ2UgdGhpcyB2YWx1ZSBvbiBhIGxpdmUgY2hhaW4gYXMgYWxsIHJlZnVuZHMgYXJlIHBybyByYXRhLgA4RGVwb3NpdFBlckl0ZW1ZAUAAlDV3AAAAAAAAAAAAAAAAFAUBIFRoZSBhbW91bnQgb2YgYmFsYW5jZSBhIGNhbGxlciBoYXMgdG8gcGF5IGZvciBlYWNoIHN0b3JhZ2UgaXRlbS4AHCAjIE5vdGUANQEgSXQgaXMgc2FmZSB0byBjaGFuZ2UgdGhpcyB2YWx1ZSBvbiBhIGxpdmUgY2hhaW4gYXMgYWxsIHJlZnVuZHMgYXJlIHBybyByYXRhLgBcRGVwb3NpdFBlckNoaWxkVHJpZUl0ZW1ZAUAAwusLAAAAAAAAAAAAAAAAJDEBIFRoZSBhbW91bnQgb2YgYmFsYW5jZSBhIGNhbGxlciBoYXMgdG8gcGF5IGZvciBlYWNoIGNoaWxkIHRyaWUgc3RvcmFnZSBpdGVtLgA5ASBUaG9zZSBhcmUgdGhlIGl0ZW1zIGNyZWF0ZWQgYnkgYSBjb250cmFjdC4gSW4gU29saWRpdHkgZWFjaCB2YWx1ZSBpcyBhIHNpbmdsZTkBIHN0b3JhZ2UgaXRlbS4gVGhpcyBpcyB3aHkgd2UgbmVlZCB0byBzZXQgYSBsb3dlciB2YWx1ZSBoZXJlIHRoYW4gZm9yIHRoZSBtYWlu3CB0cmllIGl0ZW1zLiBPdGhlcndpc2UgdGhlIHN0b3JhZ2UgZGVwb3NpdCBpcyB0b28gaGlnaC4AHCAjIE5vdGUANQEgSXQgaXMgc2FmZSB0byBjaGFuZ2UgdGhpcyB2YWx1ZSBvbiBhIGxpdmUgY2hhaW4gYXMgYWxsIHJlZnVuZHMgYXJlIHBybyByYXRhLgBwQ29kZUhhc2hMb2NrdXBEZXBvc2l0UGVyY2VudC0FEACj4REMRQEgVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIHN0b3JhZ2UgZGVwb3NpdCB0aGF0IHNob3VsZCBiZSBoZWxkIGZvciB1c2luZyBhIGNvZGUgaGFzaC5RASBJbnN0YW50aWF0aW5nIGEgY29udHJhY3QsIHByb3RlY3RzIHRoZSBjb2RlIGZyb20gYmVpbmcgcmVtb3ZlZC4gSW4gb3JkZXIgdG8gcHJldmVudCUBIGFidXNlIHRoZXNlIGFjdGlvbnMgYXJlIHByb3RlY3RlZCB3aXRoIGEgcGVyY2VudGFnZSBvZiB0aGUgY29kZSBkZXBvc2l0LgBcVW5zYWZlVW5zdGFibGVJbnRlcmZhY2VdAQQAJBEBIE1ha2UgY29udHJhY3QgY2FsbGFibGUgZnVuY3Rpb25zIG1hcmtlZCBhcyBgI1t1bnN0YWJsZV1gIGF2YWlsYWJsZS4APQEgQ29udHJhY3RzIHRoYXQgdXNlIGAjW3Vuc3RhYmxlXWAgZnVuY3Rpb25zIHdvbid0IGJlIGFibGUgdG8gYmUgdXBsb2FkZWQgdW5sZXNzRQEgdGhpcyBpcyBzZXQgdG8gYHRydWVgLiBUaGlzIGlzIG9ubHkgbWVhbnQgZm9yIHRlc3RuZXRzIGFuZCBkZXYgbm9kZXMgaW4gb3JkZXIgdG94IGV4cGVyaW1lbnQgd2l0aCBuZXcgZmVhdHVyZXMuACggIyBXYXJuaW5nAMAgRG8gKipub3QqKiBzZXQgdG8gYHRydWVgIG9uIHByb2R1Y3Rpb25zIGNoYWlucy4AQEFsbG93RVZNQnl0ZWNvZGVdAQQBBNAgQWxsb3cgRVZNIGJ5dGVjb2RlIHRvIGJlIHVwbG9hZGVkIGFuZCBpbnN0YW50aWF0ZWQuABxDaGFpbklkKCBBGw8ZAAAAABABASBUaGUgW0VJUC0xNTVdKGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtMTU1KSBjaGFpbiBJRC4ABQEgVGhpcyBpcyBhIHVuaXF1ZSBpZGVudGlmaWVyIGFzc2lnbmVkIHRvIGVhY2ggYmxvY2tjaGFpbiBuZXR3b3JrLGwgcHJldmVudGluZyByZXBsYXkgYXR0YWNrcy4AQE5hdGl2ZVRvRXRoUmF0aW84EADh9QUEUQEgVGhlIHJhdGlvIGJldHdlZW4gdGhlIGRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG5hdGl2ZSB0b2tlbiBhbmQgdGhlIEVUSCB0b2tlbi4AVE1heEV0aEV4dHJpbnNpY1dlaWdodPUEQAAAstNZW/AGAAAAAAAAAAAwTQEgVGhlIGZyYWN0aW9uIHRoZSBtYXhpbXVtIGV4dHJpbnNpYyB3ZWlnaHQgYGV0aF90cmFuc2FjdGAgZXh0cmluc2ljcyBhcmUgY2FwcGVkIHRvLgBRASBUaGlzIGlzIG5vdCBhIHNlY3VyaXR5IG1lYXN1cmUgYnV0IGEgcmVxdWlyZW1lbnQgZHVlIHRvIGhvdyB3ZSBtYXAgZ2FzIHRvIGAoV2VpZ2h0LF0BIFN0b3JhZ2VEZXBvc2l0KWAuIFRoZSBtYXBwaW5nIG1pZ2h0IGRlcml2ZSBhIGBXZWlnaHRgIHRoYXQgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbnRvIGFu/CBleHRyaW5zaWMuIEluIHRoaXMgY2FzZSB3ZSBjYXAgaXQgdG8gdGhlIGxpbWl0IHNwZWNpZmllZCBoZXJlLgBlASBgZXRoX3RyYW5zYWN0YCB0cmFuc2FjdGlvbnMgdGhhdCB1c2UgbW9yZSB3ZWlnaHQgdGhhbiBzcGVjaWZpZWQgd2lsbCBmYWlsIHdpdGggYW4gb3V0IG9mSQEgZ2FzIGVycm9yIGR1cmluZyBleGVjdXRpb24uIExhcmdlciBmcmFjdGlvbnMgd2lsbCBhbGxvdyBtb3JlIHRyYW5zYWN0aW9ucyB0byBydW4uTQEgU21hbGxlciB2YWx1ZXMgd2FzdGUgbGVzcyBibG9jayBzcGFjZTogQ2hvb3NlIGFzIHNtYWxsIGFzIHBvc3NpYmxlIGFuZCBhcyBsYXJnZSBhcywgbmVjZXNzYXJ5LgBEICBEZWZhdWx0OiBgMC41YC4AMERlYnVnRW5hYmxlZF0BBAAELQEgQWxsb3dzIGRlYnVnLW1vZGUgY29uZmlndXJhdGlvbiwgc3VjaCBhcyBlbmFibGluZyB1bmxpbWl0ZWQgY29udHJhY3Qgc2l6ZS4AIEdhc1NjYWxlOBCghgEARB0BIFRoaXMgZGV0ZXJtaW5lcyB0aGUgcmVsYXRpdmUgc2NhbGUgb2Ygb3VyIGdhcyBwcmljZSBhbmQgZ2FzIGVzdGltYXRlcy4AVQEgQnkgZGVmYXVsdCwgdGhlIGdhcyBwcmljZSAoaW4gd2VpKSBpcyBgRmVlSW5mbzo6bmV4dF9mZWVfbXVsdGlwbGllcigpYCBtdWx0aXBsaWVkIGJ5XQEgYE5hdGl2ZVRvRXRoUmF0aW9gLiBgR2FzU2NhbGVgIGFsbG93cyB0byBzY2FsZSB0aGlzIHZhbHVlOiB0aGUgYWN0dWFsIGdhcyBwcmljZSBpcyB0aGWwIGRlZmF1bHQgZ2FzIHByaWNlIG11bHRpcGxpZWQgYnkgYEdhc1NjYWxlYC4AWQEgQXMgYSBjb25zZXF1ZW5jZSwgZ2FzIGNvc3QgKGdhcyBlc3RpbWF0ZXMgYW5kIGFjdHVhbCBnYXMgdXNhZ2UgZHVyaW5nIHRyYW5zYWN0aW9uKSBpc1EBIHNjYWxlZCBkb3duIGJ5IHRoZSBzYW1lIGZhY3Rvci4gVGh1cywgdGhlIHRvdGFsIHRyYW5zYWN0aW9uIGNvc3QgaXMgbm90IGFmZmVjdGVkIGJ5bQEgYEdhc1NjYWxlYCDigJPCoGFwYXJ0IGZyb20gcm91bmRpbmcgZGlmZmVyZW5jZXM6IHRoZSB0cmFuc2FjdGlvbiBjb3N0IGlzIGFsd2F5cyBhIG11bHRpcGxlYQEgb2YgdGhlIGdhcyBwcmljZSBhbmQgaXMgZGVyaXZlZCBieSByb3VuZGVkIHVwLCBzbyB0aGF0IHdpdGggaGlnaGVyIGBHYXNTY2FsZXNgIHRoaXMgY2FuEQEgbGVhZCB0byBoaWdoZXIgZ2FzIGNvc3QgYXMgdGhlIHJvdW5kaW5nIGRpZmZlcmVuY2Ugd291bGQgYmUgbGFyZ2VyLgBlASBUaGUgbWFpbiBwdXJwb3NlIG9mIGNoYW5naW5nIHRoZSBgR2FzU2NhbGVgIGlzIHRvIHR1bmUgdGhlIGdhcyBjb3N0IHNvIHRoYXQgaXQgaXMgY2xvc2VySQEgdG8gc3RhbmRhcmQgRVZNIGdhcyBjb3N0IGFuZCBjb250cmFjdHMgd2lsbCBub3QgcnVuIG91dCBvZiBnYXMgd2hlbiB0b29scyBvciBjb2RleCBhc3N1bWUgaGFyZCBjb2RlZCBnYXMgbGltaXRzLgCYIFJlcXVpcmVtZW50OiBgR2FzU2NhbGVgIG11c3Qgbm90IGJlIDAAAUURAAQsUnVudGltZUNhbGwgBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AZAAAEFN1ZG8BEFN1ZG8EDEtleQAABAQABIQgVGhlIGBBY2NvdW50SWRgIG9mIHRoZSBzdWRvIGtleS4AAe0GAAGZCwAAAUkRAAQsUnVudGltZUNhbGwgBEggQSBzdWRvLWFibGUgY2FsbC4A+wAAFEFoT3BzARRBaE9wcww4UmNMZWFzZVJlc2VydmUAAQwFBQVNEVkBBAA4BQEgQW1vdW50IG9mIGJhbGFuY2UgdGhhdCB3YXMgcmVzZXJ2ZWQgZm9yIHdpbm5pbmcgYSBsZWFzZSBhdWN0aW9uLgBlASBgdW5yZXNlcnZlX2xlYXNlX2RlcG9zaXRgIGNhbiBiZSBwZXJtaXNzaW9ubGVzc2x5IGNhbGxlZCBvbmNlIHRoZSBibG9jayBudW1iZXIgcGFzc2VkIHRvVQEgdW5yZXNlcnZlIHRoZSBkZXBvc2l0LiBJdCBpcyBpbXBsaWNpdGx5IGNhbGxlZCBieSBgd2l0aGRyYXdfY3Jvd2Rsb2FuX2NvbnRyaWJ1dGlvbmAuCCAgaQEgVGhlIGFjY291bnQgaGVyZSBjYW4gZWl0aGVyIGJlIGEgY3Jvd2Rsb2FuIGFjY291bnQgb3IgYSBzb2xvIGJpZGRlci4gSWYgaXQgaXMgYSBjcm93ZGxvYW5pASBhY2NvdW50LCB0aGVuIHRoZSBzdW1tZWQgdXAgY29udHJpYnV0aW9ucyBmb3IgaXQgaW4gdGhlIGNvbnRyaWJ1dGlvbnMgbWFwIHdpbGwgZXF1YXRlIHRoZVwgcmVzZXJ2ZWQgYmFsYW5jZSBoZXJlLgBkIFRoZSBrZXlzIGFyZSBhcyBmb2xsb3dzOuggLSBCbG9jayBudW1iZXIgYWZ0ZXIgd2hpY2ggdGhlIGRlcG9zaXQgY2FuIGJlIHVucmVzZXJ2ZWQuhCAtIFRoZSBwYXJhX2lkIG9mIHRoZSBsZWFzZSBzbG90LtQgLSBUaGUgYWNjb3VudCB0aGF0IHdpbGwgaGF2ZSB0aGUgYmFsYW5jZSB1bnJlc2VydmVkLoAgLSBUaGUgYmFsYW5jZSB0byBiZSB1bnJlc2VydmVkLgBcUmNDcm93ZGxvYW5Db250cmlidXRpb24AAQwFBQVNEZkFBAAw/CBBbW91bnQgb2YgYmFsYW5jZSB0aGF0IGEgY29udHJpYnV0b3IgbWFkZSB0b3dhcmRzIGEgY3Jvd2Rsb2FuLgBdASBgd2l0aGRyYXdfY3Jvd2Rsb2FuX2NvbnRyaWJ1dGlvbmAgY2FuIGJlIHBlcm1pc3Npb25sZXNzbHkgY2FsbGVkIG9uY2UgdGhlIGJsb2NrIG51bWJlctQgcGFzc2VkIHRvIHVubG9jayB0aGUgYmFsYW5jZSBmb3IgYSBzcGVjaWZpYyBhY2NvdW50LgBkIFRoZSBrZXlzIGFyZSBhcyBmb2xsb3dzOuAgLSBCbG9jayBudW1iZXIgYWZ0ZXIgd2hpY2ggdGhlIGJhbGFuY2UgY2FuIGJlIHVubG9ja2VkLoAgLSBUaGUgcGFyYV9pZCBvZiB0aGUgY3Jvd2Rsb2FuLqggLSBUaGUgYWNjb3VudCB0aGF0IG1hZGUgdGhlIGNvbnRyaWJ1dGlvbi4AQQEgVGhlIHZhbHVlIGlzIChmdW5kX3BvdCwgYmFsYW5jZSkuIFRoZSBjb250cmlidXRpb24gcG90IGlzIHRoZSBzZWNvbmQga2V5IGluIHRoZYwgYFJjQ3Jvd2Rsb2FuQ29udHJpYnV0aW9uYCBzdG9yYWdlLgBIUmNDcm93ZGxvYW5SZXNlcnZlAAEMBQUFTRFZAQQAJMggVGhlIHJlc2VydmUgdGhhdCB3YXMgdGFrZW4gdG8gY3JlYXRlIGEgY3Jvd2Rsb2FuLgARASBUaGlzIGlzIG5vcm1hbGx5IDUwMCBET1QgYW5kIGNhbiBiZSByZWZ1bmRlZCBhcyBsYXN0IHN0ZXAgYWZ0ZXIgYWxs9CBgUmNDcm93ZGxvYW5Db250cmlidXRpb25gcyBvZiB0aGlzIGxvYW4gaGF2ZSBiZWVuIHdpdGhkcmF3bi4AGCBLZXlzOsggLSBCbG9jayBudW1iZXIgYWZ0ZXIgd2hpY2ggdGhpcyBjYW4gYmUgdW5yZXNlcnZlZHwgLSBUaGUgcGFyYV9pZCBvZiB0aGUgY3Jvd2Rsb2Fu0CAtIFRoZSBhY2NvdW50IHRoYXQgd2lsbCBoYXZlIHRoZSBiYWxhbmNlIHVucmVzZXJ2ZWQAAfEGAAGdCwAAAVERAAQcQXNzZXRJZAECBKggQXNzZXQgSUQgdHlwZSBvZiB0aGUgYEZ1bmdpYmxlc2AgYWRhcHRlci4A/gAAKEFoTWlncmF0b3IBKEFoTWlncmF0b3IcKFJjQWNjb3VudHMAAQQFBAEHBAAMIQEgUkMgYWNjb3VudHMgdGhhdCBmYWlsZWQgdG8gbWlncmF0ZSB3aGVuIHdlcmUgcmVjZWl2ZWQgb24gdGhlIEFzc2V0IEh1Yi4AdQEgVGhpcyBpcyB1bmxpa2VseSB0byBoYXBwZW4sIHNpbmNlIHdlIGRyeSBydW4gdGhlIG1pZ3JhdGlvbiwgYnV0IHdlIGtlZXAgaXQgZm9yIGNvbXBsZXRlbmVzcy4AQEFoTWlncmF0aW9uU3RhZ2UBALkJBAAEfCBUaGUgQXNzZXQgSHViIG1pZ3JhdGlvbiBzdGF0ZS4AQEFoQmFsYW5jZXNCZWZvcmUBAFURgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHUBIEhlbHBlciBzdG9yYWdlIGl0ZW0gdG8gc3RvcmUgdGhlIHRvdGFsIGJhbGFuY2UgLyB0b3RhbCBpc3N1YW5jZSBvZiBuYXRpdmUgdG9rZW4gYXQgdGhlIHN0YXJ0dQEgb2YgdGhlIG1pZ3JhdGlvbi4gU2luY2UgdGVsZXBvcnRzIGFyZSBkaXNhYmxlZCBkdXJpbmcgbWlncmF0aW9uLCB0aGUgdG90YWwgaXNzdWFuY2Ugd2lsbCBub3TMIGNoYW5nZSBmb3Igb3RoZXIgcmVhc29uIHRoYW4gdGhlIG1pZ3JhdGlvbiBpdHNlbGYuAFhEbXBRdWV1ZVByaW9yaXR5Q29uZmlnAQC9CQQAGMAgVGhlIHByaW9yaXR5IG9mIHRoZSBETVAgcXVldWUgZHVyaW5nIG1pZ3JhdGlvbi4AcQEgQ29udHJvbHMgaG93IHRoZSBETVAgKERvd253YXJkIE1lc3NhZ2UgUGFzc2luZykgcXVldWUgaXMgcHJvY2Vzc2VkIHJlbGF0aXZlIHRvIG90aGVyIHF1ZXVlc2UBIGR1cmluZyB0aGUgbWlncmF0aW9uIHByb2Nlc3MuIFRoaXMgaGVscHMgZW5zdXJlIHRpbWVseSBwcm9jZXNzaW5nIG9mIG1pZ3JhdGlvbiBtZXNzYWdlcy5tASBUaGUgZGVmYXVsdCBwcmlvcml0eSBwYXR0ZXJuIGlzIGRlZmluZWQgaW4gdGhlIHBhbGxldCBjb25maWd1cmF0aW9uLCBidXQgY2FuIGJlIG92ZXJyaWRkZW6EIGJ5IGEgc3RvcmFnZSB2YWx1ZSBvZiB0aGlzIHR5cGUuABxNYW5hZ2VyAAAEBAAQlCBBbiBvcHRpb25hbCBhY2NvdW50IGlkIG9mIGEgbWFuYWdlci4ARQEgVGhpcyBhY2NvdW50IGlkIGhhcyBzaW1pbGFyIHByaXZpbGVnZXMgdG8gW2BDb25maWc6OkFkbWluT3JpZ2luYF0gZXhjZXB0IHRoYXQgaXTsIGNhbiBub3Qgc2V0IHRoZSBtYW5hZ2VyIGFjY291bnQgaWQgdmlhIGBzZXRfbWFuYWdlcmAgY2FsbC4ATE1pZ3JhdGlvblN0YXJ0QmxvY2sAADgEABBdASBUaGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSBtaWdyYXRpb24gYmVnYW4gYW5kIHRoZSBwYWxsZXQncyBleHRyaW5zaWNzIHdlcmUgbG9ja2VkLgAVASBUaGlzIHZhbHVlIGlzIHNldCB3aGVuIGVudGVyaW5nIHRoZSBgV2FpdGluZ0ZvckFoYCBzdGFnZSwgaS5lLiwgd2hlbsQgYFJjTWlncmF0aW9uU3RhZ2U6OmlzX29uZ29pbmcoKWAgYmVjb21lcyBgdHJ1ZWAuAERNaWdyYXRpb25FbmRCbG9jawAAOAQAEA0BIEJsb2NrIG51bWJlciB3aGVuIG1pZ3JhdGlvbiBmaW5pc2hlZCBhbmQgZXh0cmluc2ljcyB3ZXJlIHVubG9ja2VkLgD8IFRoaXMgaXMgc2V0IHdoZW4gZW50ZXJpbmcgdGhlIGBNaWdyYXRpb25Eb25lYCBzdGFnZSBoZW5jZSB3aGVuyCBgUmNNaWdyYXRpb25TdGFnZTo6aXNfZmluaXNoZWQoKWAgYmVjb21lcyBgdHJ1ZWAuAAH5BgABoQsAAAFZEQAYRFJ1bnRpbWVIb2xkUmVhc29uhQoATFJ1bnRpbWVGcmVlemVSZWFzb27JDABIUG9ydGFibGVIb2xkUmVhc29uBQcAUFBvcnRhYmxlRnJlZXplUmVhc29uIQcALFJjUHJveHlUeXBlYQcMlCBUaGUgYWJyaWRnZWQgUmVsYXkgQ2hhaW4gUHJveHkgVHlwZS4APQEgQWRkaXRpb25hbGx5IHJlcXVpcmVzIHRoZSBgRGVmYXVsdGAgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBiZW5jaG1hcmtpbmcgbW9ja3MuPFJjUGFsbGV0c09yaWdpbj0IDOQgU29tZSBwYXJ0IG9mIHRoZSBSZWxheSBDaGFpbiBvcmlnaW5zIHVzZWQgaW4gR292ZXJuYW5jZS4APQEgQWRkaXRpb25hbGx5IHJlcXVpcmVzIHRoZSBgRGVmYXVsdGAgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBiZW5jaG1hcmtpbmcgbW9ja3MuAP8AAAgEBQAgiQQEADAABAgMEBQYHCAkKCwwNEF1dGhvcml6ZUNhbGzJCRBIQ2hlY2tOb25aZXJvU2VuZGVyzQkQQENoZWNrU3BlY1ZlcnNpb27RCTg4Q2hlY2tUeFZlcnNpb27VCTgwQ2hlY2tHZW5lc2lz2QlAOENoZWNrTW9ydGFsaXR53QlAKENoZWNrTm9uY2XlCRAsQ2hlY2tXZWlnaHTpCRBQQ2hhcmdlQXNzZXRUeFBheW1lbnTtCRBEQ2hlY2tNZXRhZGF0YUhhc2jxCeEGMEV0aFNldE9yaWdpbvkJEFBTdG9yYWdlV2VpZ2h0UmVjbGFpbRAQbBxBdXJhQXBpCDRzbG90X2R1cmF0aW9uAF0RDJAgUmV0dXJucyB0aGUgc2xvdCBkdXJhdGlvbiBmb3IgQXVyYS4AJQEgQ3VycmVudGx5LCBvbmx5IHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGlzIHR5cGUgYXQgZ2VuZXNpcyB3aWxsIGJlIHVzZWQuACxhdXRob3JpdGllcwApDQScIFJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgYXV0aG9yaXRpZXMuAAS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBhdXJhLgQAUFJlbGF5UGFyZW50T2Zmc2V0QXBpBExyZWxheV9wYXJlbnRfb2Zmc2V0ADgE9CBGZXRjaCB0aGUgc2xvdCBvZmZzZXQgdGhhdCBpcyBleHBlY3RlZCBmcm9tIHRoZSByZWxheSBjaGFpbi4AEAUBIEFQSSB0byB0ZWxsIHRoZSBub2RlIHNpZGUgaG93IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIGJlIGNob3Nlbi4AaQEgQSBsYXJnZXIgb2Zmc2V0IGluZGljYXRlcyB0aGF0IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIG5vdCBiZSB0aGUgdGlwIG9mIHRoZSByZWxheSBjaGFpbiwxASBidXQgYE5gIGJsb2NrcyBiZWhpbmQgdGhlIHRpcC4gVGhpcyBvZmZzZXQgaXMgdGhlbiBlbmZvcmNlZCBieSB0aGUgcnVudGltZS4EAGBBdXJhVW5pbmNsdWRlZFNlZ21lbnRBcGkEOGNhbl9idWlsZF91cG9uCDRpbmNsdWRlZF9oYXNoQBBzbG90LQ1dASg5ASBXaGV0aGVyIGl0IGlzIGxlZ2FsIHRvIGV4dGVuZCB0aGUgY2hhaW4sIGFzc3VtaW5nIHRoZSBnaXZlbiBibG9jayBpcyB0aGUgbW9zdDUBIHJlY2VudGx5IGluY2x1ZGVkIG9uZSBhcy1vZiB0aGUgcmVsYXkgcGFyZW50IHRoYXQgd2lsbCBiZSBidWlsdCBhZ2FpbnN0LCBhbmRwIHRoZSBnaXZlbiByZWxheSBjaGFpbiBzbG90LgBRASBUaGlzIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvZ2ljIHRoZSBydW50aW1lIHVzZXMgd2hlbiB2YWxpZGF0aW5nIGJsb2NrcyB0bzggYXZvaWQgaXNzdWVzLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgZW1wdHksIGkuZS4gYGluY2x1ZGVkX2hhc2ggPT0gYXRgLCB3aGVyZSBhdCBpcyB0aGUgYmxvY2thASB3aG9zZSBzdGF0ZSB3ZSBhcmUgcXVlcnlpbmcgYWdhaW5zdCwgdGhpcyBtdXN0IGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIGxvbmcgYXMgdGhlIHNsb3S8IGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGluY2x1ZGVkIGJsb2NrIGl0c2VsZi4ANDUBIFRoaXMgcnVudGltZSBBUEkgaXMgdXNlZCB0byBpbmZvcm0gcG90ZW50aWFsIGJsb2NrIGF1dGhvcnMgd2hldGhlciB0aGV5IHdpbGwlASBoYXZlIHRoZSByaWdodCB0byBhdXRob3IgYXQgYSBzbG90LCBhc3N1bWluZyB0aGV5IGhhdmUgY2xhaW1lZCB0aGUgc2xvdC4AdQEgSW4gcGFydGljdWxhciwgdGhpcyBBUEkgYWxsb3dzIEF1cmEtYmFzZWQgcGFyYWNoYWlucyB0byByZWd1bGF0ZSB0aGVpciAidW5pbmNsdWRlZCBzZWdtZW50IixtASB3aGljaCBpcyB0aGUgc2VjdGlvbiBvZiB0aGUgaGVhZCBvZiB0aGUgY2hhaW4gd2hpY2ggaGFzIG5vdCB5ZXQgYmVlbiBtYWRlIGF2YWlsYWJsZSBpbiB0aGU0IHJlbGF5IGNoYWluLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgc2hvcnQsIEF1cmEgY2hhaW5zIHdpbGwgYWxsb3cgYXV0aG9ycyB0byBjcmVhdGUgbXVsdGlwbGVdASBibG9ja3MgcGVyIHNsb3QgaW4gb3JkZXIgdG8gYnVpbGQgYSBiYWNrbG9nLiBXaGVuIGl0IGlzIHNhdHVyYXRlZCwgdGhpcyBBUEkgd2lsbCBsaW1pdKggdGhlIGFtb3VudCBvZiBibG9ja3MgdGhhdCBjYW4gYmUgY3JlYXRlZC4AJCBDaGFuZ2VzOpEBIC0gVmVyc2lvbiAyOiBVcGRhdGUgdG8gYGNhbl9idWlsZF91cG9uYCB0byB0YWtlIGEgcmVsYXkgY2hhaW4gYFNsb3RgIGluc3RlYWQgb2YgYSBwYXJhY2hhaW4gYFNsb3RgLggAEENvcmUMHHZlcnNpb24A1QsEkCBSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgA0ZXhlY3V0ZV9ibG9jawQUYmxvY2thERAEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlcmBtEQRBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuAAQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LhQAIE1ldGFkYXRhDCBtZXRhZGF0YQBxEQSMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS4ATG1ldGFkYXRhX2F0X3ZlcnNpb24EHHZlcnNpb244dREQpCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBhdCBhIGdpdmVuIHZlcnNpb24uAAUBIElmIHRoZSBnaXZlbiBgdmVyc2lvbmAgaXNuJ3Qgc3VwcG9ydGVkLCB0aGlzIHdpbGwgcmV0dXJuIGBOb25lYC51ASBVc2UgW2BTZWxmOjptZXRhZGF0YV92ZXJzaW9uc2BdIHRvIGZpbmQgb3V0IGFib3V0IHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgBEbWV0YWRhdGFfdmVyc2lvbnMAKQQMpCBSZXR1cm5zIHRoZSBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbnMuAMAgVGhpcyBjYW4gYmUgdXNlZCB0byBjYWxsIGBtZXRhZGF0YV9hdF92ZXJzaW9uYC4ABAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLggAMEJsb2NrQnVpbGRlchA8YXBwbHlfZXh0cmluc2ljBCRleHRyaW5zaWPtC3kREGwgQXBwbHkgdGhlIGdpdmVuIGV4dHJpbnNpYy4AOQEgUmV0dXJucyBhbiBpbmNsdXNpb24gb3V0Y29tZSB3aGljaCBzcGVjaWZpZXMgaWYgdGhpcyBleHRyaW5zaWMgaXMgaW5jbHVkZWQgaW5MIHRoaXMgYmxvY2sgb3Igbm90LgA4ZmluYWxpemVfYmxvY2sAYARoIEZpbmlzaCB0aGUgY3VycmVudCBibG9jay4ATGluaGVyZW50X2V4dHJpbnNpY3MEIGluaGVyZW50iRH5CwQ9ASBHZW5lcmF0ZSBpbmhlcmVudCBleHRyaW5zaWNzLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi4APGNoZWNrX2luaGVyZW50cwgUYmxvY2thERBkYXRhiRGZEQRVASBDaGVjayB0aGF0IHRoZSBpbmhlcmVudHMgYXJlIHZhbGlkLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi4ABHEBIFRoZSBgQmxvY2tCdWlsZGVyYCBhcGkgdHJhaXQgdGhhdCBwcm92aWRlcyB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eSBmb3IgYnVpbGRpbmcgYSBibG9jay4YAFhUYWdnZWRUcmFuc2FjdGlvblF1ZXVlBFB2YWxpZGF0ZV90cmFuc2FjdGlvbgwYc291cmNlnREIdHjtCyhibG9ja19oYXNoQKERJGggVmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uLgBlASBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiBwb29sIHRvIGxlYXJuIGRldGFpbHMgYWJvdXQgZ2l2ZW4gdHJhbnNhY3Rpb24uRQEgVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCBtYWtlIHN1cmUgdG8gdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdHJhbnNhY3Rpb25NASBhZ2FpbnN0IGN1cnJlbnQgc3RhdGUuIFRoZSBnaXZlbiBgYmxvY2tfaGFzaGAgY29ycmVzcG9uZHMgdG8gdGhlIGhhc2ggb2YgdGhlIGJsb2NrfCB0aGF0IGlzIHVzZWQgYXMgY3VycmVudCBzdGF0ZS4ARQEgTm90ZSB0aGF0IHRoaXMgY2FsbCBtYXkgYmUgcGVyZm9ybWVkIGJ5IHRoZSBwb29sIG11bHRpcGxlIHRpbWVzIGFuZCB0cmFuc2FjdGlvbnOkIG1pZ2h0IGJlIHZlcmlmaWVkIGluIGFueSBwb3NzaWJsZSBvcmRlci4ABE0BIFRoZSBgVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZWAgYXBpIHRyYWl0IGZvciBpbnRlcmZlcmluZyB3aXRoIHRoZSB0cmFuc2FjdGlvbiBxdWV1ZS4MAERPZmZjaGFpbldvcmtlckFwaQQ8b2ZmY2hhaW5fd29ya2VyBBhoZWFkZXJgEATIIFN0YXJ0cyB0aGUgb2ZmLWNoYWluIHRhc2sgZm9yIGdpdmVuIGJsb2NrIGhlYWRlci4ABGQgVGhlIG9mZmNoYWluIHdvcmtlciBhcGkuCAAsU2Vzc2lvbktleXMIVGdlbmVyYXRlX3Nlc3Npb25fa2V5cwQQc2VlZE0BGBwVASBHZW5lcmF0ZSBhIHNldCBvZiBzZXNzaW9uIGtleXMgd2l0aCBvcHRpb25hbGx5IHVzaW5nIHRoZSBnaXZlbiBzZWVkLgkBIFRoZSBrZXlzIHNob3VsZCBiZSBzdG9yZWQgd2l0aGluIHRoZSBrZXlzdG9yZSBleHBvc2VkIHZpYSBydW50aW1lPCBleHRlcm5hbGl0aWVzLgCwIFRoZSBzZWVkIG5lZWRzIHRvIGJlIGEgdmFsaWQgYHV0ZjhgIHN0cmluZy4A0CBSZXR1cm5zIHRoZSBjb25jYXRlbmF0ZWQgU0NBTEUgZW5jb2RlZCBwdWJsaWMga2V5cy4ATGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQYqREMmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuAARoIFNlc3Npb24ga2V5cyBydW50aW1lIGFwaS4EAExSdW50aW1lVmlld0Z1bmN0aW9uBFRleGVjdXRlX3ZpZXdfZnVuY3Rpb24IIHF1ZXJ5X2lktREUaW5wdXQYuREEfCBFeGVjdXRlIGEgdmlldyBmdW5jdGlvbiBxdWVyeS4ABKQgUnVudGltZSBBUEkgZm9yIGV4ZWN1dGluZyB2aWV3IGZ1bmN0aW9ucwQAPEFjY291bnROb25jZUFwaQQ0YWNjb3VudF9ub25jZQQcYWNjb3VudAQ4BMAgR2V0IGN1cnJlbnQgYWNjb3VudCBub25jZSBvZiBnaXZlbiBgQWNjb3VudElkYC4ABIAgVGhlIEFQSSB0byBxdWVyeSBhY2NvdW50IG5vbmNlLgQAVFRyYW5zYWN0aW9uUGF5bWVudEFwaRAocXVlcnlfaW5mbwgMdXh07QsMbGVuOMERAABEcXVlcnlfZmVlX2RldGFpbHMIDHV4dO0LDGxlbjjFEQAATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodBUBWQEAAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGg4WQEAAAAQAGRUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpEDxxdWVyeV9jYWxsX2luZm8IEGNhbGwgDGxlbjjBEQRJASBRdWVyeSBpbmZvcm1hdGlvbiBvZiBhIGRpc3BhdGNoIGNsYXNzLCB3ZWlnaHQsIGFuZCBmZWUgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC4AWHF1ZXJ5X2NhbGxfZmVlX2RldGFpbHMIEGNhbGwgDGxlbjjFEQS0IFF1ZXJ5IGZlZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gZW5jb2RlZCBgQ2FsbGAuAExxdWVyeV93ZWlnaHRfdG9fZmVlBBh3ZWlnaHQVAVkBBAEBIFF1ZXJ5IHRoZSBvdXRwdXQgb2YgdGhlIGN1cnJlbnQgYFdlaWdodFRvRmVlYCBnaXZlbiBzb21lIGlucHV0LgBMcXVlcnlfbGVuZ3RoX3RvX2ZlZQQYbGVuZ3RoOFkBBAEBIFF1ZXJ5IHRoZSBvdXRwdXQgb2YgdGhlIGN1cnJlbnQgYExlbmd0aFRvRmVlYCBnaXZlbiBzb21lIGlucHV0LgAADAA0WGNtUGF5bWVudEFwaRB8cXVlcnlfYWNjZXB0YWJsZV9wYXltZW50X2Fzc2V0cwQseGNtX3ZlcnNpb2440REUtCBSZXR1cm5zIGEgbGlzdCBvZiBhY2NlcHRhYmxlIHBheW1lbnQgYXNzZXRzLgAwICMgQXJndW1lbnRzAGggKiBgeGNtX3ZlcnNpb25gOiBWZXJzaW9uLgBAcXVlcnlfeGNtX3dlaWdodAQcbWVzc2FnZTUC3REUqCBSZXR1cm5zIGEgd2VpZ2h0IG5lZWRlZCB0byBleGVjdXRlIGEgWENNLgAwICMgQXJndW1lbnRzAHQgKiBgbWVzc2FnZWA6IGBWZXJzaW9uZWRYY21gLgBkcXVlcnlfd2VpZ2h0X3RvX2Fzc2V0X2ZlZQgYd2VpZ2h0FQEUYXNzZXSlA+ERGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLgBMcXVlcnlfZGVsaXZlcnlfZmVlcwwsZGVzdGluYXRpb26tARxtZXNzYWdlNQIgYXNzZXRfaWSlA+URKGAgUXVlcnkgZGVsaXZlcnkgZmVlcyBWMi4AHQEgR2V0IGRlbGl2ZXJ5IGZlZXMgZm9yIHNlbmRpbmcgYSBzcGVjaWZpYyBgbWVzc2FnZWAgdG8gYSBgZGVzdGluYXRpb25gLvQgVGhlc2UgYWx3YXlzIGNvbWUgaW4gYSBzcGVjaWZpYyBhc3NldCwgZGVmaW5lZCBieSB0aGUgY2hhaW4uADAgIyBBcmd1bWVudHOBASAqIGBtZXNzYWdlYDogVGhlIG1lc3NhZ2UgdGhhdCdsbCBiZSBzZW50LCBuZWNlc3NhcnkgYmVjYXVzZSBtb3N0IGRlbGl2ZXJ5IGZlZXMgYXJlIGJhc2VkIG9uIHRoZVwgICBzaXplIG9mIHRoZSBtZXNzYWdlLmEBICogYGRlc3RpbmF0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRvIHNlbmQgdGhlIG1lc3NhZ2UgdG8uIERpZmZlcmVudCBkZXN0aW5hdGlvbnMgbWF5IHVzZcAgICBkaWZmZXJlbnQgc2VuZGVycyB0aGF0IGNoYXJnZSBkaWZmZXJlbnQgZmVlcy4ALHAgQSB0cmFpdCBvZiBYQ00gcGF5bWVudCBBUEkuAKggQVBJIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIG9idGFpbmluZzoAxCAqIHRoZSB3ZWlnaHQgcmVxdWlyZWQgdG8gZXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSwFASAqIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGBBc3NldElkYHMgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uIHBheW1lbnQsAQEgKiB0aGUgY29zdCBvZiB0aGUgd2VpZ2h0IGluIHRoZSBzcGVjaWZpZWQgYWNjZXB0YWJsZSBgQXNzZXRJZGAuoCAqIHRoZSBmZWVzIGZvciBhbiBYQ00gbWVzc2FnZSBkZWxpdmVyeS4A8CBUbyBkZXRlcm1pbmUgdGhlIGV4ZWN1dGlvbiB3ZWlnaHQgb2YgdGhlIGNhbGxzIHJlcXVpcmVkIGZvcnUBIFtgeGNtOjpsYXRlc3Q6Okluc3RydWN0aW9uOjpUcmFuc2FjdGBdIGluc3RydWN0aW9uLCBgVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaWAgY2FuIGJlIHVzZWQuCAAkRHJ5UnVuQXBpCDBkcnlfcnVuX2NhbGwMGG9yaWdpbtkDEGNhbGwgTHJlc3VsdF94Y21zX3ZlcnNpb2446REERCBEcnkgcnVuIGNhbGwgVjIuACxkcnlfcnVuX3hjbQg8b3JpZ2luX2xvY2F0aW9urQEMeGNtdQMJEgRQIERyeSBydW4gWENNIHByb2dyYW0AJLEBIEFQSSBmb3IgZHJ5LXJ1bm5pbmcgZXh0cmluc2ljcyBhbmQgWENNIHByb2dyYW1zIHRvIGdldCB0aGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgZmVlcyBBUEkuAIEBIEFsbCBjYWxscyByZXR1cm4gYSB2ZWN0b3Igb2YgdHVwbGVzIChsb2NhdGlvbiwgeGNtKSB3aGVyZSBlYWNoICJ4Y20iIGlzIGV4ZWN1dGVkIGluICJsb2NhdGlvbiIu5CBJZiB0aGVyZSdzIGxvY2FsIGV4ZWN1dGlvbiwgdGhlIGxvY2F0aW9uIHdpbGwgYmUgIkhlcmUiLh0BIFRoaXMgdmVjdG9yIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBib3RoIGV4ZWN1dGlvbiBhbmQgZGVsaXZlcnkgZmVlcy4AmQEgQ2FsbHMgb3IgWENNcyBtaWdodCBmYWlsIHdoZW4gZXhlY3V0ZWQsIHRoaXMgZG9lc24ndCBtZWFuIHRoZSByZXN1bHQgb2YgdGhlc2UgY2FsbHMgd2lsbCBiZSBhbiBgRXJyYC5lASBJbiB0aG9zZSBjYXNlcywgdGhlcmUgbWlnaHQgc3RpbGwgYmUgYSB2YWxpZCByZXN1bHQsIHdpdGggdGhlIGV4ZWN1dGlvbiBlcnJvciBpbnNpZGUgaXQuZQEgVGhlIG9ubHkgcmVhc29ucyB3aHkgdGhlc2UgY2FsbHMgbWlnaHQgcmV0dXJuIGFuIGVycm9yIGFyZSBsaXN0ZWQgaW4gdGhlIFtgRXJyb3JgXSBlbnVtLggAUExvY2F0aW9uVG9BY2NvdW50QXBpBEBjb252ZXJ0X2xvY2F0aW9uBCBsb2NhdGlvbq0BERIEkCBDb252ZXJ0cyBgTG9jYXRpb25gIHRvIGBBY2NvdW50SWRgLgAEDQEgQVBJIGZvciB1c2VmdWwgY29udmVyc2lvbnMgYmV0d2VlbiBYQ00gYExvY2F0aW9uYCBhbmQgYEFjY291bnRJZGAuBAA8VHJ1c3RlZFF1ZXJ5QXBpCEhpc190cnVzdGVkX3Jlc2VydmUIFGFzc2V0GRIgbG9jYXRpb26tAR0SFPAgUmV0dXJucyBpZiB0aGUgbG9jYXRpb24gaXMgYSB0cnVzdGVkIHJlc2VydmUgZm9yIHRoZSBhc3NldC4AMCAjIEFyZ3VtZW50c3QgKiBgYXNzZXRgOiBgVmVyc2lvbmVkQXNzZXRgLowgKiBgbG9jYXRpb25gOiBgVmVyc2lvbmVkTG9jYXRpb25gLgBUaXNfdHJ1c3RlZF90ZWxlcG9ydGVyCBRhc3NldBkSIGxvY2F0aW9urQEdEhTgIFJldHVybnMgaWYgdGhlIGFzc2V0IGNhbiBiZSB0ZWxlcG9ydGVkIHRvIHRoZSBsb2NhdGlvbi4AMCAjIEFyZ3VtZW50c3QgKiBgYXNzZXRgOiBgVmVyc2lvbmVkQXNzZXRgLowgKiBgbG9jYXRpb25gOiBgVmVyc2lvbmVkTG9jYXRpb25gLgAE7CBBUEkgZm9yIHF1ZXJ5aW5nIHRydXN0ZWQgcmVzZXJ2ZXMgYW5kIHRydXN0ZWQgdGVsZXBvcnRlcnMuBABUQXV0aG9yaXplZEFsaWFzZXJzQXBpCExhdXRob3JpemVkX2FsaWFzZXJzBBh0YXJnZXStASUSBPQgUmV0dXJucyBsb2NhdGlvbnMgYWxsb3dlZCB0byBhbGlhcyBpbnRvIGFuZCBhY3QgYXMgYHRhcmdldGAuAExpc19hdXRob3JpemVkX2FsaWFzCBhvcmlnaW6tARh0YXJnZXStAS0SBB0BIFJldHVybnMgd2hldGhlciBgb3JpZ2luYCBpcyBhbGxvd2VkIHRvIGFsaWFzIGludG8gYW5kIGFjdCBhcyBgdGFyZ2V0YC4ABKAgQVBJIGZvciBxdWVyeWluZyBYQ00gYXV0aG9yaXplZCBhbGlhc2VzBAAwRnVuZ2libGVzQXBpBFhxdWVyeV9hY2NvdW50X2JhbGFuY2VzBBxhY2NvdW50BDESBOwgUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgW2BBc3NldGBdIHRoYXQgYW4gYEFjY291bnRJZGAgaGFzLgAE2CBUaGUgQVBJIGZvciBxdWVyeWluZyBhY2NvdW50J3MgYmFsYW5jZXMgZnJvbSBydW50aW1lLggAUENvbGxlY3RDb2xsYXRpb25JbmZvBFhjb2xsZWN0X2NvbGxhdGlvbl9pbmZvBBhoZWFkZXJgORIQnCBDb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgD0IFRoZSBnaXZlbiBgaGVhZGVyYCBpcyB0aGUgaGVhZGVyIG9mIHRoZSBidWlsdCBibG9jayBmb3IgdGhhdKggd2UgYXJlIGNvbGxlY3RpbmcgdGhlIGNvbGxhdGlvbiBpbmZvIGZvci4AFNggUnVudGltZSBhcGkgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbGxhdGlvbi4ARCBWZXJzaW9uIGhpc3Rvcnk6AQEgLSBWZXJzaW9uIDI6IENoYW5nZWQgW2BTZWxmOjpjb2xsZWN0X2NvbGxhdGlvbl9pbmZvYF0gc2lnbmF0dXJlNQEgLSBWZXJzaW9uIDM6IFNpZ25hbHMgdG8gdGhlIG5vZGUgdG8gdXNlIHZlcnNpb24gMSBvZiBbYFBhcmFjaGFpbkJsb2NrRGF0YWBdLgwAOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbhhFEihlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgApASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsVQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIHRoZSBnaXZlbiBKU09OIGJsb2IgYW5kIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlVQEgcHJvdmlkZWQgSlNPTiBibG9iIGlzIGluY29ycmVjdCBvciBpbmNvbXBsZXRlIG9yIHRoZSBkZXNlcmlhbGl6YXRpb24gZmFpbHMsIGFuIGVycm9yNCBpcyByZXR1cm5lZC4AXQEgUGxlYXNlIG5vdGUgdGhhdCBwcm92aWRlZCBKU09OIGJsb2IgbXVzdCBjb250YWluIGFsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZpZWxkcywgbm9cIGRlZmF1bHRzIHdpbGwgYmUgdXNlZC4AKGdldF9wcmVzZXQECGlkSRJNAThhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAFUBIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGEBIGV4aXN0LiBSZXR1cm5lZCBgVmVjPHU4PmAgY29udGFpbnMgYnl0ZXMgb2YgSlNPTiBibG9iIChwYXRjaCkgd2hpY2ggY29tcHJpc2VzIGEgbGlzdCBvZk0BIChwb3RlbnRpYWxseSBuZXN0ZWQpIGtleS12YWx1ZSBwYWlycyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgY3VzdG9taXppbmcgdGhlIGRlZmF1bHRlASBydW50aW1lIGdlbmVzaXMgY29uZmlnLiBUaGUgcGF0Y2ggc2hhbGwgYmUgbWVyZ2VkIChyZmM3Mzg2KSB3aXRoIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uYQEgb2YgdGhlIGRlZmF1bHQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIGdlbmVzaXMgY29uZmlnIHRoYXQgY2FuhCBiZSB1c2VkIGluIGBidWlsZF9zdGF0ZWAgbWV0aG9kLgAwcHJlc2V0X25hbWVzAE0SEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgAE8CBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZvciB0aGUgcnVudGltZQQASEFzc2V0Q29udmVyc2lvbkFwaQyMcXVvdGVfcHJpY2VfdG9rZW5zX2Zvcl9leGFjdF90b2tlbnMQGGFzc2V0MQECGGFzc2V0MgECGGFtb3VudFkBLGluY2x1ZGVfZmVlXQExBBD8IFByb3ZpZGVzIGEgcXVvdGUgZm9yIFtgUGFsbGV0Ojpzd2FwX3Rva2Vuc19mb3JfZXhhY3RfdG9rZW5zYF0uADkBIE5vdGUgdGhhdCB0aGUgcHJpY2UgbWF5IGhhdmUgY2hhbmdlZCBieSB0aGUgdGltZSB0aGUgdHJhbnNhY3Rpb24gaXMgZXhlY3V0ZWQurCAoVXNlIGBhbW91bnRfaW5fbWF4YCB0byBjb250cm9sIHNsaXBwYWdlLikAjHF1b3RlX3ByaWNlX2V4YWN0X3Rva2Vuc19mb3JfdG9rZW5zEBhhc3NldDEBAhhhc3NldDIBAhhhbW91bnRZASxpbmNsdWRlX2ZlZV0BMQQQ/CBQcm92aWRlcyBhIHF1b3RlIGZvciBbYFBhbGxldDo6c3dhcF9leGFjdF90b2tlbnNfZm9yX3Rva2Vuc2BdLgA5ASBOb3RlIHRoYXQgdGhlIHByaWNlIG1heSBoYXZlIGNoYW5nZWQgYnkgdGhlIHRpbWUgdGhlIHRyYW5zYWN0aW9uIGlzIGV4ZWN1dGVkLrAgKFVzZSBgYW1vdW50X291dF9taW5gIHRvIGNvbnRyb2wgc2xpcHBhZ2UuKQAwZ2V0X3Jlc2VydmVzCBhhc3NldDEBAhhhc3NldDIBAlESBAUBIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGxpcXVpZGl0eSBwb29sIGZvciB0aGUgZ2l2ZW4gYXNzZXQgcGFpci4ACCEBIFRoaXMgcnVudGltZSBhcGkgYWxsb3dzIHBlb3BsZSB0byBxdWVyeSB0aGUgc2l6ZSBvZiB0aGUgbGlxdWlkaXR5IHBvb2xzcCBhbmQgcXVvdGUgcHJpY2VzIGZvciBzd2Fwcy4EAEBHZXRQYXJhY2hhaW5JbmZvBDBwYXJhY2hhaW5faWQAoASwIFJldHJpZXZlIHRoZSBwYXJhY2hhaW4gaWQgdXNlZCBmb3IgcnVudGltZS4ABA0BIFJ1bnRpbWUgYXBpIHVzZWQgdG8gYWNjZXNzIGdlbmVyYWwgaW5mbyBhYm91dCBhIHBhcmFjaGFpbiBydW50aW1lLgQASE5vbWluYXRpb25Qb29sc0FwaSg8cGVuZGluZ19yZXdhcmRzBAx3aG8EWQEENQEgUmV0dXJucyB0aGUgcGVuZGluZyByZXdhcmRzIGZvciB0aGUgbWVtYmVyIHRoYXQgdGhlIEFjY291bnRJZCB3YXMgZ2l2ZW4gZm9yLgBEcG9pbnRzX3RvX2JhbGFuY2UIHHBvb2xfaWQ4GHBvaW50c1kBWQEE9CBSZXR1cm5zIHRoZSBlcXVpdmFsZW50IGJhbGFuY2Ugb2YgYHBvaW50c2AgZm9yIGEgZ2l2ZW4gcG9vbC4ARGJhbGFuY2VfdG9fcG9pbnRzCBxwb29sX2lkOCRuZXdfZnVuZHNZAVkBBPwgUmV0dXJucyB0aGUgZXF1aXZhbGVudCBwb2ludHMgb2YgYG5ld19mdW5kc2AgZm9yIGEgZ2l2ZW4gcG9vbC4ASHBvb2xfcGVuZGluZ19zbGFzaAQccG9vbF9pZDhZAQSwIFJldHVybnMgdGhlIHBlbmRpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcG9vbC4AUG1lbWJlcl9wZW5kaW5nX3NsYXNoBBhtZW1iZXIEWQEQzCBSZXR1cm5zIHRoZSBwZW5kaW5nIHNsYXNoIGZvciBhIGdpdmVuIHBvb2wgbWVtYmVyLgBNASBJZiBwZW5kaW5nIHNsYXNoIG9mIHRoZSBtZW1iZXIgZXhjZWVkcyBgRXhpc3RlbnRpYWxEZXBvc2l0YCwgaXQgY2FuIGJlIHJlcG9ydGVkIG9uHCBjaGFpbi4AdHBvb2xfbmVlZHNfZGVsZWdhdGVfbWlncmF0aW9uBBxwb29sX2lkOF0BIOQgUmV0dXJucyB0cnVlIGlmIHRoZSBwb29sIHdpdGggYHBvb2xfaWRgIG5lZWRzIG1pZ3JhdGlvbi4ASQEgVGhpcyBjYW4gaGFwcGVuIHdoZW4gdGhlIGBwYWxsZXQtbm9taW5hdGlvbi1wb29sc2AgaGFzIHN3aXRjaGVkIHRvIHVzaW5nIHN0cmF0ZWd5QQEgW2BEZWxlZ2F0ZVN0YWtlYF0ocGFsbGV0X25vbWluYXRpb25fcG9vbHM6OmFkYXB0ZXI6OkRlbGVnYXRlU3Rha2UpIGJ1dCB0aGUgcG9vbOggc3RpbGwgaGFzIGZ1bmRzIHRoYXQgd2VyZSBzdGFrZWQgdXNpbmcgdGhlIG9sZGVyIHN0cmF0ZWd5GQEgW1RyYW5zZmVyU3Rha2VdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjphZGFwdGVyOjpUcmFuc2ZlclN0YWtlKS4gVXNliQEgW2BtaWdyYXRlX3Bvb2xfdG9fZGVsZWdhdGVfc3Rha2VgXShwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6Q2FsbDo6bWlncmF0ZV9wb29sX3RvX2RlbGVnYXRlX3N0YWtlKVQgdG8gbWlncmF0ZSB0aGUgcG9vbC4AfG1lbWJlcl9uZWVkc19kZWxlZ2F0ZV9taWdyYXRpb24EGG1lbWJlcgRdARwpASBSZXR1cm5zIHRydWUgaWYgdGhlIGRlbGVnYXRlZCBmdW5kcyBvZiB0aGUgcG9vbCBgbWVtYmVyYCBuZWVkcyBtaWdyYXRpb24uANggT25jZSBhIHBvb2wgaGFzIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCB0byB0aGUgc3RyYXRlZ3lVASBbYERlbGVnYXRlU3Rha2VgXShwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6YWRhcHRlcjo6RGVsZWdhdGVTdGFrZSksIHRoZSBmdW5kcyBvZiB0aGUZASBtZW1iZXIgY2FuIGJlIG1pZ3JhdGVkIGZyb20gcG9vbCBhY2NvdW50IHRvIHRoZSBtZW1iZXIncyBhY2NvdW50LiBVc2UpASBbYG1pZ3JhdGVfZGVsZWdhdGlvbmBdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpDYWxsOjptaWdyYXRlX2RlbGVnYXRpb24ppCB0byBtaWdyYXRlIHRoZSBmdW5kcyBvZiB0aGUgcG9vbCBtZW1iZXIuAFBtZW1iZXJfdG90YWxfYmFsYW5jZQQMd2hvBFkBBGUBIFJldHVybnMgdGhlIHRvdGFsIGNvbnRyaWJ1dGlvbiBvZiBhIHBvb2wgbWVtYmVyIGluY2x1ZGluZyBhbnkgYmFsYW5jZSB0aGF0IGlzIHVuYm9uZGluZy4AMHBvb2xfYmFsYW5jZQQccG9vbF9pZDhZAQScIFRvdGFsIGJhbGFuY2UgY29udHJpYnV0ZWQgdG8gdGhlIHBvb2wuADRwb29sX2FjY291bnRzBBxwb29sX2lkOFUSBC0BIFJldHVybnMgdGhlIGJvbmRlZCBhY2NvdW50IGFuZCByZXdhcmQgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggdGhlIHBvb2xfaWQuAAT4IFJ1bnRpbWUgYXBpIGZvciBhY2Nlc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgbm9taW5hdGlvbiBwb29scy4EAChTdGFraW5nQXBpDERub21pbmF0aW9uc19xdW90YQQcYmFsYW5jZVkBOAQRASBSZXR1cm5zIHRoZSBub21pbmF0aW9ucyBxdW90YSBmb3IgYSBub21pbmF0b3Igd2l0aCBhIGdpdmVuIGJhbGFuY2UuAFxlcmFzX3N0YWtlcnNfcGFnZV9jb3VudAgMZXJhOBxhY2NvdW50BDgEOQEgUmV0dXJucyB0aGUgcGFnZSBjb3VudCBvZiBleHBvc3VyZXMgZm9yIGEgdmFsaWRhdG9yIGBhY2NvdW50YCBpbiBhIGdpdmVuIGVyYS4APHBlbmRpbmdfcmV3YXJkcwgMZXJhOBxhY2NvdW50BF0BBEUBIFJldHVybnMgdHJ1ZSBpZiBhIHZhbGlkYXRvciBgYWNjb3VudGAgaGFzIHBhZ2VzIHRvIGJlIGNsYWltZWQgZm9yIHRoZSBnaXZlbiBlcmEuAAAEACRJbmZsYXRpb24ElGV4cGVyaW1lbnRhbF9pc3N1YW5jZV9wcmVkaWN0aW9uX2luZm8AWRIQ1CBSZXR1cm4gdGhlIGN1cnJlbnQgZXN0aW1hdGVzIG9mIHRoZSBpc3N1YW5jZSBhbW91bnQuAFEBIFRoaXMgaXMgbWFya2VkIGFzIGV4cGVyaW1lbnRhbCBpbiBsaWdodCBvZiBSRkMjODkuIE5vbmV0aGVsZXNzLCBpdHMgdXNhZ2UgaXMgaGlnaGx5JQEgcmVjb21tZW5kZWQgb3ZlciB0cnlpbmcgdG8gcmVhZC1zdG9yYWdlLCBvciByZS1jcmVhdGUgdGhlIG9uY2hhaW4gbG9naWMuAAAEACRSZXZpdmVBcGlcJGV0aF9ibG9jawDBEAx8IFJldHVybnMgdGhlIGN1cnJlbnQgRVRIIGJsb2NrLgC4IFRoaXMgaXMgb25lIGJsb2NrIGJlaGluZCB0aGUgc3Vic3RyYXRlIGJsb2NrLgA4ZXRoX2Jsb2NrX2hhc2gEGG51bWJlcuUG4QQE3CBSZXR1cm5zIHRoZSBFVEggYmxvY2sgaGFzaCBmb3IgdGhlIGdpdmVuIGJsb2NrIG51bWJlci4AQGV0aF9yZWNlaXB0X2RhdGEALREUEQEgVGhlIGRldGFpbHMgbmVlZGVkIHRvIHJlY29uc3RydWN0IHRoZSByZWNlaXB0IGluZm9ybWF0aW9uIG9mZmNoYWluLgAcICMgTm90ZQBVASBFYWNoIGVudHJ5IGNvcnJlc3BvbmRzIHRvIHRoZSBhcHByb3ByaWF0ZSBFdGhlcmV1bSB0cmFuc2FjdGlvbiBpbiB0aGUgY3VycmVudCBibG9jay4APGJsb2NrX2dhc19saW1pdADlBgR0IFJldHVybnMgdGhlIGJsb2NrIGdhcyBsaW1pdC4AHGJhbGFuY2UEHGFkZHJlc3PdBuUGBDEBIFJldHVybnMgdGhlIGZyZWUgYmFsYW5jZSBvZiB0aGUgZ2l2ZW4gYFtIMTYwXWAgYWRkcmVzcywgdXNpbmcgRVZNIGRlY2ltYWxzLgAkZ2FzX3ByaWNlAOUGBFwgUmV0dXJucyB0aGUgZ2FzIHByaWNlLgAUbm9uY2UEHGFkZHJlc3PdBjgExCBSZXR1cm5zIHRoZSBub25jZSBvZiB0aGUgZ2l2ZW4gYFtIMTYwXWAgYWRkcmVzcy4AEGNhbGwYGG9yaWdpbgQQZGVzdN0GFHZhbHVlWQEkZ2FzX2xpbWl0EQFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0MQQoaW5wdXRfZGF0YRhhEgz0IFBlcmZvcm0gYSBjYWxsIGZyb20gYSBzcGVjaWZpZWQgYWNjb3VudCB0byBhIGdpdmVuIGNvbnRyYWN0LgCIIFNlZSBbYGNyYXRlOjpQYWxsZXQ6OmJhcmVfY2FsbGBdLgAsaW5zdGFudGlhdGUcGG9yaWdpbgQUdmFsdWVZASRnYXNfbGltaXQRAVRzdG9yYWdlX2RlcG9zaXRfbGltaXQxBBBjb2RldRIQZGF0YRgQc2FsdOEGeRIMcCBJbnN0YW50aWF0ZSBhIG5ldyBjb250cmFjdC4ApCBTZWUgYFtjcmF0ZTo6UGFsbGV0OjpiYXJlX2luc3RhbnRpYXRlXWAuADBldGhfdHJhbnNhY3QECHR4hRKhEhBoIFBlcmZvcm0gYW4gRXRoZXJldW0gY2FsbC4AlCBEZXByZWNhdGVkIHVzZSBgdjJgIHZlcnNpb24gaW5zdGVhZC6wIFNlZSBbYGNyYXRlOjpQYWxsZXQ6OmRyeV9ydW5fZXRoX3RyYW5zYWN0YF0AYGV0aF90cmFuc2FjdF93aXRoX2NvbmZpZwgIdHiFEhhjb25maWetEqESDGggUGVyZm9ybSBhbiBFdGhlcmV1bSBjYWxsLgCwIFNlZSBbYGNyYXRlOjpQYWxsZXQ6OmRyeV9ydW5fZXRoX3RyYW5zYWN0YF0ALHVwbG9hZF9jb2RlDBhvcmlnaW4EEGNvZGUYVHN0b3JhZ2VfZGVwb3NpdF9saW1pdDEEtRIM6CBVcGxvYWQgbmV3IGNvZGUgd2l0aG91dCBpbnN0YW50aWF0aW5nIGEgY29udHJhY3QgZnJvbSBpdC4ApCBTZWUgW2BjcmF0ZTo6UGFsbGV0OjpiYXJlX3VwbG9hZF9jb2RlYF0uACxnZXRfc3RvcmFnZQgcYWRkcmVzc90GDGtleQi9EhS8IFF1ZXJ5IGEgZ2l2ZW4gc3RvcmFnZSBrZXkgaW4gYSBnaXZlbiBjb250cmFjdC4ATQEgUmV0dXJucyBgT2soU29tZShWZWM8dTg+KSlgIGlmIHRoZSBzdG9yYWdlIHZhbHVlIGV4aXN0cyB1bmRlciB0aGUgZ2l2ZW4ga2V5IGluIHRoZWEBIHNwZWNpZmllZCBhY2NvdW50IGFuZCBgT2soTm9uZSlgIGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBhY2NvdW50IHNwZWNpZmllZCBieSB0aGUgYWRkcmVzcwkBIGRvZXNuJ3QgZXhpc3QsIG9yIGRvZXNuJ3QgaGF2ZSBhIGNvbnRyYWN0IHRoZW4gYEVycmAgaXMgcmV0dXJuZWQuAExnZXRfc3RvcmFnZV92YXJfa2V5CBxhZGRyZXNz3QYMa2V5GL0SFPggUXVlcnkgYSBnaXZlbiB2YXJpYWJsZS1zaXplZCBzdG9yYWdlIGtleSBpbiBhIGdpdmVuIGNvbnRyYWN0LgBNASBSZXR1cm5zIGBPayhTb21lKFZlYzx1OD4pKWAgaWYgdGhlIHN0b3JhZ2UgdmFsdWUgZXhpc3RzIHVuZGVyIHRoZSBnaXZlbiBrZXkgaW4gdGhlYQEgc3BlY2lmaWVkIGFjY291bnQgYW5kIGBPayhOb25lKWAgaWYgaXQgZG9lc24ndC4gSWYgdGhlIGFjY291bnQgc3BlY2lmaWVkIGJ5IHRoZSBhZGRyZXNzCQEgZG9lc24ndCBleGlzdCwgb3IgZG9lc24ndCBoYXZlIGEgY29udHJhY3QgdGhlbiBgRXJyYCBpcyByZXR1cm5lZC4ALHRyYWNlX2Jsb2NrCBRibG9ja+kLGGNvbmZpZ8US2RIYBQEgVHJhY2VzIHRoZSBleGVjdXRpb24gb2YgYW4gZW50aXJlIGJsb2NrIGFuZCByZXR1cm5zIGNhbGwgdHJhY2VzLgBBASBUaGlzIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCB0aHJvdWdoIGBzdGF0ZV9jYWxsYCB0byByZXBsYXkgdGhlIGJsb2NrIGZyb20gdGhlOCBwYXJlbnQgYmxvY2suAMggU2VlIGV0aC1ycGMgYGRlYnVnX3RyYWNlQmxvY2tCeU51bWJlcmAgZm9yIHVzYWdlLgAgdHJhY2VfdHgMFGJsb2Nr6QsgdHhfaW5kZXg4GGNvbmZpZ8USGRMY/CBUcmFjZXMgdGhlIGV4ZWN1dGlvbiBvZiBhIHNwZWNpZmljIHRyYW5zYWN0aW9uIHdpdGhpbiBhIGJsb2NrLgBBASBUaGlzIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCB0aHJvdWdoIGBzdGF0ZV9jYWxsYCB0byByZXBsYXkgdGhlIGJsb2NrIGZyb20gdGhljCBwYXJlbnQgaGFzaCB1cCB0byB0aGUgdHJhbnNhY3Rpb24uAMAgU2VlIGV0aC1ycGMgYGRlYnVnX3RyYWNlVHJhbnNhY3Rpb25gIGZvciB1c2FnZS4AKHRyYWNlX2NhbGwICHR4hRIYY29uZmlnxRIdEwzAIERyeSBydW4gYW5kIHJldHVybiB0aGUgdHJhY2Ugb2YgdGhlIGdpdmVuIGNhbGwuAKQgU2VlIGV0aC1ycGMgYGRlYnVnX3RyYWNlQ2FsbGAgZm9yIHVzYWdlLgAwYmxvY2tfYXV0aG9yAN0GBPggVGhlIGFkZHJlc3Mgb2YgdGhlIHZhbGlkYXRvciB0aGF0IHByb2R1Y2VkIHRoZSBjdXJyZW50IGJsb2NrLgAcYWRkcmVzcwQoYWNjb3VudF9pZATdBgTMIEdldCB0aGUgSDE2MCBhZGRyZXNzIGFzc29jaWF0ZWQgdG8gdGhpcyBhY2NvdW50IGlkAChhY2NvdW50X2lkBBxhZGRyZXNz3QYEBNAgR2V0IHRoZSBhY2NvdW50IGlkIGFzc29jaWF0ZWQgdG8gdGhpcyBIMTYwIGFkZHJlc3MuAFxydW50aW1lX3BhbGxldHNfYWRkcmVzcwDdBgT0IFRoZSBhZGRyZXNzIHVzZWQgdG8gY2FsbCB0aGUgcnVudGltZSdzIHBhbGxldHMgZGlzcGF0Y2hhYmxlcwAQY29kZQQcYWRkcmVzc90GGAQRASBUaGUgY29kZSBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgdGFraW5nIHByZS1jb21waWxlcyBpbnRvIGFjY291bnQuAFRuZXdfYmFsYW5jZV93aXRoX2R1c3QEHGJhbGFuY2XlBiETBA0BIENvbnN0cnVjdCB0aGUgbmV3IGJhbGFuY2UgYW5kIGR1c3QgY29tcG9uZW50cyBvZiB0aGlzIEVWTSBiYWxhbmNlLgAEvCBUaGUgQVBJIHVzZWQgdG8gZHJ5LXJ1biBjb250cmFjdCBpbnRlcmFjdGlvbnMuBAAgFQotEwA=";
|
|
82
|
+
paseo_asset_hub_metadata_default = binMeta;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// generated/src/index.ts
|
|
87
|
+
var index_exports = {};
|
|
88
|
+
__export(index_exports, {
|
|
89
|
+
ArithmeticError: () => ArithmeticError,
|
|
90
|
+
BagsListEvent: () => BagsListEvent,
|
|
91
|
+
BalanceStatus: () => BalanceStatus,
|
|
92
|
+
BalancesAdjustmentDirection: () => BalancesAdjustmentDirection,
|
|
93
|
+
BalancesTypesReasons: () => BalancesTypesReasons,
|
|
94
|
+
ChildBountiesEvent: () => ChildBountiesEvent,
|
|
95
|
+
ChildBountyStatus: () => ChildBountyStatus,
|
|
96
|
+
ClaimsStatementKind: () => ClaimsStatementKind,
|
|
97
|
+
CommonClaimsEvent: () => CommonClaimsEvent,
|
|
98
|
+
ConvictionVotingVoteAccountVote: () => ConvictionVotingVoteAccountVote,
|
|
99
|
+
ConvictionVotingVoteVoting: () => ConvictionVotingVoteVoting,
|
|
100
|
+
DigestItem: () => DigestItem,
|
|
101
|
+
DispatchClass: () => DispatchClass,
|
|
102
|
+
GovernanceOrigin: () => GovernanceOrigin,
|
|
103
|
+
MultiAddress: () => MultiAddress,
|
|
104
|
+
NominationPoolsBondExtra: () => NominationPoolsBondExtra,
|
|
105
|
+
NominationPoolsClaimPermission: () => NominationPoolsClaimPermission,
|
|
106
|
+
NominationPoolsCommissionClaimPermission: () => NominationPoolsCommissionClaimPermission,
|
|
107
|
+
NominationPoolsConfigOp: () => NominationPoolsConfigOp,
|
|
108
|
+
NominationPoolsPalletFreezeReason: () => NominationPoolsPalletFreezeReason,
|
|
109
|
+
NominationPoolsPoolState: () => NominationPoolsPoolState,
|
|
110
|
+
Phase: () => Phase,
|
|
111
|
+
PreimageEvent: () => PreimageEvent,
|
|
112
|
+
PreimageOldRequestStatus: () => PreimageOldRequestStatus,
|
|
113
|
+
PreimagePalletHoldReason: () => PreimagePalletHoldReason,
|
|
114
|
+
PreimageRequestStatus: () => PreimageRequestStatus,
|
|
115
|
+
PreimagesBounded: () => PreimagesBounded,
|
|
116
|
+
ReferendaTypesCurve: () => ReferendaTypesCurve,
|
|
117
|
+
StakingForcing: () => StakingForcing,
|
|
118
|
+
StakingPalletConfigOp: () => StakingPalletConfigOp,
|
|
119
|
+
StakingPalletConfigOpBig: () => StakingPalletConfigOpBig,
|
|
120
|
+
StakingRewardDestination: () => StakingRewardDestination,
|
|
121
|
+
TokenError: () => TokenError,
|
|
122
|
+
TraitsScheduleDispatchTime: () => TraitsScheduleDispatchTime,
|
|
123
|
+
TransactionPaymentEvent: () => TransactionPaymentEvent,
|
|
124
|
+
TransactionPaymentReleases: () => TransactionPaymentReleases,
|
|
125
|
+
TransactionValidityTransactionSource: () => TransactionValidityTransactionSource,
|
|
126
|
+
TransactionValidityUnknownTransaction: () => TransactionValidityUnknownTransaction,
|
|
127
|
+
TransactionalError: () => TransactionalError,
|
|
128
|
+
TreasuryPaymentState: () => TreasuryPaymentState,
|
|
129
|
+
UpgradeGoAhead: () => UpgradeGoAhead,
|
|
130
|
+
UpgradeRestriction: () => UpgradeRestriction,
|
|
131
|
+
Version: () => Version,
|
|
132
|
+
VotingConviction: () => VotingConviction,
|
|
133
|
+
WestendRuntimeRuntimeFreezeReason: () => WestendRuntimeRuntimeFreezeReason,
|
|
134
|
+
XcmPalletVersionMigrationStage: () => XcmPalletVersionMigrationStage,
|
|
135
|
+
XcmV2JunctionBodyPart: () => XcmV2JunctionBodyPart,
|
|
136
|
+
XcmV2MultiassetWildFungibility: () => XcmV2MultiassetWildFungibility,
|
|
137
|
+
XcmV2OriginKind: () => XcmV2OriginKind,
|
|
138
|
+
XcmV3Instruction: () => XcmV3Instruction,
|
|
139
|
+
XcmV3Junction: () => XcmV3Junction,
|
|
140
|
+
XcmV3JunctionBodyId: () => XcmV3JunctionBodyId,
|
|
141
|
+
XcmV3JunctionNetworkId: () => XcmV3JunctionNetworkId,
|
|
142
|
+
XcmV3Junctions: () => XcmV3Junctions,
|
|
143
|
+
XcmV3MaybeErrorCode: () => XcmV3MaybeErrorCode,
|
|
144
|
+
XcmV3MultiassetAssetId: () => XcmV3MultiassetAssetId,
|
|
145
|
+
XcmV3MultiassetAssetInstance: () => XcmV3MultiassetAssetInstance,
|
|
146
|
+
XcmV3MultiassetFungibility: () => XcmV3MultiassetFungibility,
|
|
147
|
+
XcmV3MultiassetMultiAssetFilter: () => XcmV3MultiassetMultiAssetFilter,
|
|
148
|
+
XcmV3MultiassetWildMultiAsset: () => XcmV3MultiassetWildMultiAsset,
|
|
149
|
+
XcmV3Response: () => XcmV3Response,
|
|
150
|
+
XcmV3TraitsError: () => XcmV3TraitsError,
|
|
151
|
+
XcmV3WeightLimit: () => XcmV3WeightLimit,
|
|
152
|
+
XcmV4AssetAssetFilter: () => XcmV4AssetAssetFilter,
|
|
153
|
+
XcmV4AssetWildAsset: () => XcmV4AssetWildAsset,
|
|
154
|
+
XcmV4Instruction: () => XcmV4Instruction,
|
|
155
|
+
XcmV4Response: () => XcmV4Response,
|
|
156
|
+
XcmV5AssetFilter: () => XcmV5AssetFilter,
|
|
157
|
+
XcmV5Instruction: () => XcmV5Instruction,
|
|
158
|
+
XcmV5Junction: () => XcmV5Junction,
|
|
159
|
+
XcmV5Junctions: () => XcmV5Junctions,
|
|
160
|
+
XcmV5NetworkId: () => XcmV5NetworkId,
|
|
161
|
+
XcmV5WildAsset: () => XcmV5WildAsset,
|
|
162
|
+
XcmVersionedAsset: () => XcmVersionedAsset,
|
|
163
|
+
XcmVersionedAssetId: () => XcmVersionedAssetId,
|
|
164
|
+
XcmVersionedAssets: () => XcmVersionedAssets,
|
|
165
|
+
XcmVersionedLocation: () => XcmVersionedLocation,
|
|
166
|
+
XcmVersionedXcm: () => XcmVersionedXcm,
|
|
167
|
+
getMetadata: () => getMetadata2,
|
|
168
|
+
paseo_asset_hub: () => paseo_asset_hub_default
|
|
169
|
+
});
|
|
170
|
+
module.exports = __toCommonJS(index_exports);
|
|
171
|
+
|
|
172
|
+
// generated/src/common.ts
|
|
173
|
+
var table = new Uint8Array(128);
|
|
174
|
+
for (let i = 0; i < 64; i++) table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
|
|
175
|
+
var toBinary = (base64) => {
|
|
176
|
+
const n = base64.length, bytes = new Uint8Array((n - Number(base64[n - 1] === "=") - Number(base64[n - 2] === "=")) * 3 / 4 | 0);
|
|
177
|
+
for (let i2 = 0, j = 0; i2 < n; ) {
|
|
178
|
+
const c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
|
|
179
|
+
const c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
|
|
180
|
+
bytes[j++] = c0 << 2 | c1 >> 4;
|
|
181
|
+
bytes[j++] = c1 << 4 | c2 >> 2;
|
|
182
|
+
bytes[j++] = c2 << 6 | c3;
|
|
183
|
+
}
|
|
184
|
+
return bytes;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// generated/src/paseo_asset_hub.ts
|
|
188
|
+
var descriptorValues = Promise.resolve().then(() => (init_descriptors(), descriptors_exports)).then((module2) => module2["Paseo_asset_hub"]);
|
|
189
|
+
var metadataTypes = Promise.resolve().then(() => (init_metadataTypes(), metadataTypes_exports)).then(
|
|
190
|
+
(module2) => toBinary("default" in module2 ? module2.default : module2)
|
|
191
|
+
);
|
|
192
|
+
var asset = {};
|
|
193
|
+
var extensions = {};
|
|
194
|
+
var getMetadata = () => Promise.resolve().then(() => (init_paseo_asset_hub_metadata(), paseo_asset_hub_metadata_exports)).then(
|
|
195
|
+
(module2) => toBinary("default" in module2 ? module2.default : module2)
|
|
196
|
+
);
|
|
197
|
+
var genesis = "0xd6eec26135305a8ad257a20d003357284c8aa03d0bdb2b357ab0a22371e11ef2";
|
|
198
|
+
var _allDescriptors = { descriptors: descriptorValues, metadataTypes, asset, extensions, getMetadata, genesis };
|
|
199
|
+
var paseo_asset_hub_default = _allDescriptors;
|
|
200
|
+
|
|
201
|
+
// ../../../../node_modules/.pnpm/@polkadot-api+substrate-bindings@0.17.0/node_modules/@polkadot-api/substrate-bindings/dist/esm/types/enum.mjs
|
|
202
|
+
var discriminant = {
|
|
203
|
+
is(value, type) {
|
|
204
|
+
return value.type === type;
|
|
205
|
+
},
|
|
206
|
+
as(value, type) {
|
|
207
|
+
if (type !== value.type)
|
|
208
|
+
throw new Error(
|
|
209
|
+
`Enum.as(enum, ${type}) used with actual type ${value.type}`
|
|
210
|
+
);
|
|
211
|
+
return value;
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
var Enum = Object.assign((type, value) => {
|
|
215
|
+
return {
|
|
216
|
+
type,
|
|
217
|
+
value
|
|
218
|
+
};
|
|
219
|
+
}, discriminant);
|
|
220
|
+
var _Enum = new Proxy(
|
|
221
|
+
{},
|
|
222
|
+
{
|
|
223
|
+
get(_, prop) {
|
|
224
|
+
return (value) => Enum(prop, value);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
// generated/src/common-types.ts
|
|
230
|
+
var DigestItem = _Enum;
|
|
231
|
+
var Phase = _Enum;
|
|
232
|
+
var DispatchClass = _Enum;
|
|
233
|
+
var TokenError = _Enum;
|
|
234
|
+
var ArithmeticError = _Enum;
|
|
235
|
+
var TransactionalError = _Enum;
|
|
236
|
+
var PreimageEvent = _Enum;
|
|
237
|
+
var BalanceStatus = _Enum;
|
|
238
|
+
var PreimagePalletHoldReason = _Enum;
|
|
239
|
+
var TransactionPaymentEvent = _Enum;
|
|
240
|
+
var XcmV5Junctions = _Enum;
|
|
241
|
+
var XcmV5Junction = _Enum;
|
|
242
|
+
var XcmV5NetworkId = _Enum;
|
|
243
|
+
var XcmV3JunctionBodyId = _Enum;
|
|
244
|
+
var XcmV2JunctionBodyPart = _Enum;
|
|
245
|
+
var CommonClaimsEvent = _Enum;
|
|
246
|
+
var XcmV5Instruction = _Enum;
|
|
247
|
+
var XcmV3MultiassetFungibility = _Enum;
|
|
248
|
+
var XcmV3MultiassetAssetInstance = _Enum;
|
|
249
|
+
var XcmV3MaybeErrorCode = _Enum;
|
|
250
|
+
var XcmV2OriginKind = _Enum;
|
|
251
|
+
var XcmV5AssetFilter = _Enum;
|
|
252
|
+
var XcmV5WildAsset = _Enum;
|
|
253
|
+
var XcmV2MultiassetWildFungibility = _Enum;
|
|
254
|
+
var XcmV3WeightLimit = _Enum;
|
|
255
|
+
var XcmVersionedAssets = _Enum;
|
|
256
|
+
var XcmV3MultiassetAssetId = _Enum;
|
|
257
|
+
var XcmV3Junctions = _Enum;
|
|
258
|
+
var XcmV3Junction = _Enum;
|
|
259
|
+
var XcmV3JunctionNetworkId = _Enum;
|
|
260
|
+
var XcmVersionedLocation = _Enum;
|
|
261
|
+
var ConvictionVotingVoteAccountVote = _Enum;
|
|
262
|
+
var PreimagesBounded = _Enum;
|
|
263
|
+
var ChildBountiesEvent = _Enum;
|
|
264
|
+
var NominationPoolsPoolState = _Enum;
|
|
265
|
+
var NominationPoolsCommissionClaimPermission = _Enum;
|
|
266
|
+
var NominationPoolsClaimPermission = _Enum;
|
|
267
|
+
var BagsListEvent = _Enum;
|
|
268
|
+
var StakingRewardDestination = _Enum;
|
|
269
|
+
var StakingForcing = _Enum;
|
|
270
|
+
var UpgradeGoAhead = _Enum;
|
|
271
|
+
var UpgradeRestriction = _Enum;
|
|
272
|
+
var PreimageOldRequestStatus = _Enum;
|
|
273
|
+
var PreimageRequestStatus = _Enum;
|
|
274
|
+
var GovernanceOrigin = _Enum;
|
|
275
|
+
var BalancesTypesReasons = _Enum;
|
|
276
|
+
var WestendRuntimeRuntimeFreezeReason = _Enum;
|
|
277
|
+
var NominationPoolsPalletFreezeReason = _Enum;
|
|
278
|
+
var TransactionPaymentReleases = _Enum;
|
|
279
|
+
var Version = _Enum;
|
|
280
|
+
var ClaimsStatementKind = _Enum;
|
|
281
|
+
var XcmV3Response = _Enum;
|
|
282
|
+
var XcmV3TraitsError = _Enum;
|
|
283
|
+
var XcmV4Response = _Enum;
|
|
284
|
+
var XcmPalletVersionMigrationStage = _Enum;
|
|
285
|
+
var XcmVersionedAssetId = _Enum;
|
|
286
|
+
var TreasuryPaymentState = _Enum;
|
|
287
|
+
var ConvictionVotingVoteVoting = _Enum;
|
|
288
|
+
var VotingConviction = _Enum;
|
|
289
|
+
var TraitsScheduleDispatchTime = _Enum;
|
|
290
|
+
var ChildBountyStatus = _Enum;
|
|
291
|
+
var ReferendaTypesCurve = _Enum;
|
|
292
|
+
var MultiAddress = _Enum;
|
|
293
|
+
var BalancesAdjustmentDirection = _Enum;
|
|
294
|
+
var XcmVersionedXcm = _Enum;
|
|
295
|
+
var XcmV3Instruction = _Enum;
|
|
296
|
+
var XcmV3MultiassetMultiAssetFilter = _Enum;
|
|
297
|
+
var XcmV3MultiassetWildMultiAsset = _Enum;
|
|
298
|
+
var XcmV4Instruction = _Enum;
|
|
299
|
+
var XcmV4AssetAssetFilter = _Enum;
|
|
300
|
+
var XcmV4AssetWildAsset = _Enum;
|
|
301
|
+
var NominationPoolsBondExtra = _Enum;
|
|
302
|
+
var StakingPalletConfigOpBig = _Enum;
|
|
303
|
+
var StakingPalletConfigOp = _Enum;
|
|
304
|
+
var NominationPoolsConfigOp = _Enum;
|
|
305
|
+
var TransactionValidityUnknownTransaction = _Enum;
|
|
306
|
+
var TransactionValidityTransactionSource = _Enum;
|
|
307
|
+
var XcmVersionedAsset = _Enum;
|
|
308
|
+
|
|
309
|
+
// generated/src/index.ts
|
|
310
|
+
var metadatas = { ["0xc66e1574f0df569b29c04d46ae77aeebb622c79fd582de906913886f7853e74b"]: paseo_asset_hub_default };
|
|
311
|
+
var getMetadata2 = async (codeHash) => {
|
|
312
|
+
try {
|
|
313
|
+
return await metadatas[codeHash].getMetadata();
|
|
314
|
+
} catch {
|
|
315
|
+
}
|
|
316
|
+
return null;
|
|
317
|
+
};
|